diff options
875 files changed, 143199 insertions, 28765 deletions
diff --git a/.editorconfig b/.editorconfig index ab03b8421c..56cc2e9c2d 100644 --- a/.editorconfig +++ b/.editorconfig @@ -9,7 +9,7 @@ insert_final_newline = true [*.{cpp,hpp,c,h,mm}] trim_trailing_whitespace = true -[{*.{py,cs},SCsub}] +[{*.{py,cs},SConstruct,SCsub}] indent_style = space indent_size = 4 diff --git a/.gitattributes b/.gitattributes index 47ba2b45bb..40a5e6183f 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1,12 +1,15 @@ # Properly detect languages on Github *.h linguist-language=cpp *.inc linguist-language=cpp -drivers/* linguist-vendored +thirdparty/* linguist-vendored -*.cpp eol=lf -*.mm eol=lf -*.h eol=lf -*.py eol=lf -*.hpp eol=lf -*.xml eol=lf -*.natvis eol=lf +# Normalize EOL for all files that Git considers text files +* text=auto eol=lf + +# The above only works properly for Git 2.10+, so for older versions +# we need to manually list the binary files we don't want modified. +*.icns binary +*.ico binary +*.jar binary +*.png binary +*.ttf binary diff --git a/.gitignore b/.gitignore index cd6785a8ec..7a836240b8 100644 --- a/.gitignore +++ b/.gitignore @@ -7,15 +7,18 @@ doc/_build/ # Javascript specific *.bc +# CLion +cmake-build-debug + # Android specific -platform/android/java/.gradle -platform/android/java/.gradletasknamecache -platform/android/java/local.properties -platform/android/java/project.properties +.gradle +local.properties +*.iml +.idea +.gradletasknamecache +project.properties platform/android/java/libs/* platform/android/java/assets -platform/android/java/.idea/* -platform/android/java/*.iml # General c++ generated files *.lib @@ -52,13 +55,19 @@ gmon.out # Eclipse CDT files .cproject .settings/ +*.pydevproject +*.launch # Geany/geany-plugins files *.geany .geanyprj +# Jetbrains IDEs +.idea/ + # Misc .DS_Store +__MACOSX logs/ # for projects that use SCons for building: http://http://www.scons.org/ @@ -66,7 +75,6 @@ logs/ .sconsign.dblite *.pyc - # https://github.com/github/gitignore/blob/master/VisualStudio.gitignore ## Ignore Visual Studio temporary files, build results, and ## files generated by popular Visual Studio add-ons. @@ -123,6 +131,7 @@ TestResult.xml *.tlh *.tmp *.tmp_proj +*.bak *.log *.vspscc *.vssscc @@ -130,6 +139,7 @@ TestResult.xml *.pidb *.svclog *.scc +*.nib # Chutzpah Test files _Chutzpah* @@ -245,8 +255,11 @@ __pycache__/ #Kdevelop project files *.kdev4 -# xCode -xcuserdata +# Xcode +xcuserdata/ +*.xcscmblueprint +*.xccheckout +*.xcodeproj/* # RIA/Silverlight projects Generated_Code/ @@ -275,11 +288,19 @@ FakesAssemblies/ # ========================= # Windows image file caches -Thumbs.db +[Tt]humbs.db +[Tt]humbs.db:encryptable ehthumbs.db +ehthumbs_vista.db + +# Windows stackdumps +*.stackdump + +# Windows shortcuts +*.lnk # Folder config file -Desktop.ini +[Dd]esktop.ini # Recycle Bin used on file shares $RECYCLE.BIN/ diff --git a/.travis.yml b/.travis.yml index 727567b8e7..587e57c741 100644 --- a/.travis.yml +++ b/.travis.yml @@ -17,17 +17,19 @@ cache: matrix: include: - - env: STATIC_CHECKS=yes + - name: Static checks (clang-format) + env: STATIC_CHECKS=yes os: linux compiler: gcc addons: apt: sources: - - llvm-toolchain-xenial-6.0 + - llvm-toolchain-xenial-8 packages: - - clang-format-6.0 + - clang-format-8 - - env: PLATFORM=x11 TOOLS=yes TARGET=debug CACHE_NAME=${PLATFORM}-tools-mono-gcc-8 MATRIX_EVAL="CC=gcc-8 && CXX=g++-8" EXTRA_ARGS="module_mono_enabled=yes mono_glue=no warnings=extra werror=yes" + - name: Linux editor (debug, GCC 8, with Mono) + env: PLATFORM=x11 TOOLS=yes TARGET=debug CACHE_NAME=${PLATFORM}-tools-mono-gcc-8 MATRIX_EVAL="CC=gcc-8 && CXX=g++-8" EXTRA_ARGS="module_mono_enabled=yes mono_glue=no warnings=extra werror=yes" os: linux compiler: gcc-8 addons: @@ -49,7 +51,8 @@ matrix: build_command: "scons p=x11 -j2 $OPTIONS" branch_pattern: coverity_scan - - env: PLATFORM=x11 TOOLS=no TARGET=release CACHE_NAME=${PLATFORM}-clang EXTRA_ARGS="warnings=extra werror=yes" + - name: Linux export template (release, Clang) + env: PLATFORM=x11 TOOLS=no TARGET=release CACHE_NAME=${PLATFORM}-clang EXTRA_ARGS="warnings=extra werror=yes" os: linux compiler: clang addons: @@ -57,19 +60,23 @@ matrix: packages: - *linux_deps - - env: PLATFORM=android TOOLS=no TARGET=release_debug CACHE_NAME=${PLATFORM}-clang EXTRA_ARGS="warnings=extra werror=yes" + - name: Android export template (release_debug, Clang) + env: PLATFORM=android TOOLS=no TARGET=release_debug CACHE_NAME=${PLATFORM}-clang EXTRA_ARGS="warnings=extra werror=yes" os: linux compiler: clang - - env: PLATFORM=osx TOOLS=yes TARGET=debug CACHE_NAME=${PLATFORM}-tools-clang + - name: macOS editor (debug, Clang) + env: PLATFORM=osx TOOLS=yes TARGET=debug CACHE_NAME=${PLATFORM}-tools-clang os: osx compiler: clang - - env: PLATFORM=iphone TOOLS=no TARGET=debug CACHE_NAME=${PLATFORM}-clang + - name: iOS export template (debug, Clang) + env: PLATFORM=iphone TOOLS=no TARGET=debug CACHE_NAME=${PLATFORM}-clang os: osx compiler: clang - - env: PLATFORM=server TOOLS=yes TARGET=release_debug CACHE_NAME=${PLATFORM}-tools-gcc-8 MATRIX_EVAL="CC=gcc-8 && CXX=g++-8" EXTRA_ARGS="warnings=extra werror=yes" + - name: Linux headless editor (release_debug, GCC 8) + env: PLATFORM=server TOOLS=yes TARGET=release_debug CACHE_NAME=${PLATFORM}-tools-gcc-8 MATRIX_EVAL="CC=gcc-8 && CXX=g++-8" EXTRA_ARGS="warnings=extra werror=yes" os: linux compiler: gcc-8 addons: @@ -80,7 +87,8 @@ matrix: - *gcc8_deps - *linux_deps - - env: PLATFORM=x11 TOOLS=no TARGET=release_debug CACHE_NAME=${PLATFORM}-gcc-5 + - name: Linux export template (release_debug, GCC 5, without 3D support) + env: PLATFORM=x11 TOOLS=no TARGET=release_debug CACHE_NAME=${PLATFORM}-gcc-5 EXTRA_ARGS="disable_3d=yes" os: linux compiler: gcc addons: @@ -17,25 +17,24 @@ generous deed immortalized in the next stable release of Godot Engine. ## Gold sponsors Gamblify <https://www.gamblify.com> - Image Campus <https://www.imagecampus.edu.ar> ## Mini sponsors Alan Beauchamp + Aleksandar Kordic Anandarup Mallik Andrew Dunai Brandon Lamb + Christian Chipont Christian Uldall Pedersen Christoph Woinke - Connor Hill Denis Malyavin Edward Flick GameDev.net GameDev.tv Hein-Pieter van Braam Jacob McKenney - Javary Games - Jay Sistar + Javary Co. Justin Arnold Kyle Szklenski Leonard Meagher @@ -44,15 +43,13 @@ generous deed immortalized in the next stable release of Godot Engine. Mike King Neal Gompa (Conan Kudo) Patrick Aarstad - "Rainway " Slobodan Milnovic - StarFlare Software Stephan Lanfermann Stephen Telford Steve - TigerJ VilliHaukka Xananax + Y8.com Zashi ## Gold donors @@ -77,12 +74,14 @@ generous deed immortalized in the next stable release of Godot Engine. Andreas Schüle Asher Glick Austen McRae + Brian van der Stel + Carlo Cabanilla Daniel James David Giardi - David Graham Edward E Florian Breisch Gero + Javier Roman Jay Horton Jon Smith Jon Woodward @@ -107,12 +106,12 @@ generous deed immortalized in the next stable release of Godot Engine. William Wold Wyatt Goodin + Alex Khayrullin Chris Goddard Chris Serino Christian Padilla Conrad Curry Craig Smith - Daniel Egger Dean Harmon Ian Richard Kunert Ivan Trombley @@ -135,17 +134,18 @@ generous deed immortalized in the next stable release of Godot Engine. Wojciech Chojnacki Xavier PATRICELLI + Adam Neumann Alessandra Pereyra + Alexander J Maynard Alexey Dyadchenko Andrew Bowen Asdf - Benjamin W Flint + Ben Botwin Carlos de Sousa Marques Chris Petrich Christian Leth Jeppesen Christoph Schröder Cody Parker - ComicSads D Daniel Daniel Eichler @@ -163,6 +163,8 @@ generous deed immortalized in the next stable release of Godot Engine. Guilherme Felipe de C. G. da Silva Heath Hayes Hysteria + Idzard Kwadijk + Jared White Jose Malheiro Joshua Flores Juan T Chen @@ -173,7 +175,6 @@ generous deed immortalized in the next stable release of Godot Engine. Leandro Voltolino Maarten Elings Malcolm Peralty - Marius Kamm Markus Fehr Markus Wiesner Martin Eigel @@ -184,6 +185,7 @@ generous deed immortalized in the next stable release of Godot Engine. M H Nick Nikitin Oliver Dick + Paolo Munoz Paul Hocker Paul Von Zimmerman Pete Goodwin @@ -197,7 +199,6 @@ generous deed immortalized in the next stable release of Godot Engine. Urho WytRabbit Xavier Fumado Beltran - yuanzhe zhou ## Silver donors @@ -208,6 +209,7 @@ generous deed immortalized in the next stable release of Godot Engine. Adam Nakonieczny Adam Smeltzer Adisibio + Agustinus Arya Aidan O'Flannagain Alder Stefano Alessandro Senese @@ -231,21 +233,23 @@ generous deed immortalized in the next stable release of Godot Engine. Benedikt Ben Phelan Ben Vercammen + Ben Woodley + Berbank Bernd Jänichen Black Block Blair Allen Bobby CC Wong Boyquotes - Branwen Zak + Branwyn Tylwyth Bryan Stevenson - Carl Winder Carwyn Edwards Chris Brown Chris Chapin + Chris Gonzales Christian Baune Christian Winter Christoffer Sundbom - Christopher Fisher + Christopher Schmitt Chris Wilson Clay Heaton Cobaltum @@ -262,7 +266,6 @@ generous deed immortalized in the next stable release of Godot Engine. Dominik Wetzel Duobix Edward Herbert - E.G. Egon Elbre Ellen Marie Dash Elmeri '- Duy Kevin Nguyen @@ -271,30 +274,33 @@ generous deed immortalized in the next stable release of Godot Engine. Eric Martini Eric McCarthy Eric Williams - Fabian Lökes + Evan Rose Felix Kollmann fengjiongmax - Foomf + Flaredown G3Dev sà rl Gary Hulst Gerrit Großkopf gmmath Grant Clarke Greg Olson - Greg Pennefather + Greg P Guldoman Heribert Hirth Hiroshi Naruo HMan Hunter Jones + Hylpher ialex32x Igor Buzatovic Iiari + IndustrialRobot Isaac Morton Jaime Ruiz-Borau Vizárraga Jako Danar James A F Manley Jax + Jed Jeff Hungerford Jeff Nyte Jeremy Kahn @@ -302,6 +308,7 @@ generous deed immortalized in the next stable release of Godot Engine. Joe Alden Joel Fivat Joel Setterberg + Johannes Eichler Johannes Wuensch Jonas Rudlang Jonas Yamazaki @@ -316,6 +323,7 @@ generous deed immortalized in the next stable release of Godot Engine. Juan Negrier Judd Julian Murgia + Kasier Bald0 KC Chan kickmaniac Kiyohiro Kawamura (kyorohiro) @@ -324,22 +332,24 @@ generous deed immortalized in the next stable release of Godot Engine. KsyTek Games Kuan Cheang kycho + Lavik1988 Levi Lindsey Linus Lind Lundgren Lionel Gaillard Luis Moraes + LunaticInAHat + Lurkars Macil - magodev Major Haul Malcolm Malik Ahmed + Malik Nejer + Marcus Richter Markus Michael Egger Martin Holas Matthew Little Maxwell medecau - Menno Finlay-Smits - Mertcan Mermerkaya mhilbrunner Michael Dürwald Michael Gringauz @@ -347,9 +357,9 @@ generous deed immortalized in the next stable release of Godot Engine. Mikael Olsson Mikayla Hutchinson Mike Cunningham + mlevin cantu MoM Moritz Laass - Moritz Weissenberger MuffinManKen Natrim nee @@ -360,6 +370,7 @@ generous deed immortalized in the next stable release of Godot Engine. Nicolas SAN AGUSTIN Nithin Jino NZ + Omar Delarosa Oscar Norlander Pan Ip Patrick Forringer @@ -370,30 +381,30 @@ generous deed immortalized in the next stable release of Godot Engine. Philip O. Staiger Pierre-Igor Berthet Pietro Vertechi - Piotr Kaczmarski Pitsanu Tongprasin Poryg + Rafa Laguna + Rafal Wyszomirski Raphael Leroux - Red Hara Rémi Verschelde Ricardo Alcantara - Rob Crowle Robert Farr (Larington) Robert Hernandez Rodrigo Loli - Roger Burgess Roger Smith Roland Rząsa Roman Tinkov Ryan Groom Ryan Hentz Saad Khoudmi - Samdze + Samuele Zolfanelli + Sanka.X Sasori Olkof Scott D. Yelich Sebastian Michailidis Shane Sicienski Shane Spoor + Simon Ledam Simon Wenner SK Sootstone @@ -408,13 +419,18 @@ generous deed immortalized in the next stable release of Godot Engine. Tim Drumheller Tim Gudex Timo Schmidt + Timothy B. MacDonald + Tobbun Tom Larrow Torsten Crass Travis O'Brien + Trent Skinner Tryggve Sollid - Tyler Strafos + Turgut Temucin + Tyler Stafos UltyX Vaiktorg + Valeria Viana Gusmao Veodok Victor Vigilant Watch diff --git a/SConstruct b/SConstruct index 88bb43fbc7..ce2566559c 100644 --- a/SConstruct +++ b/SConstruct @@ -125,7 +125,7 @@ opts.Add(BoolVariable('verbose', "Enable verbose output for the compilation", Fa opts.Add(BoolVariable('progress', "Show a progress indicator during compilation", True)) opts.Add(EnumVariable('warnings', "Set the level of warnings emitted during compilation", 'all', ('extra', 'all', 'moderate', 'no'))) opts.Add(BoolVariable('werror', "Treat compiler warnings as errors. Depends on the level of warnings set with 'warnings'", False)) -opts.Add(BoolVariable('dev', "If yes, alias for verbose=yes warnings=all", False)) +opts.Add(BoolVariable('dev', "If yes, alias for verbose=yes warnings=extra werror=yes", False)) opts.Add('extra_suffix', "Custom extra suffix added to the base filename of all generated binary files", '') opts.Add(BoolVariable('vsproj', "Generate a Visual Studio solution", False)) opts.Add(EnumVariable('macports_clang', "Build using Clang from MacPorts", 'no', ('no', '5.0', 'devel'))) @@ -149,7 +149,7 @@ opts.Add(BoolVariable('builtin_libwebsockets', "Use the built-in libwebsockets l opts.Add(BoolVariable('builtin_mbedtls', "Use the built-in mbedTLS library", True)) opts.Add(BoolVariable('builtin_miniupnpc', "Use the built-in miniupnpc library", True)) opts.Add(BoolVariable('builtin_opus', "Use the built-in Opus library", True)) -opts.Add(BoolVariable('builtin_pcre2', "Use the built-in PCRE2 library)", True)) +opts.Add(BoolVariable('builtin_pcre2', "Use the built-in PCRE2 library", True)) opts.Add(BoolVariable('builtin_recast', "Use the built-in Recast library", True)) opts.Add(BoolVariable('builtin_squish', "Use the built-in squish library", True)) opts.Add(BoolVariable('builtin_xatlas', "Use the built-in xatlas library", True)) @@ -226,6 +226,23 @@ if env_base['platform'] != "": elif env_base['p'] != "": selected_platform = env_base['p'] env_base["platform"] = selected_platform +else: + # Missing `platform` argument, try to detect platform automatically + if sys.platform.startswith('linux'): + selected_platform = 'x11' + elif sys.platform == 'darwin': + selected_platform = 'osx' + elif sys.platform == 'win32': + selected_platform = 'windows' + else: + print("Could not detect platform automatically. Supported platforms:") + for x in platform_list: + print("\t" + x) + print("\nPlease run SCons again and select a valid platform: platform=<string>") + + if selected_platform != "": + print("Automatically detected platform: " + selected_platform) + env_base["platform"] = selected_platform if selected_platform in platform_list: tmppath = "./platform/" + selected_platform @@ -237,8 +254,9 @@ if selected_platform in platform_list: env = env_base.Clone() if env['dev']: - env["warnings"] = "all" env['verbose'] = True + env['warnings'] = "extra" + env['werror'] = True if env['vsproj']: env.vs_incs = [] @@ -320,7 +338,6 @@ if selected_platform in platform_list: if (env["warnings"] == 'extra'): # FIXME: enable -Wclobbered once #26351 is fixed - # FIXME: enable -Wduplicated-branches once #27594 is merged # Note: enable -Wimplicit-fallthrough for Clang (already part of -Wextra for GCC) # once we switch to C++11 or later (necessary for our FALLTHROUGH macro). env.Append(CCFLAGS=['-Wall', '-Wextra', '-Wno-unused-parameter'] @@ -328,7 +345,8 @@ if selected_platform in platform_list: env.Append(CXXFLAGS=['-Wctor-dtor-privacy', '-Wnon-virtual-dtor']) if methods.using_gcc(env): env.Append(CCFLAGS=['-Wno-clobbered', '-Walloc-zero', - '-Wduplicated-cond', '-Wstringop-overflow=4', '-Wlogical-op']) + '-Wduplicated-branches', '-Wduplicated-cond', + '-Wstringop-overflow=4', '-Wlogical-op']) env.Append(CXXFLAGS=['-Wnoexcept', '-Wplacement-new=1']) version = methods.get_compiler_version(env) if version != None and version[0] >= '9': @@ -492,13 +510,13 @@ if selected_platform in platform_list: if (conf.CheckCHeader(header[0])): env.AppendUnique(CPPDEFINES=[header[1]]) -else: +elif selected_platform != "": - print("No valid target platform selected.") + print("Invalid target platform: " + selected_platform) print("The following platforms were detected:") for x in platform_list: print("\t" + x) - print("\nPlease run SCons again with the argument: platform=<string>") + print("\nPlease run SCons again and select a valid platform: platform=<string>") # The following only makes sense when the env is defined, and assumes it is if 'env' in locals(): diff --git a/core/SCsub b/core/SCsub index 06efc8408d..166b7083e4 100644 --- a/core/SCsub +++ b/core/SCsub @@ -58,6 +58,7 @@ thirdparty_misc_sources = [ "md5.cpp", "pcg.cpp", "triangulator.cpp", + "clipper.cpp", ] thirdparty_misc_sources = [thirdparty_misc_dir + file for file in thirdparty_misc_sources] env_thirdparty.add_source_files(env.core_sources, thirdparty_misc_sources) diff --git a/core/bind/core_bind.cpp b/core/bind/core_bind.cpp index ba595b9627..8a898f3b53 100644 --- a/core/bind/core_bind.cpp +++ b/core/bind/core_bind.cpp @@ -308,6 +308,14 @@ void _OS::set_window_position(const Point2 &p_position) { OS::get_singleton()->set_window_position(p_position); } +Size2 _OS::get_max_window_size() const { + return OS::get_singleton()->get_max_window_size(); +} + +Size2 _OS::get_min_window_size() const { + return OS::get_singleton()->get_min_window_size(); +} + Size2 _OS::get_window_size() const { return OS::get_singleton()->get_window_size(); } @@ -316,6 +324,14 @@ Size2 _OS::get_real_window_size() const { return OS::get_singleton()->get_real_window_size(); } +void _OS::set_max_window_size(const Size2 &p_size) { + OS::get_singleton()->set_max_window_size(p_size); +} + +void _OS::set_min_window_size(const Size2 &p_size) { + OS::get_singleton()->set_min_window_size(p_size); +} + void _OS::set_window_size(const Size2 &p_size) { OS::get_singleton()->set_window_size(p_size); } @@ -442,14 +458,14 @@ Error _OS::shell_open(String p_uri) { return OS::get_singleton()->shell_open(p_uri); }; -int _OS::execute(const String &p_path, const Vector<String> &p_arguments, bool p_blocking, Array p_output) { +int _OS::execute(const String &p_path, const Vector<String> &p_arguments, bool p_blocking, Array p_output, bool p_read_stderr) { OS::ProcessID pid = -2; List<String> args; for (int i = 0; i < p_arguments.size(); i++) args.push_back(p_arguments[i]); String pipe; - Error err = OS::get_singleton()->execute(p_path, args, p_blocking, &pid, &pipe); + Error err = OS::get_singleton()->execute(p_path, args, p_blocking, &pid, &pipe, NULL, p_read_stderr); p_output.clear(); p_output.push_back(pipe); if (err != OK) @@ -611,6 +627,11 @@ uint64_t _OS::get_dynamic_memory_usage() const { return OS::get_singleton()->get_dynamic_memory_usage(); } +void _OS::set_native_icon(const String &p_filename) { + + OS::get_singleton()->set_native_icon(p_filename); +} + void _OS::set_icon(const Ref<Image> &p_icon) { OS::get_singleton()->set_icon(p_icon); @@ -1134,6 +1155,10 @@ void _OS::_bind_methods() { ClassDB::bind_method(D_METHOD("get_window_position"), &_OS::get_window_position); ClassDB::bind_method(D_METHOD("set_window_position", "position"), &_OS::set_window_position); ClassDB::bind_method(D_METHOD("get_window_size"), &_OS::get_window_size); + ClassDB::bind_method(D_METHOD("get_max_window_size"), &_OS::get_max_window_size); + ClassDB::bind_method(D_METHOD("get_min_window_size"), &_OS::get_min_window_size); + ClassDB::bind_method(D_METHOD("set_max_window_size", "size"), &_OS::set_max_window_size); + ClassDB::bind_method(D_METHOD("set_min_window_size", "size"), &_OS::set_min_window_size); ClassDB::bind_method(D_METHOD("set_window_size", "size"), &_OS::set_window_size); ClassDB::bind_method(D_METHOD("get_window_safe_area"), &_OS::get_window_safe_area); ClassDB::bind_method(D_METHOD("set_window_fullscreen", "enabled"), &_OS::set_window_fullscreen); @@ -1178,7 +1203,7 @@ void _OS::_bind_methods() { ClassDB::bind_method(D_METHOD("get_processor_count"), &_OS::get_processor_count); ClassDB::bind_method(D_METHOD("get_executable_path"), &_OS::get_executable_path); - ClassDB::bind_method(D_METHOD("execute", "path", "arguments", "blocking", "output"), &_OS::execute, DEFVAL(Array())); + ClassDB::bind_method(D_METHOD("execute", "path", "arguments", "blocking", "output", "read_stderr"), &_OS::execute, DEFVAL(Array()), DEFVAL(false)); ClassDB::bind_method(D_METHOD("kill", "pid"), &_OS::kill); ClassDB::bind_method(D_METHOD("shell_open", "uri"), &_OS::shell_open); ClassDB::bind_method(D_METHOD("get_process_id"), &_OS::get_process_id); @@ -1199,6 +1224,7 @@ void _OS::_bind_methods() { ClassDB::bind_method(D_METHOD("get_system_time_secs"), &_OS::get_system_time_secs); ClassDB::bind_method(D_METHOD("get_system_time_msecs"), &_OS::get_system_time_msecs); + ClassDB::bind_method(D_METHOD("set_native_icon", "filename"), &_OS::set_native_icon); ClassDB::bind_method(D_METHOD("set_icon", "icon"), &_OS::set_icon); ClassDB::bind_method(D_METHOD("get_exit_code"), &_OS::get_exit_code); @@ -1278,6 +1304,8 @@ void _OS::_bind_methods() { ADD_PROPERTY(PropertyInfo(Variant::BOOL, "vsync_enabled"), "set_use_vsync", "is_vsync_enabled"); ADD_PROPERTY(PropertyInfo(Variant::BOOL, "low_processor_usage_mode"), "set_low_processor_usage_mode", "is_in_low_processor_usage_mode"); ADD_PROPERTY(PropertyInfo(Variant::BOOL, "keep_screen_on"), "set_keep_screen_on", "is_keep_screen_on"); + ADD_PROPERTY(PropertyInfo(Variant::VECTOR2, "min_window_size"), "set_min_window_size", "get_min_window_size"); + ADD_PROPERTY(PropertyInfo(Variant::VECTOR2, "max_window_size"), "set_max_window_size", "get_max_window_size"); ADD_PROPERTY(PropertyInfo(Variant::INT, "screen_orientation", PROPERTY_HINT_ENUM, "Landscape,Portrait,Reverse Landscape,Reverse Portrait,Sensor Landscape,Sensor Portrait,Sensor"), "set_screen_orientation", "get_screen_orientation"); ADD_GROUP("Window", "window_"); ADD_PROPERTY(PropertyInfo(Variant::BOOL, "window_borderless"), "set_borderless_window", "get_borderless_window"); @@ -1491,11 +1519,21 @@ PoolVector<Vector3> _Geometry::segment_intersects_convex(const Vector3 &p_from, return r; } +bool _Geometry::is_polygon_clockwise(const Vector<Vector2> &p_polygon) { + + return Geometry::is_polygon_clockwise(p_polygon); +} + Vector<int> _Geometry::triangulate_polygon(const Vector<Vector2> &p_polygon) { return Geometry::triangulate_polygon(p_polygon); } +Vector<int> _Geometry::triangulate_delaunay_2d(const Vector<Vector2> &p_points) { + + return Geometry::triangulate_delaunay_2d(p_points); +} + Vector<Point2> _Geometry::convex_hull_2d(const Vector<Point2> &p_points) { return Geometry::convex_hull_2d(p_points); @@ -1506,6 +1544,107 @@ Vector<Vector3> _Geometry::clip_polygon(const Vector<Vector3> &p_points, const P return Geometry::clip_polygon(p_points, p_plane); } +Array _Geometry::merge_polygons_2d(const Vector<Vector2> &p_polygon_a, const Vector<Vector2> &p_polygon_b) { + + Vector<Vector<Point2> > polys = Geometry::merge_polygons_2d(p_polygon_a, p_polygon_b); + + Array ret; + + for (int i = 0; i < polys.size(); ++i) { + ret.push_back(polys[i]); + } + return ret; +} + +Array _Geometry::clip_polygons_2d(const Vector<Vector2> &p_polygon_a, const Vector<Vector2> &p_polygon_b) { + + Vector<Vector<Point2> > polys = Geometry::clip_polygons_2d(p_polygon_a, p_polygon_b); + + Array ret; + + for (int i = 0; i < polys.size(); ++i) { + ret.push_back(polys[i]); + } + return ret; +} + +Array _Geometry::intersect_polygons_2d(const Vector<Vector2> &p_polygon_a, const Vector<Vector2> &p_polygon_b) { + + Vector<Vector<Point2> > polys = Geometry::intersect_polygons_2d(p_polygon_a, p_polygon_b); + + Array ret; + + for (int i = 0; i < polys.size(); ++i) { + ret.push_back(polys[i]); + } + return ret; +} + +Array _Geometry::exclude_polygons_2d(const Vector<Vector2> &p_polygon_a, const Vector<Vector2> &p_polygon_b) { + + Vector<Vector<Point2> > polys = Geometry::exclude_polygons_2d(p_polygon_a, p_polygon_b); + + Array ret; + + for (int i = 0; i < polys.size(); ++i) { + ret.push_back(polys[i]); + } + return ret; +} + +Array _Geometry::clip_polyline_with_polygon_2d(const Vector<Vector2> &p_polyline, const Vector<Vector2> &p_polygon) { + + Vector<Vector<Point2> > polys = Geometry::clip_polyline_with_polygon_2d(p_polyline, p_polygon); + + Array ret; + + for (int i = 0; i < polys.size(); ++i) { + ret.push_back(polys[i]); + } + return ret; +} + +Array _Geometry::intersect_polyline_with_polygon_2d(const Vector<Vector2> &p_polyline, const Vector<Vector2> &p_polygon) { + + Vector<Vector<Point2> > polys = Geometry::intersect_polyline_with_polygon_2d(p_polyline, p_polygon); + + Array ret; + + for (int i = 0; i < polys.size(); ++i) { + ret.push_back(polys[i]); + } + return ret; +} + +Array _Geometry::offset_polygon_2d(const Vector<Vector2> &p_polygon, real_t p_delta, PolyJoinType p_join_type) { + + Vector<Vector<Point2> > polys = Geometry::offset_polygon_2d(p_polygon, p_delta, Geometry::PolyJoinType(p_join_type)); + + Array ret; + + for (int i = 0; i < polys.size(); ++i) { + ret.push_back(polys[i]); + } + return ret; +} + +Array _Geometry::offset_polyline_2d(const Vector<Vector2> &p_polygon, real_t p_delta, PolyJoinType p_join_type, PolyEndType p_end_type) { + + Vector<Vector<Point2> > polys = Geometry::offset_polyline_2d(p_polygon, p_delta, Geometry::PolyJoinType(p_join_type), Geometry::PolyEndType(p_end_type)); + + Array ret; + + for (int i = 0; i < polys.size(); ++i) { + ret.push_back(polys[i]); + } + return ret; +} + +Vector<Point2> _Geometry::transform_points_2d(const Vector<Point2> &p_points, const Transform2D &p_mat) { + + return Geometry::transform_points_2d(p_points, p_mat); +} + Dictionary _Geometry::make_atlas(const Vector<Size2> &p_rects) { Dictionary ret; @@ -1566,11 +1705,41 @@ void _Geometry::_bind_methods() { ClassDB::bind_method(D_METHOD("segment_intersects_convex", "from", "to", "planes"), &_Geometry::segment_intersects_convex); ClassDB::bind_method(D_METHOD("point_is_inside_triangle", "point", "a", "b", "c"), &_Geometry::point_is_inside_triangle); + ClassDB::bind_method(D_METHOD("is_polygon_clockwise", "polygon"), &_Geometry::is_polygon_clockwise); ClassDB::bind_method(D_METHOD("triangulate_polygon", "polygon"), &_Geometry::triangulate_polygon); + ClassDB::bind_method(D_METHOD("triangulate_delaunay_2d", "points"), &_Geometry::triangulate_delaunay_2d); ClassDB::bind_method(D_METHOD("convex_hull_2d", "points"), &_Geometry::convex_hull_2d); ClassDB::bind_method(D_METHOD("clip_polygon", "points", "plane"), &_Geometry::clip_polygon); + ClassDB::bind_method(D_METHOD("merge_polygons_2d", "polygon_a", "polygon_b"), &_Geometry::merge_polygons_2d); + ClassDB::bind_method(D_METHOD("clip_polygons_2d", "polygon_a", "polygon_b"), &_Geometry::clip_polygons_2d); + ClassDB::bind_method(D_METHOD("intersect_polygons_2d", "polygon_a", "polygon_b"), &_Geometry::intersect_polygons_2d); + ClassDB::bind_method(D_METHOD("exclude_polygons_2d", "polygon_a", "polygon_b"), &_Geometry::exclude_polygons_2d); + + ClassDB::bind_method(D_METHOD("clip_polyline_with_polygon_2d", "polyline", "polygon"), &_Geometry::clip_polyline_with_polygon_2d); + ClassDB::bind_method(D_METHOD("intersect_polyline_with_polygon_2d", "polyline", "polygon"), &_Geometry::intersect_polyline_with_polygon_2d); + + ClassDB::bind_method(D_METHOD("offset_polygon_2d", "polygon", "delta", "join_type"), &_Geometry::offset_polygon_2d, DEFVAL(JOIN_SQUARE)); + ClassDB::bind_method(D_METHOD("offset_polyline_2d", "polyline", "delta", "join_type", "end_type"), &_Geometry::offset_polyline_2d, DEFVAL(JOIN_SQUARE), DEFVAL(END_SQUARE)); + + ClassDB::bind_method(D_METHOD("transform_points_2d", "points", "transform"), &_Geometry::transform_points_2d); + ClassDB::bind_method(D_METHOD("make_atlas", "sizes"), &_Geometry::make_atlas); + + BIND_ENUM_CONSTANT(OPERATION_UNION); + BIND_ENUM_CONSTANT(OPERATION_DIFFERENCE); + BIND_ENUM_CONSTANT(OPERATION_INTERSECTION); + BIND_ENUM_CONSTANT(OPERATION_XOR); + + BIND_ENUM_CONSTANT(JOIN_SQUARE); + BIND_ENUM_CONSTANT(JOIN_ROUND); + BIND_ENUM_CONSTANT(JOIN_MITER); + + BIND_ENUM_CONSTANT(END_POLYGON); + BIND_ENUM_CONSTANT(END_JOINED); + BIND_ENUM_CONSTANT(END_BUTT); + BIND_ENUM_CONSTANT(END_SQUARE); + BIND_ENUM_CONSTANT(END_ROUND); } _Geometry::_Geometry() { diff --git a/core/bind/core_bind.h b/core/bind/core_bind.h index 2906de4a4a..2751ff242c 100644 --- a/core/bind/core_bind.h +++ b/core/bind/core_bind.h @@ -175,9 +175,13 @@ public: virtual int get_screen_dpi(int p_screen = -1) const; virtual Point2 get_window_position() const; virtual void set_window_position(const Point2 &p_position); + virtual Size2 get_max_window_size() const; + virtual Size2 get_min_window_size() const; virtual Size2 get_window_size() const; virtual Size2 get_real_window_size() const; virtual Rect2 get_window_safe_area() const; + virtual void set_max_window_size(const Size2 &p_size); + virtual void set_min_window_size(const Size2 &p_size); virtual void set_window_size(const Size2 &p_size); virtual void set_window_fullscreen(bool p_enabled); virtual bool is_window_fullscreen() const; @@ -214,7 +218,7 @@ public: bool is_in_low_processor_usage_mode() const; String get_executable_path() const; - int execute(const String &p_path, const Vector<String> &p_arguments, bool p_blocking, Array p_output = Array()); + int execute(const String &p_path, const Vector<String> &p_arguments, bool p_blocking, Array p_output = Array(), bool p_read_stderr = false); Error kill(int p_pid); Error shell_open(String p_uri); @@ -275,6 +279,7 @@ public: void set_use_file_access_save_and_swap(bool p_enable); + void set_native_icon(const String &p_filename); void set_icon(const Ref<Image> &p_icon); int get_exit_code() const; @@ -402,15 +407,55 @@ public: real_t segment_intersects_circle(const Vector2 &p_from, const Vector2 &p_to, const Vector2 &p_circle_pos, real_t p_circle_radius); int get_uv84_normal_bit(const Vector3 &p_vector); + bool is_polygon_clockwise(const Vector<Vector2> &p_polygon); Vector<int> triangulate_polygon(const Vector<Vector2> &p_polygon); + Vector<int> triangulate_delaunay_2d(const Vector<Vector2> &p_points); Vector<Point2> convex_hull_2d(const Vector<Point2> &p_points); Vector<Vector3> clip_polygon(const Vector<Vector3> &p_points, const Plane &p_plane); + enum PolyBooleanOperation { + OPERATION_UNION, + OPERATION_DIFFERENCE, + OPERATION_INTERSECTION, + OPERATION_XOR + }; + // 2D polygon boolean operations + Array merge_polygons_2d(const Vector<Vector2> &p_polygon_a, const Vector<Vector2> &p_polygon_b); // union (add) + Array clip_polygons_2d(const Vector<Vector2> &p_polygon_a, const Vector<Vector2> &p_polygon_b); // difference (subtract) + Array intersect_polygons_2d(const Vector<Vector2> &p_polygon_a, const Vector<Vector2> &p_polygon_b); // common area (multiply) + Array exclude_polygons_2d(const Vector<Vector2> &p_polygon_a, const Vector<Vector2> &p_polygon_b); // all but common area (xor) + + // 2D polyline vs polygon operations + Array clip_polyline_with_polygon_2d(const Vector<Vector2> &p_polyline, const Vector<Vector2> &p_polygon); // cut + Array intersect_polyline_with_polygon_2d(const Vector<Vector2> &p_polyline, const Vector<Vector2> &p_polygon); // chop + + // 2D offset polygons/polylines + enum PolyJoinType { + JOIN_SQUARE, + JOIN_ROUND, + JOIN_MITER + }; + enum PolyEndType { + END_POLYGON, + END_JOINED, + END_BUTT, + END_SQUARE, + END_ROUND + }; + Array offset_polygon_2d(const Vector<Vector2> &p_polygon, real_t p_delta, PolyJoinType p_join_type = JOIN_SQUARE); + Array offset_polyline_2d(const Vector<Vector2> &p_polygon, real_t p_delta, PolyJoinType p_join_type = JOIN_SQUARE, PolyEndType p_end_type = END_SQUARE); + + Vector<Point2> transform_points_2d(const Vector<Point2> &p_points, const Transform2D &p_mat); + Dictionary make_atlas(const Vector<Size2> &p_rects); _Geometry(); }; +VARIANT_ENUM_CAST(_Geometry::PolyBooleanOperation); +VARIANT_ENUM_CAST(_Geometry::PolyJoinType); +VARIANT_ENUM_CAST(_Geometry::PolyEndType); + class _File : public Reference { GDCLASS(_File, Reference); diff --git a/core/color.cpp b/core/color.cpp index efd2941b47..8959fce4e3 100644 --- a/core/color.cpp +++ b/core/color.cpp @@ -525,7 +525,7 @@ Color Color::from_hsv(float p_h, float p_s, float p_v, float p_a) const { float Color::gray() const { ERR_EXPLAIN("Color.gray() is deprecated and will be removed in a future version. Use Color.get_v() for a better grayscale approximation."); - WARN_DEPRECATED + WARN_DEPRECATED; return (r + g + b) / 3.0; } diff --git a/core/color_names.inc b/core/color_names.inc index e126bfe0f8..b0ef507d92 100644 --- a/core/color_names.inc +++ b/core/color_names.inc @@ -143,6 +143,7 @@ static void _populate_named_colors() { _named_colors.insert("thistle", Color(0.85, 0.75, 0.85)); _named_colors.insert("tomato", Color(1.00, 0.39, 0.28)); _named_colors.insert("turquoise", Color(0.25, 0.88, 0.82)); + _named_colors.insert("transparent", Color(1.00, 1.00, 1.00, 0.00)); _named_colors.insert("violet", Color(0.93, 0.51, 0.93)); _named_colors.insert("wheat", Color(0.96, 0.87, 0.70)); _named_colors.insert("white", Color(1.00, 1.00, 1.00)); diff --git a/core/command_queue_mt.h b/core/command_queue_mt.h index 59eabd8786..798fa4394d 100644 --- a/core/command_queue_mt.h +++ b/core/command_queue_mt.h @@ -406,8 +406,10 @@ class CommandQueueMT { tryagain: // tried to read an empty queue - if (read_ptr == write_ptr) + if (read_ptr == write_ptr) { + if (p_lock) unlock(); return false; + } uint32_t size_ptr = read_ptr; uint32_t size = *(uint32_t *)&command_mem[read_ptr] >> 1; diff --git a/core/core_string_names.cpp b/core/core_string_names.cpp index 1b59508abf..eeaae96754 100644 --- a/core/core_string_names.cpp +++ b/core/core_string_names.cpp @@ -44,6 +44,7 @@ CoreStringNames::CoreStringNames() : _iter_next(StaticCString::create("_iter_next")), _iter_get(StaticCString::create("_iter_get")), get_rid(StaticCString::create("get_rid")), + _to_string(StaticCString::create("_to_string")), #ifdef TOOLS_ENABLED _sections_unfolded(StaticCString::create("_sections_unfolded")), #endif diff --git a/core/core_string_names.h b/core/core_string_names.h index 6fea40e1b2..85f8bb7f62 100644 --- a/core/core_string_names.h +++ b/core/core_string_names.h @@ -62,6 +62,7 @@ public: StringName _iter_next; StringName _iter_get; StringName get_rid; + StringName _to_string; #ifdef TOOLS_ENABLED StringName _sections_unfolded; #endif diff --git a/core/engine.cpp b/core/engine.cpp index 9607dedb3c..50822244cf 100644 --- a/core/engine.cpp +++ b/core/engine.cpp @@ -38,6 +38,7 @@ void Engine::set_iterations_per_second(int p_ips) { + ERR_FAIL_COND(p_ips <= 0); ips = p_ips; } int Engine::get_iterations_per_second() const { diff --git a/core/global_constants.cpp b/core/global_constants.cpp index fb90403226..671b3c545b 100644 --- a/core/global_constants.cpp +++ b/core/global_constants.cpp @@ -425,6 +425,16 @@ void register_global_constants() { BIND_GLOBAL_ENUM_CONSTANT(JOY_DS_X); BIND_GLOBAL_ENUM_CONSTANT(JOY_DS_Y); + BIND_GLOBAL_ENUM_CONSTANT(JOY_VR_GRIP); + BIND_GLOBAL_ENUM_CONSTANT(JOY_VR_PAD); + BIND_GLOBAL_ENUM_CONSTANT(JOY_VR_TRIGGER); + + BIND_GLOBAL_ENUM_CONSTANT(JOY_OCULUS_AX); + BIND_GLOBAL_ENUM_CONSTANT(JOY_OCULUS_BY); + BIND_GLOBAL_ENUM_CONSTANT(JOY_OCULUS_MENU); + + BIND_GLOBAL_ENUM_CONSTANT(JOY_OPENVR_MENU); + BIND_GLOBAL_ENUM_CONSTANT(JOY_SELECT); BIND_GLOBAL_ENUM_CONSTANT(JOY_START); BIND_GLOBAL_ENUM_CONSTANT(JOY_DPAD_UP); @@ -459,6 +469,12 @@ void register_global_constants() { BIND_GLOBAL_ENUM_CONSTANT(JOY_ANALOG_L2); BIND_GLOBAL_ENUM_CONSTANT(JOY_ANALOG_R2); + BIND_GLOBAL_ENUM_CONSTANT(JOY_VR_ANALOG_TRIGGER); + BIND_GLOBAL_ENUM_CONSTANT(JOY_VR_ANALOG_GRIP); + + BIND_GLOBAL_ENUM_CONSTANT(JOY_OPENVR_TOUCHPADX); + BIND_GLOBAL_ENUM_CONSTANT(JOY_OPENVR_TOUCHPADY); + // midi BIND_GLOBAL_ENUM_CONSTANT(MIDI_MESSAGE_NOTE_OFF); BIND_GLOBAL_ENUM_CONSTANT(MIDI_MESSAGE_NOTE_ON); diff --git a/core/hash_map.h b/core/hash_map.h index 44459a3080..31332991de 100644 --- a/core/hash_map.h +++ b/core/hash_map.h @@ -162,20 +162,21 @@ private: new_hash_table[i] = 0; } - for (int i = 0; i < (1 << hash_table_power); i++) { + if (hash_table) { + for (int i = 0; i < (1 << hash_table_power); i++) { - while (hash_table[i]) { + while (hash_table[i]) { - Element *se = hash_table[i]; - hash_table[i] = se->next; - int new_pos = se->hash & ((1 << new_hash_table_power) - 1); - se->next = new_hash_table[new_pos]; - new_hash_table[new_pos] = se; + Element *se = hash_table[i]; + hash_table[i] = se->next; + int new_pos = se->hash & ((1 << new_hash_table_power) - 1); + se->next = new_hash_table[new_pos]; + new_hash_table[new_pos] = se; + } } - } - if (hash_table) memdelete_arr(hash_table); + } hash_table = new_hash_table; hash_table_power = new_hash_table_power; } diff --git a/core/image.cpp b/core/image.cpp index 30af724de9..c85d7f6bcc 100644 --- a/core/image.cpp +++ b/core/image.cpp @@ -749,7 +749,7 @@ static void _scale_lanczos(const uint8_t *__restrict p_src, uint8_t *__restrict float scale_factor = MAX(x_scale, 1); // A larger kernel is required only when downscaling int32_t half_kernel = LANCZOS_TYPE * scale_factor; - float *kernel = memnew_arr(float, half_kernel * 2 - 1); + float *kernel = memnew_arr(float, half_kernel * 2); for (int32_t buffer_x = 0; buffer_x < dst_width; buffer_x++) { @@ -800,7 +800,7 @@ static void _scale_lanczos(const uint8_t *__restrict p_src, uint8_t *__restrict float scale_factor = MAX(y_scale, 1); int32_t half_kernel = LANCZOS_TYPE * scale_factor; - float *kernel = memnew_arr(float, half_kernel * 2 - 1); + float *kernel = memnew_arr(float, half_kernel * 2); for (int32_t dst_y = 0; dst_y < dst_height; dst_y++) { diff --git a/core/input_map.cpp b/core/input_map.cpp index 15f68f9c2a..012c6a7c4f 100644 --- a/core/input_map.cpp +++ b/core/input_map.cpp @@ -202,7 +202,7 @@ bool InputMap::event_get_action_status(const Ref<InputEvent> &p_event, const Str if (p_pressed != NULL) *p_pressed = input_event_action->is_pressed(); if (p_strength != NULL) - *p_strength = (*p_pressed) ? 1.0f : 0.0f; + *p_strength = (*p_pressed) ? input_event_action->get_strength() : 0.0f; return input_event_action->get_action() == p_action; } diff --git a/core/io/config_file.cpp b/core/io/config_file.cpp index 414742deeb..871e21df3e 100644 --- a/core/io/config_file.cpp +++ b/core/io/config_file.cpp @@ -198,10 +198,6 @@ Error ConfigFile::load(const String &p_path) { section = next_tag.name; } } - - memdelete(f); - - return OK; } void ConfigFile::_bind_methods() { diff --git a/core/io/file_access_encrypted.cpp b/core/io/file_access_encrypted.cpp index 3cf6908961..7dea749a43 100644 --- a/core/io/file_access_encrypted.cpp +++ b/core/io/file_access_encrypted.cpp @@ -100,6 +100,7 @@ Error FileAccessEncrypted::open_and_parse(FileAccess *p_base, const Vector<uint8 MD5Update(&md5, (uint8_t *)data.ptr(), data.size()); MD5Final(&md5); + ERR_EXPLAIN("The MD5 sum of the decrypted file does not match the expected value. It could be that the file is corrupt, or that the provided decryption key is invalid."); ERR_FAIL_COND_V(String::md5(md5.digest) != String::md5(md5d), ERR_FILE_CORRUPT); file = p_base; @@ -307,8 +308,8 @@ uint32_t FileAccessEncrypted::_get_unix_permissions(const String &p_file) { } Error FileAccessEncrypted::_set_unix_permissions(const String &p_file, uint32_t p_permissions) { - - return FAILED; + ERR_PRINT("Setting UNIX permissions on encrypted files is not implemented yet"); + return ERR_UNAVAILABLE; } FileAccessEncrypted::FileAccessEncrypted() { diff --git a/core/io/file_access_network.cpp b/core/io/file_access_network.cpp index 722e62c54e..5dd167c581 100644 --- a/core/io/file_access_network.cpp +++ b/core/io/file_access_network.cpp @@ -118,7 +118,10 @@ void FileAccessNetworkClient::_thread_func() { FileAccessNetwork *fa = NULL; if (response != FileAccessNetwork::RESPONSE_DATA) { - ERR_FAIL_COND(!accesses.has(id)); + if (!accesses.has(id)) { + unlock_mutex(); + ERR_FAIL_COND(!accesses.has(id)); + } } if (accesses.has(id)) @@ -498,13 +501,13 @@ uint64_t FileAccessNetwork::_get_modified_time(const String &p_file) { } uint32_t FileAccessNetwork::_get_unix_permissions(const String &p_file) { - //could be implemented, not sure if worth it + ERR_PRINT("Getting UNIX permissions from network drives is not implemented yet"); return 0; } Error FileAccessNetwork::_set_unix_permissions(const String &p_file, uint32_t p_permissions) { - - return FAILED; + ERR_PRINT("Setting UNIX permissions on network drives is not implemented yet"); + return ERR_UNAVAILABLE; } void FileAccessNetwork::configure() { diff --git a/core/io/http_client.cpp b/core/io/http_client.cpp index ce2054db36..891fb7b0ca 100644 --- a/core/io/http_client.cpp +++ b/core/io/http_client.cpp @@ -346,6 +346,12 @@ Error HTTPClient::poll() { } else { // We are already handshaking, which means we can use your already active SSL connection ssl = static_cast<Ref<StreamPeerSSL> >(connection); + if (ssl.is_null()) { + close(); + status = STATUS_SSL_HANDSHAKE_ERROR; + return ERR_CANT_CONNECT; + } + ssl->poll(); // Try to finish the handshake } diff --git a/core/io/image_loader.cpp b/core/io/image_loader.cpp index a5a0738140..a759e615c7 100644 --- a/core/io/image_loader.cpp +++ b/core/io/image_loader.cpp @@ -65,6 +65,9 @@ Error ImageLoader::load_image(String p_file, Ref<Image> p_image, FileAccess *p_c if (!loader[i]->recognize(extension)) continue; Error err = loader[i]->load_image(p_image, f, p_force_linear, p_scale); + if (err != OK) { + ERR_PRINTS("Error loading image: " + p_file); + } if (err != ERR_FILE_UNRECOGNIZED) { diff --git a/core/io/image_loader.h b/core/io/image_loader.h index 95c562b7a9..ae4b72a534 100644 --- a/core/io/image_loader.h +++ b/core/io/image_loader.h @@ -88,7 +88,6 @@ public: }; class ResourceFormatLoaderImage : public ResourceFormatLoader { - GDCLASS(ResourceFormatLoaderImage, ResourceFormatLoader) public: virtual RES load(const String &p_path, const String &p_original_path = "", Error *r_error = NULL); virtual void get_recognized_extensions(List<String> *p_extensions) const; diff --git a/core/io/marshalls.cpp b/core/io/marshalls.cpp index 81b3829ffc..d1b6b82cf0 100644 --- a/core/io/marshalls.cpp +++ b/core/io/marshalls.cpp @@ -1231,11 +1231,15 @@ Error encode_variant(const Variant &p_variant, uint8_t *r_buffer, int &r_len, bo buf += 4; PoolVector<uint8_t>::Read r = data.read(); copymem(buf, &r[0], datalen * datasize); + buf += datalen * datasize; } r_len += 4 + datalen * datasize; - while (r_len % 4) + while (r_len % 4) { r_len++; + if (buf) + *(buf++) = 0; + } } break; case Variant::POOL_INT_ARRAY: { diff --git a/core/io/resource_format_binary.h b/core/io/resource_format_binary.h index a4894e4033..27777c8e8b 100644 --- a/core/io/resource_format_binary.h +++ b/core/io/resource_format_binary.h @@ -100,7 +100,6 @@ public: }; class ResourceFormatLoaderBinary : public ResourceFormatLoader { - GDCLASS(ResourceFormatLoaderBinary, ResourceFormatLoader) public: virtual Ref<ResourceInteractiveLoader> load_interactive(const String &p_path, const String &p_original_path = "", Error *r_error = NULL); virtual void get_recognized_extensions_for_type(const String &p_type, List<String> *p_extensions) const; @@ -162,7 +161,6 @@ public: }; class ResourceFormatSaverBinary : public ResourceFormatSaver { - GDCLASS(ResourceFormatSaverBinary, ResourceFormatSaver) public: static ResourceFormatSaverBinary *singleton; virtual Error save(const String &p_path, const RES &p_resource, uint32_t p_flags = 0); diff --git a/core/io/resource_importer.cpp b/core/io/resource_importer.cpp index 038a34ed51..4a58d37ca5 100644 --- a/core/io/resource_importer.cpp +++ b/core/io/resource_importer.cpp @@ -301,8 +301,7 @@ String ResourceFormatImporter::get_import_group_file(const String &p_path) const bool valid = true; PathAndType pat; _get_path_and_type(p_path, pat, &valid); - return valid?pat.group_file:String(); - + return valid ? pat.group_file : String(); } bool ResourceFormatImporter::is_import_valid(const String &p_path) const { diff --git a/core/io/resource_importer.h b/core/io/resource_importer.h index bdbdde6df6..317f301b5c 100644 --- a/core/io/resource_importer.h +++ b/core/io/resource_importer.h @@ -37,8 +37,6 @@ class ResourceImporter; class ResourceFormatImporter : public ResourceFormatLoader { - GDCLASS(ResourceFormatImporter, ResourceFormatLoader) - struct PathAndType { String path; String type; @@ -126,7 +124,7 @@ public: virtual Error import(const String &p_source_file, const String &p_save_path, const Map<StringName, Variant> &p_options, List<String> *r_platform_variants, List<String> *r_gen_files = NULL, Variant *r_metadata = NULL) = 0; - virtual Error import_group_file(const String& p_group_file,const Map<String,Map<StringName, Variant> >&p_source_file_options, const Map<String,String>& p_base_paths) { return ERR_UNAVAILABLE; } + virtual Error import_group_file(const String &p_group_file, const Map<String, Map<StringName, Variant> > &p_source_file_options, const Map<String, String> &p_base_paths) { return ERR_UNAVAILABLE; } virtual bool are_import_settings_valid(const String &p_path) const { return true; } virtual String get_import_settings_string() const { return String(); } }; diff --git a/core/io/translation_loader_po.h b/core/io/translation_loader_po.h index d5fd264385..9d9c5d16ee 100644 --- a/core/io/translation_loader_po.h +++ b/core/io/translation_loader_po.h @@ -36,7 +36,6 @@ #include "core/translation.h" class TranslationLoaderPO : public ResourceFormatLoader { - GDCLASS(TranslationLoaderPO, ResourceFormatLoader) public: static RES load_translation(FileAccess *f, Error *r_error, const String &p_path = String()); virtual RES load(const String &p_path, const String &p_original_path = "", Error *r_error = NULL); diff --git a/core/io/xml_parser.cpp b/core/io/xml_parser.cpp index 4638ddcc09..f55af5a96a 100644 --- a/core/io/xml_parser.cpp +++ b/core/io/xml_parser.cpp @@ -348,7 +348,7 @@ uint64_t XMLParser::get_node_offset() const { Error XMLParser::seek(uint64_t p_pos) { - ERR_FAIL_COND_V(!data, ERR_FILE_EOF) + ERR_FAIL_COND_V(!data, ERR_FILE_EOF); ERR_FAIL_COND_V(p_pos >= length, ERR_FILE_EOF); P = data + p_pos; diff --git a/core/list.h b/core/list.h index 103a82a31d..d1b528562d 100644 --- a/core/list.h +++ b/core/list.h @@ -602,9 +602,6 @@ public: Element *next = current->next_ptr; - //disconnect - current->next_ptr = NULL; - if (from != current) { current->prev_ptr = NULL; diff --git a/core/math/a_star.cpp b/core/math/a_star.cpp index 3d71e66f80..359446dde6 100644 --- a/core/math/a_star.cpp +++ b/core/math/a_star.cpp @@ -99,14 +99,22 @@ void AStar::remove_point(int p_id) { Point *p = points[p_id]; - Map<int, Point *>::Element *PE = points.front(); - while (PE) { - for (Set<Point *>::Element *E = PE->get()->neighbours.front(); E; E = E->next()) { - Segment s(p_id, E->get()->id); - segments.erase(s); - E->get()->neighbours.erase(p); - } - PE = PE->next(); + for (Set<Point *>::Element *E = p->neighbours.front(); E; E = E->next()) { + + Segment s(p_id, E->get()->id); + segments.erase(s); + + E->get()->neighbours.erase(p); + E->get()->unlinked_neighbours.erase(p); + } + + for (Set<Point *>::Element *E = p->unlinked_neighbours.front(); E; E = E->next()) { + + Segment s(p_id, E->get()->id); + segments.erase(s); + + E->get()->neighbours.erase(p); + E->get()->unlinked_neighbours.erase(p); } memdelete(p); @@ -125,6 +133,8 @@ void AStar::connect_points(int p_id, int p_with_id, bool bidirectional) { if (bidirectional) b->neighbours.insert(a); + else + b->unlinked_neighbours.insert(a); Segment s(p_id, p_with_id); if (s.from == p_id) { @@ -147,7 +157,9 @@ void AStar::disconnect_points(int p_id, int p_with_id) { Point *a = points[p_id]; Point *b = points[p_with_id]; a->neighbours.erase(b); + a->unlinked_neighbours.erase(b); b->neighbours.erase(a); + b->unlinked_neighbours.erase(a); } bool AStar::has_point(int p_id) const { @@ -423,10 +435,16 @@ PoolVector<int> AStar::get_id_path(int p_from_id, int p_to_id) { } void AStar::set_point_disabled(int p_id, bool p_disabled) { + + ERR_FAIL_COND(!points.has(p_id)); + points[p_id]->enabled = !p_disabled; } bool AStar::is_point_disabled(int p_id) const { + + ERR_FAIL_COND_V(!points.has(p_id), false); + return !points[p_id]->enabled; } diff --git a/core/math/a_star.h b/core/math/a_star.h index fac8a9d312..ba35d929b3 100644 --- a/core/math/a_star.h +++ b/core/math/a_star.h @@ -54,6 +54,7 @@ class AStar : public Reference { bool enabled; Set<Point *> neighbours; + Set<Point *> unlinked_neighbours; // Used for pathfinding Point *prev_point; diff --git a/core/math/basis.cpp b/core/math/basis.cpp index 9fcecd1ba6..1540bc8fe1 100644 --- a/core/math/basis.cpp +++ b/core/math/basis.cpp @@ -813,21 +813,28 @@ void Basis::set_axis_angle(const Vector3 &p_axis, real_t p_phi) { ERR_FAIL_COND(!p_axis.is_normalized()); #endif Vector3 axis_sq(p_axis.x * p_axis.x, p_axis.y * p_axis.y, p_axis.z * p_axis.z); - real_t cosine = Math::cos(p_phi); - real_t sine = Math::sin(p_phi); - elements[0][0] = axis_sq.x + cosine * (1.0 - axis_sq.x); - elements[0][1] = p_axis.x * p_axis.y * (1.0 - cosine) - p_axis.z * sine; - elements[0][2] = p_axis.z * p_axis.x * (1.0 - cosine) + p_axis.y * sine; - - elements[1][0] = p_axis.x * p_axis.y * (1.0 - cosine) + p_axis.z * sine; elements[1][1] = axis_sq.y + cosine * (1.0 - axis_sq.y); - elements[1][2] = p_axis.y * p_axis.z * (1.0 - cosine) - p_axis.x * sine; - - elements[2][0] = p_axis.z * p_axis.x * (1.0 - cosine) - p_axis.y * sine; - elements[2][1] = p_axis.y * p_axis.z * (1.0 - cosine) + p_axis.x * sine; elements[2][2] = axis_sq.z + cosine * (1.0 - axis_sq.z); + + real_t sine = Math::sin(p_phi); + real_t t = 1 - cosine; + + real_t xyzt = p_axis.x * p_axis.y * t; + real_t zyxs = p_axis.z * sine; + elements[0][1] = xyzt - zyxs; + elements[1][0] = xyzt + zyxs; + + xyzt = p_axis.x * p_axis.z * t; + zyxs = p_axis.y * sine; + elements[0][2] = xyzt + zyxs; + elements[2][0] = xyzt - zyxs; + + xyzt = p_axis.y * p_axis.z * t; + zyxs = p_axis.x * sine; + elements[1][2] = xyzt - zyxs; + elements[2][1] = xyzt + zyxs; } void Basis::set_axis_angle_scale(const Vector3 &p_axis, real_t p_phi, const Vector3 &p_scale) { diff --git a/core/math/expression.cpp b/core/math/expression.cpp index 079c9b524f..e484e9194d 100644 --- a/core/math/expression.cpp +++ b/core/math/expression.cpp @@ -70,6 +70,7 @@ const char *Expression::func_name[Expression::FUNC_MAX] = { "inverse_lerp", "range_lerp", "smoothstep", + "move_toward", "dectime", "randomize", "randi", @@ -189,6 +190,7 @@ int Expression::get_func_argument_count(BuiltinFunc p_func) { case MATH_LERP: case MATH_INVERSE_LERP: case MATH_SMOOTHSTEP: + case MATH_MOVE_TOWARD: case MATH_DECTIME: case MATH_WRAP: case MATH_WRAPF: @@ -407,6 +409,13 @@ void Expression::exec_func(BuiltinFunc p_func, const Variant **p_inputs, Variant VALIDATE_ARG_NUM(2); *r_return = Math::smoothstep((double)*p_inputs[0], (double)*p_inputs[1], (double)*p_inputs[2]); } break; + case MATH_MOVE_TOWARD: { + + VALIDATE_ARG_NUM(0); + VALIDATE_ARG_NUM(1); + VALIDATE_ARG_NUM(2); + *r_return = Math::move_toward((double)*p_inputs[0], (double)*p_inputs[1], (double)*p_inputs[2]); + } break; case MATH_DECTIME: { VALIDATE_ARG_NUM(0); diff --git a/core/math/expression.h b/core/math/expression.h index f20619f0b6..79f6f3989d 100644 --- a/core/math/expression.h +++ b/core/math/expression.h @@ -68,6 +68,7 @@ public: MATH_INVERSE_LERP, MATH_RANGE_LERP, MATH_SMOOTHSTEP, + MATH_MOVE_TOWARD, MATH_DECTIME, MATH_RANDOMIZE, MATH_RAND, diff --git a/core/math/geometry.cpp b/core/math/geometry.cpp index 0ab8707d3a..8314cb827c 100644 --- a/core/math/geometry.cpp +++ b/core/math/geometry.cpp @@ -31,8 +31,11 @@ #include "geometry.h" #include "core/print_string.h" +#include "thirdparty/misc/clipper.hpp" #include "thirdparty/misc/triangulator.h" +#define SCALE_FACTOR 100000.0 // based on CMP_EPSILON + /* this implementation is very inefficient, commenting unless bugs happen. See the other one. bool Geometry::is_point_in_polygon(const Vector2 &p_point, const Vector<Vector2> &p_polygon) { @@ -1134,3 +1137,106 @@ void Geometry::make_atlas(const Vector<Size2i> &p_rects, Vector<Point2i> &r_resu r_size = Size2(results[best].max_w, results[best].max_h); } + +Vector<Vector<Point2> > Geometry::_polypaths_do_operation(PolyBooleanOperation p_op, const Vector<Point2> &p_polypath_a, const Vector<Point2> &p_polypath_b, bool is_a_open) { + + using namespace ClipperLib; + + ClipType op = ctUnion; + + switch (p_op) { + case OPERATION_UNION: op = ctUnion; break; + case OPERATION_DIFFERENCE: op = ctDifference; break; + case OPERATION_INTERSECTION: op = ctIntersection; break; + case OPERATION_XOR: op = ctXor; break; + } + Path path_a, path_b; + + // Need to scale points (Clipper's requirement for robust computation) + for (int i = 0; i != p_polypath_a.size(); ++i) { + path_a << IntPoint(p_polypath_a[i].x * SCALE_FACTOR, p_polypath_a[i].y * SCALE_FACTOR); + } + for (int i = 0; i != p_polypath_b.size(); ++i) { + path_b << IntPoint(p_polypath_b[i].x * SCALE_FACTOR, p_polypath_b[i].y * SCALE_FACTOR); + } + Clipper clp; + clp.AddPath(path_a, ptSubject, !is_a_open); // forward compatible with Clipper 10.0.0 + clp.AddPath(path_b, ptClip, true); // polylines cannot be set as clip + + Paths paths; + + if (is_a_open) { + PolyTree tree; // needed to populate polylines + clp.Execute(op, tree); + OpenPathsFromPolyTree(tree, paths); + } else { + clp.Execute(op, paths); // works on closed polygons only + } + // Have to scale points down now + Vector<Vector<Point2> > polypaths; + + for (Paths::size_type i = 0; i < paths.size(); ++i) { + Vector<Vector2> polypath; + + const Path &scaled_path = paths[i]; + + for (Paths::size_type j = 0; j < scaled_path.size(); ++j) { + polypath.push_back(Point2( + static_cast<real_t>(scaled_path[j].X) / SCALE_FACTOR, + static_cast<real_t>(scaled_path[j].Y) / SCALE_FACTOR)); + } + polypaths.push_back(polypath); + } + return polypaths; +} + +Vector<Vector<Point2> > Geometry::_polypath_offset(const Vector<Point2> &p_polypath, real_t p_delta, PolyJoinType p_join_type, PolyEndType p_end_type) { + + using namespace ClipperLib; + + JoinType jt = jtSquare; + + switch (p_join_type) { + case JOIN_SQUARE: jt = jtSquare; break; + case JOIN_ROUND: jt = jtRound; break; + case JOIN_MITER: jt = jtMiter; break; + } + + EndType et = etClosedPolygon; + + switch (p_end_type) { + case END_POLYGON: et = etClosedPolygon; break; + case END_JOINED: et = etClosedLine; break; + case END_BUTT: et = etOpenButt; break; + case END_SQUARE: et = etOpenSquare; break; + case END_ROUND: et = etOpenRound; break; + } + ClipperOffset co; + Path path; + + // Need to scale points (Clipper's requirement for robust computation) + for (int i = 0; i != p_polypath.size(); ++i) { + path << IntPoint(p_polypath[i].x * SCALE_FACTOR, p_polypath[i].y * SCALE_FACTOR); + } + co.AddPath(path, jt, et); + + Paths paths; + co.Execute(paths, p_delta * SCALE_FACTOR); // inflate/deflate + + // Have to scale points down now + Vector<Vector<Point2> > polypaths; + + for (Paths::size_type i = 0; i < paths.size(); ++i) { + Vector<Vector2> polypath; + + const Path &scaled_path = paths[i]; + + for (Paths::size_type j = 0; j < scaled_path.size(); ++j) { + polypath.push_back(Point2( + static_cast<real_t>(scaled_path[j].X) / SCALE_FACTOR, + static_cast<real_t>(scaled_path[j].Y) / SCALE_FACTOR)); + } + polypaths.push_back(polypath); + } + return polypaths; +} diff --git a/core/math/geometry.h b/core/math/geometry.h index 0b2adf9513..0e144e491f 100644 --- a/core/math/geometry.h +++ b/core/math/geometry.h @@ -31,6 +31,7 @@ #ifndef GEOMETRY_H #define GEOMETRY_H +#include "core/math/delaunay.h" #include "core/math/face3.h" #include "core/math/rect2.h" #include "core/math/triangulate.h" @@ -785,6 +786,91 @@ public: return clipped; } + enum PolyBooleanOperation { + OPERATION_UNION, + OPERATION_DIFFERENCE, + OPERATION_INTERSECTION, + OPERATION_XOR + }; + enum PolyJoinType { + JOIN_SQUARE, + JOIN_ROUND, + JOIN_MITER + }; + enum PolyEndType { + END_POLYGON, + END_JOINED, + END_BUTT, + END_SQUARE, + END_ROUND + }; + + static Vector<Vector<Point2> > merge_polygons_2d(const Vector<Point2> &p_polygon_a, const Vector<Point2> &p_polygon_b) { + + return _polypaths_do_operation(OPERATION_UNION, p_polygon_a, p_polygon_b); + } + + static Vector<Vector<Point2> > clip_polygons_2d(const Vector<Point2> &p_polygon_a, const Vector<Point2> &p_polygon_b) { + + return _polypaths_do_operation(OPERATION_DIFFERENCE, p_polygon_a, p_polygon_b); + } + + static Vector<Vector<Point2> > intersect_polygons_2d(const Vector<Point2> &p_polygon_a, const Vector<Point2> &p_polygon_b) { + + return _polypaths_do_operation(OPERATION_INTERSECTION, p_polygon_a, p_polygon_b); + } + + static Vector<Vector<Point2> > exclude_polygons_2d(const Vector<Point2> &p_polygon_a, const Vector<Point2> &p_polygon_b) { + + return _polypaths_do_operation(OPERATION_XOR, p_polygon_a, p_polygon_b); + } + + static Vector<Vector<Point2> > clip_polyline_with_polygon_2d(const Vector<Vector2> &p_polyline, const Vector<Vector2> &p_polygon) { + + return _polypaths_do_operation(OPERATION_DIFFERENCE, p_polyline, p_polygon, true); + } + + static Vector<Vector<Point2> > intersect_polyline_with_polygon_2d(const Vector<Vector2> &p_polyline, const Vector<Vector2> &p_polygon) { + + return _polypaths_do_operation(OPERATION_INTERSECTION, p_polyline, p_polygon, true); + } + + static Vector<Vector<Point2> > offset_polygon_2d(const Vector<Vector2> &p_polygon, real_t p_delta, PolyJoinType p_join_type) { + + return _polypath_offset(p_polygon, p_delta, p_join_type, END_POLYGON); + } + + static Vector<Vector<Point2> > offset_polyline_2d(const Vector<Vector2> &p_polygon, real_t p_delta, PolyJoinType p_join_type, PolyEndType p_end_type) { + + ERR_EXPLAIN("Attempt to offset a polyline like a polygon (use offset_polygon_2d instead)."); + ERR_FAIL_COND_V(p_end_type == END_POLYGON, Vector<Vector<Point2> >()); + + return _polypath_offset(p_polygon, p_delta, p_join_type, p_end_type); + } + + static Vector<Point2> transform_points_2d(const Vector<Point2> &p_points, const Transform2D &p_mat) { + + Vector<Point2> points; + + for (int i = 0; i < p_points.size(); ++i) { + points.push_back(p_mat.xform(p_points[i])); + } + return points; + } + + static Vector<int> triangulate_delaunay_2d(const Vector<Vector2> &p_points) { + + Vector<Delaunay2D::Triangle> tr = Delaunay2D::triangulate(p_points); + Vector<int> triangles; + + for (int i = 0; i < tr.size(); i++) { + triangles.push_back(tr[i].points[0]); + triangles.push_back(tr[i].points[1]); + triangles.push_back(tr[i].points[2]); + } + return triangles; + } + static Vector<int> triangulate_polygon(const Vector<Vector2> &p_polygon) { Vector<int> triangles; @@ -951,7 +1037,6 @@ public: H.resize(k); return H; } - static Vector<Vector<Vector2> > decompose_polygon_in_convex(Vector<Point2> polygon); static MeshData build_convex_mesh(const PoolVector<Plane> &p_planes); @@ -961,6 +1046,10 @@ public: static PoolVector<Plane> build_capsule_planes(real_t p_radius, real_t p_height, int p_sides, int p_lats, Vector3::Axis p_axis = Vector3::AXIS_Z); static void make_atlas(const Vector<Size2i> &p_rects, Vector<Point2i> &r_result, Size2i &r_size); + +private: + static Vector<Vector<Point2> > _polypaths_do_operation(PolyBooleanOperation p_op, const Vector<Point2> &p_polypath_a, const Vector<Point2> &p_polypath_b, bool is_a_open = false); + static Vector<Vector<Point2> > _polypath_offset(const Vector<Point2> &p_polypath, real_t p_delta, PolyJoinType p_join_type, PolyEndType p_end_type); }; #endif diff --git a/core/math/math_funcs.h b/core/math/math_funcs.h index 82b5b56c01..0e3bd8a318 100644 --- a/core/math/math_funcs.h +++ b/core/math/math_funcs.h @@ -224,6 +224,8 @@ public: float x = CLAMP((p_weight - p_from) / (p_to - p_from), 0.0f, 1.0f); return x * x * (3.0f - 2.0f * x); } + static _ALWAYS_INLINE_ double move_toward(double p_from, double p_to, double p_delta) { return abs(p_to - p_from) <= p_delta ? p_to : p_from + SGN(p_to - p_from) * p_delta; } + static _ALWAYS_INLINE_ float move_toward(float p_from, float p_to, float p_delta) { return abs(p_to - p_from) <= p_delta ? p_to : p_from + SGN(p_to - p_from) * p_delta; } static _ALWAYS_INLINE_ double linear2db(double p_linear) { return Math::log(p_linear) * 8.6858896380650365530225783783321; } static _ALWAYS_INLINE_ float linear2db(float p_linear) { return Math::log(p_linear) * 8.6858896380650365530225783783321; } diff --git a/core/math/random_number_generator.h b/core/math/random_number_generator.h index 6b6bcdd2cd..a6182a4b33 100644 --- a/core/math/random_number_generator.h +++ b/core/math/random_number_generator.h @@ -59,7 +59,10 @@ public: _FORCE_INLINE_ int randi_range(int from, int to) { unsigned int ret = randbase.rand(); - return ret % (to - from + 1) + from; + if (to < from) + return ret % (from - to + 1) + to; + else + return ret % (to - from + 1) + from; } RandomNumberGenerator(); diff --git a/core/math/random_pcg.cpp b/core/math/random_pcg.cpp index 8351bd138e..00c0af515d 100644 --- a/core/math/random_pcg.cpp +++ b/core/math/random_pcg.cpp @@ -43,13 +43,9 @@ void RandomPCG::randomize() { } double RandomPCG::random(double p_from, double p_to) { - unsigned int r = rand(); - double ret = (double)r / (double)RANDOM_MAX; - return (ret) * (p_to - p_from) + p_from; + return randd() * (p_to - p_from) + p_from; } float RandomPCG::random(float p_from, float p_to) { - unsigned int r = rand(); - float ret = (float)r / (float)RANDOM_MAX; - return (ret) * (p_to - p_from) + p_from; + return randf() * (p_to - p_from) + p_from; } diff --git a/core/math/random_pcg.h b/core/math/random_pcg.h index 0d1b311c0d..aa25914638 100644 --- a/core/math/random_pcg.h +++ b/core/math/random_pcg.h @@ -37,6 +37,28 @@ #include "thirdparty/misc/pcg.h" +#if defined(__GNUC__) || (_llvm_has_builtin(__builtin_clz)) +#define CLZ32(x) __builtin_clz(x) +#elif defined(_MSC_VER) +#include "intrin.h" +static int __bsr_clz32(uint32_t x) { + unsigned long index; + _BitScanReverse(&index, x); + return 31 - index; +} +#define CLZ32(x) __bsr_clz32(x) +#else +#endif + +#if defined(__GNUC__) || (_llvm_has_builtin(__builtin_ldexp) && _llvm_has_builtin(__builtin_ldexpf)) +#define LDEXP(s, e) __builtin_ldexp(s, e) +#define LDEXPF(s, e) __builtin_ldexpf(s, e) +#else +#include "math.h" +#define LDEXP(s, e) ldexp(s, e) +#define LDEXPF(s, e) ldexp(s, e) +#endif + class RandomPCG { pcg32_random_t pcg; uint64_t current_seed; // seed with this to get the same state @@ -60,8 +82,44 @@ public: current_seed = pcg.state; return pcg32_random_r(&pcg); } - _FORCE_INLINE_ double randd() { return (double)rand() / (double)RANDOM_MAX; } - _FORCE_INLINE_ float randf() { return (float)rand() / (float)RANDOM_MAX; } + + // Obtaining floating point numbers in [0, 1] range with "good enough" uniformity. + // These functions sample the output of rand() as the fraction part of an infinite binary number, + // with some tricks applied to reduce ops and branching: + // 1. Instead of shifting to the first 1 and connecting random bits, we simply set the MSB and LSB to 1. + // Provided that the RNG is actually uniform bit by bit, this should have the exact same effect. + // 2. In order to compensate for exponent info loss, we count zeros from another random number, + // and just add that to the initial offset. + // This has the same probability as counting and shifting an actual bit stream: 2^-n for n zeroes. + // For all numbers above 2^-96 (2^-64 for floats), the functions should be uniform. + // However, all numbers below that threshold are floored to 0. + // The thresholds are chosen to minimize rand() calls while keeping the numbers within a totally subjective quality standard. + // If clz or ldexp isn't available, fall back to bit truncation for performance, sacrificing uniformity. + _FORCE_INLINE_ double randd() { +#if defined(CLZ32) + uint32_t proto_exp_offset = rand(); + if (unlikely(proto_exp_offset == 0)) { + return 0; + } + uint64_t significand = (((uint64_t)rand()) << 32) | rand() | 0x8000000000000001U; + return LDEXP((double)significand, -64 - CLZ32(proto_exp_offset)); +#else +#pragma message("RandomPCG::randd - intrinsic clz is not available, falling back to bit truncation") + return (double)(((((uint64_t)rand()) << 32) | rand()) & 0x1FFFFFFFFFFFFFU) / (double)0x1FFFFFFFFFFFFFU; +#endif + } + _FORCE_INLINE_ float randf() { +#if defined(CLZ32) + uint32_t proto_exp_offset = rand(); + if (unlikely(proto_exp_offset == 0)) { + return 0; + } + return LDEXPF((float)(rand() | 0x80000001), -32 - CLZ32(proto_exp_offset)); +#else +#pragma message("RandomPCG::randf - intrinsic clz is not available, falling back to bit truncation") + return (float)(rand() & 0xFFFFFF) / (float)0xFFFFFF; +#endif + } _FORCE_INLINE_ double randfn(double p_mean, double p_deviation) { return p_mean + p_deviation * (cos(Math_TAU * randd()) * sqrt(-2.0 * log(randd()))); // Box-Muller transform diff --git a/core/math/vector2.cpp b/core/math/vector2.cpp index 5c1ea5943d..779a28be66 100644 --- a/core/math/vector2.cpp +++ b/core/math/vector2.cpp @@ -164,6 +164,13 @@ Vector2 Vector2::cubic_interpolate(const Vector2 &p_b, const Vector2 &p_pre_a, c return out; } +Vector2 Vector2::move_toward(const Vector2 &p_to, const real_t p_delta) const { + Vector2 v = *this; + Vector2 vd = p_to - v; + real_t len = vd.length(); + return len <= p_delta || len < CMP_EPSILON ? p_to : v + vd / len * p_delta; +} + // slide returns the component of the vector along the given plane, specified by its normal vector. Vector2 Vector2::slide(const Vector2 &p_normal) const { #ifdef MATH_CHECKS diff --git a/core/math/vector2.h b/core/math/vector2.h index a0c6024c9f..78a1641c1e 100644 --- a/core/math/vector2.h +++ b/core/math/vector2.h @@ -79,6 +79,7 @@ struct Vector2 { _FORCE_INLINE_ Vector2 linear_interpolate(const Vector2 &p_b, real_t p_t) const; _FORCE_INLINE_ Vector2 slerp(const Vector2 &p_b, real_t p_t) const; Vector2 cubic_interpolate(const Vector2 &p_b, const Vector2 &p_pre_a, const Vector2 &p_post_b, real_t p_t) const; + Vector2 move_toward(const Vector2 &p_to, const real_t p_delta) const; Vector2 slide(const Vector2 &p_normal) const; Vector2 bounce(const Vector2 &p_normal) const; diff --git a/core/math/vector3.cpp b/core/math/vector3.cpp index 1c28934422..73927821cf 100644 --- a/core/math/vector3.cpp +++ b/core/math/vector3.cpp @@ -127,6 +127,13 @@ Vector3 Vector3::cubic_interpolate(const Vector3 &p_b, const Vector3 &p_pre_a, c return out; } +Vector3 Vector3::move_toward(const Vector3 &p_to, const real_t p_delta) const { + Vector3 v = *this; + Vector3 vd = p_to - v; + real_t len = vd.length(); + return len <= p_delta || len < CMP_EPSILON ? p_to : v + vd / len * p_delta; +} + Vector3::operator String() const { return (rtos(x) + ", " + rtos(y) + ", " + rtos(z)); diff --git a/core/math/vector3.h b/core/math/vector3.h index 21fc09653f..811a207138 100644 --- a/core/math/vector3.h +++ b/core/math/vector3.h @@ -94,6 +94,7 @@ struct Vector3 { _FORCE_INLINE_ Vector3 slerp(const Vector3 &p_b, real_t p_t) const; Vector3 cubic_interpolate(const Vector3 &p_b, const Vector3 &p_pre_a, const Vector3 &p_post_b, real_t p_t) const; Vector3 cubic_interpolaten(const Vector3 &p_b, const Vector3 &p_pre_a, const Vector3 &p_post_b, real_t p_t) const; + Vector3 move_toward(const Vector3 &p_to, const real_t p_delta) const; _FORCE_INLINE_ Vector3 cross(const Vector3 &p_b) const; _FORCE_INLINE_ real_t dot(const Vector3 &p_b) const; @@ -223,7 +224,7 @@ Vector3 Vector3::slerp(const Vector3 &p_b, real_t p_t) const { #endif real_t theta = angle_to(p_b); - return rotated(cross(p_b), theta * p_t); + return rotated(cross(p_b).normalized(), theta * p_t); } real_t Vector3::distance_to(const Vector3 &p_b) const { diff --git a/core/message_queue.cpp b/core/message_queue.cpp index 1d661f25f9..32d2b805f6 100644 --- a/core/message_queue.cpp +++ b/core/message_queue.cpp @@ -302,10 +302,6 @@ void MessageQueue::flush() { _call_function(target, message->target, args, message->args, message->type & FLAG_SHOW_ERROR); - for (int i = 0; i < message->args; i++) { - args[i].~Variant(); - } - } break; case TYPE_NOTIFICATION: { @@ -319,11 +315,17 @@ void MessageQueue::flush() { // messages don't expect a return value target->set(message->target, *arg); - arg->~Variant(); } break; } } + if ((message->type & FLAG_MASK) != TYPE_NOTIFICATION) { + Variant *args = (Variant *)(message + 1); + for (int i = 0; i < message->args; i++) { + args[i].~Variant(); + } + } + message->~Message(); _THREAD_SAFE_LOCK_ diff --git a/core/object.cpp b/core/object.cpp index 2a4ab93a6d..64f55f08a9 100644 --- a/core/object.cpp +++ b/core/object.cpp @@ -954,6 +954,16 @@ void Object::notification(int p_notification, bool p_reversed) { } } +String Object::to_string() { + if (script_instance) { + bool valid; + String ret = script_instance->to_string(&valid); + if (valid) + return ret; + } + return "[" + get_class() + ":" + itos(get_instance_id()) + "]"; +} + void Object::_changed_callback(Object *p_changed, const char *p_prop) { } @@ -1687,6 +1697,7 @@ void Object::_bind_methods() { ClassDB::bind_method(D_METHOD("get_property_list"), &Object::_get_property_list_bind); ClassDB::bind_method(D_METHOD("get_method_list"), &Object::_get_method_list_bind); ClassDB::bind_method(D_METHOD("notification", "what", "reversed"), &Object::notification, DEFVAL(false)); + ClassDB::bind_method(D_METHOD("to_string"), &Object::to_string); ClassDB::bind_method(D_METHOD("get_instance_id"), &Object::get_instance_id); ClassDB::bind_method(D_METHOD("set_script", "script"), &Object::set_script); @@ -1774,6 +1785,7 @@ void Object::_bind_methods() { #endif BIND_VMETHOD(MethodInfo("_init")); + BIND_VMETHOD(MethodInfo(Variant::STRING, "_to_string")); BIND_CONSTANT(NOTIFICATION_POSTINITIALIZE); BIND_CONSTANT(NOTIFICATION_PREDELETE); diff --git a/core/object.h b/core/object.h index 57ebb32392..4394c1c3da 100644 --- a/core/object.h +++ b/core/object.h @@ -659,6 +659,7 @@ public: void call_multilevel(const StringName &p_name, VARIANT_ARG_LIST); // C++ helper void notification(int p_notification, bool p_reversed = false); + String to_string(); //used mainly by script, get and set all INCLUDING string virtual Variant getvar(const Variant &p_key, bool *r_valid = NULL) const; diff --git a/core/os/input_event.cpp b/core/os/input_event.cpp index a072017353..9c5066da3d 100644 --- a/core/os/input_event.cpp +++ b/core/os/input_event.cpp @@ -1010,6 +1010,14 @@ bool InputEventAction::is_pressed() const { return pressed; } +void InputEventAction::set_strength(float p_strength) { + strength = CLAMP(p_strength, 0.0f, 1.0f); +} + +float InputEventAction::get_strength() const { + return strength; +} + bool InputEventAction::shortcut_match(const Ref<InputEvent> &p_event) const { if (p_event.is_null()) return false; @@ -1051,14 +1059,19 @@ void InputEventAction::_bind_methods() { ClassDB::bind_method(D_METHOD("set_pressed", "pressed"), &InputEventAction::set_pressed); //ClassDB::bind_method(D_METHOD("is_pressed"), &InputEventAction::is_pressed); + ClassDB::bind_method(D_METHOD("set_strength", "strength"), &InputEventAction::set_strength); + ClassDB::bind_method(D_METHOD("get_strength"), &InputEventAction::get_strength); + // ClassDB::bind_method(D_METHOD("is_action", "name"), &InputEventAction::is_action); ADD_PROPERTY(PropertyInfo(Variant::STRING, "action"), "set_action", "get_action"); ADD_PROPERTY(PropertyInfo(Variant::BOOL, "pressed"), "set_pressed", "is_pressed"); + ADD_PROPERTY(PropertyInfo(Variant::REAL, "strength", PROPERTY_HINT_RANGE, "0,1,0.01"), "set_strength", "get_strength"); } InputEventAction::InputEventAction() { pressed = false; + strength = 1.0f; } ///////////////////////////// diff --git a/core/os/input_event.h b/core/os/input_event.h index ba01516519..2eb321f134 100644 --- a/core/os/input_event.h +++ b/core/os/input_event.h @@ -117,6 +117,16 @@ enum JoystickList { JOY_WII_MINUS = JOY_BUTTON_10, JOY_WII_PLUS = JOY_BUTTON_11, + JOY_VR_GRIP = JOY_BUTTON_2, + JOY_VR_PAD = JOY_BUTTON_14, + JOY_VR_TRIGGER = JOY_BUTTON_15, + + JOY_OCULUS_AX = JOY_BUTTON_7, + JOY_OCULUS_BY = JOY_BUTTON_1, + JOY_OCULUS_MENU = JOY_BUTTON_3, + + JOY_OPENVR_MENU = JOY_BUTTON_1, + // end of history JOY_AXIS_0 = 0, @@ -139,6 +149,12 @@ enum JoystickList { JOY_ANALOG_L2 = JOY_AXIS_6, JOY_ANALOG_R2 = JOY_AXIS_7, + + JOY_VR_ANALOG_TRIGGER = JOY_AXIS_2, + JOY_VR_ANALOG_GRIP = JOY_AXIS_4, + + JOY_OPENVR_TOUCHPADX = JOY_AXIS_0, + JOY_OPENVR_TOUCHPADY = JOY_AXIS_1, }; enum MidiMessageList { @@ -475,6 +491,7 @@ class InputEventAction : public InputEvent { StringName action; bool pressed; + float strength; protected: static void _bind_methods(); @@ -486,6 +503,9 @@ public: void set_pressed(bool p_pressed); virtual bool is_pressed() const; + void set_strength(float p_strength); + float get_strength() const; + virtual bool is_action(const StringName &p_action) const; virtual bool action_match(const Ref<InputEvent> &p_event, bool *p_pressed, float *p_strength, float p_deadzone) const; diff --git a/core/os/os.cpp b/core/os/os.cpp index ea378c9e83..1a3c9ac5f8 100644 --- a/core/os/os.cpp +++ b/core/os/os.cpp @@ -465,6 +465,9 @@ void OS::_ensure_user_data_dir() { memdelete(da); } +void OS::set_native_icon(const String &p_filename) { +} + void OS::set_icon(const Ref<Image> &p_icon) { } diff --git a/core/os/os.h b/core/os/os.h index 4ae8a354e5..514e1e2ad3 100644 --- a/core/os/os.h +++ b/core/os/os.h @@ -104,7 +104,6 @@ public: bool maximized; bool always_on_top; bool use_vsync; - bool layered_splash; bool layered; float get_aspect() const { return (float)width / (float)height; } VideoMode(int p_width = 1024, int p_height = 600, bool p_fullscreen = false, bool p_resizable = true, bool p_borderless_window = false, bool p_maximized = false, bool p_always_on_top = false, bool p_use_vsync = false) { @@ -117,7 +116,6 @@ public: always_on_top = p_always_on_top; use_vsync = p_use_vsync; layered = false; - layered_splash = false; } }; @@ -207,8 +205,12 @@ public: virtual int get_screen_dpi(int p_screen = -1) const { return 72; } virtual Point2 get_window_position() const { return Vector2(); } virtual void set_window_position(const Point2 &p_position) {} + virtual Size2 get_max_window_size() const { return Size2(); }; + virtual Size2 get_min_window_size() const { return Size2(); }; virtual Size2 get_window_size() const = 0; virtual Size2 get_real_window_size() const { return get_window_size(); } + virtual void set_min_window_size(const Size2 p_size) {} + virtual void set_max_window_size(const Size2 p_size) {} virtual void set_window_size(const Size2 p_size) {} virtual void set_window_fullscreen(bool p_enabled) {} virtual bool is_window_fullscreen() const { return true; } @@ -273,7 +275,7 @@ public: virtual String get_environment(const String &p_var) const = 0; virtual bool set_environment(const String &p_var, const String &p_value) const = 0; - virtual String get_name() = 0; + virtual String get_name() const = 0; virtual List<String> get_cmdline_args() const { return _cmdline; } virtual String get_model_name() const; @@ -451,6 +453,7 @@ public: virtual void make_rendering_thread(); virtual void swap_buffers(); + virtual void set_native_icon(const String &p_filename); virtual void set_icon(const Ref<Image> &p_icon); virtual int get_exit_code() const; diff --git a/core/print_string.cpp b/core/print_string.cpp index d91d49f53b..3271744af3 100644 --- a/core/print_string.cpp +++ b/core/print_string.cpp @@ -68,8 +68,8 @@ void remove_print_handler(PrintHandlerList *p_handler) { } //OS::get_singleton()->print("print handler list is %p\n",print_handler_list); - ERR_FAIL_COND(l == NULL); _global_unlock(); + ERR_FAIL_COND(l == NULL); } void print_line(String p_string) { diff --git a/core/project_settings.cpp b/core/project_settings.cpp index c86d1567dd..0508806a35 100644 --- a/core/project_settings.cpp +++ b/core/project_settings.cpp @@ -75,11 +75,19 @@ String ProjectSettings::localize_path(const String &p_path) const { memdelete(dir); - if (!cwd.begins_with(resource_path)) { + // Ensure that we end with a '/'. + // This is important to ensure that we do not wrongly localize the resource path + // in an absolute path that just happens to contain this string but points to a + // different folder (e.g. "/my/project" as resource_path would be contained in + // "/my/project_data", even though the latter is not part of res://. + // `plus_file("")` is an easy way to ensure we have a trailing '/'. + const String res_path = resource_path.plus_file(""); + + if (!cwd.begins_with(res_path)) { return p_path; }; - return cwd.replace_first(resource_path, "res:/"); + return cwd.replace_first(res_path, "res://"); } else { memdelete(dir); @@ -481,7 +489,7 @@ Error ProjectSettings::_load_settings_binary(const String p_path) { memdelete(f); ERR_EXPLAIN("Corrupted header in binary project.binary (not ECFG)"); - ERR_FAIL_V(ERR_FILE_CORRUPT;) + ERR_FAIL_V(ERR_FILE_CORRUPT); } uint32_t count = f->get_32(); @@ -571,10 +579,6 @@ Error ProjectSettings::_load_settings_text(const String p_path) { section = next_tag.name; } } - - memdelete(f); - - return OK; } Error ProjectSettings::_load_settings_text_or_binary(const String p_text_path, const String p_bin_path) { @@ -632,7 +636,7 @@ Error ProjectSettings::_save_settings_binary(const String &p_file, const Map<Str if (err != OK) { ERR_EXPLAIN("Couldn't save project.binary at " + p_file); - ERR_FAIL_COND_V(err, err) + ERR_FAIL_COND_V(err, err); } uint8_t hdr[4] = { 'E', 'C', 'F', 'G' }; @@ -724,7 +728,7 @@ Error ProjectSettings::_save_settings_text(const String &p_file, const Map<Strin if (err) { ERR_EXPLAIN("Couldn't save project.godot - " + p_file); - ERR_FAIL_COND_V(err, err) + ERR_FAIL_COND_V(err, err); } file->store_line("; Engine configuration file."); @@ -1007,6 +1011,15 @@ ProjectSettings::ProjectSettings() { GLOBAL_DEF("audio/default_bus_layout", "res://default_bus_layout.tres"); custom_prop_info["audio/default_bus_layout"] = PropertyInfo(Variant::STRING, "audio/default_bus_layout", PROPERTY_HINT_FILE, "*.tres"); + PoolStringArray extensions = PoolStringArray(); + extensions.push_back("gd"); + if (Engine::get_singleton()->has_singleton("GodotSharp")) + extensions.push_back("cs"); + extensions.push_back("shader"); + + GLOBAL_DEF("editor/search_in_file_extensions", extensions); + custom_prop_info["editor/search_in_file_extensions"] = PropertyInfo(Variant::POOL_STRING_ARRAY, "editor/search_in_file_extensions"); + action = Dictionary(); action["deadzone"] = Variant(0.5f); events = Array(); diff --git a/core/script_language.cpp b/core/script_language.cpp index 4a6f904f9d..97758ced66 100644 --- a/core/script_language.cpp +++ b/core/script_language.cpp @@ -30,6 +30,7 @@ #include "script_language.h" +#include "core/core_string_names.h" #include "core/project_settings.h" ScriptLanguage *ScriptServer::_languages[MAX_LANGUAGES]; diff --git a/core/script_language.h b/core/script_language.h index 005e21e2cc..b0c60b4e90 100644 --- a/core/script_language.h +++ b/core/script_language.h @@ -173,6 +173,11 @@ public: virtual void call_multilevel(const StringName &p_method, const Variant **p_args, int p_argcount); virtual void call_multilevel_reversed(const StringName &p_method, const Variant **p_args, int p_argcount); virtual void notification(int p_notification) = 0; + virtual String to_string(bool *r_valid) { + if (r_valid) + *r_valid = false; + return String(); + } //this is used by script languages that keep a reference counter of their own //you can make make Ref<> not die when it reaches zero, so deleting the reference @@ -245,7 +250,7 @@ public: virtual Error open_in_external_editor(const Ref<Script> &p_script, int p_line, int p_col) { return ERR_UNAVAILABLE; } virtual bool overrides_external_editor() { return false; } - virtual Error complete_code(const String &p_code, const String &p_base_path, Object *p_owner, List<String> *r_options, bool &r_force, String &r_call_hint) { return ERR_UNAVAILABLE; } + virtual Error complete_code(const String &p_code, const String &p_path, Object *p_owner, List<String> *r_options, bool &r_force, String &r_call_hint) { return ERR_UNAVAILABLE; } struct LookupResult { enum Type { @@ -264,7 +269,7 @@ public: int location; }; - virtual Error lookup_code(const String &p_code, const String &p_symbol, const String &p_base_path, Object *p_owner, LookupResult &r_result) { return ERR_UNAVAILABLE; } + virtual Error lookup_code(const String &p_code, const String &p_symbol, const String &p_path, Object *p_owner, LookupResult &r_result) { return ERR_UNAVAILABLE; } virtual void auto_indent_code(String &p_code, int p_from_line, int p_to_line) const = 0; virtual void add_global_constant(const StringName &p_variable, const Variant &p_value) = 0; diff --git a/core/sort_array.h b/core/sort_array.h index 0f258aec3e..8660ee3333 100644 --- a/core/sort_array.h +++ b/core/sort_array.h @@ -179,14 +179,14 @@ public: while (true) { while (compare(p_array[p_first], p_pivot)) { if (Validate) { - ERR_BAD_COMPARE(p_first == unmodified_last - 1) + ERR_BAD_COMPARE(p_first == unmodified_last - 1); } p_first++; } p_last--; while (compare(p_pivot, p_array[p_last])) { if (Validate) { - ERR_BAD_COMPARE(p_last == unmodified_first) + ERR_BAD_COMPARE(p_last == unmodified_first); } p_last--; } @@ -259,7 +259,7 @@ public: int next = p_last - 1; while (compare(p_value, p_array[next])) { if (Validate) { - ERR_BAD_COMPARE(next == 0) + ERR_BAD_COMPARE(next == 0); } p_array[p_last] = p_array[next]; p_last = next; diff --git a/core/ustring.cpp b/core/ustring.cpp index 78feddb229..35b817b1d2 100644 --- a/core/ustring.cpp +++ b/core/ustring.cpp @@ -1725,6 +1725,45 @@ int64_t String::hex_to_int64(bool p_with_prefix) const { return hex * sign; } +int64_t String::bin_to_int64(bool p_with_prefix) const { + + if (p_with_prefix && length() < 3) + return 0; + + const CharType *s = ptr(); + + int64_t sign = s[0] == '-' ? -1 : 1; + + if (sign < 0) { + s++; + } + + if (p_with_prefix) { + if (s[0] != '0' || s[1] != 'b') + return 0; + s += 2; + } + + int64_t binary = 0; + + while (*s) { + + CharType c = LOWERCASE(*s); + int64_t n; + if (c == '0' || c == '1') { + n = c - '0'; + } else { + return 0; + } + + binary *= 2; + binary += n; + s++; + } + + return binary * sign; +} + int String::to_int() const { if (length() == 0) @@ -2917,26 +2956,12 @@ String String::replace(const char *p_key, const char *p_with) const { String String::replace_first(const String &p_key, const String &p_with) const { - String new_string; - int search_from = 0; - int result = 0; - - while ((result = find(p_key, search_from)) >= 0) { - - new_string += substr(search_from, result - search_from); - new_string += p_with; - search_from = result + p_key.length(); - break; + int pos = find(p_key); + if (pos >= 0) { + return substr(0, pos) + p_with + substr(pos + p_key.length(), length()); } - if (search_from == 0) { - - return *this; - } - - new_string += substr(search_from, length() - search_from); - - return new_string; + return *this; } String String::replacen(const String &p_key, const String &p_with) const { @@ -3063,29 +3088,16 @@ String String::strip_edges(bool left, bool right) const { String String::strip_escapes() const { - int len = length(); - int beg = 0, end = len; - + String new_string; for (int i = 0; i < length(); i++) { - if (operator[](i) <= 31) - beg++; - else - break; - } - - for (int i = (int)(length() - 1); i >= 0; i--) { - - if (operator[](i) <= 31) - end--; - else - break; + // Escape characters on first page of the ASCII table, before 32 (Space). + if (operator[](i) < 32) + continue; + new_string += operator[](i); } - if (beg == 0 && end == len) - return *this; - - return substr(beg, end - beg); + return new_string; } String String::lstrip(const String &p_chars) const { @@ -3209,7 +3221,7 @@ static int _humanize_digits(int p_num) { String String::humanize_size(size_t p_size) { uint64_t _div = 1; - static const char *prefix[] = { " Bytes", " KB", " MB", " GB", "TB", " PB", "HB", "" }; + static const char *prefix[] = { " Bytes", " KB", " MB", " GB", " TB", " PB", " EB", "" }; int prefix_idx = 0; while (p_size > (_div * 1024) && prefix[prefix_idx][0]) { @@ -3220,7 +3232,7 @@ String String::humanize_size(size_t p_size) { int digits = prefix_idx > 0 ? _humanize_digits(p_size / _div) : 0; double divisor = prefix_idx > 0 ? _div : 1; - return String::num(p_size / divisor, digits) + prefix[prefix_idx]; + return String::num(p_size / divisor).pad_decimals(digits) + prefix[prefix_idx]; } bool String::is_abs_path() const { diff --git a/core/ustring.h b/core/ustring.h index e2e62874d6..5b9be9f27c 100644 --- a/core/ustring.h +++ b/core/ustring.h @@ -251,6 +251,7 @@ public: int to_int() const; int64_t hex_to_int64(bool p_with_prefix = true) const; + int64_t bin_to_int64(bool p_with_prefix = true) const; int64_t to_int64() const; static int to_int(const char *p_str, int p_len = -1); static double to_double(const char *p_str); @@ -414,16 +415,16 @@ _FORCE_INLINE_ bool is_str_less(const L *l_ptr, const R *r_ptr) { //gets parsed String TTR(const String &); -//use for c strings -#define TTRC(m_value) m_value +//use for C strings +#define TTRC(m_value) (m_value) //use to avoid parsing (for use later with C strings) #define TTRGET(m_value) TTR(m_value) #else -#define TTR(m_val) (String()) -#define TTRCDEF(m_value) (m_value) +#define TTR(m_value) (String()) #define TTRC(m_value) (m_value) +#define TTRGET(m_value) (m_value) #endif diff --git a/core/variant.cpp b/core/variant.cpp index 1bc3cff505..6eadf59fce 100644 --- a/core/variant.cpp +++ b/core/variant.cpp @@ -1601,7 +1601,7 @@ String Variant::stringify(List<const void *> &stack) const { }; }; #endif - return "[" + _get_obj().obj->get_class() + ":" + itos(_get_obj().obj->get_instance_id()) + "]"; + return _get_obj().obj->to_string(); } else return "[Object:null]"; diff --git a/core/variant_call.cpp b/core/variant_call.cpp index f9f73b4e51..5d5f18926f 100644 --- a/core/variant_call.cpp +++ b/core/variant_call.cpp @@ -265,6 +265,7 @@ struct _VariantCall { VCALL_LOCALMEM1R(String, right); VCALL_LOCALMEM0R(String, dedent); VCALL_LOCALMEM2R(String, strip_edges); + VCALL_LOCALMEM0R(String, strip_escapes); VCALL_LOCALMEM1R(String, lstrip); VCALL_LOCALMEM1R(String, rstrip); VCALL_LOCALMEM0R(String, get_extension); @@ -284,6 +285,8 @@ struct _VariantCall { VCALL_LOCALMEM0R(String, get_file); VCALL_LOCALMEM0R(String, xml_escape); VCALL_LOCALMEM0R(String, xml_unescape); + VCALL_LOCALMEM0R(String, http_escape); + VCALL_LOCALMEM0R(String, http_unescape); VCALL_LOCALMEM0R(String, c_escape); VCALL_LOCALMEM0R(String, c_unescape); VCALL_LOCALMEM0R(String, json_escape); @@ -347,6 +350,7 @@ struct _VariantCall { VCALL_LOCALMEM2R(Vector2, linear_interpolate); VCALL_LOCALMEM2R(Vector2, slerp); VCALL_LOCALMEM4R(Vector2, cubic_interpolate); + VCALL_LOCALMEM2R(Vector2, move_toward); VCALL_LOCALMEM1R(Vector2, rotated); VCALL_LOCALMEM0R(Vector2, tangent); VCALL_LOCALMEM0R(Vector2, floor); @@ -388,6 +392,7 @@ struct _VariantCall { VCALL_LOCALMEM2R(Vector3, linear_interpolate); VCALL_LOCALMEM2R(Vector3, slerp); VCALL_LOCALMEM4R(Vector3, cubic_interpolate); + VCALL_LOCALMEM2R(Vector3, move_toward); VCALL_LOCALMEM1R(Vector3, dot); VCALL_LOCALMEM1R(Vector3, cross); VCALL_LOCALMEM1R(Vector3, outer); @@ -1516,9 +1521,9 @@ void register_variant_methods() { ADDFUNC2R(STRING, STRING, String, replacen, STRING, "what", STRING, "forwhat", varray()); ADDFUNC2R(STRING, STRING, String, insert, INT, "position", STRING, "what", varray()); ADDFUNC0R(STRING, STRING, String, capitalize, varray()); - ADDFUNC3R(STRING, POOL_STRING_ARRAY, String, split, STRING, "divisor", BOOL, "allow_empty", INT, "maxsplit", varray(true, 0)); - ADDFUNC3R(STRING, POOL_STRING_ARRAY, String, rsplit, STRING, "divisor", BOOL, "allow_empty", INT, "maxsplit", varray(true, 0)); - ADDFUNC2R(STRING, POOL_REAL_ARRAY, String, split_floats, STRING, "divisor", BOOL, "allow_empty", varray(true)); + ADDFUNC3R(STRING, POOL_STRING_ARRAY, String, split, STRING, "delimiter", BOOL, "allow_empty", INT, "maxsplit", varray(true, 0)); + ADDFUNC3R(STRING, POOL_STRING_ARRAY, String, rsplit, STRING, "delimiter", BOOL, "allow_empty", INT, "maxsplit", varray(true, 0)); + ADDFUNC2R(STRING, POOL_REAL_ARRAY, String, split_floats, STRING, "delimiter", BOOL, "allow_empty", varray(true)); ADDFUNC0R(STRING, STRING, String, to_upper, varray()); ADDFUNC0R(STRING, STRING, String, to_lower, varray()); @@ -1526,6 +1531,7 @@ void register_variant_methods() { ADDFUNC1R(STRING, STRING, String, left, INT, "position", varray()); ADDFUNC1R(STRING, STRING, String, right, INT, "position", varray()); ADDFUNC2R(STRING, STRING, String, strip_edges, BOOL, "left", BOOL, "right", varray(true, true)); + ADDFUNC0R(STRING, STRING, String, strip_escapes, varray()); ADDFUNC1R(STRING, STRING, String, lstrip, STRING, "chars", varray()); ADDFUNC1R(STRING, STRING, String, rstrip, STRING, "chars", varray()); ADDFUNC0R(STRING, STRING, String, get_extension, varray()); @@ -1546,6 +1552,8 @@ void register_variant_methods() { ADDFUNC0R(STRING, STRING, String, get_file, varray()); ADDFUNC0R(STRING, STRING, String, xml_escape, varray()); ADDFUNC0R(STRING, STRING, String, xml_unescape, varray()); + ADDFUNC0R(STRING, STRING, String, http_escape, varray()); + ADDFUNC0R(STRING, STRING, String, http_unescape, varray()); ADDFUNC0R(STRING, STRING, String, c_escape, varray()); ADDFUNC0R(STRING, STRING, String, c_unescape, varray()); ADDFUNC0R(STRING, STRING, String, json_escape, varray()); @@ -1583,6 +1591,7 @@ void register_variant_methods() { ADDFUNC2R(VECTOR2, VECTOR2, Vector2, linear_interpolate, VECTOR2, "b", REAL, "t", varray()); ADDFUNC2R(VECTOR2, VECTOR2, Vector2, slerp, VECTOR2, "b", REAL, "t", varray()); ADDFUNC4R(VECTOR2, VECTOR2, Vector2, cubic_interpolate, VECTOR2, "b", VECTOR2, "pre_a", VECTOR2, "post_b", REAL, "t", varray()); + ADDFUNC2R(VECTOR2, VECTOR2, Vector2, move_toward, VECTOR2, "to", REAL, "delta", varray()); ADDFUNC1R(VECTOR2, VECTOR2, Vector2, rotated, REAL, "phi", varray()); ADDFUNC0R(VECTOR2, VECTOR2, Vector2, tangent, varray()); ADDFUNC0R(VECTOR2, VECTOR2, Vector2, floor, varray()); @@ -1624,6 +1633,7 @@ void register_variant_methods() { ADDFUNC2R(VECTOR3, VECTOR3, Vector3, slerp, VECTOR3, "b", REAL, "t", varray()); ADDFUNC4R(VECTOR3, VECTOR3, Vector3, cubic_interpolate, VECTOR3, "b", VECTOR3, "pre_a", VECTOR3, "post_b", REAL, "t", varray()); ADDFUNC1R(VECTOR3, VECTOR3, Vector3, direction_to, VECTOR3, "b", varray()); + ADDFUNC2R(VECTOR3, VECTOR3, Vector3, move_toward, VECTOR3, "to", REAL, "delta", varray()); ADDFUNC1R(VECTOR3, REAL, Vector3, dot, VECTOR3, "b", varray()); ADDFUNC1R(VECTOR3, VECTOR3, Vector3, cross, VECTOR3, "b", varray()); ADDFUNC1R(VECTOR3, BASIS, Vector3, outer, VECTOR3, "b", varray()); diff --git a/core/vector.h b/core/vector.h index 93ee003519..e6bb4a96fc 100644 --- a/core/vector.h +++ b/core/vector.h @@ -150,7 +150,7 @@ template <class T> bool Vector<T>::push_back(const T &p_elem) { Error err = resize(size() + 1); - ERR_FAIL_COND_V(err, true) + ERR_FAIL_COND_V(err, true); set(size() - 1, p_elem); return false; diff --git a/doc/classes/@GlobalScope.xml b/doc/classes/@GlobalScope.xml index d1e2a9c910..d36a545c56 100644 --- a/doc/classes/@GlobalScope.xml +++ b/doc/classes/@GlobalScope.xml @@ -18,6 +18,9 @@ <member name="AudioServer" type="AudioServer" setter="" getter=""> [AudioServer] singleton </member> + <member name="CameraServer" type="CameraServer" setter="" getter=""> + [CameraServer] singleton + </member> <member name="ClassDB" type="ClassDB" setter="" getter=""> [ClassDB] singleton </member> @@ -45,6 +48,8 @@ <member name="Marshalls" type="Reference" setter="" getter=""> [Marshalls] singleton </member> + <member name="NavigationMeshGenerator" type="EditorNavigationMeshGenerator" setter="" getter=""> + </member> <member name="OS" type="OS" setter="" getter=""> [OS] singleton </member> @@ -1001,6 +1006,27 @@ <constant name="JOY_DS_Y" value="2" enum="JoystickList"> DualShock controller Y button </constant> + <constant name="JOY_VR_GRIP" value="2" enum="JoystickList"> + Grip (side) buttons on a VR controller + </constant> + <constant name="JOY_VR_PAD" value="14" enum="JoystickList"> + Push down on the touchpad or main joystick on a VR controller + </constant> + <constant name="JOY_VR_TRIGGER" value="15" enum="JoystickList"> + Trigger on a VR controller + </constant> + <constant name="JOY_OCULUS_AX" value="7" enum="JoystickList"> + A button on the right Oculus Touch controller, X button on the left controller (also when used in OpenVR) + </constant> + <constant name="JOY_OCULUS_BY" value="1" enum="JoystickList"> + B button on the right Oculus Touch controller, Y button on the left controller (also when used in OpenVR) + </constant> + <constant name="JOY_OCULUS_MENU" value="3" enum="JoystickList"> + Menu button on either Oculus Touch controller. + </constant> + <constant name="JOY_OPENVR_MENU" value="1" enum="JoystickList"> + Menu button in OpenVR (Except when Oculus Touch controllers are used) + </constant> <constant name="JOY_SELECT" value="10" enum="JoystickList"> Joypad Button Select </constant> @@ -1083,6 +1109,18 @@ <constant name="JOY_ANALOG_R2" value="7" enum="JoystickList"> Joypad Right Analog Trigger </constant> + <constant name="JOY_VR_ANALOG_TRIGGER" value="2" enum="JoystickList"> + VR Controller Analog Trigger + </constant> + <constant name="JOY_VR_ANALOG_GRIP" value="4" enum="JoystickList"> + VR Controller Analog Grip (side buttons) + </constant> + <constant name="JOY_OPENVR_TOUCHPADX" value="0" enum="JoystickList"> + OpenVR touchpad X axis (Joystick axis on Oculus Touch and Windows MR controllers) + </constant> + <constant name="JOY_OPENVR_TOUCHPADY" value="1" enum="JoystickList"> + OpenVR touchpad Y axis (Joystick axis on Oculus Touch and Windows MR controllers) + </constant> <constant name="MIDI_MESSAGE_NOTE_OFF" value="8" enum="MidiMessageList"> </constant> <constant name="MIDI_MESSAGE_NOTE_ON" value="9" enum="MidiMessageList"> diff --git a/doc/classes/ARVRInterface.xml b/doc/classes/ARVRInterface.xml index 11084fb98e..c286811b5d 100644 --- a/doc/classes/ARVRInterface.xml +++ b/doc/classes/ARVRInterface.xml @@ -10,6 +10,13 @@ <tutorials> </tutorials> <methods> + <method name="get_camera_feed_id"> + <return type="int"> + </return> + <description> + If this is an AR interface that requires displaying a camera feed as the background, this method returns the feed id in the [CameraServer] for this interface. + </description> + </method> <method name="get_capabilities" qualifiers="const"> <return type="int"> </return> diff --git a/doc/classes/AcceptDialog.xml b/doc/classes/AcceptDialog.xml index 4adf515abc..db35b2f352 100644 --- a/doc/classes/AcceptDialog.xml +++ b/doc/classes/AcceptDialog.xml @@ -36,14 +36,14 @@ <return type="Label"> </return> <description> - Return the label used for built-in text. + Returns the label used for built-in text. </description> </method> <method name="get_ok"> <return type="Button"> </return> <description> - Return the OK Button. + Returns the OK Button. </description> </method> <method name="register_text_enter"> diff --git a/doc/classes/AnimatedSprite.xml b/doc/classes/AnimatedSprite.xml index 5e63f8aec0..da85f91367 100644 --- a/doc/classes/AnimatedSprite.xml +++ b/doc/classes/AnimatedSprite.xml @@ -13,7 +13,7 @@ <return type="bool"> </return> <description> - Return [code]true[/code] if an animation if currently being played. + Returns [code]true[/code] if an animation if currently being played. </description> </method> <method name="play"> diff --git a/doc/classes/AnimatedSprite3D.xml b/doc/classes/AnimatedSprite3D.xml index 4c6868d807..96196f7601 100644 --- a/doc/classes/AnimatedSprite3D.xml +++ b/doc/classes/AnimatedSprite3D.xml @@ -13,7 +13,7 @@ <return type="bool"> </return> <description> - Return [code]true[/code] if an animation if currently being played. + Returns [code]true[/code] if an animation if currently being played. </description> </method> <method name="play"> diff --git a/doc/classes/Animation.xml b/doc/classes/Animation.xml index af3abed256..c79903cb80 100644 --- a/doc/classes/Animation.xml +++ b/doc/classes/Animation.xml @@ -263,14 +263,14 @@ <argument index="0" name="path" type="NodePath"> </argument> <description> - Return the index of the specified track. If the track is not found, return -1. + Returns the index of the specified track. If the track is not found, return -1. </description> </method> <method name="get_track_count" qualifiers="const"> <return type="int"> </return> <description> - Return the amount of tracks in the animation. + Returns the amount of tracks in the animation. </description> </method> <method name="method_track_get_key_indices" qualifiers="const"> @@ -283,7 +283,7 @@ <argument index="2" name="delta" type="float"> </argument> <description> - Return all the key indices of a method track, given a position and delta time. + Returns all the key indices of a method track, given a position and delta time. </description> </method> <method name="method_track_get_name" qualifiers="const"> @@ -294,7 +294,7 @@ <argument index="1" name="key_idx" type="int"> </argument> <description> - Return the method name of a method track. + Returns the method name of a method track. </description> </method> <method name="method_track_get_params" qualifiers="const"> @@ -305,7 +305,7 @@ <argument index="1" name="key_idx" type="int"> </argument> <description> - Return the arguments values to be called on a method track for a given key in a given track. + Returns the arguments values to be called on a method track for a given key in a given track. </description> </method> <method name="remove_track"> @@ -345,7 +345,7 @@ <argument index="0" name="idx" type="int"> </argument> <description> - Return the interpolation type of a given track, from the INTERPOLATION_* enum. + Returns the interpolation type of a given track, from the INTERPOLATION_* enum. </description> </method> <method name="track_get_key_count" qualifiers="const"> @@ -354,7 +354,7 @@ <argument index="0" name="idx" type="int"> </argument> <description> - Return the amount of keys in a given track. + Returns the amount of keys in a given track. </description> </method> <method name="track_get_key_time" qualifiers="const"> @@ -365,7 +365,7 @@ <argument index="1" name="key_idx" type="int"> </argument> <description> - Return the time at which the key is located. + Returns the time at which the key is located. </description> </method> <method name="track_get_key_transition" qualifiers="const"> @@ -376,7 +376,7 @@ <argument index="1" name="key_idx" type="int"> </argument> <description> - Return the transition curve (easing) for a specific key (see built-in math function "ease"). + Returns the transition curve (easing) for a specific key (see built-in math function "ease"). </description> </method> <method name="track_get_key_value" qualifiers="const"> @@ -387,7 +387,7 @@ <argument index="1" name="key_idx" type="int"> </argument> <description> - Return the value of a given key in a given track. + Returns the value of a given key in a given track. </description> </method> <method name="track_get_path" qualifiers="const"> @@ -438,7 +438,7 @@ <argument index="0" name="idx" type="int"> </argument> <description> - Return [code]true[/code] if the given track is imported. Else, return [code]false[/code]. + Returns [code]true[/code] if the given track is imported. Else, return [code]false[/code]. </description> </method> <method name="track_move_down"> @@ -450,6 +450,17 @@ Move a track down. </description> </method> + <method name="track_move_to"> + <return type="void"> + </return> + <argument index="0" name="idx" type="int"> + </argument> + <argument index="1" name="to_idx" type="int"> + </argument> + <description> + Changes the index position of track [code]idx[/code] to the one defined in [code]to_idx[/code]. + </description> + </method> <method name="track_move_up"> <return type="void"> </return> @@ -525,6 +536,19 @@ Set the interpolation type of a given track, from the INTERPOLATION_* enum. </description> </method> + <method name="track_set_key_time"> + <return type="void"> + </return> + <argument index="0" name="idx" type="int"> + </argument> + <argument index="1" name="key_idx" type="int"> + </argument> + <argument index="2" name="time" type="float"> + </argument> + <description> + Set the time of an existing key. + </description> + </method> <method name="track_set_key_transition"> <return type="void"> </return> @@ -571,6 +595,7 @@ <argument index="1" name="with_idx" type="int"> </argument> <description> + Swaps the track [code]idx[/code]'s index position with the track [code]with_idx[/code]. </description> </method> <method name="transform_track_insert_key"> @@ -598,7 +623,7 @@ <argument index="1" name="time_sec" type="float"> </argument> <description> - Return the interpolated value of a transform track at a given time (in seconds). An array consisting of 3 elements: position ([Vector3]), rotation ([Quat]) and scale ([Vector3]). + Returns the interpolated value of a transform track at a given time (in seconds). An array consisting of 3 elements: position ([Vector3]), rotation ([Quat]) and scale ([Vector3]). </description> </method> <method name="value_track_get_key_indices" qualifiers="const"> @@ -611,7 +636,7 @@ <argument index="2" name="delta" type="float"> </argument> <description> - Return all the key indices of a value track, given a position and delta time. + Returns all the key indices of a value track, given a position and delta time. </description> </method> <method name="value_track_get_update_mode" qualifiers="const"> @@ -620,7 +645,7 @@ <argument index="0" name="idx" type="int"> </argument> <description> - Return the update mode of a value track. + Returns the update mode of a value track. </description> </method> <method name="value_track_set_update_mode"> diff --git a/doc/classes/AnimationNode.xml b/doc/classes/AnimationNode.xml index c1307be924..23f7a316d9 100644 --- a/doc/classes/AnimationNode.xml +++ b/doc/classes/AnimationNode.xml @@ -144,7 +144,7 @@ <return type="String"> </return> <description> - Return [code]true[/code] whether you want the blend tree editor to display filter editing on this node. + Returns [code]true[/code] whether you want the blend tree editor to display filter editing on this node. </description> </method> <method name="is_path_filtered" qualifiers="const"> @@ -153,7 +153,7 @@ <argument index="0" name="path" type="NodePath"> </argument> <description> - Return [code]true[/code] whether a given path is filtered. + Returns [code]true[/code] whether a given path is filtered. </description> </method> <method name="process" qualifiers="virtual"> @@ -204,7 +204,7 @@ </methods> <members> <member name="filter_enabled" type="bool" setter="set_filter_enabled" getter="is_filter_enabled"> - Return whether filtering is enabled. + Returns whether filtering is enabled. </member> </members> <signals> @@ -215,6 +215,7 @@ </signal> <signal name="tree_changed"> <description> + Emitted by nodes that inherit from this class and that have an internal tree when one of their nodes changes. The nodes that emit this signal are [AnimationNodeBlendSpace1D], [AnimationNodeBlendSpace2D], [AnimationNodeStateMachine], and [AnimationNodeBlendTree]. </description> </signal> </signals> diff --git a/doc/classes/AnimationNodeAdd2.xml b/doc/classes/AnimationNodeAdd2.xml index ac2a28e396..890d6f8b49 100644 --- a/doc/classes/AnimationNodeAdd2.xml +++ b/doc/classes/AnimationNodeAdd2.xml @@ -1,8 +1,10 @@ <?xml version="1.0" encoding="UTF-8" ?> <class name="AnimationNodeAdd2" inherits="AnimationNode" category="Core" version="3.2"> <brief_description> + Blends two animations additively inside of an [AnimationNodeBlendTree]. </brief_description> <description> + A resource to add to an [AnimationNodeBlendTree]. Blends two animations additively based on an amount value in the [code][0.0, 1.0][/code] range. </description> <tutorials> </tutorials> @@ -10,6 +12,7 @@ </methods> <members> <member name="sync" type="bool" setter="set_use_sync" getter="is_using_sync"> + If [code]true[/code], sets the [code]optimization[/code] to [code]false[/code] when calling [method AnimationNode.blend_input], forcing the blended animations to update every frame. </member> </members> <constants> diff --git a/doc/classes/AnimationNodeAdd3.xml b/doc/classes/AnimationNodeAdd3.xml index 9cfeb47378..7747c333bf 100644 --- a/doc/classes/AnimationNodeAdd3.xml +++ b/doc/classes/AnimationNodeAdd3.xml @@ -1,8 +1,14 @@ <?xml version="1.0" encoding="UTF-8" ?> <class name="AnimationNodeAdd3" inherits="AnimationNode" category="Core" version="3.2"> <brief_description> + Blends two of three animations additively inside of an [AnimationNodeBlendTree]. </brief_description> <description> + A resource to add to an [AnimationNodeBlendTree]. Blends two animations together additively out of three based on a value in the [code][-1.0, 1.0][/code] range. + This node has three inputs: + - The base animation to add to + - A -add animation to blend with when the blend amount is in the [code][-1.0, 0.0][/code] range. + - A +add animation to blend with when the blend amount is in the [code][0.0, 1.0][/code] range </description> <tutorials> </tutorials> @@ -10,6 +16,7 @@ </methods> <members> <member name="sync" type="bool" setter="set_use_sync" getter="is_using_sync"> + If [code]true[/code], sets the [code]optimization[/code] to [code]false[/code] when calling [method AnimationNode.blend_input], forcing the blended animations to update every frame. </member> </members> <constants> diff --git a/doc/classes/AnimationNodeAnimation.xml b/doc/classes/AnimationNodeAnimation.xml index e7d53fc7b3..420a702d38 100644 --- a/doc/classes/AnimationNodeAnimation.xml +++ b/doc/classes/AnimationNodeAnimation.xml @@ -1,8 +1,10 @@ <?xml version="1.0" encoding="UTF-8" ?> <class name="AnimationNodeAnimation" inherits="AnimationRootNode" category="Core" version="3.2"> <brief_description> + Input animation to use in an [AnimationNodeBlendTree]. </brief_description> <description> + A resource to add to an [AnimationNodeBlendTree]. Only features one output set using the [member animation] property. Use it as an input for [AnimationNode] that blend animations together. </description> <tutorials> </tutorials> @@ -10,6 +12,7 @@ </methods> <members> <member name="animation" type="String" setter="set_animation" getter="get_animation"> + Animation to use as an output. It is one of the animations provided by [member AnimationTree.anim_player]. </member> </members> <constants> diff --git a/doc/classes/AnimationNodeBlend2.xml b/doc/classes/AnimationNodeBlend2.xml index f15fa44f39..9358c5eeef 100644 --- a/doc/classes/AnimationNodeBlend2.xml +++ b/doc/classes/AnimationNodeBlend2.xml @@ -1,8 +1,10 @@ <?xml version="1.0" encoding="UTF-8" ?> <class name="AnimationNodeBlend2" inherits="AnimationNode" category="Core" version="3.2"> <brief_description> + Blends two animations linearly inside of an [AnimationNodeBlendTree]. </brief_description> <description> + A resource to add to an [AnimationNodeBlendTree]. Blends two animations linearly based on an amount value in the [code][0.0, 1.0][/code] range. </description> <tutorials> </tutorials> @@ -10,6 +12,7 @@ </methods> <members> <member name="sync" type="bool" setter="set_use_sync" getter="is_using_sync"> + If [code]true[/code], sets the [code]optimization[/code] to [code]false[/code] when calling [method AnimationNode.blend_input], forcing the blended animations to update every frame. </member> </members> <constants> diff --git a/doc/classes/AnimationNodeBlend3.xml b/doc/classes/AnimationNodeBlend3.xml index 2f82eea041..f4a108f930 100644 --- a/doc/classes/AnimationNodeBlend3.xml +++ b/doc/classes/AnimationNodeBlend3.xml @@ -1,8 +1,14 @@ <?xml version="1.0" encoding="UTF-8" ?> <class name="AnimationNodeBlend3" inherits="AnimationNode" category="Core" version="3.2"> <brief_description> + Blends two of three animations linearly inside of an [AnimationNodeBlendTree]. </brief_description> <description> + A resource to add to an [AnimationNodeBlendTree]. Blends two animations together linearly out of three based on a value in the [code][-1.0, 1.0][/code] range. + This node has three inputs: + - The base animation + - A -blend animation to blend with when the blend amount is in the [code][-1.0, 0.0][/code] range. + - A +blend animation to blend with when the blend amount is in the [code][0.0, 1.0][/code] range </description> <tutorials> </tutorials> @@ -10,6 +16,7 @@ </methods> <members> <member name="sync" type="bool" setter="set_use_sync" getter="is_using_sync"> + If [code]true[/code], sets the [code]optimization[/code] to [code]false[/code] when calling [method AnimationNode.blend_input], forcing the blended animations to update every frame. </member> </members> <constants> diff --git a/doc/classes/AnimationNodeBlendSpace1D.xml b/doc/classes/AnimationNodeBlendSpace1D.xml index b13aee277e..6fb5c6312b 100644 --- a/doc/classes/AnimationNodeBlendSpace1D.xml +++ b/doc/classes/AnimationNodeBlendSpace1D.xml @@ -1,8 +1,13 @@ <?xml version="1.0" encoding="UTF-8" ?> <class name="AnimationNodeBlendSpace1D" inherits="AnimationRootNode" category="Core" version="3.2"> <brief_description> + Blends linearly between two of any number of [AnimationNode] of any type placed on a virtual axis. </brief_description> <description> + A resource to add to an [AnimationNodeBlendTree]. + This is a virtual axis on which you can add any type of [AnimationNode] using [method add_blend_point]. + Outputs the linear blend of the two [code]AnimationNode[/code] closest to the node's current [code]value[/code]. + You can set the extents of the axis using the [member min_space] and [member max_space]. </description> <tutorials> </tutorials> @@ -17,12 +22,14 @@ <argument index="2" name="at_index" type="int" default="-1"> </argument> <description> + Add a new point that represents a [code]node[/code] on the virtual axis at a given position set by [code]pos[/code]. You can insert it at a specific index using the [code]at_index[/code] argument. If you use the default value for [code]at_index[/code] , the point is inserted at the end of the blend points array. </description> </method> <method name="get_blend_point_count" qualifiers="const"> <return type="int"> </return> <description> + Returns the number of points on the blend axis. </description> </method> <method name="get_blend_point_node" qualifiers="const"> @@ -31,6 +38,7 @@ <argument index="0" name="point" type="int"> </argument> <description> + Returns the [code]AnimationNode[/code] referenced by the point at index [code]point[/code]. </description> </method> <method name="get_blend_point_position" qualifiers="const"> @@ -39,6 +47,7 @@ <argument index="0" name="point" type="int"> </argument> <description> + Returns the position of the point at index [code]point[/code]. </description> </method> <method name="remove_blend_point"> @@ -47,6 +56,7 @@ <argument index="0" name="point" type="int"> </argument> <description> + Removes the point at index [code]point[/code] from the blend axis. </description> </method> <method name="set_blend_point_node"> @@ -57,6 +67,7 @@ <argument index="1" name="node" type="AnimationRootNode"> </argument> <description> + Changes the AnimationNode referenced by the point at index [code]point[/code]. </description> </method> <method name="set_blend_point_position"> @@ -67,17 +78,22 @@ <argument index="1" name="pos" type="float"> </argument> <description> + Updates the position of the point at index [code]point[/code] on the blend axis. </description> </method> </methods> <members> <member name="max_space" type="float" setter="set_max_space" getter="get_max_space"> + The blend space's axis's upper limit for the points' position. See [method add_blend_point]. </member> <member name="min_space" type="float" setter="set_min_space" getter="get_min_space"> + The blend space's axis's lower limit for the points' position. See [method add_blend_point]. </member> <member name="snap" type="float" setter="set_snap" getter="get_snap"> + Position increment to snap to when moving a point on the axis. </member> <member name="value_label" type="String" setter="set_value_label" getter="get_value_label"> + Label of the virtual axis of the blend space. </member> </members> <constants> diff --git a/doc/classes/AnimationNodeBlendSpace2D.xml b/doc/classes/AnimationNodeBlendSpace2D.xml index 2ec5977301..6567098d6c 100644 --- a/doc/classes/AnimationNodeBlendSpace2D.xml +++ b/doc/classes/AnimationNodeBlendSpace2D.xml @@ -1,8 +1,12 @@ <?xml version="1.0" encoding="UTF-8" ?> <class name="AnimationNodeBlendSpace2D" inherits="AnimationRootNode" category="Core" version="3.2"> <brief_description> + Blends linearly between three [AnimationNode] of any type placed in a 2d space. </brief_description> <description> + A resource to add to an [AnimationNodeBlendTree]. + This node allows you to blend linearly between three animations using a [Vector2] weight. + You can add vertices to the blend space with [method add_blend_point] and automatically triangulate it by setting [member auto_triangles] to [code]true[/code]. Otherwise, use [method add_triangle] and [method remove_triangle] to create up the blend space by hand. </description> <tutorials> </tutorials> @@ -17,6 +21,7 @@ <argument index="2" name="at_index" type="int" default="-1"> </argument> <description> + Add a new point that represents a [code]node[/code] at the position set by [code]pos[/code]. You can insert it at a specific index using the [code]at_index[/code] argument. If you use the default value for [code]at_index[/code] , the point is inserted at the end of the blend points array. </description> </method> <method name="add_triangle"> @@ -31,12 +36,14 @@ <argument index="3" name="at_index" type="int" default="-1"> </argument> <description> + Creates a new triangle using three points [code]x[/code], [code]y[/code], and [code]z[/code]. Triangles can overlap. You can insert the triangle at a specific index using the [code]at_index[/code] argument. If you use the default value for [code]at_index[/code] , the point is inserted at the end of the blend points array. </description> </method> <method name="get_blend_point_count" qualifiers="const"> <return type="int"> </return> <description> + Returns the number of points in the blend space. </description> </method> <method name="get_blend_point_node" qualifiers="const"> @@ -45,6 +52,7 @@ <argument index="0" name="point" type="int"> </argument> <description> + Returns the [code]AnimationRootNode[/code] referenced by the point at index [code]point[/code]. </description> </method> <method name="get_blend_point_position" qualifiers="const"> @@ -53,12 +61,14 @@ <argument index="0" name="point" type="int"> </argument> <description> + Returns the position of the point at index [code]point[/code]. </description> </method> <method name="get_triangle_count" qualifiers="const"> <return type="int"> </return> <description> + Returns the number of triangles in the blend space. </description> </method> <method name="get_triangle_point"> @@ -69,6 +79,7 @@ <argument index="1" name="point" type="int"> </argument> <description> + Returns the position of the point at index [code]point[/code] in the triangle of index [code]triangle[/code]. </description> </method> <method name="remove_blend_point"> @@ -77,6 +88,7 @@ <argument index="0" name="point" type="int"> </argument> <description> + Removes the point at index [code]point[/code] from the blend space. </description> </method> <method name="remove_triangle"> @@ -85,6 +97,7 @@ <argument index="0" name="triangle" type="int"> </argument> <description> + Removes the triangle at index [code]triangle[/code] from the blend space. </description> </method> <method name="set_blend_point_node"> @@ -95,6 +108,7 @@ <argument index="1" name="node" type="AnimationRootNode"> </argument> <description> + Changes the AnimationNode referenced by the point at index [code]point[/code]. </description> </method> <method name="set_blend_point_position"> @@ -105,39 +119,49 @@ <argument index="1" name="pos" type="Vector2"> </argument> <description> + Updates the position of the point at index [code]point[/code] on the blend axis. </description> </method> </methods> <members> <member name="auto_triangles" type="bool" setter="set_auto_triangles" getter="get_auto_triangles"> + If true, the blend space is triangulated automatically. The mesh updates every time you add or remove points with [method add_blend_point] and [method remove_blend_point]. </member> <member name="blend_mode" type="int" setter="set_blend_mode" getter="get_blend_mode" enum="AnimationNodeBlendSpace2D.BlendMode"> + Controls the interpolation between animations. See [enum BlendMode] constants. </member> <member name="max_space" type="Vector2" setter="set_max_space" getter="get_max_space"> + The blend space's X and Y axes' upper limit for the points' position. See [method add_blend_point]. </member> <member name="min_space" type="Vector2" setter="set_min_space" getter="get_min_space"> + The blend space's X and Y axes' lower limit for the points' position. See [method add_blend_point]. </member> <member name="snap" type="Vector2" setter="set_snap" getter="get_snap"> + Position increment to snap to when moving a point. </member> <member name="x_label" type="String" setter="set_x_label" getter="get_x_label"> + Name of the blend space's X axis. </member> <member name="y_label" type="String" setter="set_y_label" getter="get_y_label"> + Name of the blend space's Y axis. </member> </members> <signals> <signal name="triangles_updated"> <description> + Emitted every time the blend space's triangles are created, removed, or when one of their vertices changes position. </description> </signal> </signals> <constants> <constant name="BLEND_MODE_INTERPOLATED" value="0" enum="BlendMode"> + The interpolation between animations is linear. </constant> <constant name="BLEND_MODE_DISCRETE" value="1" enum="BlendMode"> - Useful for frame-by-frame 2D animations. + The blend space plays the animation of the node the blending position is closest to. Useful for frame-by-frame 2D animations. </constant> <constant name="BLEND_MODE_DISCRETE_CARRY" value="2" enum="BlendMode"> - Keep the current play position when switching between discrete animations. + Similar to [constant BLEND_MODE_DISCRETE], but starts the new animation at the last animation's playback position. </constant> </constants> </class> diff --git a/doc/classes/AnimationNodeStateMachine.xml b/doc/classes/AnimationNodeStateMachine.xml index 8f4e6dff69..2834f83d2f 100644 --- a/doc/classes/AnimationNodeStateMachine.xml +++ b/doc/classes/AnimationNodeStateMachine.xml @@ -1,12 +1,13 @@ <?xml version="1.0" encoding="UTF-8" ?> <class name="AnimationNodeStateMachine" inherits="AnimationRootNode" category="Core" version="3.2"> <brief_description> + State machine for control of animations. </brief_description> <description> - Contains multiple root nodes as children in a graph. Each node is used as a state, and provides multiple functions to alternate between states. Retrieve the AnimationNodeStateMachinePlayback object from the [AnimationTree] node to control it programmatically. + Contains multiple nodes representing animation states, connected in a graph. Nodes transitions can be configured to happen automatically or via code, using a shortest-path algorithm. Retrieve the AnimationNodeStateMachinePlayback object from the [AnimationTree] node to control it programatically. Example: [codeblock] - var state_machine = anim_tree["parameters/StateMachine/playback"] - state_machine.travel("SomeState") + var state_machine = $AnimationTree.get("parameters/playback") + state_machine.travel("some_state") [/codeblock] </description> <tutorials> @@ -22,6 +23,7 @@ <argument index="2" name="position" type="Vector2" default="Vector2( 0, 0 )"> </argument> <description> + Adds a new node to the graph. The [code]position[/code] is used for display in the editor. </description> </method> <method name="add_transition"> @@ -34,18 +36,21 @@ <argument index="2" name="transition" type="AnimationNodeStateMachineTransition"> </argument> <description> + Adds a transition between the given nodes. </description> </method> <method name="get_end_node" qualifiers="const"> <return type="String"> </return> <description> + Returns the graph's end node. </description> </method> <method name="get_graph_offset" qualifiers="const"> <return type="Vector2"> </return> <description> + Returns the draw offset of the graph. Used for display in the editor. </description> </method> <method name="get_node" qualifiers="const"> @@ -54,6 +59,7 @@ <argument index="0" name="name" type="String"> </argument> <description> + Returns the animation node with the given name. </description> </method> <method name="get_node_name" qualifiers="const"> @@ -62,6 +68,7 @@ <argument index="0" name="node" type="AnimationNode"> </argument> <description> + Returns the given animation node's name. </description> </method> <method name="get_node_position" qualifiers="const"> @@ -70,12 +77,14 @@ <argument index="0" name="name" type="String"> </argument> <description> + Returns the given node's coordinates. Used for display in the editor. </description> </method> <method name="get_start_node" qualifiers="const"> <return type="String"> </return> <description> + Returns the graph's end node. </description> </method> <method name="get_transition" qualifiers="const"> @@ -84,12 +93,14 @@ <argument index="0" name="idx" type="int"> </argument> <description> + Returns the given transition. </description> </method> <method name="get_transition_count" qualifiers="const"> <return type="int"> </return> <description> + Returns the number of connections in the graph. </description> </method> <method name="get_transition_from" qualifiers="const"> @@ -98,6 +109,7 @@ <argument index="0" name="idx" type="int"> </argument> <description> + Returns the given transition's start node. </description> </method> <method name="get_transition_to" qualifiers="const"> @@ -106,6 +118,7 @@ <argument index="0" name="idx" type="int"> </argument> <description> + Returns the given transition's end node. </description> </method> <method name="has_node" qualifiers="const"> @@ -114,6 +127,7 @@ <argument index="0" name="name" type="String"> </argument> <description> + Returns [code]true[/code] if the graph contains the given node. </description> </method> <method name="has_transition" qualifiers="const"> @@ -124,6 +138,7 @@ <argument index="1" name="to" type="String"> </argument> <description> + Returns [code]true[/code] if there is a transition between the given nodes. </description> </method> <method name="remove_node"> @@ -132,6 +147,7 @@ <argument index="0" name="name" type="String"> </argument> <description> + Deletes the given node from the graph. </description> </method> <method name="remove_transition"> @@ -142,6 +158,7 @@ <argument index="1" name="to" type="String"> </argument> <description> + Deletes the given transition. </description> </method> <method name="remove_transition_by_index"> @@ -150,6 +167,7 @@ <argument index="0" name="idx" type="int"> </argument> <description> + Deletes the given transition. </description> </method> <method name="rename_node"> @@ -160,6 +178,7 @@ <argument index="1" name="new_name" type="String"> </argument> <description> + Renames the given node. </description> </method> <method name="set_end_node"> @@ -168,6 +187,7 @@ <argument index="0" name="name" type="String"> </argument> <description> + Sets the given node as the graph end point. </description> </method> <method name="set_graph_offset"> @@ -176,6 +196,7 @@ <argument index="0" name="offset" type="Vector2"> </argument> <description> + Sets the draw offset of the graph. Used for display in the editor. </description> </method> <method name="set_node_position"> @@ -186,6 +207,7 @@ <argument index="1" name="position" type="Vector2"> </argument> <description> + Sets the node's coordinates. Used for display in the editor. </description> </method> <method name="set_start_node"> @@ -194,6 +216,7 @@ <argument index="0" name="name" type="String"> </argument> <description> + Sets the given node as the graph start point. </description> </method> </methods> diff --git a/doc/classes/AnimationNodeStateMachinePlayback.xml b/doc/classes/AnimationNodeStateMachinePlayback.xml index fd38c28b16..796d92d7d6 100644 --- a/doc/classes/AnimationNodeStateMachinePlayback.xml +++ b/doc/classes/AnimationNodeStateMachinePlayback.xml @@ -1,8 +1,14 @@ <?xml version="1.0" encoding="UTF-8" ?> <class name="AnimationNodeStateMachinePlayback" inherits="Resource" category="Core" version="3.2"> <brief_description> + Playback control for AnimationNodeStateMachine. </brief_description> <description> + Allows control of [AnimationTree] state machines created with [AnimationNodeStateMachine]. Retrieve with [code]$AnimationTree.get("parameters/playback")[/code]. Example: + [codeblock] + var state_machine = $AnimationTree.get("parameters/playback") + state_machine.travel("some_state") + [/codeblock] </description> <tutorials> </tutorials> @@ -11,6 +17,7 @@ <return type="String"> </return> <description> + Returns the currently playing animation state. </description> </method> <method name="get_travel_path" qualifiers="const"> @@ -23,6 +30,7 @@ <return type="bool"> </return> <description> + Returns [code]true[/code] if an animation is playing. </description> </method> <method name="start"> @@ -31,12 +39,14 @@ <argument index="0" name="node" type="String"> </argument> <description> + Starts playing the given animation. </description> </method> <method name="stop"> <return type="void"> </return> <description> + Stops the currently playing animation. </description> </method> <method name="travel"> @@ -45,7 +55,7 @@ <argument index="0" name="to_node" type="String"> </argument> <description> - Transition from the current state to another one, while visiting all the intermediate ones. This is done via the A* algorithm. + Transitions from the current state to another one, following the shortest path. </description> </method> </methods> diff --git a/doc/classes/AnimationNodeStateMachineTransition.xml b/doc/classes/AnimationNodeStateMachineTransition.xml index a21ee50949..aeb44a789b 100644 --- a/doc/classes/AnimationNodeStateMachineTransition.xml +++ b/doc/classes/AnimationNodeStateMachineTransition.xml @@ -10,7 +10,10 @@ </methods> <members> <member name="advance_condition" type="String" setter="set_advance_condition" getter="get_advance_condition"> - Turn on auto advance when this condition is set. This is a custom text field that can be filled with a variable name. The variable can be modified from code. + Turn on auto advance when this condition is set. The provided name will become a boolean parameter on the [AnimationTree] that can be controlled from code (see [url=https://docs.godotengine.org/en/latest/tutorials/animation/animation_tree.html#controlling-from-code][/url]). For example, if [member AnimationTree.tree_root] is an [AnimationNodeStateMachine] and [member advance_condition] is set to "idle": + [codeblock] + $animation_tree["parameters/conditions/idle"] = is_on_floor and linear_velocity.x == 0 + [/codeblock] </member> <member name="auto_advance" type="bool" setter="set_auto_advance" getter="has_auto_advance"> Turn on the transition automatically when this state is reached. This works best with [code]SWITCH_MODE_AT_END[/code]. diff --git a/doc/classes/AnimationTreePlayer.xml b/doc/classes/AnimationTreePlayer.xml index 6160b44076..818565e0dc 100644 --- a/doc/classes/AnimationTreePlayer.xml +++ b/doc/classes/AnimationTreePlayer.xml @@ -256,7 +256,7 @@ <argument index="0" name="id" type="String"> </argument> <description> - Return the input count for a given node. Different types of nodes have different amount of inputs. + Returns the input count for a given node. Different types of nodes have different amount of inputs. </description> </method> <method name="node_get_input_source" qualifiers="const"> @@ -267,7 +267,7 @@ <argument index="1" name="idx" type="int"> </argument> <description> - Return the input source for a given node input. + Returns the input source for a given node input. </description> </method> <method name="node_get_position" qualifiers="const"> diff --git a/doc/classes/Area2D.xml b/doc/classes/Area2D.xml index 2400efe0d3..8d28ddc889 100644 --- a/doc/classes/Area2D.xml +++ b/doc/classes/Area2D.xml @@ -15,7 +15,7 @@ <argument index="0" name="bit" type="int"> </argument> <description> - Return an individual bit on the layer mask. Describes whether other areas will collide with this one on the given layer. + Returns an individual bit on the layer mask. Describes whether other areas will collide with this one on the given layer. </description> </method> <method name="get_collision_mask_bit" qualifiers="const"> @@ -24,7 +24,7 @@ <argument index="0" name="bit" type="int"> </argument> <description> - Return an individual bit on the collision mask. Describes whether this area will collide with others on the given layer. + Returns an individual bit on the collision mask. Describes whether this area will collide with others on the given layer. </description> </method> <method name="get_overlapping_areas" qualifiers="const"> diff --git a/doc/classes/ArrayMesh.xml b/doc/classes/ArrayMesh.xml index db0fc77b25..d44e3c54c9 100644 --- a/doc/classes/ArrayMesh.xml +++ b/doc/classes/ArrayMesh.xml @@ -1,6 +1,7 @@ <?xml version="1.0" encoding="UTF-8" ?> <class name="ArrayMesh" inherits="Mesh" category="Core" version="3.2"> <brief_description> + [Mesh] type that provides utility for constructing a surface from arrays. </brief_description> <description> The [ArrayMesh] is used to construct a [Mesh] by specifying the attributes as arrays. The most basic example is the creation of a single triangle @@ -30,6 +31,7 @@ <argument index="0" name="name" type="String"> </argument> <description> + Add name for a blend shape that will be added with [method add_surface_from_arrays]. Must be called before surface is added. </description> </method> <method name="add_surface_from_arrays"> @@ -98,7 +100,7 @@ <argument index="0" name="name" type="String"> </argument> <description> - Return the index of the first surface with this name held within this [ArrayMesh]. If none are found -1 is returned. + Returns the index of the first surface with this name held within this [ArrayMesh]. If none are found -1 is returned. </description> </method> <method name="surface_get_array_index_len" qualifiers="const"> @@ -107,7 +109,7 @@ <argument index="0" name="surf_idx" type="int"> </argument> <description> - Return the length in indices of the index array in the requested surface (see [method add_surface_from_arrays]). + Returns the length in indices of the index array in the requested surface (see [method add_surface_from_arrays]). </description> </method> <method name="surface_get_array_len" qualifiers="const"> @@ -116,7 +118,7 @@ <argument index="0" name="surf_idx" type="int"> </argument> <description> - Return the length in vertices of the vertex array in the requested surface (see [method add_surface_from_arrays]). + Returns the length in vertices of the vertex array in the requested surface (see [method add_surface_from_arrays]). </description> </method> <method name="surface_get_format" qualifiers="const"> @@ -125,7 +127,7 @@ <argument index="0" name="surf_idx" type="int"> </argument> <description> - Return the format mask of the requested surface (see [method add_surface_from_arrays]). + Returns the format mask of the requested surface (see [method add_surface_from_arrays]). </description> </method> <method name="surface_get_name" qualifiers="const"> @@ -143,7 +145,7 @@ <argument index="0" name="surf_idx" type="int"> </argument> <description> - Return the primitive type of the requested surface (see [method add_surface_from_arrays]). + Returns the primitive type of the requested surface (see [method add_surface_from_arrays]). </description> </method> <method name="surface_remove"> @@ -155,17 +157,6 @@ Remove a surface at position surf_idx, shifting greater surfaces one surf_idx slot down. </description> </method> - <method name="surface_set_material"> - <return type="void"> - </return> - <argument index="0" name="surf_idx" type="int"> - </argument> - <argument index="1" name="material" type="Material"> - </argument> - <description> - Set a [Material] for a given surface. Surface will be rendered using this material. - </description> - </method> <method name="surface_set_name"> <return type="void"> </return> @@ -187,6 +178,7 @@ <argument index="2" name="data" type="PoolByteArray"> </argument> <description> + Updates a specified region of mesh arrays on GPU. Warning: only use if you know what you are doing. You can easily cause crashes by calling this function with improper arguments. </description> </method> </methods> @@ -194,7 +186,7 @@ <member name="blend_shape_mode" type="int" setter="set_blend_shape_mode" getter="get_blend_shape_mode" enum="Mesh.BlendShapeMode"> </member> <member name="custom_aabb" type="AABB" setter="set_custom_aabb" getter="get_custom_aabb"> - An overriding bounding box for this mesh. + Overrides the [AABB] with one defined by user for use with frustum culling. Especially useful to avoid unnexpected culling when using a shader to offset vertices. </member> </members> <constants> diff --git a/doc/classes/AudioEffectReverb.xml b/doc/classes/AudioEffectReverb.xml index fde22c9238..8c9652eee2 100644 --- a/doc/classes/AudioEffectReverb.xml +++ b/doc/classes/AudioEffectReverb.xml @@ -21,7 +21,7 @@ <member name="hipass" type="float" setter="set_hpf" getter="get_hpf"> High-pass filter passes signals with a frequency higher than a certain cutoff frequency and attenuates signals with frequencies lower than the cutoff frequency. Value can range from 0 to 1. Default value: [code]0[/code]. </member> - <member name="predelay_feedback" type="float" setter="set_predelay_msec" getter="get_predelay_msec"> + <member name="predelay_feedback" type="float" setter="set_predelay_feedback" getter="get_predelay_feedback"> Output percent of predelay. Value can range from 0 to 1. Default value: [code]1[/code]. </member> <member name="predelay_msec" type="float" setter="set_predelay_msec" getter="get_predelay_msec"> diff --git a/doc/classes/AudioStreamSample.xml b/doc/classes/AudioStreamSample.xml index e23080c9d3..4bcf8ea791 100644 --- a/doc/classes/AudioStreamSample.xml +++ b/doc/classes/AudioStreamSample.xml @@ -1,10 +1,11 @@ <?xml version="1.0" encoding="UTF-8" ?> <class name="AudioStreamSample" inherits="AudioStream" category="Core" version="3.2"> <brief_description> - Plays audio. + Stores audio data loaded from [code].wav[/code] files. </brief_description> <description> - Plays audio, can loop. + AudioStreamSample stores sound samples loaded from [code].wav[/code] files. To play the stored sound use an [AudioStreamPlayer] (for background music) or [AudioStreamPlayer2D]/[AudioStreamPlayer3D] (for positional audio). The sound can be looped. + This class can also be used to store dynamically generated PCM audio data. </description> <tutorials> </tutorials> diff --git a/doc/classes/BaseButton.xml b/doc/classes/BaseButton.xml index 7bd346ed5a..6d1a7a8f87 100644 --- a/doc/classes/BaseButton.xml +++ b/doc/classes/BaseButton.xml @@ -29,14 +29,14 @@ <return type="int" enum="BaseButton.DrawMode"> </return> <description> - Return the visual state used to draw the button. This is useful mainly when implementing your own draw code by either overriding _draw() or connecting to "draw" signal. The visual state of the button is defined by the DRAW_* enum. + Returns the visual state used to draw the button. This is useful mainly when implementing your own draw code by either overriding _draw() or connecting to "draw" signal. The visual state of the button is defined by the DRAW_* enum. </description> </method> <method name="is_hovered" qualifiers="const"> <return type="bool"> </return> <description> - Return [code]true[/code] if the mouse has entered the button and has not left it yet. + Returns [code]true[/code] if the mouse has entered the button and has not left it yet. </description> </method> </methods> diff --git a/doc/classes/Basis.xml b/doc/classes/Basis.xml index cee3035eab..ae7a3ff323 100644 --- a/doc/classes/Basis.xml +++ b/doc/classes/Basis.xml @@ -57,7 +57,7 @@ <return type="float"> </return> <description> - Return the determinant of the matrix. + Returns the determinant of the matrix. </description> </method> <method name="get_euler"> @@ -91,7 +91,7 @@ <return type="Basis"> </return> <description> - Return the inverse of the matrix. + Returns the inverse of the matrix. </description> </method> <method name="is_equal_approx"> @@ -108,7 +108,7 @@ <return type="Basis"> </return> <description> - Return the orthonormalized version of the matrix (useful to call from time to time to avoid rounding error for orthogonal matrices). This performs a Gram-Schmidt orthonormalization on the basis of the matrix. + Returns the orthonormalized version of the matrix (useful to call from time to time to avoid rounding error for orthogonal matrices). This performs a Gram-Schmidt orthonormalization on the basis of the matrix. </description> </method> <method name="rotated"> @@ -173,7 +173,7 @@ <return type="Basis"> </return> <description> - Return the transposed version of the matrix. + Returns the transposed version of the matrix. </description> </method> <method name="xform"> @@ -182,7 +182,7 @@ <argument index="0" name="v" type="Vector3"> </argument> <description> - Return a vector transformed (multiplied) by the matrix. + Returns a vector transformed (multiplied) by the matrix. </description> </method> <method name="xform_inv"> @@ -191,7 +191,7 @@ <argument index="0" name="v" type="Vector3"> </argument> <description> - Return a vector transformed (multiplied) by the transposed matrix. Note that this results in a multiplication by the inverse of the matrix only if it represents a rotation-reflection. + Returns a vector transformed (multiplied) by the transposed matrix. Note that this results in a multiplication by the inverse of the matrix only if it represents a rotation-reflection. </description> </method> </methods> diff --git a/doc/classes/Bone2D.xml b/doc/classes/Bone2D.xml index 59f7bec889..757c6c6a34 100644 --- a/doc/classes/Bone2D.xml +++ b/doc/classes/Bone2D.xml @@ -1,8 +1,13 @@ <?xml version="1.0" encoding="UTF-8" ?> <class name="Bone2D" inherits="Node2D" category="Core" version="3.2"> <brief_description> + Joint used with [Skeleton2D] to control and animate other nodes. </brief_description> <description> + Use a hierarchy of [code]Bone2D[/code] bound to a [Skeleton2D] to control, and animate other [Node2D] nodes. + You can use [code]Bone2D[/code] and [code]Skeleton2D[/code] nodes to animate 2D meshes created with the Polygon 2D UV editor. + Each bone has a [member rest] transform that you can reset to with [method apply_rest]. These rest poses are relative to the bone's parent. + If in the editor, you can set the rest pose of an entire skeleton using a menu option, from the code, you need to iterate over the bones to set their individual rest poses. </description> <tutorials> </tutorials> @@ -11,25 +16,30 @@ <return type="void"> </return> <description> + Stores the node's current transforms in [member rest]. </description> </method> <method name="get_index_in_skeleton" qualifiers="const"> <return type="int"> </return> <description> + Returns the node's index as part of the entire skeleton. See [Skeleton2D]. </description> </method> <method name="get_skeleton_rest" qualifiers="const"> <return type="Transform2D"> </return> <description> + Returns the node's [member rest] [code]Transform2D[/code] if it doesn't have a parent, or its rest pose relative to its parent. </description> </method> </methods> <members> <member name="default_length" type="float" setter="set_default_length" getter="get_default_length"> + Length of the bone's representation drawn in the editor's viewport in pixels. </member> <member name="rest" type="Transform2D" setter="set_rest" getter="get_rest"> + Rest transform of the bone. You can reset the node's transforms to this value using [method apply_rest]. </member> </members> <constants> diff --git a/doc/classes/CPUParticles.xml b/doc/classes/CPUParticles.xml index 599c067328..c9c92102f3 100644 --- a/doc/classes/CPUParticles.xml +++ b/doc/classes/CPUParticles.xml @@ -1,8 +1,11 @@ <?xml version="1.0" encoding="UTF-8" ?> <class name="CPUParticles" inherits="GeometryInstance" category="Core" version="3.2"> <brief_description> + CPU-based 3D particle emitter. </brief_description> <description> + CPU-based 3D particle node used to create a variety of particle systems and effects. + See also [Particles], which provides the same functionality with hardware acceleration, but may not run on older devices. </description> <tutorials> </tutorials> @@ -13,56 +16,77 @@ <argument index="0" name="particles" type="Node"> </argument> <description> + Sets this node's properties to match a given [Particles] node with an assigned [ParticlesMaterial]. </description> </method> <method name="restart"> <return type="void"> </return> <description> + Restarts the particle emitter. </description> </method> </methods> <members> <member name="amount" type="int" setter="set_amount" getter="get_amount"> + Number of particles emitted in one emission cycle. </member> <member name="angle" type="float" setter="set_param" getter="get_param"> + Initial rotation applied to each particle, in degrees. </member> <member name="angle_curve" type="Curve" setter="set_param_curve" getter="get_param_curve"> + Each particle's rotation will be animated along this [Curve]. </member> <member name="angle_random" type="float" setter="set_param_randomness" getter="get_param_randomness"> + Rotation randomness ratio. Default value: [code]0[/code]. </member> <member name="angular_velocity" type="float" setter="set_param" getter="get_param"> + Initial angular velocity applied to each particle. Sets the speed of rotation of the particle. </member> <member name="angular_velocity_curve" type="Curve" setter="set_param_curve" getter="get_param_curve"> + Each particle's angular velocity will vary along this [Curve]. </member> <member name="angular_velocity_random" type="float" setter="set_param_randomness" getter="get_param_randomness"> + Angular velocity randomness ratio. Default value: [code]0[/code]. </member> <member name="anim_offset" type="float" setter="set_param" getter="get_param"> + Particle animation offset. </member> <member name="anim_offset_curve" type="Curve" setter="set_param_curve" getter="get_param_curve"> + Each particle's animation offset will vary along this [Curve]. </member> <member name="anim_offset_random" type="float" setter="set_param_randomness" getter="get_param_randomness"> + Animation offset randomness ratio. Default value: [code]0[/code]. </member> <member name="anim_speed" type="float" setter="set_param" getter="get_param"> + Particle animation speed. </member> <member name="anim_speed_curve" type="Curve" setter="set_param_curve" getter="get_param_curve"> + Each particle's animation speed will vary along this [Curve]. </member> <member name="anim_speed_random" type="float" setter="set_param_randomness" getter="get_param_randomness"> + Animation speed randomness ratio. Default value: [code]0[/code]. </member> <member name="color" type="Color" setter="set_color" getter="get_color"> + Unused for 3D particles. </member> <member name="color_ramp" type="Gradient" setter="set_color_ramp" getter="get_color_ramp"> - Each particle's vertex color will vary along this [GradientTexture]. + Unused for 3D particles. </member> <member name="damping" type="float" setter="set_param" getter="get_param"> + The rate at which particles lose velocity. </member> <member name="damping_curve" type="Curve" setter="set_param_curve" getter="get_param_curve"> + Damping will vary along this [Curve]. </member> <member name="damping_random" type="float" setter="set_param_randomness" getter="get_param_randomness"> + Damping randomness ratio. Default value: [code]0[/code]. </member> <member name="draw_order" type="int" setter="set_draw_order" getter="get_draw_order" enum="CPUParticles.DrawOrder"> + Particle draw order. Uses [enum DrawOrder] values. Default value: [constant DRAW_ORDER_INDEX]. </member> <member name="emission_box_extents" type="Vector3" setter="set_emission_box_extents" getter="get_emission_box_extents"> + The rectangle's extents if [member emission_shape] is set to [constant EMISSION_SHAPE_BOX]. </member> <member name="emission_colors" type="PoolColorArray" setter="set_emission_colors" getter="get_emission_colors"> </member> @@ -71,124 +95,199 @@ <member name="emission_points" type="PoolVector3Array" setter="set_emission_points" getter="get_emission_points"> </member> <member name="emission_shape" type="int" setter="set_emission_shape" getter="get_emission_shape" enum="CPUParticles.EmissionShape"> + Particles will be emitted inside this region. Use [enum EmissionShape] for values. Default value: [constant EMISSION_SHAPE_POINT]. </member> <member name="emission_sphere_radius" type="float" setter="set_emission_sphere_radius" getter="get_emission_sphere_radius"> + The sphere's radius if [enum EmissionShape] is set to [constant EMISSION_SHAPE_SPHERE]. </member> <member name="emitting" type="bool" setter="set_emitting" getter="is_emitting"> + If [code]true[/code], particles are being emitted. Default value: [code]true[/code]. </member> <member name="explosiveness" type="float" setter="set_explosiveness_ratio" getter="get_explosiveness_ratio"> + How rapidly particles in an emission cycle are emitted. If greater than [code]0[/code], there will be a gap in emissions before the next cycle begins. Default value: [code]0[/code]. </member> <member name="fixed_fps" type="int" setter="set_fixed_fps" getter="get_fixed_fps"> + The particle system's frame rate is fixed to a value. For instance, changing the value to 2 will make the particles render at 2 frames per second. Note this does not slow down the particle system itself. </member> <member name="flag_align_y" type="bool" setter="set_particle_flag" getter="get_particle_flag"> + Align y-axis of particle with the direction of its velocity. </member> <member name="flag_disable_z" type="bool" setter="set_particle_flag" getter="get_particle_flag"> + If [code]true[/code], particles will not move on the z axis. Default value: [code]false[/code]. </member> <member name="flag_rotate_y" type="bool" setter="set_particle_flag" getter="get_particle_flag"> + If [code]true[/code], particles rotate around y-axis by [member angle]. </member> <member name="flatness" type="float" setter="set_flatness" getter="get_flatness"> + Amount of [member spread] in Y/Z plane. A value of [code]1[/code] restricts particles to X/Z plane. Default [code]0[/code]. </member> <member name="fract_delta" type="bool" setter="set_fractional_delta" getter="get_fractional_delta"> + If [code]true[/code], results in fractional delta calculation which has a smoother particles display effect. Default value: [code]true[/code] </member> <member name="gravity" type="Vector3" setter="set_gravity" getter="get_gravity"> + Gravity applied to every particle. Default value: [code](0, -9.8, 0)[/code]. </member> <member name="hue_variation" type="float" setter="set_param" getter="get_param"> + Initial hue variation applied to each particle. </member> <member name="hue_variation_curve" type="Curve" setter="set_param_curve" getter="get_param_curve"> + Each particle's hue will vary along this [Curve]. </member> <member name="hue_variation_random" type="float" setter="set_param_randomness" getter="get_param_randomness"> + Hue variation randomness ratio. Default value: [code]0[/code]. </member> <member name="initial_velocity" type="float" setter="set_param" getter="get_param"> + Initial velocity magnitude for each particle. Direction comes from [member spread] and the node's orientation. </member> <member name="initial_velocity_random" type="float" setter="set_param_randomness" getter="get_param_randomness"> + Initial velocity randomness ratio. Default value: [code]0[/code]. </member> <member name="lifetime" type="float" setter="set_lifetime" getter="get_lifetime"> + Amount of time each particle will exist. Default value: [code]1[/code]. </member> <member name="linear_accel" type="float" setter="set_param" getter="get_param"> + Linear acceleration applied to each particle in the direction of motion. </member> <member name="linear_accel_curve" type="Curve" setter="set_param_curve" getter="get_param_curve"> + Each particle's linear acceleration will vary along this [Curve]. </member> <member name="linear_accel_random" type="float" setter="set_param_randomness" getter="get_param_randomness"> + Linear acceleration randomness ratio. Default value: [code]0[/code]. </member> <member name="local_coords" type="bool" setter="set_use_local_coordinates" getter="get_use_local_coordinates"> + If [code]true[/code], particles use the parent node's coordinate space. If [code]false[/code], they use global coordinates. Default value: [code]true[/code]. </member> <member name="mesh" type="Mesh" setter="set_mesh" getter="get_mesh"> + The [Mesh] used for each particle. If [code]null[/code], particles will be spheres. </member> <member name="one_shot" type="bool" setter="set_one_shot" getter="get_one_shot"> + If [code]true[/code], only one emission cycle occurs. If set [code]true[/code] during a cycle, emission will stop at the cycle's end. Default value: [code]false[/code]. + </member> + <member name="orbit_velocity" type="float" setter="set_param" getter="get_param"> + Orbital velocity applied to each particle. Makes the particles circle around origin in the local XY plane. Specified in number of full rotations around origin per second. + This property is only available when [member flag_disable_z] is [code]true[/code]. + </member> + <member name="orbit_velocity_curve" type="Curve" setter="set_param_curve" getter="get_param_curve"> + Each particle's orbital velocity will vary along this [Curve]. + </member> + <member name="orbit_velocity_random" type="float" setter="set_param_randomness" getter="get_param_randomness"> + Orbital velocity randomness ratio. Default value: [code]0[/code]. </member> <member name="preprocess" type="float" setter="set_pre_process_time" getter="get_pre_process_time"> + Particle system starts as if it had already run for this many seconds. </member> <member name="radial_accel" type="float" setter="set_param" getter="get_param"> + Radial acceleration applied to each particle. Makes particle accelerate away from origin. </member> <member name="radial_accel_curve" type="Curve" setter="set_param_curve" getter="get_param_curve"> + Each particle's radial acceleration will vary along this [Curve]. </member> <member name="radial_accel_random" type="float" setter="set_param_randomness" getter="get_param_randomness"> + Radial acceleration randomness ratio. Default value: [code]0[/code]. </member> <member name="randomness" type="float" setter="set_randomness_ratio" getter="get_randomness_ratio"> + Emission lifetime randomness ratio. Default value: [code]0[/code]. </member> <member name="scale_amount" type="float" setter="set_param" getter="get_param"> + Initial scale applied to each particle. </member> <member name="scale_amount_curve" type="Curve" setter="set_param_curve" getter="get_param_curve"> + Each particle's scale will vary along this [Curve]. </member> <member name="scale_amount_random" type="float" setter="set_param_randomness" getter="get_param_randomness"> + Scale randomness ratio. Default value: [code]0[/code]. </member> <member name="speed_scale" type="float" setter="set_speed_scale" getter="get_speed_scale"> + Particle system's running speed scaling ratio. Default value: [code]1[/code]. A value of [code]0[/code] can be used to pause the particles. </member> <member name="spread" type="float" setter="set_spread" getter="get_spread"> + Each particle's initial direction range from [code]+spread[/code] to [code]-spread[/code] degrees. Default value: [code]45[/code]. </member> <member name="tangential_accel" type="float" setter="set_param" getter="get_param"> + Tangential acceleration applied to each particle. Tangential acceleration is perpendicular to the particle's velocity giving the particles a swirling motion. </member> <member name="tangential_accel_curve" type="Curve" setter="set_param_curve" getter="get_param_curve"> + Each particle's tangential acceleration will vary along this [Curve]. </member> <member name="tangential_accel_random" type="float" setter="set_param_randomness" getter="get_param_randomness"> + Tangential acceleration randomness ratio. Default value: [code]0[/code]. </member> </members> <constants> <constant name="DRAW_ORDER_INDEX" value="0" enum="DrawOrder"> + Particles are drawn in the order emitted. </constant> <constant name="DRAW_ORDER_LIFETIME" value="1" enum="DrawOrder"> + Particles are drawn in order of remaining lifetime. </constant> <constant name="DRAW_ORDER_VIEW_DEPTH" value="2" enum="DrawOrder"> + Particles are drawn in order of depth. </constant> <constant name="PARAM_INITIAL_LINEAR_VELOCITY" value="0" enum="Parameter"> + Use with [method set_param], [method set_param_randomness], and [method set_param_texture] to set initial velocity properties. </constant> <constant name="PARAM_ANGULAR_VELOCITY" value="1" enum="Parameter"> + Use with [method set_param], [method set_param_randomness], and [method set_param_texture] to set angular velocity properties. </constant> - <constant name="PARAM_LINEAR_ACCEL" value="2" enum="Parameter"> + <constant name="PARAM_ORBIT_VELOCITY" value="2" enum="Parameter"> + Use with [method set_param], [method set_param_randomness], and [method set_param_texture] to set orbital velocity properties. </constant> - <constant name="PARAM_RADIAL_ACCEL" value="3" enum="Parameter"> + <constant name="PARAM_LINEAR_ACCEL" value="3" enum="Parameter"> + Use with [method set_param], [method set_param_randomness], and [method set_param_texture] to set linear acceleration properties. </constant> - <constant name="PARAM_TANGENTIAL_ACCEL" value="4" enum="Parameter"> + <constant name="PARAM_RADIAL_ACCEL" value="4" enum="Parameter"> + Use with [method set_param], [method set_param_randomness], and [method set_param_texture] to set radial acceleration properties. </constant> - <constant name="PARAM_DAMPING" value="5" enum="Parameter"> + <constant name="PARAM_TANGENTIAL_ACCEL" value="5" enum="Parameter"> + Use with [method set_param], [method set_param_randomness], and [method set_param_texture] to set tangential acceleration properties. </constant> - <constant name="PARAM_ANGLE" value="6" enum="Parameter"> + <constant name="PARAM_DAMPING" value="6" enum="Parameter"> + Use with [method set_param], [method set_param_randomness], and [method set_param_texture] to set damping properties. </constant> - <constant name="PARAM_SCALE" value="7" enum="Parameter"> + <constant name="PARAM_ANGLE" value="7" enum="Parameter"> + Use with [method set_param], [method set_param_randomness], and [method set_param_texture] to set angle properties. </constant> - <constant name="PARAM_HUE_VARIATION" value="8" enum="Parameter"> + <constant name="PARAM_SCALE" value="8" enum="Parameter"> + Use with [method set_param], [method set_param_randomness], and [method set_param_texture] to set scale properties. </constant> - <constant name="PARAM_ANIM_SPEED" value="9" enum="Parameter"> + <constant name="PARAM_HUE_VARIATION" value="9" enum="Parameter"> + Use with [method set_param], [method set_param_randomness], and [method set_param_texture] to set hue variation properties. </constant> - <constant name="PARAM_ANIM_OFFSET" value="10" enum="Parameter"> + <constant name="PARAM_ANIM_SPEED" value="10" enum="Parameter"> + Use with [method set_param], [method set_param_randomness], and [method set_param_texture] to set animation speed properties. </constant> - <constant name="PARAM_MAX" value="11" enum="Parameter"> + <constant name="PARAM_ANIM_OFFSET" value="11" enum="Parameter"> + Use with [method set_param], [method set_param_randomness], and [method set_param_texture] to set animation offset properties. + </constant> + <constant name="PARAM_MAX" value="12" enum="Parameter"> + Represents the size of the [enum Parameter] enum. </constant> <constant name="FLAG_ALIGN_Y_TO_VELOCITY" value="0" enum="Flags"> + Use with [method set_flag] to set [member flag_align_y]. </constant> <constant name="FLAG_ROTATE_Y" value="1" enum="Flags"> + Use with [method set_flag] to set [member flag_rotate_y]. + </constant> + <constant name="FLAG_DISABLE_Z" value="2" enum="Flags"> + Use with [method set_flag] to set [member flag_disable_z]. </constant> <constant name="FLAG_MAX" value="3" enum="Flags"> + Represents the size of the [enum Flags] enum. </constant> <constant name="EMISSION_SHAPE_POINT" value="0" enum="EmissionShape"> + All particles will be emitted from a single point. </constant> <constant name="EMISSION_SHAPE_SPHERE" value="1" enum="EmissionShape"> + Particles will be emitted in the volume of a sphere. </constant> <constant name="EMISSION_SHAPE_BOX" value="2" enum="EmissionShape"> + Particles will be emitted in the volume of a box. </constant> <constant name="EMISSION_SHAPE_POINTS" value="3" enum="EmissionShape"> + Particles will be emitted at a position chosen randomly among [member emission_points]. Particle color will be modulated by [member emission_colors]. </constant> <constant name="EMISSION_SHAPE_DIRECTED_POINTS" value="4" enum="EmissionShape"> + Particles will be emitted at a position chosen randomly among [member emission_points]. Particle velocity and rotation will be set based on [member emission_normals]. Particle color will be modulated by [member emission_colors]. </constant> </constants> </class> diff --git a/doc/classes/CPUParticles2D.xml b/doc/classes/CPUParticles2D.xml index e1f71e3600..7283d5084c 100644 --- a/doc/classes/CPUParticles2D.xml +++ b/doc/classes/CPUParticles2D.xml @@ -1,10 +1,14 @@ <?xml version="1.0" encoding="UTF-8" ?> <class name="CPUParticles2D" inherits="Node2D" category="Core" version="3.2"> <brief_description> + CPU-based 2D particle emitter. </brief_description> <description> + CPU-based 2D particle node used to create a variety of particle systems and effects. + See also [Particles2D], which provides the same functionality with hardware acceleration, but may not run on older devices. </description> <tutorials> + <link>https://docs.godotengine.org/en/latest/tutorials/2d/particle_systems_2d.html</link> </tutorials> <methods> <method name="convert_from_particles"> @@ -13,53 +17,74 @@ <argument index="0" name="particles" type="Node"> </argument> <description> + Sets this node's properties to match a given [Particles2D] node with an assigned [ParticlesMaterial]. </description> </method> <method name="restart"> <return type="void"> </return> <description> + Restarts the particle emitter. </description> </method> </methods> <members> <member name="amount" type="int" setter="set_amount" getter="get_amount"> + Number of particles emitted in one emission cycle. </member> <member name="angle" type="float" setter="set_param" getter="get_param"> + Initial rotation applied to each particle, in degrees. </member> <member name="angle_curve" type="Curve" setter="set_param_curve" getter="get_param_curve"> + Each particle's rotation will be animated along this [Curve]. </member> <member name="angle_random" type="float" setter="set_param_randomness" getter="get_param_randomness"> + Rotation randomness ratio. Default value: [code]0[/code]. </member> <member name="angular_velocity" type="float" setter="set_param" getter="get_param"> + Initial angular velocity applied to each particle. Sets the speed of rotation of the particle. </member> <member name="angular_velocity_curve" type="Curve" setter="set_param_curve" getter="get_param_curve"> + Each particle's angular velocity will vary along this [Curve]. </member> <member name="angular_velocity_random" type="float" setter="set_param_randomness" getter="get_param_randomness"> + Angular velocity randomness ratio. Default value: [code]0[/code]. </member> <member name="anim_offset" type="float" setter="set_param" getter="get_param"> + Particle animation offset. </member> <member name="anim_offset_curve" type="Curve" setter="set_param_curve" getter="get_param_curve"> + Each particle's animation offset will vary along this [Curve]. </member> <member name="anim_offset_random" type="float" setter="set_param_randomness" getter="get_param_randomness"> + Animation offset randomness ratio. Default value: [code]0[/code]. </member> <member name="anim_speed" type="float" setter="set_param" getter="get_param"> + Particle animation speed. </member> <member name="anim_speed_curve" type="Curve" setter="set_param_curve" getter="get_param_curve"> + Each particle's animation speed will vary along this [Curve]. </member> <member name="anim_speed_random" type="float" setter="set_param_randomness" getter="get_param_randomness"> + Animation speed randomness ratio. Default value: [code]0[/code]. </member> <member name="color" type="Color" setter="set_color" getter="get_color"> + Each particle's initial color. If [member texture] is defined, it will be multiplied by this color. </member> <member name="color_ramp" type="Gradient" setter="set_color_ramp" getter="get_color_ramp"> + Each particle's color will vary along this [Gradient]. </member> <member name="damping" type="float" setter="set_param" getter="get_param"> + The rate at which particles lose velocity. </member> <member name="damping_curve" type="Curve" setter="set_param_curve" getter="get_param_curve"> + Damping will vary along this [Curve]. </member> <member name="damping_random" type="float" setter="set_param_randomness" getter="get_param_randomness"> + Damping randomness ratio. Default value: [code]0[/code]. </member> <member name="draw_order" type="int" setter="set_draw_order" getter="get_draw_order" enum="CPUParticles2D.DrawOrder"> + Particle draw order. Uses [enum DrawOrder] values. Default value: [constant DRAW_ORDER_INDEX]. </member> <member name="emission_colors" type="PoolColorArray" setter="set_emission_colors" getter="get_emission_colors"> </member> @@ -68,122 +93,194 @@ <member name="emission_points" type="PoolVector2Array" setter="set_emission_points" getter="get_emission_points"> </member> <member name="emission_rect_extents" type="Vector2" setter="set_emission_rect_extents" getter="get_emission_rect_extents"> + The rectangle's extents if [member emission_shape] is set to [constant EMISSION_SHAPE_RECTANGLE]. </member> <member name="emission_shape" type="int" setter="set_emission_shape" getter="get_emission_shape" enum="CPUParticles2D.EmissionShape"> + Particles will be emitted inside this region. Use [enum EmissionShape] for values. Default value: [constant EMISSION_SHAPE_POINT]. </member> <member name="emission_sphere_radius" type="float" setter="set_emission_sphere_radius" getter="get_emission_sphere_radius"> + The sphere's radius if [member emission_shape] is set to [constant EMISSION_SHAPE_SPHERE]. </member> <member name="emitting" type="bool" setter="set_emitting" getter="is_emitting"> + If [code]true[/code], particles are being emitted. Default value: [code]true[/code]. </member> <member name="explosiveness" type="float" setter="set_explosiveness_ratio" getter="get_explosiveness_ratio"> + How rapidly particles in an emission cycle are emitted. If greater than [code]0[/code], there will be a gap in emissions before the next cycle begins. Default value: [code]0[/code]. </member> <member name="fixed_fps" type="int" setter="set_fixed_fps" getter="get_fixed_fps"> + The particle system's frame rate is fixed to a value. For instance, changing the value to 2 will make the particles render at 2 frames per second. Note this does not slow down the simulation of the particle system itself. </member> <member name="flag_align_y" type="bool" setter="set_particle_flag" getter="get_particle_flag"> + Align y-axis of particle with the direction of its velocity. </member> <member name="flatness" type="float" setter="set_flatness" getter="get_flatness"> </member> <member name="fract_delta" type="bool" setter="set_fractional_delta" getter="get_fractional_delta"> + If [code]true[/code], results in fractional delta calculation which has a smoother particles display effect. Default value: [code]true[/code] </member> <member name="gravity" type="Vector2" setter="set_gravity" getter="get_gravity"> + Gravity applied to every particle. Default value: [code](0, 98)[/code]. </member> <member name="hue_variation" type="float" setter="set_param" getter="get_param"> + Initial hue variation applied to each particle. </member> <member name="hue_variation_curve" type="Curve" setter="set_param_curve" getter="get_param_curve"> + Each particle's hue will vary along this [Curve]. </member> <member name="hue_variation_random" type="float" setter="set_param_randomness" getter="get_param_randomness"> + Hue variation randomness ratio. Default value: [code]0[/code]. </member> <member name="initial_velocity" type="float" setter="set_param" getter="get_param"> + Initial velocity magnitude for each particle. Direction comes from [member spread] and the node's orientation. </member> <member name="initial_velocity_random" type="float" setter="set_param_randomness" getter="get_param_randomness"> + Initial velocity randomness ratio. Default value: [code]0[/code]. </member> <member name="lifetime" type="float" setter="set_lifetime" getter="get_lifetime"> + Amount of time each particle will exist. Default value: [code]1[/code]. </member> <member name="linear_accel" type="float" setter="set_param" getter="get_param"> + Linear acceleration applied to each particle in the direction of motion. </member> <member name="linear_accel_curve" type="Curve" setter="set_param_curve" getter="get_param_curve"> + Each particle's linear acceleration will vary along this [Curve]. </member> <member name="linear_accel_random" type="float" setter="set_param_randomness" getter="get_param_randomness"> + Linear acceleration randomness ratio. Default value: [code]0[/code]. </member> <member name="local_coords" type="bool" setter="set_use_local_coordinates" getter="get_use_local_coordinates"> + If [code]true[/code], particles use the parent node's coordinate space. If [code]false[/code], they use global coordinates. Default value: [code]true[/code]. </member> <member name="normalmap" type="Texture" setter="set_normalmap" getter="get_normalmap"> + Normal map to be used for the [member texture] property. </member> <member name="one_shot" type="bool" setter="set_one_shot" getter="get_one_shot"> + If [code]true[/code], only one emission cycle occurs. If set [code]true[/code] during a cycle, emission will stop at the cycle's end. Default value: [code]false[/code]. + </member> + <member name="orbit_velocity" type="float" setter="set_param" getter="get_param"> + Orbital velocity applied to each particle. Makes the particles circle around origin. Specified in number of full rotations around origin per second. + </member> + <member name="orbit_velocity_curve" type="Curve" setter="set_param_curve" getter="get_param_curve"> + Each particle's orbital velocity will vary along this [Curve]. + </member> + <member name="orbit_velocity_random" type="float" setter="set_param_randomness" getter="get_param_randomness"> + Orbital velocity randomness ratio. Default value: [code]0[/code]. </member> <member name="preprocess" type="float" setter="set_pre_process_time" getter="get_pre_process_time"> + Particle system starts as if it had already run for this many seconds. </member> <member name="radial_accel" type="float" setter="set_param" getter="get_param"> + Radial acceleration applied to each particle. Makes particle accelerate away from origin. </member> <member name="radial_accel_curve" type="Curve" setter="set_param_curve" getter="get_param_curve"> + Each particle's radial acceleration will vary along this [Curve]. </member> <member name="radial_accel_random" type="float" setter="set_param_randomness" getter="get_param_randomness"> + Radial acceleration randomness ratio. Default value: [code]0[/code]. </member> <member name="randomness" type="float" setter="set_randomness_ratio" getter="get_randomness_ratio"> + Emission lifetime randomness ratio. Default value: [code]0[/code]. </member> <member name="scale_amount" type="float" setter="set_param" getter="get_param"> + Initial scale applied to each particle. </member> <member name="scale_amount_curve" type="Curve" setter="set_param_curve" getter="get_param_curve"> + Each particle's scale will vary along this [Curve]. </member> <member name="scale_amount_random" type="float" setter="set_param_randomness" getter="get_param_randomness"> + Scale randomness ratio. Default value: [code]0[/code]. </member> <member name="speed_scale" type="float" setter="set_speed_scale" getter="get_speed_scale"> + Particle system's running speed scaling ratio. Default value: [code]1[/code]. A value of [code]0[/code] can be used to pause the particles. </member> <member name="spread" type="float" setter="set_spread" getter="get_spread"> + Each particle's initial direction range from [code]+spread[/code] to [code]-spread[/code] degrees. Default value: [code]45[/code]. </member> <member name="tangential_accel" type="float" setter="set_param" getter="get_param"> + Tangential acceleration applied to each particle. Tangential acceleration is perpendicular to the particle's velocity giving the particles a swirling motion. </member> <member name="tangential_accel_curve" type="Curve" setter="set_param_curve" getter="get_param_curve"> + Each particle's tangential acceleration will vary along this [Curve]. </member> <member name="tangential_accel_random" type="float" setter="set_param_randomness" getter="get_param_randomness"> + Tangential acceleration randomness ratio. Default value: [code]0[/code]. </member> <member name="texture" type="Texture" setter="set_texture" getter="get_texture"> + Particle texture. If [code]null[/code] particles will be squares. </member> </members> <constants> <constant name="DRAW_ORDER_INDEX" value="0" enum="DrawOrder"> + Particles are drawn in the order emitted. </constant> <constant name="DRAW_ORDER_LIFETIME" value="1" enum="DrawOrder"> + Particles are drawn in order of remaining lifetime. </constant> <constant name="PARAM_INITIAL_LINEAR_VELOCITY" value="0" enum="Parameter"> + Use with [method set_param], [method set_param_randomness], and [method set_param_texture] to set initial velocity properties. </constant> <constant name="PARAM_ANGULAR_VELOCITY" value="1" enum="Parameter"> + Use with [method set_param], [method set_param_randomness], and [method set_param_texture] to set angular velocity properties. </constant> <constant name="PARAM_ORBIT_VELOCITY" value="2" enum="Parameter"> + Use with [method set_param], [method set_param_randomness], and [method set_param_texture] to set orbital velocity properties. </constant> <constant name="PARAM_LINEAR_ACCEL" value="3" enum="Parameter"> + Use with [method set_param], [method set_param_randomness], and [method set_param_texture] to set linear acceleration properties. </constant> <constant name="PARAM_RADIAL_ACCEL" value="4" enum="Parameter"> + Use with [method set_param], [method set_param_randomness], and [method set_param_texture] to set radial acceleration properties. </constant> <constant name="PARAM_TANGENTIAL_ACCEL" value="5" enum="Parameter"> + Use with [method set_param], [method set_param_randomness], and [method set_param_texture] to set tangential acceleration properties. </constant> <constant name="PARAM_DAMPING" value="6" enum="Parameter"> + Use with [method set_param], [method set_param_randomness], and [method set_param_texture] to set damping properties. </constant> <constant name="PARAM_ANGLE" value="7" enum="Parameter"> + Use with [method set_param], [method set_param_randomness], and [method set_param_texture] to set angle properties. </constant> <constant name="PARAM_SCALE" value="8" enum="Parameter"> + Use with [method set_param], [method set_param_randomness], and [method set_param_texture] to set scale properties. </constant> <constant name="PARAM_HUE_VARIATION" value="9" enum="Parameter"> + Use with [method set_param], [method set_param_randomness], and [method set_param_texture] to set hue variation properties. </constant> <constant name="PARAM_ANIM_SPEED" value="10" enum="Parameter"> + Use with [method set_param], [method set_param_randomness], and [method set_param_texture] to set animation speed properties. </constant> <constant name="PARAM_ANIM_OFFSET" value="11" enum="Parameter"> + Use with [method set_param], [method set_param_randomness], and [method set_param_texture] to set animation offset properties. </constant> <constant name="PARAM_MAX" value="12" enum="Parameter"> + Represents the size of the [enum Parameter] enum. </constant> <constant name="FLAG_ALIGN_Y_TO_VELOCITY" value="0" enum="Flags"> + Use with [method set_flag] to set [member flag_align_y]. + </constant> + <constant name="FLAG_ROTATE_Y" value="1" enum="Flags"> + Present for consistency with 3D particle nodes, not used in 2D. + </constant> + <constant name="FLAG_DISABLE_Z" value="2" enum="Flags"> + Present for consistency with 3D particle nodes, not used in 2D. </constant> - <constant name="FLAG_MAX" value="1" enum="Flags"> + <constant name="FLAG_MAX" value="3" enum="Flags"> + Represents the size of the [enum Flags] enum. </constant> <constant name="EMISSION_SHAPE_POINT" value="0" enum="EmissionShape"> + All particles will be emitted from a single point. </constant> - <constant name="EMISSION_SHAPE_CIRCLE" value="1" enum="EmissionShape"> + <constant name="EMISSION_SHAPE_SPHERE" value="1" enum="EmissionShape"> + Particles will be emitted on the surface of a sphere flattened to two dimensions. </constant> <constant name="EMISSION_SHAPE_RECTANGLE" value="2" enum="EmissionShape"> + Particles will be emitted in the area of a rectangle. </constant> <constant name="EMISSION_SHAPE_POINTS" value="3" enum="EmissionShape"> + Particles will be emitted at a position chosen randomly among [member emission_points]. Particle color will be modulated by [member emission_colors]. </constant> <constant name="EMISSION_SHAPE_DIRECTED_POINTS" value="4" enum="EmissionShape"> + Particles will be emitted at a position chosen randomly among [member emission_points]. Particle velocity and rotation will be set based on [member emission_normals]. Particle color will be modulated by [member emission_colors]. </constant> </constants> </class> diff --git a/doc/classes/Camera.xml b/doc/classes/Camera.xml index 05858e8bc6..cc869d28a2 100644 --- a/doc/classes/Camera.xml +++ b/doc/classes/Camera.xml @@ -18,6 +18,13 @@ If this is the current Camera, remove it from being current. If [code]enable_next[/code] is [code]true[/code], request to make the next Camera current, if any. </description> </method> + <method name="get_camera_rid" qualifiers="const"> + <return type="RID"> + </return> + <description> + Returns the camera's RID from the [VisualServer]. + </description> + </method> <method name="get_camera_transform" qualifiers="const"> <return type="Transform"> </return> @@ -69,8 +76,10 @@ </return> <argument index="0" name="screen_point" type="Vector2"> </argument> + <argument index="1" name="z_depth" type="float" default="0"> + </argument> <description> - Returns the 3D point in worldspace that maps to the given 2D coordinate in the [Viewport] rectangle. + Returns the 3D point in worldspace that maps to the given 2D coordinate in the [Viewport] rectangle on a plane that is the given distance into the scene away from the camera. </description> </method> <method name="project_ray_normal" qualifiers="const"> diff --git a/doc/classes/Camera2D.xml b/doc/classes/Camera2D.xml index e5d1649c29..fcc99123d2 100644 --- a/doc/classes/Camera2D.xml +++ b/doc/classes/Camera2D.xml @@ -35,7 +35,7 @@ <return type="Vector2"> </return> <description> - Return the camera position. + Returns the camera position. </description> </method> <method name="get_camera_screen_center" qualifiers="const"> diff --git a/doc/classes/CameraFeed.xml b/doc/classes/CameraFeed.xml new file mode 100644 index 0000000000..7f353f7a05 --- /dev/null +++ b/doc/classes/CameraFeed.xml @@ -0,0 +1,64 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<class name="CameraFeed" inherits="Reference" category="Core" version="3.2"> + <brief_description> + A camera feed gives you access to a single physical camera attached to your device. + </brief_description> + <description> + A camera feed gives you access to a single physical camera attached to your device. + When enabled Godot will start capturing frames from the camera which can then be used. Do note that many cameras will return YCbCr images which are split into two textures and need to be combined in a shader. Godot does this automatically for you if you set the environment to show the camera image in the background. + </description> + <tutorials> + </tutorials> + <methods> + <method name="get_id" qualifiers="const"> + <return type="int"> + </return> + <description> + Get unique id for this feed + </description> + </method> + <method name="get_name" qualifiers="const"> + <return type="String"> + </return> + <description> + Get name of the camera + </description> + </method> + <method name="get_position" qualifiers="const"> + <return type="int" enum="CameraFeed.FeedPosition"> + </return> + <description> + Position of camera on the device. + </description> + </method> + </methods> + <members> + <member name="feed_is_active" type="bool" setter="set_active" getter="is_active"> + </member> + <member name="feed_transform" type="Transform2D" setter="set_transform" getter="get_transform"> + </member> + </members> + <constants> + <constant name="FEED_NOIMAGE" value="0" enum="FeedDataType"> + No image set for the feed. + </constant> + <constant name="FEED_RGB" value="1" enum="FeedDataType"> + Feed supplies RGB images. + </constant> + <constant name="FEED_YCbCr" value="2" enum="FeedDataType"> + Feed supplies YCbCr images that need to be converted to RGB. + </constant> + <constant name="FEED_YCbCr_Sep" value="3" enum="FeedDataType"> + Feed supplies separate Y and CbCr images that need to be combined and converted to RGB. + </constant> + <constant name="FEED_UNSPECIFIED" value="0" enum="FeedPosition"> + Unspecified position. + </constant> + <constant name="FEED_FRONT" value="1" enum="FeedPosition"> + Camera is mounted at the front of the device. + </constant> + <constant name="FEED_BACK" value="2" enum="FeedPosition"> + Camera is moutned at the back of the device. + </constant> + </constants> +</class> diff --git a/doc/classes/CameraServer.xml b/doc/classes/CameraServer.xml new file mode 100644 index 0000000000..f492bda74f --- /dev/null +++ b/doc/classes/CameraServer.xml @@ -0,0 +1,83 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<class name="CameraServer" inherits="Object" category="Core" version="3.2"> + <brief_description> + Our camera server keeps track of different cameras accessible in Godot. These are external cameras such as webcams or the cameras on your phone. + </brief_description> + <description> + </description> + <tutorials> + </tutorials> + <methods> + <method name="add_feed"> + <return type="void"> + </return> + <argument index="0" name="feed" type="CameraFeed"> + </argument> + <description> + Adds a camera feed to the camera server. + </description> + </method> + <method name="feeds"> + <return type="Array"> + </return> + <description> + Returns an array of [CameraFeed]s. + </description> + </method> + <method name="get_feed"> + <return type="CameraFeed"> + </return> + <argument index="0" name="index" type="int"> + </argument> + <description> + Returns the [CameraFeed] with this id. + </description> + </method> + <method name="get_feed_count"> + <return type="int"> + </return> + <description> + Returns the number of [CameraFeed]s registered. + </description> + </method> + <method name="remove_feed"> + <return type="void"> + </return> + <argument index="0" name="feed" type="CameraFeed"> + </argument> + <description> + Removes a [CameraFeed]. + </description> + </method> + </methods> + <signals> + <signal name="camera_feed_added"> + <argument index="0" name="id" type="int"> + </argument> + <description> + Emitted when a [CameraFeed] is added (webcam is plugged in). + </description> + </signal> + <signal name="camera_feed_removed"> + <argument index="0" name="id" type="int"> + </argument> + <description> + Emitted when a [CameraFeed] is removed (webcam is removed). + </description> + </signal> + </signals> + <constants> + <constant name="FEED_RGBA_IMAGE" value="0" enum="FeedImage"> + The RGBA camera image. + </constant> + <constant name="FEED_YCbCr_IMAGE" value="0" enum="FeedImage"> + The YCbCr camera image. + </constant> + <constant name="FEED_Y_IMAGE" value="0" enum="FeedImage"> + The Y component camera image. + </constant> + <constant name="FEED_CbCr_IMAGE" value="1" enum="FeedImage"> + The CbCr component camera image. + </constant> + </constants> +</class> diff --git a/doc/classes/CameraTexture.xml b/doc/classes/CameraTexture.xml new file mode 100644 index 0000000000..02f7f8bf58 --- /dev/null +++ b/doc/classes/CameraTexture.xml @@ -0,0 +1,25 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<class name="CameraTexture" inherits="Texture" category="Core" version="3.2"> + <brief_description> + This texture gives access to the camera texture provided by a [CameraFeed]. Note that many cameras supply YCbCr images which need to be converted in a shader. + </brief_description> + <description> + </description> + <tutorials> + </tutorials> + <methods> + </methods> + <members> + <member name="camera_feed_id" type="int" setter="set_camera_feed_id" getter="get_camera_feed_id"> + Id of the [CameraFeed] for which we want to display the image. + </member> + <member name="camera_is_active" type="bool" setter="set_camera_active" getter="get_camera_active"> + Convenience property that gives access to the active property of the [CameraFeed]. + </member> + <member name="which_feed" type="int" setter="set_which_feed" getter="get_which_feed" enum="CameraServer.FeedImage"> + Which image within the [CameraFeed] we want access to, important if the camera image is split in a Y and CbCr component. + </member> + </members> + <constants> + </constants> +</class> diff --git a/doc/classes/CanvasItem.xml b/doc/classes/CanvasItem.xml index 8ba3990933..2426471a49 100644 --- a/doc/classes/CanvasItem.xml +++ b/doc/classes/CanvasItem.xml @@ -342,14 +342,14 @@ <return type="RID"> </return> <description> - Return the [RID] of the [World2D] canvas where this item is in. + Returns the [RID] of the [World2D] canvas where this item is in. </description> </method> <method name="get_canvas_item" qualifiers="const"> <return type="RID"> </return> <description> - Return the canvas item RID used by [VisualServer] for this item. + Returns the canvas item RID used by [VisualServer] for this item. </description> </method> <method name="get_canvas_transform" qualifiers="const"> diff --git a/doc/classes/ClassDB.xml b/doc/classes/ClassDB.xml index b029c85409..ddbe66380a 100644 --- a/doc/classes/ClassDB.xml +++ b/doc/classes/ClassDB.xml @@ -121,7 +121,7 @@ <argument index="1" name="name" type="String"> </argument> <description> - Return whether 'class' or its ancestry has an integer constant called 'name' or not. + Returns whether 'class' or its ancestry has an integer constant called 'name' or not. </description> </method> <method name="class_has_method" qualifiers="const"> @@ -134,7 +134,7 @@ <argument index="2" name="no_inheritance" type="bool" default="false"> </argument> <description> - Return whether 'class' (or its ancestry if 'no_inheritance' is false) has a method called 'method' or not. + Returns whether 'class' (or its ancestry if 'no_inheritance' is false) has a method called 'method' or not. </description> </method> <method name="class_has_signal" qualifiers="const"> @@ -145,7 +145,7 @@ <argument index="1" name="signal" type="String"> </argument> <description> - Return whether 'class' or its ancestry has a signal called 'signal' or not. + Returns whether 'class' or its ancestry has a signal called 'signal' or not. </description> </method> <method name="class_set_property" qualifiers="const"> diff --git a/doc/classes/ClippedCamera.xml b/doc/classes/ClippedCamera.xml index b7f158dd65..c6dcd6cd96 100644 --- a/doc/classes/ClippedCamera.xml +++ b/doc/classes/ClippedCamera.xml @@ -29,6 +29,12 @@ <description> </description> </method> + <method name="get_clip_offset" qualifiers="const"> + <return type="float"> + </return> + <description> + </description> + </method> <method name="get_collision_mask_bit" qualifiers="const"> <return type="bool"> </return> diff --git a/doc/classes/Color.xml b/doc/classes/Color.xml index 9f48f6e018..30e80fa512 100644 --- a/doc/classes/Color.xml +++ b/doc/classes/Color.xml @@ -144,7 +144,7 @@ <return type="Color"> </return> <description> - Returns the inverted color [code](1 - r, 1 - g, 1 - b, 1 - a)[/code]. + Returns the inverted color [code](1 - r, 1 - g, 1 - b, a)[/code]. [codeblock] var c = Color(0.3, 0.4, 0.9) var inverted_color = c.inverted() # a color of an RGBA(178, 153, 26, 255) @@ -566,6 +566,8 @@ </constant> <constant name="tomato" value="Color( 1, 0.39, 0.28, 1 )"> </constant> + <constant name="transparent" value="Color( 1, 1, 1, 0 )"> + </constant> <constant name="turquoise" value="Color( 0.25, 0.88, 0.82, 1 )"> </constant> <constant name="violet" value="Color( 0.93, 0.51, 0.93, 1 )"> diff --git a/doc/classes/ColorPicker.xml b/doc/classes/ColorPicker.xml index a58edb5ca8..32e6014c75 100644 --- a/doc/classes/ColorPicker.xml +++ b/doc/classes/ColorPicker.xml @@ -31,7 +31,7 @@ <return type="PoolColorArray"> </return> <description> - Return the list of colors in the presets of the color picker. + Returns the list of colors in the presets of the color picker. </description> </method> </methods> diff --git a/doc/classes/ConcavePolygonShape.xml b/doc/classes/ConcavePolygonShape.xml index afc6ce74a5..62d42f4eb4 100644 --- a/doc/classes/ConcavePolygonShape.xml +++ b/doc/classes/ConcavePolygonShape.xml @@ -13,7 +13,7 @@ <return type="PoolVector3Array"> </return> <description> - Return the faces (an array of triangles). + Returns the faces (an array of triangles). </description> </method> <method name="set_faces"> diff --git a/doc/classes/ConfirmationDialog.xml b/doc/classes/ConfirmationDialog.xml index f39915f4b7..6124bc29b0 100644 --- a/doc/classes/ConfirmationDialog.xml +++ b/doc/classes/ConfirmationDialog.xml @@ -13,7 +13,7 @@ <return type="Button"> </return> <description> - Return the cancel button. + Returns the cancel button. </description> </method> </methods> diff --git a/doc/classes/Control.xml b/doc/classes/Control.xml index f7fbdf08ed..fea706987c 100644 --- a/doc/classes/Control.xml +++ b/doc/classes/Control.xml @@ -4,7 +4,7 @@ All User Interface nodes inherit from Control. A control's anchors and margins adapt its position and size relative to its parent. </brief_description> <description> - Base class for all User Interface or [i]UI[/i] related nodes. [Control] features a bounding rectangle that defines its extents, an anchor position relative to its parent and margins that represent an offset to the anchor. The margins update automatically when the node, any of its parents, or the screen size change. + Base class for all User Interface or [i]UI[/i] related nodes. [Control] features a bounding rectangle that defines its extents, an anchor position relative to its parent control or the current viewport, and margins that represent an offset to the anchor. The margins update automatically when the node, any of its parents, or the screen size change. For more information on Godot's UI system, anchors, margins, and containers, see the related tutorials in the manual. To build flexible UIs, you'll need a mix of UI elements that inherit from [Control] and [Container] nodes. [b]User Interface nodes and input[/b] Godot sends input events to the scene's root node first, by calling [method Node._input]. [method Node._input] forwards the event down the node tree to the nodes under the mouse cursor, or on keyboard focus. To do so, it calls [method MainLoop._input_event]. Call [method accept_event] so no other node receives the event. Once you accepted an input, it becomes handled so [method Node._unhandled_input] will not process it. @@ -221,7 +221,7 @@ <argument index="0" name="position" type="Vector2"> </argument> <description> - Godot calls this method to get data that can be dragged and dropped onto controls that expect drop data. Return null if there is no data to drag. Controls that want to receive drop data should implement [method can_drop_data] and [method drop_data]. [code]position[/code] is local to this control. Drag may be forced with [method force_drag]. + Godot calls this method to get data that can be dragged and dropped onto controls that expect drop data. Returns null if there is no data to drag. Controls that want to receive drop data should implement [method can_drop_data] and [method drop_data]. [code]position[/code] is local to this control. Drag may be forced with [method force_drag]. A preview that will follow the mouse that should represent the data can be set with [method set_drag_preview]. A good time to set the preview is in this method. [codeblock] extends Control @@ -512,7 +512,7 @@ </return> <argument index="0" name="preset" type="int" enum="Control.LayoutPreset"> </argument> - <argument index="1" name="keep_margin" type="bool" default="false"> + <argument index="1" name="keep_margins" type="bool" default="false"> </argument> <description> </description> @@ -574,6 +574,16 @@ Sets [member margin_right] and [member margin_bottom] at the same time. </description> </method> + <method name="set_global_position"> + <return type="void"> + </return> + <argument index="0" name="position" type="Vector2"> + </argument> + <argument index="1" name="keep_margins" type="bool" default="false"> + </argument> + <description> + </description> + </method> <method name="set_margins_preset"> <return type="void"> </return> @@ -586,6 +596,16 @@ <description> </description> </method> + <method name="set_position"> + <return type="void"> + </return> + <argument index="0" name="position" type="Vector2"> + </argument> + <argument index="1" name="keep_margins" type="bool" default="false"> + </argument> + <description> + </description> + </method> <method name="set_rotation"> <return type="void"> </return> @@ -595,6 +615,16 @@ Sets the rotation (in radians). </description> </method> + <method name="set_size"> + <return type="void"> + </return> + <argument index="0" name="size" type="Vector2"> + </argument> + <argument index="1" name="keep_margins" type="bool" default="false"> + </argument> + <description> + </description> + </method> <method name="show_modal"> <return type="void"> </return> @@ -684,7 +714,7 @@ <member name="rect_clip_content" type="bool" setter="set_clip_contents" getter="is_clipping_contents"> Enables whether rendering of children should be clipped to this control's rectangle. If [code]true[/code], parts of a child which would be visibly outside of this control's rectangle will not be rendered. </member> - <member name="rect_global_position" type="Vector2" setter="set_global_position" getter="get_global_position"> + <member name="rect_global_position" type="Vector2" setter="_set_global_position" getter="get_global_position"> The node's global position, relative to the world (usually to the top-left corner of the window). </member> <member name="rect_min_size" type="Vector2" setter="set_custom_minimum_size" getter="get_custom_minimum_size"> @@ -693,7 +723,7 @@ <member name="rect_pivot_offset" type="Vector2" setter="set_pivot_offset" getter="get_pivot_offset"> By default, the node's pivot is its top-left corner. When you change its [member rect_scale], it will scale around this pivot. Set this property to [member rect_size] / 2 to center the pivot in the node's rectangle. </member> - <member name="rect_position" type="Vector2" setter="set_position" getter="get_position"> + <member name="rect_position" type="Vector2" setter="_set_position" getter="get_position"> The node's position, relative to its parent. It corresponds to the rectangle's top-left corner. The property is not affected by [member rect_pivot_offset]. </member> <member name="rect_rotation" type="float" setter="set_rotation_degrees" getter="get_rotation_degrees"> @@ -702,7 +732,7 @@ <member name="rect_scale" type="Vector2" setter="set_scale" getter="get_scale"> The node's scale, relative to its [member rect_size]. Change this property to scale the node around its [member rect_pivot_offset]. </member> - <member name="rect_size" type="Vector2" setter="set_size" getter="get_size"> + <member name="rect_size" type="Vector2" setter="_set_size" getter="get_size"> The size of the node's bounding rectangle, in pixels. [Container] nodes update this property automatically. </member> <member name="size_flags_horizontal" type="int" setter="set_h_size_flags" getter="get_h_size_flags"> diff --git a/doc/classes/CubeMesh.xml b/doc/classes/CubeMesh.xml index 814c2f21c1..6162474ed1 100644 --- a/doc/classes/CubeMesh.xml +++ b/doc/classes/CubeMesh.xml @@ -5,6 +5,7 @@ </brief_description> <description> Generate an axis-aligned cuboid [PrimitiveMesh]. + The cube's UV layout is arranged in a 3×2 layout that allows texturing each face individually. To apply the same texture on all faces, change the material's UV property to [code]Vector3(3, 2, 1)[/code]. </description> <tutorials> </tutorials> diff --git a/doc/classes/CylinderMesh.xml b/doc/classes/CylinderMesh.xml index fa0a3bf412..dbdc7aeb92 100644 --- a/doc/classes/CylinderMesh.xml +++ b/doc/classes/CylinderMesh.xml @@ -4,7 +4,7 @@ Class representing a cylindrical [PrimitiveMesh]. </brief_description> <description> - Class representing a cylindrical [PrimitiveMesh]. + Class representing a cylindrical [PrimitiveMesh]. This class can be used to create cones by setting either the [member top_radius] or [member bottom_radius] properties to 0.0. </description> <tutorials> </tutorials> diff --git a/doc/classes/Dictionary.xml b/doc/classes/Dictionary.xml index b6b17d03fb..ec70fd311b 100644 --- a/doc/classes/Dictionary.xml +++ b/doc/classes/Dictionary.xml @@ -38,7 +38,7 @@ <return type="bool"> </return> <description> - Return [code]true[/code] if the dictionary is empty. + Returns [code]true[/code] if the dictionary is empty. </description> </method> <method name="erase"> @@ -67,7 +67,7 @@ <argument index="0" name="key" type="Variant"> </argument> <description> - Return [code]true[/code] if the dictionary has a given key. + Returns [code]true[/code] if the dictionary has a given key. </description> </method> <method name="has_all"> @@ -76,35 +76,35 @@ <argument index="0" name="keys" type="Array"> </argument> <description> - Return [code]true[/code] if the dictionary has all of the keys in the given array. + Returns [code]true[/code] if the dictionary has all of the keys in the given array. </description> </method> <method name="hash"> <return type="int"> </return> <description> - Return a hashed integer value representing the dictionary contents. + Returns a hashed integer value representing the dictionary contents. </description> </method> <method name="keys"> <return type="Array"> </return> <description> - Return the list of keys in the [Dictionary]. + Returns the list of keys in the [Dictionary]. </description> </method> <method name="size"> <return type="int"> </return> <description> - Return the size of the dictionary (in pairs). + Returns the size of the dictionary (in pairs). </description> </method> <method name="values"> <return type="Array"> </return> <description> - Return the list of values in the [Dictionary]. + Returns the list of values in the [Dictionary]. </description> </method> </methods> diff --git a/doc/classes/Directory.xml b/doc/classes/Directory.xml index 8a81695198..54aac33652 100644 --- a/doc/classes/Directory.xml +++ b/doc/classes/Directory.xml @@ -52,7 +52,7 @@ <return type="bool"> </return> <description> - Return whether the current item processed with the last [method get_next] call is a directory ([code].[/code] and [code]..[/code] are considered directories). + Returns whether the current item processed with the last [method get_next] call is a directory ([code].[/code] and [code]..[/code] are considered directories). </description> </method> <method name="dir_exists"> @@ -61,7 +61,7 @@ <argument index="0" name="path" type="String"> </argument> <description> - Return whether the target directory exists. The argument can be relative to the current directory, or an absolute path. + Returns whether the target directory exists. The argument can be relative to the current directory, or an absolute path. </description> </method> <method name="file_exists"> @@ -70,14 +70,14 @@ <argument index="0" name="path" type="String"> </argument> <description> - Return whether the target file exists. The argument can be relative to the current directory, or an absolute path. + Returns whether the target file exists. The argument can be relative to the current directory, or an absolute path. </description> </method> <method name="get_current_dir"> <return type="String"> </return> <description> - Return the absolute path to the currently opened directory (e.g. [code]res://folder[/code] or [code]C:\tmp\folder[/code]). + Returns the absolute path to the currently opened directory (e.g. [code]res://folder[/code] or [code]C:\tmp\folder[/code]). </description> </method> <method name="get_current_drive"> @@ -107,7 +107,7 @@ <return type="String"> </return> <description> - Return the next element (file or directory) in the current directory (including [code].[/code] and [code]..[/code], unless [code]skip_navigational[/code] was given to [method list_dir_begin]). + Returns the next element (file or directory) in the current directory (including [code].[/code] and [code]..[/code], unless [code]skip_navigational[/code] was given to [method list_dir_begin]). The name of the file or directory is returned (and not its full path). Once the stream has been fully processed, the method returns an empty String and closes the stream automatically (i.e. [method list_dir_end] would not be mandatory in such a case). </description> </method> @@ -155,7 +155,7 @@ </argument> <description> Create a target directory and all necessary intermediate directories in its path, by calling [method make_dir] recursively. The argument can be relative to the current directory, or an absolute path. - Return one of the error code constants defined in [@GlobalScope] (OK, FAILED or ERR_*). + Returns one of the error code constants defined in [@GlobalScope] (OK, FAILED or ERR_*). </description> </method> <method name="open"> @@ -175,7 +175,7 @@ </argument> <description> Delete the target file or an empty directory. The argument can be relative to the current directory, or an absolute path. If the target directory is not empty, the operation will fail. - Return one of the error code constants defined in [@GlobalScope] (OK or FAILED). + Returns one of the error code constants defined in [@GlobalScope] (OK or FAILED). </description> </method> <method name="rename"> @@ -187,7 +187,7 @@ </argument> <description> Rename (move) the [i]from[/i] file to the [i]to[/i] destination. Both arguments should be paths to files, either relative or absolute. If the destination file exists and is not access-protected, it will be overwritten. - Return one of the error code constants defined in [@GlobalScope] (OK or FAILED). + Returns one of the error code constants defined in [@GlobalScope] (OK or FAILED). </description> </method> </methods> diff --git a/doc/classes/EditorExportPlugin.xml b/doc/classes/EditorExportPlugin.xml index 998b05d495..4e4e29dc4e 100644 --- a/doc/classes/EditorExportPlugin.xml +++ b/doc/classes/EditorExportPlugin.xml @@ -21,6 +21,12 @@ <description> </description> </method> + <method name="_export_end" qualifiers="virtual"> + <return type="void"> + </return> + <description> + </description> + </method> <method name="_export_file" qualifiers="virtual"> <return type="void"> </return> diff --git a/doc/classes/EditorFileSystem.xml b/doc/classes/EditorFileSystem.xml index 531af4c4e0..1c7a68fc0b 100644 --- a/doc/classes/EditorFileSystem.xml +++ b/doc/classes/EditorFileSystem.xml @@ -38,14 +38,14 @@ <return type="float"> </return> <description> - Return the scan progress for 0 to 1 if the FS is being scanned. + Returns the scan progress for 0 to 1 if the FS is being scanned. </description> </method> <method name="is_scanning" qualifiers="const"> <return type="bool"> </return> <description> - Return [code]true[/code] of the filesystem is being scanned. + Returns [code]true[/code] of the filesystem is being scanned. </description> </method> <method name="scan"> diff --git a/doc/classes/EditorInspectorPlugin.xml b/doc/classes/EditorInspectorPlugin.xml index da23218bdc..c2b13ff89e 100644 --- a/doc/classes/EditorInspectorPlugin.xml +++ b/doc/classes/EditorInspectorPlugin.xml @@ -54,7 +54,7 @@ <argument index="0" name="object" type="Object"> </argument> <description> - Return true if this object can be handled by this plugin. + Returns true if this object can be handled by this plugin. </description> </method> <method name="parse_begin" qualifiers="virtual"> diff --git a/doc/classes/EditorNavigationMeshGenerator.xml b/doc/classes/EditorNavigationMeshGenerator.xml new file mode 100644 index 0000000000..3956e12509 --- /dev/null +++ b/doc/classes/EditorNavigationMeshGenerator.xml @@ -0,0 +1,31 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<class name="EditorNavigationMeshGenerator" inherits="Object" category="Core" version="3.2"> + <brief_description> + </brief_description> + <description> + </description> + <tutorials> + </tutorials> + <methods> + <method name="bake"> + <return type="void"> + </return> + <argument index="0" name="nav_mesh" type="NavigationMesh"> + </argument> + <argument index="1" name="root_node" type="Node"> + </argument> + <description> + </description> + </method> + <method name="clear"> + <return type="void"> + </return> + <argument index="0" name="nav_mesh" type="NavigationMesh"> + </argument> + <description> + </description> + </method> + </methods> + <constants> + </constants> +</class> diff --git a/doc/classes/EditorPlugin.xml b/doc/classes/EditorPlugin.xml index 5763d26561..3d91bff0aa 100644 --- a/doc/classes/EditorPlugin.xml +++ b/doc/classes/EditorPlugin.xml @@ -241,7 +241,7 @@ <return type="EditorInterface"> </return> <description> - Return the [EditorInterface] object that gives you control over Godot editor's window and its functionalities. + Returns the [EditorInterface] object that gives you control over Godot editor's window and its functionalities. </description> </method> <method name="get_plugin_icon" qualifiers="virtual"> @@ -299,7 +299,7 @@ <return type="bool"> </return> <description> - Return [code]true[/code] if this is a main screen editor plugin (it goes in the workspaces selector together with '2D', '3D', and 'Script'). + Returns [code]true[/code] if this is a main screen editor plugin (it goes in the workspaces selector together with '2D', '3D', and 'Script'). </description> </method> <method name="hide_bottom_panel"> @@ -525,6 +525,10 @@ </constant> <constant name="CONTAINER_PROPERTY_EDITOR_BOTTOM" value="9" enum="CustomControlContainer"> </constant> + <constant name="CONTAINER_PROJECT_SETTING_TAB_LEFT" value="10" enum="CustomControlContainer"> + </constant> + <constant name="CONTAINER_PROJECT_SETTING_TAB_RIGHT" value="11" enum="CustomControlContainer"> + </constant> <constant name="DOCK_SLOT_LEFT_UL" value="0" enum="DockSlot"> </constant> <constant name="DOCK_SLOT_LEFT_BL" value="1" enum="DockSlot"> diff --git a/doc/classes/EditorResourcePreviewGenerator.xml b/doc/classes/EditorResourcePreviewGenerator.xml index 6592ffd1a8..156cc62941 100644 --- a/doc/classes/EditorResourcePreviewGenerator.xml +++ b/doc/classes/EditorResourcePreviewGenerator.xml @@ -9,6 +9,14 @@ <tutorials> </tutorials> <methods> + <method name="can_generate_small_preview" qualifiers="virtual"> + <return type="bool"> + </return> + <description> + If this function returns true the generator will call [method generate] or [method generate_from_path] for small previews too. + By default it returns false. + </description> + </method> <method name="generate" qualifiers="virtual"> <return type="Texture"> </return> @@ -35,13 +43,21 @@ Care must be taken because this function is always called from a thread (not the main thread). </description> </method> + <method name="generate_small_preview_automatically" qualifiers="virtual"> + <return type="bool"> + </return> + <description> + If this function returns true the generator will automatically generate the small previews from the normal preview texture generated by the methods [method generate] or [method generate_from_path]. + By default it returns false. + </description> + </method> <method name="handles" qualifiers="virtual"> <return type="bool"> </return> <argument index="0" name="type" type="String"> </argument> <description> - Return if your generator supports this resource type. + Returns if your generator supports this resource type. </description> </method> </methods> diff --git a/doc/classes/EditorSpatialGizmo.xml b/doc/classes/EditorSpatialGizmo.xml index da7fee1cf7..5d5c37b212 100644 --- a/doc/classes/EditorSpatialGizmo.xml +++ b/doc/classes/EditorSpatialGizmo.xml @@ -123,7 +123,7 @@ <return type="EditorSpatialGizmoPlugin"> </return> <description> - Return the [EditorSpatialGizmoPlugin] that owns this gizmo. It's useful to retrieve materials using [method EditorSpatialGizmoPlugin.get_material]. + Returns the [EditorSpatialGizmoPlugin] that owns this gizmo. It's useful to retrieve materials using [method EditorSpatialGizmoPlugin.get_material]. </description> </method> <method name="get_spatial_node" qualifiers="const"> diff --git a/doc/classes/Environment.xml b/doc/classes/Environment.xml index 5f8dc552d7..eb94447529 100644 --- a/doc/classes/Environment.xml +++ b/doc/classes/Environment.xml @@ -57,6 +57,9 @@ <member name="auto_exposure_speed" type="float" setter="set_tonemap_auto_exposure_speed" getter="get_tonemap_auto_exposure_speed"> Speed of the auto exposure effect. Affects the time needed for the camera to perform auto exposure. </member> + <member name="background_camera_feed_id" type="int" setter="set_camera_feed_id" getter="get_camera_feed_id"> + The id of the camera feed to show in the background. + </member> <member name="background_canvas_max_layer" type="int" setter="set_canvas_max_layer" getter="get_canvas_max_layer"> Maximum layer id (if using Layer background mode). </member> @@ -217,7 +220,7 @@ </member> <member name="ssao_bias" type="float" setter="set_ssao_bias" getter="get_ssao_bias"> </member> - <member name="ssao_blur" type="int" setter="set_ssao_blur" getter="is_ssao_blur_enabled" enum="Environment.SSAOBlur"> + <member name="ssao_blur" type="int" setter="set_ssao_blur" getter="get_ssao_blur" enum="Environment.SSAOBlur"> </member> <member name="ssao_color" type="Color" setter="set_ssao_color" getter="get_ssao_color"> </member> @@ -266,7 +269,10 @@ <constant name="BG_CANVAS" value="4" enum="BGMode"> Display a [CanvasLayer] in the background. </constant> - <constant name="BG_MAX" value="6" enum="BGMode"> + <constant name="BG_CAMERA_FEED" value="6" enum="BGMode"> + Display a camera feed in the background. + </constant> + <constant name="BG_MAX" value="7" enum="BGMode"> Helper constant keeping track of the enum's size, has no direct usage in API calls. </constant> <constant name="GLOW_BLEND_MODE_ADDITIVE" value="0" enum="GlowBlendMode"> diff --git a/doc/classes/File.xml b/doc/classes/File.xml index 30da143f88..32fa628bbf 100644 --- a/doc/classes/File.xml +++ b/doc/classes/File.xml @@ -115,7 +115,7 @@ <return type="int" enum="Error"> </return> <description> - Returns the last error that happened when trying to perform operations. Compare with the [code]ERR_FILE_*[/code] constants from [@GlobalScope]. + Returns the last error that happened when trying to perform operations. Compare with the [code]ERR_FILE_*[/code] constants from [enum @GlobalScope.Error]. </description> </method> <method name="get_float" qualifiers="const"> @@ -241,7 +241,7 @@ <argument index="2" name="compression_mode" type="int" enum="File.CompressionMode" default="0"> </argument> <description> - Opens a compressed file for reading or writing. Use COMPRESSION_* constants to set [code]compression_mode[/code]. + Opens a compressed file for reading or writing. Use [enum CompressionMode] constants to set [code]compression_mode[/code]. </description> </method> <method name="open_encrypted"> diff --git a/doc/classes/FileDialog.xml b/doc/classes/FileDialog.xml index 66e6fa5314..908c017ac9 100644 --- a/doc/classes/FileDialog.xml +++ b/doc/classes/FileDialog.xml @@ -43,7 +43,7 @@ <return type="VBoxContainer"> </return> <description> - Return the vertical box container of the dialog, custom controls can be added to it. + Returns the vertical box container of the dialog, custom controls can be added to it. </description> </method> <method name="invalidate"> @@ -138,5 +138,7 @@ </theme_item> <theme_item name="reload" type="Texture"> </theme_item> + <theme_item name="toggle_hidden" type="Texture"> + </theme_item> </theme_items> </class> diff --git a/doc/classes/Font.xml b/doc/classes/Font.xml index 5792b539e0..d65dad9fe1 100644 --- a/doc/classes/Font.xml +++ b/doc/classes/Font.xml @@ -51,21 +51,21 @@ <return type="float"> </return> <description> - Return the font ascent (number of pixels above the baseline). + Returns the font ascent (number of pixels above the baseline). </description> </method> <method name="get_descent" qualifiers="const"> <return type="float"> </return> <description> - Return the font descent (number of pixels below the baseline). + Returns the font descent (number of pixels below the baseline). </description> </method> <method name="get_height" qualifiers="const"> <return type="float"> </return> <description> - Return the total font height (ascent plus descent) in pixels. + Returns the total font height (ascent plus descent) in pixels. </description> </method> <method name="get_string_size" qualifiers="const"> @@ -74,7 +74,7 @@ <argument index="0" name="string" type="String"> </argument> <description> - Return the size of a string, taking kerning and advance into account. + Returns the size of a string, taking kerning and advance into account. </description> </method> <method name="get_wordwrap_string_size" qualifiers="const"> diff --git a/doc/classes/GDNativeLibraryResourceLoader.xml b/doc/classes/GDNativeLibraryResourceLoader.xml deleted file mode 100644 index 1b98fa3889..0000000000 --- a/doc/classes/GDNativeLibraryResourceLoader.xml +++ /dev/null @@ -1,13 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" ?> -<class name="GDNativeLibraryResourceLoader" inherits="ResourceFormatLoader" category="Core" version="3.2"> - <brief_description> - </brief_description> - <description> - </description> - <tutorials> - </tutorials> - <methods> - </methods> - <constants> - </constants> -</class> diff --git a/doc/classes/Geometry.xml b/doc/classes/Geometry.xml index 68539d7ecb..e2ba3fb7b0 100644 --- a/doc/classes/Geometry.xml +++ b/doc/classes/Geometry.xml @@ -59,6 +59,29 @@ Clips the polygon defined by the points in [code]points[/code] against the [code]plane[/code] and returns the points of the clipped polygon. </description> </method> + <method name="clip_polygons_2d"> + <return type="Array"> + </return> + <argument index="0" name="polygon_a" type="PoolVector2Array"> + </argument> + <argument index="1" name="polygon_b" type="PoolVector2Array"> + </argument> + <description> + Clips [code]polygon_a[/code] against [code]polygon_b[/code] and returns an array of clipped polygons. This performs [code]OPERATION_DIFFERENCE[/code] between polygons. Returns an empty array if [code]polygon_b[/code] completely overlaps [code]polygon_a[/code]. + If [code]polygon_b[/code] is enclosed by [code]polygon_a[/code], returns an outer polygon (boundary) and inner polygon (hole) which could be distiguished by calling [method is_polygon_clockwise]. + </description> + </method> + <method name="clip_polyline_with_polygon_2d"> + <return type="Array"> + </return> + <argument index="0" name="polyline" type="PoolVector2Array"> + </argument> + <argument index="1" name="polygon" type="PoolVector2Array"> + </argument> + <description> + Clips [code]polyline[/code] against [code]polygon[/code] and returns an array of clipped polylines. This performs [code]OPERATION_DIFFERENCE[/code] between the polyline and the polygon. This operation can be thought of as cutting a line with a closed shape. + </description> + </method> <method name="convex_hull_2d"> <return type="PoolVector2Array"> </return> @@ -68,6 +91,18 @@ Given an array of [Vector2]s, returns the convex hull as a list of points in counter-clockwise order. The last point is the same as the first one. </description> </method> + <method name="exclude_polygons_2d"> + <return type="Array"> + </return> + <argument index="0" name="polygon_a" type="PoolVector2Array"> + </argument> + <argument index="1" name="polygon_b" type="PoolVector2Array"> + </argument> + <description> + Mutually excludes common area defined by intersection of [code]polygon_a[/code] and [code]polygon_b[/code] (see [method intersect_polygons_2d]) and returns an array of excluded polygons. This performs [code]OPERATION_XOR[/code] between polygons. In other words, returns all but common area between polygons. + The operation may result in an outer polygon (boundary) and inner polygon (hole) produced which could be distiguished by calling [method is_polygon_clockwise]. + </description> + </method> <method name="get_closest_point_to_segment"> <return type="Vector3"> </return> @@ -158,6 +193,38 @@ <description> </description> </method> + <method name="intersect_polygons_2d"> + <return type="Array"> + </return> + <argument index="0" name="polygon_a" type="PoolVector2Array"> + </argument> + <argument index="1" name="polygon_b" type="PoolVector2Array"> + </argument> + <description> + Intersects [code]polygon_a[/code] with [code]polygon_b[/code] and returns an array of intersected polygons. This performs [code]OPERATION_INTERSECTION[/code] between polygons. In other words, returns common area shared by polygons. Returns an empty array if no intersection occurs. + The operation may result in an outer polygon (boundary) and inner polygon (hole) produced which could be distiguished by calling [method is_polygon_clockwise]. + </description> + </method> + <method name="intersect_polyline_with_polygon_2d"> + <return type="Array"> + </return> + <argument index="0" name="polyline" type="PoolVector2Array"> + </argument> + <argument index="1" name="polygon" type="PoolVector2Array"> + </argument> + <description> + Intersects [code]polyline[/code] with [code]polygon[/code] and returns an array of intersected polylines. This performs [code]OPERATION_INTERSECTION[/code] between the polyline and the polygon. This operation can be thought of as chopping a line with a closed shape. + </description> + </method> + <method name="is_polygon_clockwise"> + <return type="bool"> + </return> + <argument index="0" name="polygon" type="PoolVector2Array"> + </argument> + <description> + Returns [code]true[/code] if [code]polygon[/code]'s vertices are ordered in clockwise order, otherwise returns [code]false[/code]. + </description> + </method> <method name="line_intersects_line_2d"> <return type="Variant"> </return> @@ -182,6 +249,51 @@ Given an array of [Vector2]s representing tiles, builds an atlas. The returned dictionary has two keys: [code]points[/code] is a vector of [Vector2] that specifies the positions of each tile, [code]size[/code] contains the overall size of the whole atlas as [Vector2]. </description> </method> + <method name="merge_polygons_2d"> + <return type="Array"> + </return> + <argument index="0" name="polygon_a" type="PoolVector2Array"> + </argument> + <argument index="1" name="polygon_b" type="PoolVector2Array"> + </argument> + <description> + Merges (combines) [code]polygon_a[/code] and [code]polygon_b[/code] and returns an array of merged polygons. This performs [code]OPERATION_UNION[/code] between polygons. + The operation may result in an outer polygon (boundary) and inner polygon (hole) produced which could be distiguished by calling [method is_polygon_clockwise]. + </description> + </method> + <method name="offset_polygon_2d"> + <return type="Array"> + </return> + <argument index="0" name="polygon" type="PoolVector2Array"> + </argument> + <argument index="1" name="delta" type="float"> + </argument> + <argument index="2" name="join_type" type="int" enum="Geometry.PolyJoinType" default="0"> + </argument> + <description> + Inflates or deflates [code]polygon[/code] by [code]delta[/code] units (pixels). If [code]delta[/code] is positive, makes the polygon grow outward. If [code]delta[/code] is negative, shrinks the polygon inward. Returns an array of polygons because inflating/deflating may result in multiple discrete polygons. Returns an empty array if [code]delta[/code] is negative and the absolute value of it approximately exceeds the minimum bounding rectangle dimensions of the polygon. + Each polygon's vertices will be rounded as determined by [code]join_type[/code], see [enum Geometry.PolyJoinType]. + The operation may result in an outer polygon (boundary) and inner polygon (hole) produced which could be distiguished by calling [method is_polygon_clockwise]. + </description> + </method> + <method name="offset_polyline_2d"> + <return type="Array"> + </return> + <argument index="0" name="polyline" type="PoolVector2Array"> + </argument> + <argument index="1" name="delta" type="float"> + </argument> + <argument index="2" name="join_type" type="int" enum="Geometry.PolyJoinType" default="0"> + </argument> + <argument index="3" name="end_type" type="int" enum="Geometry.PolyEndType" default="3"> + </argument> + <description> + Inflates or deflates [code]polyline[/code] by [code]delta[/code] units (pixels), producing polygons. If [code]delta[/code] is positive, makes the polyline grow outward. Returns an array of polygons because inflating/deflating may result in multiple discrete polygons. If [code]delta[/code] is negative, returns an empty array. + Each polygon's vertices will be rounded as determined by [code]join_type[/code], see [enum Geometry.PolyJoinType]. + Each polygon's endpoints will be rounded as determined by [code]end_type[/code], see [enum Geometry.PolyEndType]. + The operation may result in an outer polygon (boundary) and inner polygon (hole) produced which could be distiguished by calling [method is_polygon_clockwise]. + </description> + </method> <method name="point_is_inside_triangle" qualifiers="const"> <return type="bool"> </return> @@ -304,6 +416,27 @@ Tests if the segment ([code]from[/code], [code]to[/code]) intersects the triangle [code]a[/code], [code]b[/code], [code]c[/code]. If yes, returns the point of intersection as [Vector3]. If no intersection takes place, an empty [Variant] is returned. </description> </method> + <method name="transform_points_2d"> + <return type="PoolVector2Array"> + </return> + <argument index="0" name="points" type="PoolVector2Array"> + </argument> + <argument index="1" name="transform" type="Transform2D"> + </argument> + <description> + Transforms an array of points by [code]transform[/code] and returns the result. + Can be useful in conjuction with performing polygon boolean operations in CSG manner, see [method merge_polygons_2d], [method clip_polygons_2d], [method intersect_polygons_2d], [method exclude_polygons_2d]. + </description> + </method> + <method name="triangulate_delaunay_2d"> + <return type="PoolIntArray"> + </return> + <argument index="0" name="points" type="PoolVector2Array"> + </argument> + <description> + Triangulates the area specified by discrete set of [code]points[/code] such that no point is inside the circumcircle of any resulting triangle. Returns a [PoolIntArray] where each triangle consists of three consecutive point indices into [code]points[/code] (i.e. the returned array will have [code]n * 3[/code] elements, with [code]n[/code] being the number of found triangles). If the triangulation did not succeed, an empty [PoolIntArray] is returned. + </description> + </method> <method name="triangulate_polygon"> <return type="PoolIntArray"> </return> @@ -315,5 +448,41 @@ </method> </methods> <constants> + <constant name="OPERATION_UNION" value="0" enum="PolyBooleanOperation"> + Create regions where either subject or clip polygons (or both) are filled. + </constant> + <constant name="OPERATION_DIFFERENCE" value="1" enum="PolyBooleanOperation"> + Create regions where subject polygons are filled except where clip polygons are filled. + </constant> + <constant name="OPERATION_INTERSECTION" value="2" enum="PolyBooleanOperation"> + Create regions where both subject and clip polygons are filled. + </constant> + <constant name="OPERATION_XOR" value="3" enum="PolyBooleanOperation"> + Create regions where either subject or clip polygons are filled but not where both are filled. + </constant> + <constant name="JOIN_SQUARE" value="0" enum="PolyJoinType"> + Squaring is applied uniformally at all convex edge joins at [code]1 * delta[/code]. + </constant> + <constant name="JOIN_ROUND" value="1" enum="PolyJoinType"> + While flattened paths can never perfectly trace an arc, they are approximated by a series of arc chords. + </constant> + <constant name="JOIN_MITER" value="2" enum="PolyJoinType"> + There's a necessary limit to mitered joins since offsetting edges that join at very acute angles will produce excessively long and narrow 'spikes'. For any given edge join, when miter offsetting would exceed that maximum distance, 'square' joining is applied. + </constant> + <constant name="END_POLYGON" value="0" enum="PolyEndType"> + Endpoints are joined using the [enum PolyJoinType] value and the path filled as a polygon. + </constant> + <constant name="END_JOINED" value="1" enum="PolyEndType"> + Endpoints are joined using the [enum PolyJoinType] value and the path filled as a polyline. + </constant> + <constant name="END_BUTT" value="2" enum="PolyEndType"> + Endpoints are squared off with no extension. + </constant> + <constant name="END_SQUARE" value="3" enum="PolyEndType"> + Endpoints are squared off and extended by [code]delta[/code] units. + </constant> + <constant name="END_ROUND" value="4" enum="PolyEndType"> + Endpoints are rounded off and extended by [code]delta[/code] units. + </constant> </constants> </class> diff --git a/doc/classes/GeometryInstance.xml b/doc/classes/GeometryInstance.xml index 6a89d81aa0..674f786149 100644 --- a/doc/classes/GeometryInstance.xml +++ b/doc/classes/GeometryInstance.xml @@ -9,6 +9,15 @@ <tutorials> </tutorials> <methods> + <method name="set_custom_aabb"> + <return type="void"> + </return> + <argument index="0" name="aabb" type="AABB"> + </argument> + <description> + Overrides the bounding box of this node with a custom one. To remove it, set an AABB with all fields set to zero. + </description> + </method> </methods> <members> <member name="cast_shadow" type="int" setter="set_cast_shadows_setting" getter="get_cast_shadows_setting" enum="GeometryInstance.ShadowCastingSetting"> diff --git a/doc/classes/GraphEdit.xml b/doc/classes/GraphEdit.xml index 145cd243bc..db186eab35 100644 --- a/doc/classes/GraphEdit.xml +++ b/doc/classes/GraphEdit.xml @@ -80,7 +80,7 @@ <return type="Array"> </return> <description> - Return an Array containing the list of connections. A connection consists in a structure of the form {from_port: 0, from: "GraphNode name 0", to_port: 1, to: "GraphNode name 1" } + Returns an Array containing the list of connections. A connection consists in a structure of the form {from_port: 0, from: "GraphNode name 0", to_port: 1, to: "GraphNode name 1" } </description> </method> <method name="get_zoom_hbox"> @@ -101,7 +101,7 @@ <argument index="3" name="to_port" type="int"> </argument> <description> - Return [code]true[/code] if the 'from_port' slot of 'from' GraphNode is connected to the 'to_port' slot of 'to' GraphNode. + Returns [code]true[/code] if the 'from_port' slot of 'from' GraphNode is connected to the 'to_port' slot of 'to' GraphNode. </description> </method> <method name="is_valid_connection_type" qualifiers="const"> diff --git a/doc/classes/GraphNode.xml b/doc/classes/GraphNode.xml index 4d6f3180d0..a19676798b 100644 --- a/doc/classes/GraphNode.xml +++ b/doc/classes/GraphNode.xml @@ -31,14 +31,14 @@ <argument index="0" name="idx" type="int"> </argument> <description> - Return the color of the input connection 'idx'. + Returns the color of the input connection 'idx'. </description> </method> <method name="get_connection_input_count"> <return type="int"> </return> <description> - Return the number of enabled input slots (connections) to the GraphNode. + Returns the number of enabled input slots (connections) to the GraphNode. </description> </method> <method name="get_connection_input_position"> @@ -47,7 +47,7 @@ <argument index="0" name="idx" type="int"> </argument> <description> - Return the position of the input connection 'idx'. + Returns the position of the input connection 'idx'. </description> </method> <method name="get_connection_input_type"> @@ -56,7 +56,7 @@ <argument index="0" name="idx" type="int"> </argument> <description> - Return the type of the input connection 'idx'. + Returns the type of the input connection 'idx'. </description> </method> <method name="get_connection_output_color"> @@ -65,14 +65,14 @@ <argument index="0" name="idx" type="int"> </argument> <description> - Return the color of the output connection 'idx'. + Returns the color of the output connection 'idx'. </description> </method> <method name="get_connection_output_count"> <return type="int"> </return> <description> - Return the number of enabled output slots (connections) of the GraphNode. + Returns the number of enabled output slots (connections) of the GraphNode. </description> </method> <method name="get_connection_output_position"> @@ -81,7 +81,7 @@ <argument index="0" name="idx" type="int"> </argument> <description> - Return the position of the output connection 'idx'. + Returns the position of the output connection 'idx'. </description> </method> <method name="get_connection_output_type"> @@ -90,7 +90,7 @@ <argument index="0" name="idx" type="int"> </argument> <description> - Return the type of the output connection 'idx'. + Returns the type of the output connection 'idx'. </description> </method> <method name="get_slot_color_left" qualifiers="const"> @@ -99,7 +99,7 @@ <argument index="0" name="idx" type="int"> </argument> <description> - Return the color set to 'idx' left (input) slot. + Returns the color set to 'idx' left (input) slot. </description> </method> <method name="get_slot_color_right" qualifiers="const"> @@ -108,7 +108,7 @@ <argument index="0" name="idx" type="int"> </argument> <description> - Return the color set to 'idx' right (output) slot. + Returns the color set to 'idx' right (output) slot. </description> </method> <method name="get_slot_type_left" qualifiers="const"> @@ -117,7 +117,7 @@ <argument index="0" name="idx" type="int"> </argument> <description> - Return the (integer) type of left (input) 'idx' slot. + Returns the (integer) type of left (input) 'idx' slot. </description> </method> <method name="get_slot_type_right" qualifiers="const"> @@ -126,7 +126,7 @@ <argument index="0" name="idx" type="int"> </argument> <description> - Return the (integer) type of right (output) 'idx' slot. + Returns the (integer) type of right (output) 'idx' slot. </description> </method> <method name="is_slot_enabled_left" qualifiers="const"> @@ -135,7 +135,7 @@ <argument index="0" name="idx" type="int"> </argument> <description> - Return [code]true[/code] if left (input) slot 'idx' is enabled, [code]false[/code] otherwise. + Returns [code]true[/code] if left (input) slot 'idx' is enabled, [code]false[/code] otherwise. </description> </method> <method name="is_slot_enabled_right" qualifiers="const"> @@ -144,7 +144,7 @@ <argument index="0" name="idx" type="int"> </argument> <description> - Return [code]true[/code] if right (output) slot 'idx' is enabled, [code]false[/code] otherwise. + Returns [code]true[/code] if right (output) slot 'idx' is enabled, [code]false[/code] otherwise. </description> </method> <method name="set_slot"> diff --git a/doc/classes/Image.xml b/doc/classes/Image.xml index 8dfabdd884..75434b031e 100644 --- a/doc/classes/Image.xml +++ b/doc/classes/Image.xml @@ -361,7 +361,7 @@ <return type="void"> </return> <description> - Locks the data for writing access. + Locks the data for reading and writing access. Sends an error to the console if the image is not locked when reading or writing a pixel. </description> </method> <method name="normalmap_to_xy"> diff --git a/doc/classes/ImageTexture.xml b/doc/classes/ImageTexture.xml index 15ecd4ee6d..e5a8fee767 100644 --- a/doc/classes/ImageTexture.xml +++ b/doc/classes/ImageTexture.xml @@ -40,7 +40,7 @@ <return type="int" enum="Image.Format"> </return> <description> - Return the format of the [ImageTexture], one of [enum Image.Format]. + Returns the format of the [ImageTexture], one of [enum Image.Format]. </description> </method> <method name="load"> diff --git a/doc/classes/Input.xml b/doc/classes/Input.xml index 319f84b8d2..9c41e4bf1d 100644 --- a/doc/classes/Input.xml +++ b/doc/classes/Input.xml @@ -194,7 +194,7 @@ <return type="int" enum="Input.MouseMode"> </return> <description> - Return the mouse mode. See the constants for more information. + Returns the mouse mode. See the constants for more information. </description> </method> <method name="is_action_just_pressed" qualifiers="const"> diff --git a/doc/classes/InputEventAction.xml b/doc/classes/InputEventAction.xml index 25e9073ec7..9df7bbca74 100644 --- a/doc/classes/InputEventAction.xml +++ b/doc/classes/InputEventAction.xml @@ -18,6 +18,9 @@ <member name="pressed" type="bool" setter="set_pressed" getter="is_pressed"> If [code]true[/code], the action's state is pressed. If [code]false[/code], the action's state is released. </member> + <member name="strength" type="float" setter="set_strength" getter="get_strength"> + The action's strength between 0 and 1. This value is consired as equal to 0 if pressed is [code]false[/code]. The event strength allows faking analog joypad motion events, by precising how strongly is the joypad axis bent or pressed. + </member> </members> <constants> </constants> diff --git a/doc/classes/InputEventKey.xml b/doc/classes/InputEventKey.xml index 86a1362230..53b1f74bd4 100644 --- a/doc/classes/InputEventKey.xml +++ b/doc/classes/InputEventKey.xml @@ -29,7 +29,7 @@ Key scancode, one of the [enum KeyList] constants. </member> <member name="unicode" type="int" setter="set_unicode" getter="get_unicode"> - Key unicode identifier when relevant. + Key unicode identifier when relevant. Unicode identifiers for the composite characters and complex scripts may not be available unless IME input mode is active. See [method OS.set_ime_active] for more information. </member> </members> <constants> diff --git a/doc/classes/ItemList.xml b/doc/classes/ItemList.xml index 663eeda77a..d78c930351 100644 --- a/doc/classes/ItemList.xml +++ b/doc/classes/ItemList.xml @@ -46,7 +46,7 @@ <return type="void"> </return> <description> - Ensure selection is visible, adjusting the scroll position as necessary. + Ensure current selection is visible, adjusting the scroll position as necessary. </description> </method> <method name="get_item_at_position" qualifiers="const"> @@ -64,7 +64,7 @@ <return type="int"> </return> <description> - Return count of items currently in the item list. + Returns the number of items currently in the list. </description> </method> <method name="get_item_custom_bg_color" qualifiers="const"> @@ -73,6 +73,7 @@ <argument index="0" name="idx" type="int"> </argument> <description> + Returns the custom background color of the item specified by [code]idx[/code] index. Default value is [code]Color(0, 0, 0, 0)[/code]. </description> </method> <method name="get_item_custom_fg_color" qualifiers="const"> @@ -81,6 +82,7 @@ <argument index="0" name="idx" type="int"> </argument> <description> + Returns the custom foreground color of the item specified by [code]idx[/code] index. Default value is [code]Color(0, 0, 0, 0)[/code]. </description> </method> <method name="get_item_icon" qualifiers="const"> @@ -89,6 +91,7 @@ <argument index="0" name="idx" type="int"> </argument> <description> + Returns the icon associated with the specified index. Default value is [code]null[/code] </description> </method> <method name="get_item_icon_modulate" qualifiers="const"> @@ -114,6 +117,7 @@ <argument index="0" name="idx" type="int"> </argument> <description> + Returns the metadata value of the specified index. </description> </method> <method name="get_item_text" qualifiers="const"> @@ -122,7 +126,7 @@ <argument index="0" name="idx" type="int"> </argument> <description> - Return the text for specified item index. + Returns the text associated with the specified index. </description> </method> <method name="get_item_tooltip" qualifiers="const"> @@ -131,21 +135,21 @@ <argument index="0" name="idx" type="int"> </argument> <description> - Return tooltip hint for specified item index. + Returns the tooltip hint associated with the specified index. </description> </method> <method name="get_selected_items"> <return type="PoolIntArray"> </return> <description> - Returns the list of selected indexes. + Returns an array with the indexes of the selected items. </description> </method> <method name="get_v_scroll"> <return type="VScrollBar"> </return> <description> - Returns the current vertical scroll bar for the List. + Returns the [Object] ID associated with the list. </description> </method> <method name="is_anything_selected"> @@ -161,7 +165,7 @@ <argument index="0" name="idx" type="int"> </argument> <description> - Returns whether or not the item at the specified index is disabled + Returns whether or not the item at the specified index is disabled. </description> </method> <method name="is_item_icon_transposed" qualifiers="const"> @@ -207,7 +211,7 @@ <argument index="1" name="to_idx" type="int"> </argument> <description> - Moves item at index [code]from_idx[/code] to [code]to_idx[/code]. + Moves item from index [code]from_idx[/code] to [code]to_idx[/code]. </description> </method> <method name="remove_item"> @@ -216,7 +220,7 @@ <argument index="0" name="idx" type="int"> </argument> <description> - Remove item at specified index from the list. + Removes the item specified by [code]idx[/code] index from the list. </description> </method> <method name="select"> @@ -239,6 +243,11 @@ <argument index="1" name="custom_bg_color" type="Color"> </argument> <description> + Sets the background color of the item specified by [code]idx[/code] index to the specified [Color]. + [codeblock] + var some_string = "Some text" + some_string.set_item_custom_bg_color(0,Color(1, 0, 0, 1) # This will set the background color of the first item of the control to red. + [/codeblock] </description> </method> <method name="set_item_custom_fg_color"> @@ -249,6 +258,11 @@ <argument index="1" name="custom_fg_color" type="Color"> </argument> <description> + Sets the foreground color of the item specified by [code]idx[/code] index to the specified [Color]. + [codeblock] + var some_string = "Some text" + some_string.set_item_custom_fg_color(0,Color(1, 0, 0, 1) # This will set the foreground color of the first item of the control to red. + [/codeblock] </description> </method> <method name="set_item_disabled"> @@ -259,8 +273,8 @@ <argument index="1" name="disabled" type="bool"> </argument> <description> - Disable (or enable) item at specified index. - Disabled items are not be selectable and do not fire activation (Enter or double-click) signals. + Disable (or enable) item at the specified index. + Disabled items are not be selectable and do not trigger activation (Enter or double-click) signals. </description> </method> <method name="set_item_icon"> @@ -271,7 +285,7 @@ <argument index="1" name="icon" type="Texture"> </argument> <description> - Set (or replace) icon of the item at the specified index. + Set (or replace) the icon's [Texture] associated with the specified index. </description> </method> <method name="set_item_icon_modulate"> @@ -282,7 +296,7 @@ <argument index="1" name="modulate" type="Color"> </argument> <description> - Sets a modulating [Color] for item's icon at the specified index. + Sets a modulating [Color] of the item associated with the specified index. </description> </method> <method name="set_item_icon_region"> @@ -313,7 +327,7 @@ <argument index="1" name="metadata" type="Variant"> </argument> <description> - Sets a value (of any type) to be stored with the item at the specified index. + Sets a value (of any type) to be stored with the item associated with the specified index. </description> </method> <method name="set_item_selectable"> @@ -324,7 +338,7 @@ <argument index="1" name="selectable" type="bool"> </argument> <description> - Allow or disallow selection of the item at the specified index. + Allow or disallow selection of the item associated with the specified index. </description> </method> <method name="set_item_text"> @@ -335,7 +349,7 @@ <argument index="1" name="text" type="String"> </argument> <description> - Sets text of item at specified index. + Sets text of the item associated with the specified index. </description> </method> <method name="set_item_tooltip"> @@ -346,7 +360,7 @@ <argument index="1" name="tooltip" type="String"> </argument> <description> - Sets tooltip hint for item at specified index. + Sets tooltip hint for the item associated with the specified index. </description> </method> <method name="set_item_tooltip_enabled"> @@ -357,7 +371,7 @@ <argument index="1" name="enable" type="bool"> </argument> <description> - Sets whether the tooltip is enabled for specified item index. + Sets whether the tooltip hint is enabled for specified item index. </description> </method> <method name="sort_items_by_text"> @@ -373,7 +387,7 @@ <argument index="0" name="idx" type="int"> </argument> <description> - Ensure item at specified index is not selected. + Ensure the item associated with the specified index is not selected. </description> </method> <method name="unselect_all"> @@ -386,29 +400,38 @@ </methods> <members> <member name="allow_reselect" type="bool" setter="set_allow_reselect" getter="get_allow_reselect"> - If [code]true[/code], the currently selected item may be selected again. + If [code]true[/code], the currently selected item can be selected again. </member> <member name="allow_rmb_select" type="bool" setter="set_allow_rmb_select" getter="get_allow_rmb_select"> - If [code]true[/code], a right mouse button click can select items. + If [code]true[/code], right mouse button click can select items. </member> <member name="auto_height" type="bool" setter="set_auto_height" getter="has_auto_height"> + If [code]true[/code], the control will automatically resize the height to fit its content. </member> <member name="fixed_column_width" type="int" setter="set_fixed_column_width" getter="get_fixed_column_width"> + Sets the default column width in pixels. + If left to default value, each item will have a width equal to the width of its content and the columns will have an uneven width. </member> <member name="fixed_icon_size" type="Vector2" setter="set_fixed_icon_size" getter="get_fixed_icon_size"> + Sets the default icon size in pixels. </member> <member name="icon_mode" type="int" setter="set_icon_mode" getter="get_icon_mode" enum="ItemList.IconMode"> + Sets the default position of the icon to either [constant ICON_MODE_LEFT] or [constant ICON_MODE_TOP]. </member> <member name="icon_scale" type="float" setter="set_icon_scale" getter="get_icon_scale"> + Sets the icon size to its initial size multiplied by the specified scale. Default value is 1.0. </member> <member name="max_columns" type="int" setter="set_max_columns" getter="get_max_columns"> + Sets the maximum columns the list will have. + If set to anything other than the default, the content will be split among the specified columns. </member> <member name="max_text_lines" type="int" setter="set_max_text_lines" getter="get_max_text_lines"> </member> <member name="same_column_width" type="bool" setter="set_same_column_width" getter="is_same_column_width"> + If set to [code]true[/code], all columns will have the same width specified by [member fixed_column_width]. </member> <member name="select_mode" type="int" setter="set_select_mode" getter="get_select_mode" enum="ItemList.SelectMode"> - Allow single or multiple selection. See the [code]SELECT_*[/code] constants. + Allow single or multiple item selection. See the [enum SelectMode] constants. </member> </members> <signals> @@ -416,7 +439,7 @@ <argument index="0" name="index" type="int"> </argument> <description> - Fired when specified list item is activated via double click or Enter. + Triggered when specified list item is activated via double click or Enter. </description> </signal> <signal name="item_rmb_selected"> @@ -425,7 +448,7 @@ <argument index="1" name="at_position" type="Vector2"> </argument> <description> - Fired when specified list item has been selected via right mouse clicking. + Triggered when specified list item has been selected via right mouse clicking. The click position is also provided to allow appropriate popup of context menus at the correct location. [member allow_rmb_select] must be enabled. @@ -435,7 +458,7 @@ <argument index="0" name="index" type="int"> </argument> <description> - Fired when specified item has been selected. + Triggered when specified item has been selected. [member allow_reselect] must be enabled to reselect an item. </description> </signal> @@ -445,17 +468,20 @@ <argument index="1" name="selected" type="bool"> </argument> <description> - Fired when a multiple selection is altered on a list allowing multiple selection. + Triggered when a multiple selection is altered on a list allowing multiple selection. </description> </signal> <signal name="nothing_selected"> <description> + Triggered when a left mouse click is issued within the rect of the list but on empty space. </description> </signal> <signal name="rmb_clicked"> <argument index="0" name="at_position" type="Vector2"> </argument> <description> + Triggered when a right mouse click is issued within the rect of the list but on empty space. + [member allow_rmb_select] must be enabled. </description> </signal> </signals> diff --git a/doc/classes/LineEdit.xml b/doc/classes/LineEdit.xml index bb180b591d..184987d2dd 100644 --- a/doc/classes/LineEdit.xml +++ b/doc/classes/LineEdit.xml @@ -166,6 +166,7 @@ </constant> <constant name="MENU_PASTE" value="2" enum="MenuItems"> Pastes the clipboard text over the selected text (or at the cursor's position). + Non-printable escape characters are automatically stripped from the OS clipboard via [method String.strip_escapes]. </constant> <constant name="MENU_CLEAR" value="3" enum="MenuItems"> Erases the whole [LineEdit] text. diff --git a/doc/classes/Marshalls.xml b/doc/classes/Marshalls.xml index 0d07d8b649..c7118a4d9f 100644 --- a/doc/classes/Marshalls.xml +++ b/doc/classes/Marshalls.xml @@ -15,7 +15,7 @@ <argument index="0" name="base64_str" type="String"> </argument> <description> - Return [PoolByteArray] of a given base64 encoded String. + Returns [PoolByteArray] of a given base64 encoded String. </description> </method> <method name="base64_to_utf8"> @@ -24,7 +24,7 @@ <argument index="0" name="base64_str" type="String"> </argument> <description> - Return utf8 String of a given base64 encoded String. + Returns utf8 String of a given base64 encoded String. </description> </method> <method name="base64_to_variant"> @@ -35,7 +35,7 @@ <argument index="1" name="allow_objects" type="bool" default="false"> </argument> <description> - Return [Variant] of a given base64 encoded String. When [code]allow_objects[/code] is [code]true[/code] decoding objects is allowed. + Returns [Variant] of a given base64 encoded String. When [code]allow_objects[/code] is [code]true[/code] decoding objects is allowed. [b]WARNING:[/b] Deserialized object can contain code which gets executed. Do not use this option if the serialized object comes from untrusted sources to avoid potential security threats (remote code execution). </description> </method> @@ -45,7 +45,7 @@ <argument index="0" name="array" type="PoolByteArray"> </argument> <description> - Return base64 encoded String of a given [PoolByteArray]. + Returns base64 encoded String of a given [PoolByteArray]. </description> </method> <method name="utf8_to_base64"> @@ -54,7 +54,7 @@ <argument index="0" name="utf8_str" type="String"> </argument> <description> - Return base64 encoded String of a given utf8 String. + Returns base64 encoded String of a given utf8 String. </description> </method> <method name="variant_to_base64"> @@ -65,7 +65,7 @@ <argument index="1" name="full_objects" type="bool" default="false"> </argument> <description> - Return base64 encoded String of a given [Variant]. When [code]full_objects[/code] is [code]true[/code] encoding objects is allowed (and can potentially include code). + Returns base64 encoded String of a given [Variant]. When [code]full_objects[/code] is [code]true[/code] encoding objects is allowed (and can potentially include code). </description> </method> </methods> diff --git a/doc/classes/MenuButton.xml b/doc/classes/MenuButton.xml index dadc31b794..1043aa1087 100644 --- a/doc/classes/MenuButton.xml +++ b/doc/classes/MenuButton.xml @@ -13,7 +13,7 @@ <return type="PopupMenu"> </return> <description> - Return the [PopupMenu] contained in this button. + Returns the [PopupMenu] contained in this button. </description> </method> <method name="set_disable_shortcuts"> diff --git a/doc/classes/Mesh.xml b/doc/classes/Mesh.xml index ae035341f6..048e7074f1 100644 --- a/doc/classes/Mesh.xml +++ b/doc/classes/Mesh.xml @@ -50,7 +50,7 @@ <return type="int"> </return> <description> - Return the amount of surfaces that the [Mesh] holds. + Returns the amount of surfaces that the [Mesh] holds. </description> </method> <method name="surface_get_arrays" qualifiers="const"> @@ -77,7 +77,18 @@ <argument index="0" name="surf_idx" type="int"> </argument> <description> - Return a [Material] in a given surface. Surface is rendered using this material. + Returns a [Material] in a given surface. Surface is rendered using this material. + </description> + </method> + <method name="surface_set_material"> + <return type="void"> + </return> + <argument index="0" name="surf_idx" type="int"> + </argument> + <argument index="1" name="material" type="Material"> + </argument> + <description> + Set a [Material] for a given surface. Surface will be rendered using this material. </description> </method> </methods> diff --git a/doc/classes/MeshInstance.xml b/doc/classes/MeshInstance.xml index c5c15e0ddc..f5868f51cb 100644 --- a/doc/classes/MeshInstance.xml +++ b/doc/classes/MeshInstance.xml @@ -43,6 +43,7 @@ <return type="int"> </return> <description> + Returns the number of surface materials. </description> </method> <method name="set_surface_material"> diff --git a/doc/classes/MeshInstance2D.xml b/doc/classes/MeshInstance2D.xml index d18ba96a95..4b38b9aa96 100644 --- a/doc/classes/MeshInstance2D.xml +++ b/doc/classes/MeshInstance2D.xml @@ -1,8 +1,10 @@ <?xml version="1.0" encoding="UTF-8" ?> <class name="MeshInstance2D" inherits="Node2D" category="Core" version="3.2"> <brief_description> + Node used for displaying a [Mesh] in 2D. </brief_description> <description> + Node used for displaying a [Mesh] in 2D. Can be constructed from an existing [Sprite] use tool in Toolbar. Select "Sprite" then "Convert to Mesh2D", select settings in popup and press "Create Mesh2D". </description> <tutorials> <link>http://docs.godotengine.org/en/latest/tutorials/2d/2d_meshes.html</link> @@ -11,12 +13,21 @@ </methods> <members> <member name="mesh" type="Mesh" setter="set_mesh" getter="get_mesh"> + The [Mesh] that will be drawn by the [MeshInstance2D]. </member> <member name="normal_map" type="Texture" setter="set_normal_map" getter="get_normal_map"> + The normal map that will be used if using the default [CanvasItemMaterial]. </member> <member name="texture" type="Texture" setter="set_texture" getter="get_texture"> + The [Texture] that will be used if using the default [CanvasItemMaterial]. Can be accessed as [code]TEXTURE[/code] in CanvasItem shader. </member> </members> + <signals> + <signal name="texture_changed"> + <description> + </description> + </signal> + </signals> <constants> </constants> </class> diff --git a/doc/classes/MeshLibrary.xml b/doc/classes/MeshLibrary.xml index de4f6cdf72..ad5824640d 100644 --- a/doc/classes/MeshLibrary.xml +++ b/doc/classes/MeshLibrary.xml @@ -37,7 +37,7 @@ <return type="PoolIntArray"> </return> <description> - Return the list of items. + Returns the list of items. </description> </method> <method name="get_item_mesh" qualifiers="const"> @@ -46,7 +46,7 @@ <argument index="0" name="id" type="int"> </argument> <description> - Return the mesh of the item. + Returns the mesh of the item. </description> </method> <method name="get_item_name" qualifiers="const"> @@ -55,7 +55,7 @@ <argument index="0" name="id" type="int"> </argument> <description> - Return the name of the item. + Returns the name of the item. </description> </method> <method name="get_item_navmesh" qualifiers="const"> diff --git a/doc/classes/MultiMesh.xml b/doc/classes/MultiMesh.xml index 1532fac206..0784fc3a42 100644 --- a/doc/classes/MultiMesh.xml +++ b/doc/classes/MultiMesh.xml @@ -17,7 +17,7 @@ <return type="AABB"> </return> <description> - Return the visibility AABB. + Returns the visibility AABB. </description> </method> <method name="get_instance_color" qualifiers="const"> @@ -35,7 +35,7 @@ <argument index="0" name="instance" type="int"> </argument> <description> - Return the custom data that has been set for a specific instance. + Returns the custom data that has been set for a specific instance. </description> </method> <method name="get_instance_transform" qualifiers="const"> @@ -44,7 +44,7 @@ <argument index="0" name="instance" type="int"> </argument> <description> - Return the [Transform] of a specific instance. + Returns the [Transform] of a specific instance. </description> </method> <method name="get_instance_transform_2d" qualifiers="const"> @@ -53,7 +53,7 @@ <argument index="0" name="instance" type="int"> </argument> <description> - Return the [Transform2D] of a specific instance. + Returns the [Transform2D] of a specific instance. </description> </method> <method name="set_as_bulk_array"> diff --git a/doc/classes/MultiMeshInstance2D.xml b/doc/classes/MultiMeshInstance2D.xml new file mode 100644 index 0000000000..8509986c3c --- /dev/null +++ b/doc/classes/MultiMeshInstance2D.xml @@ -0,0 +1,33 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<class name="MultiMeshInstance2D" inherits="Node2D" category="Core" version="3.2"> + <brief_description> + Node that instances a [MultiMesh] in 2D. + </brief_description> + <description> + [MultiMeshInstance2D] is a specialized node to instance a [MultiMesh] resource in 2D. + Usage is the same as [MultiMeshInstance]. + </description> + <tutorials> + </tutorials> + <methods> + </methods> + <members> + <member name="multimesh" type="MultiMesh" setter="set_multimesh" getter="get_multimesh"> + The [MultiMesh] that will be drawn by the [MultiMeshInstance2D]. + </member> + <member name="normal_map" type="Texture" setter="set_normal_map" getter="get_normal_map"> + The normal map that will be used if using the default [CanvasItemMaterial]. + </member> + <member name="texture" type="Texture" setter="set_texture" getter="get_texture"> + The [Texture] that will be used if using the default [CanvasItemMaterial]. Can be accessed as [code]TEXTURE[/code] in CanvasItem shader. + </member> + </members> + <signals> + <signal name="texture_changed"> + <description> + </description> + </signal> + </signals> + <constants> + </constants> +</class> diff --git a/doc/classes/Navigation.xml b/doc/classes/Navigation.xml index 3690c1d682..f0ae3fef99 100644 --- a/doc/classes/Navigation.xml +++ b/doc/classes/Navigation.xml @@ -59,7 +59,7 @@ <argument index="2" name="optimize" type="bool" default="true"> </argument> <description> - Returns the path between two given points. Points are in local coordinate space. If [code]optimize[/code] is [code]true[/code] (the default), the agent properties associated with each [NavigationMesh] (raidus, height, etc.) are considered in the path calculation, otherwise they are ignored. + Returns the path between two given points. Points are in local coordinate space. If [code]optimize[/code] is [code]true[/code] (the default), the agent properties associated with each [NavigationMesh] (radius, height, etc.) are considered in the path calculation, otherwise they are ignored. </description> </method> <method name="navmesh_add"> diff --git a/doc/classes/NavigationMesh.xml b/doc/classes/NavigationMesh.xml index 2788eb053a..79ad7f63ae 100644 --- a/doc/classes/NavigationMesh.xml +++ b/doc/classes/NavigationMesh.xml @@ -29,6 +29,14 @@ <description> </description> </method> + <method name="get_collision_mask_bit" qualifiers="const"> + <return type="bool"> + </return> + <argument index="0" name="bit" type="int"> + </argument> + <description> + </description> + </method> <method name="get_polygon"> <return type="PoolIntArray"> </return> @@ -49,6 +57,16 @@ <description> </description> </method> + <method name="set_collision_mask_bit"> + <return type="void"> + </return> + <argument index="0" name="bit" type="int"> + </argument> + <argument index="1" name="value" type="bool"> + </argument> + <description> + </description> + </method> <method name="set_vertices"> <return type="void"> </return> @@ -85,6 +103,10 @@ </member> <member name="filter/low_hanging_obstacles" type="bool" setter="set_filter_low_hanging_obstacles" getter="get_filter_low_hanging_obstacles"> </member> + <member name="geometry/collision_mask" type="int" setter="set_collision_mask" getter="get_collision_mask"> + </member> + <member name="geometry/parsed_geometry_type" type="int" setter="set_parsed_geometry_type" getter="get_parsed_geometry_type"> + </member> <member name="polygon/verts_per_poly" type="float" setter="set_verts_per_poly" getter="get_verts_per_poly"> </member> <member name="region/merge_size" type="float" setter="set_region_merge_size" getter="get_region_merge_size"> @@ -101,5 +123,11 @@ </constant> <constant name="SAMPLE_PARTITION_LAYERS" value="2"> </constant> + <constant name="PARSED_GEOMETRY_MESH_INSTANCES" value="0"> + </constant> + <constant name="PARSED_GEOMETRY_STATIC_COLLIDERS" value="1"> + </constant> + <constant name="PARSED_GEOMETRY_BOTH" value="2"> + </constant> </constants> </class> diff --git a/doc/classes/NodePath.xml b/doc/classes/NodePath.xml index 73739ba79a..554858d895 100644 --- a/doc/classes/NodePath.xml +++ b/doc/classes/NodePath.xml @@ -68,14 +68,14 @@ <return type="bool"> </return> <description> - Return [code]true[/code] if the node path is absolute (not relative). + Returns [code]true[/code] if the node path is absolute (not relative). </description> </method> <method name="is_empty"> <return type="bool"> </return> <description> - Return [code]true[/code] if the node path is empty. + Returns [code]true[/code] if the node path is empty. </description> </method> </methods> diff --git a/doc/classes/OS.xml b/doc/classes/OS.xml index c9c83bc0e0..7b50021284 100644 --- a/doc/classes/OS.xml +++ b/doc/classes/OS.xml @@ -97,6 +97,8 @@ </argument> <argument index="3" name="output" type="Array" default="[ ]"> </argument> + <argument index="4" name="read_stderr" type="bool" default="false"> + </argument> <description> Execute the file at the given path with the arguments passed as an array of strings. Platform path resolution will take place. The resolved file must exist and be executable. The arguments are used in the given order and separated by a space, so [code]OS.execute('ping', ['-w', '3', 'godotengine.org'], false)[/code] will resolve to [code]ping -w 3 godotengine.org[/code] in the system's shell. @@ -219,14 +221,16 @@ <return type="Vector2"> </return> <description> - Returns IME selection range. + Returns IME cursor position (currently edited portion of the string) relative to the characters in the composition string. + [code]NOTIFICATION_OS_IME_UPDATE[/code] is sent to the application to notify it of changes to the IME cursor position. </description> </method> <method name="get_ime_text" qualifiers="const"> <return type="String"> </return> <description> - Returns IME intermediate text. + Returns IME intermediate composition string. + [code]NOTIFICATION_OS_IME_UPDATE[/code] is sent to the application to notify it of changes to the IME composition string. </description> </method> <method name="get_latin_keyboard_variant" qualifiers="const"> @@ -504,7 +508,8 @@ <argument index="0" name="tag_name" type="String"> </argument> <description> - Returns [code]true[/code] if the feature for the given feature tag is supported in the currently running instance, depending on platform, build etc. Can be used to check whether you're currently running a debug build, on a certain platform or arch, etc. See feature tags documentation. + Returns [code]true[/code] if the feature for the given feature tag is supported in the currently running instance, depending on platform, build etc. Can be used to check whether you're currently running a debug build, on a certain platform or arch, etc. Refer to the [url=https://docs.godotengine.org/en/latest/getting_started/workflow/export/feature_tags.html]Feature Tags[/url] documentation for more details. + Note that tag names are case-sensitive. </description> </method> <method name="has_touchscreen_ui_hint" qualifiers="const"> @@ -697,7 +702,8 @@ <argument index="0" name="icon" type="Image"> </argument> <description> - Sets the game's icon. + Sets the game's icon using an [Image] resource. + The same image is used for window caption, taskbar/dock and window selection dialog. Image is scaled as needed. </description> </method> <method name="set_ime_active"> @@ -707,6 +713,9 @@ </argument> <description> Sets whether IME input mode should be enabled. + If active IME handles key events before the application and creates an composition string and suggestion list. + Application can retrieve the composition status by using [method get_ime_selection] and [method get_ime_text] functions. + Completed composition string is committed when input is finished. </description> </method> <method name="set_ime_position"> @@ -718,6 +727,17 @@ Sets position of IME suggestion list popup (in window coordinates). </description> </method> + <method name="set_native_icon"> + <return type="void"> + </return> + <argument index="0" name="filename" type="String"> + </argument> + <description> + Sets the game's icon using a multi-size platform-specific icon file ([code]*.ico[/code] on Windows and [code]*.icns[/code] on macOS). + Appropriate size sub-icons are used for window caption, taskbar/dock and window selection dialog. + Note: This method is only implemented on macOS and Windows. + </description> + </method> <method name="set_thread_name"> <return type="int" enum="Error"> </return> @@ -791,6 +811,12 @@ <member name="low_processor_usage_mode" type="bool" setter="set_low_processor_usage_mode" getter="is_in_low_processor_usage_mode"> If [code]true[/code], the engine optimizes for low processor usage by only refreshing the screen if needed. Can improve battery consumption on mobile. </member> + <member name="max_window_size" type="Vector2" setter="set_max_window_size" getter="get_max_window_size"> + The maximum size of the window (without counting window manager decorations). Does not affect fullscreen mode. Set to [code](0, 0)[/code] to reset to the system default value. + </member> + <member name="min_window_size" type="Vector2" setter="set_min_window_size" getter="get_min_window_size"> + The minimum size of the window (without counting window manager decorations). Does not affect fullscreen mode. Set to [code](0, 0)[/code] to reset to the system default value. + </member> <member name="screen_orientation" type="int" setter="set_screen_orientation" getter="get_screen_orientation" enum="_OS.ScreenOrientation"> The current screen orientation. </member> @@ -799,6 +825,7 @@ </member> <member name="window_borderless" type="bool" setter="set_borderless_window" getter="get_borderless_window"> If [code]true[/code], removes the window frame. + Note: Setting [code]window_borderless[/code] to [code]false[/code] disables per-pixel transparency. </member> <member name="window_fullscreen" type="bool" setter="set_window_fullscreen" getter="is_window_fullscreen"> If [code]true[/code], the window is fullscreen. @@ -810,6 +837,9 @@ If [code]true[/code], the window is minimized. </member> <member name="window_per_pixel_transparency_enabled" type="bool" setter="set_window_per_pixel_transparency_enabled" getter="get_window_per_pixel_transparency_enabled"> + If [code]true[/code], the window background is transparent and window frame is removed. + Use [code]get_tree().get_root().set_transparent_background(true)[/code] to disable main viewport background rendering. + Note: This property has no effect if "Project > Project Settings > Display > Window > Per-pixel transparency > Allowed" setting is disabled. </member> <member name="window_position" type="Vector2" setter="set_window_position" getter="get_window_position"> The window position relative to the screen, the origin is the top left corner, +Y axis goes to the bottom and +X axis goes to the right. diff --git a/doc/classes/Object.xml b/doc/classes/Object.xml index 9c2a65ce5b..c9910360ed 100644 --- a/doc/classes/Object.xml +++ b/doc/classes/Object.xml @@ -4,12 +4,12 @@ Base class for all non built-in types. </brief_description> <description> - Base class for all non built-in types. Everything which is not a built-in type starts the inheritance chain from this class. - Objects can be constructed from scripting languages, using [code]Object.new()[/code] in GDScript, [code]new Object[/code] in C#, or the "Construct Object" node in VisualScript. - Objects do not manage memory, if inheriting from one the object will most likely have to be deleted manually (call the [method free] function from the script or delete from C++). - Some derivatives add memory management, such as [Reference] (which keeps a reference count and deletes itself automatically when no longer referenced) and [Node], which deletes the children tree when deleted. + Every class which is not a built-in type inherits from this class. + You can construct Objects from scripting languages, using [code]Object.new()[/code] in GDScript, [code]new Object[/code] in C#, or the "Construct Object" node in VisualScript. + Objects do not manage memory. If a class inherits from Object, you will have to delete instances of it manually. To do so, call the [method free] method from your script or delete the instance from C++. + Some classes that extend Object add memory management. This is the case of [Reference], which counts references and deletes itself automatically when no longer referenced. [Node], another fundamental type, deletes all its children when freed from memory. Objects export properties, which are mainly useful for storage and editing, but not really so much in programming. Properties are exported in [method _get_property_list] and handled in [method _get] and [method _set]. However, scripting languages and C++ have simpler means to export them. - Objects also receive notifications ([method _notification]). Notifications are a simple way to notify the object about simple events, so they can all be handled together. + Objects also receive notifications. Notifications are a simple way to notify the object about simple events, so they can all be handled together. See [method _notification]. </description> <tutorials> </tutorials> @@ -57,6 +57,14 @@ Sets a property. Returns [code]true[/code] if the [code]property[/code] exists. </description> </method> + <method name="_to_string" qualifiers="virtual"> + <return type="String"> + </return> + <description> + Returns a [String] representing the object. Default is [code]"[ClassName:RID]"[/code]. + Override this method to customize the [String] representation of the object when it's being converted to a string, for example: [code]print(obj)[/code]. + </description> + </method> <method name="add_user_signal"> <return type="void"> </return> @@ -118,7 +126,9 @@ <argument index="4" name="flags" type="int" default="0"> </argument> <description> - Connects a [code]signal[/code] to a [code]method[/code] on a [code]target[/code] object. Pass optional [code]binds[/code] to the call. Use [code]flags[/code] to set deferred or one shot connections. See [code]CONNECT_*[/code] constants. A [code]signal[/code] can only be connected once to a [code]method[/code]. It will throw an error if already connected. To avoid this, first use [method is_connected] to check for existing connections. + Connects a [code]signal[/code] to a [code]method[/code] on a [code]target[/code] object. Pass optional [code]binds[/code] to the call. Use [code]flags[/code] to set deferred or one shot connections. See [code]CONNECT_*[/code] constants. + A [code]signal[/code] can only be connected once to a [code]method[/code]. It will throw an error if already connected. To avoid this, first, use [method is_connected] to check for existing connections. + If the [code]target[/code] is destroyed in the game's lifecycle, the connection will be lost. </description> </method> <method name="disconnect"> @@ -132,6 +142,7 @@ </argument> <description> Disconnects a [code]signal[/code] from a [code]method[/code] on the given [code]target[/code]. + If you try to disconnect a connection that does not exist, the method will throw an error. Use [method is_connected] to ensure that the connection exists. </description> </method> <method name="emit_signal" qualifiers="vararg"> @@ -404,6 +415,14 @@ Set a script into the object, scripts extend the object functionality. </description> </method> + <method name="to_string"> + <return type="String"> + </return> + <description> + Returns a [String] representing the object. Default is [code]"[ClassName:RID]"[/code]. + Override the method [method _to_string] to customize the [String] representation. + </description> + </method> <method name="tr" qualifiers="const"> <return type="String"> </return> diff --git a/doc/classes/OptionButton.xml b/doc/classes/OptionButton.xml index 06b4cb165e..1f714656de 100644 --- a/doc/classes/OptionButton.xml +++ b/doc/classes/OptionButton.xml @@ -51,7 +51,7 @@ <return type="int"> </return> <description> - Return the amount of items in the OptionButton. + Returns the amount of items in the OptionButton. </description> </method> <method name="get_item_icon" qualifiers="const"> @@ -60,7 +60,7 @@ <argument index="0" name="idx" type="int"> </argument> <description> - Return the icon of the item at index "idx". + Returns the icon of the item at index "idx". </description> </method> <method name="get_item_id" qualifiers="const"> @@ -69,7 +69,7 @@ <argument index="0" name="idx" type="int"> </argument> <description> - Return the ID of the item at index [code]idx[/code]. + Returns the ID of the item at index [code]idx[/code]. </description> </method> <method name="get_item_index" qualifiers="const"> @@ -78,7 +78,7 @@ <argument index="0" name="id" type="int"> </argument> <description> - Return the index of the item with the given [code]id[/code]. + Returns the index of the item with the given [code]id[/code]. </description> </method> <method name="get_item_metadata" qualifiers="const"> @@ -95,14 +95,14 @@ <argument index="0" name="idx" type="int"> </argument> <description> - Return the text of the item at index "idx". + Returns the text of the item at index "idx". </description> </method> <method name="get_popup" qualifiers="const"> <return type="PopupMenu"> </return> <description> - Return the [PopupMenu] contained in this button. + Returns the [PopupMenu] contained in this button. </description> </method> <method name="get_selected_id" qualifiers="const"> diff --git a/doc/classes/PacketPeer.xml b/doc/classes/PacketPeer.xml index 5a54c7ba1c..4109d9d462 100644 --- a/doc/classes/PacketPeer.xml +++ b/doc/classes/PacketPeer.xml @@ -13,7 +13,7 @@ <return type="int"> </return> <description> - Return the number of packets currently available in the ring-buffer. + Returns the number of packets currently available in the ring-buffer. </description> </method> <method name="get_packet"> @@ -27,7 +27,7 @@ <return type="int" enum="Error"> </return> <description> - Return the error state of the last packet received (via [method get_packet] and [method get_var]). + Returns the error state of the last packet received (via [method get_packet] and [method get_var]). </description> </method> <method name="get_var"> diff --git a/doc/classes/PacketPeerUDP.xml b/doc/classes/PacketPeerUDP.xml index 5892eb17b7..9843c16108 100644 --- a/doc/classes/PacketPeerUDP.xml +++ b/doc/classes/PacketPeerUDP.xml @@ -20,21 +20,21 @@ <return type="String"> </return> <description> - Return the IP of the remote peer that sent the last packet(that was received with [method PacketPeer.get_packet] or [method PacketPeer.get_var]). + Returns the IP of the remote peer that sent the last packet(that was received with [method PacketPeer.get_packet] or [method PacketPeer.get_var]). </description> </method> <method name="get_packet_port" qualifiers="const"> <return type="int"> </return> <description> - Return the port of the remote peer that sent the last packet(that was received with [method PacketPeer.get_packet] or [method PacketPeer.get_var]). + Returns the port of the remote peer that sent the last packet(that was received with [method PacketPeer.get_packet] or [method PacketPeer.get_var]). </description> </method> <method name="is_listening" qualifiers="const"> <return type="bool"> </return> <description> - Return whether this [PacketPeerUDP] is listening. + Returns whether this [PacketPeerUDP] is listening. </description> </method> <method name="listen"> diff --git a/doc/classes/Particles.xml b/doc/classes/Particles.xml index 0023fce97d..a29b621406 100644 --- a/doc/classes/Particles.xml +++ b/doc/classes/Particles.xml @@ -15,13 +15,14 @@ <return type="AABB"> </return> <description> + Returns the bounding box that contains all the particles that are active in the current frame. </description> </method> <method name="restart"> <return type="void"> </return> <description> - Restarts the particle emmission, clearing existing particles. + Restarts the particle emission, clearing existing particles. </description> </method> </methods> @@ -54,8 +55,10 @@ Time ratio between each emission. If [code]0[/code] particles are emitted continuously. If [code]1[/code] all particles are emitted simultaneously. Default value: [code]0[/code]. </member> <member name="fixed_fps" type="int" setter="set_fixed_fps" getter="get_fixed_fps"> + The particle system's frame rate is fixed to a value. For instance, changing the value to 2 will make the particles render at 2 frames per second. Note this does not slow down the simulation of the particle system itself. </member> <member name="fract_delta" type="bool" setter="set_fractional_delta" getter="get_fractional_delta"> + If [code]true[/code], results in fractional delta calculation which has a smoother particles display effect. Default value: [code]true[/code]. </member> <member name="lifetime" type="float" setter="set_lifetime" getter="get_lifetime"> Amount of time each particle will exist. Default value: [code]1[/code]. diff --git a/doc/classes/Particles2D.xml b/doc/classes/Particles2D.xml index de4877b639..78114e985d 100644 --- a/doc/classes/Particles2D.xml +++ b/doc/classes/Particles2D.xml @@ -40,7 +40,7 @@ How rapidly particles in an emission cycle are emitted. If greater than [code]0[/code], there will be a gap in emissions before the next cycle begins. Default value: [code]0[/code]. </member> <member name="fixed_fps" type="int" setter="set_fixed_fps" getter="get_fixed_fps"> - The particle system's frame rate is fixed to a value. For instance, changing the value to 2 will make the particles render at 2 frames per second. Note this does not slow down the particle system itself. + The particle system's frame rate is fixed to a value. For instance, changing the value to 2 will make the particles render at 2 frames per second. Note this does not slow down the simulation of the particle system itself. </member> <member name="fract_delta" type="bool" setter="set_fractional_delta" getter="get_fractional_delta"> If [code]true[/code], results in fractional delta calculation which has a smoother particles display effect. Default value: [code]true[/code] @@ -52,7 +52,7 @@ If [code]true[/code], particles use the parent node's coordinate space. If [code]false[/code], they use global coordinates. Default value: [code]true[/code]. </member> <member name="normal_map" type="Texture" setter="set_normal_map" getter="get_normal_map"> - Normal map to be used for the [code]texture[/code] property. + Normal map to be used for the [member texture] property. </member> <member name="one_shot" type="bool" setter="set_one_shot" getter="get_one_shot"> If [code]true[/code], only one emission cycle occurs. If set [code]true[/code] during a cycle, emission will stop at the cycle's end. Default value: [code]false[/code]. diff --git a/doc/classes/ParticlesMaterial.xml b/doc/classes/ParticlesMaterial.xml index 6ae5afeac5..cb06593bc2 100644 --- a/doc/classes/ParticlesMaterial.xml +++ b/doc/classes/ParticlesMaterial.xml @@ -100,7 +100,7 @@ Amount of [member spread] in Y/Z plane. A value of [code]1[/code] restricts particles to X/Z plane. Default [code]0[/code]. </member> <member name="gravity" type="Vector3" setter="set_gravity" getter="get_gravity"> - Gravity applied to every particle. Default value: [code](0, 98, 0)[/code]. + Gravity applied to every particle. Default value: [code](0, -9.8, 0)[/code]. </member> <member name="hue_variation" type="float" setter="set_param" getter="get_param"> Initial hue variation applied to each particle. @@ -112,13 +112,13 @@ Hue variation randomness ratio. Default value: [code]0[/code]. </member> <member name="initial_velocity" type="float" setter="set_param" getter="get_param"> - Initial velocity magnitude for each particle. Direction comes from [member spread]. + Initial velocity magnitude for each particle. Direction comes from [member spread] and the node's orientation. </member> <member name="initial_velocity_random" type="float" setter="set_param_randomness" getter="get_param_randomness"> Initial velocity randomness ratio. Default value: [code]0[/code]. </member> <member name="linear_accel" type="float" setter="set_param" getter="get_param"> - Linear acceleration applied to each particle. Acceleration increases velocity magnitude each frame without affecting direction. + Linear acceleration applied to each particle in the direction of motion. </member> <member name="linear_accel_curve" type="Texture" setter="set_param_texture" getter="get_param_texture"> Each particle's linear acceleration will vary along this [CurveTexture]. @@ -184,7 +184,7 @@ Use with [method set_param], [method set_param_randomness], and [method set_param_texture] to set angular velocity properties. </constant> <constant name="PARAM_ORBIT_VELOCITY" value="2" enum="Parameter"> - Use with [method set_param], [method set_param_randomness], and [method set_param_texture] to set orbital_velocity properties. + Use with [method set_param], [method set_param_randomness], and [method set_param_texture] to set orbital velocity properties. </constant> <constant name="PARAM_LINEAR_ACCEL" value="3" enum="Parameter"> Use with [method set_param], [method set_param_randomness], and [method set_param_texture] to set linear acceleration properties. @@ -205,7 +205,7 @@ Use with [method set_param], [method set_param_randomness], and [method set_param_texture] to set scale properties. </constant> <constant name="PARAM_HUE_VARIATION" value="9" enum="Parameter"> - Use with [method set_param], [method set_param_randomness], and [method set_param_texture] to set hue_variation properties. + Use with [method set_param], [method set_param_randomness], and [method set_param_texture] to set hue variation properties. </constant> <constant name="PARAM_ANIM_SPEED" value="10" enum="Parameter"> Use with [method set_param], [method set_param_randomness], and [method set_param_texture] to set animation speed properties. @@ -214,14 +214,19 @@ Use with [method set_param], [method set_param_randomness], and [method set_param_texture] to set animation offset properties. </constant> <constant name="PARAM_MAX" value="12" enum="Parameter"> + Represents the size of the [enum Parameter] enum. </constant> <constant name="FLAG_ALIGN_Y_TO_VELOCITY" value="0" enum="Flags"> Use with [method set_flag] to set [member flag_align_y]. </constant> <constant name="FLAG_ROTATE_Y" value="1" enum="Flags"> - Use with [method set_flag] to set [member flag_rotate_y] + Use with [method set_flag] to set [member flag_rotate_y]. + </constant> + <constant name="FLAG_DISABLE_Z" value="2" enum="Flags"> + Use with [method set_flag] to set [member flag_disable_z]. </constant> <constant name="FLAG_MAX" value="3" enum="Flags"> + Represents the size of the [enum Flags] enum. </constant> <constant name="EMISSION_SHAPE_POINT" value="0" enum="EmissionShape"> All particles will be emitted from a single point. diff --git a/doc/classes/PhysicsBody.xml b/doc/classes/PhysicsBody.xml index 4d94c57ad1..fc4f2e18fd 100644 --- a/doc/classes/PhysicsBody.xml +++ b/doc/classes/PhysicsBody.xml @@ -32,7 +32,7 @@ <argument index="0" name="bit" type="int"> </argument> <description> - Returns an individual bit on the collision mask. + Returns an individual bit on the [member collision_layer]. </description> </method> <method name="get_collision_mask_bit" qualifiers="const"> @@ -41,7 +41,7 @@ <argument index="0" name="bit" type="int"> </argument> <description> - Returns an individual bit on the collision mask. + Returns an individual bit on the [member collision_mask]. </description> </method> <method name="remove_collision_exception_with"> @@ -61,7 +61,7 @@ <argument index="1" name="value" type="bool"> </argument> <description> - Sets individual bits on the layer mask. Use this if you only need to change one layer's value. + Sets individual bits on the [member collision_layer] bitmask. Use this if you only need to change one layer's value. </description> </method> <method name="set_collision_mask_bit"> @@ -72,18 +72,20 @@ <argument index="1" name="value" type="bool"> </argument> <description> - Sets individual bits on the collision mask. Use this if you only need to change one layer's value. + Sets individual bits on the [member collision_mask] bitmask. Use this if you only need to change one layer's value. </description> </method> </methods> <members> <member name="collision_layer" type="int" setter="set_collision_layer" getter="get_collision_layer"> The physics layers this area 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. + 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 [member 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. + Default value: 1 (the first layer/bit is enabled). </member> <member name="collision_mask" type="int" setter="set_collision_mask" getter="get_collision_mask"> The physics layers this area scans for collisions. + Default value: 1 (the first layer/bit is enabled). </member> </members> <constants> diff --git a/doc/classes/PhysicsBody2D.xml b/doc/classes/PhysicsBody2D.xml index faa992ef7a..a5024c2432 100644 --- a/doc/classes/PhysicsBody2D.xml +++ b/doc/classes/PhysicsBody2D.xml @@ -32,7 +32,7 @@ <argument index="0" name="bit" type="int"> </argument> <description> - Returns an individual bit on the collision mask. + Returns an individual bit on the [member collision_layer]. </description> </method> <method name="get_collision_mask_bit" qualifiers="const"> @@ -41,7 +41,7 @@ <argument index="0" name="bit" type="int"> </argument> <description> - Returns an individual bit on the collision mask. + Returns an individual bit on the [member collision_mask]. </description> </method> <method name="remove_collision_exception_with"> @@ -61,7 +61,7 @@ <argument index="1" name="value" type="bool"> </argument> <description> - Sets individual bits on the layer mask. Use this if you only need to change one layer's value. + Sets individual bits on the [member collision_layer] bitmask. Use this if you only need to change one layer's value. </description> </method> <method name="set_collision_mask_bit"> @@ -72,18 +72,20 @@ <argument index="1" name="value" type="bool"> </argument> <description> - Sets individual bits on the collision mask. Use this if you only need to change one layer's value. + Sets individual bits on the [member collision_mask] bitmask. Use this if you only need to change one layer's value. </description> </method> </methods> <members> <member name="collision_layer" type="int" setter="set_collision_layer" getter="get_collision_layer"> The physics layers this area 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. + 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 [member 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. + Default value: 1 (the first layer/bit is enabled). </member> <member name="collision_mask" type="int" setter="set_collision_mask" getter="get_collision_mask"> The physics layers this area scans for collisions. + Default value: 1 (the first layer/bit is enabled). </member> <member name="layers" type="int" setter="_set_layers" getter="_get_layers"> Both [member collision_layer] and [member collision_mask]. Returns [member collision_layer] when accessed. Updates [member collision_layer] and [member collision_mask] when modified. diff --git a/doc/classes/PlaneMesh.xml b/doc/classes/PlaneMesh.xml index a8927f8479..a507f9f145 100644 --- a/doc/classes/PlaneMesh.xml +++ b/doc/classes/PlaneMesh.xml @@ -4,7 +4,7 @@ Class representing a planar [PrimitiveMesh]. </brief_description> <description> - Class representing a planar [PrimitiveMesh]. This flat mesh does not have a thickness. + Class representing a planar [PrimitiveMesh]. This flat mesh does not have a thickness. By default, this mesh is aligned on the X and Z axes; this default rotation isn't suited for use with billboarded materials. For billboarded materials, use [QuadMesh] instead. </description> <tutorials> </tutorials> @@ -15,10 +15,10 @@ Size of the generated plane. Defaults to (2.0, 2.0). </member> <member name="subdivide_depth" type="int" setter="set_subdivide_depth" getter="get_subdivide_depth"> - Number of subdivision along the z-axis. Defaults to 0. + Number of subdivision along the Z axis. Defaults to 0. </member> <member name="subdivide_width" type="int" setter="set_subdivide_width" getter="get_subdivide_width"> - Number of subdivision along the x-axis. Defaults to 0. + Number of subdivision along the X axis. Defaults to 0. </member> </members> <constants> diff --git a/doc/classes/Polygon2D.xml b/doc/classes/Polygon2D.xml index 7098f5f071..8f434e5499 100644 --- a/doc/classes/Polygon2D.xml +++ b/doc/classes/Polygon2D.xml @@ -109,7 +109,7 @@ <member name="texture_offset" type="Vector2" setter="set_texture_offset" getter="get_texture_offset"> Amount to offset the polygon's [code]texture[/code]. If [code](0, 0)[/code] the texture's origin (its top-left corner) will be placed at the polygon's [code]position[/code]. </member> - <member name="texture_rotation" type="float" setter="set_texture_rotation_degrees" getter="get_texture_rotation_degrees"> + <member name="texture_rotation" type="float" setter="set_texture_rotation" getter="get_texture_rotation"> The texture's rotation in radians. </member> <member name="texture_rotation_degrees" type="float" setter="set_texture_rotation_degrees" getter="get_texture_rotation_degrees"> diff --git a/doc/classes/PoolByteArray.xml b/doc/classes/PoolByteArray.xml index f46cb243d7..cb99b660ae 100644 --- a/doc/classes/PoolByteArray.xml +++ b/doc/classes/PoolByteArray.xml @@ -116,14 +116,14 @@ <return type="String"> </return> <description> - Return SHA256 string of the PoolByteArray. + Returns SHA256 string of the PoolByteArray. </description> </method> <method name="size"> <return type="int"> </return> <description> - Return the size of the array. + Returns the size of the array. </description> </method> <method name="subarray"> diff --git a/doc/classes/PoolColorArray.xml b/doc/classes/PoolColorArray.xml index d16029a8d7..efc3582ba4 100644 --- a/doc/classes/PoolColorArray.xml +++ b/doc/classes/PoolColorArray.xml @@ -82,7 +82,7 @@ <return type="int"> </return> <description> - Return the size of the array. + Returns the size of the array. </description> </method> </methods> diff --git a/doc/classes/PoolIntArray.xml b/doc/classes/PoolIntArray.xml index 83d73c8a24..fca1083c25 100644 --- a/doc/classes/PoolIntArray.xml +++ b/doc/classes/PoolIntArray.xml @@ -82,7 +82,7 @@ <return type="int"> </return> <description> - Return the array size. + Returns the array size. </description> </method> </methods> diff --git a/doc/classes/PoolRealArray.xml b/doc/classes/PoolRealArray.xml index e1da99519c..c5f6062175 100644 --- a/doc/classes/PoolRealArray.xml +++ b/doc/classes/PoolRealArray.xml @@ -82,7 +82,7 @@ <return type="int"> </return> <description> - Return the size of the array. + Returns the size of the array. </description> </method> </methods> diff --git a/doc/classes/PoolStringArray.xml b/doc/classes/PoolStringArray.xml index 6ef4222996..01dca93be3 100644 --- a/doc/classes/PoolStringArray.xml +++ b/doc/classes/PoolStringArray.xml @@ -91,7 +91,7 @@ <return type="int"> </return> <description> - Return the size of the array. + Returns the size of the array. </description> </method> </methods> diff --git a/doc/classes/PoolVector2Array.xml b/doc/classes/PoolVector2Array.xml index 50ded06b90..45f619dc5d 100644 --- a/doc/classes/PoolVector2Array.xml +++ b/doc/classes/PoolVector2Array.xml @@ -82,7 +82,7 @@ <return type="int"> </return> <description> - Return the size of the array. + Returns the size of the array. </description> </method> </methods> diff --git a/doc/classes/PoolVector3Array.xml b/doc/classes/PoolVector3Array.xml index 69b4e54692..0a682e2baf 100644 --- a/doc/classes/PoolVector3Array.xml +++ b/doc/classes/PoolVector3Array.xml @@ -82,7 +82,7 @@ <return type="int"> </return> <description> - Return the size of the array. + Returns the size of the array. </description> </method> </methods> diff --git a/doc/classes/Popup.xml b/doc/classes/Popup.xml index c3256f2f5b..e1b51463b2 100644 --- a/doc/classes/Popup.xml +++ b/doc/classes/Popup.xml @@ -27,6 +27,17 @@ Popup (show the control in modal form) in the center of the screen relative to its current canvas transform, at the current size, or at a size determined by "size". </description> </method> + <method name="popup_centered_clamped"> + <return type="void"> + </return> + <argument index="0" name="size" type="Vector2" default="Vector2( 0, 0 )"> + </argument> + <argument index="1" name="fallback_ratio" type="float" default="0.75"> + </argument> + <description> + Popup (show the control in modal form) in the center of the screen relative to the current canvas transform, clamping the size to [code]size[/code], then ensuring the popup is no larger than the viewport size multiplied by [code]fallback_ratio[/code]. + </description> + </method> <method name="popup_centered_minsize"> <return type="void"> </return> diff --git a/doc/classes/PopupMenu.xml b/doc/classes/PopupMenu.xml index a91f765d41..d6249f73aa 100644 --- a/doc/classes/PopupMenu.xml +++ b/doc/classes/PopupMenu.xml @@ -178,14 +178,14 @@ <argument index="0" name="idx" type="int"> </argument> <description> - Return the accelerator of the item at index "idx". Accelerators are special combinations of keys that activate the item, no matter which control is focused. + Returns the accelerator of the item at index "idx". Accelerators are special combinations of keys that activate the item, no matter which control is focused. </description> </method> <method name="get_item_count" qualifiers="const"> <return type="int"> </return> <description> - Return the amount of items. + Returns the amount of items. </description> </method> <method name="get_item_icon" qualifiers="const"> @@ -194,7 +194,7 @@ <argument index="0" name="idx" type="int"> </argument> <description> - Return the icon of the item at index "idx". + Returns the icon of the item at index "idx". </description> </method> <method name="get_item_id" qualifiers="const"> @@ -203,7 +203,7 @@ <argument index="0" name="idx" type="int"> </argument> <description> - Return the id of the item at index "idx". + Returns the id of the item at index "idx". </description> </method> <method name="get_item_index" qualifiers="const"> @@ -221,7 +221,7 @@ <argument index="0" name="idx" type="int"> </argument> <description> - Return the metadata of an item, which might be of any type. You can set it with [method set_item_metadata], which provides a simple way of assigning context data to items. + Returns the metadata of an item, which might be of any type. You can set it with [method set_item_metadata], which provides a simple way of assigning context data to items. </description> </method> <method name="get_item_shortcut" qualifiers="const"> @@ -238,7 +238,7 @@ <argument index="0" name="idx" type="int"> </argument> <description> - Return the submenu name of the item at index "idx". + Returns the submenu name of the item at index "idx". </description> </method> <method name="get_item_text" qualifiers="const"> @@ -247,7 +247,7 @@ <argument index="0" name="idx" type="int"> </argument> <description> - Return the text of the item at index "idx". + Returns the text of the item at index "idx". </description> </method> <method name="get_item_tooltip" qualifiers="const"> @@ -270,7 +270,7 @@ <argument index="0" name="idx" type="int"> </argument> <description> - Return whether the item at index "idx" is checkable in some way, i.e., whether has a checkbox or radio button. Note that checkable items just display a checkmark or radio button, but don't have any built-in checking behavior and must be checked/unchecked manually. + Returns whether the item at index "idx" is checkable in some way, i.e., whether has a checkbox or radio button. Note that checkable items just display a checkmark or radio button, but don't have any built-in checking behavior and must be checked/unchecked manually. </description> </method> <method name="is_item_checked" qualifiers="const"> @@ -279,7 +279,7 @@ <argument index="0" name="idx" type="int"> </argument> <description> - Return whether the item at index "idx" is checked. + Returns whether the item at index "idx" is checked. </description> </method> <method name="is_item_disabled" qualifiers="const"> @@ -288,7 +288,7 @@ <argument index="0" name="idx" type="int"> </argument> <description> - Return whether the item at index "idx" is disabled. When it is disabled it can't be selected, or its action invoked. + Returns whether the item at index "idx" is disabled. When it is disabled it can't be selected, or its action invoked. </description> </method> <method name="is_item_radio_checkable" qualifiers="const"> @@ -297,7 +297,7 @@ <argument index="0" name="idx" type="int"> </argument> <description> - Return whether the item at index "idx" has radio-button-style checkability. Remember this is just cosmetic and you have to add the logic for checking/unchecking items in radio groups. + Returns whether the item at index "idx" has radio-button-style checkability. Remember this is just cosmetic and you have to add the logic for checking/unchecking items in radio groups. </description> </method> <method name="is_item_separator" qualifiers="const"> @@ -306,7 +306,7 @@ <argument index="0" name="idx" type="int"> </argument> <description> - Return whether the item is a separator. If it is, it would be displayed as a line. + Returns whether the item is a separator. If it is, it would be displayed as a line. </description> </method> <method name="is_item_shortcut_disabled" qualifiers="const"> @@ -515,6 +515,9 @@ </method> </methods> <members> + <member name="allow_search" type="bool" setter="set_allow_search" getter="get_allow_search"> + If [code]true[/code], allows to navigate [PopupMenu] with letter keys. Default value: [code]false[/code]. + </member> <member name="hide_on_checkable_item_selection" type="bool" setter="set_hide_on_checkable_item_selection" getter="is_hide_on_checkable_item_selection"> </member> <member name="hide_on_item_selection" type="bool" setter="set_hide_on_item_selection" getter="is_hide_on_item_selection"> diff --git a/doc/classes/Position2D.xml b/doc/classes/Position2D.xml index 034e35d9d7..916bd99131 100644 --- a/doc/classes/Position2D.xml +++ b/doc/classes/Position2D.xml @@ -4,7 +4,7 @@ Generic 2D Position hint for editing. </brief_description> <description> - Generic 2D Position hint for editing. It's just like a plain [Node2D] but displays as a cross in the 2D-Editor at all times. + Generic 2D Position hint for editing. It's just like a plain [Node2D] but displays as a cross in the 2D-Editor at all times. You can set visual size of the cross by changing Gizmo Extents in the inspector. </description> <tutorials> </tutorials> diff --git a/doc/classes/PrimitiveMesh.xml b/doc/classes/PrimitiveMesh.xml index c9c3643edb..2214357308 100644 --- a/doc/classes/PrimitiveMesh.xml +++ b/doc/classes/PrimitiveMesh.xml @@ -4,7 +4,7 @@ Base class for all primitive meshes. Handles applying a [Material] to a primitive mesh. </brief_description> <description> - Base class for all primitive meshes. Handles applying a [Material] to a primitive mesh. + Base class for all primitive meshes. Handles applying a [Material] to a primitive mesh. Examples include [CapsuleMesh], [CubeMesh], [CylinderMesh], [PlaneMesh], [PrismMesh], [QuadMesh], and [SphereMesh]. </description> <tutorials> </tutorials> @@ -13,13 +13,16 @@ <return type="Array"> </return> <description> + Returns mesh arrays used to constitute surface of [Mesh]. Mesh array can be used with [ArrayMesh] to create new surface. </description> </method> </methods> <members> <member name="custom_aabb" type="AABB" setter="set_custom_aabb" getter="get_custom_aabb"> + Overrides the [AABB] with one defined by user for use with frustum culling. Especially useful to avoid unnexpected culling when using a shader to offset vertices. </member> <member name="flip_faces" type="bool" setter="set_flip_faces" getter="get_flip_faces"> + If set, the order of the vertices in each triangle are reversed resulting in the backside of the mesh being drawn. Result is the same as using *CULL_BACK* in [SpatialMaterial]. Default is false. </member> <member name="material" type="Material" setter="set_material" getter="get_material"> The current [Material] of the primitive mesh. diff --git a/doc/classes/PrismMesh.xml b/doc/classes/PrismMesh.xml index 4c282c5e8d..62f1278bba 100644 --- a/doc/classes/PrismMesh.xml +++ b/doc/classes/PrismMesh.xml @@ -12,19 +12,19 @@ </methods> <members> <member name="left_to_right" type="float" setter="set_left_to_right" getter="get_left_to_right"> - Displacement of the upper edge along the x-axis. 0.0 positions edge straight above the bottom left edge. Defaults to 0.5 (positioned on the midpoint). + Displacement of the upper edge along the X axis. 0.0 positions edge straight above the bottom-left edge. Defaults to 0.5 (positioned on the midpoint). </member> <member name="size" type="Vector3" setter="set_size" getter="get_size"> Size of the prism. Defaults to (2.0, 2.0, 2.0). </member> <member name="subdivide_depth" type="int" setter="set_subdivide_depth" getter="get_subdivide_depth"> - Number of added edge loops along the z-axis. Defaults to 0. + Number of added edge loops along the Z axis. Defaults to 0. </member> <member name="subdivide_height" type="int" setter="set_subdivide_height" getter="get_subdivide_height"> - Number of added edge loops along the y-axis. Defaults to 0. + Number of added edge loops along the Y axis. Defaults to 0. </member> <member name="subdivide_width" type="int" setter="set_subdivide_width" getter="get_subdivide_width"> - Number of added edge loops along the x-axis. Defaults to 0. + Number of added edge loops along the X axis. Defaults to 0. </member> </members> <constants> diff --git a/doc/classes/ProjectSettings.xml b/doc/classes/ProjectSettings.xml index 4b5500d077..316f948778 100644 --- a/doc/classes/ProjectSettings.xml +++ b/doc/classes/ProjectSettings.xml @@ -173,6 +173,9 @@ <member name="application/boot_splash/image" type="String" setter="" getter=""> Path to an image used as the boot splash. </member> + <member name="application/boot_splash/use_filter" type="bool" setter="" getter=""> + If [code]true[/code], applies linear filtering when scaling the image (recommended for high resolution artwork). If [code]false[/code], uses nearest-neighbor interpolation (recommended for pixel art). + </member> <member name="application/config/custom_user_dir_name" type="String" setter="" getter=""> This user directory is used for storing persistent data ([code]user://[/code] filesystem). If left empty, [code]user://[/code] resolves to a project-specific folder in Godot's own configuration folder (see [method OS.get_user_data_dir]). If a custom directory name is defined, this name will be used instead and appended to the system-specific user data directory (same parent folder as the Godot configuration folder documented in [method OS.get_user_data_dir]). The [member application/config/use_custom_user_dir] setting must be enabled for this to take effect. @@ -180,6 +183,8 @@ <member name="application/config/icon" type="String" setter="" getter=""> Icon used for the project, set when project loads. Exporters will also use this icon when possible. </member> + <member name="application/config/macos_native_icon" type="String" setter="" getter=""> + </member> <member name="application/config/name" type="String" setter="" getter=""> The project's name. It is used both by the Project Manager and by exporters. The project name can be translated by translating its value in localization files. </member> @@ -189,6 +194,8 @@ <member name="application/config/use_custom_user_dir" type="bool" setter="" getter=""> 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]. </member> + <member name="application/config/windows_native_icon" type="String" setter="" getter=""> + </member> <member name="application/run/disable_stderr" type="bool" setter="" getter=""> If [code]true[/code], disables printing to standard error in an exported build. </member> @@ -370,11 +377,10 @@ Default orientation on mobile devices. </member> <member name="display/window/per_pixel_transparency/allowed" type="bool" setter="" getter=""> - If [code]true[/code], allows per-pixel transparency in a desktop window. This affects performance if not needed, so leave it on [code]false[/code] unless you need it. + If [code]true[/code], allows per-pixel transparency in a desktop window. This affects performance, so leave it on [code]false[/code] unless you need it. </member> <member name="display/window/per_pixel_transparency/enabled" type="bool" setter="" getter=""> - </member> - <member name="display/window/per_pixel_transparency/splash" type="bool" setter="" getter=""> + Set the window background to transparent when it starts. </member> <member name="display/window/size/always_on_top" type="bool" setter="" getter=""> Force the window to be always on top. @@ -406,6 +412,8 @@ <member name="editor/active" type="bool" setter="" getter=""> Internal editor setting, don't touch. </member> + <member name="editor/search_in_file_extensions" type="PoolStringArray" setter="" getter=""> + </member> <member name="gui/common/default_scroll_deadzone" type="int" setter="" getter=""> </member> <member name="gui/common/swap_ok_cancel" type="bool" setter="" getter=""> @@ -717,7 +725,7 @@ Shaders have a time variable that constantly increases. At some point, it needs to be rolled back to zero to avoid precision errors on shader animations. This setting specifies when (in seconds). </member> <member name="rendering/quality/2d/gles2_use_nvidia_rect_flicker_workaround" type="bool" setter="" getter=""> - Some NVIDIA GPU drivers have a bug which produces flickering issues for the [code]draw_rect[/code] method, especially as used in [TileMap]. Refer to [url=https://github.com/godotengine/godot/issues/9913][/url] for details. + Some NVIDIA GPU drivers have a bug which produces flickering issues for the [code]draw_rect[/code] method, especially as used in [TileMap]. Refer to [url=https://github.com/godotengine/godot/issues/9913]GitHub issue 9913[/url] for details. If [code]true[/code], this option enables a "safe" code path for such NVIDIA GPUs at the cost of performance. This option only impacts the GLES2 rendering backend (so the bug stays if you use GLES3), and only desktop platforms. </member> <member name="rendering/quality/2d/use_pixel_snap" type="bool" setter="" getter=""> diff --git a/doc/classes/QuadMesh.xml b/doc/classes/QuadMesh.xml index 1b33f62e0f..cf7e56f895 100644 --- a/doc/classes/QuadMesh.xml +++ b/doc/classes/QuadMesh.xml @@ -4,7 +4,7 @@ Class representing a square mesh. </brief_description> <description> - Class representing a square mesh with size (2,2,0). Consider using a [PlaneMesh] if you require a differently sized plane. + Class representing a square [PrimitiveMesh]. This flat mesh does not have a thickness. By default, this mesh is aligned on the X and Y axes; this default rotation is more suited for use with billboarded materials. Unlike [PlaneMesh], this mesh doesn't provide subdivision options. </description> <tutorials> </tutorials> @@ -12,6 +12,7 @@ </methods> <members> <member name="size" type="Vector2" setter="set_size" getter="get_size"> + Size in the X and Y axes. Default is [code]Vector2(1, 1)[/code]. </member> </members> <constants> diff --git a/doc/classes/Quat.xml b/doc/classes/Quat.xml index f7134e580d..3ef65e1edb 100644 --- a/doc/classes/Quat.xml +++ b/doc/classes/Quat.xml @@ -84,7 +84,7 @@ <return type="Vector3"> </return> <description> - Return Euler angles (in the YXZ convention: first Z, then X, and Y last) corresponding to the rotation represented by the unit quaternion. Returned vector contains the rotation angles in the format (X-angle, Y-angle, Z-angle). + Returns Euler angles (in the YXZ convention: first Z, then X, and Y last) corresponding to the rotation represented by the unit quaternion. Returned vector contains the rotation angles in the format (X-angle, Y-angle, Z-angle). </description> </method> <method name="inverse"> diff --git a/doc/classes/RayCast.xml b/doc/classes/RayCast.xml index 1d2999a1ed..1368143b67 100644 --- a/doc/classes/RayCast.xml +++ b/doc/classes/RayCast.xml @@ -50,7 +50,7 @@ <return type="Object"> </return> <description> - Return the first object that the ray intersects, or [code]null[/code] if no object is intersecting the ray (i.e. [method is_colliding] returns [code]false[/code]). + Returns the first object that the ray intersects, or [code]null[/code] if no object is intersecting the ray (i.e. [method is_colliding] returns [code]false[/code]). </description> </method> <method name="get_collider_shape" qualifiers="const"> @@ -87,7 +87,7 @@ <return type="bool"> </return> <description> - Return whether any object is intersecting with the ray's vector (considering the vector length). + Returns whether any object is intersecting with the ray's vector (considering the vector length). </description> </method> <method name="remove_exception"> diff --git a/doc/classes/RayCast2D.xml b/doc/classes/RayCast2D.xml index 7a16e9e5e0..90e0178ddb 100644 --- a/doc/classes/RayCast2D.xml +++ b/doc/classes/RayCast2D.xml @@ -49,7 +49,7 @@ <return type="Object"> </return> <description> - Return the first object that the ray intersects, or [code]null[/code] if no object is intersecting the ray (i.e. [method is_colliding] returns [code]false[/code]). + Returns the first object that the ray intersects, or [code]null[/code] if no object is intersecting the ray (i.e. [method is_colliding] returns [code]false[/code]). </description> </method> <method name="get_collider_shape" qualifiers="const"> @@ -65,7 +65,7 @@ <argument index="0" name="bit" type="int"> </argument> <description> - Return an individual bit on the collision mask. + Returns an individual bit on the collision mask. </description> </method> <method name="get_collision_normal" qualifiers="const"> @@ -86,7 +86,7 @@ <return type="bool"> </return> <description> - Return whether any object is intersecting with the ray's vector (considering the vector length). + Returns whether any object is intersecting with the ray's vector (considering the vector length). </description> </method> <method name="remove_exception"> diff --git a/doc/classes/Resource.xml b/doc/classes/Resource.xml index 8b6fb549aa..acd608de6a 100644 --- a/doc/classes/Resource.xml +++ b/doc/classes/Resource.xml @@ -4,16 +4,17 @@ Base class for all resources. </brief_description> <description> - Resource is the base class for all resource types, serving primarily as data containers. They are reference counted and freed when no longer in use. They are also loaded only once from disk, and further attempts to load the resource will return the same reference (all this in contrast to a [Node], which is not reference counted and can be instanced from disk as many times as desired). Resources can be saved externally on disk or bundled into another object, such as a [Node] or another resource. + Resource is the base class for all Godot-specific resource types, serving primarily as data containers. They are reference counted and freed when no longer in use. They are also cached once loaded from disk, so that any further attempts to load a resource from a given path will return the same reference (all this in contrast to a [Node], which is not reference counted and can be instanced from disk as many times as desired). Resources can be saved externally on disk or bundled into another object, such as a [Node] or another resource. </description> <tutorials> - <link>https://docs.godotengine.org/en/stable/getting_started/step_by_step/resources.html</link> + <link>https://docs.godotengine.org/en/latest/getting_started/step_by_step/resources.html</link> </tutorials> <methods> <method name="_setup_local_to_scene" qualifiers="virtual"> <return type="void"> </return> <description> + Virtual function which can be overridden to customize the behavior value of [method setup_local_to_scene]. </description> </method> <method name="duplicate" qualifiers="const"> @@ -29,6 +30,7 @@ <return type="Node"> </return> <description> + If [member resource_local_to_scene] is enabled and the resource was loaded from a [PackedScene] instantiation, returns the local scene where this resource's unique copy is in use. Otherwise, returns [code]null[/code]. </description> </method> <method name="get_rid" qualifiers="const"> @@ -42,6 +44,8 @@ <return type="void"> </return> <description> + This method is called when a resource with [member resource_local_to_scene] enabled is loaded from a [PackedScene] instantiation. Its behavior can be customized by overriding [method _setup_local_to_scene] from script. + For most resources, this method performs no base logic. [ViewportTexture] performs custom logic to properly set the proxy texture and flags in the local viewport. </description> </method> <method name="take_over_path"> @@ -50,12 +54,13 @@ <argument index="0" name="path" type="String"> </argument> <description> - Sets the path of the resource. Differs from [code]set_path()[/code], if another [Resource] exists with "path" it over-takes it, instead of failing. + Sets the path of the resource, potentially overriding an existing cache entry for this path. This differs from setting [member resource_path], as the latter would error out if another resource was already cached for the given path. </description> </method> </methods> <members> <member name="resource_local_to_scene" type="bool" setter="set_local_to_scene" getter="is_local_to_scene"> + If [code]true[/code], the resource will be made unique in each instance of its local scene. It can thus be modified in a scene instance without impacting other instances of that same scene. </member> <member name="resource_name" type="String" setter="set_name" getter="get_name"> The name of the resource. This is an optional identifier. diff --git a/doc/classes/ResourceFormatDDS.xml b/doc/classes/ResourceFormatDDS.xml deleted file mode 100644 index 9717052a5d..0000000000 --- a/doc/classes/ResourceFormatDDS.xml +++ /dev/null @@ -1,13 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" ?> -<class name="ResourceFormatDDS" inherits="ResourceFormatLoader" category="Core" version="3.2"> - <brief_description> - </brief_description> - <description> - </description> - <tutorials> - </tutorials> - <methods> - </methods> - <constants> - </constants> -</class> diff --git a/doc/classes/ResourceFormatImporter.xml b/doc/classes/ResourceFormatImporter.xml deleted file mode 100644 index e5c84e6db4..0000000000 --- a/doc/classes/ResourceFormatImporter.xml +++ /dev/null @@ -1,13 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" ?> -<class name="ResourceFormatImporter" inherits="ResourceFormatLoader" category="Core" version="3.2"> - <brief_description> - </brief_description> - <description> - </description> - <tutorials> - </tutorials> - <methods> - </methods> - <constants> - </constants> -</class> diff --git a/doc/classes/ResourceFormatLoader.xml b/doc/classes/ResourceFormatLoader.xml index 925706b50c..f62191413a 100644 --- a/doc/classes/ResourceFormatLoader.xml +++ b/doc/classes/ResourceFormatLoader.xml @@ -4,9 +4,9 @@ Loads a specific resource type from a file. </brief_description> <description> - Godot loads resources in the editor or in exported games using ResourceFormatLoaders. They get queried when you call [code]load[/code], or when a resource with internal dependencies is loaded. Each file type may load as a different resource type, so multiple ResourceFormatLoader are registered in the engine. - Extending this class allows you to define your own. You should give it a global class name with [code]class_name[/code] for it to be registered. You may as well implement a [ResourceFormatSaver]. - Note: You can also extend [EditorImportPlugin] if the resource type you need exists but Godot is unable to load its format. Choosing one way over another depends if the format is suitable or not for the final exported game. Example: it's better to import .PNG textures as .STEX first, so they can be loaded with better efficiency on the graphics card. + Godot loads resources in the editor or in exported games using ResourceFormatLoaders. They are queried automatically via the [ResourceLoader] singleton, or when a resource with internal dependencies is loaded. Each file type may load as a different resource type, so multiple ResourceFormatLoaders are registered in the engine. + Extending this class allows you to define your own loader. Be sure to respect the documented return types and values. You should give it a global class name with [code]class_name[/code] for it to be registered. Like built-in ResourceFormatLoaders, it will be called automatically when loading resources of its handled type(s). You may also implement a [ResourceFormatSaver]. + Note: You can also extend [EditorImportPlugin] if the resource type you need exists but Godot is unable to load its format. Choosing one way over another depends if the format is suitable or not for the final exported game. For example, it's better to import [code].png[/code] textures as [code].stex[/code] ([StreamTexture]) first, so they can be loaded with better efficiency on the graphics card. </description> <tutorials> </tutorials> @@ -19,7 +19,7 @@ <argument index="1" name="add_types" type="String"> </argument> <description> - If implemented, gets the dependencies of a given resource. If [code]add_types[/code] is [code]true[/code], paths should be appended [code]::TypeName[/code], where [code]TypeName[/code] is the class name of the dependency. Note that custom resource types defined by scripts aren't known by the [ClassDB], so you might just return [code]Resource[/code] for them. + If implemented, gets the dependencies of a given resource. If [code]add_types[/code] is [code]true[/code], paths should be appended [code]::TypeName[/code], where [code]TypeName[/code] is the class name of the dependency. Note that custom resource types defined by scripts aren't known by the [ClassDB], so you might just return [code]"Resource"[/code] for them. </description> </method> <method name="get_recognized_extensions" qualifiers="virtual"> @@ -55,7 +55,7 @@ <argument index="1" name="original_path" type="String"> </argument> <description> - Loads a resource when the engine finds this loader to be compatible. If the loaded resource is the result of an import, [code]original_path[/code] will target the source file. Returns a resource object if succeeded, or an [code]ERR_*[/code] constant listed in [@GlobalScope] if it failed. + Loads a resource when the engine finds this loader to be compatible. If the loaded resource is the result of an import, [code]original_path[/code] will target the source file. Returns a [Resource] object on success, or an [enum @GlobalScope.Error] constant in case of failure. </description> </method> <method name="rename_dependencies" qualifiers="virtual"> @@ -66,7 +66,8 @@ <argument index="1" name="renames" type="String"> </argument> <description> - If implemented, renames dependencies within the given resource and saves it. [code]renames[/code] is a dictionary [code]{ String => String }[/code] mapping old dependency paths to new paths. Returns [code]OK[/code] on success, or an [code]ERR_*[/code] constant listed in [@GlobalScope] in case of failure. + If implemented, renames dependencies within the given resource and saves it. [code]renames[/code] is a dictionary [code]{ String => String }[/code] mapping old dependency paths to new paths. + Returns [constant @GlobalScope.OK] on success, or an [enum @GlobalScope.Error] constant in case of failure. </description> </method> </methods> diff --git a/doc/classes/ResourceFormatLoaderBMFont.xml b/doc/classes/ResourceFormatLoaderBMFont.xml deleted file mode 100644 index f5b26a6ff7..0000000000 --- a/doc/classes/ResourceFormatLoaderBMFont.xml +++ /dev/null @@ -1,13 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" ?> -<class name="ResourceFormatLoaderBMFont" inherits="ResourceFormatLoader" category="Core" version="3.2"> - <brief_description> - </brief_description> - <description> - </description> - <tutorials> - </tutorials> - <methods> - </methods> - <constants> - </constants> -</class> diff --git a/doc/classes/ResourceFormatLoaderBinary.xml b/doc/classes/ResourceFormatLoaderBinary.xml deleted file mode 100644 index cf4a2373dc..0000000000 --- a/doc/classes/ResourceFormatLoaderBinary.xml +++ /dev/null @@ -1,13 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" ?> -<class name="ResourceFormatLoaderBinary" inherits="ResourceFormatLoader" category="Core" version="3.2"> - <brief_description> - </brief_description> - <description> - </description> - <tutorials> - </tutorials> - <methods> - </methods> - <constants> - </constants> -</class> diff --git a/doc/classes/ResourceFormatLoaderDynamicFont.xml b/doc/classes/ResourceFormatLoaderDynamicFont.xml deleted file mode 100644 index af06ea0d8d..0000000000 --- a/doc/classes/ResourceFormatLoaderDynamicFont.xml +++ /dev/null @@ -1,13 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" ?> -<class name="ResourceFormatLoaderDynamicFont" inherits="ResourceFormatLoader" category="Core" version="3.2"> - <brief_description> - </brief_description> - <description> - </description> - <tutorials> - </tutorials> - <methods> - </methods> - <constants> - </constants> -</class> diff --git a/doc/classes/ResourceFormatLoaderGDScript.xml b/doc/classes/ResourceFormatLoaderGDScript.xml deleted file mode 100644 index 5bb9127978..0000000000 --- a/doc/classes/ResourceFormatLoaderGDScript.xml +++ /dev/null @@ -1,13 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" ?> -<class name="ResourceFormatLoaderGDScript" inherits="ResourceFormatLoader" category="Core" version="3.2"> - <brief_description> - </brief_description> - <description> - </description> - <tutorials> - </tutorials> - <methods> - </methods> - <constants> - </constants> -</class> diff --git a/doc/classes/ResourceFormatLoaderImage.xml b/doc/classes/ResourceFormatLoaderImage.xml deleted file mode 100644 index de53d2c076..0000000000 --- a/doc/classes/ResourceFormatLoaderImage.xml +++ /dev/null @@ -1,13 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" ?> -<class name="ResourceFormatLoaderImage" inherits="ResourceFormatLoader" category="Core" version="3.2"> - <brief_description> - </brief_description> - <description> - </description> - <tutorials> - </tutorials> - <methods> - </methods> - <constants> - </constants> -</class> diff --git a/doc/classes/ResourceFormatLoaderNativeScript.xml b/doc/classes/ResourceFormatLoaderNativeScript.xml deleted file mode 100644 index 7355f702b9..0000000000 --- a/doc/classes/ResourceFormatLoaderNativeScript.xml +++ /dev/null @@ -1,13 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" ?> -<class name="ResourceFormatLoaderNativeScript" inherits="ResourceFormatLoader" category="Core" version="3.2"> - <brief_description> - </brief_description> - <description> - </description> - <tutorials> - </tutorials> - <methods> - </methods> - <constants> - </constants> -</class> diff --git a/doc/classes/ResourceFormatLoaderShader.xml b/doc/classes/ResourceFormatLoaderShader.xml deleted file mode 100644 index 1bef7485fb..0000000000 --- a/doc/classes/ResourceFormatLoaderShader.xml +++ /dev/null @@ -1,13 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" ?> -<class name="ResourceFormatLoaderShader" inherits="ResourceFormatLoader" category="Core" version="3.2"> - <brief_description> - </brief_description> - <description> - </description> - <tutorials> - </tutorials> - <methods> - </methods> - <constants> - </constants> -</class> diff --git a/doc/classes/ResourceFormatLoaderStreamTexture.xml b/doc/classes/ResourceFormatLoaderStreamTexture.xml deleted file mode 100644 index 4bdc74acbc..0000000000 --- a/doc/classes/ResourceFormatLoaderStreamTexture.xml +++ /dev/null @@ -1,13 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" ?> -<class name="ResourceFormatLoaderStreamTexture" inherits="ResourceFormatLoader" category="Core" version="3.2"> - <brief_description> - </brief_description> - <description> - </description> - <tutorials> - </tutorials> - <methods> - </methods> - <constants> - </constants> -</class> diff --git a/doc/classes/ResourceFormatLoaderText.xml b/doc/classes/ResourceFormatLoaderText.xml deleted file mode 100644 index 92ad3179bf..0000000000 --- a/doc/classes/ResourceFormatLoaderText.xml +++ /dev/null @@ -1,13 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" ?> -<class name="ResourceFormatLoaderText" inherits="ResourceFormatLoader" category="Core" version="3.2"> - <brief_description> - </brief_description> - <description> - </description> - <tutorials> - </tutorials> - <methods> - </methods> - <constants> - </constants> -</class> diff --git a/doc/classes/ResourceFormatLoaderTextureLayered.xml b/doc/classes/ResourceFormatLoaderTextureLayered.xml deleted file mode 100644 index 69c3eedf63..0000000000 --- a/doc/classes/ResourceFormatLoaderTextureLayered.xml +++ /dev/null @@ -1,13 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" ?> -<class name="ResourceFormatLoaderTextureLayered" inherits="ResourceFormatLoader" category="Core" version="3.2"> - <brief_description> - </brief_description> - <description> - </description> - <tutorials> - </tutorials> - <methods> - </methods> - <constants> - </constants> -</class> diff --git a/doc/classes/ResourceFormatLoaderTheora.xml b/doc/classes/ResourceFormatLoaderTheora.xml deleted file mode 100644 index 1b5e30f09c..0000000000 --- a/doc/classes/ResourceFormatLoaderTheora.xml +++ /dev/null @@ -1,13 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" ?> -<class name="ResourceFormatLoaderTheora" inherits="ResourceFormatLoader" category="Core" version="3.2"> - <brief_description> - </brief_description> - <description> - </description> - <tutorials> - </tutorials> - <methods> - </methods> - <constants> - </constants> -</class> diff --git a/doc/classes/ResourceFormatLoaderWebm.xml b/doc/classes/ResourceFormatLoaderWebm.xml deleted file mode 100644 index a45e5d488d..0000000000 --- a/doc/classes/ResourceFormatLoaderWebm.xml +++ /dev/null @@ -1,13 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" ?> -<class name="ResourceFormatLoaderWebm" inherits="ResourceFormatLoader" category="Core" version="3.2"> - <brief_description> - </brief_description> - <description> - </description> - <tutorials> - </tutorials> - <methods> - </methods> - <constants> - </constants> -</class> diff --git a/doc/classes/ResourceFormatPVR.xml b/doc/classes/ResourceFormatPVR.xml deleted file mode 100644 index d82f48f207..0000000000 --- a/doc/classes/ResourceFormatPVR.xml +++ /dev/null @@ -1,13 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" ?> -<class name="ResourceFormatPVR" inherits="ResourceFormatLoader" category="Core" version="3.2"> - <brief_description> - </brief_description> - <description> - </description> - <tutorials> - </tutorials> - <methods> - </methods> - <constants> - </constants> -</class> diff --git a/doc/classes/ResourceFormatSaver.xml b/doc/classes/ResourceFormatSaver.xml index caa05dce26..c40f614aa2 100644 --- a/doc/classes/ResourceFormatSaver.xml +++ b/doc/classes/ResourceFormatSaver.xml @@ -4,8 +4,8 @@ Saves a specific resource type to a file. </brief_description> <description> - The engine can save resources when you do it from the editor, or when you call [method ResourceSaver.save]. This is accomplished with multiple [ResourceFormatSaver]s, each handling its own format. - By default, Godot saves resources as [code].tres[/code], [code].res[/code] or another built-in format, but you can choose to create your own format by extending this class. You should give it a global class name with [code]class_name[/code] for it to be registered. You may as well implement a [ResourceFormatLoader]. + The engine can save resources when you do it from the editor, or when you use the [ResourceSaver] singleton. This is accomplished thanks to multiple [ResourceFormatSaver]s, each handling its own format and called automatically by the engine. + By default, Godot saves resources as [code].tres[/code] (text-based), [code].res[/code] (binary) or another built-in format, but you can choose to create your own format by extending this class. Be sure to respect the documented return types and values. You should give it a global class name with [code]class_name[/code] for it to be registered. Like built-in ResourceFormatSavers, it will be called automatically when saving resources of its recognized type(s). You may also implement a [ResourceFormatLoader]. </description> <tutorials> </tutorials> @@ -16,7 +16,7 @@ <argument index="0" name="resource" type="Resource"> </argument> <description> - Gets the list of extensions for files this saver is able to write. + Returns the list of extensions available for saving the resource object, provided it is recognized (see [method recognize]). </description> </method> <method name="recognize" qualifiers="virtual"> @@ -25,7 +25,7 @@ <argument index="0" name="resource" type="Resource"> </argument> <description> - Returns [code]true[/code] if the given resource object can be saved by this saver. + Returns whether the given resource object can be saved by this saver. </description> </method> <method name="save" qualifiers="virtual"> @@ -38,7 +38,8 @@ <argument index="2" name="flags" type="int"> </argument> <description> - Saves the given resource object to a file. [code]flags[/code] is a bitmask composed with [code]FLAG_*[/code] constants defined in [ResourceSaver]. Returns [code]OK[/code] on success, or an [code]ERR_*[/code] constant listed in [@GlobalScope] if it failed. + Saves the given resource object to a file at the target [code]path[/code]. [code]flags[/code] is a bitmask composed with [enum ResourceSaver.SaverFlags] constants. + Returns [constant @GlobalScope.OK] on success, or an [enum @GlobalScope.Error] constant in case of failure. </description> </method> </methods> diff --git a/doc/classes/ResourceFormatSaverBinary.xml b/doc/classes/ResourceFormatSaverBinary.xml deleted file mode 100644 index 32c286d0d9..0000000000 --- a/doc/classes/ResourceFormatSaverBinary.xml +++ /dev/null @@ -1,13 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" ?> -<class name="ResourceFormatSaverBinary" inherits="ResourceFormatSaver" category="Core" version="3.2"> - <brief_description> - </brief_description> - <description> - </description> - <tutorials> - </tutorials> - <methods> - </methods> - <constants> - </constants> -</class> diff --git a/doc/classes/ResourceFormatSaverGDScript.xml b/doc/classes/ResourceFormatSaverGDScript.xml deleted file mode 100644 index 0fe65e28b0..0000000000 --- a/doc/classes/ResourceFormatSaverGDScript.xml +++ /dev/null @@ -1,13 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" ?> -<class name="ResourceFormatSaverGDScript" inherits="ResourceFormatSaver" category="Core" version="3.2"> - <brief_description> - </brief_description> - <description> - </description> - <tutorials> - </tutorials> - <methods> - </methods> - <constants> - </constants> -</class> diff --git a/doc/classes/ResourceFormatSaverNativeScript.xml b/doc/classes/ResourceFormatSaverNativeScript.xml deleted file mode 100644 index 7a699a2cca..0000000000 --- a/doc/classes/ResourceFormatSaverNativeScript.xml +++ /dev/null @@ -1,13 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" ?> -<class name="ResourceFormatSaverNativeScript" inherits="ResourceFormatSaver" category="Core" version="3.2"> - <brief_description> - </brief_description> - <description> - </description> - <tutorials> - </tutorials> - <methods> - </methods> - <constants> - </constants> -</class> diff --git a/doc/classes/ResourceFormatSaverShader.xml b/doc/classes/ResourceFormatSaverShader.xml deleted file mode 100644 index 65ddee42fd..0000000000 --- a/doc/classes/ResourceFormatSaverShader.xml +++ /dev/null @@ -1,13 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" ?> -<class name="ResourceFormatSaverShader" inherits="ResourceFormatSaver" category="Core" version="3.2"> - <brief_description> - </brief_description> - <description> - </description> - <tutorials> - </tutorials> - <methods> - </methods> - <constants> - </constants> -</class> diff --git a/doc/classes/ResourceFormatSaverText.xml b/doc/classes/ResourceFormatSaverText.xml deleted file mode 100644 index 921de81031..0000000000 --- a/doc/classes/ResourceFormatSaverText.xml +++ /dev/null @@ -1,13 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" ?> -<class name="ResourceFormatSaverText" inherits="ResourceFormatSaver" category="Core" version="3.2"> - <brief_description> - </brief_description> - <description> - </description> - <tutorials> - </tutorials> - <methods> - </methods> - <constants> - </constants> -</class> diff --git a/doc/classes/ResourceImporter.xml b/doc/classes/ResourceImporter.xml deleted file mode 100644 index e0c0aa9a47..0000000000 --- a/doc/classes/ResourceImporter.xml +++ /dev/null @@ -1,13 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" ?> -<class name="ResourceImporter" inherits="Reference" category="Core" version="3.2"> - <brief_description> - </brief_description> - <description> - </description> - <tutorials> - </tutorials> - <methods> - </methods> - <constants> - </constants> -</class> diff --git a/doc/classes/ResourceInteractiveLoader.xml b/doc/classes/ResourceInteractiveLoader.xml index 6b37cb25fb..9d5a52deb2 100644 --- a/doc/classes/ResourceInteractiveLoader.xml +++ b/doc/classes/ResourceInteractiveLoader.xml @@ -1,10 +1,10 @@ <?xml version="1.0" encoding="UTF-8" ?> <class name="ResourceInteractiveLoader" inherits="Reference" category="Core" version="3.2"> <brief_description> - Interactive Resource Loader. + Interactive [Resource] loader. </brief_description> <description> - Interactive Resource Loader. This object is returned by ResourceLoader when performing an interactive load. It allows to load with high granularity, so this is mainly useful for displaying load bars/percentages. + Interactive [Resource] loader. This object is returned by [ResourceLoader] when performing an interactive load. It allows to load with high granularity, so this is mainly useful for displaying loading bars/percentages. </description> <tutorials> </tutorials> @@ -13,34 +13,40 @@ <return type="Resource"> </return> <description> - Return the loaded resource (only if loaded). Otherwise, returns null. + Returns the loaded resource if the load operation completed successfully, [code]null[/code] otherwise. </description> </method> <method name="get_stage" qualifiers="const"> <return type="int"> </return> <description> - Return the load stage. The total amount of stages can be queried with [method get_stage_count] + Returns the load stage. The total amount of stages can be queried with [method get_stage_count]. </description> </method> <method name="get_stage_count" qualifiers="const"> <return type="int"> </return> <description> - Return the total amount of stages (calls to [method poll]) needed to completely load this resource. + Returns the total amount of stages (calls to [method poll]) needed to completely load this resource. </description> </method> <method name="poll"> <return type="int" enum="Error"> </return> <description> - Poll the load. If OK is returned, this means poll will have to be called again. If ERR_FILE_EOF is returned, them the load has finished and the resource can be obtained by calling [method get_resource]. + Polls the loading operation, i.e. loads a data chunk up to the next stage. + Returns [constant @GlobalScope.OK] if the poll is successful but the load operation has not finished yet (intermediate stage). This means [method poll] will have to be called again until the last stage is completed. + Returns [constant @GlobalScope.ERR_FILE_EOF] if the load operation has completed successfully. The loaded resource can be obtained by calling [method get_resource]. + Returns another [enum @GlobalScope.Error] code if the poll has failed. </description> </method> <method name="wait"> <return type="int" enum="Error"> </return> <description> + Polls the loading operation successively until the resource is completely loaded or a [method poll] fails. + Returns [constant @GlobalScope.ERR_FILE_EOF] if the load operation has completed successfully. The loaded resource can be obtained by calling [method get_resource]. + Returns another [enum @GlobalScope.Error] code if a poll has failed, aborting the operation. </description> </method> </methods> diff --git a/doc/classes/ResourceLoader.xml b/doc/classes/ResourceLoader.xml index 70deb4509f..558852704e 100644 --- a/doc/classes/ResourceLoader.xml +++ b/doc/classes/ResourceLoader.xml @@ -1,10 +1,12 @@ <?xml version="1.0" encoding="UTF-8" ?> <class name="ResourceLoader" inherits="Object" category="Core" version="3.2"> <brief_description> - Resource Loader. + Singleton used to load resource files. </brief_description> <description> - Resource Loader. This is a static object accessible as [ResourceLoader]. GDScript has a simplified load() function, though. + Singleton used to load resource files from the filesystem. + It uses the many [ResourceFormatLoader] classes registered in the engine (either built-in or from a plugin) to load files into memory and convert them to a format that can be used by the engine. + GDScript has a simplified [method @GDScript.load] built-in method which can be used in most situations, leaving the use of [ResourceLoader] for more advanced scenarios. </description> <tutorials> </tutorials> @@ -17,6 +19,8 @@ <argument index="1" name="type_hint" type="String" default=""""> </argument> <description> + Returns whether a recognized resource exists for the given [code]path[/code]. + An optional [code]type_hint[/code] can be used to further specify the [Resource] type that should be handled by the [ResourceFormatLoader]. </description> </method> <method name="get_dependencies"> @@ -25,6 +29,7 @@ <argument index="0" name="path" type="String"> </argument> <description> + Returns the dependencies for the resource at the given [code]path[/code]. </description> </method> <method name="get_recognized_extensions_for_type"> @@ -33,7 +38,7 @@ <argument index="0" name="type" type="String"> </argument> <description> - Return the list of recognized extensions for a resource type. + Returns the list of recognized extensions for a resource type. </description> </method> <method name="has"> @@ -42,6 +47,7 @@ <argument index="0" name="path" type="String"> </argument> <description> + Deprecated method. Use [method has_cached] or [method exists] instead. </description> </method> <method name="has_cached"> @@ -50,6 +56,8 @@ <argument index="0" name="path" type="String"> </argument> <description> + Returns whether a cached resource is available for the given [code]path[/code]. + Once a resource has been loaded by the engine, it is cached in memory for faster access, and future calls to the [method load] or [method load_interactive] methods will use the cached version. The cached resource can be overridden by using [method Resource.take_over_path] on a new resource for that same path. </description> </method> <method name="load"> @@ -62,6 +70,11 @@ <argument index="2" name="no_cache" type="bool" default="false"> </argument> <description> + Loads a resource at the given [code]path[/code], caching the result for further access. + The registered [ResourceFormatLoader]s are queried sequentially to find the first one which can handle the file's extension, and then attempt loading. If loading fails, the remaining ResourceFormatLoaders are also attempted. + An optional [code]type_hint[/code] can be used to further specify the [Resource] type that should be handled by the [ResourceFormatLoader]. + If [code]no_cache[/code] is [code]true[/code], the resource cache will be bypassed and the resource will be loaded anew. Otherwise, the cached resource will be returned if it exists. + Returns an empty resource if no ResourceFormatLoader could handle the file. </description> </method> <method name="load_interactive"> @@ -72,7 +85,8 @@ <argument index="1" name="type_hint" type="String" default=""""> </argument> <description> - Load a resource interactively, the returned object allows to load with high granularity. + Starts loading a resource interactively. The returned [ResourceInteractiveLoader] object allows to load with high granularity, calling its [method ResourceInteractiveLoader.poll] method successively to load chunks. + An optional [code]type_hint[/code] can be used to further specify the [Resource] type that should be handled by the [ResourceFormatLoader]. </description> </method> <method name="set_abort_on_missing_resources"> diff --git a/doc/classes/ResourcePreloader.xml b/doc/classes/ResourcePreloader.xml index d6c635b6eb..2b00c038e1 100644 --- a/doc/classes/ResourcePreloader.xml +++ b/doc/classes/ResourcePreloader.xml @@ -5,6 +5,7 @@ </brief_description> <description> This node is used to preload sub-resources inside a scene, so when the scene is loaded, all the resources are ready to use and can be retrieved from the preloader. + GDScript has a simplified [method @GDScript.preload] built-in method which can be used in most situations, leaving the use of [ResourcePreloader] for more advanced scenarios. </description> <tutorials> </tutorials> diff --git a/doc/classes/ResourceSaver.xml b/doc/classes/ResourceSaver.xml index eac022f564..778ba4293f 100644 --- a/doc/classes/ResourceSaver.xml +++ b/doc/classes/ResourceSaver.xml @@ -1,10 +1,11 @@ <?xml version="1.0" encoding="UTF-8" ?> <class name="ResourceSaver" inherits="Object" category="Core" version="3.2"> <brief_description> - Resource saving interface. + Singleton for saving Godot-specific resource types. </brief_description> <description> - Resource saving interface, used for saving resources to disk. + Singleton for saving Godot-specific resource types to the filesystem. + It uses the many [ResourceFormatSaver] classes registered in the engine (either built-in or from a plugin) to save engine-specific resource data to text-based (e.g. [code].tres[/code] or [code].tscn[/code]) or binary files (e.g. [code].res[/code] or [code].scn[/code]). </description> <tutorials> </tutorials> @@ -28,24 +29,33 @@ <argument index="2" name="flags" type="int" enum="ResourceSaver.SaverFlags" default="0"> </argument> <description> - Saves a resource to disk. + Saves a resource to disk to the given path, using a [ResourceFormatSaver] that recognizes the resource object. + The [code]flags[/code] bitmask can be specified to customize the save behavior. + Returns [constant @GlobalScope.OK] on success. </description> </method> </methods> <constants> <constant name="FLAG_RELATIVE_PATHS" value="1" enum="SaverFlags"> + Save the resource with a path relative to the scene which uses it. </constant> <constant name="FLAG_BUNDLE_RESOURCES" value="2" enum="SaverFlags"> + Bundles external resources. </constant> <constant name="FLAG_CHANGE_PATH" value="4" enum="SaverFlags"> + Change the [member Resource.resource_path] of the saved resource to match its new location. </constant> <constant name="FLAG_OMIT_EDITOR_PROPERTIES" value="8" enum="SaverFlags"> + Do not save editor-specific metadata (identified by their [code]__editor[/code] prefix). </constant> <constant name="FLAG_SAVE_BIG_ENDIAN" value="16" enum="SaverFlags"> + Save as big endian (see [member File.endian_swap]). </constant> <constant name="FLAG_COMPRESS" value="32" enum="SaverFlags"> + Compress the resource on save using [constant File.COMPRESSION_ZSTD]. Only available for binary resource types. </constant> <constant name="FLAG_REPLACE_SUBRESOURCE_PATHS" value="64" enum="SaverFlags"> + Take over the paths of the saved subresources (see [method Resource.take_over_path]). </constant> </constants> </class> diff --git a/doc/classes/ResourceSaverPNG.xml b/doc/classes/ResourceSaverPNG.xml deleted file mode 100644 index 5ed4829f25..0000000000 --- a/doc/classes/ResourceSaverPNG.xml +++ /dev/null @@ -1,13 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" ?> -<class name="ResourceSaverPNG" inherits="ResourceFormatSaver" category="Core" version="3.2"> - <brief_description> - </brief_description> - <description> - </description> - <tutorials> - </tutorials> - <methods> - </methods> - <constants> - </constants> -</class> diff --git a/doc/classes/RigidBody.xml b/doc/classes/RigidBody.xml index 25b896ec3a..8dadca49e1 100644 --- a/doc/classes/RigidBody.xml +++ b/doc/classes/RigidBody.xml @@ -86,7 +86,7 @@ <return type="Array"> </return> <description> - Return a list of the bodies colliding with this one. By default, number of max contacts reported is at 0, see the [member contacts_reported] property to increase it. Note that the result of this test is not immediate after moving objects. For performance, list of collisions is updated once per frame and before the physics step. Consider using signals instead. + Returns a list of the bodies colliding with this one. By default, number of max contacts reported is at 0, see the [member contacts_reported] property to increase it. Note that the result of this test is not immediate after moving objects. For performance, list of collisions is updated once per frame and before the physics step. Consider using signals instead. </description> </method> <method name="set_axis_velocity"> @@ -119,10 +119,10 @@ Lock the body's movement in the x-axis. </member> <member name="axis_lock_linear_y" type="bool" setter="set_axis_lock" getter="get_axis_lock"> - Lock the body's movement in the x-axis. + Lock the body's movement in the y-axis. </member> <member name="axis_lock_linear_z" type="bool" setter="set_axis_lock" getter="get_axis_lock"> - Lock the body's movement in the x-axis. + Lock the body's movement in the z-axis. </member> <member name="bounce" type="float" setter="set_bounce" getter="get_bounce"> RigidBody's bounciness. diff --git a/doc/classes/SceneTree.xml b/doc/classes/SceneTree.xml index 0b1f659da3..a236d776c7 100644 --- a/doc/classes/SceneTree.xml +++ b/doc/classes/SceneTree.xml @@ -359,6 +359,12 @@ Emitted whenever a node is removed from the SceneTree. </description> </signal> + <signal name="node_renamed"> + <argument index="0" name="node" type="Node"> + </argument> + <description> + </description> + </signal> <signal name="physics_frame"> <description> Emitted immediately before [method Node._physics_process] is called on every node in the SceneTree. diff --git a/doc/classes/Shape2D.xml b/doc/classes/Shape2D.xml index dec3c2b43c..c887e23de0 100644 --- a/doc/classes/Shape2D.xml +++ b/doc/classes/Shape2D.xml @@ -52,7 +52,7 @@ <argument index="4" name="shape_motion" type="Vector2"> </argument> <description> - Return whether this shape would collide with another, if a given movement was applied. + Returns whether this shape would collide with another, if a given movement was applied. This method needs the transformation matrix for this shape ([code]local_xform[/code]), the movement to test on this shape ([code]local_motion[/code]), the shape to check collisions with ([code]with_shape[/code]), the transformation matrix of that shape ([code]shape_xform[/code]), and the movement to test onto the other object ([code]shape_motion[/code]). </description> </method> diff --git a/doc/classes/Skeleton.xml b/doc/classes/Skeleton.xml index 8fab778a48..b693ee0a5e 100644 --- a/doc/classes/Skeleton.xml +++ b/doc/classes/Skeleton.xml @@ -44,14 +44,14 @@ <argument index="0" name="name" type="String"> </argument> <description> - Return the bone index that matches "name" as its name. + Returns the bone index that matches "name" as its name. </description> </method> <method name="get_bone_count" qualifiers="const"> <return type="int"> </return> <description> - Return the amount of bones in the skeleton. + Returns the amount of bones in the skeleton. </description> </method> <method name="get_bone_custom_pose" qualifiers="const"> @@ -60,7 +60,7 @@ <argument index="0" name="bone_idx" type="int"> </argument> <description> - Return the custom pose of the specified bone. Custom pose is applied on top of the rest pose. + Returns the custom pose of the specified bone. Custom pose is applied on top of the rest pose. </description> </method> <method name="get_bone_global_pose" qualifiers="const"> @@ -69,7 +69,7 @@ <argument index="0" name="bone_idx" type="int"> </argument> <description> - Return the overall transform of the specified bone, with respect to the skeleton. Being relative to the skeleton frame, this is not the actual "global" transform of the bone. + Returns the overall transform of the specified bone, with respect to the skeleton. Being relative to the skeleton frame, this is not the actual "global" transform of the bone. </description> </method> <method name="get_bone_name" qualifiers="const"> @@ -78,7 +78,7 @@ <argument index="0" name="bone_idx" type="int"> </argument> <description> - Return the name of the bone at index "index". + Returns the name of the bone at index "index". </description> </method> <method name="get_bone_parent" qualifiers="const"> @@ -87,7 +87,7 @@ <argument index="0" name="bone_idx" type="int"> </argument> <description> - Return the bone index which is the parent of the bone at "bone_idx". If -1, then bone has no parent. Note that the parent bone returned will always be less than "bone_idx". + Returns the bone index which is the parent of the bone at "bone_idx". If -1, then bone has no parent. Note that the parent bone returned will always be less than "bone_idx". </description> </method> <method name="get_bone_pose" qualifiers="const"> @@ -96,7 +96,7 @@ <argument index="0" name="bone_idx" type="int"> </argument> <description> - Return the pose transform of the specified bone. Pose is applied on top of the custom pose, which is applied on top the rest pose. + Returns the pose transform of the specified bone. Pose is applied on top of the custom pose, which is applied on top the rest pose. </description> </method> <method name="get_bone_rest" qualifiers="const"> @@ -105,7 +105,7 @@ <argument index="0" name="bone_idx" type="int"> </argument> <description> - Return the rest transform for a bone "bone_idx". + Returns the rest transform for a bone "bone_idx". </description> </method> <method name="get_bone_transform" qualifiers="const"> @@ -114,7 +114,7 @@ <argument index="0" name="bone_idx" type="int"> </argument> <description> - Return the combination of custom pose and pose. The returned transform is in skeleton's reference frame. + Returns the combination of custom pose and pose. The returned transform is in skeleton's reference frame. </description> </method> <method name="get_bound_child_nodes_to_bone" qualifiers="const"> @@ -229,7 +229,7 @@ <argument index="1" name="pose" type="Transform"> </argument> <description> - Return the pose transform for bone "bone_idx". + Returns the pose transform for bone "bone_idx". </description> </method> <method name="set_bone_rest"> diff --git a/doc/classes/SpatialMaterial.xml b/doc/classes/SpatialMaterial.xml index 8e93160af9..f0df5fac4a 100644 --- a/doc/classes/SpatialMaterial.xml +++ b/doc/classes/SpatialMaterial.xml @@ -120,6 +120,8 @@ <member name="flags_use_point_size" type="bool" setter="set_flag" getter="get_flag"> If [code]true[/code], render point size can be changed. Note: this is only effective for objects whose geometry is point-based rather than triangle-based. See also [member params_point_size]. </member> + <member name="flags_use_shadow_to_opacity" type="bool" setter="set_flag" getter="get_flag"> + </member> <member name="flags_vertex_lighting" type="bool" setter="set_flag" getter="get_flag"> If [code]true[/code], lighting is calculated per vertex rather than per pixel. This may increase performance on low-end devices. Default value: [code]false[/code]. </member> @@ -390,7 +392,9 @@ </constant> <constant name="FLAG_ENSURE_CORRECT_NORMALS" value="16" enum="Flags"> </constant> - <constant name="FLAG_MAX" value="18" enum="Flags"> + <constant name="FLAG_USE_SHADOW_TO_OPACITY" value="18" enum="Flags"> + </constant> + <constant name="FLAG_MAX" value="19" enum="Flags"> </constant> <constant name="DIFFUSE_BURLEY" value="0" enum="DiffuseMode"> Default diffuse scattering algorithm. diff --git a/doc/classes/SphereMesh.xml b/doc/classes/SphereMesh.xml index 0124d8a4b0..4ebb2e919d 100644 --- a/doc/classes/SphereMesh.xml +++ b/doc/classes/SphereMesh.xml @@ -15,7 +15,7 @@ Full height of the sphere. Defaults to 2.0. </member> <member name="is_hemisphere" type="bool" setter="set_is_hemisphere" getter="get_is_hemisphere"> - Determines whether a full sphere or a hemisphere is created. Attention: To get a regular hemisphere the height and radius of the sphere have to equal. Defaults to [code]false[/code]. + Determines whether a full sphere or a hemisphere is created. Attention: To get a regular hemisphere, the height and radius of the sphere have to equal. Defaults to [code]false[/code]. </member> <member name="radial_segments" type="int" setter="set_radial_segments" getter="get_radial_segments"> Number of radial segments on the sphere. Defaults to 64. diff --git a/doc/classes/Sprite.xml b/doc/classes/Sprite.xml index cc5fe93567..097a5f2ed2 100644 --- a/doc/classes/Sprite.xml +++ b/doc/classes/Sprite.xml @@ -13,7 +13,13 @@ <return type="Rect2"> </return> <description> - Returns a Rect2 representing the Sprite's boundary relative to its local coordinates. + Returns a [Rect2] representing the Sprite's boundary in local coordinates. Can be used to detect if the Sprite was clicked. Example: + [codeblock] + func _input(event): + if event is InputEventMouseButton and event.pressed and event.button_index == BUTTON_LEFT: + if get_rect().has_point(to_local(event.position)): + print("A click!") + [/codeblock] </description> </method> <method name="is_pixel_opaque" qualifiers="const"> @@ -22,6 +28,8 @@ <argument index="0" name="pos" type="Vector2"> </argument> <description> + Returns [code]true[/code], if the pixel at the given position is opaque and [code]false[/code] in other case. + Note: It also returns [code]false[/code], if the sprite's texture is null or if the given position is invalid. </description> </method> </methods> @@ -48,7 +56,7 @@ The texture's drawing offset. </member> <member name="region_enabled" type="bool" setter="set_region" getter="is_region"> - If [code]true[/code], texture is cut from a larger atlas texture. See [code]region_rect[/code]. Default value: [code]false[/code]. + If [code]true[/code], texture is cut from a larger atlas texture. See [member region_rect]. Default value: [code]false[/code]. </member> <member name="region_filter_clip" type="bool" setter="set_region_filter_clip" getter="is_region_filter_clip_enabled"> If [code]true[/code], the outermost pixels get blurred out. diff --git a/doc/classes/StreamPeer.xml b/doc/classes/StreamPeer.xml index af8e43944c..d278312fc3 100644 --- a/doc/classes/StreamPeer.xml +++ b/doc/classes/StreamPeer.xml @@ -41,7 +41,7 @@ <return type="int"> </return> <description> - Return the amount of bytes this [StreamPeer] has available. + Returns the amount of bytes this [StreamPeer] has available. </description> </method> <method name="get_data"> @@ -50,7 +50,7 @@ <argument index="0" name="bytes" type="int"> </argument> <description> - Return a chunk data with the received bytes. The amount of bytes to be received can be requested in the "bytes" argument. If not enough bytes are available, the function will block until the desired amount is received. This function returns two values, an Error code and a data array. + Returns a chunk data with the received bytes. The amount of bytes to be received can be requested in the "bytes" argument. If not enough bytes are available, the function will block until the desired amount is received. This function returns two values, an Error code and a data array. </description> </method> <method name="get_double"> @@ -73,7 +73,7 @@ <argument index="0" name="bytes" type="int"> </argument> <description> - Return a chunk data with the received bytes. The amount of bytes to be received can be requested in the "bytes" argument. If not enough bytes are available, the function will return how many were actually received. This function returns two values, an Error code, and a data array. + Returns a chunk data with the received bytes. The amount of bytes to be received can be requested in the "bytes" argument. If not enough bytes are available, the function will return how many were actually received. This function returns two values, an Error code, and a data array. </description> </method> <method name="get_string"> diff --git a/doc/classes/StreamPeerSSL.xml b/doc/classes/StreamPeerSSL.xml index f7fd36ed58..f28e6e5544 100644 --- a/doc/classes/StreamPeerSSL.xml +++ b/doc/classes/StreamPeerSSL.xml @@ -42,7 +42,7 @@ <return type="int" enum="StreamPeerSSL.Status"> </return> <description> - Return the status of the connection, one of STATUS_* enum. + Returns the status of the connection, one of STATUS_* enum. </description> </method> <method name="poll"> diff --git a/doc/classes/StreamPeerTCP.xml b/doc/classes/StreamPeerTCP.xml index 16bf69110d..0edea42521 100644 --- a/doc/classes/StreamPeerTCP.xml +++ b/doc/classes/StreamPeerTCP.xml @@ -31,21 +31,21 @@ <return type="String"> </return> <description> - Return the IP of this peer. + Returns the IP of this peer. </description> </method> <method name="get_connected_port" qualifiers="const"> <return type="int"> </return> <description> - Return the port of this peer. + Returns the port of this peer. </description> </method> <method name="get_status"> <return type="int" enum="StreamPeerTCP.Status"> </return> <description> - Return the status of the connection, see [enum StreamPeerTCP.Status]. + Returns the status of the connection, see [enum StreamPeerTCP.Status]. </description> </method> <method name="is_connected_to_host" qualifiers="const"> diff --git a/doc/classes/String.xml b/doc/classes/String.xml index e06f0738b8..af7e5a395a 100644 --- a/doc/classes/String.xml +++ b/doc/classes/String.xml @@ -7,7 +7,7 @@ This is the built-in string class (and the one used by GDScript). It supports Unicode and provides all necessary means for string handling. Strings are reference counted and use a copy-on-write approach, so passing them around is cheap in resources. </description> <tutorials> - <link>https://docs.godotengine.org/en/stable/getting_started/scripting/gdscript/gdscript_format_string.html</link> + <link>https://docs.godotengine.org/en/latest/getting_started/scripting/gdscript/gdscript_format_string.html</link> </tutorials> <methods> <method name="String"> @@ -662,16 +662,17 @@ <method name="rsplit"> <return type="PoolStringArray"> </return> - <argument index="0" name="divisor" type="String"> + <argument index="0" name="delimiter" type="String"> </argument> <argument index="1" name="allow_empty" type="bool" default="True"> </argument> <argument index="2" name="maxsplit" type="int" default="0"> </argument> <description> - Splits the string by a [code]divisor[/code] string and returns an array of the substrings, starting from right. - [b]Example:[/b] [code]"One,Two,Three"[/code] will return [code]["One","Two","Three"][/code] if split by [code]","[/code]. - If [code]maxsplit[/code] is specified, then it is number of splits to do, default is 0 which splits all the items. + Splits the string by a [code]delimiter[/code] string and returns an array of the substrings, starting from right. + The splits in the returned array are sorted in the same order as the original string, from left to right. + If [code]maxsplit[/code] is specified, it defines the number of splits to do from the right up to [code]maxsplit[/code]. The default value of 0 means that all items are split, thus giving the same result as [method split]. + [b]Example:[/b] [code]"One,Two,Three,Four"[/code] will return [code]["Three","Four"][/code] if split by [code]","[/code] with [code]maxsplit[/code] of 2. </description> </method> <method name="rstrip"> @@ -709,27 +710,27 @@ <method name="split"> <return type="PoolStringArray"> </return> - <argument index="0" name="divisor" type="String"> + <argument index="0" name="delimiter" type="String"> </argument> <argument index="1" name="allow_empty" type="bool" default="True"> </argument> <argument index="2" name="maxsplit" type="int" default="0"> </argument> <description> - Splits the string by a divisor string and returns an array of the substrings. - [b]Example:[/b] [code]"One,Two,Three"[/code] will return [code]["One","Two","Three"][/code] if split by [code]","[/code]. - If [code]maxsplit[/code] is given, at most maxsplit number of splits occur, and the remainder of the string is returned as the final element of the list (thus, the list will have at most maxsplit+1 elements) + Splits the string by a [code]delimiter[/code] string and returns an array of the substrings. + If [code]maxsplit[/code] is specified, it defines the number of splits to do from the left up to [code]maxsplit[/code]. The default value of 0 means that all items are split. + [b]Example:[/b] [code]"One,Two,Three"[/code] will return [code]["One","Two"][/code] if split by [code]","[/code] with [code]maxsplit[/code] of 2. </description> </method> <method name="split_floats"> <return type="PoolRealArray"> </return> - <argument index="0" name="divisor" type="String"> + <argument index="0" name="delimiter" type="String"> </argument> <argument index="1" name="allow_empty" type="bool" default="True"> </argument> <description> - Splits the string in floats by using a divisor string and returns an array of the substrings. + Splits the string in floats by using a delimiter string and returns an array of the substrings. [b]Example:[/b] [code]"1,2.5,3"[/code] will return [code][1,2.5,3][/code] if split by [code]","[/code]. </description> </method> @@ -741,7 +742,14 @@ <argument index="1" name="right" type="bool" default="True"> </argument> <description> - Returns a copy of the string stripped of any non-printable character at the beginning and the end. The optional arguments are used to toggle stripping on the left and right edges respectively. + Returns a copy of the string stripped of any non-printable character (including tabulations, spaces and line breaks) at the beginning and the end. The optional arguments are used to toggle stripping on the left and right edges respectively. + </description> + </method> + <method name="strip_escapes"> + <return type="String"> + </return> + <description> + Returns a copy of the string stripped of any escape character. These include all non-printable control characters of the first page of the ASCII table (< 32), such as tabulation ([code]\t[/code] in C) and newline ([code]\n[/code] and [code]\r[/code]) characters, but not spaces. </description> </method> <method name="substr"> diff --git a/doc/classes/StyleBox.xml b/doc/classes/StyleBox.xml index 40cb2632b6..a156f134e7 100644 --- a/doc/classes/StyleBox.xml +++ b/doc/classes/StyleBox.xml @@ -37,7 +37,7 @@ <argument index="0" name="margin" type="int" enum="Margin"> </argument> <description> - Return the content margin offset for the specified margin + Returns the content margin offset for the specified margin Positive values reduce size inwards, unlike [Control]'s margin values. </description> </method> @@ -45,14 +45,14 @@ <return type="Vector2"> </return> <description> - Return the minimum size that this stylebox can be shrunk to. + Returns the minimum size that this stylebox can be shrunk to. </description> </method> <method name="get_offset" qualifiers="const"> <return type="Vector2"> </return> <description> - Return the "offset" of a stylebox, this is a helper function, like writing [code]Vector2(style.get_margin(MARGIN_LEFT), style.get_margin(MARGIN_TOP))[/code]. + Returns the "offset" of a stylebox, this is a helper function, like writing [code]Vector2(style.get_margin(MARGIN_LEFT), style.get_margin(MARGIN_TOP))[/code]. </description> </method> <method name="test_mask" qualifiers="const"> diff --git a/doc/classes/SurfaceTool.xml b/doc/classes/SurfaceTool.xml index 25188a80db..e97f9995ee 100644 --- a/doc/classes/SurfaceTool.xml +++ b/doc/classes/SurfaceTool.xml @@ -169,6 +169,12 @@ Returns a constructed [ArrayMesh] from current information passed in. If an existing [ArrayMesh] is passed in as an argument, will add an extra surface to the existing [ArrayMesh]. </description> </method> + <method name="commit_to_arrays"> + <return type="Array"> + </return> + <description> + </description> + </method> <method name="create_from"> <return type="void"> </return> @@ -180,6 +186,18 @@ Creates a vertex array from an existing [Mesh]. </description> </method> + <method name="create_from_blend_shape"> + <return type="void"> + </return> + <argument index="0" name="existing" type="Mesh"> + </argument> + <argument index="1" name="surface" type="int"> + </argument> + <argument index="2" name="blend_shape" type="String"> + </argument> + <description> + </description> + </method> <method name="deindex"> <return type="void"> </return> diff --git a/doc/classes/TCP_Server.xml b/doc/classes/TCP_Server.xml index ac9b33bc34..663d3248e8 100644 --- a/doc/classes/TCP_Server.xml +++ b/doc/classes/TCP_Server.xml @@ -13,7 +13,7 @@ <return type="bool"> </return> <description> - Return [code]true[/code] if a connection is available for taking. + Returns [code]true[/code] if a connection is available for taking. </description> </method> <method name="listen"> diff --git a/doc/classes/TextEdit.xml b/doc/classes/TextEdit.xml index dd0461f4db..8139da3a4c 100644 --- a/doc/classes/TextEdit.xml +++ b/doc/classes/TextEdit.xml @@ -32,7 +32,7 @@ <argument index="1" name="color" type="Color"> </argument> <description> - Add a keyword and its color. + Add a [code]keyword[/code] and its [Color]. </description> </method> <method name="can_fold" qualifiers="const"> @@ -48,35 +48,35 @@ <return type="void"> </return> <description> - Clear all the syntax coloring information. + Clears all the syntax coloring information. </description> </method> <method name="clear_undo_history"> <return type="void"> </return> <description> - Clear the undo history. + Clears the undo history. </description> </method> <method name="copy"> <return type="void"> </return> <description> - Copy the current selection. + Copy's the current text selection. </description> </method> <method name="cursor_get_column" qualifiers="const"> <return type="int"> </return> <description> - Return the column the editing cursor is at. + Returns the column the editing cursor is at. </description> </method> <method name="cursor_get_line" qualifiers="const"> <return type="int"> </return> <description> - Return the line the editing cursor is at. + Returns the line the editing cursor is at. </description> </method> <method name="cursor_set_column"> @@ -87,6 +87,8 @@ <argument index="1" name="adjust_viewport" type="bool" default="true"> </argument> <description> + Moves the cursor at the specified [code]column[/code] index. + If [code]adjust_viewport[/code] is set to true, the viewport will center at the cursor position after the move occurs. Default value is [code]true[/code]. </description> </method> <method name="cursor_set_line"> @@ -101,20 +103,23 @@ <argument index="3" name="wrap_index" type="int" default="0"> </argument> <description> + Moves the cursor at the specified [code]line[/code] index. + If [code]adjust_viewport[/code] is set to true, the viewport will center at the cursor position after the move occurs. Default value is [code]true[/code]. + If [code]can_be_hidden[/code] is set to true, the specified [code]line[/code] can be hidden using [method set_line_as_hidden]. Default value is [code]true[/code]. </description> </method> <method name="cut"> <return type="void"> </return> <description> - Cut the current selection. + Cut's the current selection. </description> </method> <method name="deselect"> <return type="void"> </return> <description> - Clears the current selection. + Deselects the current selection. </description> </method> <method name="fold_all_lines"> @@ -137,7 +142,7 @@ <return type="Array"> </return> <description> - Return an array containing the line number of each breakpoint. + Returns an array containing the line number of each breakpoint. </description> </method> <method name="get_keyword_color" qualifiers="const"> @@ -146,6 +151,7 @@ <argument index="0" name="keyword" type="String"> </argument> <description> + Returns the [Color] of the specified [code]keyword[/code]. </description> </method> <method name="get_line" qualifiers="const"> @@ -154,14 +160,14 @@ <argument index="0" name="line" type="int"> </argument> <description> - Return the text of a specific line. + Returns the text of a specific line. </description> </method> <method name="get_line_count" qualifiers="const"> <return type="int"> </return> <description> - Return the amount of total lines in the text. + Returns the amount of total lines in the text. </description> </method> <method name="get_menu" qualifiers="const"> @@ -175,41 +181,42 @@ <return type="int"> </return> <description> - Return the selection begin column. + Returns the selection begin column. </description> </method> <method name="get_selection_from_line" qualifiers="const"> <return type="int"> </return> <description> - Return the selection begin line. + Returns the selection begin line. </description> </method> <method name="get_selection_text" qualifiers="const"> <return type="String"> </return> <description> - Return the text inside the selection. + Returns the text inside the selection. </description> </method> <method name="get_selection_to_column" qualifiers="const"> <return type="int"> </return> <description> - Return the selection end column. + Returns the selection end column. </description> </method> <method name="get_selection_to_line" qualifiers="const"> <return type="int"> </return> <description> - Return the selection end line. + Returns the selection end line. </description> </method> <method name="get_word_under_cursor" qualifiers="const"> <return type="String"> </return> <description> + Returns a [String] text with the word under the mouse cursor location. </description> </method> <method name="has_keyword_color" qualifiers="const"> @@ -218,6 +225,7 @@ <argument index="0" name="keyword" type="String"> </argument> <description> + Returns whether the specified [code]keyword[/code] has a color set to it or not. </description> </method> <method name="insert_text_at_cursor"> @@ -226,7 +234,7 @@ <argument index="0" name="text" type="String"> </argument> <description> - Insert a given text at the cursor position. + Insert the specified text at the cursor position. </description> </method> <method name="is_folded" qualifiers="const"> @@ -235,7 +243,7 @@ <argument index="0" name="line" type="int"> </argument> <description> - Returns if the given line is folded. + Returns whether the line at the specified index is folded or not. </description> </method> <method name="is_line_hidden" qualifiers="const"> @@ -244,13 +252,14 @@ <argument index="0" name="line" type="int"> </argument> <description> + Returns whether the line at the specified index is hidden or not. </description> </method> <method name="is_selection_active" qualifiers="const"> <return type="bool"> </return> <description> - Return [code]true[/code] if the selection is active. + Returns [code]true[/code] if the selection is active. </description> </method> <method name="menu_option"> @@ -259,6 +268,7 @@ <argument index="0" name="option" type="int"> </argument> <description> + Triggers a right click menu action by the specified index. See [enum MenuItems] for a list of available indexes. </description> </method> <method name="paste"> @@ -327,6 +337,7 @@ <argument index="1" name="enable" type="bool"> </argument> <description> + If [code]true[/code], hides the line of the specified index. </description> </method> <method name="toggle_fold_line"> @@ -358,6 +369,7 @@ <return type="void"> </return> <description> + Unhide all lines that were previously set to hidden by [method set_line_as_hidden]. </description> </method> </methods> @@ -382,18 +394,20 @@ <member name="context_menu_enabled" type="bool" setter="set_context_menu_enabled" getter="is_context_menu_enabled"> If [code]true[/code], a right click displays the context menu. </member> - <member name="draw_tabs" type="bool" setter="set_draw_tabs" getter="is_drawing_tabs"> - If [code]true[/code], the "tab" character will have a visible representation. - </member> <member name="draw_spaces" type="bool" setter="set_draw_spaces" getter="is_drawing_spaces"> If [code]true[/code], the "space" character will have a visible representation. </member> - <member name="fold_gutter" type="bool" setter="set_fold_gutter_enabled" getter="is_fold_gutter_enabled"> + <member name="draw_tabs" type="bool" setter="set_draw_tabs" getter="is_drawing_tabs"> + If [code]true[/code], the "tab" character will have a visible representation. + </member> + <member name="fold_gutter" type="bool" setter="set_draw_fold_gutter" getter="is_drawing_fold_gutter"> If [code]true[/code], the fold gutter is visible. This enables folding groups of indented lines. </member> - <member name="hiding_enabled" type="int" setter="set_hiding_enabled" getter="is_hiding_enabled"> + <member name="hiding_enabled" type="bool" setter="set_hiding_enabled" getter="is_hiding_enabled"> + If [code]true[/code], all lines that have been set to hidden by [method set_line_as_hidden], will not be visible. </member> <member name="highlight_all_occurrences" type="bool" setter="set_highlight_all_occurrences" getter="is_highlight_all_occurrences_enabled"> + If [code]true[/code], all occurrences of the selected text will be highlighted. </member> <member name="highlight_current_line" type="bool" setter="set_highlight_current_line" getter="is_highlight_current_line_enabled"> If [code]true[/code], the line containing the cursor is highlighted. @@ -407,8 +421,10 @@ If [code]true[/code], line numbers are displayed to the left of the text. </member> <member name="smooth_scrolling" type="bool" setter="set_smooth_scroll_enable" getter="is_smooth_scroll_enabled"> + If [code]true[/code], sets the [code]step[/code] of the scrollbars to [code]0.25[/code] which results in smoother scrolling. </member> <member name="syntax_highlighting" type="bool" setter="set_syntax_coloring" getter="is_syntax_coloring_enabled"> + If [code]true[/code], any custom color properties that have been set for this [TextEdit] will be visible. </member> <member name="text" type="String" setter="set_text" getter="get_text"> String value of the [TextEdit]. @@ -439,6 +455,7 @@ <argument index="1" name="info" type="String"> </argument> <description> + Emitted when the info icon is clicked. </description> </signal> <signal name="request_completion"> @@ -490,13 +507,17 @@ Undoes the previous action. </constant> <constant name="MENU_REDO" value="6" enum="MenuItems"> + Redoes the previous action. </constant> <constant name="MENU_MAX" value="7" enum="MenuItems"> + Represents the size of the [enum MenuItems] enum. </constant> </constants> <theme_items> <theme_item name="background_color" type="Color"> </theme_item> + <theme_item name="bookmark_color" type="Color"> + </theme_item> <theme_item name="brace_mismatch_color" type="Color"> </theme_item> <theme_item name="breakpoint_color" type="Color"> @@ -561,6 +582,8 @@ </theme_item> <theme_item name="selection_color" type="Color"> </theme_item> + <theme_item name="space" type="Texture"> + </theme_item> <theme_item name="symbol_color" type="Color"> </theme_item> <theme_item name="tab" type="Texture"> diff --git a/doc/classes/Texture.xml b/doc/classes/Texture.xml index 39f3ee447c..4418a6ce8f 100644 --- a/doc/classes/Texture.xml +++ b/doc/classes/Texture.xml @@ -74,21 +74,21 @@ <return type="int"> </return> <description> - Return the texture height. + Returns the texture height. </description> </method> <method name="get_size" qualifiers="const"> <return type="Vector2"> </return> <description> - Return the texture size. + Returns the texture size. </description> </method> <method name="get_width" qualifiers="const"> <return type="int"> </return> <description> - Return the texture width. + Returns the texture width. </description> </method> <method name="has_alpha" qualifiers="const"> diff --git a/doc/classes/Theme.xml b/doc/classes/Theme.xml index bc44ec161a..8fdef5540b 100644 --- a/doc/classes/Theme.xml +++ b/doc/classes/Theme.xml @@ -8,6 +8,7 @@ Theme resources can be alternatively loaded by writing them in a .theme file, see docs for more info. </description> <tutorials> + <link>https://docs.godotengine.org/en/latest/tutorials/gui/gui_skinning.html</link> </tutorials> <methods> <method name="clear"> diff --git a/doc/classes/TileSet.xml b/doc/classes/TileSet.xml index 0bf602dcf7..f29a7990ed 100644 --- a/doc/classes/TileSet.xml +++ b/doc/classes/TileSet.xml @@ -10,6 +10,18 @@ <tutorials> </tutorials> <methods> + <method name="_forward_atlas_subtile_selection" qualifiers="virtual"> + <return type="Vector2"> + </return> + <argument index="0" name="atlastile_id" type="int"> + </argument> + <argument index="1" name="tilemap" type="Object"> + </argument> + <argument index="2" name="tile_location" type="Vector2"> + </argument> + <description> + </description> + </method> <method name="_forward_subtile_selection" qualifiers="virtual"> <return type="Vector2"> </return> diff --git a/doc/classes/Translation.xml b/doc/classes/Translation.xml index 5d51f7ee09..eea4f8ed03 100644 --- a/doc/classes/Translation.xml +++ b/doc/classes/Translation.xml @@ -7,8 +7,8 @@ Translations are resources that can be loaded/unloaded on demand. They map a string to another string. </description> <tutorials> - <link>https://docs.godotengine.org/en/stable/tutorials/i18n/internationalizing_games.html</link> - <link>https://docs.godotengine.org/en/stable/tutorials/i18n/locales.html</link> + <link>https://docs.godotengine.org/en/latest/tutorials/i18n/internationalizing_games.html</link> + <link>https://docs.godotengine.org/en/latest/tutorials/i18n/locales.html</link> </tutorials> <methods> <method name="add_message"> diff --git a/doc/classes/TranslationServer.xml b/doc/classes/TranslationServer.xml index 05774635b8..268fb5b6a5 100644 --- a/doc/classes/TranslationServer.xml +++ b/doc/classes/TranslationServer.xml @@ -7,8 +7,8 @@ Server that manages all translations. Translations can be set to it and removed from it. </description> <tutorials> - <link>https://docs.godotengine.org/en/stable/tutorials/i18n/internationalizing_games.html</link> - <link>https://docs.godotengine.org/en/stable/tutorials/i18n/locales.html</link> + <link>https://docs.godotengine.org/en/latest/tutorials/i18n/internationalizing_games.html</link> + <link>https://docs.godotengine.org/en/latest/tutorials/i18n/locales.html</link> </tutorials> <methods> <method name="add_translation"> @@ -31,6 +31,7 @@ <return type="Array"> </return> <description> + Returns an Array of all loaded locales of the game. </description> </method> <method name="get_locale" qualifiers="const"> diff --git a/doc/classes/Tree.xml b/doc/classes/Tree.xml index b60673bb5b..0272efeecb 100644 --- a/doc/classes/Tree.xml +++ b/doc/classes/Tree.xml @@ -271,6 +271,12 @@ Emitted when a cell with the [code]CELL_MODE_CUSTOM[/code] is clicked to be edited. </description> </signal> + <signal name="empty_rmb"> + <argument index="0" name="position" type="Vector2"> + </argument> + <description> + </description> + </signal> <signal name="empty_tree_rmb_selected"> <argument index="0" name="position" type="Vector2"> </argument> diff --git a/doc/classes/TreeItem.xml b/doc/classes/TreeItem.xml index 9524e048bb..f7887a87c8 100644 --- a/doc/classes/TreeItem.xml +++ b/doc/classes/TreeItem.xml @@ -163,8 +163,11 @@ <method name="get_next_visible"> <return type="TreeItem"> </return> + <argument index="0" name="wrap" type="bool" default="false"> + </argument> <description> Returns the next visible TreeItem in the tree. + If [code]wrap[/code] is enabled, the method will wrap around to the first visible element in the tree when called on the last visible element, otherwise it returns [code]null[/code]. </description> </method> <method name="get_parent"> @@ -184,8 +187,11 @@ <method name="get_prev_visible"> <return type="TreeItem"> </return> + <argument index="0" name="wrap" type="bool" default="false"> + </argument> <description> Returns the previous visible TreeItem in the tree. + If [code]wrap[/code] is enabled, the method will wrap around to the last visible element in the tree when called on the first visible element, otherwise it returns [code]null[/code]. </description> </method> <method name="get_range" qualifiers="const"> diff --git a/doc/classes/TriangleMesh.xml b/doc/classes/TriangleMesh.xml index 9600a1d196..2125aa5e17 100644 --- a/doc/classes/TriangleMesh.xml +++ b/doc/classes/TriangleMesh.xml @@ -1,8 +1,10 @@ <?xml version="1.0" encoding="UTF-8" ?> <class name="TriangleMesh" inherits="Reference" category="Core" version="3.2"> <brief_description> + Internal mesh type. </brief_description> <description> + Mesh type used internally for collision calculations. </description> <tutorials> </tutorials> diff --git a/doc/classes/UndoRedo.xml b/doc/classes/UndoRedo.xml index ce6405b96c..c0b73cd8e3 100644 --- a/doc/classes/UndoRedo.xml +++ b/doc/classes/UndoRedo.xml @@ -141,7 +141,7 @@ This is useful mostly to check if something changed from a saved version. </description> </method> - <method name="is_committing_action" qualifiers="const"> + <method name="is_commiting_action" qualifiers="const"> <return type="bool"> </return> <description> diff --git a/doc/classes/Vector2.xml b/doc/classes/Vector2.xml index 75221ccc82..243dbceced 100644 --- a/doc/classes/Vector2.xml +++ b/doc/classes/Vector2.xml @@ -185,6 +185,17 @@ Returns the result of the linear interpolation between this vector and [code]b[/code] by amount [code]t[/code]. [code]t[/code] is in the range of [code]0.0 - 1.0[/code], representing the amount of interpolation. </description> </method> + <method name="move_toward"> + <return type="Vector2"> + </return> + <argument index="0" name="to" type="Vector2"> + </argument> + <argument index="1" name="delta" type="float"> + </argument> + <description> + Moves the vector toward [code]to[/code] by the fixed [code]delta[/code] amount. + </description> + </method> <method name="normalized"> <return type="Vector2"> </return> diff --git a/doc/classes/Vector3.xml b/doc/classes/Vector3.xml index bcd745945e..99bf3d2610 100644 --- a/doc/classes/Vector3.xml +++ b/doc/classes/Vector3.xml @@ -175,6 +175,17 @@ Returns the axis of the vector's smallest value. See [code]AXIS_*[/code] constants. </description> </method> + <method name="move_toward"> + <return type="Vector3"> + </return> + <argument index="0" name="to" type="Vector3"> + </argument> + <argument index="1" name="delta" type="float"> + </argument> + <description> + Moves the vector toward [code]to[/code] by the fixed [code]delta[/code] amount. + </description> + </method> <method name="normalized"> <return type="Vector3"> </return> diff --git a/doc/classes/VehicleWheel.xml b/doc/classes/VehicleWheel.xml index f8dac82cb5..0bc0e351e4 100644 --- a/doc/classes/VehicleWheel.xml +++ b/doc/classes/VehicleWheel.xml @@ -9,11 +9,17 @@ <tutorials> </tutorials> <methods> + <method name="get_rpm" qualifiers="const"> + <return type="float"> + </return> + <description> + </description> + </method> <method name="get_skidinfo" qualifiers="const"> <return type="float"> </return> <description> - Returns a value between 0.0 and 1.0 that indicates whether this wheel is skidding. 0.0 is not skidding, 1.0 means the wheel has lost grip. + Returns a value between 0.0 and 1.0 that indicates whether this wheel is skidding. 0.0 is skidding (the wheel has lost grip, e.g. icy terrain), 1.0 means not skidding (the wheel has full grip, e.g. dry asphalt road). </description> </method> <method name="is_in_contact" qualifiers="const"> diff --git a/doc/classes/Viewport.xml b/doc/classes/Viewport.xml index b48dc9de35..53e66cee74 100644 --- a/doc/classes/Viewport.xml +++ b/doc/classes/Viewport.xml @@ -253,6 +253,9 @@ <member name="physics_object_picking" type="bool" setter="set_physics_object_picking" getter="get_physics_object_picking"> If [code]true[/code], the objects rendered by viewport become subjects of mouse picking process. Default value: [code]false[/code]. </member> + <member name="render_direct_to_screen" type="bool" setter="set_use_render_direct_to_screen" getter="is_using_render_direct_to_screen"> + If [code]true[/code], renders the Viewport directly to the screen instead of to the root viewport. Only available in GLES2. This is a low-level optimization and should not be used in most cases. If used, reading from the Viewport or from [code]SCREEN_TEXTURE[/code] becomes unavailable. For more information see [method VisualServer.viewport_set_render_direct_to_screen]. Default value: [code]false[/code]. + </member> <member name="render_target_clear_mode" type="int" setter="set_clear_mode" getter="get_clear_mode" enum="Viewport.ClearMode"> The clear mode when viewport used as a render target. Default value: [code]CLEAR_MODE_ALWAYS[/code]. </member> diff --git a/doc/classes/VisualServer.xml b/doc/classes/VisualServer.xml index dae120f09b..f9b668b38a 100644 --- a/doc/classes/VisualServer.xml +++ b/doc/classes/VisualServer.xml @@ -3157,8 +3157,10 @@ </argument> <argument index="2" name="scale" type="bool"> </argument> + <argument index="3" name="use_filter" type="bool" default="true"> + </argument> <description> - Sets a boot image. The color defines the background color and if scale is [code]true[/code] the image will be scaled to fit the screen size. + Sets a boot image. The color defines the background color. If [code]scale[/code] is [code]true[/code], the image will be scaled to fit the screen size. If [code]use_filter[/code] is [code]true[/code], the image will be scaled with linear interpolation. If [code]use_filter[/code] is [code]false[/code], the image will be scaled with nearest-neighbor interpolation. </description> </method> <method name="set_debug_generate_wireframes"> @@ -3359,6 +3361,17 @@ <description> </description> </method> + <method name="texture_bind"> + <return type="void"> + </return> + <argument index="0" name="texture" type="RID"> + </argument> + <argument index="1" name="number" type="int"> + </argument> + <description> + Binds the texture to a texture slot. + </description> + </method> <method name="texture_create"> <return type="RID"> </return> @@ -3590,7 +3603,14 @@ <argument index="2" name="screen" type="int" default="0"> </argument> <description> - Attaches a viewport to a screen. + Copies viewport to a region of the screen specified by [code]rect[/code]. If Viewport.[member Viewport.render_direct_to_screen] is [code]true[/code], then viewport does not use a framebuffer and the contents of the viewport are rendered directly to screen. However, note that the root viewport is drawn last, therefore it will draw over the screen. Accordingly, you must set the root viewport to an area that does not cover the area that you have attached this viewport to. + For example, you can set the root viewport to not render at all with the following code: + [codeblock] + func _ready(): + get_viewport().set_attach_to_screen_rect(Rect2()) + $Viewport.set_attach_to_screen_rect(Rect2(0, 0, 600, 600)) + [/codeblock] + Using this can result in significant optimization, especially on lower-end devices. However, it comes at the cost of having to manage your viewports manually. For a further optimization see, [method viewport_set_render_direct_to_screen]. </description> </method> <method name="viewport_create"> @@ -3789,6 +3809,17 @@ Sets the viewport's parent to another viewport. </description> </method> + <method name="viewport_set_render_direct_to_screen"> + <return type="void"> + </return> + <argument index="0" name="viewport" type="RID"> + </argument> + <argument index="1" name="enabled" type="bool"> + </argument> + <description> + If [code]true[/code], render the contents of the viewport directly to screen. This allows a low-level optimization where you can skip drawing a viewport to the root viewport. While this optimization can result in a significant increase in speed (especially on older devices), it comes at a cost of usability. When this is enabled, you cannot read from the viewport or from the [code]SCREEN_TEXTURE[/code]. You also lose the benefit of certain window settings, such as the various stretch modes. Another consequence to be aware of is that in 2D the rendering happens in window coordinates, so if you have a viewport that is double the size of the window, and you set this, then only the portion that fits within the window will be drawn, no automatic scaling is possible, even if your game scene is significantly larger than the window size. + </description> + </method> <method name="viewport_set_scenario"> <return type="void"> </return> @@ -4409,7 +4440,7 @@ </constant> <constant name="ENV_BG_KEEP" value="5" enum="EnvironmentBG"> </constant> - <constant name="ENV_BG_MAX" value="6" enum="EnvironmentBG"> + <constant name="ENV_BG_MAX" value="7" enum="EnvironmentBG"> </constant> <constant name="ENV_DOF_BLUR_QUALITY_LOW" value="0" enum="EnvironmentDOFBlurQuality"> </constant> diff --git a/doc/classes/VisualShader.xml b/doc/classes/VisualShader.xml index d399f69c96..6d5f53d992 100644 --- a/doc/classes/VisualShader.xml +++ b/doc/classes/VisualShader.xml @@ -53,6 +53,22 @@ <description> </description> </method> + <method name="connect_nodes_forced"> + <return type="void"> + </return> + <argument index="0" name="type" type="int" enum="VisualShader.Type"> + </argument> + <argument index="1" name="from_node" type="int"> + </argument> + <argument index="2" name="from_port" type="int"> + </argument> + <argument index="3" name="to_node" type="int"> + </argument> + <argument index="4" name="to_port" type="int"> + </argument> + <description> + </description> + </method> <method name="disconnect_nodes"> <return type="void"> </return> @@ -129,6 +145,12 @@ <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/VisualShaderNodeExpression.xml b/doc/classes/VisualShaderNodeExpression.xml new file mode 100644 index 0000000000..8a5477280f --- /dev/null +++ b/doc/classes/VisualShaderNodeExpression.xml @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<class name="VisualShaderNodeExpression" inherits="VisualShaderNodeGroupBase" category="Core" version="3.2"> + <brief_description> + </brief_description> + <description> + </description> + <tutorials> + </tutorials> + <methods> + <method name="build"> + <return type="void"> + </return> + <description> + </description> + </method> + </methods> + <members> + <member name="expression" type="String" setter="set_expression" getter="get_expression"> + </member> + </members> + <constants> + </constants> +</class> diff --git a/doc/classes/TranslationLoaderPO.xml b/doc/classes/VisualShaderNodeFresnel.xml index d9896e1807..2484a44fcd 100644 --- a/doc/classes/TranslationLoaderPO.xml +++ b/doc/classes/VisualShaderNodeFresnel.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8" ?> -<class name="TranslationLoaderPO" inherits="ResourceFormatLoader" category="Core" version="3.2"> +<class name="VisualShaderNodeFresnel" inherits="VisualShaderNode" category="Core" version="3.2"> <brief_description> </brief_description> <description> diff --git a/doc/classes/VisualShaderNodeGroupBase.xml b/doc/classes/VisualShaderNodeGroupBase.xml new file mode 100644 index 0000000000..37d48956f6 --- /dev/null +++ b/doc/classes/VisualShaderNodeGroupBase.xml @@ -0,0 +1,205 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<class name="VisualShaderNodeGroupBase" inherits="VisualShaderNode" category="Core" version="3.2"> + <brief_description> + </brief_description> + <description> + </description> + <tutorials> + </tutorials> + <methods> + <method name="add_input_port"> + <return type="void"> + </return> + <argument index="0" name="id" type="int"> + </argument> + <argument index="1" name="type" type="int"> + </argument> + <argument index="2" name="name" type="String"> + </argument> + <description> + </description> + </method> + <method name="add_output_port"> + <return type="void"> + </return> + <argument index="0" name="id" type="int"> + </argument> + <argument index="1" name="type" type="int"> + </argument> + <argument index="2" name="name" type="String"> + </argument> + <description> + </description> + </method> + <method name="clear_input_ports"> + <return type="void"> + </return> + <description> + </description> + </method> + <method name="clear_output_ports"> + <return type="void"> + </return> + <description> + </description> + </method> + <method name="get_control"> + <return type="Control"> + </return> + <argument index="0" name="index" type="int"> + </argument> + <description> + </description> + </method> + <method name="get_free_input_port_id" qualifiers="const"> + <return type="int"> + </return> + <description> + </description> + </method> + <method name="get_free_output_port_id" qualifiers="const"> + <return type="int"> + </return> + <description> + </description> + </method> + <method name="get_input_port_count" qualifiers="const"> + <return type="int"> + </return> + <description> + </description> + </method> + <method name="get_inputs" qualifiers="const"> + <return type="String"> + </return> + <description> + </description> + </method> + <method name="get_output_port_count" qualifiers="const"> + <return type="int"> + </return> + <description> + </description> + </method> + <method name="get_outputs" qualifiers="const"> + <return type="String"> + </return> + <description> + </description> + </method> + <method name="get_size" qualifiers="const"> + <return type="Vector2"> + </return> + <description> + </description> + </method> + <method name="has_input_port" qualifiers="const"> + <return type="bool"> + </return> + <argument index="0" name="id" type="int"> + </argument> + <description> + </description> + </method> + <method name="has_output_port" qualifiers="const"> + <return type="bool"> + </return> + <argument index="0" name="id" type="int"> + </argument> + <description> + </description> + </method> + <method name="remove_input_port"> + <return type="void"> + </return> + <argument index="0" name="id" type="int"> + </argument> + <description> + </description> + </method> + <method name="remove_output_port"> + <return type="void"> + </return> + <argument index="0" name="id" type="int"> + </argument> + <description> + </description> + </method> + <method name="set_control"> + <return type="void"> + </return> + <argument index="0" name="control" type="Control"> + </argument> + <argument index="1" name="index" type="int"> + </argument> + <description> + </description> + </method> + <method name="set_input_port_name"> + <return type="void"> + </return> + <argument index="0" name="arg0" type="int"> + </argument> + <argument index="1" name="arg1" type="String"> + </argument> + <description> + </description> + </method> + <method name="set_input_port_type"> + <return type="void"> + </return> + <argument index="0" name="arg0" type="int"> + </argument> + <argument index="1" name="arg1" type="int"> + </argument> + <description> + </description> + </method> + <method name="set_inputs"> + <return type="void"> + </return> + <argument index="0" name="inputs" type="String"> + </argument> + <description> + </description> + </method> + <method name="set_output_port_name"> + <return type="void"> + </return> + <argument index="0" name="arg0" type="int"> + </argument> + <argument index="1" name="arg1" type="String"> + </argument> + <description> + </description> + </method> + <method name="set_output_port_type"> + <return type="void"> + </return> + <argument index="0" name="arg0" type="int"> + </argument> + <argument index="1" name="arg1" type="int"> + </argument> + <description> + </description> + </method> + <method name="set_outputs"> + <return type="void"> + </return> + <argument index="0" name="outputs" type="String"> + </argument> + <description> + </description> + </method> + <method name="set_size"> + <return type="void"> + </return> + <argument index="0" name="size" type="Vector2"> + </argument> + <description> + </description> + </method> + </methods> + <constants> + </constants> +</class> diff --git a/doc/classes/VisualShaderNodeScalarFunc.xml b/doc/classes/VisualShaderNodeScalarFunc.xml index 163276b3bc..b0ee422bbd 100644 --- a/doc/classes/VisualShaderNodeScalarFunc.xml +++ b/doc/classes/VisualShaderNodeScalarFunc.xml @@ -75,5 +75,7 @@ </constant> <constant name="FUNC_TRUNC" value="30" enum="Function"> </constant> + <constant name="FUNC_ONEMINUS" value="31" enum="Function"> + </constant> </constants> </class> diff --git a/doc/classes/VisualShaderNodeVectorFunc.xml b/doc/classes/VisualShaderNodeVectorFunc.xml index 71ce32c04e..e67cb2e07f 100644 --- a/doc/classes/VisualShaderNodeVectorFunc.xml +++ b/doc/classes/VisualShaderNodeVectorFunc.xml @@ -81,5 +81,7 @@ </constant> <constant name="FUNC_TRUNC" value="33" enum="Function"> </constant> + <constant name="FUNC_ONEMINUS" value="34" enum="Function"> + </constant> </constants> </class> diff --git a/doc/classes/WindowDialog.xml b/doc/classes/WindowDialog.xml index 16b7bd84ad..c5d66af984 100644 --- a/doc/classes/WindowDialog.xml +++ b/doc/classes/WindowDialog.xml @@ -13,7 +13,7 @@ <return type="TextureButton"> </return> <description> - Return the close [TextureButton]. + Returns the close [TextureButton]. </description> </method> </methods> diff --git a/doc/tools/makerst.py b/doc/tools/makerst.py index c3e15b2f9a..454c71d3c7 100755 --- a/doc/tools/makerst.py +++ b/doc/tools/makerst.py @@ -478,24 +478,7 @@ def make_rst_class(class_def, state, dry_run, output_dir): # type: (ClassDef, S f.write(make_heading('Tutorials', '-')) for t in class_def.tutorials: link = t.strip() - match = GODOT_DOCS_PATTERN.search(link) - if match: - groups = match.groups() - if match.lastindex == 2: - # Doc reference with fragment identifier: emit direct link to section with reference to page, for example: - # `#calling-javascript-from-script in Exporting For Web` - f.write("- `" + groups[1] + " <../" + groups[0] + ".html" + groups[1] + ">`_ in :doc:`../" + groups[0] + "`\n\n") - # Commented out alternative: Instead just emit: - # `Subsection in Exporting For Web` - # f.write("- `Subsection <../" + groups[0] + ".html" + groups[1] + ">`_ in :doc:`../" + groups[0] + "`\n\n") - elif match.lastindex == 1: - # Doc reference, for example: - # `Math` - f.write("- :doc:`../" + groups[0] + "`\n\n") - else: - # External link, for example: - # `http://enet.bespin.org/usergroup0.html` - f.write("- `" + link + " <" + link + ">`_\n\n") + f.write("- " + make_url(link) + "\n\n") # Property descriptions if len(class_def.properties) > 0: @@ -802,15 +785,16 @@ def rstize_text(text, state): # type: (str, State) -> str tag_text = "" # '' elif cmd.find('url=') == 0: url_link = cmd[4:] - tag_text = ':ref:`' + tag_text = '`' tag_depth += 1 - url_has_name = False inside_url = True + url_has_name = False elif cmd == '/url': - tag_text = ('' if url_has_name else url_link) + '<' + url_link + ">`" + tag_text = ('' if url_has_name else url_link) + " <" + url_link + ">`_" tag_depth -= 1 escape_post = True inside_url = False + url_has_name = False elif cmd == 'center': tag_depth += 1 tag_text = '' @@ -996,5 +980,26 @@ def make_heading(title, underline): # type: (str, str) -> str return title + '\n' + (underline * len(title)) + "\n\n" +def make_url(link): # type: (str) -> str + match = GODOT_DOCS_PATTERN.search(link) + if match: + groups = match.groups() + if match.lastindex == 2: + # Doc reference with fragment identifier: emit direct link to section with reference to page, for example: + # `#calling-javascript-from-script in Exporting For Web` + return "`" + groups[1] + " <../" + groups[0] + ".html" + groups[1] + ">`_ in :doc:`../" + groups[0] + "`" + # Commented out alternative: Instead just emit: + # `Subsection in Exporting For Web` + # return "`Subsection <../" + groups[0] + ".html" + groups[1] + ">`__ in :doc:`../" + groups[0] + "`" + elif match.lastindex == 1: + # Doc reference, for example: + # `Math` + return ":doc:`../" + groups[0] + "`" + else: + # External link, for example: + # `http://enet.bespin.org/usergroup0.html` + return "`" + link + " <" + link + ">`_" + + if __name__ == '__main__': main() diff --git a/drivers/dummy/rasterizer_dummy.h b/drivers/dummy/rasterizer_dummy.h index 3b31da1dd7..3deaef09e7 100644 --- a/drivers/dummy/rasterizer_dummy.h +++ b/drivers/dummy/rasterizer_dummy.h @@ -61,6 +61,7 @@ public: void environment_set_bg_energy(RID p_env, float p_energy) {} void environment_set_canvas_max_layer(RID p_env, int p_max_layer) {} void environment_set_ambient_light(RID p_env, const Color &p_color, float p_energy = 1.0, float p_sky_contribution = 0.0) {} + void environment_set_camera_feed_id(RID p_env, int p_camera_feed_id){}; void environment_set_dof_blur_near(RID p_env, bool p_enable, float p_distance, float p_transition, float p_far_amount, VS::EnvironmentDOFBlurQuality p_quality) {} void environment_set_dof_blur_far(RID p_env, bool p_enable, float p_distance, float p_transition, float p_far_amount, VS::EnvironmentDOFBlurQuality p_quality) {} @@ -216,6 +217,7 @@ public: uint32_t texture_get_height(RID p_texture) const { return 0; } uint32_t texture_get_depth(RID p_texture) const { return 0; } void texture_set_size_override(RID p_texture, int p_width, int p_height, int p_depth_3d) {} + void texture_bind(RID p_texture, uint32_t p_texture_no) {} void texture_set_path(RID p_texture, const String &p_path) { DummyTexture *t = texture_owner.getornull(p_texture); @@ -692,6 +694,7 @@ public: /* RENDER TARGET */ RID render_target_create() { return RID(); } + void render_target_set_position(RID p_render_target, int p_x, int p_y) {} void render_target_set_size(RID p_render_target, int p_width, int p_height) {} RID render_target_get_texture(RID p_render_target) const { return RID(); } void render_target_set_external_texture(RID p_render_target, unsigned int p_texture_id) {} @@ -779,7 +782,7 @@ public: RasterizerCanvas *get_canvas() { return &canvas; } RasterizerScene *get_scene() { return &scene; } - void set_boot_image(const Ref<Image> &p_image, const Color &p_color, bool p_scale) {} + void set_boot_image(const Ref<Image> &p_image, const Color &p_color, bool p_scale, bool p_use_filter = true) {} void initialize() {} void begin_frame(double frame_step) {} diff --git a/drivers/dummy/texture_loader_dummy.h b/drivers/dummy/texture_loader_dummy.h index 3038bffc95..0bc7fa226b 100644 --- a/drivers/dummy/texture_loader_dummy.h +++ b/drivers/dummy/texture_loader_dummy.h @@ -35,7 +35,6 @@ #include "scene/resources/texture.h" class ResourceFormatDummyTexture : public ResourceFormatLoader { - GDCLASS(ResourceFormatDummyTexture, ResourceFormatLoader) public: virtual RES load(const String &p_path, const String &p_original_path = "", Error *r_error = NULL); virtual void get_recognized_extensions(List<String> *p_extensions) const; diff --git a/drivers/gles2/rasterizer_canvas_gles2.cpp b/drivers/gles2/rasterizer_canvas_gles2.cpp index 7232d2d95a..b82186162d 100644 --- a/drivers/gles2/rasterizer_canvas_gles2.cpp +++ b/drivers/gles2/rasterizer_canvas_gles2.cpp @@ -113,9 +113,22 @@ void RasterizerCanvasGLES2::canvas_begin() { state.canvas_shader.bind(); state.using_transparent_rt = false; + int viewport_x, viewport_y, viewport_width, viewport_height; + if (storage->frame.current_rt) { glBindFramebuffer(GL_FRAMEBUFFER, storage->frame.current_rt->fbo); state.using_transparent_rt = storage->frame.current_rt->flags[RasterizerStorage::RENDER_TARGET_TRANSPARENT]; + + if (storage->frame.current_rt->flags[RasterizerStorage::RENDER_TARGET_DIRECT_TO_SCREEN]) { + // set Viewport and Scissor when rendering directly to screen + viewport_width = storage->frame.current_rt->width; + viewport_height = storage->frame.current_rt->height; + viewport_x = storage->frame.current_rt->x; + viewport_y = OS::get_singleton()->get_window_size().height - viewport_height - storage->frame.current_rt->y; + glScissor(viewport_x, viewport_y, viewport_width, viewport_height); + glViewport(viewport_x, viewport_y, viewport_width, viewport_height); + glEnable(GL_SCISSOR_TEST); + } } if (storage->frame.clear_request) { @@ -179,6 +192,14 @@ void RasterizerCanvasGLES2::canvas_end() { glDisableVertexAttribArray(i); } + if (storage->frame.current_rt && storage->frame.current_rt->flags[RasterizerStorage::RENDER_TARGET_DIRECT_TO_SCREEN]) { + //reset viewport to full window size + int viewport_width = OS::get_singleton()->get_window_size().width; + int viewport_height = OS::get_singleton()->get_window_size().height; + glViewport(0, 0, viewport_width, viewport_height); + glScissor(0, 0, viewport_width, viewport_height); + } + state.using_texture_rect = false; state.using_skeleton = false; state.using_ninepatch = false; @@ -1060,6 +1081,8 @@ void RasterizerCanvasGLES2::_canvas_item_render_commands(Item *p_item, Item *cur } else { glVertexAttrib4fv(INSTANCE_ATTRIB_BASE + 3, buffer + color_ofs); } + } else { + glVertexAttrib4f(INSTANCE_ATTRIB_BASE + 3, 1.0, 1.0, 1.0, 1.0); } if (multi_mesh->custom_data_floats) { @@ -1192,6 +1215,11 @@ void RasterizerCanvasGLES2::_canvas_item_render_commands(Item *p_item, Item *cur void RasterizerCanvasGLES2::_copy_screen(const Rect2 &p_rect) { + if (storage->frame.current_rt->flags[RasterizerStorage::RENDER_TARGET_DIRECT_TO_SCREEN]) { + ERR_PRINT_ONCE("Cannot use screen texture copying in render target set to render direct to screen"); + return; + } + if (storage->frame.current_rt->copy_screen_effect.color == 0) { ERR_EXPLAIN("Can't use screen texture copying in a render target configured without copy buffers"); ERR_FAIL(); diff --git a/drivers/gles2/rasterizer_gles2.cpp b/drivers/gles2/rasterizer_gles2.cpp index f49f52e47b..cbd0e4a5d5 100644 --- a/drivers/gles2/rasterizer_gles2.cpp +++ b/drivers/gles2/rasterizer_gles2.cpp @@ -338,7 +338,7 @@ void RasterizerGLES2::clear_render_target(const Color &p_color) { storage->frame.clear_request_color = p_color; } -void RasterizerGLES2::set_boot_image(const Ref<Image> &p_image, const Color &p_color, bool p_scale) { +void RasterizerGLES2::set_boot_image(const Ref<Image> &p_image, const Color &p_color, bool p_scale, bool p_use_filter) { if (p_image.is_null() || p_image->empty()) return; @@ -360,7 +360,7 @@ void RasterizerGLES2::set_boot_image(const Ref<Image> &p_image, const Color &p_c canvas->canvas_begin(); RID texture = storage->texture_create(); - storage->texture_allocate(texture, p_image->get_width(), p_image->get_height(), 0, p_image->get_format(), VS::TEXTURE_TYPE_2D, VS::TEXTURE_FLAG_FILTER); + storage->texture_allocate(texture, p_image->get_width(), p_image->get_height(), 0, p_image->get_format(), VS::TEXTURE_TYPE_2D, p_use_filter ? VS::TEXTURE_FLAG_FILTER : 0); storage->texture_set_data(texture, p_image); Rect2 imgrect(0, 0, p_image->get_width(), p_image->get_height()); diff --git a/drivers/gles2/rasterizer_gles2.h b/drivers/gles2/rasterizer_gles2.h index eeed86e263..4d0d961ae4 100644 --- a/drivers/gles2/rasterizer_gles2.h +++ b/drivers/gles2/rasterizer_gles2.h @@ -51,7 +51,7 @@ public: virtual RasterizerCanvas *get_canvas(); virtual RasterizerScene *get_scene(); - virtual void set_boot_image(const Ref<Image> &p_image, const Color &p_color, bool p_scale); + virtual void set_boot_image(const Ref<Image> &p_image, const Color &p_color, bool p_scale, bool p_use_filter = true); virtual void initialize(); virtual void begin_frame(double frame_step); diff --git a/drivers/gles2/rasterizer_scene_gles2.cpp b/drivers/gles2/rasterizer_scene_gles2.cpp index 2d9eec10d2..a07c6832dc 100644 --- a/drivers/gles2/rasterizer_scene_gles2.cpp +++ b/drivers/gles2/rasterizer_scene_gles2.cpp @@ -36,6 +36,7 @@ #include "core/project_settings.h" #include "core/vmap.h" #include "rasterizer_canvas_gles2.h" +#include "servers/camera/camera_feed.h" #include "servers/visual/visual_server_raster.h" #ifndef GLES_OVER_GL @@ -769,6 +770,13 @@ void RasterizerSceneGLES2::environment_set_ambient_light(RID p_env, const Color env->ambient_sky_contribution = p_sky_contribution; } +void RasterizerSceneGLES2::environment_set_camera_feed_id(RID p_env, int p_camera_feed_id) { + Environment *env = environment_owner.getornull(p_env); + ERR_FAIL_COND(!env); + + env->camera_feed_id = p_camera_feed_id; +} + void RasterizerSceneGLES2::environment_set_dof_blur_far(RID p_env, bool p_enable, float p_distance, float p_transition, float p_amount, VS::EnvironmentDOFBlurQuality p_quality) { Environment *env = environment_owner.getornull(p_env); ERR_FAIL_COND(!env); @@ -1011,7 +1019,7 @@ void RasterizerSceneGLES2::_add_geometry_with_material(RasterizerStorageGLES2::G has_alpha = false; } - RenderList::Element *e = has_alpha ? render_list.add_alpha_element() : render_list.add_element(); + RenderList::Element *e = (has_alpha || p_material->shader->spatial.no_depth_test) ? render_list.add_alpha_element() : render_list.add_element(); if (!e) { return; @@ -1027,6 +1035,7 @@ void RasterizerSceneGLES2::_add_geometry_with_material(RasterizerStorageGLES2::G e->light_index = RenderList::MAX_LIGHTS; e->use_accum_ptr = &e->use_accum; e->instancing = (e->instance->base_type == VS::INSTANCE_MULTIMESH) ? 1 : 0; + e->front_facing = false; if (e->geometry->last_pass != render_pass) { e->geometry->last_pass = render_pass; @@ -1046,6 +1055,10 @@ void RasterizerSceneGLES2::_add_geometry_with_material(RasterizerStorageGLES2::G e->material_index = e->material->index; + if (mirror) { + e->front_facing = true; + } + e->refprobe_0_index = RenderList::MAX_REFLECTION_PROBES; //refprobe disabled by default e->refprobe_1_index = RenderList::MAX_REFLECTION_PROBES; //refprobe disabled by default @@ -1257,7 +1270,29 @@ static const GLenum gl_primitive[] = { GL_TRIANGLE_FAN }; -bool RasterizerSceneGLES2::_setup_material(RasterizerStorageGLES2::Material *p_material, bool p_reverse_cull, bool p_alpha_pass, Size2i p_skeleton_tex_size) { +void RasterizerSceneGLES2::_set_cull(bool p_front, bool p_disabled, bool p_reverse_cull) { + + bool front = p_front; + if (p_reverse_cull) + front = !front; + + if (p_disabled != state.cull_disabled) { + if (p_disabled) + glDisable(GL_CULL_FACE); + else + glEnable(GL_CULL_FACE); + + state.cull_disabled = p_disabled; + } + + if (front != state.cull_front) { + + glCullFace(front ? GL_FRONT : GL_BACK); + state.cull_front = front; + } +} + +bool RasterizerSceneGLES2::_setup_material(RasterizerStorageGLES2::Material *p_material, bool p_alpha_pass, Size2i p_skeleton_tex_size) { // material parameters @@ -1295,21 +1330,6 @@ bool RasterizerSceneGLES2::_setup_material(RasterizerStorageGLES2::Material *p_m } break; } - switch (p_material->shader->spatial.cull_mode) { - case RasterizerStorageGLES2::Shader::Spatial::CULL_MODE_DISABLED: { - glDisable(GL_CULL_FACE); - } break; - - case RasterizerStorageGLES2::Shader::Spatial::CULL_MODE_BACK: { - glEnable(GL_CULL_FACE); - glCullFace(p_reverse_cull ? GL_FRONT : GL_BACK); - } break; - case RasterizerStorageGLES2::Shader::Spatial::CULL_MODE_FRONT: { - glEnable(GL_CULL_FACE); - glCullFace(p_reverse_cull ? GL_BACK : GL_FRONT); - } break; - } - int tc = p_material->textures.size(); const Pair<StringName, RID> *textures = p_material->textures.ptr(); @@ -2202,6 +2222,11 @@ void RasterizerSceneGLES2::_render_render_list(RenderList::Element **p_elements, int prev_blend_mode = -2; //will always catch the first go + state.cull_front = false; + state.cull_disabled = false; + glCullFace(GL_BACK); + glEnable(GL_CULL_FACE); + if (p_alpha_pass) { glEnable(GL_BLEND); } else { @@ -2244,7 +2269,7 @@ void RasterizerSceneGLES2::_render_render_list(RenderList::Element **p_elements, bool rebind_reflection = false; bool rebind_lightmap = false; - if (!p_shadow) { + if (!p_shadow && material->shader) { bool unshaded = material->shader->spatial.unshaded; @@ -2264,7 +2289,7 @@ void RasterizerSceneGLES2::_render_render_list(RenderList::Element **p_elements, bool depth_prepass = false; - if (!p_alpha_pass && material->shader && material->shader->spatial.depth_draw_mode == RasterizerStorageGLES2::Shader::Spatial::DEPTH_DRAW_ALPHA_PREPASS) { + if (!p_alpha_pass && material->shader->spatial.depth_draw_mode == RasterizerStorageGLES2::Shader::Spatial::DEPTH_DRAW_ALPHA_PREPASS) { depth_prepass = true; } @@ -2441,12 +2466,14 @@ void RasterizerSceneGLES2::_render_render_list(RenderList::Element **p_elements, if (rebind || material != prev_material) { storage->info.render.material_switch_count++; - shader_rebind = _setup_material(material, p_reverse_cull, p_alpha_pass, Size2i(skeleton ? skeleton->size * 3 : 0, 0)); + shader_rebind = _setup_material(material, p_alpha_pass, Size2i(skeleton ? skeleton->size * 3 : 0, 0)); if (shader_rebind) { storage->info.render.shader_rebind_count++; } } + _set_cull(e->front_facing, material->shader->spatial.cull_mode == RasterizerStorageGLES2::Shader::Spatial::CULL_MODE_DISABLED, p_reverse_cull); + if (i == 0 || shader_rebind) { //first time must rebind if (p_shadow) { @@ -2695,6 +2722,8 @@ void RasterizerSceneGLES2::render_scene(const Transform &p_cam_transform, const Environment *env = NULL; int viewport_width, viewport_height; + int viewport_x = 0; + int viewport_y = 0; bool probe_interior = false; bool reverse_cull = false; @@ -2734,6 +2763,13 @@ void RasterizerSceneGLES2::render_scene(const Transform &p_cam_transform, const viewport_width = storage->frame.current_rt->width; viewport_height = storage->frame.current_rt->height; + viewport_x = storage->frame.current_rt->x; + + if (storage->frame.current_rt->flags[RasterizerStorage::RENDER_TARGET_DIRECT_TO_SCREEN]) { + viewport_y = OS::get_singleton()->get_window_size().height - viewport_height - storage->frame.current_rt->y; + } else { + viewport_y = storage->frame.current_rt->y; + } } state.used_screen_texture = false; @@ -2799,7 +2835,13 @@ void RasterizerSceneGLES2::render_scene(const Transform &p_cam_transform, const // other stuff glBindFramebuffer(GL_FRAMEBUFFER, current_fb); - glViewport(0, 0, viewport_width, viewport_height); + glViewport(viewport_x, viewport_y, viewport_width, viewport_height); + + if (storage->frame.current_rt && storage->frame.current_rt->flags[RasterizerStorage::RENDER_TARGET_DIRECT_TO_SCREEN]) { + + glScissor(viewport_x, viewport_y, viewport_width, viewport_height); + glEnable(GL_SCISSOR_TEST); + } glDepthFunc(GL_LEQUAL); glDepthMask(GL_TRUE); @@ -2809,6 +2851,7 @@ void RasterizerSceneGLES2::render_scene(const Transform &p_cam_transform, const // clear color Color clear_color(0, 0, 0, 1); + Ref<CameraFeed> feed; if (storage->frame.current_rt && storage->frame.current_rt->flags[RasterizerStorage::RENDER_TARGET_TRANSPARENT]) { clear_color = Color(0, 0, 0, 0); @@ -2821,6 +2864,9 @@ void RasterizerSceneGLES2::render_scene(const Transform &p_cam_transform, const } else if (env->bg_mode == VS::ENV_BG_CANVAS || env->bg_mode == VS::ENV_BG_COLOR || env->bg_mode == VS::ENV_BG_COLOR_SKY) { clear_color = env->bg_color; storage->frame.clear_request = false; + } else if (env->bg_mode == VS::ENV_BG_CAMERA_FEED) { + feed = CameraServer::get_singleton()->get_feed_by_id(env->camera_feed_id); + storage->frame.clear_request = false; } else { storage->frame.clear_request = false; } @@ -2834,6 +2880,10 @@ void RasterizerSceneGLES2::render_scene(const Transform &p_cam_transform, const glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); + if (storage->frame.current_rt && storage->frame.current_rt->flags[RasterizerStorage::RENDER_TARGET_DIRECT_TO_SCREEN]) { + glDisable(GL_SCISSOR_TEST); + } + glVertexAttrib4f(VS::ARRAY_COLOR, 1, 1, 1, 1); glBlendEquation(GL_FUNC_ADD); @@ -2853,20 +2903,72 @@ void RasterizerSceneGLES2::render_scene(const Transform &p_cam_transform, const env_radiance_tex = sky->radiance; } } break; + case VS::ENV_BG_CAMERA_FEED: { + if (feed.is_valid() && (feed->get_base_width() > 0) && (feed->get_base_height() > 0)) { + // copy our camera feed to our background + + glDisable(GL_BLEND); + glDepthMask(GL_FALSE); + glDisable(GL_DEPTH_TEST); + glDisable(GL_CULL_FACE); + + storage->shaders.copy.set_conditional(CopyShaderGLES2::USE_NO_ALPHA, true); + storage->shaders.copy.set_conditional(CopyShaderGLES2::USE_DISPLAY_TRANSFORM, true); + + if (feed->get_datatype() == CameraFeed::FEED_RGB) { + RID camera_RGBA = feed->get_texture(CameraServer::FEED_RGBA_IMAGE); + VS::get_singleton()->texture_bind(camera_RGBA, 0); + + } else if (feed->get_datatype() == CameraFeed::FEED_YCbCr) { + RID camera_YCbCr = feed->get_texture(CameraServer::FEED_YCbCr_IMAGE); + + VS::get_singleton()->texture_bind(camera_YCbCr, 0); + + storage->shaders.copy.set_conditional(CopyShaderGLES2::YCBCR_TO_RGB, true); + + } else if (feed->get_datatype() == CameraFeed::FEED_YCbCr_Sep) { + RID camera_Y = feed->get_texture(CameraServer::FEED_Y_IMAGE); + RID camera_CbCr = feed->get_texture(CameraServer::FEED_CbCr_IMAGE); + + VS::get_singleton()->texture_bind(camera_Y, 0); + VS::get_singleton()->texture_bind(camera_CbCr, 1); + + storage->shaders.copy.set_conditional(CopyShaderGLES2::SEP_CBCR_TEXTURE, true); + storage->shaders.copy.set_conditional(CopyShaderGLES2::YCBCR_TO_RGB, true); + }; + + storage->shaders.copy.bind(); + storage->shaders.copy.set_uniform(CopyShaderGLES2::DISPLAY_TRANSFORM, feed->get_transform()); + + storage->bind_quad_array(); + glDrawArrays(GL_TRIANGLE_FAN, 0, 4); + glDisableVertexAttribArray(VS::ARRAY_VERTEX); + glDisableVertexAttribArray(VS::ARRAY_TEX_UV); + glBindBuffer(GL_ARRAY_BUFFER, 0); + + // turn off everything used + storage->shaders.copy.set_conditional(CopyShaderGLES2::SEP_CBCR_TEXTURE, false); + storage->shaders.copy.set_conditional(CopyShaderGLES2::YCBCR_TO_RGB, false); + storage->shaders.copy.set_conditional(CopyShaderGLES2::USE_NO_ALPHA, false); + storage->shaders.copy.set_conditional(CopyShaderGLES2::USE_DISPLAY_TRANSFORM, false); + + //restore + glEnable(GL_BLEND); + glDepthMask(GL_TRUE); + glEnable(GL_DEPTH_TEST); + glEnable(GL_CULL_FACE); + } else { + // don't have a feed, just show greenscreen :) + clear_color = Color(0.0, 1.0, 0.0, 1.0); + } + } break; default: { // FIXME: implement other background modes } break; } } - if (env && env->bg_mode == VS::ENV_BG_SKY && (!storage->frame.current_rt || !storage->frame.current_rt->flags[RasterizerStorage::RENDER_TARGET_TRANSPARENT])) { - - if (sky && sky->panorama.is_valid()) { - _draw_sky(sky, p_cam_projection, cam_transform, false, env->sky_custom_fov, env->bg_energy, env->sky_orientation); - } - } - if (probe_interior) { env_radiance_tex = 0; //do not use radiance texture on interiors state.default_ambient = Color(0, 0, 0, 1); //black as default ambient for interior @@ -2877,10 +2979,18 @@ void RasterizerSceneGLES2::render_scene(const Transform &p_cam_transform, const render_list.sort_by_key(false); _render_render_list(render_list.elements, render_list.element_count, cam_transform, p_cam_projection, p_shadow_atlas, env, env_radiance_tex, 0.0, 0.0, reverse_cull, false, false); + // then draw the sky after + if (env && env->bg_mode == VS::ENV_BG_SKY && (!storage->frame.current_rt || !storage->frame.current_rt->flags[RasterizerStorage::RENDER_TARGET_TRANSPARENT])) { + + if (sky && sky->panorama.is_valid()) { + _draw_sky(sky, p_cam_projection, cam_transform, false, env->sky_custom_fov, env->bg_energy, env->sky_orientation); + } + } + if (storage->frame.current_rt && state.used_screen_texture) { //copy screen texture - if (storage->frame.current_rt && storage->frame.current_rt->multisample_active) { + if (storage->frame.current_rt->multisample_active) { // Resolve framebuffer to front buffer before copying #ifdef GLES_OVER_GL @@ -2892,14 +3002,16 @@ void RasterizerSceneGLES2::render_scene(const Transform &p_cam_transform, const glBindFramebuffer(GL_READ_FRAMEBUFFER, 0); glBindFramebuffer(GL_DRAW_FRAMEBUFFER, 0); #elif IPHONE_ENABLED + glBindFramebuffer(GL_READ_FRAMEBUFFER, storage->frame.current_rt->multisample_fbo); glBindFramebuffer(GL_DRAW_FRAMEBUFFER, storage->frame.current_rt->fbo); glResolveMultisampleFramebufferAPPLE(); glBindFramebuffer(GL_READ_FRAMEBUFFER, 0); glBindFramebuffer(GL_DRAW_FRAMEBUFFER, 0); -#else - // In GLES2 Blit is not available, so just copy color texture manually +#elif ANDROID_ENABLED + + // In GLES2 AndroidBlit is not available, so just copy color texture manually _copy_texture_to_front_buffer(storage->frame.current_rt->multisample_color); #endif } @@ -2933,8 +3045,17 @@ void RasterizerSceneGLES2::render_scene(const Transform &p_cam_transform, const glBindFramebuffer(GL_READ_FRAMEBUFFER, 0); glBindFramebuffer(GL_DRAW_FRAMEBUFFER, 0); -#else - // In GLES2 Blit is not available, so just copy color texture manually +#elif IPHONE_ENABLED + + glBindFramebuffer(GL_READ_FRAMEBUFFER, storage->frame.current_rt->multisample_fbo); + glBindFramebuffer(GL_DRAW_FRAMEBUFFER, storage->frame.current_rt->fbo); + glResolveMultisampleFramebufferAPPLE(); + + glBindFramebuffer(GL_READ_FRAMEBUFFER, 0); + glBindFramebuffer(GL_DRAW_FRAMEBUFFER, 0); +#elif ANDROID_ENABLED + + // In GLES2 Android Blit is not available, so just copy color texture manually _copy_texture_to_front_buffer(storage->frame.current_rt->multisample_color); #endif } diff --git a/drivers/gles2/rasterizer_scene_gles2.h b/drivers/gles2/rasterizer_scene_gles2.h index d805984dca..c95385eb24 100644 --- a/drivers/gles2/rasterizer_scene_gles2.h +++ b/drivers/gles2/rasterizer_scene_gles2.h @@ -198,14 +198,15 @@ public: int directional_light_count; int reflection_probe_count; - bool cull_front; - bool cull_disabled; bool used_sss; bool using_contact_shadows; VS::ViewportDebugDraw debug_draw; */ + bool cull_front; + bool cull_disabled; + bool used_screen_texture; bool shadow_is_dual_parabolloid; float dual_parbolloid_direction; @@ -353,6 +354,8 @@ public: float bg_energy; float sky_ambient; + int camera_feed_id; + Color ambient_color; float ambient_energy; float ambient_sky_contribution; @@ -380,6 +383,7 @@ public: sky_custom_fov(0.0), bg_energy(1.0), sky_ambient(0), + camera_feed_id(0), ambient_energy(1.0), ambient_sky_contribution(0.0), canvas_max_layer(0), @@ -412,6 +416,7 @@ public: virtual void environment_set_bg_energy(RID p_env, float p_energy); virtual void environment_set_canvas_max_layer(RID p_env, int p_max_layer); virtual void environment_set_ambient_light(RID p_env, const Color &p_color, float p_energy = 1.0, float p_sky_contribution = 0.0); + virtual void environment_set_camera_feed_id(RID p_env, int p_camera_feed_id); virtual void environment_set_dof_blur_near(RID p_env, bool p_enable, float p_distance, float p_transition, float p_amount, VS::EnvironmentDOFBlurQuality p_quality); virtual void environment_set_dof_blur_far(RID p_env, bool p_enable, float p_distance, float p_transition, float p_amount, VS::EnvironmentDOFBlurQuality p_quality); @@ -503,8 +508,7 @@ public: enum { MAX_LIGHTS = 255, MAX_REFLECTION_PROBES = 255, - DEFAULT_MAX_ELEMENTS = 65536, - SORT_KEY_PRIORITY_SHIFT = 56 + DEFAULT_MAX_ELEMENTS = 65536 }; int max_elements; @@ -518,6 +522,7 @@ public: bool use_accum; //is this an add pass for multipass bool *use_accum_ptr; + bool front_facing; union { //TODO: should be endian swapped on big endian @@ -603,12 +608,10 @@ public: struct SortByReverseDepthAndPriority { _FORCE_INLINE_ bool operator()(const Element *A, const Element *B) const { - uint32_t layer_A = uint32_t(A->sort_key >> SORT_KEY_PRIORITY_SHIFT); - uint32_t layer_B = uint32_t(B->sort_key >> SORT_KEY_PRIORITY_SHIFT); - if (layer_A == layer_B) { + if (A->priority == B->priority) { return A->instance->depth > B->instance->depth; } else { - return layer_A < layer_B; + return A->priority < B->priority; } } }; @@ -687,7 +690,8 @@ public: void _draw_sky(RasterizerStorageGLES2::Sky *p_sky, const CameraMatrix &p_projection, const Transform &p_transform, bool p_vflip, float p_custom_fov, float p_energy, const Basis &p_sky_orientation); - _FORCE_INLINE_ bool _setup_material(RasterizerStorageGLES2::Material *p_material, bool p_reverse_cull, bool p_alpha_pass, Size2i p_skeleton_tex_size = Size2i(0, 0)); + _FORCE_INLINE_ void _set_cull(bool p_front, bool p_disabled, bool p_reverse_cull); + _FORCE_INLINE_ bool _setup_material(RasterizerStorageGLES2::Material *p_material, bool p_alpha_pass, Size2i p_skeleton_tex_size = Size2i(0, 0)); _FORCE_INLINE_ void _setup_geometry(RenderList::Element *p_element, RasterizerStorageGLES2::Skeleton *p_skeleton); _FORCE_INLINE_ void _setup_light_type(LightInstance *p_light, ShadowAtlas *shadow_atlas); _FORCE_INLINE_ void _setup_light(LightInstance *p_light, ShadowAtlas *shadow_atlas, const Transform &p_view_transform); diff --git a/drivers/gles2/rasterizer_storage_gles2.cpp b/drivers/gles2/rasterizer_storage_gles2.cpp index d709056709..418be136b8 100644 --- a/drivers/gles2/rasterizer_storage_gles2.cpp +++ b/drivers/gles2/rasterizer_storage_gles2.cpp @@ -91,7 +91,7 @@ GLuint RasterizerStorageGLES2::system_fbo = 0; //void *glRenderbufferStorageMultisampleAPPLE; //void *glResolveMultisampleFramebufferAPPLE; #define glRenderbufferStorageMultisample glRenderbufferStorageMultisampleAPPLE -#else +#elif ANDROID_ENABLED #include <GLES2/gl2ext.h> PFNGLRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC glRenderbufferStorageMultisampleEXT; @@ -968,6 +968,15 @@ uint32_t RasterizerStorageGLES2::texture_get_texid(RID p_texture) const { return texture->tex_id; } +void RasterizerStorageGLES2::texture_bind(RID p_texture, uint32_t p_texture_no) { + Texture *texture = texture_owner.getornull(p_texture); + + ERR_FAIL_COND(!texture); + + glActiveTexture(GL_TEXTURE0 + p_texture_no); + glBindTexture(texture->target, texture->tex_id); +} + uint32_t RasterizerStorageGLES2::texture_get_width(RID p_texture) const { Texture *texture = texture_owner.getornull(p_texture); @@ -2418,6 +2427,18 @@ void RasterizerStorageGLES2::mesh_add_surface(RID p_mesh, uint32_t p_format, VS: } surface->data = array; surface->index_data = p_index_array; +#else + // Even on non-tools builds, a copy of the surface->data is needed in certain circumstances. + // Rigged meshes using the USE_SKELETON_SOFTWARE path need to read bone data + // from surface->data. + + // if USE_SKELETON_SOFTWARE is active + if (!config.float_texture_supported) { + // if this geometry is used specifically for skinning + if (p_format & (VS::ARRAY_FORMAT_BONES | VS::ARRAY_FORMAT_WEIGHTS)) + surface->data = array; + } + // An alternative is to always make a copy of surface->data. #endif surface->total_data_size += surface->array_byte_size + surface->index_array_byte_size; @@ -4568,9 +4589,16 @@ void RasterizerStorageGLES2::instance_remove_dependency(RID p_base, RasterizerSc void RasterizerStorageGLES2::_render_target_allocate(RenderTarget *rt) { + // do not allocate a render target with no size if (rt->width <= 0 || rt->height <= 0) return; + // do not allocate a render target that is attached to the screen + if (rt->flags[RENDER_TARGET_DIRECT_TO_SCREEN]) { + rt->fbo = RasterizerStorageGLES2::system_fbo; + return; + } + GLuint color_internal_format; GLuint color_format; GLuint color_type = GL_UNSIGNED_BYTE; @@ -4681,6 +4709,7 @@ void RasterizerStorageGLES2::_render_target_allocate(RenderTarget *rt) { /* BACK FBO */ /* For MSAA */ +#ifndef JAVASCRIPT_ENABLED if (rt->msaa != VS::VIEWPORT_MSAA_DISABLED && config.multisample_supported) { rt->multisample_active = true; @@ -4712,7 +4741,7 @@ void RasterizerStorageGLES2::_render_target_allocate(RenderTarget *rt) { glRenderbufferStorageMultisample(GL_RENDERBUFFER, msaa, color_internal_format, rt->width, rt->height); glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_RENDERBUFFER, rt->multisample_color); -#else +#elif ANDROID_ENABLED // Render to a texture in android glGenTextures(1, &rt->multisample_color); glBindTexture(GL_TEXTURE_2D, rt->multisample_color); @@ -4736,7 +4765,9 @@ void RasterizerStorageGLES2::_render_target_allocate(RenderTarget *rt) { glBindRenderbuffer(GL_RENDERBUFFER, 0); - } else { + } else +#endif + { rt->multisample_active = false; } @@ -4779,6 +4810,10 @@ void RasterizerStorageGLES2::_render_target_allocate(RenderTarget *rt) { void RasterizerStorageGLES2::_render_target_clear(RenderTarget *rt) { + // there is nothing to clear when DIRECT_TO_SCREEN is used + if (rt->flags[RENDER_TARGET_DIRECT_TO_SCREEN]) + return; + if (rt->fbo) { glDeleteFramebuffers(1, &rt->fbo); glDeleteTextures(1, &rt->color); @@ -4873,6 +4908,15 @@ RID RasterizerStorageGLES2::render_target_create() { return render_target_owner.make_rid(rt); } +void RasterizerStorageGLES2::render_target_set_position(RID p_render_target, int p_x, int p_y) { + + RenderTarget *rt = render_target_owner.getornull(p_render_target); + ERR_FAIL_COND(!rt); + + rt->x = p_x; + rt->y = p_y; +} + void RasterizerStorageGLES2::render_target_set_size(RID p_render_target, int p_width, int p_height) { RenderTarget *rt = render_target_owner.getornull(p_render_target); @@ -5002,6 +5046,14 @@ void RasterizerStorageGLES2::render_target_set_flag(RID p_render_target, RenderT RenderTarget *rt = render_target_owner.getornull(p_render_target); ERR_FAIL_COND(!rt); + // When setting DIRECT_TO_SCREEN, you need to clear before the value is set, but allocate after as + // those functions change how they operate depending on the value of DIRECT_TO_SCREEN + if (p_flag == RENDER_TARGET_DIRECT_TO_SCREEN && p_value != rt->flags[RENDER_TARGET_DIRECT_TO_SCREEN]) { + _render_target_clear(rt); + rt->flags[p_flag] = p_value; + _render_target_allocate(rt); + } + rt->flags[p_flag] = p_value; switch (p_flag) { @@ -5574,11 +5626,11 @@ void RasterizerStorageGLES2::initialize() { //Manually load extensions for android and ios #ifdef IPHONE_ENABLED - + // appears that IPhone doesn't need to dlopen TODO: test this rigorously before removing //void *gles2_lib = dlopen(NULL, RTLD_LAZY); //glRenderbufferStorageMultisampleAPPLE = dlsym(gles2_lib, "glRenderbufferStorageMultisampleAPPLE"); //glResolveMultisampleFramebufferAPPLE = dlsym(gles2_lib, "glResolveMultisampleFramebufferAPPLE"); -#else +#elif ANDROID_ENABLED void *gles2_lib = dlopen("libGLESv2.so", RTLD_LAZY); glRenderbufferStorageMultisampleEXT = (PFNGLRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC)dlsym(gles2_lib, "glRenderbufferStorageMultisampleEXT"); diff --git a/drivers/gles2/rasterizer_storage_gles2.h b/drivers/gles2/rasterizer_storage_gles2.h index 3134082e2a..d139697b86 100644 --- a/drivers/gles2/rasterizer_storage_gles2.h +++ b/drivers/gles2/rasterizer_storage_gles2.h @@ -350,6 +350,7 @@ public: virtual uint32_t texture_get_height(RID p_texture) const; virtual uint32_t texture_get_depth(RID p_texture) const; virtual void texture_set_size_override(RID p_texture, int p_width, int p_height, int p_depth); + virtual void texture_bind(RID p_texture, uint32_t p_texture_no); virtual void texture_set_path(RID p_texture, const String &p_path); virtual String texture_get_path(RID p_texture) const; @@ -1175,7 +1176,7 @@ public: } } external; - int width, height; + int x, y, width, height; bool flags[RENDER_TARGET_FLAG_MAX]; @@ -1192,6 +1193,8 @@ public: multisample_color(0), multisample_depth(0), multisample_active(false), + x(0), + y(0), width(0), height(0), used_in_frame(false), @@ -1209,6 +1212,7 @@ public: void _render_target_allocate(RenderTarget *rt); virtual RID render_target_create(); + virtual void render_target_set_position(RID p_render_target, int p_x, int p_y); virtual void render_target_set_size(RID p_render_target, int p_width, int p_height); virtual RID render_target_get_texture(RID p_render_target) const; virtual void render_target_set_external_texture(RID p_render_target, unsigned int p_texture_id); diff --git a/drivers/gles2/shader_compiler_gles2.cpp b/drivers/gles2/shader_compiler_gles2.cpp index d00b03fb8a..b48b93944c 100644 --- a/drivers/gles2/shader_compiler_gles2.cpp +++ b/drivers/gles2/shader_compiler_gles2.cpp @@ -316,9 +316,14 @@ String ShaderCompilerGLES2::_dump_node_code(SL::Node *p_node, int p_level, Gener for (Map<StringName, SL::ShaderNode::Uniform>::Element *E = snode->uniforms.front(); E; E = E->next()) { StringBuffer<> uniform_code; - uniform_code += "uniform "; + // use highp if no precision is specified to prevent different default values in fragment and vertex shader + SL::DataPrecision precision = E->get().precision; + if (precision == SL::PRECISION_DEFAULT) { + precision = SL::PRECISION_HIGHP; + } - uniform_code += _prestr(E->get().precision); + uniform_code += "uniform "; + uniform_code += _prestr(precision); uniform_code += _typestr(E->get().type); uniform_code += " "; uniform_code += _mkid(E->key()); @@ -356,6 +361,21 @@ String ShaderCompilerGLES2::_dump_node_code(SL::Node *p_node, int p_level, Gener fragment_global += final_code; } + // constants + + for (Map<StringName, SL::ShaderNode::Constant>::Element *E = snode->constants.front(); E; E = E->next()) { + String gcode; + gcode += "const "; + gcode += _prestr(E->get().precision); + gcode += _typestr(E->get().type); + gcode += " " + _mkid(E->key()); + gcode += "="; + gcode += _dump_node_code(E->get().initializer, p_level, r_gen_code, p_actions, p_default_actions, p_assigning); + gcode += ";\n"; + vertex_global += gcode; + fragment_global += gcode; + } + // functions Map<StringName, String> function_code; @@ -934,6 +954,7 @@ ShaderCompilerGLES2::ShaderCompilerGLES2() { actions[VS::SHADER_SPATIAL].render_mode_defines["specular_disabled"] = "#define SPECULAR_DISABLED\n"; actions[VS::SHADER_SPATIAL].render_mode_defines["shadows_disabled"] = "#define SHADOWS_DISABLED\n"; actions[VS::SHADER_SPATIAL].render_mode_defines["ambient_light_disabled"] = "#define AMBIENT_LIGHT_DISABLED\n"; + actions[VS::SHADER_SPATIAL].render_mode_defines["shadow_to_opacity"] = "#define USE_SHADOW_TO_OPACITY\n"; // No defines for particle shaders in GLES2, there are no GPU particles diff --git a/drivers/gles2/shader_gles2.h b/drivers/gles2/shader_gles2.h index ebea40e10e..2456a83d35 100644 --- a/drivers/gles2/shader_gles2.h +++ b/drivers/gles2/shader_gles2.h @@ -1,4 +1,4 @@ -/*************************************************************************/ +/*************************************************************************/ /* shader_gles2.h */ /*************************************************************************/ /* This file is part of: */ diff --git a/drivers/gles2/shaders/canvas.glsl b/drivers/gles2/shaders/canvas.glsl index 7dce784f52..0818942b0a 100644 --- a/drivers/gles2/shaders/canvas.glsl +++ b/drivers/gles2/shaders/canvas.glsl @@ -112,7 +112,12 @@ void main() { #ifdef USE_INSTANCING mat4 extra_matrix_instance = extra_matrix * transpose(mat4(instance_xform0, instance_xform1, instance_xform2, vec4(0.0, 0.0, 0.0, 1.0))); color *= instance_color; + +#ifdef USE_INSTANCE_CUSTOM vec4 instance_custom = instance_custom_data; +#else + vec4 instance_custom = vec4(0.0); +#endif #else mat4 extra_matrix_instance = extra_matrix; diff --git a/drivers/gles2/shaders/copy.glsl b/drivers/gles2/shaders/copy.glsl index 931b3f3708..195db7c45f 100644 --- a/drivers/gles2/shaders/copy.glsl +++ b/drivers/gles2/shaders/copy.glsl @@ -28,8 +28,15 @@ varying vec2 uv_interp; #endif varying vec2 uv2_interp; +// These definitions are here because the shader-wrapper builder does +// not understand `#elif defined()` +#ifdef USE_DISPLAY_TRANSFORM +#endif + #ifdef USE_COPY_SECTION uniform highp vec4 copy_section; +#elif defined(USE_DISPLAY_TRANSFORM) +uniform highp mat4 display_transform; #endif void main() { @@ -48,6 +55,8 @@ void main() { #ifdef USE_COPY_SECTION uv_interp = copy_section.xy + uv_interp * copy_section.zw; gl_Position.xy = (copy_section.xy + (gl_Position.xy * 0.5 + 0.5) * copy_section.zw) * 2.0 - 1.0; +#elif defined(USE_DISPLAY_TRANSFORM) + uv_interp = (display_transform * vec4(uv_in, 1.0, 1.0)).xy; #endif } @@ -88,6 +97,10 @@ uniform samplerCube source_cube; // texunit:0 uniform sampler2D source; // texunit:0 #endif +#ifdef SEP_CBCR_TEXTURE +uniform sampler2D CbCr; //texunit:1 +#endif + varying vec2 uv2_interp; #ifdef USE_MULTIPLIER @@ -145,10 +158,26 @@ void main() { #elif defined(USE_CUBEMAP) vec4 color = textureCube(source_cube, normalize(cube_interp)); +#elif defined(SEP_CBCR_TEXTURE) + vec4 color; + color.r = texture2D(source, uv_interp).r; + color.gb = texture2D(CbCr, uv_interp).rg - vec2(0.5, 0.5); + color.a = 1.0; #else vec4 color = texture2D(source, uv_interp); #endif +#ifdef YCBCR_TO_RGB + // YCbCr -> RGB conversion + + // Using BT.601, which is the standard for SDTV is provided as a reference + color.rgb = mat3( + vec3(1.00000, 1.00000, 1.00000), + vec3(0.00000, -0.34413, 1.77200), + vec3(1.40200, -0.71414, 0.00000)) * + color.rgb; +#endif + #ifdef USE_NO_ALPHA color.a = 1.0; #endif diff --git a/drivers/gles2/shaders/scene.glsl b/drivers/gles2/shaders/scene.glsl index 0fa290e57c..2aef913ae8 100644 --- a/drivers/gles2/shaders/scene.glsl +++ b/drivers/gles2/shaders/scene.glsl @@ -1151,7 +1151,8 @@ void light_compute( float clearcoat_gloss, float anisotropy, inout vec3 diffuse_light, - inout vec3 specular_light) { + inout vec3 specular_light, + inout float alpha) { //this makes lights behave closer to linear, but then addition of lights looks bad //better left disabled @@ -1306,10 +1307,10 @@ LIGHT_SHADER_CODE // shlick+ggx as default #if defined(LIGHT_USE_ANISOTROPY) - float alpha = roughness * roughness; + float alpha_ggx = roughness * roughness; float aspect = sqrt(1.0 - anisotropy * 0.9); - float ax = alpha / aspect; - float ay = alpha * aspect; + float ax = alpha_ggx / aspect; + float ay = alpha_ggx * aspect; float XdotH = dot(T, H); float YdotH = dot(B, H); float D = D_GGX_anisotropic(cNdotH, ax, ay, XdotH, YdotH, cNdotH); @@ -1317,10 +1318,10 @@ LIGHT_SHADER_CODE float G = V_GGX_anisotropic(ax, ay, dot(T, V), dot(T, L), dot(B, V), dot(B, L), cNdotV, cNdotL); #else - float alpha = roughness * roughness; - float D = D_GGX(cNdotH, alpha); - //float G = G_GGX_2cos(cNdotL, alpha) * G_GGX_2cos(cNdotV, alpha); - float G = V_GGX(cNdotL, cNdotV, alpha); + float alpha_ggx = roughness * roughness; + float D = D_GGX(cNdotH, alpha_ggx); + //float G = G_GGX_2cos(cNdotL, alpha_ggx) * G_GGX_2cos(cNdotV, alpha_ggx); + float G = V_GGX(cNdotL, cNdotV, alpha_ggx); #endif // F vec3 f0 = F0(metallic, specular, diffuse_color); @@ -1350,6 +1351,10 @@ LIGHT_SHADER_CODE #endif } +#ifdef USE_SHADOW_TO_OPACITY + alpha = min(alpha, clamp(1.0 - length(attenuation), 0.0, 1.0)); +#endif + #endif //defined(USE_LIGHT_SHADER_CODE) } @@ -1535,17 +1540,21 @@ FRAGMENT_SHADER_CODE vec3 eye_position = view; +#if !defined(USE_SHADOW_TO_OPACITY) + #if defined(ALPHA_SCISSOR_USED) if (alpha < alpha_scissor) { discard; } -#endif +#endif // ALPHA_SCISSOR_USED #ifdef USE_DEPTH_PREPASS if (alpha < 0.99) { discard; } -#endif +#endif // USE_DEPTH_PREPASS + +#endif // !USE_SHADOW_TO_OPACITY #ifdef BASE_PASS //none @@ -2061,13 +2070,32 @@ FRAGMENT_SHADER_CODE clearcoat_gloss, anisotropy, diffuse_light, - specular_light); + specular_light, + alpha); #endif //vertex lighting #endif //USE_LIGHTING //compute and merge +#ifdef USE_SHADOW_TO_OPACITY + + alpha = min(alpha, clamp(length(ambient_light), 0.0, 1.0)); + +#if defined(ALPHA_SCISSOR_USED) + if (alpha < alpha_scissor) { + discard; + } +#endif // ALPHA_SCISSOR_USED + +#ifdef USE_DEPTH_PREPASS + if (alpha < 0.99) { + discard; + } +#endif // USE_DEPTH_PREPASS + +#endif // !USE_SHADOW_TO_OPACITY + #ifndef RENDER_DEPTH #ifdef SHADELESS @@ -2105,8 +2133,6 @@ FRAGMENT_SHADER_CODE #endif // gl_FragColor = vec4(normal, 1.0); -#endif //unshaded - //apply fog #if defined(FOG_DEPTH_ENABLED) || defined(FOG_HEIGHT_ENABLED) @@ -2161,6 +2187,8 @@ FRAGMENT_SHADER_CODE #endif // defined(FOG_DEPTH_ENABLED) || defined(FOG_HEIGHT_ENABLED) +#endif //unshaded + #else // not RENDER_DEPTH //depth render #ifdef USE_RGBA_SHADOWS diff --git a/drivers/gles3/rasterizer_gles3.cpp b/drivers/gles3/rasterizer_gles3.cpp index bdffb1ecdc..ea15a278d6 100644 --- a/drivers/gles3/rasterizer_gles3.cpp +++ b/drivers/gles3/rasterizer_gles3.cpp @@ -273,7 +273,7 @@ void RasterizerGLES3::clear_render_target(const Color &p_color) { storage->frame.clear_request_color = p_color; } -void RasterizerGLES3::set_boot_image(const Ref<Image> &p_image, const Color &p_color, bool p_scale) { +void RasterizerGLES3::set_boot_image(const Ref<Image> &p_image, const Color &p_color, bool p_scale, bool p_use_filter) { if (p_image.is_null() || p_image->empty()) return; @@ -296,7 +296,7 @@ void RasterizerGLES3::set_boot_image(const Ref<Image> &p_image, const Color &p_c canvas->canvas_begin(); RID texture = storage->texture_create(); - storage->texture_allocate(texture, p_image->get_width(), p_image->get_height(), 0, p_image->get_format(), VS::TEXTURE_TYPE_2D, VS::TEXTURE_FLAG_FILTER); + storage->texture_allocate(texture, p_image->get_width(), p_image->get_height(), 0, p_image->get_format(), VS::TEXTURE_TYPE_2D, p_use_filter ? VS::TEXTURE_FLAG_FILTER : 0); storage->texture_set_data(texture, p_image); Rect2 imgrect(0, 0, p_image->get_width(), p_image->get_height()); diff --git a/drivers/gles3/rasterizer_gles3.h b/drivers/gles3/rasterizer_gles3.h index ad0d004c9d..8fa208a1aa 100644 --- a/drivers/gles3/rasterizer_gles3.h +++ b/drivers/gles3/rasterizer_gles3.h @@ -51,7 +51,7 @@ public: virtual RasterizerCanvas *get_canvas(); virtual RasterizerScene *get_scene(); - virtual void set_boot_image(const Ref<Image> &p_image, const Color &p_color, bool p_scale); + virtual void set_boot_image(const Ref<Image> &p_image, const Color &p_color, bool p_scale, bool p_use_filter = true); virtual void initialize(); virtual void begin_frame(double frame_step); diff --git a/drivers/gles3/rasterizer_scene_gles3.cpp b/drivers/gles3/rasterizer_scene_gles3.cpp index 9aec348291..7acb8a22bc 100644 --- a/drivers/gles3/rasterizer_scene_gles3.cpp +++ b/drivers/gles3/rasterizer_scene_gles3.cpp @@ -34,6 +34,7 @@ #include "core/os/os.h" #include "core/project_settings.h" #include "rasterizer_canvas_gles3.h" +#include "servers/camera/camera_feed.h" #include "servers/visual/visual_server_raster.h" #ifndef GLES_OVER_GL @@ -830,6 +831,12 @@ void RasterizerSceneGLES3::environment_set_ambient_light(RID p_env, const Color env->ambient_energy = p_energy; env->ambient_sky_contribution = p_sky_contribution; } +void RasterizerSceneGLES3::environment_set_camera_feed_id(RID p_env, int p_camera_feed_id) { + Environment *env = environment_owner.getornull(p_env); + ERR_FAIL_COND(!env); + + env->camera_feed_id = p_camera_feed_id; +} void RasterizerSceneGLES3::environment_set_dof_blur_far(RID p_env, bool p_enable, float p_distance, float p_transition, float p_amount, VS::EnvironmentDOFBlurQuality p_quality) { @@ -2374,7 +2381,7 @@ void RasterizerSceneGLES3::_add_geometry_with_material(RasterizerStorageGLES3::G has_alpha = false; } - RenderList::Element *e = has_alpha ? render_list.add_alpha_element() : render_list.add_element(); + RenderList::Element *e = (has_alpha || p_material->shader->spatial.no_depth_test) ? render_list.add_alpha_element() : render_list.add_element(); if (!e) return; @@ -3304,7 +3311,7 @@ void RasterizerSceneGLES3::_prepare_depth_texture() { void RasterizerSceneGLES3::_bind_depth_texture() { if (!state.bound_depth_texture) { - ERR_FAIL_COND(!state.prepared_depth_texture) + ERR_FAIL_COND(!state.prepared_depth_texture); //bind depth for read glActiveTexture(GL_TEXTURE0 + storage->config.max_texture_image_units - 8); glBindTexture(GL_TEXTURE_2D, storage->frame.current_rt->depth); @@ -4342,6 +4349,7 @@ void RasterizerSceneGLES3::render_scene(const Transform &p_cam_transform, const Color clear_color(0, 0, 0, 0); RasterizerStorageGLES3::Sky *sky = NULL; + Ref<CameraFeed> feed; GLuint env_radiance_tex = 0; if (state.debug_draw == VS::VIEWPORT_DEBUG_DRAW_OVERDRAW) { @@ -4376,6 +4384,9 @@ void RasterizerSceneGLES3::render_scene(const Transform &p_cam_transform, const clear_color = env->bg_color.to_linear(); storage->frame.clear_request = false; + } else if (env->bg_mode == VS::ENV_BG_CAMERA_FEED) { + feed = CameraServer::get_singleton()->get_feed_by_id(env->camera_feed_id); + storage->frame.clear_request = false; } else { storage->frame.clear_request = false; } @@ -4426,6 +4437,63 @@ void RasterizerSceneGLES3::render_scene(const Transform &p_cam_transform, const glEnable(GL_DEPTH_TEST); glEnable(GL_CULL_FACE); break; + case VS::ENV_BG_CAMERA_FEED: + if (feed.is_valid() && (feed->get_base_width() > 0) && (feed->get_base_height() > 0)) { + // copy our camera feed to our background + + glDisable(GL_BLEND); + glDepthMask(GL_FALSE); + glDisable(GL_DEPTH_TEST); + glDisable(GL_CULL_FACE); + + storage->shaders.copy.set_conditional(CopyShaderGLES3::USE_DISPLAY_TRANSFORM, true); + storage->shaders.copy.set_conditional(CopyShaderGLES3::DISABLE_ALPHA, true); + storage->shaders.copy.set_conditional(CopyShaderGLES3::SRGB_TO_LINEAR, true); + + if (feed->get_datatype() == CameraFeed::FEED_RGB) { + RID camera_RGBA = feed->get_texture(CameraServer::FEED_RGBA_IMAGE); + + VS::get_singleton()->texture_bind(camera_RGBA, 0); + } else if (feed->get_datatype() == CameraFeed::FEED_YCbCr) { + RID camera_YCbCr = feed->get_texture(CameraServer::FEED_YCbCr_IMAGE); + + VS::get_singleton()->texture_bind(camera_YCbCr, 0); + + storage->shaders.copy.set_conditional(CopyShaderGLES3::YCBCR_TO_SRGB, true); + + } else if (feed->get_datatype() == CameraFeed::FEED_YCbCr_Sep) { + RID camera_Y = feed->get_texture(CameraServer::FEED_Y_IMAGE); + RID camera_CbCr = feed->get_texture(CameraServer::FEED_CbCr_IMAGE); + + VS::get_singleton()->texture_bind(camera_Y, 0); + VS::get_singleton()->texture_bind(camera_CbCr, 1); + + storage->shaders.copy.set_conditional(CopyShaderGLES3::SEP_CBCR_TEXTURE, true); + storage->shaders.copy.set_conditional(CopyShaderGLES3::YCBCR_TO_SRGB, true); + }; + + storage->shaders.copy.bind(); + storage->shaders.copy.set_uniform(CopyShaderGLES3::DISPLAY_TRANSFORM, feed->get_transform()); + + _copy_screen(true, true); + + //turn off everything used + storage->shaders.copy.set_conditional(CopyShaderGLES3::USE_DISPLAY_TRANSFORM, false); + storage->shaders.copy.set_conditional(CopyShaderGLES3::DISABLE_ALPHA, false); + storage->shaders.copy.set_conditional(CopyShaderGLES3::SRGB_TO_LINEAR, false); + storage->shaders.copy.set_conditional(CopyShaderGLES3::SEP_CBCR_TEXTURE, false); + storage->shaders.copy.set_conditional(CopyShaderGLES3::YCBCR_TO_SRGB, false); + + //restore + glEnable(GL_BLEND); + glDepthMask(GL_TRUE); + glEnable(GL_DEPTH_TEST); + glEnable(GL_CULL_FACE); + } else { + // don't have a feed, just show greenscreen :) + clear_color = Color(0.0, 1.0, 0.0, 1.0); + } + break; default: { } } @@ -4552,8 +4620,8 @@ void RasterizerSceneGLES3::render_scene(const Transform &p_cam_transform, const } _post_process(env, p_cam_projection); - - if (false && shadow_atlas) { + // Needed only for debugging + /* if (shadow_atlas && storage->frame.current_rt) { //_copy_texture_to_front_buffer(shadow_atlas->depth); storage->canvas->canvas_begin(); @@ -4563,7 +4631,7 @@ void RasterizerSceneGLES3::render_scene(const Transform &p_cam_transform, const storage->canvas->draw_generic_textured_rect(Rect2(0, 0, storage->frame.current_rt->width / 2, storage->frame.current_rt->height / 2), Rect2(0, 0, 1, 1)); } - if (false && storage->frame.current_rt) { + if (storage->frame.current_rt) { //_copy_texture_to_front_buffer(shadow_atlas->depth); storage->canvas->canvas_begin(); @@ -4573,7 +4641,7 @@ void RasterizerSceneGLES3::render_scene(const Transform &p_cam_transform, const storage->canvas->draw_generic_textured_rect(Rect2(0, 0, storage->frame.current_rt->width / 16, storage->frame.current_rt->height / 16), Rect2(0, 0, 1, 1)); } - if (false && reflection_atlas && storage->frame.current_rt) { + if (reflection_atlas && storage->frame.current_rt) { //_copy_texture_to_front_buffer(shadow_atlas->depth); storage->canvas->canvas_begin(); @@ -4582,7 +4650,7 @@ void RasterizerSceneGLES3::render_scene(const Transform &p_cam_transform, const storage->canvas->draw_generic_textured_rect(Rect2(0, 0, storage->frame.current_rt->width / 2, storage->frame.current_rt->height / 2), Rect2(0, 0, 1, 1)); } - if (false && directional_shadow.fbo) { + if (directional_shadow.fbo) { //_copy_texture_to_front_buffer(shadow_atlas->depth); storage->canvas->canvas_begin(); @@ -4592,7 +4660,7 @@ void RasterizerSceneGLES3::render_scene(const Transform &p_cam_transform, const storage->canvas->draw_generic_textured_rect(Rect2(0, 0, storage->frame.current_rt->width / 2, storage->frame.current_rt->height / 2), Rect2(0, 0, 1, 1)); } - if (false && env_radiance_tex) { + if ( env_radiance_tex) { //_copy_texture_to_front_buffer(shadow_atlas->depth); storage->canvas->canvas_begin(); @@ -4603,8 +4671,7 @@ void RasterizerSceneGLES3::render_scene(const Transform &p_cam_transform, const storage->canvas->draw_generic_textured_rect(Rect2(0, 0, storage->frame.current_rt->width / 2, storage->frame.current_rt->height / 2), Rect2(0, 0, 1, 1)); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); - } - + }*/ //disable all stuff } diff --git a/drivers/gles3/rasterizer_scene_gles3.h b/drivers/gles3/rasterizer_scene_gles3.h index 59e23e5ac9..910f90edc2 100644 --- a/drivers/gles3/rasterizer_scene_gles3.h +++ b/drivers/gles3/rasterizer_scene_gles3.h @@ -376,6 +376,8 @@ public: float bg_energy; float sky_ambient; + int camera_feed_id; + Color ambient_color; float ambient_energy; float ambient_sky_contribution; @@ -461,6 +463,7 @@ public: sky_custom_fov(0.0), bg_energy(1.0), sky_ambient(0), + camera_feed_id(0), ambient_energy(1.0), ambient_sky_contribution(0.0), canvas_max_layer(0), @@ -542,6 +545,7 @@ public: virtual void environment_set_bg_energy(RID p_env, float p_energy); virtual void environment_set_canvas_max_layer(RID p_env, int p_max_layer); virtual void environment_set_ambient_light(RID p_env, const Color &p_color, float p_energy = 1.0, float p_sky_contribution = 0.0); + virtual void environment_set_camera_feed_id(RID p_env, int p_camera_feed_id); virtual void environment_set_dof_blur_near(RID p_env, bool p_enable, float p_distance, float p_transition, float p_amount, VS::EnvironmentDOFBlurQuality p_quality); virtual void environment_set_dof_blur_far(RID p_env, bool p_enable, float p_distance, float p_transition, float p_amount, VS::EnvironmentDOFBlurQuality p_quality); diff --git a/drivers/gles3/rasterizer_storage_gles3.cpp b/drivers/gles3/rasterizer_storage_gles3.cpp index 661be28e6b..f8a3283869 100644 --- a/drivers/gles3/rasterizer_storage_gles3.cpp +++ b/drivers/gles3/rasterizer_storage_gles3.cpp @@ -1437,6 +1437,15 @@ uint32_t RasterizerStorageGLES3::texture_get_texid(RID p_texture) const { return texture->tex_id; } +void RasterizerStorageGLES3::texture_bind(RID p_texture, uint32_t p_texture_no) { + + Texture *texture = texture_owner.getornull(p_texture); + + ERR_FAIL_COND(!texture); + + glActiveTexture(GL_TEXTURE0 + p_texture_no); + glBindTexture(texture->target, texture->tex_id); +} uint32_t RasterizerStorageGLES3::texture_get_width(RID p_texture) const { Texture *texture = texture_owner.get(p_texture); @@ -3501,7 +3510,7 @@ void RasterizerStorageGLES3::mesh_add_surface(RID p_mesh, uint32_t p_format, VS: if (p_vertex_count < (1 << 16)) { //read 16 bit indices const uint16_t *src_idx = (const uint16_t *)ir.ptr(); - for (int i = 0; i < index_count; i += 6) { + for (int i = 0; i + 5 < index_count; i += 6) { wr[i + 0] = src_idx[i / 2]; wr[i + 1] = src_idx[i / 2 + 1]; @@ -3515,7 +3524,7 @@ void RasterizerStorageGLES3::mesh_add_surface(RID p_mesh, uint32_t p_format, VS: //read 16 bit indices const uint32_t *src_idx = (const uint32_t *)ir.ptr(); - for (int i = 0; i < index_count; i += 6) { + for (int i = 0; i + 5 < index_count; i += 6) { wr[i + 0] = src_idx[i / 2]; wr[i + 1] = src_idx[i / 2 + 1]; @@ -3531,7 +3540,7 @@ void RasterizerStorageGLES3::mesh_add_surface(RID p_mesh, uint32_t p_format, VS: index_count = p_vertex_count * 2; wf_indices.resize(index_count); PoolVector<uint32_t>::Write wr = wf_indices.write(); - for (int i = 0; i < index_count; i += 6) { + for (int i = 0; i + 5 < index_count; i += 6) { wr[i + 0] = i / 2; wr[i + 1] = i / 2 + 1; @@ -3772,28 +3781,30 @@ PoolVector<uint8_t> RasterizerStorageGLES3::mesh_surface_get_index_array(RID p_m Surface *surface = mesh->surfaces[p_surface]; - ERR_FAIL_COND_V(surface->index_array_len == 0, PoolVector<uint8_t>()); - PoolVector<uint8_t> ret; ret.resize(surface->index_array_byte_size); - glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, surface->index_id); + + if (surface->index_array_byte_size > 0) { + glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, surface->index_id); #if defined(GLES_OVER_GL) || defined(__EMSCRIPTEN__) - { - PoolVector<uint8_t>::Write w = ret.write(); - glGetBufferSubData(GL_ELEMENT_ARRAY_BUFFER, 0, surface->index_array_byte_size, w.ptr()); - } + { + PoolVector<uint8_t>::Write w = ret.write(); + glGetBufferSubData(GL_ELEMENT_ARRAY_BUFFER, 0, surface->index_array_byte_size, w.ptr()); + } #else - void *data = glMapBufferRange(GL_ELEMENT_ARRAY_BUFFER, 0, surface->index_array_byte_size, GL_MAP_READ_BIT); - ERR_FAIL_NULL_V(data, PoolVector<uint8_t>()); - { - PoolVector<uint8_t>::Write w = ret.write(); - copymem(w.ptr(), data, surface->index_array_byte_size); - } - glUnmapBuffer(GL_ELEMENT_ARRAY_BUFFER); + void *data = glMapBufferRange(GL_ELEMENT_ARRAY_BUFFER, 0, surface->index_array_byte_size, GL_MAP_READ_BIT); + ERR_FAIL_NULL_V(data, PoolVector<uint8_t>()); + { + PoolVector<uint8_t>::Write w = ret.write(); + copymem(w.ptr(), data, surface->index_array_byte_size); + } + glUnmapBuffer(GL_ELEMENT_ARRAY_BUFFER); #endif - glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0); + glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0); + } + return ret; } @@ -7268,6 +7279,10 @@ RID RasterizerStorageGLES3::render_target_create() { return render_target_owner.make_rid(rt); } +void RasterizerStorageGLES3::render_target_set_position(RID p_render_target, int p_x, int p_y) { + //only used in GLES2 +} + void RasterizerStorageGLES3::render_target_set_size(RID p_render_target, int p_width, int p_height) { RenderTarget *rt = render_target_owner.getornull(p_render_target); @@ -8154,7 +8169,7 @@ void RasterizerStorageGLES3::initialize() { } shaders.cubemap_filter.init(); - bool ggx_hq = GLOBAL_GET("rendering/quality/reflections/high_quality_ggx.mobile"); + bool ggx_hq = GLOBAL_GET("rendering/quality/reflections/high_quality_ggx"); shaders.cubemap_filter.set_conditional(CubemapFilterShaderGLES3::LOW_QUALITY, !ggx_hq); shaders.particles.init(); diff --git a/drivers/gles3/rasterizer_storage_gles3.h b/drivers/gles3/rasterizer_storage_gles3.h index a4cc84ef02..badb656e96 100644 --- a/drivers/gles3/rasterizer_storage_gles3.h +++ b/drivers/gles3/rasterizer_storage_gles3.h @@ -297,6 +297,7 @@ public: target(GL_TEXTURE_2D), data_size(0), compressed(false), + srgb(false), total_data_size(0), ignore_mipmaps(false), mipmaps(0), @@ -357,6 +358,7 @@ public: virtual uint32_t texture_get_height(RID p_texture) const; virtual uint32_t texture_get_depth(RID p_texture) const; virtual void texture_set_size_override(RID p_texture, int p_width, int p_height, int p_depth); + virtual void texture_bind(RID p_texture, uint32_t p_texture_no); virtual void texture_set_path(RID p_texture, const String &p_path); virtual String texture_get_path(RID p_texture) const; @@ -1394,6 +1396,7 @@ public: void _render_target_allocate(RenderTarget *rt); virtual RID render_target_create(); + virtual void render_target_set_position(RID p_render_target, int p_x, int p_y); virtual void render_target_set_size(RID p_render_target, int p_width, int p_height); virtual RID render_target_get_texture(RID p_render_target) const; virtual void render_target_set_external_texture(RID p_render_target, unsigned int p_texture_id); diff --git a/drivers/gles3/shader_compiler_gles3.cpp b/drivers/gles3/shader_compiler_gles3.cpp index ad26294527..b0f0a71d56 100644 --- a/drivers/gles3/shader_compiler_gles3.cpp +++ b/drivers/gles3/shader_compiler_gles3.cpp @@ -472,6 +472,19 @@ String ShaderCompilerGLES3::_dump_node_code(SL::Node *p_node, int p_level, Gener r_gen_code.fragment_global += interp_mode + "in " + vcode; } + for (Map<StringName, SL::ShaderNode::Constant>::Element *E = pnode->constants.front(); E; E = E->next()) { + String gcode; + gcode += "const "; + gcode += _prestr(E->get().precision); + gcode += _typestr(E->get().type); + gcode += " " + _mkid(E->key()); + gcode += "="; + gcode += _dump_node_code(E->get().initializer, p_level, r_gen_code, p_actions, p_default_actions, p_assigning); + gcode += ";\n"; + r_gen_code.vertex_global += gcode; + r_gen_code.fragment_global += gcode; + } + Map<StringName, String> function_code; //code for functions @@ -944,6 +957,7 @@ ShaderCompilerGLES3::ShaderCompilerGLES3() { actions[VS::SHADER_SPATIAL].render_mode_defines["specular_disabled"] = "#define SPECULAR_DISABLED\n"; actions[VS::SHADER_SPATIAL].render_mode_defines["shadows_disabled"] = "#define SHADOWS_DISABLED\n"; actions[VS::SHADER_SPATIAL].render_mode_defines["ambient_light_disabled"] = "#define AMBIENT_LIGHT_DISABLED\n"; + actions[VS::SHADER_SPATIAL].render_mode_defines["shadow_to_opacity"] = "#define USE_SHADOW_TO_OPACITY\n"; /* PARTICLES SHADER */ diff --git a/drivers/gles3/shaders/canvas.glsl b/drivers/gles3/shaders/canvas.glsl index 0d1e7ee4a1..a46b31c92e 100644 --- a/drivers/gles3/shaders/canvas.glsl +++ b/drivers/gles3/shaders/canvas.glsl @@ -117,7 +117,12 @@ void main() { #ifdef USE_INSTANCING mat4 extra_matrix_instance = extra_matrix * transpose(mat4(instance_xform0, instance_xform1, instance_xform2, vec4(0.0, 0.0, 0.0, 1.0))); color *= instance_color; + +#ifdef USE_INSTANCE_CUSTOM vec4 instance_custom = instance_custom_data; +#else + vec4 instance_custom = vec4(0.0); +#endif #else mat4 extra_matrix_instance = extra_matrix; diff --git a/drivers/gles3/shaders/copy.glsl b/drivers/gles3/shaders/copy.glsl index e1a0813efc..232b9ce7c0 100644 --- a/drivers/gles3/shaders/copy.glsl +++ b/drivers/gles3/shaders/copy.glsl @@ -18,10 +18,19 @@ out vec2 uv_interp; out vec2 uv2_interp; +// These definitions are here because the shader-wrapper builder does +// not understand `#elif defined()` +#ifdef USE_DISPLAY_TRANSFORM +#endif + #ifdef USE_COPY_SECTION uniform vec4 copy_section; +#elif defined(USE_DISPLAY_TRANSFORM) + +uniform highp mat4 display_transform; + #endif void main() { @@ -44,6 +53,9 @@ void main() { uv_interp = copy_section.xy + uv_interp * copy_section.zw; gl_Position.xy = (copy_section.xy + (gl_Position.xy * 0.5 + 0.5) * copy_section.zw) * 2.0 - 1.0; +#elif defined(USE_DISPLAY_TRANSFORM) + + uv_interp = (display_transform * vec4(uv_in, 1.0, 1.0)).xy; #endif } @@ -73,6 +85,8 @@ uniform highp vec4 asym_proj; #endif #ifdef USE_TEXTURE2DARRAY #endif +#ifdef YCBCR_TO_SRGB +#endif #ifdef USE_CUBEMAP uniform samplerCube source_cube; //texunit:0 @@ -84,6 +98,10 @@ uniform sampler2DArray source_2d_array; //texunit:0 uniform sampler2D source; //texunit:0 #endif +#ifdef SEP_CBCR_TEXTURE +uniform sampler2D CbCr; //texunit:1 +#endif + /* clang-format on */ #if defined(USE_TEXTURE3D) || defined(USE_TEXTURE2DARRAY) @@ -166,14 +184,30 @@ void main() { vec4 color = textureLod(source_3d, vec3(uv_interp, layer), 0.0); #elif defined(USE_TEXTURE2DARRAY) vec4 color = textureLod(source_2d_array, vec3(uv_interp, layer), 0.0); +#elif defined(SEP_CBCR_TEXTURE) + vec4 color; + color.r = textureLod(source, uv_interp, 0.0).r; + color.gb = textureLod(CbCr, uv_interp, 0.0).rg - vec2(0.5, 0.5); + color.a = 1.0; #else vec4 color = textureLod(source, uv_interp, 0.0); #endif #ifdef LINEAR_TO_SRGB - //regular Linear -> SRGB conversion + // regular Linear -> SRGB conversion vec3 a = vec3(0.055); color.rgb = mix((vec3(1.0) + a) * pow(color.rgb, vec3(1.0 / 2.4)) - a, 12.92 * color.rgb, lessThan(color.rgb, vec3(0.0031308))); + +#elif defined(YCBCR_TO_SRGB) + + // YCbCr -> SRGB conversion + // Using BT.709 which is the standard for HDTV + color.rgb = mat3( + vec3(1.00000, 1.00000, 1.00000), + vec3(0.00000, -0.18732, 1.85560), + vec3(1.57481, -0.46813, 0.00000)) * + color.rgb; + #endif #ifdef SRGB_TO_LINEAR diff --git a/drivers/gles3/shaders/cubemap_filter.glsl b/drivers/gles3/shaders/cubemap_filter.glsl index f65f798ff0..619e29b130 100644 --- a/drivers/gles3/shaders/cubemap_filter.glsl +++ b/drivers/gles3/shaders/cubemap_filter.glsl @@ -163,7 +163,7 @@ vec2 Hammersley(uint i, uint N) { #else -#define SAMPLE_COUNT 512u +#define SAMPLE_COUNT 1024u #endif diff --git a/drivers/gles3/shaders/scene.glsl b/drivers/gles3/shaders/scene.glsl index def924cd49..f08d3f4d23 100644 --- a/drivers/gles3/shaders/scene.glsl +++ b/drivers/gles3/shaders/scene.glsl @@ -993,7 +993,7 @@ vec3 F0(float metallic, float specular, vec3 albedo) { return mix(vec3(dielectric), albedo, vec3(metallic)); } -void light_compute(vec3 N, vec3 L, vec3 V, vec3 B, vec3 T, vec3 light_color, vec3 attenuation, vec3 diffuse_color, vec3 transmission, float specular_blob_intensity, float roughness, float metallic, float specular, float rim, float rim_tint, float clearcoat, float clearcoat_gloss, float anisotropy, inout vec3 diffuse_light, inout vec3 specular_light) { +void light_compute(vec3 N, vec3 L, vec3 V, vec3 B, vec3 T, vec3 light_color, vec3 attenuation, vec3 diffuse_color, vec3 transmission, float specular_blob_intensity, float roughness, float metallic, float specular, float rim, float rim_tint, float clearcoat, float clearcoat_gloss, float anisotropy, inout vec3 diffuse_light, inout vec3 specular_light, inout float alpha) { #if defined(USE_LIGHT_SHADER_CODE) // light is written by the light shader @@ -1135,19 +1135,19 @@ LIGHT_SHADER_CODE #if defined(LIGHT_USE_ANISOTROPY) - float alpha = roughness * roughness; + float alpha_ggx = roughness * roughness; float aspect = sqrt(1.0 - anisotropy * 0.9); - float ax = alpha / aspect; - float ay = alpha * aspect; + float ax = alpha_ggx / aspect; + float ay = alpha_ggx * aspect; float XdotH = dot(T, H); float YdotH = dot(B, H); float D = D_GGX_anisotropic(cNdotH, ax, ay, XdotH, YdotH); float G = G_GGX_anisotropic_2cos(cNdotL, ax, ay, XdotH, YdotH) * G_GGX_anisotropic_2cos(cNdotV, ax, ay, XdotH, YdotH); #else - float alpha = roughness * roughness; - float D = D_GGX(cNdotH, alpha); - float G = G_GGX_2cos(cNdotL, alpha) * G_GGX_2cos(cNdotV, alpha); + float alpha_ggx = roughness * roughness; + float D = D_GGX(cNdotH, alpha_ggx); + float G = G_GGX_2cos(cNdotL, alpha_ggx) * G_GGX_2cos(cNdotV, alpha_ggx); #endif // F vec3 f0 = F0(metallic, specular, diffuse_color); @@ -1174,6 +1174,10 @@ LIGHT_SHADER_CODE #endif } +#ifdef USE_SHADOW_TO_OPACITY + alpha = min(alpha, clamp(1.0 - length(attenuation), 0.0, 1.0)); +#endif + #endif //defined(USE_LIGHT_SHADER_CODE) } @@ -1250,7 +1254,7 @@ vec3 light_transmittance(float translucency,vec3 light_vec, vec3 normal, vec3 po } #endif -void light_process_omni(int idx, vec3 vertex, vec3 eye_vec, vec3 normal, vec3 binormal, vec3 tangent, vec3 albedo, vec3 transmission, float roughness, float metallic, float specular, float rim, float rim_tint, float clearcoat, float clearcoat_gloss, float anisotropy, float p_blob_intensity, inout vec3 diffuse_light, inout vec3 specular_light) { +void light_process_omni(int idx, vec3 vertex, vec3 eye_vec, vec3 normal, vec3 binormal, vec3 tangent, vec3 albedo, vec3 transmission, float roughness, float metallic, float specular, float rim, float rim_tint, float clearcoat, float clearcoat_gloss, float anisotropy, float p_blob_intensity, inout vec3 diffuse_light, inout vec3 specular_light, inout float alpha) { vec3 light_rel_vec = omni_lights[idx].light_pos_inv_radius.xyz - vertex; float light_length = length(light_rel_vec); @@ -1304,10 +1308,10 @@ void light_process_omni(int idx, vec3 vertex, vec3 eye_vec, vec3 normal, vec3 bi light_attenuation *= mix(omni_lights[idx].shadow_color_contact.rgb, vec3(1.0), shadow); } #endif //SHADOWS_DISABLED - light_compute(normal, normalize(light_rel_vec), eye_vec, binormal, tangent, omni_lights[idx].light_color_energy.rgb, light_attenuation, albedo, transmission, omni_lights[idx].light_params.z * p_blob_intensity, roughness, metallic, specular, rim * omni_attenuation, rim_tint, clearcoat, clearcoat_gloss, anisotropy, diffuse_light, specular_light); + light_compute(normal, normalize(light_rel_vec), eye_vec, binormal, tangent, omni_lights[idx].light_color_energy.rgb, light_attenuation, albedo, transmission, omni_lights[idx].light_params.z * p_blob_intensity, roughness, metallic, specular, rim * omni_attenuation, rim_tint, clearcoat, clearcoat_gloss, anisotropy, diffuse_light, specular_light, alpha); } -void light_process_spot(int idx, vec3 vertex, vec3 eye_vec, vec3 normal, vec3 binormal, vec3 tangent, vec3 albedo, vec3 transmission, float roughness, float metallic, float specular, float rim, float rim_tint, float clearcoat, float clearcoat_gloss, float anisotropy, float p_blob_intensity, inout vec3 diffuse_light, inout vec3 specular_light) { +void light_process_spot(int idx, vec3 vertex, vec3 eye_vec, vec3 normal, vec3 binormal, vec3 tangent, vec3 albedo, vec3 transmission, float roughness, float metallic, float specular, float rim, float rim_tint, float clearcoat, float clearcoat_gloss, float anisotropy, float p_blob_intensity, inout vec3 diffuse_light, inout vec3 specular_light, inout float alpha) { vec3 light_rel_vec = spot_lights[idx].light_pos_inv_radius.xyz - vertex; float light_length = length(light_rel_vec); @@ -1339,7 +1343,7 @@ void light_process_spot(int idx, vec3 vertex, vec3 eye_vec, vec3 normal, vec3 bi } #endif //SHADOWS_DISABLED - light_compute(normal, normalize(light_rel_vec), eye_vec, binormal, tangent, spot_lights[idx].light_color_energy.rgb, light_attenuation, albedo, transmission, spot_lights[idx].light_params.z * p_blob_intensity, roughness, metallic, specular, rim * spot_attenuation, rim_tint, clearcoat, clearcoat_gloss, anisotropy, diffuse_light, specular_light); + light_compute(normal, normalize(light_rel_vec), eye_vec, binormal, tangent, spot_lights[idx].light_color_energy.rgb, light_attenuation, albedo, transmission, spot_lights[idx].light_params.z * p_blob_intensity, roughness, metallic, specular, rim * spot_attenuation, rim_tint, clearcoat, clearcoat_gloss, anisotropy, diffuse_light, specular_light, alpha); } void reflection_process(int idx, vec3 vertex, vec3 normal, vec3 binormal, vec3 tangent, float roughness, float anisotropy, vec3 ambient, vec3 skybox, inout highp vec4 reflection_accum, inout highp vec4 ambient_accum) { @@ -1705,11 +1709,13 @@ FRAGMENT_SHADER_CODE /* clang-format on */ } +#if !defined(USE_SHADOW_TO_OPACITY) + #if defined(ALPHA_SCISSOR_USED) if (alpha < alpha_scissor) { discard; } -#endif +#endif // ALPHA_SCISSOR_USED #ifdef USE_OPAQUE_PREPASS @@ -1717,7 +1723,9 @@ FRAGMENT_SHADER_CODE discard; } -#endif +#endif // USE_OPAQUE_PREPASS + +#endif // !USE_SHADOW_TO_OPACITY #if defined(ENABLE_NORMALMAP) @@ -1810,23 +1818,97 @@ FRAGMENT_SHADER_CODE ambient_light *= ambient_energy; float specular_blob_intensity = 1.0; + #if defined(SPECULAR_TOON) specular_blob_intensity *= specular * 2.0; #endif - // scales the specular reflections, needs to be be computed before lighting happens, - // but after environment and reflection probes are added - // Environment brdf approximation (Lazarov 2013) - // see https://www.unrealengine.com/en-US/blog/physically-based-shading-on-mobile - const vec4 c0 = vec4(-1.0, -0.0275, -0.572, 0.022); - const vec4 c1 = vec4(1.0, 0.0425, 1.04, -0.04); - vec4 r = roughness * c0 + c1; - float ndotv = clamp(dot(normal, eye_vec), 0.0, 1.0); - float a004 = min(r.x * r.x, exp2(-9.28 * ndotv)) * r.x + r.y; - vec2 env = vec2(-1.04, 1.04) * a004 + r.zw; +#ifdef USE_GI_PROBES + gi_probes_compute(vertex, normal, roughness, env_reflection_light, ambient_light); + +#endif + +#ifdef USE_LIGHTMAP + ambient_light = texture(lightmap, uv2).rgb * lightmap_energy; +#endif + +#ifdef USE_LIGHTMAP_CAPTURE + { + vec3 cone_dirs[12] = vec3[]( + vec3(0.0, 0.0, 1.0), + vec3(0.866025, 0.0, 0.5), + vec3(0.267617, 0.823639, 0.5), + vec3(-0.700629, 0.509037, 0.5), + vec3(-0.700629, -0.509037, 0.5), + vec3(0.267617, -0.823639, 0.5), + vec3(0.0, 0.0, -1.0), + vec3(0.866025, 0.0, -0.5), + vec3(0.267617, 0.823639, -0.5), + vec3(-0.700629, 0.509037, -0.5), + vec3(-0.700629, -0.509037, -0.5), + vec3(0.267617, -0.823639, -0.5)); + + vec3 local_normal = normalize(camera_matrix * vec4(normal, 0.0)).xyz; + vec4 captured = vec4(0.0); + float sum = 0.0; + for (int i = 0; i < 12; i++) { + float amount = max(0.0, dot(local_normal, cone_dirs[i])); //not correct, but creates a nice wrap around effect + captured += lightmap_captures[i] * amount; + sum += amount; + } + + captured /= sum; + + if (lightmap_capture_sky) { + ambient_light = mix(ambient_light, captured.rgb, captured.a); + } else { + ambient_light = captured.rgb; + } + } +#endif + +#ifdef USE_FORWARD_LIGHTING - vec3 f0 = F0(metallic, specular, albedo); - env_reflection_light *= env.x * f0 + env.y; + highp vec4 reflection_accum = vec4(0.0, 0.0, 0.0, 0.0); + highp vec4 ambient_accum = vec4(0.0, 0.0, 0.0, 0.0); + for (int i = 0; i < reflection_count; i++) { + reflection_process(reflection_indices[i], vertex, normal, binormal, tangent, roughness, anisotropy, ambient_light, env_reflection_light, reflection_accum, ambient_accum); + } + + if (reflection_accum.a > 0.0) { + specular_light += reflection_accum.rgb / reflection_accum.a; + } else { + specular_light += env_reflection_light; + } +#if !defined(USE_LIGHTMAP) && !defined(USE_LIGHTMAP_CAPTURE) + if (ambient_accum.a > 0.0) { + ambient_light = ambient_accum.rgb / ambient_accum.a; + } +#endif +#endif + + { + +#if defined(DIFFUSE_TOON) + //simplify for toon, as + specular_light *= specular * metallic * albedo * 2.0; +#else + + // scales the specular reflections, needs to be be computed before lighting happens, + // but after environment, GI, and reflection probes are added + // Environment brdf approximation (Lazarov 2013) + // see https://www.unrealengine.com/en-US/blog/physically-based-shading-on-mobile + const vec4 c0 = vec4(-1.0, -0.0275, -0.572, 0.022); + const vec4 c1 = vec4(1.0, 0.0425, 1.04, -0.04); + vec4 r = roughness * c0 + c1; + float ndotv = clamp(dot(normal, eye_vec), 0.0, 1.0); + float a004 = min(r.x * r.x, exp2(-9.28 * ndotv)) * r.x + r.y; + vec2 env = vec2(-1.04, 1.04) * a004 + r.zw; + + vec3 f0 = F0(metallic, specular, albedo); + specular_light *= env.x * f0 + env.y; +#endif + } #if defined(USE_LIGHT_DIRECTIONAL) @@ -1970,91 +2052,49 @@ FRAGMENT_SHADER_CODE specular_light *= mix(vec3(1.0), light_attenuation, specular_light_interp.a); #else - light_compute(normal, -light_direction_attenuation.xyz, eye_vec, binormal, tangent, light_color_energy.rgb, light_attenuation, albedo, transmission, light_params.z * specular_blob_intensity, roughness, metallic, specular, rim, rim_tint, clearcoat, clearcoat_gloss, anisotropy, diffuse_light, specular_light); + light_compute(normal, -light_direction_attenuation.xyz, eye_vec, binormal, tangent, light_color_energy.rgb, light_attenuation, albedo, transmission, light_params.z * specular_blob_intensity, roughness, metallic, specular, rim, rim_tint, clearcoat, clearcoat_gloss, anisotropy, diffuse_light, specular_light, alpha); #endif #endif //#USE_LIGHT_DIRECTIONAL -#ifdef USE_GI_PROBES - gi_probes_compute(vertex, normal, roughness, env_reflection_light, ambient_light); - -#endif - -#ifdef USE_LIGHTMAP - ambient_light = texture(lightmap, uv2).rgb * lightmap_energy; -#endif - -#ifdef USE_LIGHTMAP_CAPTURE - { - vec3 cone_dirs[12] = vec3[]( - vec3(0.0, 0.0, 1.0), - vec3(0.866025, 0.0, 0.5), - vec3(0.267617, 0.823639, 0.5), - vec3(-0.700629, 0.509037, 0.5), - vec3(-0.700629, -0.509037, 0.5), - vec3(0.267617, -0.823639, 0.5), - vec3(0.0, 0.0, -1.0), - vec3(0.866025, 0.0, -0.5), - vec3(0.267617, 0.823639, -0.5), - vec3(-0.700629, 0.509037, -0.5), - vec3(-0.700629, -0.509037, -0.5), - vec3(0.267617, -0.823639, -0.5)); - - vec3 local_normal = normalize(camera_matrix * vec4(normal, 0.0)).xyz; - vec4 captured = vec4(0.0); - float sum = 0.0; - for (int i = 0; i < 12; i++) { - float amount = max(0.0, dot(local_normal, cone_dirs[i])); //not correct, but creates a nice wrap around effect - captured += lightmap_captures[i] * amount; - sum += amount; - } - - captured /= sum; - - if (lightmap_capture_sky) { - ambient_light = mix(ambient_light, captured.rgb, captured.a); - } else { - ambient_light = captured.rgb; - } - } -#endif - #ifdef USE_FORWARD_LIGHTING - highp vec4 reflection_accum = vec4(0.0, 0.0, 0.0, 0.0); - highp vec4 ambient_accum = vec4(0.0, 0.0, 0.0, 0.0); - for (int i = 0; i < reflection_count; i++) { - reflection_process(reflection_indices[i], vertex, normal, binormal, tangent, roughness, anisotropy, ambient_light, env_reflection_light, reflection_accum, ambient_accum); - } - - if (reflection_accum.a > 0.0) { - specular_light += reflection_accum.rgb / reflection_accum.a; - } else { - specular_light += env_reflection_light; - } -#if !defined(USE_LIGHTMAP) && !defined(USE_LIGHTMAP_CAPTURE) - if (ambient_accum.a > 0.0) { - ambient_light = ambient_accum.rgb / ambient_accum.a; - } -#endif - #ifdef USE_VERTEX_LIGHTING diffuse_light *= albedo; #else for (int i = 0; i < omni_light_count; i++) { - light_process_omni(omni_light_indices[i], vertex, eye_vec, normal, binormal, tangent, albedo, transmission, roughness, metallic, specular, rim, rim_tint, clearcoat, clearcoat_gloss, anisotropy, specular_blob_intensity, diffuse_light, specular_light); + light_process_omni(omni_light_indices[i], vertex, eye_vec, normal, binormal, tangent, albedo, transmission, roughness, metallic, specular, rim, rim_tint, clearcoat, clearcoat_gloss, anisotropy, specular_blob_intensity, diffuse_light, specular_light, alpha); } for (int i = 0; i < spot_light_count; i++) { - light_process_spot(spot_light_indices[i], vertex, eye_vec, normal, binormal, tangent, albedo, transmission, roughness, metallic, specular, rim, rim_tint, clearcoat, clearcoat_gloss, anisotropy, specular_blob_intensity, diffuse_light, specular_light); + light_process_spot(spot_light_indices[i], vertex, eye_vec, normal, binormal, tangent, albedo, transmission, roughness, metallic, specular, rim, rim_tint, clearcoat, clearcoat_gloss, anisotropy, specular_blob_intensity, diffuse_light, specular_light, alpha); } #endif //USE_VERTEX_LIGHTING #endif +#ifdef USE_SHADOW_TO_OPACITY + alpha = min(alpha, clamp(length(ambient_light), 0.0, 1.0)); + +#if defined(ALPHA_SCISSOR_USED) + if (alpha < alpha_scissor) { + discard; + } +#endif // ALPHA_SCISSOR_USED + +#ifdef USE_OPAQUE_PREPASS + + if (alpha < opaque_prepass_threshold) { + discard; + } + +#endif // USE_OPAQUE_PREPASS + +#endif // USE_SHADOW_TO_OPACITY + #ifdef RENDER_DEPTH //nothing happens, so a tree-ssa optimizer will result in no fragment shader :) #else @@ -2073,14 +2113,6 @@ FRAGMENT_SHADER_CODE diffuse_light *= 1.0 - metallic; // TODO: avoid all diffuse and ambient light calculations when metallic == 1 up to this point ambient_light *= 1.0 - metallic; - { - -#if defined(DIFFUSE_TOON) - //simplify for toon, as - specular_light *= specular * metallic * albedo * 2.0; -#endif - } - if (fog_color_enabled.a > 0.5) { float fog_amount = 0.0; diff --git a/drivers/gles3/shaders/ssao.glsl b/drivers/gles3/shaders/ssao.glsl index be44365169..d9cdc3fc1f 100644 --- a/drivers/gles3/shaders/ssao.glsl +++ b/drivers/gles3/shaders/ssao.glsl @@ -16,15 +16,15 @@ void main() { #define TWO_PI 6.283185307179586476925286766559 #ifdef SSAO_QUALITY_HIGH -#define NUM_SAMPLES (80) +#define NUM_SAMPLES (16) #endif #ifdef SSAO_QUALITY_LOW -#define NUM_SAMPLES (15) +#define NUM_SAMPLES (8) #endif #if !defined(SSAO_QUALITY_LOW) && !defined(SSAO_QUALITY_HIGH) -#define NUM_SAMPLES (40) +#define NUM_SAMPLES (12) #endif // If using depth mip levels, the log of the maximum pixel offset before we need to switch to a lower diff --git a/drivers/png/resource_saver_png.h b/drivers/png/resource_saver_png.h index 584ccd4908..9267f2d678 100644 --- a/drivers/png/resource_saver_png.h +++ b/drivers/png/resource_saver_png.h @@ -35,7 +35,6 @@ #include "core/io/resource_saver.h" class ResourceSaverPNG : public ResourceFormatSaver { - GDCLASS(ResourceSaverPNG, ResourceFormatSaver) public: static Error save_image(const String &p_path, const Ref<Image> &p_img); diff --git a/drivers/unix/net_socket_posix.cpp b/drivers/unix/net_socket_posix.cpp index 37abccbe27..75d51c8503 100644 --- a/drivers/unix/net_socket_posix.cpp +++ b/drivers/unix/net_socket_posix.cpp @@ -306,7 +306,7 @@ Error NetSocketPosix::bind(IP_Address p_addr, uint16_t p_port) { sockaddr_storage addr; size_t addr_size = _set_addr_storage(&addr, p_addr, p_port, _ip_type); - if (::bind(_sock, (struct sockaddr *)&addr, addr_size) == SOCK_EMPTY) { + if (::bind(_sock, (struct sockaddr *)&addr, addr_size) != 0) { close(); ERR_FAIL_V(ERR_UNAVAILABLE); } @@ -317,7 +317,7 @@ Error NetSocketPosix::bind(IP_Address p_addr, uint16_t p_port) { Error NetSocketPosix::listen(int p_max_pending) { ERR_FAIL_COND_V(!is_open(), ERR_UNCONFIGURED); - if (::listen(_sock, p_max_pending) == SOCK_EMPTY) { + if (::listen(_sock, p_max_pending) != 0) { close(); ERR_FAIL_V(FAILED); @@ -334,7 +334,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) == SOCK_EMPTY) { + if (::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 25cdc8d8a0..4de910ee1c 100644 --- a/drivers/unix/os_unix.cpp +++ b/drivers/unix/os_unix.cpp @@ -170,7 +170,7 @@ String OS_Unix::get_stdin_string(bool p_block) { return ""; } -String OS_Unix::get_name() { +String OS_Unix::get_name() const { return "Unix"; } diff --git a/drivers/unix/os_unix.h b/drivers/unix/os_unix.h index 6a05877a8c..53446a6b6f 100644 --- a/drivers/unix/os_unix.h +++ b/drivers/unix/os_unix.h @@ -76,7 +76,7 @@ public: virtual Error set_cwd(const String &p_cwd); - virtual String get_name(); + virtual String get_name() const; virtual Date get_date(bool utc) const; virtual Time get_time(bool utc) const; diff --git a/drivers/wasapi/audio_driver_wasapi.cpp b/drivers/wasapi/audio_driver_wasapi.cpp index c97849ef07..fea38ee95d 100644 --- a/drivers/wasapi/audio_driver_wasapi.cpp +++ b/drivers/wasapi/audio_driver_wasapi.cpp @@ -167,13 +167,13 @@ Error AudioDriverWASAPI::audio_device_init(AudioDeviceWASAPI *p_device, bool p_c ERR_FAIL_COND_V(hr != S_OK, ERR_CANT_OPEN); for (ULONG i = 0; i < count && !found; i++) { - IMMDevice *device = NULL; + IMMDevice *tmp_device = NULL; - hr = devices->Item(i, &device); + hr = devices->Item(i, &tmp_device); ERR_BREAK(hr != S_OK); IPropertyStore *props = NULL; - hr = device->OpenPropertyStore(STGM_READ, &props); + hr = tmp_device->OpenPropertyStore(STGM_READ, &props); ERR_BREAK(hr != S_OK); PROPVARIANT propvar; @@ -183,7 +183,7 @@ Error AudioDriverWASAPI::audio_device_init(AudioDeviceWASAPI *p_device, bool p_c ERR_BREAK(hr != S_OK); if (p_device->device_name == String(propvar.pwszVal)) { - hr = device->GetId(&strId); + hr = tmp_device->GetId(&strId); ERR_BREAK(hr != S_OK); found = true; @@ -191,7 +191,7 @@ Error AudioDriverWASAPI::audio_device_init(AudioDeviceWASAPI *p_device, bool p_c PropVariantClear(&propvar); props->Release(); - device->Release(); + tmp_device->Release(); } if (found) { @@ -289,7 +289,7 @@ Error AudioDriverWASAPI::audio_device_init(AudioDeviceWASAPI *p_device, bool p_c } DWORD streamflags = 0; - if (mix_rate != pwfex->nSamplesPerSec) { + if ((DWORD)mix_rate != pwfex->nSamplesPerSec) { streamflags |= AUDCLNT_STREAMFLAGS_RATEADJUST; pwfex->nSamplesPerSec = mix_rate; pwfex->nAvgBytesPerSec = pwfex->nSamplesPerSec * pwfex->nChannels * (pwfex->wBitsPerSample / 8); @@ -571,7 +571,7 @@ void AudioDriverWASAPI::thread_func(void *p_udata) { if (ad->audio_output.active) { ad->audio_server_process(ad->buffer_frames, ad->samples_in.ptrw()); } else { - for (unsigned int i = 0; i < ad->samples_in.size(); i++) { + for (int i = 0; i < ad->samples_in.size(); i++) { ad->samples_in.write[i] = 0; } } @@ -699,7 +699,7 @@ void AudioDriverWASAPI::thread_func(void *p_udata) { ERR_BREAK(hr != S_OK); // fixme: Only works for floating point atm - for (int j = 0; j < num_frames_available; j++) { + for (UINT32 j = 0; j < num_frames_available; j++) { int32_t l, r; if (flags & AUDCLNT_BUFFERFLAGS_SILENT) { diff --git a/drivers/windows/file_access_windows.cpp b/drivers/windows/file_access_windows.cpp index c13300d09f..646e744248 100644 --- a/drivers/windows/file_access_windows.cpp +++ b/drivers/windows/file_access_windows.cpp @@ -93,7 +93,7 @@ Error FileAccessWindows::_open(const String &p_path, int p_mode_flags) { // a file using the wrong case (which *works* on Windows, but won't on other // platforms). if (p_mode_flags == READ) { - WIN32_FIND_DATAW d = { 0 }; + WIN32_FIND_DATAW d; HANDLE f = FindFirstFileW(path.c_str(), &d); if (f) { String fname = d.cFileName; @@ -302,7 +302,7 @@ void FileAccessWindows::store_buffer(const uint8_t *p_src, int p_length) { } prev_op = WRITE; } - ERR_FAIL_COND(fwrite(p_src, 1, p_length, f) != p_length); + ERR_FAIL_COND(fwrite(p_src, 1, p_length, f) != (size_t)p_length); } bool FileAccessWindows::file_exists(const String &p_name) { @@ -340,13 +340,11 @@ uint64_t FileAccessWindows::_get_modified_time(const String &p_file) { } uint32_t FileAccessWindows::_get_unix_permissions(const String &p_file) { - ERR_PRINT("Windows does not support unix permissions"); return 0; } Error FileAccessWindows::_set_unix_permissions(const String &p_file, uint32_t p_permissions) { - ERR_PRINT("Windows does not support unix permissions"); - return FAILED; + return ERR_UNAVAILABLE; } FileAccessWindows::FileAccessWindows() : diff --git a/editor/SCsub b/editor/SCsub index 82a4ecb6c0..7d48e47c9f 100644 --- a/editor/SCsub +++ b/editor/SCsub @@ -79,9 +79,6 @@ if env['tools']: env.CommandNoCache('#editor/builtin_fonts.gen.h', flist, run_in_subprocess(editor_builders.make_fonts_header)) env.add_source_files(env.editor_sources, "*.cpp") - env_thirdparty = env.Clone() - env_thirdparty.disable_warnings() - env_thirdparty.add_source_files(env.editor_sources, ["#thirdparty/misc/clipper.cpp"]) SConscript('collada/SCsub') SConscript('doc/SCsub') diff --git a/editor/animation_track_editor.cpp b/editor/animation_track_editor.cpp index b2af11fab0..3295753bda 100644 --- a/editor/animation_track_editor.cpp +++ b/editor/animation_track_editor.cpp @@ -63,8 +63,6 @@ public: ClassDB::bind_method("_dont_undo_redo", &AnimationTrackKeyEdit::_dont_undo_redo); } - //PopupDialog *ke_dialog; - void _fix_node_path(Variant &value) { NodePath np = value; @@ -1215,7 +1213,8 @@ void AnimationTrackEdit::_notification(int p_what) { if (has_focus()) { Color accent = get_color("accent_color", "Editor"); accent.a *= 0.7; - draw_rect(Rect2(Point2(), get_size()), accent, false); + // Offside so the horizontal sides aren't cutoff. + draw_rect(Rect2(Point2(1 * EDSCALE, 0), get_size() - Size2(1 * EDSCALE, 0)), accent, false); } Ref<Font> font = get_font("font", "Label"); @@ -2187,6 +2186,9 @@ Variant AnimationTrackEdit::get_drag_data(const Point2 &p_point) { Dictionary drag_data; drag_data["type"] = "animation_track"; + String base_path = animation->track_get_path(track); + base_path = base_path.get_slice(":", 0); // Remove sub-path. + drag_data["group"] = base_path; drag_data["index"] = track; ToolButton *tb = memnew(ToolButton); @@ -2207,8 +2209,18 @@ bool AnimationTrackEdit::can_drop_data(const Point2 &p_point, const Variant &p_d } String type = d["type"]; - if (type != "animation_track") + if (type != "animation_track") { return false; + } + + // Don't allow moving tracks outside their groups. + if (get_editor()->is_grouping_tracks()) { + String base_path = animation->track_get_path(track); + base_path = base_path.get_slice(":", 0); // Remove sub-path. + if (d["group"] != base_path) { + return false; + } + } if (p_point.y < get_size().height / 2) { dropping_at = -1; @@ -2229,8 +2241,18 @@ void AnimationTrackEdit::drop_data(const Point2 &p_point, const Variant &p_data) } String type = d["type"]; - if (type != "animation_track") + if (type != "animation_track") { return; + } + + // Don't allow moving tracks outside their groups. + if (get_editor()->is_grouping_tracks()) { + String base_path = animation->track_get_path(track); + base_path = base_path.get_slice(":", 0); // Remove sub-path. + if (d["group"] != base_path) { + return; + } + } int from_track = d["index"]; @@ -2685,6 +2707,13 @@ void AnimationTrackEditor::_track_remove_request(int p_track) { } } +void AnimationTrackEditor::_track_grab_focus(int p_track) { + + // Don't steal focus if not working with the track editor. + if (Object::cast_to<AnimationTrackEdit>(get_focus_owner())) + track_edits[p_track]->grab_focus(); +} + void AnimationTrackEditor::set_anim_pos(float p_pos) { timeline->set_play_position(p_pos); @@ -3449,14 +3478,14 @@ void AnimationTrackEditor::_update_tracks() { if (use_grouping) { String base_path = animation->track_get_path(i); - base_path = base_path.get_slice(":", 0); // remove subpath + base_path = base_path.get_slice(":", 0); // Remove sub-path. if (!group_sort.has(base_path)) { AnimationTrackEditGroup *g = memnew(AnimationTrackEditGroup); Ref<Texture> icon = get_icon("Node", "EditorIcons"); String name = base_path; String tooltip; - if (root) { + if (root && root->has_node(base_path)) { Node *n = root->get_node(base_path); if (n) { if (has_icon(n->get_class(), "EditorIcons")) { @@ -3604,6 +3633,9 @@ void AnimationTrackEditor::_animation_update() { bezier_edit->update(); _update_step_spinbox(); + emit_signal("animation_step_changed", animation->get_step()); + emit_signal("animation_len_changed", animation->get_length()); + EditorNode::get_singleton()->get_inspector()->refresh(); animation_changing_awaiting_update = false; } @@ -3665,17 +3697,18 @@ void AnimationTrackEditor::_update_length(double p_new_len) { } void AnimationTrackEditor::_dropped_track(int p_from_track, int p_to_track) { - if (p_to_track >= track_edits.size()) { - p_to_track = track_edits.size() - 1; - } - - if (p_from_track == p_to_track) + if (p_from_track == p_to_track || p_from_track == p_to_track - 1) { return; + } _clear_selection(); undo_redo->create_action(TTR("Rearrange Tracks")); - undo_redo->add_do_method(animation.ptr(), "track_swap", p_from_track, p_to_track); - undo_redo->add_undo_method(animation.ptr(), "track_swap", p_to_track, p_from_track); + undo_redo->add_do_method(animation.ptr(), "track_move_to", p_from_track, p_to_track); + // Take into account that the position of the tracks that come after the one removed will change. + int to_track_real = p_to_track > p_from_track ? p_to_track - 1 : p_to_track; + undo_redo->add_undo_method(animation.ptr(), "track_move_to", to_track_real, p_to_track > p_from_track ? p_from_track : p_from_track + 1); + undo_redo->add_do_method(this, "_track_grab_focus", to_track_real); + undo_redo->add_undo_method(this, "_track_grab_focus", p_from_track); undo_redo->commit_action(); } @@ -4877,10 +4910,20 @@ void AnimationTrackEditor::_cleanup_animation(Ref<Animation> p_animation) { } void AnimationTrackEditor::_view_group_toggle() { + _update_tracks(); view_group->set_icon(get_icon(view_group->is_pressed() ? "AnimationTrackList" : "AnimationTrackGroup", "EditorIcons")); } +bool AnimationTrackEditor::is_grouping_tracks() { + + if (!view_group) { + return false; + } + + return !view_group->is_pressed(); +} + void AnimationTrackEditor::_selection_changed() { if (selected_filter->is_pressed()) { @@ -4914,10 +4957,8 @@ float AnimationTrackEditor::snap_time(float p_value) { void AnimationTrackEditor::_show_imported_anim_warning() const { - EditorNode::get_singleton()->show_warning(TTR("This animation belongs to an imported scene, so changes to imported tracks will not be saved.\n\n" - "To enable the ability to add custom tracks, navigate to the scene's import settings and set\n" - "\"Animation > Storage\" to \"Files\", enable \"Animation > Keep Custom Tracks\", then re-import.\n" - "Alternatively, use an import preset that imports animations to separate files."), + // It looks terrible on a single line but the TTR extractor doesn't support line breaks yet. + EditorNode::get_singleton()->show_warning(TTR("This animation belongs to an imported scene, so changes to imported tracks will not be saved.\n\nTo enable the ability to add custom tracks, navigate to the scene's import settings and set\n\"Animation > Storage\" to \"Files\", enable \"Animation > Keep Custom Tracks\", then re-import.\nAlternatively, use an import preset that imports animations to separate files."), TTR("Warning: Editing imported animation")); } @@ -4927,6 +4968,7 @@ void AnimationTrackEditor::_bind_methods() { ClassDB::bind_method("_animation_update", &AnimationTrackEditor::_animation_update); ClassDB::bind_method("_timeline_changed", &AnimationTrackEditor::_timeline_changed); ClassDB::bind_method("_track_remove_request", &AnimationTrackEditor::_track_remove_request); + ClassDB::bind_method("_track_grab_focus", &AnimationTrackEditor::_track_grab_focus); ClassDB::bind_method("_name_limit_changed", &AnimationTrackEditor::_name_limit_changed); ClassDB::bind_method("_update_scroll", &AnimationTrackEditor::_update_scroll); ClassDB::bind_method("_update_tracks", &AnimationTrackEditor::_update_tracks); @@ -5027,7 +5069,6 @@ AnimationTrackEditor::AnimationTrackEditor() { scroll->set_enable_v_scroll(true); track_vbox->add_constant_override("separation", 0); - //timeline_vbox->add_child(memnew(HSeparator)); HBoxContainer *bottom_hb = memnew(HBoxContainer); add_child(bottom_hb); diff --git a/editor/animation_track_editor.h b/editor/animation_track_editor.h index a69659642c..c64f663b3b 100644 --- a/editor/animation_track_editor.h +++ b/editor/animation_track_editor.h @@ -325,6 +325,7 @@ class AnimationTrackEditor : public VBoxContainer { void _name_limit_changed(); void _timeline_changed(float p_new_pos, bool p_drag); void _track_remove_request(int p_track); + void _track_grab_focus(int p_track); UndoRedo *undo_redo; @@ -513,6 +514,7 @@ public: float get_moving_selection_offset() const; bool is_snap_enabled(); float snap_time(float p_value); + bool is_grouping_tracks(); MenuButton *get_edit_menu(); AnimationTrackEditor(); diff --git a/editor/animation_track_editor_plugins.cpp b/editor/animation_track_editor_plugins.cpp index baf417fed7..07dbc1fd81 100644 --- a/editor/animation_track_editor_plugins.cpp +++ b/editor/animation_track_editor_plugins.cpp @@ -48,7 +48,7 @@ int AnimationTrackEditBool::get_key_height() const { Rect2 AnimationTrackEditBool::get_key_rect(int p_index, float p_pixels_sec) { Ref<Texture> checked = get_icon("checked", "CheckBox"); - return Rect2(0, 0, checked->get_width(), get_size().height); + return Rect2(-checked->get_width() / 2, 0, checked->get_width(), get_size().height); } bool AnimationTrackEditBool::is_key_selectable_by_distance() const { @@ -57,17 +57,18 @@ bool AnimationTrackEditBool::is_key_selectable_by_distance() const { } void AnimationTrackEditBool::draw_key(int p_index, float p_pixels_sec, int p_x, bool p_selected, int p_clip_left, int p_clip_right) { - Ref<Texture> icon; bool checked = get_animation()->track_get_key_value(get_track(), p_index); + Ref<Texture> icon = get_icon(checked ? "checked" : "unchecked", "CheckBox"); - if (checked) - icon = get_icon("checked", "CheckBox"); - else - icon = get_icon("unchecked", "CheckBox"); + Vector2 ofs(p_x - icon->get_width() / 2, int(get_size().height - icon->get_height()) / 2); - Vector2 ofs(p_x, int(get_size().height - icon->get_height()) / 2); + if (ofs.x + icon->get_width() / 2 < p_clip_left) + return; + + if (ofs.x + icon->get_width() / 2 > p_clip_right) + return; - draw_texture_clipped(icon, ofs); + draw_texture(icon, ofs); if (p_selected) { Color color = get_color("accent_color", "Editor"); @@ -86,7 +87,7 @@ Rect2 AnimationTrackEditColor::get_key_rect(int p_index, float p_pixels_sec) { Ref<Font> font = get_font("font", "Label"); int fh = font->get_height() * 0.8; - return Rect2(0, 0, fh, get_size().height); + return Rect2(-fh / 2, 0, fh, get_size().height); } bool AnimationTrackEditColor::is_key_selectable_by_distance() const { @@ -96,20 +97,14 @@ bool AnimationTrackEditColor::is_key_selectable_by_distance() const { void AnimationTrackEditColor::draw_key_link(int p_index, float p_pixels_sec, int p_x, int p_next_x, int p_clip_left, int p_clip_right) { - int x_from = p_x; - int x_to = p_next_x; - Ref<Font> font = get_font("font", "Label"); int fh = (font->get_height() * 0.8); - x_from += fh - 1; - x_to += 1; + int x_from = p_x + fh / 2 - 1; + int x_to = p_next_x - fh / 2 + 1; fh /= 3; - if (x_from > p_clip_right) - return; - - if (x_to < p_clip_left) + if (x_from > p_clip_right || x_to < p_clip_left) return; Color color = get_animation()->track_get_key_value(get_track(), p_index); @@ -154,7 +149,7 @@ void AnimationTrackEditColor::draw_key(int p_index, float p_pixels_sec, int p_x, Ref<Font> font = get_font("font", "Label"); int fh = font->get_height() * 0.8; - Rect2 rect(Vector2(p_x, int(get_size().height - fh) / 2), Size2(fh, fh)); + Rect2 rect(Vector2(p_x - fh / 2, int(get_size().height - fh) / 2), Size2(fh, fh)); draw_rect_clipped(Rect2(rect.position, rect.size / 2), Color(0.4, 0.4, 0.4)); draw_rect_clipped(Rect2(rect.position + rect.size / 2, rect.size / 2), Color(0.4, 0.4, 0.4)); diff --git a/editor/audio_stream_preview.cpp b/editor/audio_stream_preview.cpp index 85db8b77f9..b30b94ab26 100644 --- a/editor/audio_stream_preview.cpp +++ b/editor/audio_stream_preview.cpp @@ -129,7 +129,7 @@ void AudioStreamPreviewGenerator::_preview_thread(void *p_preview) { float max = -1000; float min = 1000; int from = uint64_t(i) * to_read / to_write; - int to = uint64_t(i + 1) * to_read / to_write; + int to = (uint64_t(i) + 1) * to_read / to_write; to = MIN(to, to_read); from = MIN(from, to_read - 1); if (to == from) { diff --git a/editor/code_editor.cpp b/editor/code_editor.cpp index 7fd7b8dac3..e471993fc7 100644 --- a/editor/code_editor.cpp +++ b/editor/code_editor.cpp @@ -675,14 +675,14 @@ void CodeTextEditor::_line_col_changed() { } } - StringBuilder *sb = memnew(StringBuilder); - sb->append("("); - sb->append(itos(text_editor->cursor_get_line() + 1).lpad(3)); - sb->append(","); - sb->append(itos(positional_column + 1).lpad(3)); - sb->append(")"); + StringBuilder sb; + sb.append("("); + sb.append(itos(text_editor->cursor_get_line() + 1).lpad(3)); + sb.append(","); + sb.append(itos(positional_column + 1).lpad(3)); + sb.append(")"); - line_and_col_txt->set_text(sb->as_string()); + line_and_col_txt->set_text(sb.as_string()); } void CodeTextEditor::_text_changed() { @@ -765,6 +765,7 @@ void CodeTextEditor::update_editor_settings() { text_editor->set_highlight_current_line(EditorSettings::get_singleton()->get("text_editor/highlighting/highlight_current_line")); text_editor->cursor_set_blink_enabled(EditorSettings::get_singleton()->get("text_editor/cursor/caret_blink")); text_editor->cursor_set_blink_speed(EditorSettings::get_singleton()->get("text_editor/cursor/caret_blink_speed")); + text_editor->set_bookmark_gutter_enabled(EditorSettings::get_singleton()->get("text_editor/line_numbers/show_bookmark_gutter")); text_editor->set_breakpoint_gutter_enabled(EditorSettings::get_singleton()->get("text_editor/line_numbers/show_breakpoint_gutter")); text_editor->set_hiding_enabled(EditorSettings::get_singleton()->get("text_editor/line_numbers/code_folding")); text_editor->set_draw_fold_gutter(EditorSettings::get_singleton()->get("text_editor/line_numbers/code_folding")); @@ -803,6 +804,24 @@ void CodeTextEditor::trim_trailing_whitespace() { } } +void CodeTextEditor::insert_final_newline() { + int final_line = text_editor->get_line_count() - 1; + + String line = text_editor->get_line(final_line); + + //length 0 means it's already an empty line, + //no need to add a newline + if (line.length() > 0 && !line.ends_with("\n")) { + text_editor->begin_complex_operation(); + + line += "\n"; + text_editor->set_line(final_line, line); + + text_editor->end_complex_operation(); + text_editor->update(); + } +} + void CodeTextEditor::convert_indent_to_spaces() { int indent_size = EditorSettings::get_singleton()->get("text_editor/indent/size"); String indent = ""; @@ -911,7 +930,7 @@ void CodeTextEditor::convert_case(CaseStyle p_case) { for (int i = begin; i <= end; i++) { int len = text_editor->get_line(i).length(); if (i == end) - len -= len - end_col; + len = end_col; if (i == begin) len -= begin_col; String new_line = text_editor->get_line(i).substr(i == begin ? begin_col : 0, len); @@ -1204,6 +1223,7 @@ Variant CodeTextEditor::get_edit_state() { state["folded_lines"] = text_editor->get_folded_lines(); state["breakpoints"] = text_editor->get_breakpoints_array(); + state["bookmarks"] = text_editor->get_bookmarks_array(); state["syntax_highlighter"] = TTR("Standard"); SyntaxHighlighter *syntax_highlighter = text_editor->_get_syntax_highlighting(); @@ -1241,6 +1261,13 @@ void CodeTextEditor::set_edit_state(const Variant &p_state) { } } + if (state.has("bookmarks")) { + Array bookmarks = state["bookmarks"]; + for (int i = 0; i < bookmarks.size(); i++) { + text_editor->set_line_as_bookmark(bookmarks[i], true); + } + } + text_editor->grab_focus(); } @@ -1303,11 +1330,14 @@ void CodeTextEditor::_on_settings_change() { } void CodeTextEditor::_text_changed_idle_timeout() { - _validate_script(); emit_signal("validate_script"); } +void CodeTextEditor::validate_script() { + idle->start(); +} + void CodeTextEditor::_warning_label_gui_input(const Ref<InputEvent> &p_event) { Ref<InputEventMouseButton> mb = p_event; if (mb.is_valid() && mb->is_pressed() && mb->get_button_index() == BUTTON_LEFT) { @@ -1358,6 +1388,70 @@ void CodeTextEditor::set_warning_nb(int p_warning_nb) { _set_show_warnings_panel(false); } +void CodeTextEditor::toggle_bookmark() { + + int line = text_editor->cursor_get_line(); + text_editor->set_line_as_bookmark(line, !text_editor->is_line_set_as_bookmark(line)); +} + +void CodeTextEditor::goto_next_bookmark() { + + List<int> bmarks; + text_editor->get_bookmarks(&bmarks); + if (bmarks.size() <= 0) { + return; + } + + int line = text_editor->cursor_get_line(); + if (line >= bmarks[bmarks.size() - 1]) { + text_editor->unfold_line(bmarks[0]); + text_editor->cursor_set_line(bmarks[0]); + } else { + for (List<int>::Element *E = bmarks.front(); E; E = E->next()) { + int bline = E->get(); + if (bline > line) { + text_editor->unfold_line(bline); + text_editor->cursor_set_line(bline); + return; + } + } + } +} + +void CodeTextEditor::goto_prev_bookmark() { + + List<int> bmarks; + text_editor->get_bookmarks(&bmarks); + if (bmarks.size() <= 0) { + return; + } + + int line = text_editor->cursor_get_line(); + if (line <= bmarks[0]) { + text_editor->unfold_line(bmarks[bmarks.size() - 1]); + text_editor->cursor_set_line(bmarks[bmarks.size() - 1]); + } else { + for (List<int>::Element *E = bmarks.back(); E; E = E->prev()) { + int bline = E->get(); + if (bline < line) { + text_editor->unfold_line(bline); + text_editor->cursor_set_line(bline); + return; + } + } + } +} + +void CodeTextEditor::remove_all_bookmarks() { + + List<int> bmarks; + text_editor->get_bookmarks(&bmarks); + + for (List<int>::Element *E = bmarks.front(); E; E = E->next()) { + text_editor->set_line_as_bookmark(E->get(), false); + } +} + void CodeTextEditor::_bind_methods() { ClassDB::bind_method("_text_editor_gui_input", &CodeTextEditor::_text_editor_gui_input); diff --git a/editor/code_editor.h b/editor/code_editor.h index b98af377ce..0ef8ec7061 100644 --- a/editor/code_editor.h +++ b/editor/code_editor.h @@ -195,6 +195,7 @@ protected: public: void trim_trailing_whitespace(); + void insert_final_newline(); void convert_indent_to_spaces(); void convert_indent_to_tabs(); @@ -234,8 +235,15 @@ public: virtual void apply_code() {} void goto_error(); + void toggle_bookmark(); + void goto_next_bookmark(); + void goto_prev_bookmark(); + void remove_all_bookmarks(); + void set_code_complete_func(CodeTextEditorCodeCompleteFunc p_code_complete_func, void *p_ud); + void validate_script(); + CodeTextEditor(); }; diff --git a/editor/collada/collada.cpp b/editor/collada/collada.cpp index e9040b9d3e..a0d319c81b 100644 --- a/editor/collada/collada.cpp +++ b/editor/collada/collada.cpp @@ -651,7 +651,7 @@ void Collada::_parse_effect_material(XMLParser &parser, Effect &effect, String & effect.emission.texture = uri; } else if (what == "bump") { if (parser.has_attribute("bumptype") && parser.get_attribute_value("bumptype") != "NORMALMAP") { - WARN_PRINT("'bump' texture type is not NORMALMAP, only NORMALMAP is supported.") + WARN_PRINT("'bump' texture type is not NORMALMAP, only NORMALMAP is supported."); } effect.bump.texture = uri; @@ -707,7 +707,7 @@ void Collada::_parse_effect_material(XMLParser &parser, Effect &effect, String & String uri = effect.params[surface]; if (parser.has_attribute("bumptype") && parser.get_attribute_value("bumptype") != "NORMALMAP") { - WARN_PRINT("'bump' texture type is not NORMALMAP, only NORMALMAP is supported.") + WARN_PRINT("'bump' texture type is not NORMALMAP, only NORMALMAP is supported."); } effect.bump.texture = uri; diff --git a/editor/connections_dialog.cpp b/editor/connections_dialog.cpp index a9a96da7b1..6d3603f31b 100644 --- a/editor/connections_dialog.cpp +++ b/editor/connections_dialog.cpp @@ -126,7 +126,6 @@ void ConnectDialog::ok_pressed() { } } emit_signal("connected"); - hide(); } void ConnectDialog::_cancel_pressed() { @@ -307,39 +306,42 @@ void ConnectDialog::init(Connection c, bool bEdit) { bEditMode = bEdit; } -void ConnectDialog::popup_dialog(const String &p_for_signal, bool p_advanced) { +void ConnectDialog::popup_dialog(const String &p_for_signal) { - advanced->set_pressed(p_advanced); from_signal->set_text(p_for_signal); error_label->add_color_override("font_color", get_color("error_color", "Editor")); - vbc_right->set_visible(p_advanced); + if (!advanced->is_pressed()) + error_label->set_visible(!_find_first_script(get_tree()->get_edited_scene_root(), get_tree()->get_edited_scene_root())); + + popup_centered(); +} - if (p_advanced) { +void ConnectDialog::_advanced_pressed() { - popup_centered(Size2(900, 500) * EDSCALE); - connect_to_label->set_text("Connect to Node:"); + if (advanced->is_pressed()) { + set_custom_minimum_size(Size2(900, 500) * EDSCALE); + connect_to_label->set_text(TTR("Connect to Node:")); tree->set_connect_to_script_mode(false); + + vbc_right->show(); error_label->hide(); } else { - popup_centered(Size2(700, 500) * EDSCALE); - connect_to_label->set_text("Connect to Script:"); + set_custom_minimum_size(Size2(600, 500) * EDSCALE); + set_size(Size2()); + connect_to_label->set_text(TTR("Connect to Script:")); tree->set_connect_to_script_mode(true); - if (!_find_first_script(get_tree()->get_edited_scene_root(), get_tree()->get_edited_scene_root())) { - error_label->show(); - } else { - error_label->hide(); - } + vbc_right->hide(); + error_label->set_visible(!_find_first_script(get_tree()->get_edited_scene_root(), get_tree()->get_edited_scene_root())); } -} - -void ConnectDialog::_advanced_pressed() { - popup_dialog(from_signal->get_text(), advanced->is_pressed()); + set_position((get_viewport_rect().size - get_custom_minimum_size()) / 2); } ConnectDialog::ConnectDialog() { + set_custom_minimum_size(Size2(600, 500) * EDSCALE); + VBoxContainer *vbc = memnew(VBoxContainer); add_child(vbc); @@ -356,11 +358,12 @@ ConnectDialog::ConnectDialog() { vbc_left->add_margin_child(TTR("From Signal:"), from_signal); tree = memnew(SceneTreeEditor(false)); + tree->set_connecting_signal(true); tree->get_scene_tree()->connect("item_activated", this, "_ok"); tree->connect("node_selected", this, "_tree_node_selected"); tree->set_connect_to_script_mode(true); - Node *mc = vbc_left->add_margin_child(TTR("Connect To Script:"), tree, true); + Node *mc = vbc_left->add_margin_child(TTR("Connect to Script:"), tree, true); connect_to_label = Object::cast_to<Label>(vbc_left->get_child(mc->get_index() - 1)); error_label = memnew(Label); @@ -381,7 +384,7 @@ ConnectDialog::ConnectDialog() { type_list->add_item("bool", Variant::BOOL); type_list->add_item("int", Variant::INT); type_list->add_item("real", Variant::REAL); - type_list->add_item("string", Variant::STRING); + type_list->add_item("String", Variant::STRING); type_list->add_item("Vector2", Variant::VECTOR2); type_list->add_item("Rect2", Variant::RECT2); type_list->add_item("Vector3", Variant::VECTOR3); @@ -410,34 +413,32 @@ ConnectDialog::ConnectDialog() { vbc_right->add_margin_child(TTR("Extra Call Arguments:"), bind_editor, true); HBoxContainer *dstm_hb = memnew(HBoxContainer); - vbc_left->add_margin_child("Method to Create:", dstm_hb); + vbc_left->add_margin_child("Receiver Method:", dstm_hb); dst_method = memnew(LineEdit); dst_method->set_h_size_flags(SIZE_EXPAND_FILL); dstm_hb->add_child(dst_method); - advanced = memnew(CheckBox); + advanced = memnew(CheckButton); dstm_hb->add_child(advanced); - advanced->set_text(TTR("Advanced...")); + advanced->set_text(TTR("Advanced")); advanced->connect("pressed", this, "_advanced_pressed"); - /* - dst_method_list = memnew( MenuButton ); - dst_method_list->set_text("List..."); - dst_method_list->set_anchor( MARGIN_RIGHT, ANCHOR_END ); - dst_method_list->set_anchor( MARGIN_LEFT, ANCHOR_END ); - dst_method_list->set_anchor( MARGIN_TOP, ANCHOR_END ); - dst_method_list->set_anchor( MARGIN_BOTTOM, ANCHOR_END ); - dst_method_list->set_begin( Point2( 70,59) ); - dst_method_list->set_end( Point2( 15,39 ) ); - */ - - deferred = memnew(CheckButton); + // Add spacing so the tree and inspector are the same size. + Control *spacing = memnew(Control); + spacing->set_custom_minimum_size(Size2(0, 4) * EDSCALE); + vbc_right->add_child(spacing); + + deferred = memnew(CheckBox); + deferred->set_h_size_flags(0); deferred->set_text(TTR("Deferred")); + deferred->set_tooltip(TTR("Defers the signal, storing it in a queue and only firing it at idle time.")); vbc_right->add_child(deferred); - oneshot = memnew(CheckButton); + oneshot = memnew(CheckBox); + oneshot->set_h_size_flags(0); oneshot->set_text(TTR("Oneshot")); + oneshot->set_tooltip(TTR("Disconnects the signal after its first emission.")); vbc_right->add_child(oneshot); set_as_toplevel(true); @@ -456,7 +457,7 @@ ConnectDialog::~ConnectDialog() { memdelete(cdbinds); } -//ConnectionsDock ========================== +////////////////////////////////////////// struct _ConnectionsDockMethodInfoSort { @@ -488,11 +489,29 @@ void ConnectionsDock::_make_or_edit_connection() { bool oshot = connect_dialog->get_oneshot(); cToMake.flags = CONNECT_PERSIST | (defer ? CONNECT_DEFERRED : 0) | (oshot ? CONNECT_ONESHOT : 0); - //conditions to add function, must have a script and must have a method - bool add_script_function = !target->get_script().is_null() && !ClassDB::has_method(target->get_class(), cToMake.method); + // Conditions to add function: must have a script and must not have the method already + // (in the class, the script itself, or inherited). + bool add_script_function = false; + Ref<Script> script = target->get_script(); + if (!target->get_script().is_null() && !ClassDB::has_method(target->get_class(), cToMake.method)) { + // 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()) { + int line = inherited_script->get_language()->find_function(cToMake.method, inherited_script->get_source_code()); + if (line != -1) { + found_inherited_function = true; + break; + } + + inherited_script = inherited_script->get_base_script(); + } + + add_script_function = !found_inherited_function; + } PoolStringArray script_function_args; if (add_script_function) { - // pick up args here before "it" is deleted by update_tree + // Pick up args here before "it" is deleted by update_tree. script_function_args = it->get_metadata(0).operator Dictionary()["args"]; for (int i = 0; i < cToMake.binds.size(); i++) { script_function_args.append("extra_arg_" + itos(i)); @@ -506,8 +525,7 @@ void ConnectionsDock::_make_or_edit_connection() { _connect(cToMake); } - // IMPORTANT NOTE: _disconnect and _connect cause an update_tree, - // which will delete the object "it" is pointing to + // IMPORTANT NOTE: _disconnect and _connect cause an update_tree, which will delete the object "it" is pointing to. it = NULL; if (add_script_function) { @@ -547,7 +565,7 @@ Break single connection w/ undo-redo functionality. void ConnectionsDock::_disconnect(TreeItem &item) { Connection c = item.get_metadata(0); - ERR_FAIL_COND(c.source != selectedNode); //shouldn't happen but...bugcheck + ERR_FAIL_COND(c.source != selectedNode); // Shouldn't happen but... Bugcheck. undo_redo->create_action(vformat(TTR("Disconnect '%s' from '%s'"), c.signal, c.method)); @@ -555,7 +573,7 @@ void ConnectionsDock::_disconnect(TreeItem &item) { undo_redo->add_undo_method(selectedNode, "connect", c.signal, c.target, c.method, c.binds, c.flags); undo_redo->add_do_method(this, "update_tree"); undo_redo->add_undo_method(this, "update_tree"); - undo_redo->add_do_method(EditorNode::get_singleton()->get_scene_tree_dock()->get_tree_editor(), "update_tree"); //to force redraw of scene tree + undo_redo->add_do_method(EditorNode::get_singleton()->get_scene_tree_dock()->get_tree_editor(), "update_tree"); // To force redraw of scene tree. undo_redo->add_undo_method(EditorNode::get_singleton()->get_scene_tree_dock()->get_tree_editor(), "update_tree"); undo_redo->commit_action(); @@ -594,7 +612,7 @@ void ConnectionsDock::_disconnect_all() { void ConnectionsDock::_tree_item_selected() { TreeItem *item = tree->get_selected(); - if (!item) { //Unlikely. Disable button just in case. + if (!item) { // Unlikely. Disable button just in case. connect_button->set_text(TTR("Connect...")); connect_button->set_disabled(true); } else if (_is_item_signal(*item)) { @@ -606,7 +624,7 @@ void ConnectionsDock::_tree_item_selected() { } } -void ConnectionsDock::_tree_item_activated() { //"Activation" on double-click. +void ConnectionsDock::_tree_item_activated() { // "Activation" on double-click. TreeItem *item = tree->get_selected(); @@ -628,7 +646,6 @@ bool ConnectionsDock::_is_item_signal(TreeItem &item) { /* Open connection dialog with TreeItem data to CREATE a brand-new connection. */ - void ConnectionsDock::_open_connection_dialog(TreeItem &item) { String signal = item.get_metadata(0).operator Dictionary()["name"]; @@ -638,10 +655,10 @@ void ConnectionsDock::_open_connection_dialog(TreeItem &item) { CharType c = midname[i]; if (!((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z') || (c >= '0' && c <= '9') || c == '_')) { if (c == ' ') { - //Replace spaces with underlines. + // Replace spaces with underlines. c = '_'; } else { - //Remove any other characters. + // Remove any other characters. midname.remove(i); i--; continue; @@ -662,9 +679,7 @@ void ConnectionsDock::_open_connection_dialog(TreeItem &item) { c.signal = StringName(signalname); c.target = dst_node; c.method = dst_method; - - //connect_dialog->set_title(TTR("Connect Signal: ") + signalname); - connect_dialog->popup_dialog(signalname, false); + connect_dialog->popup_dialog(signalname); connect_dialog->init(c); connect_dialog->set_title(TTR("Connect a Signal to a Method")); } @@ -679,7 +694,7 @@ void ConnectionsDock::_open_connection_dialog(Connection cToEdit) { if (src && dst) { connect_dialog->set_title(TTR("Edit Connection:") + cToEdit.signal); - connect_dialog->popup_centered_ratio(); + connect_dialog->popup_centered(); connect_dialog->init(cToEdit, true); } } @@ -828,7 +843,6 @@ void ConnectionsDock::update_tree() { selectedNode->get_signal_list(&node_signals); - //node_signals.sort_custom<_ConnectionsDockMethodInfoSort>(); bool did_script = false; StringName base = selectedNode->get_class(); @@ -955,7 +969,7 @@ void ConnectionsDock::update_tree() { } } - connect_button->set_text(TTR("Connect")); + connect_button->set_text(TTR("Connect...")); connect_button->set_disabled(true); } @@ -975,7 +989,6 @@ ConnectionsDock::ConnectionsDock(EditorNode *p_editor) { tree->set_allow_rmb_select(true); connect_button = memnew(Button); - connect_button->set_text(TTR("Connect")); HBoxContainer *hb = memnew(HBoxContainer); vbc->add_child(hb); hb->add_spacer(); @@ -1005,15 +1018,6 @@ ConnectionsDock::ConnectionsDock(EditorNode *p_editor) { slot_menu->add_item(TTR("Go To Method"), GO_TO_SCRIPT); slot_menu->add_item(TTR("Disconnect"), DISCONNECT); - /* - node_only->set_anchor( MARGIN_TOP, ANCHOR_END ); - node_only->set_anchor( MARGIN_BOTTOM, ANCHOR_END ); - node_only->set_anchor( MARGIN_RIGHT, ANCHOR_END ); - - node_only->set_begin( Point2( 20,51) ); - node_only->set_end( Point2( 10,44) ); - */ - connect_dialog->connect("connected", this, "_make_or_edit_connection"); tree->connect("item_selected", this, "_tree_item_selected"); tree->connect("item_activated", this, "_tree_item_activated"); diff --git a/editor/connections_dialog.h b/editor/connections_dialog.h index 9b35d84426..195c9e1e7d 100644 --- a/editor/connections_dialog.h +++ b/editor/connections_dialog.h @@ -67,9 +67,9 @@ class ConnectDialog : public ConfirmationDialog { AcceptDialog *error; EditorInspector *bind_editor; OptionButton *type_list; - CheckButton *deferred; - CheckButton *oneshot; - CheckBox *advanced; + CheckBox *deferred; + CheckBox *oneshot; + CheckButton *advanced; Label *error_label; @@ -99,12 +99,12 @@ public: void init(Connection c, bool bEdit = false); - void popup_dialog(const String &p_for_signal, bool p_advanced); + void popup_dialog(const String &p_for_signal); ConnectDialog(); ~ConnectDialog(); }; -//======================================== +////////////////////////////////////////// class ConnectionsDock : public VBoxContainer { diff --git a/editor/create_dialog.cpp b/editor/create_dialog.cpp index ac42f15f7f..e84602b29f 100644 --- a/editor/create_dialog.cpp +++ b/editor/create_dialog.cpp @@ -38,7 +38,7 @@ #include "editor_settings.h" #include "scene/gui/box_container.h" -void CreateDialog::popup_create(bool p_dont_clear, bool p_replace_mode) { +void CreateDialog::popup_create(bool p_dont_clear, bool p_replace_mode, const String &p_select_type) { type_list.clear(); ClassDB::get_class_list(&type_list); @@ -93,14 +93,7 @@ void CreateDialog::popup_create(bool p_dont_clear, bool p_replace_mode) { if (saved_size != Rect2()) { popup(saved_size); } else { - - Size2 popup_size = Size2(900, 700) * editor_get_scale(); - Size2 window_size = get_viewport_rect().size; - - popup_size.x = MIN(window_size.x * 0.8, popup_size.x); - popup_size.y = MIN(window_size.y * 0.8, popup_size.y); - - popup_centered(popup_size); + popup_centered_clamped(Size2(900, 700) * EDSCALE, 0.8); } if (p_dont_clear) { @@ -116,6 +109,7 @@ void CreateDialog::popup_create(bool p_dont_clear, bool p_replace_mode) { is_replace_mode = p_replace_mode; if (p_replace_mode) { + select_type(p_select_type); set_title(vformat(TTR("Change %s Type"), base_type)); get_ok()->set_text(TTR("Change")); } else { @@ -252,24 +246,42 @@ bool CreateDialog::_is_class_disabled_by_feature_profile(const StringName &p_cla if (profile->is_class_disabled(class_name)) { return true; } - class_name = ClassDB::get_parent_class(class_name); + class_name = ClassDB::get_parent_class_nocheck(class_name); } return false; } +void CreateDialog::select_type(const String &p_type) { + + TreeItem *to_select; + if (search_options_types.has(p_type)) { + to_select = search_options_types[p_type]; + } else { + to_select = search_options->get_root(); + } + + // uncollapse from selected type to top level + // TODO: should this be in tree? + TreeItem *cur = to_select; + while (cur) { + cur->set_collapsed(false); + cur = cur->get_parent(); + } + + to_select->select(0); + + search_options->scroll_to_item(to_select); +} + void CreateDialog::_update_search() { search_options->clear(); favorite->set_disabled(true); help_bit->set_text(""); - /* - TreeItem *root = search_options->create_item(); - _parse_fs(EditorFileSystem::get_singleton()->get_filesystem()); -*/ - HashMap<String, TreeItem *> types; + search_options_types.clear(); TreeItem *root = search_options->create_item(); EditorData &ed = EditorNode::get_editor_data(); @@ -307,7 +319,7 @@ void CreateDialog::_update_search() { } if (search_box->get_text() == "") { - add_type(type, types, root, &to_select); + add_type(type, search_options_types, root, &to_select); } else { bool found = false; @@ -323,7 +335,7 @@ void CreateDialog::_update_search() { } if (found) - add_type(I->get(), types, root, &to_select); + add_type(I->get(), search_options_types, root, &to_select); } if (EditorNode::get_editor_data().get_custom_types().has(type) && ClassDB::is_parent_class(type, base_type)) { @@ -337,12 +349,12 @@ void CreateDialog::_update_search() { if (!show) continue; - if (!types.has(type)) - add_type(type, types, root, &to_select); + if (!search_options_types.has(type)) + add_type(type, search_options_types, root, &to_select); TreeItem *ti; - if (types.has(type)) - ti = types[type]; + if (search_options_types.has(type)) + ti = search_options_types[type]; else ti = search_options->get_root(); @@ -718,6 +730,7 @@ CreateDialog::CreateDialog() { fav_vb->add_margin_child(TTR("Favorites:"), favorites, true); favorites->set_hide_root(true); favorites->set_hide_folding(true); + favorites->set_allow_reselect(true); favorites->connect("cell_selected", this, "_favorite_selected"); favorites->connect("item_activated", this, "_favorite_activated"); favorites->set_drag_forwarding(this); @@ -732,6 +745,7 @@ CreateDialog::CreateDialog() { rec_vb->add_margin_child(TTR("Recent:"), recent, true); recent->set_hide_root(true); recent->set_hide_folding(true); + recent->set_allow_reselect(true); recent->connect("cell_selected", this, "_history_selected"); recent->connect("item_activated", this, "_history_activated"); recent->add_constant_override("draw_guides", 1); diff --git a/editor/create_dialog.h b/editor/create_dialog.h index d859f7cbe4..03c4b25f5c 100644 --- a/editor/create_dialog.h +++ b/editor/create_dialog.h @@ -53,6 +53,7 @@ class CreateDialog : public ConfirmationDialog { Button *favorite; LineEdit *search_box; Tree *search_options; + HashMap<String, TreeItem *> search_options_types; bool is_replace_mode; String base_type; String preferred_search_result_type; @@ -82,6 +83,8 @@ class CreateDialog : public ConfirmationDialog { void add_type(const String &p_type, HashMap<String, TreeItem *> &p_types, TreeItem *p_root, TreeItem **to_select); + void select_type(const String &p_type); + Variant get_drag_data_fw(const Point2 &p_point, Control *p_from); bool can_drop_data_fw(const Point2 &p_point, const Variant &p_data, Control *p_from) const; void drop_data_fw(const Point2 &p_point, const Variant &p_data, Control *p_from); @@ -104,7 +107,7 @@ public: void set_preferred_search_result_type(const String &p_preferred_type); String get_preferred_search_result_type(); - void popup_create(bool p_dont_clear, bool p_replace_mode = false); + void popup_create(bool p_dont_clear, bool p_replace_mode = false, const String &p_select_type = "Node"); CreateDialog(); }; diff --git a/editor/dependency_editor.cpp b/editor/dependency_editor.cpp index bde73e9268..9a049f3ae3 100644 --- a/editor/dependency_editor.cpp +++ b/editor/dependency_editor.cpp @@ -35,9 +35,6 @@ #include "editor_node.h" #include "scene/gui/margin_container.h" -void DependencyEditor::_notification(int p_what) { -} - void DependencyEditor::_searched(const String &p_path) { Map<String, String> dep_rename; @@ -63,7 +60,7 @@ void DependencyEditor::_load_pressed(Object *p_item, int p_cell, int p_button) { for (List<String>::Element *E = ext.front(); E; E = E->next()) { search->add_filter("*" + E->get()); } - search->popup_centered_ratio(); + search->popup_centered_ratio(0.65); // So it doesn't completely cover the dialog below it. } void DependencyEditor::_fix_and_find(EditorFileSystemDirectory *efsd, Map<String, Map<String, String> > &candidates) { @@ -222,7 +219,7 @@ void DependencyEditor::edit(const String &p_path) { set_title(TTR("Dependencies For:") + " " + p_path.get_file()); _update_list(); - popup_centered_ratio(); + popup_centered_ratio(0.7); // So it doesn't completely cover the dialog below it. if (EditorNode::get_singleton()->is_scene_open(p_path)) { EditorNode::get_singleton()->show_warning(vformat(TTR("Scene '%s' is currently being edited.\nChanges will only take effect when reloaded."), p_path.get_file())); @@ -478,12 +475,13 @@ void DependencyRemoveDialog::show(const Vector<String> &p_folders, const Vector< if (removed_deps.empty()) { owners->hide(); text->set_text(TTR("Remove selected files from the project? (no undo)")); - popup_centered_minsize(Size2(400, 100)); + set_size(Size2()); + popup_centered(); } else { _build_removed_dependency_tree(removed_deps); owners->show(); text->set_text(TTR("The files being removed are required by other resources in order for them to work.\nRemove them anyway? (no undo)")); - popup_centered_minsize(Size2(500, 350)); + popup_centered(Size2(500, 350)); } EditorFileSystem::get_singleton()->scan_changes(); } @@ -579,6 +577,8 @@ void DependencyRemoveDialog::_bind_methods() { DependencyRemoveDialog::DependencyRemoveDialog() { + get_ok()->set_text(TTR("Remove")); + VBoxContainer *vb = memnew(VBoxContainer); add_child(vb); @@ -589,7 +589,6 @@ DependencyRemoveDialog::DependencyRemoveDialog() { owners->set_hide_root(true); vb->add_child(owners); owners->set_v_size_flags(SIZE_EXPAND_FILL); - get_ok()->set_text(TTR("Remove")); } ////////////// @@ -617,7 +616,7 @@ void DependencyErrorDialog::show(Mode p_mode, const String &p_for_file, const Ve ti->set_icon(0, icon); } - popup_centered_minsize(Size2(500, 220)); + popup_centered(); } void DependencyErrorDialog::ok_pressed() { @@ -646,7 +645,8 @@ DependencyErrorDialog::DependencyErrorDialog() { files->set_hide_root(true); vb->add_margin_child(TTR("Load failed due to missing dependencies:"), files, true); files->set_v_size_flags(SIZE_EXPAND_FILL); - files->set_custom_minimum_size(Size2(1, 200)); + + set_custom_minimum_size(Size2(500, 220)); get_ok()->set_text(TTR("Open Anyway")); get_cancel()->set_text(TTR("Close")); @@ -670,7 +670,7 @@ void OrphanResourcesDialog::ok_pressed() { return; delete_confirm->set_text(vformat(TTR("Permanently delete %d item(s)? (No undo!)"), paths.size())); - delete_confirm->popup_centered_minsize(); + delete_confirm->popup_centered_clamped(delete_confirm->get_minimum_size()); } bool OrphanResourcesDialog::_fill_owners(EditorFileSystemDirectory *efsd, HashMap<String, int> &refs, TreeItem *p_parent) { @@ -725,7 +725,7 @@ bool OrphanResourcesDialog::_fill_owners(EditorFileSystemDirectory *efsd, HashMa int ds = efsd->get_file_deps(i).size(); ti->set_text(1, itos(ds)); if (ds) { - ti->add_button(1, get_icon("GuiVisibilityVisible", "EditorIcons")); + ti->add_button(1, get_icon("GuiVisibilityVisible", "EditorIcons"), -1, false, TTR("Show Dependencies")); } ti->set_metadata(0, path); has_children = true; @@ -794,6 +794,15 @@ void OrphanResourcesDialog::_bind_methods() { OrphanResourcesDialog::OrphanResourcesDialog() { + set_title(TTR("Orphan Resource Explorer")); + delete_confirm = memnew(ConfirmationDialog); + get_ok()->set_text(TTR("Delete")); + add_child(delete_confirm); + dep_edit = memnew(DependencyEditor); + add_child(dep_edit); + delete_confirm->connect("confirmed", this, "_delete_confirm"); + set_hide_on_ok(false); + VBoxContainer *vbc = memnew(VBoxContainer); add_child(vbc); @@ -807,14 +816,5 @@ OrphanResourcesDialog::OrphanResourcesDialog() { files->set_column_title(1, TTR("Owns")); files->set_hide_root(true); vbc->add_margin_child(TTR("Resources Without Explicit Ownership:"), files, true); - set_title(TTR("Orphan Resource Explorer")); - delete_confirm = memnew(ConfirmationDialog); - delete_confirm->set_text(TTR("Delete selected files?")); - get_ok()->set_text(TTR("Delete")); - add_child(delete_confirm); - dep_edit = memnew(DependencyEditor); - add_child(dep_edit); files->connect("button_pressed", this, "_button_pressed"); - delete_confirm->connect("confirmed", this, "_delete_confirm"); - set_hide_on_ok(false); } diff --git a/editor/dependency_editor.h b/editor/dependency_editor.h index 23c3cc031c..22e28a4d26 100644 --- a/editor/dependency_editor.h +++ b/editor/dependency_editor.h @@ -63,7 +63,6 @@ class DependencyEditor : public AcceptDialog { protected: static void _bind_methods(); - void _notification(int p_what); public: void edit(const String &p_path); diff --git a/editor/doc/doc_data.cpp b/editor/doc/doc_data.cpp index c2a492bc9a..7d2159d365 100644 --- a/editor/doc/doc_data.cpp +++ b/editor/doc/doc_data.cpp @@ -136,9 +136,6 @@ void DocData::merge_from(const DocData &p_data) { const PropertyDoc &pf = cf.properties[j]; p.description = pf.description; - p.setter = pf.setter; - p.getter = pf.getter; - break; } } diff --git a/editor/editor_about.cpp b/editor/editor_about.cpp index e9dd6d7199..bea1980b09 100644 --- a/editor/editor_about.cpp +++ b/editor/editor_about.cpp @@ -131,7 +131,7 @@ EditorAbout::EditorAbout() { String hash = String(VERSION_HASH); if (hash.length() != 0) - hash = "." + hash.left(7); + hash = "." + hash.left(9); Label *about_text = memnew(Label); about_text->set_v_size_flags(Control::SIZE_SHRINK_CENTER); diff --git a/editor/editor_atlas_packer.cpp b/editor/editor_atlas_packer.cpp index 4e1d98399a..96ddc607df 100644 --- a/editor/editor_atlas_packer.cpp +++ b/editor/editor_atlas_packer.cpp @@ -1,3 +1,33 @@ +/*************************************************************************/ +/* editor_atlas_packer.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 "editor_atlas_packer.h" void EditorAtlasPacker::_plot_triangle(Ref<BitMap> p_bitmap, Vector2i *vertices) { diff --git a/editor/editor_atlas_packer.h b/editor/editor_atlas_packer.h index dd9caa340e..1627f74a28 100644 --- a/editor/editor_atlas_packer.h +++ b/editor/editor_atlas_packer.h @@ -1,3 +1,33 @@ +/*************************************************************************/ +/* editor_atlas_packer.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 EDITOR_ATLAS_PACKER_H #define EDITOR_ATLAS_PACKER_H diff --git a/editor/editor_audio_buses.cpp b/editor/editor_audio_buses.cpp index 9cd7d781a4..57fac241b0 100644 --- a/editor/editor_audio_buses.cpp +++ b/editor/editor_audio_buses.cpp @@ -63,118 +63,132 @@ void EditorAudioBus::_update_visible_channels() { void EditorAudioBus::_notification(int p_what) { - if (p_what == NOTIFICATION_READY) { - - for (int i = 0; i < CHANNELS_MAX; i++) { - channel[i].vu_l->set_under_texture(get_icon("BusVuEmpty", "EditorIcons")); - channel[i].vu_l->set_progress_texture(get_icon("BusVuFull", "EditorIcons")); - channel[i].vu_r->set_under_texture(get_icon("BusVuEmpty", "EditorIcons")); - channel[i].vu_r->set_progress_texture(get_icon("BusVuFull", "EditorIcons")); - channel[i].prev_active = true; - } - - disabled_vu = get_icon("BusVuFrozen", "EditorIcons"); - - Color solo_color = Color::html(EditorSettings::get_singleton()->is_dark_theme() ? "#ffe337" : "#ffeb70"); - Color mute_color = Color::html(EditorSettings::get_singleton()->is_dark_theme() ? "#ff2929" : "#ff7070"); - Color bypass_color = Color::html(EditorSettings::get_singleton()->is_dark_theme() ? "#22ccff" : "#70deff"); - - solo->set_icon(get_icon("AudioBusSolo", "EditorIcons")); - solo->add_color_override("icon_color_pressed", solo_color); - mute->set_icon(get_icon("AudioBusMute", "EditorIcons")); - mute->add_color_override("icon_color_pressed", mute_color); - bypass->set_icon(get_icon("AudioBusBypass", "EditorIcons")); - bypass->add_color_override("icon_color_pressed", bypass_color); - - bus_options->set_icon(get_icon("GuiMiniTabMenu", "EditorIcons")); - - update_bus(); - set_process(true); - } + switch (p_what) { + case NOTIFICATION_READY: { + + for (int i = 0; i < CHANNELS_MAX; i++) { + channel[i].vu_l->set_under_texture(get_icon("BusVuEmpty", "EditorIcons")); + channel[i].vu_l->set_progress_texture(get_icon("BusVuFull", "EditorIcons")); + channel[i].vu_r->set_under_texture(get_icon("BusVuEmpty", "EditorIcons")); + channel[i].vu_r->set_progress_texture(get_icon("BusVuFull", "EditorIcons")); + channel[i].prev_active = true; + } - if (p_what == NOTIFICATION_DRAW) { + disabled_vu = get_icon("BusVuFrozen", "EditorIcons"); - if (has_focus()) { - draw_style_box(get_stylebox("focus", "Button"), Rect2(Vector2(), get_size())); - } else if (is_master) { - draw_style_box(get_stylebox("disabled", "Button"), Rect2(Vector2(), get_size())); - } - } + Color solo_color = Color::html(EditorSettings::get_singleton()->is_dark_theme() ? "#ffe337" : "#ffeb70"); + Color mute_color = Color::html(EditorSettings::get_singleton()->is_dark_theme() ? "#ff2929" : "#ff7070"); + Color bypass_color = Color::html(EditorSettings::get_singleton()->is_dark_theme() ? "#22ccff" : "#70deff"); - if (p_what == NOTIFICATION_PROCESS) { + solo->set_icon(get_icon("AudioBusSolo", "EditorIcons")); + solo->add_color_override("icon_color_pressed", solo_color); + mute->set_icon(get_icon("AudioBusMute", "EditorIcons")); + mute->add_color_override("icon_color_pressed", mute_color); + bypass->set_icon(get_icon("AudioBusBypass", "EditorIcons")); + bypass->add_color_override("icon_color_pressed", bypass_color); - if (cc != AudioServer::get_singleton()->get_bus_channels(get_index())) { - cc = AudioServer::get_singleton()->get_bus_channels(get_index()); - _update_visible_channels(); - } + bus_options->set_icon(get_icon("GuiMiniTabMenu", "EditorIcons")); - for (int i = 0; i < cc; i++) { - float real_peak[2] = { -100, -100 }; - bool activity_found = false; + update_bus(); + set_process(true); + } break; + case NOTIFICATION_DRAW: { - if (AudioServer::get_singleton()->is_bus_channel_active(get_index(), i)) { - activity_found = true; - real_peak[0] = MAX(real_peak[0], AudioServer::get_singleton()->get_bus_peak_volume_left_db(get_index(), i)); - real_peak[1] = MAX(real_peak[1], AudioServer::get_singleton()->get_bus_peak_volume_right_db(get_index(), i)); + if (is_master) { + draw_style_box(get_stylebox("disabled", "Button"), Rect2(Vector2(), get_size())); + } else if (has_focus()) { + draw_style_box(get_stylebox("focus", "Button"), Rect2(Vector2(), get_size())); + } else { + draw_style_box(get_stylebox("panel", "TabContainer"), Rect2(Vector2(), get_size())); } - if (real_peak[0] > channel[i].peak_l) { - channel[i].peak_l = real_peak[0]; - } else { - channel[i].peak_l -= get_process_delta_time() * 60.0; + if (get_index() != 0 && hovering_drop) { + Color accent = get_color("accent_color", "Editor"); + accent.a *= 0.7; + draw_rect(Rect2(Point2(), get_size()), accent, false); } + } break; + case NOTIFICATION_PROCESS: { - if (real_peak[1] > channel[i].peak_r) { - channel[i].peak_r = real_peak[1]; - } else { - channel[i].peak_r -= get_process_delta_time() * 60.0; + if (cc != AudioServer::get_singleton()->get_bus_channels(get_index())) { + cc = AudioServer::get_singleton()->get_bus_channels(get_index()); + _update_visible_channels(); } - channel[i].vu_l->set_value(channel[i].peak_l); - channel[i].vu_r->set_value(channel[i].peak_r); + for (int i = 0; i < cc; i++) { + float real_peak[2] = { -100, -100 }; + bool activity_found = false; - if (activity_found != channel[i].prev_active) { - if (activity_found) { - channel[i].vu_l->set_over_texture(Ref<Texture>()); - channel[i].vu_r->set_over_texture(Ref<Texture>()); + if (AudioServer::get_singleton()->is_bus_channel_active(get_index(), i)) { + activity_found = true; + real_peak[0] = MAX(real_peak[0], AudioServer::get_singleton()->get_bus_peak_volume_left_db(get_index(), i)); + real_peak[1] = MAX(real_peak[1], AudioServer::get_singleton()->get_bus_peak_volume_right_db(get_index(), i)); + } + + if (real_peak[0] > channel[i].peak_l) { + channel[i].peak_l = real_peak[0]; } else { - channel[i].vu_l->set_over_texture(disabled_vu); - channel[i].vu_r->set_over_texture(disabled_vu); + channel[i].peak_l -= get_process_delta_time() * 60.0; } - channel[i].prev_active = activity_found; - } - } - } + if (real_peak[1] > channel[i].peak_r) { + channel[i].peak_r = real_peak[1]; + } else { + channel[i].peak_r -= get_process_delta_time() * 60.0; + } - if (p_what == NOTIFICATION_VISIBILITY_CHANGED) { + channel[i].vu_l->set_value(channel[i].peak_l); + channel[i].vu_r->set_value(channel[i].peak_r); - for (int i = 0; i < CHANNELS_MAX; i++) { - channel[i].peak_l = -100; - channel[i].peak_r = -100; - channel[i].prev_active = true; - } + if (activity_found != channel[i].prev_active) { + if (activity_found) { + channel[i].vu_l->set_over_texture(Ref<Texture>()); + channel[i].vu_r->set_over_texture(Ref<Texture>()); + } else { + channel[i].vu_l->set_over_texture(disabled_vu); + channel[i].vu_r->set_over_texture(disabled_vu); + } - set_process(is_visible_in_tree()); - } + channel[i].prev_active = activity_found; + } + } + } break; + case NOTIFICATION_VISIBILITY_CHANGED: { - if (p_what == NOTIFICATION_THEME_CHANGED) { + for (int i = 0; i < CHANNELS_MAX; i++) { + channel[i].peak_l = -100; + channel[i].peak_r = -100; + channel[i].prev_active = true; + } - for (int i = 0; i < CHANNELS_MAX; i++) { - channel[i].vu_l->set_under_texture(get_icon("BusVuEmpty", "EditorIcons")); - channel[i].vu_l->set_progress_texture(get_icon("BusVuFull", "EditorIcons")); - channel[i].vu_r->set_under_texture(get_icon("BusVuEmpty", "EditorIcons")); - channel[i].vu_r->set_progress_texture(get_icon("BusVuFull", "EditorIcons")); - channel[i].prev_active = true; - } + set_process(is_visible_in_tree()); + } break; + case NOTIFICATION_THEME_CHANGED: { - disabled_vu = get_icon("BusVuFrozen", "EditorIcons"); + for (int i = 0; i < CHANNELS_MAX; i++) { + channel[i].vu_l->set_under_texture(get_icon("BusVuEmpty", "EditorIcons")); + channel[i].vu_l->set_progress_texture(get_icon("BusVuFull", "EditorIcons")); + channel[i].vu_r->set_under_texture(get_icon("BusVuEmpty", "EditorIcons")); + channel[i].vu_r->set_progress_texture(get_icon("BusVuFull", "EditorIcons")); + channel[i].prev_active = true; + } - solo->set_icon(get_icon("AudioBusSolo", "EditorIcons")); - mute->set_icon(get_icon("AudioBusMute", "EditorIcons")); - bypass->set_icon(get_icon("AudioBusBypass", "EditorIcons")); + disabled_vu = get_icon("BusVuFrozen", "EditorIcons"); - bus_options->set_icon(get_icon("GuiMiniTabMenu", "EditorIcons")); + solo->set_icon(get_icon("AudioBusSolo", "EditorIcons")); + mute->set_icon(get_icon("AudioBusMute", "EditorIcons")); + bypass->set_icon(get_icon("AudioBusBypass", "EditorIcons")); + + bus_options->set_icon(get_icon("GuiMiniTabMenu", "EditorIcons")); + } break; + case NOTIFICATION_MOUSE_EXIT: + case NOTIFICATION_DRAG_END: { + + if (hovering_drop) { + hovering_drop = false; + update(); + } + } break; } } @@ -553,6 +567,7 @@ Variant EditorAudioBus::get_drag_data(const Point2 &p_point) { Control *c = memnew(Control); Panel *p = memnew(Panel); c->add_child(p); + p->set_modulate(Color(1, 1, 1, 0.7)); p->add_style_override("panel", get_stylebox("focus", "Button")); p->set_size(get_size()); p->set_position(-p_point); @@ -560,21 +575,29 @@ Variant EditorAudioBus::get_drag_data(const Point2 &p_point) { Dictionary d; d["type"] = "move_audio_bus"; d["index"] = get_index(); - emit_signal("drop_end_request"); + + if (get_index() < AudioServer::get_singleton()->get_bus_count() - 1) { + emit_signal("drop_end_request"); + } + return d; } bool EditorAudioBus::can_drop_data(const Point2 &p_point, const Variant &p_data) const { - if (get_index() == 0) + if (get_index() == 0) { return false; + } + Dictionary d = p_data; - if (d.has("type") && String(d["type"]) == "move_audio_bus") { + if (d.has("type") && String(d["type"]) == "move_audio_bus" && (int)d["index"] != get_index()) { + hovering_drop = true; return true; } return false; } + void EditorAudioBus::drop_data(const Point2 &p_point, const Variant &p_data) { Dictionary d = p_data; @@ -589,7 +612,6 @@ Variant EditorAudioBus::get_drag_data_fw(const Point2 &p_point, Control *p_from) } Variant md = item->get_metadata(0); - if (md.get_type() == Variant::INT) { Dictionary fxd; fxd["type"] = "audio_bus_effect"; @@ -749,6 +771,7 @@ EditorAudioBus::EditorAudioBus(EditorAudioBuses *p_buses, bool p_is_master) { buses = p_buses; updating_bus = false; is_master = p_is_master; + hovering_drop = false; set_tooltip(TTR("Audio Bus, Drag and Drop to rearrange.")); @@ -756,7 +779,6 @@ EditorAudioBus::EditorAudioBus(EditorAudioBuses *p_buses, bool p_is_master) { add_child(vb); set_v_size_flags(SIZE_EXPAND_FILL); - set_custom_minimum_size(Size2(110, 0) * EDSCALE); track_name = memnew(LineEdit); track_name->connect("text_entered", this, "_name_changed"); @@ -800,7 +822,9 @@ EditorAudioBus::EditorAudioBus(EditorAudioBuses *p_buses, bool p_is_master) { child->add_style_override("pressed", sbempty); } - vb->add_child(memnew(HSeparator)); + HSeparator *separator = memnew(HSeparator); + separator->set_mouse_filter(MOUSE_FILTER_PASS); + vb->add_child(separator); HBoxContainer *hb = memnew(HBoxContainer); vb->add_child(hb); @@ -811,20 +835,19 @@ EditorAudioBus::EditorAudioBus(EditorAudioBuses *p_buses, bool p_is_master) { slider->set_clip_contents(false); audio_value_preview_box = memnew(Panel); - { - HBoxContainer *audioprev_hbc = memnew(HBoxContainer); - audioprev_hbc->set_v_size_flags(SIZE_EXPAND_FILL); - audioprev_hbc->set_h_size_flags(SIZE_EXPAND_FILL); - audioprev_hbc->set_mouse_filter(MOUSE_FILTER_PASS); - audio_value_preview_box->add_child(audioprev_hbc); - - audio_value_preview_label = memnew(Label); - audio_value_preview_label->set_v_size_flags(SIZE_EXPAND_FILL); - audio_value_preview_label->set_h_size_flags(SIZE_EXPAND_FILL); - audio_value_preview_label->set_mouse_filter(MOUSE_FILTER_PASS); - - audioprev_hbc->add_child(audio_value_preview_label); - } + HBoxContainer *audioprev_hbc = memnew(HBoxContainer); + audioprev_hbc->set_v_size_flags(SIZE_EXPAND_FILL); + audioprev_hbc->set_h_size_flags(SIZE_EXPAND_FILL); + audioprev_hbc->set_mouse_filter(MOUSE_FILTER_PASS); + audio_value_preview_box->add_child(audioprev_hbc); + + audio_value_preview_label = memnew(Label); + audio_value_preview_label->set_v_size_flags(SIZE_EXPAND_FILL); + audio_value_preview_label->set_h_size_flags(SIZE_EXPAND_FILL); + audio_value_preview_label->set_mouse_filter(MOUSE_FILTER_PASS); + + audioprev_hbc->add_child(audio_value_preview_label); + slider->add_child(audio_value_preview_box); audio_value_preview_box->set_as_toplevel(true); Ref<StyleBoxFlat> panel_style = memnew(StyleBoxFlat); @@ -863,17 +886,18 @@ EditorAudioBus::EditorAudioBus(EditorAudioBuses *p_buses, bool p_is_master) { channel[i].peak_r = 0.0f; } - scale = memnew(EditorAudioMeterNotches); + EditorAudioMeterNotches *scale = memnew(EditorAudioMeterNotches); for (float db = 6.0f; db >= -80.0f; db -= 6.0f) { bool renderNotch = (db >= -6.0f || db == -24.0f || db == -72.0f); scale->add_notch(_scaled_db_to_normalized_volume(db), db, renderNotch); } + scale->set_mouse_filter(MOUSE_FILTER_PASS); hb->add_child(scale); effects = memnew(Tree); effects->set_hide_root(true); - effects->set_custom_minimum_size(Size2(0, 100) * EDSCALE); + effects->set_custom_minimum_size(Size2(0, 80) * EDSCALE); effects->set_hide_folding(true); effects->set_v_size_flags(SIZE_EXPAND_FILL); vb->add_child(effects); @@ -923,6 +947,36 @@ EditorAudioBus::EditorAudioBus(EditorAudioBuses *p_buses, bool p_is_master) { delete_effect_popup->connect("index_pressed", this, "_delete_effect_pressed"); } +void EditorAudioBusDrop::_notification(int p_what) { + + switch (p_what) { + case NOTIFICATION_DRAW: { + draw_style_box(get_stylebox("normal", "Button"), Rect2(Vector2(), get_size())); + + if (hovering_drop) { + Color accent = get_color("accent_color", "Editor"); + accent.a *= 0.7; + draw_rect(Rect2(Point2(), get_size()), accent, false); + } + } break; + case NOTIFICATION_MOUSE_ENTER: { + + if (!hovering_drop) { + hovering_drop = true; + update(); + } + } break; + case NOTIFICATION_MOUSE_EXIT: + case NOTIFICATION_DRAG_END: { + + if (hovering_drop) { + hovering_drop = false; + update(); + } + } break; + } +} + bool EditorAudioBusDrop::can_drop_data(const Point2 &p_point, const Variant &p_data) const { Dictionary d = p_data; @@ -932,10 +986,11 @@ bool EditorAudioBusDrop::can_drop_data(const Point2 &p_point, const Variant &p_d return false; } + void EditorAudioBusDrop::drop_data(const Point2 &p_point, const Variant &p_data) { Dictionary d = p_data; - emit_signal("dropped", d["index"], -1); + emit_signal("dropped", d["index"], AudioServer::get_singleton()->get_bus_count()); } void EditorAudioBusDrop::_bind_methods() { @@ -944,6 +999,8 @@ void EditorAudioBusDrop::_bind_methods() { } EditorAudioBusDrop::EditorAudioBusDrop() { + + hovering_drop = false; } void EditorAudioBuses::_update_buses() { @@ -976,37 +1033,43 @@ EditorAudioBuses *EditorAudioBuses::register_editor() { void EditorAudioBuses::_notification(int p_what) { - if (p_what == NOTIFICATION_READY) { - _update_buses(); - } + switch (p_what) { + case NOTIFICATION_ENTER_TREE: + case NOTIFICATION_THEME_CHANGED: { - if (p_what == NOTIFICATION_DRAG_END) { - if (drop_end) { - drop_end->queue_delete(); - drop_end = NULL; - } - } + bus_scroll->add_style_override("bg", get_stylebox("bg", "Tree")); + } break; + case NOTIFICATION_READY: { - if (p_what == NOTIFICATION_PROCESS) { + _update_buses(); + } break; + case NOTIFICATION_DRAG_END: { - //check if anything was edited - bool edited = AudioServer::get_singleton()->is_edited(); - for (int i = 0; i < AudioServer::get_singleton()->get_bus_count(); i++) { - for (int j = 0; j < AudioServer::get_singleton()->get_bus_effect_count(i); j++) { - Ref<AudioEffect> effect = AudioServer::get_singleton()->get_bus_effect(i, j); - if (effect->is_edited()) { - edited = true; - effect->set_edited(false); + if (drop_end) { + drop_end->queue_delete(); + drop_end = NULL; + } + } break; + case NOTIFICATION_PROCESS: { + + // Check if anything was edited. + bool edited = AudioServer::get_singleton()->is_edited(); + for (int i = 0; i < AudioServer::get_singleton()->get_bus_count(); i++) { + for (int j = 0; j < AudioServer::get_singleton()->get_bus_effect_count(i); j++) { + Ref<AudioEffect> effect = AudioServer::get_singleton()->get_bus_effect(i, j); + if (effect->is_edited()) { + edited = true; + effect->set_edited(false); + } } } - } - - AudioServer::get_singleton()->set_edited(false); - if (edited) { + AudioServer::get_singleton()->set_edited(false); - save_timer->start(); - } + if (edited) { + save_timer->start(); + } + } break; } } @@ -1014,7 +1077,6 @@ void EditorAudioBuses::_add_bus() { UndoRedo *ur = EditorNode::get_singleton()->get_undo_redo(); - //need to simulate new name, so we can undi :( ur->create_action(TTR("Add Audio Bus")); ur->add_do_method(AudioServer::get_singleton(), "set_bus_count", AudioServer::get_singleton()->get_bus_count() + 1); ur->add_undo_method(AudioServer::get_singleton(), "set_bus_count", AudioServer::get_singleton()->get_bus_count()); @@ -1119,21 +1181,12 @@ void EditorAudioBuses::_request_drop_end() { void EditorAudioBuses::_drop_at_index(int p_bus, int p_index) { UndoRedo *ur = EditorNode::get_singleton()->get_undo_redo(); - - //need to simulate new name, so we can undi :( ur->create_action(TTR("Move Audio Bus")); + ur->add_do_method(AudioServer::get_singleton(), "move_bus", p_bus, p_index); - int final_pos; - if (p_index == p_bus) { - final_pos = p_bus; - } else if (p_index == -1) { - final_pos = AudioServer::get_singleton()->get_bus_count() - 1; - } else if (p_index < p_bus) { - final_pos = p_index; - } else { - final_pos = p_index - 1; - } - ur->add_undo_method(AudioServer::get_singleton(), "move_bus", final_pos, p_bus); + int real_bus = p_index > p_bus ? p_bus : p_bus + 1; + int real_index = p_index > p_bus ? p_index - 1 : p_index; + ur->add_undo_method(AudioServer::get_singleton(), "move_bus", real_index, real_bus); ur->add_do_method(this, "_update_buses"); ur->add_undo_method(this, "_update_buses"); @@ -1189,7 +1242,7 @@ void EditorAudioBuses::_load_default_layout() { } edited_path = layout_path; - file->set_text(layout_path.get_file()); + file->set_text(String(TTR("Layout")) + ": " + layout_path.get_file()); AudioServer::get_singleton()->set_bus_layout(state); _update_buses(); EditorNode::get_singleton()->get_undo_redo()->clear_history(); @@ -1206,7 +1259,7 @@ void EditorAudioBuses::_file_dialog_callback(const String &p_string) { } edited_path = p_string; - file->set_text(p_string.get_file()); + file->set_text(String(TTR("Layout")) + ": " + p_string.get_file()); AudioServer::get_singleton()->set_bus_layout(state); _update_buses(); EditorNode::get_singleton()->get_undo_redo()->clear_history(); @@ -1228,7 +1281,7 @@ void EditorAudioBuses::_file_dialog_callback(const String &p_string) { } edited_path = p_string; - file->set_text(p_string.get_file()); + file->set_text(String(TTR("Layout")) + ": " + p_string.get_file()); _update_buses(); EditorNode::get_singleton()->get_undo_redo()->clear_history(); call_deferred("_select_layout"); @@ -1262,19 +1315,20 @@ EditorAudioBuses::EditorAudioBuses() { top_hb = memnew(HBoxContainer); add_child(top_hb); - file = memnew(ToolButton); - file->set_text("default_bus_layout.tres"); + file = memnew(Label); + file->set_text(String(TTR("Layout")) + ": " + "default_bus_layout.tres"); + file->set_clip_text(true); + file->set_h_size_flags(SIZE_EXPAND_FILL); top_hb->add_child(file); - file->connect("pressed", this, "_select_layout"); add = memnew(Button); top_hb->add_child(add); add->set_text(TTR("Add Bus")); add->set_tooltip(TTR("Add a new Audio Bus to this layout.")); - add->connect("pressed", this, "_add_bus"); - top_hb->add_spacer(); + VSeparator *separator = memnew(VSeparator); + top_hb->add_child(separator); load = memnew(Button); load->set_text(TTR("Load")); @@ -1301,7 +1355,6 @@ EditorAudioBuses::EditorAudioBuses() { _new->connect("pressed", this, "_new_layout"); bus_scroll = memnew(ScrollContainer); - bus_scroll->add_style_override("panel", memnew(StyleBoxEmpty)); bus_scroll->set_v_size_flags(SIZE_EXPAND_FILL); bus_scroll->set_enable_h_scroll(true); bus_scroll->set_enable_v_scroll(false); @@ -1377,38 +1430,65 @@ AudioBusesEditorPlugin::AudioBusesEditorPlugin(EditorAudioBuses *p_node) { AudioBusesEditorPlugin::~AudioBusesEditorPlugin() { } -void EditorAudioMeterNotches::add_notch(float normalized_offset, float db_value, bool render_value) { - notches.push_back(AudioNotch(normalized_offset, db_value, render_value)); +void EditorAudioMeterNotches::add_notch(float p_normalized_offset, float p_db_value, bool p_render_value) { + + notches.push_back(AudioNotch(p_normalized_offset, p_db_value, p_render_value)); +} + +Size2 EditorAudioMeterNotches::get_minimum_size() const { + + Ref<Font> font = get_font("font", "Label"); + float font_height = font->get_height(); + + float width = 0; + float height = top_padding + btm_padding; + + for (uint8_t i = 0; i < notches.size(); i++) { + if (notches[i].render_db_value) { + width = MAX(width, font->get_string_size(String::num(Math::abs(notches[i].db_value)) + "dB").x); + height += font_height; + } + } + width += line_length + label_space; + + return Size2(width, height); } void EditorAudioMeterNotches::_bind_methods() { + ClassDB::bind_method("add_notch", &EditorAudioMeterNotches::add_notch); ClassDB::bind_method("_draw_audio_notches", &EditorAudioMeterNotches::_draw_audio_notches); } void EditorAudioMeterNotches::_notification(int p_what) { - if (p_what == NOTIFICATION_DRAW) { - notch_color = EditorSettings::get_singleton()->is_dark_theme() ? Color(1.0f, 1.0f, 1.0f, 0.8f) : Color(0.0f, 0.0f, 0.0f, 0.8f); - _draw_audio_notches(); + + switch (p_what) { + case NOTIFICATION_THEME_CHANGED: { + notch_color = EditorSettings::get_singleton()->is_dark_theme() ? Color(1, 1, 1) : Color(0, 0, 0); + } break; + case NOTIFICATION_DRAW: { + _draw_audio_notches(); + } break; } } void EditorAudioMeterNotches::_draw_audio_notches() { + Ref<Font> font = get_font("font", "Label"); float font_height = font->get_height(); for (uint8_t i = 0; i < notches.size(); i++) { AudioNotch n = notches[i]; - draw_line(Vector2(0.0f, (1.0f - n.relative_position) * (get_size().y - btm_padding - top_padding) + top_padding), + draw_line(Vector2(0, (1.0f - n.relative_position) * (get_size().y - btm_padding - top_padding) + top_padding), Vector2(line_length, (1.0f - n.relative_position) * (get_size().y - btm_padding - top_padding) + top_padding), notch_color, - 1.0f); + 1); if (n.render_db_value) { draw_string(font, Vector2(line_length + label_space, (1.0f - n.relative_position) * (get_size().y - btm_padding - top_padding) + (font_height / 4) + top_padding), - String("{0}dB").format(varray(Math::abs(n.db_value))), + String::num(Math::abs(n.db_value)) + "dB", notch_color); } } @@ -1419,7 +1499,6 @@ EditorAudioMeterNotches::EditorAudioMeterNotches() : label_space(2.0f), btm_padding(9.0f), top_padding(5.0f) { - this->set_v_size_flags(SIZE_EXPAND_FILL); - this->set_h_size_flags(SIZE_EXPAND_FILL); - notch_color = EditorSettings::get_singleton()->is_dark_theme() ? Color(1.0f, 1.0f, 1.0f, 0.8f) : Color(0.0f, 0.0f, 0.0f, 0.8f); + + notch_color = EditorSettings::get_singleton()->is_dark_theme() ? Color(1, 1, 1) : Color(0, 0, 0); } diff --git a/editor/editor_audio_buses.h b/editor/editor_audio_buses.h index 50f2101fd8..20890fd3b5 100644 --- a/editor/editor_audio_buses.h +++ b/editor/editor_audio_buses.h @@ -72,7 +72,6 @@ class EditorAudioBus : public PanelContainer { TextureProgress *vu_r; } channel[CHANNELS_MAX]; - class EditorAudioMeterNotches *scale; OptionButton *send; PopupMenu *effect_options; @@ -90,8 +89,8 @@ class EditorAudioBus : public PanelContainer { Tree *effects; bool updating_bus; - bool is_master; + mutable bool hovering_drop; void _gui_input(const Ref<InputEvent> &p_event); void _bus_popup_pressed(int p_option); @@ -137,15 +136,18 @@ public: EditorAudioBus(EditorAudioBuses *p_buses = NULL, bool p_is_master = false); }; -class EditorAudioBusDrop : public Panel { +class EditorAudioBusDrop : public Control { - GDCLASS(EditorAudioBusDrop, Panel); + GDCLASS(EditorAudioBusDrop, Control); virtual bool can_drop_data(const Point2 &p_point, const Variant &p_data) const; virtual void drop_data(const Point2 &p_point, const Variant &p_data); + mutable bool hovering_drop; + protected: static void _bind_methods(); + void _notification(int p_what); public: EditorAudioBusDrop(); @@ -157,13 +159,14 @@ class EditorAudioBuses : public VBoxContainer { HBoxContainer *top_hb; - Button *add; ScrollContainer *bus_scroll; HBoxContainer *bus_hb; EditorAudioBusDrop *drop_end; - Button *file; + Label *file; + + Button *add; Button *load; Button *save_as; Button *_default; @@ -242,7 +245,8 @@ public: float top_padding; Color notch_color; - void add_notch(float normalized_offset, float db_value, bool render_value = false); + void add_notch(float p_normalized_offset, float p_db_value, bool p_render_value = false); + Size2 get_minimum_size() const; private: static void _bind_methods(); diff --git a/editor/editor_autoload_settings.cpp b/editor/editor_autoload_settings.cpp index e0c90808a0..913eb35f8a 100644 --- a/editor/editor_autoload_settings.cpp +++ b/editor/editor_autoload_settings.cpp @@ -73,7 +73,7 @@ bool EditorAutoloadSettings::_autoload_name_is_valid(const String &p_name, Strin if (ClassDB::class_exists(p_name)) { if (r_error) - *r_error = TTR("Invalid name. Must not collide with an existing engine class name."); + *r_error = TTR("Invalid name.") + "\n" + TTR("Must not collide with an existing engine class name."); return false; } @@ -81,7 +81,7 @@ bool EditorAutoloadSettings::_autoload_name_is_valid(const String &p_name, Strin for (int i = 0; i < Variant::VARIANT_MAX; i++) { if (Variant::get_type_name(Variant::Type(i)) == p_name) { if (r_error) - *r_error = TTR("Invalid name. Must not collide with an existing buit-in type name."); + *r_error = TTR("Invalid name.") + "\n" + TTR("Must not collide with an existing built-in type name."); return false; } @@ -90,20 +90,33 @@ bool EditorAutoloadSettings::_autoload_name_is_valid(const String &p_name, Strin for (int i = 0; i < GlobalConstants::get_global_constant_count(); i++) { if (GlobalConstants::get_global_constant_name(i) == p_name) { if (r_error) - *r_error = TTR("Invalid name. Must not collide with an existing global constant name."); + *r_error = TTR("Invalid name.") + "\n" + TTR("Must not collide with an existing global constant name."); return false; } } + for (int i = 0; i < ScriptServer::get_language_count(); i++) { + List<String> keywords; + ScriptServer::get_language(i)->get_reserved_words(&keywords); + for (List<String>::Element *E = keywords.front(); E; E = E->next()) { + if (E->get() == p_name) { + if (r_error) + *r_error = TTR("Invalid name.") + "\n" + TTR("Keyword cannot be used as an autoload name."); + + return false; + } + } + } + return true; } void EditorAutoloadSettings::_autoload_add() { - autoload_add(autoload_add_name->get_text(), autoload_add_path->get_line_edit()->get_text()); + if (autoload_add(autoload_add_name->get_text(), autoload_add_path->get_line_edit()->get_text())) + autoload_add_path->get_line_edit()->set_text(""); - autoload_add_path->get_line_edit()->set_text(""); autoload_add_name->set_text(""); } @@ -294,6 +307,7 @@ void EditorAutoloadSettings::_autoload_open(const String &fpath) { } ProjectSettingsEditor::get_singleton()->hide(); } + void EditorAutoloadSettings::_autoload_file_callback(const String &p_path) { autoload_add_name->set_text(p_path.get_file().get_basename()); @@ -626,25 +640,25 @@ void EditorAutoloadSettings::drop_data_fw(const Point2 &p_point, const Variant & undo_redo->commit_action(); } -void EditorAutoloadSettings::autoload_add(const String &p_name, const String &p_path) { +bool EditorAutoloadSettings::autoload_add(const String &p_name, const String &p_path) { String name = p_name; String error; if (!_autoload_name_is_valid(name, &error)) { EditorNode::get_singleton()->show_warning(error); - return; + return false; } String path = p_path; if (!FileAccess::exists(path)) { EditorNode::get_singleton()->show_warning(TTR("Invalid path.") + "\n" + TTR("File does not exist.")); - return; + return false; } if (!path.begins_with("res://")) { EditorNode::get_singleton()->show_warning(TTR("Invalid path.") + "\n" + TTR("Not in resource path.")); - return; + return false; } name = "autoload/" + name; @@ -668,6 +682,8 @@ void EditorAutoloadSettings::autoload_add(const String &p_name, const String &p_ undo_redo->add_undo_method(this, "emit_signal", autoload_changed); undo_redo->commit_action(); + + return true; } void EditorAutoloadSettings::autoload_remove(const String &p_name) { @@ -701,9 +717,10 @@ void EditorAutoloadSettings::_bind_methods() { ClassDB::bind_method("_autoload_selected", &EditorAutoloadSettings::_autoload_selected); ClassDB::bind_method("_autoload_edited", &EditorAutoloadSettings::_autoload_edited); ClassDB::bind_method("_autoload_button_pressed", &EditorAutoloadSettings::_autoload_button_pressed); - ClassDB::bind_method("_autoload_file_callback", &EditorAutoloadSettings::_autoload_file_callback); ClassDB::bind_method("_autoload_activated", &EditorAutoloadSettings::_autoload_activated); + ClassDB::bind_method("_autoload_text_entered", &EditorAutoloadSettings::_autoload_text_entered); ClassDB::bind_method("_autoload_open", &EditorAutoloadSettings::_autoload_open); + ClassDB::bind_method("_autoload_file_callback", &EditorAutoloadSettings::_autoload_file_callback); ClassDB::bind_method("get_drag_data_fw", &EditorAutoloadSettings::get_drag_data_fw); ClassDB::bind_method("can_drop_data_fw", &EditorAutoloadSettings::can_drop_data_fw); @@ -802,6 +819,7 @@ EditorAutoloadSettings::EditorAutoloadSettings() { autoload_add_name = memnew(LineEdit); autoload_add_name->set_h_size_flags(SIZE_EXPAND_FILL); + autoload_add_name->connect("text_entered", this, "_autoload_text_entered"); hbc->add_child(autoload_add_name); Button *add_autoload = memnew(Button); diff --git a/editor/editor_autoload_settings.h b/editor/editor_autoload_settings.h index 45added56b..76ce020d8a 100644 --- a/editor/editor_autoload_settings.h +++ b/editor/editor_autoload_settings.h @@ -84,6 +84,7 @@ class EditorAutoloadSettings : public VBoxContainer { void _autoload_edited(); void _autoload_button_pressed(Object *p_item, int p_column, int p_button); void _autoload_activated(); + void _autoload_text_entered(String) { _autoload_add(); } void _autoload_open(const String &fpath); void _autoload_file_callback(const String &p_path); Node *_create_autoload(const String &p_path); @@ -98,7 +99,7 @@ protected: public: void update_autoload(); - void autoload_add(const String &p_name, const String &p_path); + bool autoload_add(const String &p_name, const String &p_path); void autoload_remove(const String &p_name); EditorAutoloadSettings(); diff --git a/editor/editor_data.cpp b/editor/editor_data.cpp index f61a831015..38f30df169 100644 --- a/editor/editor_data.cpp +++ b/editor/editor_data.cpp @@ -560,6 +560,7 @@ void EditorData::move_edited_scene_index(int p_idx, int p_to_idx) { ERR_FAIL_INDEX(p_to_idx, edited_scene.size()); SWAP(edited_scene.write[p_idx], edited_scene.write[p_to_idx]); } + void EditorData::remove_scene(int p_idx) { ERR_FAIL_INDEX(p_idx, edited_scene.size()); if (edited_scene[p_idx].root) { diff --git a/editor/editor_export.cpp b/editor/editor_export.cpp index 6751e58bb2..b5325a07a5 100644 --- a/editor/editor_export.cpp +++ b/editor/editor_export.cpp @@ -615,6 +615,7 @@ void EditorExportPlugin::_bind_methods() { BIND_VMETHOD(MethodInfo("_export_file", PropertyInfo(Variant::STRING, "path"), PropertyInfo(Variant::STRING, "type"), PropertyInfo(Variant::POOL_STRING_ARRAY, "features"))); BIND_VMETHOD(MethodInfo("_export_begin", PropertyInfo(Variant::POOL_STRING_ARRAY, "features"), PropertyInfo(Variant::BOOL, "is_debug"), PropertyInfo(Variant::STRING, "path"), PropertyInfo(Variant::INT, "flags"))); + BIND_VMETHOD(MethodInfo("_export_end")); } EditorExportPlugin::EditorExportPlugin() { @@ -692,6 +693,10 @@ Error EditorExportPlatform::export_project_files(const Ref<EditorExportPreset> & } } + //add native icons to non-resource include list + _edit_filter_list(paths, String("*.icns"), false); + _edit_filter_list(paths, String("*.ico"), false); + _edit_filter_list(paths, p_preset->get_include_filter(), false); _edit_filter_list(paths, p_preset->get_exclude_filter(), true); @@ -902,7 +907,7 @@ Error EditorExportPlatform::save_pack(const Ref<EditorExportPreset> &p_preset, c String tmppath = EditorSettings::get_singleton()->get_cache_dir().plus_file("packtmp"); FileAccess *ftmp = FileAccess::open(tmppath, FileAccess::WRITE); - ERR_FAIL_COND_V(!ftmp, ERR_CANT_CREATE) + ERR_FAIL_COND_V(!ftmp, ERR_CANT_CREATE); PackData pd; pd.ep = &ep; @@ -919,7 +924,7 @@ Error EditorExportPlatform::save_pack(const Ref<EditorExportPreset> &p_preset, c pd.file_ofs.sort(); //do sort, so we can do binary search later FileAccess *f = FileAccess::open(p_path, FileAccess::WRITE); - ERR_FAIL_COND_V(!f, ERR_CANT_CREATE) + ERR_FAIL_COND_V(!f, ERR_CANT_CREATE); f->store_32(0x43504447); //GDPK f->store_32(1); //pack version f->store_32(VERSION_MAJOR); @@ -972,7 +977,7 @@ Error EditorExportPlatform::save_pack(const Ref<EditorExportPreset> &p_preset, c ftmp = FileAccess::open(tmppath, FileAccess::READ); if (!ftmp) { memdelete(f); - ERR_FAIL_COND_V(!ftmp, ERR_CANT_CREATE) + ERR_FAIL_COND_V(!ftmp, ERR_CANT_CREATE); } const int bufsize = 16384; diff --git a/editor/editor_feature_profile.cpp b/editor/editor_feature_profile.cpp index 714df44e25..c6646eb28b 100644 --- a/editor/editor_feature_profile.cpp +++ b/editor/editor_feature_profile.cpp @@ -1,3 +1,33 @@ +/*************************************************************************/ +/* editor_feature_profile.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 "editor_feature_profile.h" #include "core/io/json.h" #include "core/os/dir_access.h" @@ -12,7 +42,7 @@ const char *EditorFeatureProfile::feature_names[FEATURE_MAX] = { TTRC("Scene Tree Editing"), TTRC("Import Dock"), TTRC("Node Dock"), - TTRC("Filesystem Dock") + TTRC("FileSystem and Import Docks") }; const char *EditorFeatureProfile::feature_identifiers[FEATURE_MAX] = { @@ -348,18 +378,21 @@ void EditorFeatureProfileManager::_profile_action(int p_action) { switch (p_action) { case PROFILE_CLEAR: { + EditorSettings::get_singleton()->set("_default_feature_profile", ""); EditorSettings::get_singleton()->save(); current_profile = ""; current.unref(); + _update_profile_list(); + _emit_current_profile_changed(); } break; case PROFILE_SET: { String selected = _get_selected_profile(); ERR_FAIL_COND(selected == String()); if (selected == current_profile) { - return; //nothing to do here + return; // Nothing to do here. } EditorSettings::get_singleton()->set("_default_feature_profile", selected); EditorSettings::get_singleton()->save(); @@ -367,7 +400,7 @@ void EditorFeatureProfileManager::_profile_action(int p_action) { current = edited; _update_profile_list(); - + _emit_current_profile_changed(); } break; case PROFILE_IMPORT: { @@ -385,6 +418,7 @@ void EditorFeatureProfileManager::_profile_action(int p_action) { new_profile_name->grab_focus(); } break; case PROFILE_ERASE: { + String selected = _get_selected_profile(); ERR_FAIL_COND(selected == String()); @@ -691,7 +725,7 @@ void EditorFeatureProfileManager::_import_profiles(const Vector<String> &p_paths String dst_file = EditorSettings::get_singleton()->get_feature_profiles_dir().plus_file(basefile); if (FileAccess::exists(dst_file)) { - EditorNode::get_singleton()->show_warning(vformat(TTR("Profile '%s' already exists. Remote it first before importing, import aborted."), basefile.get_basename())); + EditorNode::get_singleton()->show_warning(vformat(TTR("Profile '%s' already exists. Remove it first before importing, import aborted."), basefile.get_basename())); return; } } @@ -779,7 +813,7 @@ EditorFeatureProfileManager::EditorFeatureProfileManager() { profile_actions[PROFILE_CLEAR]->set_disabled(true); profile_actions[PROFILE_CLEAR]->connect("pressed", this, "_profile_action", varray(PROFILE_CLEAR)); - main_vbc->add_margin_child(TTR("Current Profile"), name_hbc); + main_vbc->add_margin_child(TTR("Current Profile:"), name_hbc); HBoxContainer *profiles_hbc = memnew(HBoxContainer); profile_list = memnew(OptionButton); @@ -814,7 +848,7 @@ EditorFeatureProfileManager::EditorFeatureProfileManager() { profile_actions[PROFILE_EXPORT]->set_disabled(true); profile_actions[PROFILE_EXPORT]->connect("pressed", this, "_profile_action", varray(PROFILE_EXPORT)); - main_vbc->add_margin_child(TTR("Available Profiles"), profiles_hbc); + main_vbc->add_margin_child(TTR("Available Profiles:"), profiles_hbc); h_split = memnew(HSplitContainer); h_split->set_v_size_flags(SIZE_EXPAND_FILL); @@ -825,9 +859,8 @@ EditorFeatureProfileManager::EditorFeatureProfileManager() { class_list_vbc->set_h_size_flags(SIZE_EXPAND_FILL); class_list = memnew(Tree); - class_list_vbc->add_margin_child(TTR("Enabled Classes"), class_list, true); + class_list_vbc->add_margin_child(TTR("Enabled Classes:"), class_list, true); class_list->set_hide_root(true); - class_list->set_hide_folding(true); class_list->set_edit_checkbox_cell_only_when_checkbox_is_pressed(true); class_list->connect("cell_selected", this, "_class_list_item_selected"); class_list->connect("item_edited", this, "_class_list_item_edited", varray(), CONNECT_DEFERRED); diff --git a/editor/editor_feature_profile.h b/editor/editor_feature_profile.h index b7c2ebc1b2..d670719d7d 100644 --- a/editor/editor_feature_profile.h +++ b/editor/editor_feature_profile.h @@ -1,3 +1,33 @@ +/*************************************************************************/ +/* editor_feature_profile.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 EDITOR_FEATURE_PROFILE_H #define EDITOR_FEATURE_PROFILE_H diff --git a/editor/editor_file_dialog.cpp b/editor/editor_file_dialog.cpp index 724b821267..8025fc9795 100644 --- a/editor/editor_file_dialog.cpp +++ b/editor/editor_file_dialog.cpp @@ -63,6 +63,7 @@ void EditorFileDialog::_notification(int p_what) { dir_up->set_icon(get_icon("ArrowUp", "EditorIcons")); refresh->set_icon(get_icon("Reload", "EditorIcons")); favorite->set_icon(get_icon("Favorites", "EditorIcons")); + show_hidden->set_icon(get_icon("GuiVisibilityVisible", "EditorIcons")); fav_up->set_icon(get_icon("MoveUp", "EditorIcons")); fav_down->set_icon(get_icon("MoveDown", "EditorIcons")); @@ -86,9 +87,9 @@ void EditorFileDialog::_notification(int p_what) { } else if (p_what == EditorSettings::NOTIFICATION_EDITOR_SETTINGS_CHANGED) { - bool show_hidden = EditorSettings::get_singleton()->get("filesystem/file_dialog/show_hidden_files"); - if (show_hidden_files != show_hidden) - set_show_hidden_files(show_hidden); + bool is_showing_hidden = EditorSettings::get_singleton()->get("filesystem/file_dialog/show_hidden_files"); + if (show_hidden_files != is_showing_hidden) + set_show_hidden_files(is_showing_hidden); set_display_mode((DisplayMode)EditorSettings::get_singleton()->get("filesystem/file_dialog/display_mode").operator int()); // update icons @@ -140,7 +141,7 @@ void EditorFileDialog::_unhandled_input(const Ref<InputEvent> &p_event) { handled = true; } if (ED_IS_SHORTCUT("file_dialog/toggle_favorite", p_event)) { - _favorite_toggled(favorite->is_pressed()); + _favorite_pressed(); handled = true; } if (ED_IS_SHORTCUT("file_dialog/toggle_mode", p_event)) { @@ -231,6 +232,7 @@ void EditorFileDialog::_file_entered(const String &p_file) { } void EditorFileDialog::_save_confirm_pressed() { + String f = dir_access->get_current_dir().plus_file(file->get_text()); _save_to_recent(); hide(); @@ -710,7 +712,6 @@ void EditorFileDialog::update_file_list() { } String cdir = dir_access->get_current_dir(); - bool skip_pp = access == ACCESS_RESOURCES && cdir == "res://"; dir_access->list_dir_begin(); @@ -718,22 +719,21 @@ void EditorFileDialog::update_file_list() { List<String> files; List<String> dirs; - bool isdir; - bool ishidden; - bool show_hidden = show_hidden_files; + bool is_dir; + bool is_hidden; String item; - while ((item = dir_access->get_next(&isdir)) != "") { + while ((item = dir_access->get_next(&is_dir)) != "") { if (item == "." || item == "..") continue; - ishidden = dir_access->current_is_hidden(); + is_hidden = dir_access->current_is_hidden(); - if (show_hidden || !ishidden) { - if (!isdir) + if (show_hidden_files || !is_hidden) { + if (!is_dir) files.push_back(item); - else if (item != ".." || !skip_pp) + else dirs.push_back(item); } } @@ -764,8 +764,6 @@ void EditorFileDialog::update_file_list() { dirs.pop_front(); } - dirs.clear(); - List<String> patterns; // build filter if (filter->get_selected() == filter->get_item_count() - 1) { @@ -864,8 +862,6 @@ void EditorFileDialog::update_file_list() { break; } } - - files.clear(); } void EditorFileDialog::_filter_selected(int) { @@ -1135,6 +1131,7 @@ void EditorFileDialog::_update_drives() { } void EditorFileDialog::_favorite_selected(int p_idx) { + dir_access->change_dir(favorites->get_item_metadata(p_idx)); file->set_text(""); update_dir(); @@ -1215,7 +1212,7 @@ void EditorFileDialog::_update_favorites() { favorites->add_item(name, folder_icon); } else { - continue; // We don't handle favorite files here + continue; // We don't handle favorite files here. } favorites->set_item_metadata(favorites->get_item_count() - 1, favorited[i]); @@ -1223,11 +1220,12 @@ void EditorFileDialog::_update_favorites() { if (setthis) { favorite->set_pressed(true); favorites->set_current(favorites->get_item_count() - 1); + recent->unselect_all(); } } } -void EditorFileDialog::_favorite_toggled(bool p_toggle) { +void EditorFileDialog::_favorite_pressed() { bool res = access == ACCESS_RESOURCES; String cd = get_current_dir(); @@ -1380,7 +1378,7 @@ void EditorFileDialog::_bind_methods() { ClassDB::bind_method(D_METHOD("_go_forward"), &EditorFileDialog::_go_forward); ClassDB::bind_method(D_METHOD("_go_up"), &EditorFileDialog::_go_up); - ClassDB::bind_method(D_METHOD("_favorite_toggled"), &EditorFileDialog::_favorite_toggled); + ClassDB::bind_method(D_METHOD("_favorite_pressed"), &EditorFileDialog::_favorite_pressed); ClassDB::bind_method(D_METHOD("_favorite_selected"), &EditorFileDialog::_favorite_selected); ClassDB::bind_method(D_METHOD("_favorite_move_up"), &EditorFileDialog::_favorite_move_up); ClassDB::bind_method(D_METHOD("_favorite_move_down"), &EditorFileDialog::_favorite_move_down); @@ -1416,6 +1414,7 @@ void EditorFileDialog::_bind_methods() { void EditorFileDialog::set_show_hidden_files(bool p_show) { show_hidden_files = p_show; + show_hidden->set_pressed(p_show); invalidate(); } @@ -1521,17 +1520,23 @@ EditorFileDialog::EditorFileDialog() { pathhb->add_child(refresh); favorite = memnew(ToolButton); - favorite->set_flat(true); favorite->set_toggle_mode(true); favorite->set_tooltip(TTR("(Un)favorite current folder.")); - favorite->connect("toggled", this, "_favorite_toggled"); + favorite->connect("pressed", this, "_favorite_pressed"); pathhb->add_child(favorite); - Ref<ButtonGroup> view_mode_group; - view_mode_group.instance(); + show_hidden = memnew(ToolButton); + show_hidden->set_toggle_mode(true); + show_hidden->set_pressed(is_showing_hidden_files()); + show_hidden->set_tooltip(TTR("Toggle visibility of hidden files.")); + show_hidden->connect("toggled", this, "set_show_hidden_files"); + pathhb->add_child(show_hidden); pathhb->add_child(memnew(VSeparator)); + Ref<ButtonGroup> view_mode_group; + view_mode_group.instance(); + mode_thumbnails = memnew(ToolButton); mode_thumbnails->connect("pressed", this, "set_display_mode", varray(DISPLAY_THUMBNAILS)); mode_thumbnails->set_toggle_mode(true); @@ -1591,6 +1596,7 @@ EditorFileDialog::EditorFileDialog() { rec_vb->set_custom_minimum_size(Size2(150, 100) * EDSCALE); rec_vb->set_v_size_flags(SIZE_EXPAND_FILL); recent = memnew(ItemList); + recent->set_allow_reselect(true); rec_vb->add_margin_child(TTR("Recent:"), recent, true); recent->connect("item_selected", this, "_recent_selected"); @@ -1607,7 +1613,7 @@ EditorFileDialog::EditorFileDialog() { list_vb->add_child(memnew(Label(TTR("Directories & Files:")))); preview_hb->add_child(list_vb); - // Item (files and folders) list with context menu + // Item (files and folders) list with context menu. item_list = memnew(ItemList); item_list->set_v_size_flags(SIZE_EXPAND_FILL); @@ -1620,7 +1626,7 @@ EditorFileDialog::EditorFileDialog() { item_menu->connect("id_pressed", this, "_item_menu_id_pressed"); add_child(item_menu); - // Other stuff + // Other stuff. preview_vb = memnew(VBoxContainer); preview_hb->add_child(preview_vb); @@ -1639,7 +1645,7 @@ EditorFileDialog::EditorFileDialog() { 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 + 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); diff --git a/editor/editor_file_dialog.h b/editor/editor_file_dialog.h index edaccac51d..6578be8563 100644 --- a/editor/editor_file_dialog.h +++ b/editor/editor_file_dialog.h @@ -116,11 +116,13 @@ private: DirAccess *dir_access; ConfirmationDialog *confirm_save; DependencyRemoveDialog *remove_dialog; + ToolButton *mode_thumbnails; ToolButton *mode_list; ToolButton *refresh; ToolButton *favorite; + ToolButton *show_hidden; ToolButton *fav_up; ToolButton *fav_down; @@ -150,7 +152,7 @@ private: void update_filters(); void _update_favorites(); - void _favorite_toggled(bool p_toggle); + void _favorite_pressed(); void _favorite_selected(int p_idx); void _favorite_move_up(); void _favorite_move_down(); diff --git a/editor/editor_file_system.cpp b/editor/editor_file_system.cpp index 90af593166..4ddb28b440 100644 --- a/editor/editor_file_system.cpp +++ b/editor/editor_file_system.cpp @@ -844,7 +844,7 @@ void EditorFileSystem::_scan_fs_changes(EditorFileSystemDirectory *p_dir, const bool updated_dir = false; String cd = p_dir->get_path(); - if (current_mtime != p_dir->modified_time || using_fat_32) { + if (current_mtime != p_dir->modified_time || using_fat32_or_exfat) { updated_dir = true; p_dir->modified_time = current_mtime; @@ -2140,8 +2140,8 @@ EditorFileSystem::EditorFileSystem() { if (da->change_dir("res://.import") != OK) { da->make_dir("res://.import"); } - //this should probably also work on Unix and use the string it returns for FAT32 - using_fat_32 = da->get_filesystem_type() == "FAT32"; + // This should probably also work on Unix and use the string it returns for FAT32 or exFAT + using_fat32_or_exfat = (da->get_filesystem_type() == "FAT32" || da->get_filesystem_type() == "exFAT"); memdelete(da); scan_total = 0; diff --git a/editor/editor_file_system.h b/editor/editor_file_system.h index 8943706202..72d9489f21 100644 --- a/editor/editor_file_system.h +++ b/editor/editor_file_system.h @@ -237,7 +237,7 @@ class EditorFileSystem : public Node { static Error _resource_import(const String &p_path); - bool using_fat_32; //workaround for projects in FAT32 filesystem (pendrives, most of the time) + bool using_fat32_or_exfat; // Workaround for projects in FAT32 or exFAT filesystem (pendrives, most of the time) void _find_group_files(EditorFileSystemDirectory *efd, Map<String, Vector<String> > &group_files, Set<String> &groups_to_reimport); diff --git a/editor/editor_folding.cpp b/editor/editor_folding.cpp index f6079624de..96653fec70 100644 --- a/editor/editor_folding.cpp +++ b/editor/editor_folding.cpp @@ -92,7 +92,7 @@ void EditorFolding::load_resource_folding(RES p_resource, const String &p_path) _set_unfolds(p_resource.ptr(), unfolds); } -void EditorFolding::_fill_folds(const Node *p_root, const Node *p_node, Array &p_folds, Array &resource_folds, Array& nodes_folded,Set<RES> &resources) { +void EditorFolding::_fill_folds(const Node *p_root, const Node *p_node, Array &p_folds, Array &resource_folds, Array &nodes_folded, Set<RES> &resources) { if (p_root != p_node) { if (!p_node->get_owner()) { return; //not owned, bye @@ -130,7 +130,7 @@ void EditorFolding::_fill_folds(const Node *p_root, const Node *p_node, Array &p } for (int i = 0; i < p_node->get_child_count(); i++) { - _fill_folds(p_root, p_node->get_child(i), p_folds, resource_folds, nodes_folded,resources); + _fill_folds(p_root, p_node->get_child(i), p_folds, resource_folds, nodes_folded, resources); } } void EditorFolding::save_scene_folding(const Node *p_scene, const String &p_path) { @@ -205,7 +205,7 @@ void EditorFolding::load_scene_folding(Node *p_scene, const String &p_path) { _set_unfolds(res.ptr(), unfolds2); } - for(int i=0;i<nodes_folded.size();i++) { + for (int i = 0; i < nodes_folded.size(); i++) { NodePath fold_path = nodes_folded[i]; if (p_scene->has_node(fold_path)) { Node *node = p_scene->get_node(fold_path); diff --git a/editor/editor_fonts.cpp b/editor/editor_fonts.cpp index fa4172cded..40ecffbb3b 100644 --- a/editor/editor_fonts.cpp +++ b/editor/editor_fonts.cpp @@ -204,9 +204,8 @@ void editor_register_fonts(Ref<Theme> p_theme) { dfmono->set_antialiased(font_source_antialiased); dfmono->set_hinting(font_source_hinting); dfmono->set_font_ptr(_font_Hack_Regular, _font_Hack_Regular_size); - //dfd->set_force_autohinter(true); //just looks better..i think? - int default_font_size = int(EditorSettings::get_singleton()->get("interface/editor/main_font_size")) * EDSCALE; + int default_font_size = int(EDITOR_GET("interface/editor/main_font_size")) * EDSCALE; // Default font MAKE_DEFAULT_FONT(df, default_font_size); @@ -220,15 +219,14 @@ void editor_register_fonts(Ref<Theme> p_theme) { MAKE_BOLD_FONT(df_title, default_font_size + 2 * EDSCALE); p_theme->set_font("title", "EditorFonts", df_title); - // Doc font - MAKE_BOLD_FONT(df_doc_title, int(EDITOR_DEF("text_editor/help/help_title_font_size", 23)) * EDSCALE); - - MAKE_DEFAULT_FONT(df_doc, int(EDITOR_DEF("text_editor/help/help_font_size", 15)) * EDSCALE); - + // Documentation fonts + MAKE_DEFAULT_FONT(df_doc, int(EDITOR_GET("text_editor/help/help_font_size")) * EDSCALE); + MAKE_BOLD_FONT(df_doc_bold, int(EDITOR_GET("text_editor/help/help_font_size")) * EDSCALE); + MAKE_BOLD_FONT(df_doc_title, int(EDITOR_GET("text_editor/help/help_title_font_size")) * EDSCALE); + MAKE_SOURCE_FONT(df_doc_code, int(EDITOR_GET("text_editor/help/help_source_font_size")) * EDSCALE); p_theme->set_font("doc", "EditorFonts", df_doc); + p_theme->set_font("doc_bold", "EditorFonts", df_doc_bold); p_theme->set_font("doc_title", "EditorFonts", df_doc_title); - - MAKE_SOURCE_FONT(df_doc_code, int(EDITOR_DEF("text_editor/help/help_source_font_size", 14)) * EDSCALE); p_theme->set_font("doc_source", "EditorFonts", df_doc_code); // Ruler font @@ -236,10 +234,13 @@ void editor_register_fonts(Ref<Theme> p_theme) { p_theme->set_font("rulers", "EditorFonts", df_rulers); // Code font - MAKE_SOURCE_FONT(df_code, int(EditorSettings::get_singleton()->get("interface/editor/code_font_size")) * EDSCALE); + MAKE_SOURCE_FONT(df_code, int(EDITOR_GET("interface/editor/code_font_size")) * EDSCALE); p_theme->set_font("source", "EditorFonts", df_code); - MAKE_SOURCE_FONT(df_output_code, int(EDITOR_DEF("run/output/font_size", 13)) * EDSCALE); + MAKE_SOURCE_FONT(df_expression, (int(EDITOR_GET("interface/editor/code_font_size")) - 1) * EDSCALE); + p_theme->set_font("expression", "EditorFonts", df_expression); + + MAKE_SOURCE_FONT(df_output_code, int(EDITOR_GET("run/output/font_size")) * EDSCALE); p_theme->set_font("output_source", "EditorFonts", df_output_code); MAKE_SOURCE_FONT(df_text_editor_status_code, default_font_size); diff --git a/editor/editor_help.cpp b/editor/editor_help.cpp index 5917869988..26d793cf65 100644 --- a/editor/editor_help.cpp +++ b/editor/editor_help.cpp @@ -203,8 +203,9 @@ String EditorHelp::_fix_constant(const String &p_constant) const { if (p_constant.strip_edges() == "2147483647") { return "0x7FFFFFFF"; } + if (p_constant.strip_edges() == "1048575") { - return "0xfffff"; + return "0xFFFFF"; } return p_constant; @@ -324,6 +325,7 @@ void EditorHelp::_update_doc() { DocData::ClassDoc cd = doc->class_list[edited_class]; //make a copy, so we can sort without worrying Ref<Font> doc_font = get_font("doc", "EditorFonts"); + Ref<Font> doc_bold_font = get_font("doc_bold", "EditorFonts"); Ref<Font> doc_title_font = get_font("doc_title", "EditorFonts"); Ref<Font> doc_code_font = get_font("doc_source", "EditorFonts"); String link_color_text = title_color.to_html(false); @@ -1131,6 +1133,7 @@ static void _add_text_to_rt(const String &p_bbcode, RichTextLabel *p_rt) { String base_path; 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); @@ -1218,7 +1221,7 @@ static void _add_text_to_rt(const String &p_bbcode, RichTextLabel *p_rt) { } else if (tag == "b") { //use bold font - p_rt->push_font(doc_code_font); + p_rt->push_font(doc_bold_font); pos = brk_end + 1; tag_stack.push_front(tag); } else if (tag == "i") { @@ -1236,13 +1239,13 @@ static void _add_text_to_rt(const String &p_bbcode, RichTextLabel *p_rt) { tag_stack.push_front(tag); } else if (tag == "center") { - //use monospace font + //align to center p_rt->push_align(RichTextLabel::ALIGN_CENTER); pos = brk_end + 1; tag_stack.push_front(tag); } else if (tag == "br") { - //use monospace font + //force a line break p_rt->add_newline(); pos = brk_end + 1; } else if (tag == "u") { @@ -1253,14 +1256,13 @@ static void _add_text_to_rt(const String &p_bbcode, RichTextLabel *p_rt) { tag_stack.push_front(tag); } else if (tag == "s") { - //use strikethrough (not supported underline instead) - p_rt->push_underline(); + //use strikethrough + p_rt->push_strikethrough(); pos = brk_end + 1; tag_stack.push_front(tag); } else if (tag == "url") { - //use strikethrough (not supported underline instead) int end = bbcode.find("[", brk_end); if (end == -1) end = bbcode.length(); @@ -1277,7 +1279,6 @@ static void _add_text_to_rt(const String &p_bbcode, RichTextLabel *p_rt) { tag_stack.push_front("url"); } else if (tag == "img") { - //use strikethrough (not supported underline instead) int end = bbcode.find("[", brk_end); if (end == -1) end = bbcode.length(); diff --git a/editor/editor_help_search.cpp b/editor/editor_help_search.cpp index 616a52e25b..55ab38ba6c 100644 --- a/editor/editor_help_search.cpp +++ b/editor/editor_help_search.cpp @@ -250,6 +250,25 @@ EditorHelpSearch::EditorHelpSearch() { vbox->add_child(results_tree, true); } +bool EditorHelpSearch::Runner::_is_class_disabled_by_feature_profile(const StringName &p_class) { + + Ref<EditorFeatureProfile> profile = EditorFeatureProfileManager::get_singleton()->get_current_profile(); + if (profile.is_null()) { + return false; + } + + StringName class_name = p_class; + while (class_name != StringName()) { + + if (!ClassDB::class_exists(class_name) || profile->is_class_disabled(class_name)) { + return true; + } + class_name = ClassDB::get_parent_class(class_name); + } + + return false; +} + bool EditorHelpSearch::Runner::_slice() { bool phase_done = false; @@ -299,43 +318,45 @@ bool EditorHelpSearch::Runner::_phase_match_classes_init() { bool EditorHelpSearch::Runner::_phase_match_classes() { DocData::ClassDoc &class_doc = iterator_doc->value(); - - matches[class_doc.name] = ClassMatch(); - ClassMatch &match = matches[class_doc.name]; - - match.doc = &class_doc; - - // Match class name. - if (search_flags & SEARCH_CLASSES) - match.name = term == "" || _match_string(term, class_doc.name); - - // Match members if the term is long enough. - if (term.length() > 1) { - if (search_flags & SEARCH_METHODS) - for (int i = 0; i < class_doc.methods.size(); i++) { - String method_name = search_flags & SEARCH_CASE_SENSITIVE ? class_doc.methods[i].name : class_doc.methods[i].name.to_lower(); - if (method_name.find(term) > -1 || - (term.begins_with(".") && method_name.begins_with(term.right(1))) || - (term.ends_with("(") && method_name.ends_with(term.left(term.length() - 1).strip_edges())) || - (term.begins_with(".") && term.ends_with("(") && method_name == term.substr(1, term.length() - 2).strip_edges())) - match.methods.push_back(const_cast<DocData::MethodDoc *>(&class_doc.methods[i])); - } - if (search_flags & SEARCH_SIGNALS) - for (int i = 0; i < class_doc.signals.size(); i++) - if (_match_string(term, class_doc.signals[i].name)) - match.signals.push_back(const_cast<DocData::MethodDoc *>(&class_doc.signals[i])); - if (search_flags & SEARCH_CONSTANTS) - for (int i = 0; i < class_doc.constants.size(); i++) - if (_match_string(term, class_doc.constants[i].name)) - match.constants.push_back(const_cast<DocData::ConstantDoc *>(&class_doc.constants[i])); - if (search_flags & SEARCH_PROPERTIES) - for (int i = 0; i < class_doc.properties.size(); i++) - if (_match_string(term, class_doc.properties[i].name)) - match.properties.push_back(const_cast<DocData::PropertyDoc *>(&class_doc.properties[i])); - if (search_flags & SEARCH_THEME_ITEMS) - for (int i = 0; i < class_doc.theme_properties.size(); i++) - if (_match_string(term, class_doc.theme_properties[i].name)) - match.theme_properties.push_back(const_cast<DocData::PropertyDoc *>(&class_doc.theme_properties[i])); + if (!_is_class_disabled_by_feature_profile(class_doc.name)) { + + matches[class_doc.name] = ClassMatch(); + ClassMatch &match = matches[class_doc.name]; + + match.doc = &class_doc; + + // Match class name. + if (search_flags & SEARCH_CLASSES) + match.name = term == "" || _match_string(term, class_doc.name); + + // Match members if the term is long enough. + if (term.length() > 1) { + if (search_flags & SEARCH_METHODS) + for (int i = 0; i < class_doc.methods.size(); i++) { + String method_name = search_flags & SEARCH_CASE_SENSITIVE ? class_doc.methods[i].name : class_doc.methods[i].name.to_lower(); + if (method_name.find(term) > -1 || + (term.begins_with(".") && method_name.begins_with(term.right(1))) || + (term.ends_with("(") && method_name.ends_with(term.left(term.length() - 1).strip_edges())) || + (term.begins_with(".") && term.ends_with("(") && method_name == term.substr(1, term.length() - 2).strip_edges())) + match.methods.push_back(const_cast<DocData::MethodDoc *>(&class_doc.methods[i])); + } + if (search_flags & SEARCH_SIGNALS) + for (int i = 0; i < class_doc.signals.size(); i++) + if (_match_string(term, class_doc.signals[i].name)) + match.signals.push_back(const_cast<DocData::MethodDoc *>(&class_doc.signals[i])); + if (search_flags & SEARCH_CONSTANTS) + for (int i = 0; i < class_doc.constants.size(); i++) + if (_match_string(term, class_doc.constants[i].name)) + match.constants.push_back(const_cast<DocData::ConstantDoc *>(&class_doc.constants[i])); + if (search_flags & SEARCH_PROPERTIES) + for (int i = 0; i < class_doc.properties.size(); i++) + if (_match_string(term, class_doc.properties[i].name)) + match.properties.push_back(const_cast<DocData::PropertyDoc *>(&class_doc.properties[i])); + if (search_flags & SEARCH_THEME_ITEMS) + for (int i = 0; i < class_doc.theme_properties.size(); i++) + if (_match_string(term, class_doc.theme_properties[i].name)) + match.theme_properties.push_back(const_cast<DocData::PropertyDoc *>(&class_doc.theme_properties[i])); + } } iterator_doc = iterator_doc->next(); diff --git a/editor/editor_help_search.h b/editor/editor_help_search.h index 93cf66a0dd..12ffd024a7 100644 --- a/editor/editor_help_search.h +++ b/editor/editor_help_search.h @@ -125,6 +125,8 @@ class EditorHelpSearch::Runner : public Reference { Map<String, TreeItem *> class_items; TreeItem *matched_item; + bool _is_class_disabled_by_feature_profile(const StringName &p_class); + bool _slice(); bool _phase_match_classes_init(); bool _phase_match_classes(); diff --git a/editor/editor_inspector.cpp b/editor/editor_inspector.cpp index ecb9ea5f35..e4ddf44bc4 100644 --- a/editor/editor_inspector.cpp +++ b/editor/editor_inspector.cpp @@ -66,7 +66,7 @@ Size2 EditorProperty::get_minimum_size() const { if (checkable) { Ref<Texture> check = get_icon("checked", "CheckBox"); - ms.width += check->get_width() + get_constant("hseparator", "Tree"); + ms.width += check->get_width() + get_constant("hseparation", "CheckBox") + get_constant("hseparator", "Tree"); } if (bottom_editor != NULL && bottom_editor->is_visible()) { @@ -228,8 +228,7 @@ void EditorProperty::_notification(int p_what) { } check_rect = Rect2(ofs, ((size.height - checkbox->get_height()) / 2), checkbox->get_width(), checkbox->get_height()); draw_texture(checkbox, check_rect.position, color2); - ofs += get_constant("hseparator", "Tree"); - ofs += checkbox->get_width(); + ofs += get_constant("hseparator", "Tree") + checkbox->get_width() + get_constant("hseparation", "CheckBox"); text_limit -= ofs; } else { check_rect = Rect2(); diff --git a/editor/editor_node.cpp b/editor/editor_node.cpp index 907d43b26f..2d2f67314d 100644 --- a/editor/editor_node.cpp +++ b/editor/editor_node.cpp @@ -288,6 +288,7 @@ void EditorNode::_notification(int p_what) { Engine::get_singleton()->set_editor_hint(true); + OS::get_singleton()->set_low_processor_usage_mode_sleep_usec(int(EDITOR_GET("interface/editor/low_processor_mode_sleep_usec"))); get_tree()->get_root()->set_usage(Viewport::USAGE_2D_NO_SAMPLING); //reduce memory usage get_tree()->get_root()->set_disable_3d(true); get_tree()->get_root()->set_as_audio_listener(false); @@ -323,9 +324,18 @@ void EditorNode::_notification(int p_what) { if (p_what == MainLoop::NOTIFICATION_WM_FOCUS_IN) { + // Restore the original FPS cap after focusing back on the editor + OS::get_singleton()->set_low_processor_usage_mode_sleep_usec(int(EDITOR_GET("interface/editor/low_processor_mode_sleep_usec"))); + EditorFileSystem::get_singleton()->scan_changes(); } + if (p_what == MainLoop::NOTIFICATION_WM_FOCUS_OUT) { + + // Set a low FPS cap to decrease CPU/GPU usage while the editor is unfocused + OS::get_singleton()->set_low_processor_usage_mode_sleep_usec(int(EDITOR_GET("interface/editor/unfocused_low_processor_mode_sleep_usec"))); + } + if (p_what == MainLoop::NOTIFICATION_WM_QUIT_REQUEST) { _menu_option_confirm(FILE_QUIT, false); @@ -513,6 +523,7 @@ void EditorNode::_fs_changed() { void EditorNode::_resources_reimported(const Vector<String> &p_resources) { List<String> scenes; //will load later + int current_tab = scene_tabs->get_current_tab(); for (int i = 0; i < p_resources.size(); i++) { String file_type = ResourceLoader::get_resource_type(p_resources[i]); @@ -535,6 +546,8 @@ void EditorNode::_resources_reimported(const Vector<String> &p_resources) { for (List<String>::Element *E = scenes.front(); E; E = E->next()) { reload_scene(E->get()); } + + scene_tabs->set_current_tab(current_tab); } void EditorNode::_sources_changed(bool p_exist) { @@ -1204,6 +1217,17 @@ void EditorNode::save_all_scenes() { _save_all_scenes(); } +void EditorNode::save_scene_list(Vector<String> p_scene_filenames) { + + for (int i = 0; i < editor_data.get_edited_scene_count(); i++) { + Node *scene = editor_data.get_edited_scene_root(i); + + if (scene && (p_scene_filenames.find(scene->get_filename()) >= 0)) { + _save_scene(scene->get_filename(), i); + } + } +} + void EditorNode::restart_editor() { exiting = true; @@ -1273,7 +1297,7 @@ void EditorNode::_dialog_action(String p_file) { Node *scene = editor_data.get_edited_scene_root(); // If the previous scene is rootless, just close it in favor of the new one. if (!scene) - _menu_option_confirm(FILE_CLOSE, false); + _menu_option_confirm(FILE_CLOSE, true); load_scene(p_file, false, true); } break; @@ -1286,7 +1310,12 @@ void EditorNode::_dialog_action(String p_file) { ProjectSettings::get_singleton()->set("application/run/main_scene", p_file); ProjectSettings::get_singleton()->save(); //would be nice to show the project manager opened with the highlighted field.. - _run(false, ""); // automatically run the project + + if (pick_main_scene->has_meta("from_native") && (bool)pick_main_scene->get_meta("from_native")) { + run_native->resume_run_native(); + } else { + _run(false, ""); // automatically run the project + } } break; case FILE_CLOSE: case FILE_CLOSE_ALL_AND_QUIT: @@ -1382,7 +1411,7 @@ void EditorNode::_dialog_action(String p_file) { case RESOURCE_SAVE: case RESOURCE_SAVE_AS: { - ERR_FAIL_COND(saving_resource.is_null()) + ERR_FAIL_COND(saving_resource.is_null()); save_resource_in_path(saving_resource, p_file); saving_resource = Ref<Resource>(); ObjectID current = editor_history.get_current(); @@ -1799,28 +1828,7 @@ void EditorNode::_run(bool p_current, const String &p_custom) { if (run_filename == "") { //evidently, run the scene - main_scene = GLOBAL_DEF("application/run/main_scene", ""); - if (main_scene == "") { - - current_option = -1; - pick_main_scene->set_text(TTR("No main scene has ever been defined, select one?\nYou can change it later in \"Project Settings\" under the 'application' category.")); - pick_main_scene->popup_centered_minsize(); - return; - } - - if (!FileAccess::exists(main_scene)) { - - current_option = -1; - pick_main_scene->set_text(vformat(TTR("Selected scene '%s' does not exist, select a valid one?\nYou can change it later in \"Project Settings\" under the 'application' category."), main_scene)); - pick_main_scene->popup_centered_minsize(); - return; - } - - if (ResourceLoader::get_resource_type(main_scene) != "PackedScene") { - - current_option = -1; - pick_main_scene->set_text(vformat(TTR("Selected scene '%s' is not a scene file, select a valid one?\nYou can change it later in \"Project Settings\" under the 'application' category."), main_scene)); - pick_main_scene->popup_centered_minsize(); + if (!ensure_main_scene(false)) { return; } } @@ -1921,6 +1929,12 @@ void EditorNode::_menu_option_confirm(int p_option, bool p_confirmed) { file->popup_centered_ratio(); } break; + case FILE_QUICK_OPEN: { + + quick_open->popup_dialog("Resource", true); + quick_open->set_title(TTR("Quick Open...")); + + } break; case FILE_QUICK_OPEN_SCENE: { quick_open->popup_dialog("PackedScene", true); @@ -2305,7 +2319,7 @@ void EditorNode::_menu_option_confirm(int p_option, bool p_confirmed) { } } break; case FILE_EXPLORE_ANDROID_BUILD_TEMPLATES: { - OS::get_singleton()->shell_open(String("file://") + ProjectSettings::get_singleton()->get_resource_path().plus_file("android")); + OS::get_singleton()->shell_open("file://" + ProjectSettings::get_singleton()->get_resource_path().plus_file("android")); } break; case FILE_QUIT: case RUN_PROJECT_MANAGER: { @@ -2454,14 +2468,7 @@ void EditorNode::_menu_option_confirm(int p_option, bool p_confirmed) { } break; case SETTINGS_MANAGE_FEATURE_PROFILES: { - Size2 popup_size = Size2(900, 800) * editor_get_scale(); - Size2 window_size = get_viewport()->get_size(); - - popup_size.x = MIN(window_size.x * 0.8, popup_size.x); - popup_size.y = MIN(window_size.y * 0.8, popup_size.y); - - feature_profile_manager->popup_centered(popup_size); - + feature_profile_manager->popup_centered_clamped(Size2(900, 800) * EDSCALE, 0.8); } break; case SETTINGS_TOGGLE_FULLSCREEN: { @@ -2866,7 +2873,7 @@ bool EditorNode::is_addon_plugin_enabled(const String &p_addon) const { return plugin_addons.has(p_addon); } -void EditorNode::_remove_edited_scene() { +void EditorNode::_remove_edited_scene(bool p_change_tab) { int new_index = editor_data.get_edited_scene(); int old_index = new_index; @@ -2882,18 +2889,19 @@ void EditorNode::_remove_edited_scene() { if (editor_data.get_scene_path(old_index) != String()) { ScriptEditor::get_singleton()->close_builtin_scripts_from_scene(editor_data.get_scene_path(old_index)); } - _scene_tab_changed(new_index); + + if (p_change_tab) _scene_tab_changed(new_index); editor_data.remove_scene(old_index); editor_data.get_undo_redo().clear_history(false); _update_title(); _update_scene_tabs(); } -void EditorNode::_remove_scene(int index) { +void EditorNode::_remove_scene(int index, bool p_change_tab) { if (editor_data.get_edited_scene() == index) { //Scene to remove is current scene - _remove_edited_scene(); + _remove_edited_scene(p_change_tab); } else { //Scene to remove is not active scene editor_data.remove_scene(index); @@ -4158,6 +4166,45 @@ bool EditorNode::has_scenes_in_session() { return !scenes.empty(); } +bool EditorNode::ensure_main_scene(bool p_from_native) { + pick_main_scene->set_meta("from_native", p_from_native); //whether from play button or native run + String main_scene = GLOBAL_DEF("application/run/main_scene", ""); + + if (main_scene == "") { + + current_option = -1; + pick_main_scene->set_text(TTR("No main scene has ever been defined, select one?\nYou can change it later in \"Project Settings\" under the 'application' category.")); + pick_main_scene->popup_centered_minsize(); + return false; + } + + if (!FileAccess::exists(main_scene)) { + + current_option = -1; + pick_main_scene->set_text(vformat(TTR("Selected scene '%s' does not exist, select a valid one?\nYou can change it later in \"Project Settings\" under the 'application' category."), main_scene)); + pick_main_scene->popup_centered_minsize(); + return false; + } + + if (ResourceLoader::get_resource_type(main_scene) != "PackedScene") { + + current_option = -1; + pick_main_scene->set_text(vformat(TTR("Selected scene '%s' is not a scene file, select a valid one?\nYou can change it later in \"Project Settings\" under the 'application' category."), main_scene)); + pick_main_scene->popup_centered_minsize(); + return false; + } + + return true; +} + +int EditorNode::get_current_tab() { + return scene_tabs->get_current_tab(); +} + +void EditorNode::set_current_tab(int p_tab) { + scene_tabs->set_current_tab(p_tab); +} + void EditorNode::_update_layouts_menu() { editor_layouts->clear(); @@ -4785,8 +4832,7 @@ void EditorNode::reload_scene(const String &p_path) { if (scene_idx == -1) { if (get_edited_scene()) { - //scene is not open, so at it might be instanced, just refresh, set tab to itself and it will reload - set_current_scene(current_tab); + //scene is not open, so at it might be instanced. We'll refresh the whole scene later. editor_data.get_undo_redo().clear_history(); } return; @@ -4796,17 +4842,19 @@ void EditorNode::reload_scene(const String &p_path) { editor_data.apply_changes_in_editors(); _set_scene_metadata(p_path); } + //remove scene - _remove_scene(scene_idx); - //reload scene + _remove_scene(scene_idx, false); + //reload scene load_scene(p_path, true, false, true, true); + //adjust index so tab is back a the previous position editor_data.move_edited_scene_to_index(scene_idx); get_undo_redo()->clear_history(); + //recover the tab scene_tabs->set_current_tab(current_tab); - _scene_tab_changed(current_tab); } int EditorNode::plugin_init_callback_count = 0; @@ -4996,7 +5044,9 @@ void EditorNode::_feature_profile_changed() { main_editor_buttons[EDITOR_3D]->set_visible(!profile->is_feature_disabled(EditorFeatureProfile::FEATURE_3D)); main_editor_buttons[EDITOR_SCRIPT]->set_visible(!profile->is_feature_disabled(EditorFeatureProfile::FEATURE_SCRIPT)); main_editor_buttons[EDITOR_ASSETLIB]->set_visible(!profile->is_feature_disabled(EditorFeatureProfile::FEATURE_ASSET_LIB)); - if (profile->is_feature_disabled(EditorFeatureProfile::FEATURE_3D) || profile->is_feature_disabled(EditorFeatureProfile::FEATURE_ASSET_LIB) || profile->is_feature_disabled(EditorFeatureProfile::FEATURE_ASSET_LIB)) { + if ((profile->is_feature_disabled(EditorFeatureProfile::FEATURE_3D) && singleton->main_editor_buttons[EDITOR_3D]->is_pressed()) || + (profile->is_feature_disabled(EditorFeatureProfile::FEATURE_SCRIPT) && singleton->main_editor_buttons[EDITOR_SCRIPT]->is_pressed()) || + (profile->is_feature_disabled(EditorFeatureProfile::FEATURE_ASSET_LIB) && singleton->main_editor_buttons[EDITOR_ASSETLIB]->is_pressed())) { _editor_select(EDITOR_2D); } } else { @@ -5008,6 +5058,7 @@ void EditorNode::_feature_profile_changed() { node_dock->set_visible(true); filesystem_dock->set_visible(true); main_editor_buttons[EDITOR_3D]->set_visible(true); + main_editor_buttons[EDITOR_SCRIPT]->set_visible(true); main_editor_buttons[EDITOR_ASSETLIB]->set_visible(true); } @@ -5702,6 +5753,7 @@ EditorNode::EditorNode() { p->add_separator(); p->add_submenu_item(TTR("Open Recent"), "RecentScenes", FILE_OPEN_RECENT); p->add_separator(); + p->add_shortcut(ED_SHORTCUT("editor/quick_open", TTR("Quick Open..."), KEY_MASK_SHIFT + KEY_MASK_ALT + KEY_O), FILE_QUICK_OPEN); p->add_shortcut(ED_SHORTCUT("editor/quick_open_scene", TTR("Quick Open Scene..."), KEY_MASK_SHIFT + KEY_MASK_CMD + KEY_O), FILE_QUICK_OPEN_SCENE); p->add_shortcut(ED_SHORTCUT("editor/quick_open_script", TTR("Quick Open Script..."), KEY_MASK_ALT + KEY_MASK_CMD + KEY_O), FILE_QUICK_OPEN_SCRIPT); p->add_separator(); @@ -6242,7 +6294,6 @@ EditorNode::EditorNode() { add_editor_plugin(memnew(TextureEditorPlugin(this))); add_editor_plugin(memnew(AudioStreamEditorPlugin(this))); add_editor_plugin(memnew(AudioBusesEditorPlugin(audio_bus_editor))); - add_editor_plugin(memnew(AudioBusesEditorPlugin(audio_bus_editor))); add_editor_plugin(memnew(SkeletonEditorPlugin(this))); add_editor_plugin(memnew(SkeletonIKEditorPlugin(this))); add_editor_plugin(memnew(PhysicalBonePlugin(this))); @@ -6337,7 +6388,7 @@ EditorNode::EditorNode() { execute_outputs = memnew(RichTextLabel); execute_output_dialog = memnew(AcceptDialog); execute_output_dialog->add_child(execute_outputs); - execute_output_dialog->set_title(TTR("")); + execute_output_dialog->set_title(""); gui_base->add_child(execute_output_dialog); EditorFileSystem::get_singleton()->connect("sources_changed", this, "_sources_changed"); @@ -6403,7 +6454,7 @@ EditorNode::EditorNode() { ED_SHORTCUT("editor/editor_2d", TTR("Open 2D Editor"), KEY_F1); ED_SHORTCUT("editor/editor_3d", TTR("Open 3D Editor"), KEY_F2); ED_SHORTCUT("editor/editor_script", TTR("Open Script Editor"), KEY_F3); //hack needed for script editor F3 search to work :) Assign like this or don't use F3 - ED_SHORTCUT("editor/editor_help", TTR("Search Help"), KEY_F4); + ED_SHORTCUT("editor/editor_help", TTR("Search Help"), KEY_MASK_SHIFT | KEY_F1); #endif ED_SHORTCUT("editor/editor_assetlib", TTR("Open Asset Library")); ED_SHORTCUT("editor/editor_next", TTR("Open the next Editor")); diff --git a/editor/editor_node.h b/editor/editor_node.h index cfe8bf9ec4..f3bc95c409 100644 --- a/editor/editor_node.h +++ b/editor/editor_node.h @@ -146,6 +146,7 @@ private: FILE_SAVE_OPTIMIZED, FILE_OPEN_RECENT, FILE_OPEN_OLD_SCENE, + FILE_QUICK_OPEN, FILE_QUICK_OPEN_SCENE, FILE_QUICK_OPEN_SCRIPT, FILE_OPEN_PREV, @@ -524,8 +525,8 @@ private: static void _editor_file_dialog_unregister(EditorFileDialog *p_dialog); void _cleanup_scene(); - void _remove_edited_scene(); - void _remove_scene(int index); + void _remove_edited_scene(bool p_change_tab = true); + void _remove_scene(int index, bool p_change_tab = true); bool _find_and_save_resource(RES p_res, Map<RES, bool> &processed, int32_t flags); bool _find_and_save_edited_subresources(Object *obj, Map<RES, bool> &processed, int32_t flags); void _save_edited_subresources(Node *scene, Map<RES, bool> &processed, int32_t flags); @@ -643,6 +644,12 @@ protected: void _notification(int p_what); static void _bind_methods(); +protected: + friend class FileSystemDock; + + int get_current_tab(); + void set_current_tab(int p_tab); + public: bool call_build(); @@ -814,6 +821,7 @@ public: void remove_tool_menu_item(const String &p_name); void save_all_scenes(); + void save_scene_list(Vector<String> p_scene_filenames); void restart_editor(); void dim_editor(bool p_dimming); @@ -835,6 +843,8 @@ public: static void add_init_callback(EditorNodeInitCallback p_callback) { _init_callbacks.push_back(p_callback); } static void add_build_callback(EditorBuildCallback p_callback); + + bool ensure_main_scene(bool p_from_native); }; struct EditorProgress { diff --git a/editor/editor_plugin.cpp b/editor/editor_plugin.cpp index 8af4ee8017..055e1338dd 100644 --- a/editor/editor_plugin.cpp +++ b/editor/editor_plugin.cpp @@ -48,7 +48,7 @@ Array EditorInterface::_make_mesh_previews(const Array &p_meshes, int p_preview_ meshes.push_back(p_meshes[i]); } - Vector<Ref<Texture> > textures = make_mesh_previews(meshes, p_preview_size); + Vector<Ref<Texture> > textures = make_mesh_previews(meshes, NULL, p_preview_size); Array ret; for (int i = 0; i < textures.size(); i++) { ret.push_back(textures[i]); @@ -57,7 +57,7 @@ Array EditorInterface::_make_mesh_previews(const Array &p_meshes, int p_preview_ return ret; } -Vector<Ref<Texture> > EditorInterface::make_mesh_previews(const Vector<Ref<Mesh> > &p_meshes, int p_preview_size) { +Vector<Ref<Texture> > EditorInterface::make_mesh_previews(const Vector<Ref<Mesh> > &p_meshes, Vector<Transform> *p_transforms, int p_preview_size) { int size = p_preview_size; @@ -74,25 +74,14 @@ Vector<Ref<Texture> > EditorInterface::make_mesh_previews(const Vector<Ref<Mesh> RID camera = VS::get_singleton()->camera_create(); VS::get_singleton()->viewport_attach_camera(viewport, camera); - VS::get_singleton()->camera_set_transform(camera, Transform(Basis(), Vector3(0, 0, 3))); - //VS::get_singleton()->camera_set_perspective(camera,45,0.1,10); - VS::get_singleton()->camera_set_orthogonal(camera, 1.0, 0.01, 1000.0); RID light = VS::get_singleton()->directional_light_create(); RID light_instance = VS::get_singleton()->instance_create2(light, scenario); - VS::get_singleton()->instance_set_transform(light_instance, Transform().looking_at(Vector3(-1, -1, -1), Vector3(0, 1, 0))); RID light2 = VS::get_singleton()->directional_light_create(); VS::get_singleton()->light_set_color(light2, Color(0.7, 0.7, 0.7)); - //VS::get_singleton()->light_set_color(light2, VS::LIGHT_COLOR_SPECULAR, Color(0.0, 0.0, 0.0)); RID light_instance2 = VS::get_singleton()->instance_create2(light2, scenario); - VS::get_singleton()->instance_set_transform(light_instance2, Transform().looking_at(Vector3(0, 1, 0), Vector3(0, 0, 1))); - - //sphere = VS::get_singleton()->mesh_create(); - RID mesh_instance = VS::get_singleton()->instance_create(); - VS::get_singleton()->instance_set_scenario(mesh_instance, scenario); - EditorProgress ep("mlib", TTR("Creating Mesh Previews"), p_meshes.size()); Vector<Ref<Texture> > textures; @@ -104,25 +93,38 @@ Vector<Ref<Texture> > EditorInterface::make_mesh_previews(const Vector<Ref<Mesh> textures.push_back(Ref<Texture>()); continue; } + + Transform mesh_xform; + if (p_transforms != NULL) { + mesh_xform = (*p_transforms)[i]; + } + + RID inst = VS::get_singleton()->instance_create2(mesh->get_rid(), scenario); + VS::get_singleton()->instance_set_transform(inst, mesh_xform); + AABB aabb = mesh->get_aabb(); Vector3 ofs = aabb.position + aabb.size * 0.5; aabb.position -= ofs; Transform xform; - xform.basis = Basis().rotated(Vector3(0, 1, 0), -Math_PI * 0.25); - xform.basis = Basis().rotated(Vector3(1, 0, 0), Math_PI * 0.25) * xform.basis; + xform.basis = Basis().rotated(Vector3(0, 1, 0), -Math_PI / 6); + xform.basis = Basis().rotated(Vector3(1, 0, 0), Math_PI / 6) * xform.basis; AABB rot_aabb = xform.xform(aabb); float m = MAX(rot_aabb.size.x, rot_aabb.size.y) * 0.5; if (m == 0) { textures.push_back(Ref<Texture>()); continue; } - m = 1.0 / m; - m *= 0.5; - xform.basis.scale(Vector3(m, m, m)); xform.origin = -xform.basis.xform(ofs); //-ofs*m; xform.origin.z -= rot_aabb.size.z * 2; - RID inst = VS::get_singleton()->instance_create2(mesh->get_rid(), scenario); - VS::get_singleton()->instance_set_transform(inst, xform); + xform.invert(); + xform = mesh_xform * xform; + + VS::get_singleton()->camera_set_transform(camera, xform * Transform(Basis(), Vector3(0, 0, 3))); + VS::get_singleton()->camera_set_orthogonal(camera, m * 2, 0.01, 1000.0); + + VS::get_singleton()->instance_set_transform(light_instance, xform * Transform().looking_at(Vector3(-2, -1, -1), Vector3(0, 1, 0))); + VS::get_singleton()->instance_set_transform(light_instance2, xform * Transform().looking_at(Vector3(+1, -1, -2), Vector3(0, 1, 0))); + ep.step(TTR("Thumbnail..."), i); Main::iteration(); Main::iteration(); @@ -136,7 +138,6 @@ Vector<Ref<Texture> > EditorInterface::make_mesh_previews(const Vector<Ref<Mesh> textures.push_back(it); } - VS::get_singleton()->free(mesh_instance); VS::get_singleton()->free(viewport); VS::get_singleton()->free(light); VS::get_singleton()->free(light_instance); @@ -400,6 +401,18 @@ void EditorPlugin::add_control_to_container(CustomControlContainer p_location, C EditorNode::get_singleton()->get_inspector_dock_addon_area()->add_child(p_control); } break; + case CONTAINER_PROJECT_SETTING_TAB_LEFT: { + + ProjectSettingsEditor::get_singleton()->get_tabs()->add_child(p_control); + ProjectSettingsEditor::get_singleton()->get_tabs()->move_child(p_control, 0); + + } break; + case CONTAINER_PROJECT_SETTING_TAB_RIGHT: { + + ProjectSettingsEditor::get_singleton()->get_tabs()->add_child(p_control); + ProjectSettingsEditor::get_singleton()->get_tabs()->move_child(p_control, 1); + + } break; } } @@ -450,6 +463,12 @@ void EditorPlugin::remove_control_from_container(CustomControlContainer p_locati EditorNode::get_singleton()->get_inspector_dock_addon_area()->remove_child(p_control); } break; + case CONTAINER_PROJECT_SETTING_TAB_LEFT: + case CONTAINER_PROJECT_SETTING_TAB_RIGHT: { + + ProjectSettingsEditor::get_singleton()->get_tabs()->remove_child(p_control); + + } break; } } @@ -863,6 +882,8 @@ void EditorPlugin::_bind_methods() { BIND_ENUM_CONSTANT(CONTAINER_CANVAS_EDITOR_SIDE_RIGHT); BIND_ENUM_CONSTANT(CONTAINER_CANVAS_EDITOR_BOTTOM); BIND_ENUM_CONSTANT(CONTAINER_PROPERTY_EDITOR_BOTTOM); + BIND_ENUM_CONSTANT(CONTAINER_PROJECT_SETTING_TAB_LEFT); + BIND_ENUM_CONSTANT(CONTAINER_PROJECT_SETTING_TAB_RIGHT); BIND_ENUM_CONSTANT(DOCK_SLOT_LEFT_UL); BIND_ENUM_CONSTANT(DOCK_SLOT_LEFT_BL); diff --git a/editor/editor_plugin.h b/editor/editor_plugin.h index 2fcc487377..c28e607c89 100644 --- a/editor/editor_plugin.h +++ b/editor/editor_plugin.h @@ -100,7 +100,7 @@ public: Error save_scene(); void save_scene_as(const String &p_scene, bool p_with_preview = true); - Vector<Ref<Texture> > make_mesh_previews(const Vector<Ref<Mesh> > &p_meshes, int p_preview_size); + Vector<Ref<Texture> > make_mesh_previews(const Vector<Ref<Mesh> > &p_meshes, Vector<Transform> *p_trnasforms, int p_preview_size); EditorInterface(); }; @@ -137,7 +137,9 @@ public: CONTAINER_CANVAS_EDITOR_SIDE_LEFT, CONTAINER_CANVAS_EDITOR_SIDE_RIGHT, CONTAINER_CANVAS_EDITOR_BOTTOM, - CONTAINER_PROPERTY_EDITOR_BOTTOM + CONTAINER_PROPERTY_EDITOR_BOTTOM, + CONTAINER_PROJECT_SETTING_TAB_LEFT, + CONTAINER_PROJECT_SETTING_TAB_RIGHT, }; enum DockSlot { diff --git a/editor/editor_resource_preview.cpp b/editor/editor_resource_preview.cpp index 173333dac9..6cca0a0ffa 100644 --- a/editor/editor_resource_preview.cpp +++ b/editor/editor_resource_preview.cpp @@ -71,7 +71,21 @@ Ref<Texture> EditorResourcePreviewGenerator::generate_from_path(const String &p_ return generate(res, p_size); } -bool EditorResourcePreviewGenerator::should_generate_small_preview() const { +bool EditorResourcePreviewGenerator::generate_small_preview_automatically() const { + + if (get_script_instance() && get_script_instance()->has_method("generate_small_preview_automatically")) { + return get_script_instance()->call("generate_small_preview_automatically"); + } + + return false; +} + +bool EditorResourcePreviewGenerator::can_generate_small_preview() const { + + if (get_script_instance() && get_script_instance()->has_method("can_generate_small_preview")) { + return get_script_instance()->call("can_generate_small_preview"); + } + return false; } @@ -80,6 +94,8 @@ void EditorResourcePreviewGenerator::_bind_methods() { ClassDB::add_virtual_method(get_class_static(), MethodInfo(Variant::BOOL, "handles", PropertyInfo(Variant::STRING, "type"))); ClassDB::add_virtual_method(get_class_static(), MethodInfo(CLASS_INFO(Texture), "generate", PropertyInfo(Variant::OBJECT, "from", PROPERTY_HINT_RESOURCE_TYPE, "Resource"), PropertyInfo(Variant::VECTOR2, "size"))); ClassDB::add_virtual_method(get_class_static(), MethodInfo(CLASS_INFO(Texture), "generate_from_path", PropertyInfo(Variant::STRING, "path", PROPERTY_HINT_FILE), PropertyInfo(Variant::VECTOR2, "size"))); + ClassDB::add_virtual_method(get_class_static(), MethodInfo(Variant::BOOL, "generate_small_preview_automatically")); + ClassDB::add_virtual_method(get_class_static(), MethodInfo(Variant::BOOL, "can_generate_small_preview")); } EditorResourcePreviewGenerator::EditorResourcePreviewGenerator() { @@ -154,16 +170,27 @@ void EditorResourcePreview::_generate_preview(Ref<ImageTexture> &r_texture, Ref< } r_texture = generated; - if (r_texture.is_valid() && preview_generators[i]->should_generate_small_preview()) { - int small_thumbnail_size = EditorNode::get_singleton()->get_theme_base()->get_icon("Object", "EditorIcons")->get_width(); // Kind of a workaround to retrieve the default icon size - small_thumbnail_size *= EDSCALE; + int small_thumbnail_size = EditorNode::get_singleton()->get_theme_base()->get_icon("Object", "EditorIcons")->get_width(); // Kind of a workaround to retrieve the default icon size + small_thumbnail_size *= EDSCALE; + if (preview_generators[i]->can_generate_small_preview()) { + Ref<Texture> generated_small; + if (p_item.resource.is_valid()) { + generated_small = preview_generators[i]->generate(p_item.resource, Vector2(small_thumbnail_size, small_thumbnail_size)); + } else { + generated_small = preview_generators[i]->generate_from_path(p_item.path, Vector2(small_thumbnail_size, small_thumbnail_size)); + } + r_small_texture = generated_small; + } + + if (!r_small_texture.is_valid() && r_texture.is_valid() && preview_generators[i]->generate_small_preview_automatically()) { Ref<Image> small_image = r_texture->get_data(); small_image = small_image->duplicate(); small_image->resize(small_thumbnail_size, small_thumbnail_size, Image::INTERPOLATE_CUBIC); r_small_texture.instance(); r_small_texture->create_from_image(small_image); } + break; } @@ -176,7 +203,9 @@ void EditorResourcePreview::_generate_preview(Ref<ImageTexture> &r_texture, Ref< if (has_small_texture) { ResourceSaver::save(cache_base + "_small.png", r_small_texture); } - FileAccess *f = FileAccess::open(cache_base + ".txt", FileAccess::WRITE); + Error err; + FileAccess *f = FileAccess::open(cache_base + ".txt", FileAccess::WRITE, &err); + ERR_FAIL_COND(err != OK); f->store_line(itos(thumbnail_size)); f->store_line(itos(has_small_texture)); f->store_line(itos(FileAccess::get_modified_time(p_item.path))); diff --git a/editor/editor_resource_preview.h b/editor/editor_resource_preview.h index 9b9223a818..e0fd54c924 100644 --- a/editor/editor_resource_preview.h +++ b/editor/editor_resource_preview.h @@ -48,7 +48,8 @@ public: virtual Ref<Texture> generate(const RES &p_from, const Size2 p_size) const; virtual Ref<Texture> generate_from_path(const String &p_path, const Size2 p_size) const; - virtual bool should_generate_small_preview() const; + virtual bool generate_small_preview_automatically() const; + virtual bool can_generate_small_preview() const; EditorResourcePreviewGenerator(); }; diff --git a/editor/editor_run_native.cpp b/editor/editor_run_native.cpp index b73cda6008..585ea0ec69 100644 --- a/editor/editor_run_native.cpp +++ b/editor/editor_run_native.cpp @@ -101,6 +101,12 @@ void EditorRunNative::_notification(int p_what) { void EditorRunNative::_run_native(int p_idx, int p_platform) { + if (!EditorNode::get_singleton()->ensure_main_scene(true)) { + resume_idx = p_idx; + resume_platform = p_platform; + return; + } + Ref<EditorExportPlatform> eep = EditorExport::get_singleton()->get_export_platform(p_platform); ERR_FAIL_COND(eep.is_null()); @@ -144,6 +150,10 @@ void EditorRunNative::_run_native(int p_idx, int p_platform) { eep->run(preset, p_idx, flags); } +void EditorRunNative::resume_run_native() { + _run_native(resume_idx, resume_platform); +} + void EditorRunNative::_bind_methods() { ClassDB::bind_method("_run_native", &EditorRunNative::_run_native); @@ -198,4 +208,6 @@ EditorRunNative::EditorRunNative() { deploy_debug_remote = false; debug_collisions = false; debug_navigation = false; + resume_idx = 0; + resume_platform = 0; } diff --git a/editor/editor_run_native.h b/editor/editor_run_native.h index 10cca014cf..d62c982725 100644 --- a/editor/editor_run_native.h +++ b/editor/editor_run_native.h @@ -45,6 +45,9 @@ class EditorRunNative : public HBoxContainer { bool debug_collisions; bool debug_navigation; + int resume_idx; + int resume_platform; + void _run_native(int p_idx, int p_platform); protected: @@ -64,6 +67,8 @@ public: void set_debug_navigation(bool p_debug); bool get_debug_navigation() const; + void resume_run_native(); + EditorRunNative(); }; diff --git a/editor/editor_settings.cpp b/editor/editor_settings.cpp index 193b2b7a88..58e3cc6fc1 100644 --- a/editor/editor_settings.cpp +++ b/editor/editor_settings.cpp @@ -268,6 +268,11 @@ void EditorSettings::_load_defaults(Ref<ConfigFile> p_extra_config) { String host_lang = OS::get_singleton()->get_locale(); host_lang = TranslationServer::standardize_locale(host_lang); + // Some locales are not properly supported currently in Godot due to lack of font shaping + // (e.g. Arabic or Hindi), so even though we have work in progress translations for them, + // we skip them as they don't render properly. (GH-28577) + const Vector<String> locales_to_skip = String("ar,bn,fa,he,hi,ml,si,ta,te,ur").split(","); + String best; EditorTranslationList *etl = _editor_translations; @@ -275,6 +280,15 @@ void EditorSettings::_load_defaults(Ref<ConfigFile> p_extra_config) { while (etl->data) { const String &locale = etl->lang; + + // Skip locales which we can't render properly (see above comment). + // Test against language code without regional variants (e.g. ur_PK). + String lang_code = locale.get_slice("_", 0); + if (locales_to_skip.find(lang_code) != -1) { + etl++; + continue; + } + lang_hint += ","; lang_hint += locale; @@ -304,21 +318,21 @@ void EditorSettings::_load_defaults(Ref<ConfigFile> p_extra_config) { _initial_set("interface/editor/display_scale", 0); hints["interface/editor/display_scale"] = PropertyInfo(Variant::INT, "interface/editor/display_scale", PROPERTY_HINT_ENUM, "Auto,75%,100%,125%,150%,175%,200%,Custom", PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_RESTART_IF_CHANGED); _initial_set("interface/editor/custom_display_scale", 1.0f); - hints["interface/editor/custom_display_scale"] = PropertyInfo(Variant::REAL, "interface/editor/custom_display_scale", PROPERTY_HINT_RANGE, "0.75,3,0.01", PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_RESTART_IF_CHANGED); + hints["interface/editor/custom_display_scale"] = PropertyInfo(Variant::REAL, "interface/editor/custom_display_scale", PROPERTY_HINT_RANGE, "0.5,3,0.01", PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_RESTART_IF_CHANGED); _initial_set("interface/editor/main_font_size", 14); - hints["interface/editor/main_font_size"] = PropertyInfo(Variant::INT, "interface/editor/main_font_size", PROPERTY_HINT_RANGE, "10,40,1", PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_RESTART_IF_CHANGED); - _initial_set("interface/editor/code_font_size", 14); - hints["interface/editor/code_font_size"] = PropertyInfo(Variant::INT, "interface/editor/code_font_size", PROPERTY_HINT_RANGE, "8,96,1", PROPERTY_USAGE_DEFAULT); + hints["interface/editor/main_font_size"] = PropertyInfo(Variant::INT, "interface/editor/main_font_size", PROPERTY_HINT_RANGE, "8,48,1", PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_RESTART_IF_CHANGED); _initial_set("interface/editor/main_font_antialiased", true); - _initial_set("interface/editor/code_font_antialiased", true); _initial_set("interface/editor/main_font_hinting", 2); hints["interface/editor/main_font_hinting"] = PropertyInfo(Variant::INT, "interface/editor/main_font_hinting", PROPERTY_HINT_ENUM, "None,Light,Normal", PROPERTY_USAGE_DEFAULT); - _initial_set("interface/editor/code_font_hinting", 2); - hints["interface/editor/code_font_hinting"] = PropertyInfo(Variant::INT, "interface/editor/code_font_hinting", PROPERTY_HINT_ENUM, "None,Light,Normal", PROPERTY_USAGE_DEFAULT); _initial_set("interface/editor/main_font", ""); hints["interface/editor/main_font"] = PropertyInfo(Variant::STRING, "interface/editor/main_font", PROPERTY_HINT_GLOBAL_FILE, "*.ttf,*.otf", PROPERTY_USAGE_DEFAULT); _initial_set("interface/editor/main_font_bold", ""); hints["interface/editor/main_font_bold"] = PropertyInfo(Variant::STRING, "interface/editor/main_font_bold", PROPERTY_HINT_GLOBAL_FILE, "*.ttf,*.otf", PROPERTY_USAGE_DEFAULT); + _initial_set("interface/editor/code_font_size", 14); + hints["interface/editor/code_font_size"] = PropertyInfo(Variant::INT, "interface/editor/code_font_size", PROPERTY_HINT_RANGE, "8,48,1", PROPERTY_USAGE_DEFAULT); + _initial_set("interface/editor/code_font_antialiased", true); + _initial_set("interface/editor/code_font_hinting", 2); + hints["interface/editor/code_font_hinting"] = PropertyInfo(Variant::INT, "interface/editor/code_font_hinting", PROPERTY_HINT_ENUM, "None,Light,Normal", PROPERTY_USAGE_DEFAULT); _initial_set("interface/editor/code_font", ""); hints["interface/editor/code_font"] = PropertyInfo(Variant::STRING, "interface/editor/code_font", PROPERTY_HINT_GLOBAL_FILE, "*.ttf,*.otf", PROPERTY_USAGE_DEFAULT); _initial_set("interface/editor/dim_editor_on_dialog_popup", true); @@ -326,6 +340,10 @@ void EditorSettings::_load_defaults(Ref<ConfigFile> p_extra_config) { hints["interface/editor/dim_amount"] = PropertyInfo(Variant::REAL, "interface/editor/dim_amount", PROPERTY_HINT_RANGE, "0,1,0.01", PROPERTY_USAGE_DEFAULT); _initial_set("interface/editor/dim_transition_time", 0.08f); hints["interface/editor/dim_transition_time"] = PropertyInfo(Variant::REAL, "interface/editor/dim_transition_time", PROPERTY_HINT_RANGE, "0,1,0.001", PROPERTY_USAGE_DEFAULT); + _initial_set("interface/editor/low_processor_mode_sleep_usec", 6900); // ~144 FPS + hints["interface/editor/low_processor_mode_sleep_usec"] = PropertyInfo(Variant::REAL, "interface/editor/low_processor_mode_sleep_usec", PROPERTY_HINT_RANGE, "1,100000,1", PROPERTY_USAGE_DEFAULT); + _initial_set("interface/editor/unfocused_low_processor_mode_sleep_usec", 50000); // 20 FPS + hints["interface/editor/unfocused_low_processor_mode_sleep_usec"] = PropertyInfo(Variant::REAL, "interface/editor/unfocused_low_processor_mode_sleep_usec", PROPERTY_HINT_RANGE, "1,100000,1", PROPERTY_USAGE_DEFAULT); _initial_set("interface/editor/separate_distraction_mode", false); _initial_set("interface/editor/save_each_scene_on_quit", true); // Regression _initial_set("interface/editor/quit_confirmation", true); @@ -430,6 +448,7 @@ void EditorSettings::_load_defaults(Ref<ConfigFile> p_extra_config) { // Line numbers _initial_set("text_editor/line_numbers/show_line_numbers", true); _initial_set("text_editor/line_numbers/line_numbers_zero_padded", false); + _initial_set("text_editor/line_numbers/show_bookmark_gutter", true); _initial_set("text_editor/line_numbers/show_breakpoint_gutter", true); _initial_set("text_editor/line_numbers/show_info_gutter", true); _initial_set("text_editor/line_numbers/code_folding", true); @@ -472,6 +491,12 @@ void EditorSettings::_load_defaults(Ref<ConfigFile> p_extra_config) { // Help _initial_set("text_editor/help/show_help_index", true); + _initial_set("text_editor/help/help_font_size", 15); + hints["text_editor/help/help_font_size"] = PropertyInfo(Variant::INT, "text_editor/help/help_font_size", PROPERTY_HINT_RANGE, "8,48,1"); + _initial_set("text_editor/help/help_source_font_size", 14); + hints["text_editor/help/help_source_font_size"] = PropertyInfo(Variant::INT, "text_editor/help/help_source_font_size", PROPERTY_HINT_RANGE, "8,48,1"); + _initial_set("text_editor/help/help_title_font_size", 23); + hints["text_editor/help/help_title_font_size"] = PropertyInfo(Variant::INT, "text_editor/help/help_title_font_size", PROPERTY_HINT_RANGE, "8,48,1"); /* Editors */ @@ -546,10 +571,9 @@ void EditorSettings::_load_defaults(Ref<ConfigFile> p_extra_config) { _initial_set("editors/2d/bone_ik_color", Color(0.9, 0.9, 0.45, 0.9)); _initial_set("editors/2d/bone_outline_color", Color(0.35, 0.35, 0.35)); _initial_set("editors/2d/bone_outline_size", 2); - _initial_set("editors/2d/keep_margins_when_changing_anchors", false); _initial_set("editors/2d/viewport_border_color", Color(0.4, 0.4, 1.0, 0.4)); _initial_set("editors/2d/warped_mouse_panning", true); - _initial_set("editors/2d/simple_spacebar_panning", false); + _initial_set("editors/2d/simple_panning", false); _initial_set("editors/2d/scroll_to_pan", false); _initial_set("editors/2d/pan_speed", 20); @@ -580,7 +604,8 @@ void EditorSettings::_load_defaults(Ref<ConfigFile> p_extra_config) { _initial_set("run/auto_save/save_before_running", true); // Output - hints["run/output/font_size"] = PropertyInfo(Variant::INT, "run/output/font_size", PROPERTY_HINT_RANGE, "8,96,1", PROPERTY_USAGE_DEFAULT); + _initial_set("run/output/font_size", 13); + hints["run/output/font_size"] = PropertyInfo(Variant::INT, "run/output/font_size", PROPERTY_HINT_RANGE, "8,48,1"); _initial_set("run/output/always_clear_output_on_play", true); _initial_set("run/output/always_open_output_on_play", true); _initial_set("run/output/always_close_output_on_stop", false); @@ -648,6 +673,7 @@ void EditorSettings::_load_default_text_editor_theme() { _initial_set("text_editor/highlighting/function_color", Color::html("66a2ce")); _initial_set("text_editor/highlighting/member_variable_color", Color::html("e64e59")); _initial_set("text_editor/highlighting/mark_color", Color(1.0, 0.4, 0.4, 0.4)); + _initial_set("text_editor/highlighting/bookmark_color", Color(0.08, 0.49, 0.98)); _initial_set("text_editor/highlighting/breakpoint_color", Color(0.8, 0.8, 0.4, 0.2)); _initial_set("text_editor/highlighting/executing_line_color", Color(0.2, 0.8, 0.2, 0.4)); _initial_set("text_editor/highlighting/code_folding_color", Color(0.8, 0.8, 0.8, 0.8)); @@ -678,6 +704,10 @@ bool EditorSettings::_save_text_editor_theme(String p_file) { return false; } +bool EditorSettings::_is_default_text_editor_theme(String p_theme_name) { + return p_theme_name == "default" || p_theme_name == "adaptive" || p_theme_name == "custom"; +} + static Dictionary _get_builtin_script_templates() { Dictionary templates; @@ -1102,7 +1132,7 @@ Variant _EDITOR_DEF(const String &p_setting, const Variant &p_default, bool p_re Variant _EDITOR_GET(const String &p_setting) { - ERR_FAIL_COND_V(!EditorSettings::get_singleton()->has_setting(p_setting), Variant()) + ERR_FAIL_COND_V(!EditorSettings::get_singleton()->has_setting(p_setting), Variant()); return EditorSettings::get_singleton()->get(p_setting); } @@ -1270,7 +1300,7 @@ void EditorSettings::list_text_editor_themes() { d->list_dir_begin(); String file = d->get_next(); while (file != String()) { - if (file.get_extension() == "tet" && file.get_basename().to_lower() != "default" && file.get_basename().to_lower() != "adaptive" && file.get_basename().to_lower() != "custom") { + if (file.get_extension() == "tet" && !_is_default_text_editor_theme(file.get_basename().to_lower())) { custom_themes.push_back(file.get_basename()); } file = d->get_next(); @@ -1287,14 +1317,16 @@ void EditorSettings::list_text_editor_themes() { } void EditorSettings::load_text_editor_theme() { - if (get("text_editor/theme/color_theme") == "Default" || get("text_editor/theme/color_theme") == "Adaptive" || get("text_editor/theme/color_theme") == "Custom") { - if (get("text_editor/theme/color_theme") == "Default") { + String p_file = get("text_editor/theme/color_theme"); + + if (_is_default_text_editor_theme(p_file.get_file().to_lower())) { + if (p_file == "Default") { _load_default_text_editor_theme(); } return; // sorry for "Settings changed" console spam } - String theme_path = get_text_editor_themes_dir().plus_file((String)get("text_editor/theme/color_theme") + ".tet"); + String theme_path = get_text_editor_themes_dir().plus_file(p_file + ".tet"); Ref<ConfigFile> cf = memnew(ConfigFile); Error err = cf->load(theme_path); @@ -1346,7 +1378,7 @@ bool EditorSettings::save_text_editor_theme() { String p_file = get("text_editor/theme/color_theme"); - if (p_file.get_file().to_lower() == "default" || p_file.get_file().to_lower() == "adaptive" || p_file.get_file().to_lower() == "custom") { + if (_is_default_text_editor_theme(p_file.get_file().to_lower())) { return false; } String theme_path = get_text_editor_themes_dir().plus_file(p_file + ".tet"); @@ -1358,7 +1390,7 @@ bool EditorSettings::save_text_editor_theme_as(String p_file) { p_file += ".tet"; } - if (p_file.get_file().to_lower() == "default.tet" || p_file.get_file().to_lower() == "adaptive.tet" || p_file.get_file().to_lower() == "custom.tet") { + if (_is_default_text_editor_theme(p_file.get_file().to_lower().trim_suffix(".tet"))) { return false; } if (_save_text_editor_theme(p_file)) { @@ -1376,6 +1408,11 @@ bool EditorSettings::save_text_editor_theme_as(String p_file) { return false; } +bool EditorSettings::is_default_text_editor_theme() { + String p_file = get("text_editor/theme/color_theme"); + return _is_default_text_editor_theme(p_file.get_file().to_lower()); +} + Vector<String> EditorSettings::get_script_templates(const String &p_extension) { Vector<String> templates; diff --git a/editor/editor_settings.h b/editor/editor_settings.h index 43a8cbf739..2ee8dd805b 100644 --- a/editor/editor_settings.h +++ b/editor/editor_settings.h @@ -123,6 +123,7 @@ private: void _load_defaults(Ref<ConfigFile> p_extra_config = NULL); void _load_default_text_editor_theme(); bool _save_text_editor_theme(String p_file); + bool _is_default_text_editor_theme(String p_file); protected: static void _bind_methods(); @@ -187,6 +188,7 @@ public: bool import_text_editor_theme(String p_file); bool save_text_editor_theme(); bool save_text_editor_theme_as(String p_file); + bool is_default_text_editor_theme(); Vector<String> get_script_templates(const String &p_extension); String get_editor_layouts_config() const; diff --git a/editor/editor_themes.cpp b/editor/editor_themes.cpp index ba4dd9d7e2..ff38b4b650 100644 --- a/editor/editor_themes.cpp +++ b/editor/editor_themes.cpp @@ -1118,6 +1118,7 @@ Ref<Theme> create_editor_theme(const Ref<Theme> p_theme) { const Color function_color = main_color; const Color member_variable_color = main_color.linear_interpolate(mono_color, 0.6); const Color mark_color = Color(error_color.r, error_color.g, error_color.b, 0.3); + const Color bookmark_color = Color(0.08, 0.49, 0.98); const Color breakpoint_color = error_color; const Color executing_line_color = Color(0.2, 0.8, 0.2, 0.4); const Color code_folding_color = alpha3; @@ -1154,6 +1155,7 @@ Ref<Theme> create_editor_theme(const Ref<Theme> p_theme) { setting->set_initial_value("text_editor/highlighting/function_color", function_color, true); setting->set_initial_value("text_editor/highlighting/member_variable_color", member_variable_color, true); setting->set_initial_value("text_editor/highlighting/mark_color", mark_color, true); + setting->set_initial_value("text_editor/highlighting/bookmark_color", bookmark_color, true); setting->set_initial_value("text_editor/highlighting/breakpoint_color", breakpoint_color, true); setting->set_initial_value("text_editor/highlighting/executing_line_color", executing_line_color, true); setting->set_initial_value("text_editor/highlighting/code_folding_color", code_folding_color, true); diff --git a/editor/filesystem_dock.cpp b/editor/filesystem_dock.cpp index b7e9d36d88..e57217bb11 100644 --- a/editor/filesystem_dock.cpp +++ b/editor/filesystem_dock.cpp @@ -451,9 +451,11 @@ void FileSystemDock::_navigate_to_path(const String &p_path, bool p_select_in_fa } else if (dirAccess->dir_exists(p_path)) { path = target_path + "/"; } else { + memdelete(dirAccess); ERR_EXPLAIN(vformat(TTR("Cannot navigate to '%s' as it has not been found in the file system!"), p_path)); ERR_FAIL(); } + memdelete(dirAccess); } _set_current_path_text(path); @@ -756,7 +758,7 @@ void FileSystemDock::_update_file_list(bool p_keep_selection) { Ref<Texture> type_icon; Ref<Texture> big_icon; - String tooltip = fname; + String tooltip = fpath; // Select the icons if (!finfo->import_broken) { @@ -1201,6 +1203,21 @@ void FileSystemDock::_update_favorites_list_after_move(const Map<String, String> EditorSettings::get_singleton()->set_favorites(new_favorites); } +void FileSystemDock::_save_scenes_after_move(const Map<String, String> &p_renames) const { + Vector<String> remaps; + _find_remaps(EditorFileSystem::get_singleton()->get_filesystem(), p_renames, remaps); + Vector<String> new_filenames; + + for (int i = 0; i < remaps.size(); ++i) { + String file = p_renames.has(remaps[i]) ? p_renames[remaps[i]] : remaps[i]; + if (ResourceLoader::get_resource_type(file) == "PackedScene") { + new_filenames.push_back(file); + } + } + + editor->save_scene_list(new_filenames); +} + void FileSystemDock::_make_dir_confirm() { String dir_name = make_dir_dialog_text->get_text().strip_edges(); @@ -1279,14 +1296,21 @@ void FileSystemDock::_rename_operation_confirm() { Map<String, String> file_renames; Map<String, String> folder_renames; _try_move_item(to_rename, new_path, file_renames, folder_renames); + + int current_tab = editor->get_current_tab(); + _update_dependencies_after_move(file_renames); _update_resource_paths_after_move(file_renames); _update_project_settings_after_move(file_renames); _update_favorites_list_after_move(file_renames, folder_renames); - //Rescan everything + editor->set_current_tab(current_tab); + print_verbose("FileSystem: calling rescan."); _rescan(); + + print_verbose("FileSystem: saving moved scenes."); + _save_scenes_after_move(file_renames); } void FileSystemDock::_duplicate_operation_confirm() { @@ -1382,13 +1406,20 @@ void FileSystemDock::_move_operation_confirm(const String &p_to_path, bool overw } if (is_moved) { + int current_tab = editor->get_current_tab(); + _update_dependencies_after_move(file_renames); _update_resource_paths_after_move(file_renames); _update_project_settings_after_move(file_renames); _update_favorites_list_after_move(file_renames, folder_renames); + editor->set_current_tab(current_tab); + print_verbose("FileSystem: calling rescan."); _rescan(); + + print_verbose("FileSystem: saving moved scenes."); + _save_scenes_after_move(file_renames); } } @@ -2038,7 +2069,7 @@ void FileSystemDock::_get_drag_target_folder(String &target, bool &target_favori void FileSystemDock::_file_and_folders_fill_popup(PopupMenu *p_popup, Vector<String> p_paths, bool p_display_path_dependent_options) { // Add options for files and folders - ERR_FAIL_COND(p_paths.empty()) + ERR_FAIL_COND(p_paths.empty()); Vector<String> filenames; Vector<String> foldernames; @@ -2160,6 +2191,18 @@ void FileSystemDock::_tree_rmb_select(const Vector2 &p_pos) { } } +void FileSystemDock::_tree_rmb_empty(const Vector2 &p_pos) { + // Right click is pressed in the empty space of the tree + path = "res://"; + tree_popup->clear(); + tree_popup->set_size(Size2(1, 1)); + tree_popup->add_item(TTR("New Folder..."), FILE_NEW_FOLDER); + tree_popup->add_item(TTR("New Script..."), FILE_NEW_SCRIPT); + tree_popup->add_item(TTR("New Resource..."), FILE_NEW_RESOURCE); + tree_popup->set_position(tree->get_global_position() + p_pos); + tree_popup->popup(); +} + void FileSystemDock::_tree_empty_selected() { tree->deselect_all(); } @@ -2353,6 +2396,7 @@ void FileSystemDock::_bind_methods() { ClassDB::bind_method(D_METHOD("_file_list_rmb_option", "option"), &FileSystemDock::_file_list_rmb_option); ClassDB::bind_method(D_METHOD("_file_list_rmb_select"), &FileSystemDock::_file_list_rmb_select); ClassDB::bind_method(D_METHOD("_file_list_rmb_pressed"), &FileSystemDock::_file_list_rmb_pressed); + ClassDB::bind_method(D_METHOD("_tree_rmb_empty"), &FileSystemDock::_tree_rmb_empty); ClassDB::bind_method(D_METHOD("_file_deleted"), &FileSystemDock::_file_deleted); ClassDB::bind_method(D_METHOD("_folder_deleted"), &FileSystemDock::_folder_deleted); @@ -2485,6 +2529,7 @@ FileSystemDock::FileSystemDock(EditorNode *p_editor) { tree->connect("item_activated", this, "_tree_activate_file"); tree->connect("multi_selected", this, "_tree_multi_selected"); tree->connect("item_rmb_selected", this, "_tree_rmb_select"); + tree->connect("empty_rmb", this, "_tree_rmb_empty"); tree->connect("nothing_selected", this, "_tree_empty_selected"); tree->connect("gui_input", this, "_tree_gui_input"); diff --git a/editor/filesystem_dock.h b/editor/filesystem_dock.h index 9d20544ac2..46eaf71a8a 100644 --- a/editor/filesystem_dock.h +++ b/editor/filesystem_dock.h @@ -202,6 +202,7 @@ private: void _try_duplicate_item(const FileOrFolder &p_item, const String &p_new_path) const; void _update_dependencies_after_move(const Map<String, String> &p_renames) const; void _update_resource_paths_after_move(const Map<String, String> &p_renames) const; + void _save_scenes_after_move(const Map<String, String> &p_renames) const; void _update_favorites_list_after_move(const Map<String, String> &p_files_renames, const Map<String, String> &p_folders_renames) const; void _update_project_settings_after_move(const Map<String, String> &p_folders_renames) const; @@ -236,6 +237,7 @@ private: void _file_and_folders_fill_popup(PopupMenu *p_popup, Vector<String> p_paths, bool p_display_path_dependent_options = true); void _tree_rmb_select(const Vector2 &p_pos); + void _tree_rmb_empty(const Vector2 &p_pos); void _file_list_rmb_select(int p_item, const Vector2 &p_pos); void _file_list_rmb_pressed(const Vector2 &p_pos); void _tree_empty_selected(); diff --git a/editor/find_in_files.cpp b/editor/find_in_files.cpp index 4dbba952bf..e1ab5c62a7 100644 --- a/editor/find_in_files.cpp +++ b/editor/find_in_files.cpp @@ -367,28 +367,11 @@ FindInFilesDialog::FindInFilesDialog() { Label *filter_label = memnew(Label); filter_label->set_text(TTR("Filters:")); + filter_label->set_tooltip(TTR("Include the files with the following extensions. Add or remove them in ProjectSettings.")); gc->add_child(filter_label); - { - HBoxContainer *hbc = memnew(HBoxContainer); - - // TODO: Unhardcode this. - Vector<String> exts; - exts.push_back("gd"); - if (Engine::get_singleton()->has_singleton("GodotSharp")) - exts.push_back("cs"); - exts.push_back("shader"); - - for (int i = 0; i < exts.size(); ++i) { - CheckBox *cb = memnew(CheckBox); - cb->set_text(exts[i]); - cb->set_pressed(true); - hbc->add_child(cb); - _filters.push_back(cb); - } - - gc->add_child(hbc); - } + _filters_container = memnew(HBoxContainer); + gc->add_child(_filters_container); _find_button = add_button(TTR("Find..."), false, "find"); _find_button->set_disabled(true); @@ -424,11 +407,12 @@ String FindInFilesDialog::get_folder() const { } Set<String> FindInFilesDialog::get_filter() const { + // could check the _filters_preferences but it might not have been generated yet. Set<String> filters; - for (int i = 0; i < _filters.size(); ++i) { - CheckBox *cb = _filters[i]; + for (int i = 0; i < _filters_container->get_child_count(); ++i) { + CheckBox *cb = (CheckBox *)_filters_container->get_child(i); if (cb->is_pressed()) { - filters.insert(_filters[i]->get_text()); + filters.insert(cb->get_text()); } } return filters; @@ -440,6 +424,20 @@ void FindInFilesDialog::_notification(int p_what) { // Doesn't work more than once if not deferred... _search_text_line_edit->call_deferred("grab_focus"); _search_text_line_edit->select_all(); + // Extensions might have changed in the meantime, we clean them and instance them again. + for (int i = 0; i < _filters_container->get_child_count(); i++) { + _filters_container->get_child(i)->queue_delete(); + } + Array exts = ProjectSettings::get_singleton()->get("editor/search_in_file_extensions"); + for (int i = 0; i < exts.size(); ++i) { + CheckBox *cb = memnew(CheckBox); + cb->set_text(exts[i]); + if (!_filters_preferences.has(exts[i])) { + _filters_preferences[exts[i]] = true; + } + cb->set_pressed(_filters_preferences[exts[i]]); + _filters_container->add_child(cb); + } } } } @@ -449,6 +447,10 @@ void FindInFilesDialog::_on_folder_button_pressed() { } void FindInFilesDialog::custom_action(const String &p_action) { + for (int i = 0; i < _filters_container->get_child_count(); ++i) { + CheckBox *cb = (CheckBox *)_filters_container->get_child(i); + _filters_preferences[cb->get_text()] = cb->is_pressed(); + } if (p_action == "find") { emit_signal(SIGNAL_FIND_REQUESTED); hide(); @@ -751,7 +753,6 @@ void FindInFilesPanel::_on_replace_text_changed(String text) { void FindInFilesPanel::_on_replace_all_clicked() { String replace_text = get_replace_text(); - ERR_FAIL_COND(replace_text.empty()); PoolStringArray modified_files; @@ -887,7 +888,7 @@ String FindInFilesPanel::get_replace_text() { void FindInFilesPanel::update_replace_buttons() { String text = get_replace_text(); - bool disabled = text.empty() || _finder->is_searching(); + bool disabled = _finder->is_searching(); _replace_all_button->set_disabled(disabled); } diff --git a/editor/find_in_files.h b/editor/find_in_files.h index 220f8cc136..5f728a104b 100644 --- a/editor/find_in_files.h +++ b/editor/find_in_files.h @@ -31,6 +31,7 @@ #ifndef FIND_IN_FILES_H #define FIND_IN_FILES_H +#include "core/hash_map.h" #include "scene/gui/dialogs.h" // Performs the actual search @@ -88,6 +89,7 @@ private: class LineEdit; class CheckBox; class FileDialog; +class HBoxContainer; // Prompts search parameters class FindInFilesDialog : public AcceptDialog { @@ -120,12 +122,13 @@ private: LineEdit *_search_text_line_edit; LineEdit *_folder_line_edit; - Vector<CheckBox *> _filters; CheckBox *_match_case_checkbox; CheckBox *_whole_words_checkbox; Button *_find_button; Button *_replace_button; FileDialog *_folder_dialog; + HBoxContainer *_filters_container; + HashMap<String, bool> _filters_preferences; }; class Button; diff --git a/editor/icons/icon_multi_mesh_instance_2d.svg b/editor/icons/icon_multi_mesh_instance_2d.svg new file mode 100644 index 0000000000..07202ac659 --- /dev/null +++ b/editor/icons/icon_multi_mesh_instance_2d.svg @@ -0,0 +1,4 @@ +<svg width="16" height="16" xmlns="http://www.w3.org/2000/svg"> +<rect x="-1" y="-1" width="582" height="402" fill="none"/> +<path d="m3 1c-1.1046 0-2 0.89543-2 2 5.6e-4 0.71397 0.38169 1.3735 1 1.7305v6.541c-0.61771 0.35664-0.99874 1.0152-1 1.7285 0 1.1046 0.89543 2 2 2 0.71397-5.6e-4 1.3735-0.38169 1.7305-1h1.2695v-2h-1.2715c-0.17478-0.30301-0.42598-0.55488-0.72852-0.73047v-5.8555l3.5859 3.5859h1.4141v-1.4141l-3.5859-3.5859h5.8574c0.17532 0.30158 0.42647 0.55205 0.72852 0.72656v1.2734h2v-1.2695c0.61831-0.35698 0.99944-1.0165 1-1.7305 0-1.1046-0.89543-2-2-2-0.71397 5.6e-4 -1.3735 0.38169-1.7305 1h-6.541c-0.35664-0.61771-1.0152-0.99874-1.7285-1zm8 7v3h-3v2h3v3h2v-3h3v-2h-3v-3h-2z" fill="#a5b7f3" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/> +</svg> diff --git a/editor/icons/icon_project_icon_loading.svg b/editor/icons/icon_project_icon_loading.svg new file mode 100644 index 0000000000..3802b67654 --- /dev/null +++ b/editor/icons/icon_project_icon_loading.svg @@ -0,0 +1 @@ +<svg height="64" viewBox="0 0 64 64" width="64" xmlns="http://www.w3.org/2000/svg"><path d="m8 0c-4.432 0-8 3.568-8 8v48c0 4.432 3.568 8 8 8h48c4.432 0 8-3.568 8-8v-48c0-4.432-3.568-8-8-8z" fill="#e0e0e0" fill-opacity=".188235"/></svg>
\ No newline at end of file diff --git a/editor/icons/icon_visual_shader.svg b/editor/icons/icon_visual_shader.svg index e2c4f128b2..ded54276f4 100644 --- a/editor/icons/icon_visual_shader.svg +++ b/editor/icons/icon_visual_shader.svg @@ -1,105 +1,10 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<svg - xmlns:dc="http://purl.org/dc/elements/1.1/" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns="http://www.w3.org/2000/svg" - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - width="16" - height="16" - version="1.1" - viewBox="0 0 16 16" - id="svg20" - sodipodi:docname="icon_visual_shader.svg" - inkscape:version="0.92.3 (2405546, 2018-03-11)"> - <metadata - id="metadata26"> - <rdf:RDF> - <cc:Work - rdf:about=""> - <dc:format>image/svg+xml</dc:format> - <dc:type - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> - <dc:title></dc:title> - </cc:Work> - </rdf:RDF> - </metadata> - <defs - id="defs24" /> - <sodipodi:namedview - pagecolor="#ffffff" - bordercolor="#666666" - borderopacity="1" - objecttolerance="10" - gridtolerance="10" - guidetolerance="10" - inkscape:pageopacity="0" - inkscape:pageshadow="2" - inkscape:window-width="640" - inkscape:window-height="480" - id="namedview22" - showgrid="false" - inkscape:zoom="14.75" - inkscape:cx="8" - inkscape:cy="8" - inkscape:window-x="67" - inkscape:window-y="27" - inkscape:window-maximized="0" - inkscape:current-layer="svg20" /> - <g - id="g18" - transform="matrix(1,0,0,0.50605327,0,0.49394673)"> - <path - d="M 2,1 C 1.44774,1.0001 1.00006,1.4477 1,2 v 12 c 5.52e-5,0.5523 0.44774,0.9999 1,1 h 12 c 0.55226,-10e-5 0.99994,-0.4477 1,-1 V 6 L 10,1 Z m 1,2 h 6 v 3 c 0,0.554 0.44599,1 1,1 h 3 v 6 H 3 Z" - id="path2" - inkscape:connector-curvature="0" - style="fill:#e0e0e0" /> - <path - d="m 10,11 h 2 v 1 h -2 z" - id="path4" - inkscape:connector-curvature="0" - style="fill:#9f70ff" /> - <path - d="M 4,6 H 6 V 7 H 4 Z" - id="path6" - inkscape:connector-curvature="0" - style="fill:#ffeb70" /> - <path - d="m 8,8 h 4 V 9 H 8 Z" - id="path8" - inkscape:connector-curvature="0" - style="fill:#9dff70" /> - <path - d="M 7,6 H 8 V 7 H 7 Z" - id="path10" - inkscape:connector-curvature="0" - style="fill:#70deff" /> - <path - d="m 4,11 h 5 v 1 H 4 Z" - id="path12" - inkscape:connector-curvature="0" - style="fill:#ff70ac" /> - <path - d="M 4,4 H 7 V 5 H 4 Z" - id="path14" - inkscape:connector-curvature="0" - style="fill:#ff7070" /> - <path - d="M 4,8 H 7 V 9 H 4 Z" - id="path16" - inkscape:connector-curvature="0" - style="fill:#70ffb9" /> - </g> - <path - inkscape:connector-curvature="0" - style="fill:#e0e0e0" - d="m 2.8642321,9 v 6 h 2 a 3,3 0 0 0 3,-3 V 9 h -2 v 3 a 1,1 0 0 1 -1,1 V 9 Z" - id="path1394" /> - <path - inkscape:connector-curvature="0" - style="fill:#e0e0e0" - d="m 10.864232,9 a 2,2 0 0 0 -1.7323999,1 2,2 0 0 0 0,2 2,2 0 0 0 1.7323999,1 H 8.8642321 v 2 h 1.9999999 a 2,2 0 0 0 1.7324,-1 2,2 0 0 0 0,-2 2,2 0 0 0 -1.7324,-1 h 2 V 9 Z" - id="path30" /> +<svg width="16" height="16" version="1.1" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"> +<path d="m2.8642 9.9954v6h2a3 3 0 0 0 3-3v-3h-2v3a1 1 0 0 1-1 1v-4z" fill="#e0e0e0"/> +<path d="m10.864 9.9954a2 2 0 0 0-1.7324 1 2 2 0 0 0 0 2 2 2 0 0 0 1.7324 1h-2v2h2a2 2 0 0 0 1.7324-1 2 2 0 0 0 0-2 2 2 0 0 0-1.7324-1h2v-2z" fill="#e0e0e0"/> +<path d="m2 1c-0.55226 1e-4 -0.99994 0.4477-1 1v7h2v-6h6v3c0 0.554 0.44599 1 1 1h3v2h2v-3l-5-5z" fill="#e0e0e0"/> +<path d="m4 6h2v1h-2z" fill="#ffeb70"/> +<path d="m8 8h4v1h-4z" fill="#9dff70"/> +<path d="m7 6h1v1h-1z" fill="#70deff"/> +<path d="m4 4h3v1h-3z" fill="#ff7070"/> +<path d="m4 8h3v1h-3z" fill="#70ffb9"/> </svg> diff --git a/editor/import/editor_scene_importer_gltf.cpp b/editor/import/editor_scene_importer_gltf.cpp index daa423e1d9..c97021433b 100644 --- a/editor/import/editor_scene_importer_gltf.cpp +++ b/editor/import/editor_scene_importer_gltf.cpp @@ -2090,22 +2090,23 @@ void EditorSceneImporterGLTF::_import_animation(GLTFState &state, AnimationPlaye animation->add_track(Animation::TYPE_VALUE); animation->track_set_path(track_idx, node_path); - if (track.weight_tracks[i].interpolation <= GLTFAnimation::INTERP_STEP) { - animation->track_set_interpolation_type(track_idx, track.weight_tracks[i].interpolation == GLTFAnimation::INTERP_STEP ? Animation::INTERPOLATION_NEAREST : Animation::INTERPOLATION_NEAREST); + // Only LINEAR and STEP (NEAREST) can be supported out of the box by Godot's Animation, + // the other modes have to be baked. + GLTFAnimation::Interpolation gltf_interp = track.weight_tracks[i].interpolation; + if (gltf_interp == GLTFAnimation::INTERP_LINEAR || gltf_interp == GLTFAnimation::INTERP_STEP) { + animation->track_set_interpolation_type(track_idx, gltf_interp == GLTFAnimation::INTERP_STEP ? Animation::INTERPOLATION_NEAREST : Animation::INTERPOLATION_LINEAR); for (int j = 0; j < track.weight_tracks[i].times.size(); j++) { float t = track.weight_tracks[i].times[j]; float w = track.weight_tracks[i].values[j]; animation->track_insert_key(track_idx, t, w); } } else { - //must bake, apologies. + // CATMULLROMSPLINE or CUBIC_SPLINE have to be baked, apologies. float increment = 1.0 / float(bake_fps); float time = 0.0; - bool last = false; while (true) { - - _interpolate_track<float>(track.weight_tracks[i].times, track.weight_tracks[i].values, time, track.weight_tracks[i].interpolation); + _interpolate_track<float>(track.weight_tracks[i].times, track.weight_tracks[i].values, time, gltf_interp); if (last) { break; } diff --git a/editor/import/resource_importer_scene.cpp b/editor/import/resource_importer_scene.cpp index 5ac7bc3bc8..0989a43705 100644 --- a/editor/import/resource_importer_scene.cpp +++ b/editor/import/resource_importer_scene.cpp @@ -1024,7 +1024,7 @@ void ResourceImporterScene::_make_external_resources(Node *p_node, const String } else { ResourceSaver::save(ext_name, mat, ResourceSaver::FLAG_CHANGE_PATH); - p_materials[mat] = ResourceLoader::load(ext_name); + p_materials[mat] = ResourceLoader::load(ext_name, "", true); // disable loading from the cache. } } @@ -1070,13 +1070,13 @@ void ResourceImporterScene::_make_external_resources(Node *p_node, const String String ext_name = p_base_path.plus_file(_make_extname(mat->get_name()) + ".material"); ; - if (FileAccess::exists(ext_name)) { + if (p_keep_materials && FileAccess::exists(ext_name)) { //if exists, use it p_materials[mat] = ResourceLoader::load(ext_name); } else { ResourceSaver::save(ext_name, mat, ResourceSaver::FLAG_CHANGE_PATH); - p_materials[mat] = ResourceLoader::load(ext_name); + p_materials[mat] = ResourceLoader::load(ext_name, "", true); // disable loading from the cache. } } @@ -1291,6 +1291,13 @@ Error ResourceImporterScene::import(const String &p_source_file, const String &p } String root_type = p_options["nodes/root_type"]; + root_type = root_type.split(" ")[0]; // full root_type is "ClassName (filename.gd)" for a script global class. + + Ref<Script> root_script = NULL; + if (ScriptServer::is_global_class(root_type)) { + root_script = ResourceLoader::load(ScriptServer::get_global_class_path(root_type)); + root_type = ScriptServer::get_global_class_base(root_type); + } if (root_type != "Spatial") { Node *base_node = Object::cast_to<Node>(ClassDB::instance(root_type)); @@ -1303,6 +1310,10 @@ Error ResourceImporterScene::import(const String &p_source_file, const String &p } } + if (root_script.is_valid()) { + scene->set_script(Variant(root_script)); + } + if (Object::cast_to<Spatial>(scene)) { float root_scale = p_options["nodes/root_scale"]; Object::cast_to<Spatial>(scene)->scale(Vector3(root_scale, root_scale, root_scale)); diff --git a/editor/import/resource_importer_texture_atlas.cpp b/editor/import/resource_importer_texture_atlas.cpp index 35fdd32e2c..eca4e58abe 100644 --- a/editor/import/resource_importer_texture_atlas.cpp +++ b/editor/import/resource_importer_texture_atlas.cpp @@ -1,3 +1,33 @@ +/*************************************************************************/ +/* resource_importer_texture_atlas.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 "resource_importer_texture_atlas.h" #include "atlas_import_failed.xpm" diff --git a/editor/import/resource_importer_texture_atlas.h b/editor/import/resource_importer_texture_atlas.h index 62be570dc6..042deacfe3 100644 --- a/editor/import/resource_importer_texture_atlas.h +++ b/editor/import/resource_importer_texture_atlas.h @@ -1,3 +1,33 @@ +/*************************************************************************/ +/* resource_importer_texture_atlas.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 RESOURCE_IMPORTER_TEXTURE_ATLAS_H #define RESOURCE_IMPORTER_TEXTURE_ATLAS_H diff --git a/editor/import/resource_importer_wav.cpp b/editor/import/resource_importer_wav.cpp index fdf1103258..e39f2dabaa 100644 --- a/editor/import/resource_importer_wav.cpp +++ b/editor/import/resource_importer_wav.cpp @@ -119,7 +119,7 @@ Error ResourceImporterWAV::import(const String &p_source_file, const String &p_s file->close(); memdelete(file); - ERR_EXPLAIN("Not a WAV file (no WAVE RIFF Header)") + ERR_EXPLAIN("Not a WAV file (no WAVE RIFF Header)"); ERR_FAIL_V(ERR_FILE_UNRECOGNIZED); } diff --git a/editor/inspector_dock.cpp b/editor/inspector_dock.cpp index 8a2393ff60..8a0812973f 100644 --- a/editor/inspector_dock.cpp +++ b/editor/inspector_dock.cpp @@ -169,7 +169,7 @@ void InspectorDock::_save_resource(bool save_as) const { uint32_t current = EditorNode::get_singleton()->get_editor_history()->get_current(); Object *current_obj = current > 0 ? ObjectDB::get_instance(current) : NULL; - ERR_FAIL_COND(!Object::cast_to<Resource>(current_obj)) + ERR_FAIL_COND(!Object::cast_to<Resource>(current_obj)); RES current_res = RES(Object::cast_to<Resource>(current_obj)); @@ -183,7 +183,7 @@ void InspectorDock::_unref_resource() const { uint32_t current = EditorNode::get_singleton()->get_editor_history()->get_current(); Object *current_obj = current > 0 ? ObjectDB::get_instance(current) : NULL; - ERR_FAIL_COND(!Object::cast_to<Resource>(current_obj)) + ERR_FAIL_COND(!Object::cast_to<Resource>(current_obj)); RES current_res = RES(Object::cast_to<Resource>(current_obj)); current_res->set_path(""); @@ -194,7 +194,7 @@ void InspectorDock::_copy_resource() const { uint32_t current = EditorNode::get_singleton()->get_editor_history()->get_current(); Object *current_obj = current > 0 ? ObjectDB::get_instance(current) : NULL; - ERR_FAIL_COND(!Object::cast_to<Resource>(current_obj)) + ERR_FAIL_COND(!Object::cast_to<Resource>(current_obj)); RES current_res = RES(Object::cast_to<Resource>(current_obj)); diff --git a/editor/plugins/animation_blend_tree_editor_plugin.cpp b/editor/plugins/animation_blend_tree_editor_plugin.cpp index bfee76492b..dff6eb5c5e 100644 --- a/editor/plugins/animation_blend_tree_editor_plugin.cpp +++ b/editor/plugins/animation_blend_tree_editor_plugin.cpp @@ -471,7 +471,7 @@ void AnimationNodeBlendTreeEditor::_node_selected(Object *p_node) { void AnimationNodeBlendTreeEditor::_open_in_editor(const String &p_which) { Ref<AnimationNode> an = blend_tree->get_node(p_which); - ERR_FAIL_COND(!an.is_valid()) + ERR_FAIL_COND(!an.is_valid()); AnimationTreeEditor::get_singleton()->enter_editor(p_which); } @@ -798,7 +798,7 @@ void AnimationNodeBlendTreeEditor::_node_renamed(const String &p_text, Ref<Anima String new_name = p_text; - ERR_FAIL_COND(new_name == "" || new_name.find(".") != -1 || new_name.find("/") != -1) + ERR_FAIL_COND(new_name == "" || new_name.find(".") != -1 || new_name.find("/") != -1); if (new_name == prev_name) { return; //nothing to do diff --git a/editor/plugins/animation_player_editor_plugin.cpp b/editor/plugins/animation_player_editor_plugin.cpp index 0a9436952b..5204565c06 100644 --- a/editor/plugins/animation_player_editor_plugin.cpp +++ b/editor/plugins/animation_player_editor_plugin.cpp @@ -54,13 +54,9 @@ void AnimationPlayerEditor::_node_removed(Node *p_node) { track_editor->set_root(NULL); track_editor->show_select_node_warning(true); _update_player(); - //editor->animation_editor_make_visible(false); } } -void AnimationPlayerEditor::_gui_input(Ref<InputEvent> p_event) { -} - void AnimationPlayerEditor::_notification(int p_what) { switch (p_what) { case NOTIFICATION_PROCESS: { @@ -679,19 +675,22 @@ Dictionary AnimationPlayerEditor::get_state() const { } void AnimationPlayerEditor::set_state(const Dictionary &p_state) { - if (p_state.has("visible") && p_state["visible"]) { + if (!p_state.has("visible") || !p_state["visible"]) { + return; + } + if (!EditorNode::get_singleton()->get_edited_scene()) { + return; + } - if (!EditorNode::get_singleton()->get_edited_scene()) - return; + if (p_state.has("player")) { Node *n = EditorNode::get_singleton()->get_edited_scene()->get_node(p_state["player"]); if (Object::cast_to<AnimationPlayer>(n) && EditorNode::get_singleton()->get_editor_selection()->is_selected(n)) { player = Object::cast_to<AnimationPlayer>(n); _update_player(); - show(); + editor->make_bottom_panel_item_visible(this); set_process(true); ensure_visibility(); - //EditorNode::get_singleton()->animation_panel_make_visible(true); if (p_state.has("animation")) { String anim = p_state["animation"]; @@ -699,10 +698,10 @@ void AnimationPlayerEditor::set_state(const Dictionary &p_state) { _animation_edit(); } } + } - if (p_state.has("track_editor_state")) { - track_editor->set_state(p_state["track_editor_state"]); - } + if (p_state.has("track_editor_state")) { + track_editor->set_state(p_state["track_editor_state"]); } } @@ -721,17 +720,17 @@ void AnimationPlayerEditor::_animation_edit() { String current = animation->get_item_text(animation->get_selected()); Ref<Animation> anim = player->get_animation(current); track_editor->set_animation(anim); + Node *root = player->get_node(player->get_root()); if (root) { track_editor->set_root(root); } - } else { - track_editor->set_animation(Ref<Animation>()); track_editor->set_root(NULL); } } + void AnimationPlayerEditor::_dialog_action(String p_file) { switch (current_option) { @@ -770,7 +769,7 @@ void AnimationPlayerEditor::_dialog_action(String p_file) { if (current != "") { Ref<Animation> anim = player->get_animation(current); - ERR_FAIL_COND(!Object::cast_to<Resource>(*anim)) + ERR_FAIL_COND(!Object::cast_to<Resource>(*anim)); RES current_res = RES(Object::cast_to<Resource>(*anim)); @@ -881,8 +880,6 @@ void AnimationPlayerEditor::_update_player() { _animation_selected(0); } - //pause->set_pressed(player->is_paused()); - if (animation->get_item_count()) { String current = animation->get_item_text(animation->get_selected()); Ref<Animation> anim = player->get_animation(current); @@ -910,8 +907,6 @@ void AnimationPlayerEditor::edit(AnimationPlayer *p_player) { track_editor->show_select_node_warning(false); } else { track_editor->show_select_node_warning(true); - - //hide(); } } @@ -1110,7 +1105,6 @@ void AnimationPlayerEditor::_hide_anim_editors() { track_editor->set_animation(Ref<Animation>()); track_editor->set_root(NULL); track_editor->show_select_node_warning(true); - //editor->animation_editor_make_visible(false); } void AnimationPlayerEditor::_animation_about_to_show_menu() { @@ -1431,6 +1425,7 @@ void AnimationPlayerEditor::_prepare_onion_layers_2() { new_state["show_rulers"] = false; new_state["show_guides"] = false; new_state["show_helpers"] = false; + new_state["show_zoom_control"] = false; // TODO: Save/restore only affected entries CanvasItemEditor::get_singleton()->set_state(new_state); } @@ -1483,7 +1478,7 @@ void AnimationPlayerEditor::_prepare_onion_layers_2() { if (valid) { player->seek(pos, true); get_tree()->flush_transform_notifications(); // Needed for transforms of Spatials - values_backup.update_skeletons(); // Needed for Skeletons + values_backup.update_skeletons(); // Needed for Skeletons (2D & 3D) VS::get_singleton()->viewport_set_active(onion.captures[cidx], true); VS::get_singleton()->viewport_set_parent_viewport(root_vp, onion.captures[cidx]); @@ -1547,7 +1542,6 @@ void AnimationPlayerEditor::_pin_pressed() { void AnimationPlayerEditor::_bind_methods() { - ClassDB::bind_method(D_METHOD("_gui_input"), &AnimationPlayerEditor::_gui_input); ClassDB::bind_method(D_METHOD("_node_removed"), &AnimationPlayerEditor::_node_removed); ClassDB::bind_method(D_METHOD("_play_pressed"), &AnimationPlayerEditor::_play_pressed); ClassDB::bind_method(D_METHOD("_play_from_pressed"), &AnimationPlayerEditor::_play_from_pressed); @@ -1610,12 +1604,6 @@ AnimationPlayerEditor::AnimationPlayerEditor(EditorNode *p_editor, AnimationPlay player = NULL; - Label *l; - - /*l= memnew( Label ); - l->set_text("Animation Player:"); - add_child(l);*/ - HBoxContainer *hb = memnew(HBoxContainer); add_child(hb); @@ -1640,10 +1628,6 @@ AnimationPlayerEditor::AnimationPlayerEditor(EditorNode *p_editor, AnimationPlay play_from->set_tooltip(TTR("Play selected animation from current pos. (D)")); hb->add_child(play_from); - //pause = memnew( Button ); - //pause->set_toggle_mode(true); - //hb->add_child(pause); - frame = memnew(SpinBox); hb->add_child(frame); frame->set_custom_minimum_size(Size2(60, 0)); @@ -1669,7 +1653,6 @@ AnimationPlayerEditor::AnimationPlayerEditor(EditorNode *p_editor, AnimationPlay tool_anim = memnew(MenuButton); tool_anim->set_flat(false); - //tool_anim->set_flat(false); tool_anim->set_tooltip(TTR("Animation Tools")); tool_anim->set_text(TTR("Animation")); tool_anim->get_popup()->add_shortcut(ED_SHORTCUT("animation_player_editor/new_animation", TTR("New")), TOOL_NEW_ANIM); @@ -1700,9 +1683,6 @@ AnimationPlayerEditor::AnimationPlayerEditor(EditorNode *p_editor, AnimationPlay hb->add_child(autoplay); autoplay->set_tooltip(TTR("Autoplay on Load")); - //tool_anim->get_popup()->add_separator(); - //tool_anim->get_popup()->add_item("Edit Anim Resource",TOOL_PASTE_ANIM); - hb->add_child(memnew(VSeparator)); track_editor = memnew(AnimationTrackEditor); @@ -1752,10 +1732,8 @@ AnimationPlayerEditor::AnimationPlayerEditor(EditorNode *p_editor, AnimationPlay VBoxContainer *vb = memnew(VBoxContainer); name_dialog->add_child(vb); - l = memnew(Label); - l->set_text(TTR("Animation Name:")); - vb->add_child(l); - name_title = l; + name_title = memnew(Label(TTR("Animation Name:"))); + vb->add_child(name_title); name = memnew(LineEdit); vb->add_child(name); @@ -1774,7 +1752,6 @@ AnimationPlayerEditor::AnimationPlayerEditor(EditorNode *p_editor, AnimationPlay blend_editor.dialog->set_hide_on_ok(true); VBoxContainer *blend_vb = memnew(VBoxContainer); blend_editor.dialog->add_child(blend_vb); - //blend_editor.dialog->set_child_rect(blend_vb); blend_editor.tree = memnew(Tree); blend_editor.tree->set_columns(2); blend_vb->add_margin_child(TTR("Blend Times:"), blend_editor.tree, true); @@ -1792,8 +1769,6 @@ AnimationPlayerEditor::AnimationPlayerEditor(EditorNode *p_editor, AnimationPlay play_bw->connect("pressed", this, "_play_bw_pressed"); play_bw_from->connect("pressed", this, "_play_bw_from_pressed"); stop->connect("pressed", this, "_stop_pressed"); - //pause->connect("pressed", this,"_pause_pressed"); - //frame->connect("text_entered", this,"_seek_frame_changed"); animation->connect("item_selected", this, "_animation_selected", Vector<Variant>(), true); @@ -1897,11 +1872,6 @@ void AnimationPlayerEditorPlugin::make_visible(bool p_visible) { editor->make_bottom_panel_item_visible(anim_editor); anim_editor->set_process(true); anim_editor->ensure_visibility(); - //editor->animation_panel_make_visible(true); - } else { - - //anim_editor->hide(); - //anim_editor->set_idle_process(false); } } @@ -1910,16 +1880,7 @@ AnimationPlayerEditorPlugin::AnimationPlayerEditorPlugin(EditorNode *p_node) { editor = p_node; anim_editor = memnew(AnimationPlayerEditor(editor, this)); anim_editor->set_undo_redo(editor->get_undo_redo()); - editor->add_bottom_panel_item(TTR("Animation"), anim_editor); - /* - editor->get_viewport()->add_child(anim_editor); - anim_editor->set_anchors_and_margins_preset(Control::PRESET_WIDE); - anim_editor->set_anchor( MARGIN_TOP, Control::ANCHOR_END); - anim_editor->set_margin( MARGIN_TOP, 75 ); - anim_editor->set_anchor( MARGIN_RIGHT, Control::ANCHOR_END); - anim_editor->set_margin( MARGIN_RIGHT, 0 );*/ - anim_editor->hide(); } AnimationPlayerEditorPlugin::~AnimationPlayerEditorPlugin() { diff --git a/editor/plugins/animation_player_editor_plugin.h b/editor/plugins/animation_player_editor_plugin.h index c6ab6c5e30..dedce16bbc 100644 --- a/editor/plugins/animation_player_editor_plugin.h +++ b/editor/plugins/animation_player_editor_plugin.h @@ -97,8 +97,6 @@ class AnimationPlayerEditor : public VBoxContainer { Button *play_from; Button *play_bw; Button *play_bw_from; - - //Button *pause; Button *autoplay; MenuButton *tool_anim; @@ -229,7 +227,6 @@ class AnimationPlayerEditor : public VBoxContainer { protected: void _notification(int p_what); - void _gui_input(Ref<InputEvent> p_event); void _node_removed(Node *p_node); static void _bind_methods(); diff --git a/editor/plugins/animation_state_machine_editor.cpp b/editor/plugins/animation_state_machine_editor.cpp index f06b4b2828..e25e7ac7ed 100644 --- a/editor/plugins/animation_state_machine_editor.cpp +++ b/editor/plugins/animation_state_machine_editor.cpp @@ -1096,7 +1096,7 @@ void AnimationNodeStateMachineEditor::_name_edited(const String &p_text) { String new_name = p_text; - ERR_FAIL_COND(new_name == "" || new_name.find(".") != -1 || new_name.find("/") != -1) + ERR_FAIL_COND(new_name == "" || new_name.find(".") != -1 || new_name.find("/") != -1); if (new_name == prev_name) { return; // Nothing to do. diff --git a/editor/plugins/asset_library_editor_plugin.cpp b/editor/plugins/asset_library_editor_plugin.cpp index 0dfb53b34a..1503258ff5 100644 --- a/editor/plugins/asset_library_editor_plugin.cpp +++ b/editor/plugins/asset_library_editor_plugin.cpp @@ -35,7 +35,7 @@ #include "editor_node.h" #include "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, int p_rating, const String &p_cost) { +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) { title->set_text(p_title); asset_id = p_asset_id; @@ -44,13 +44,6 @@ void EditorAssetLibraryItem::configure(const String &p_title, int p_asset_id, co author->set_text(p_author); author_id = p_author_id; price->set_text(p_cost); - - for (int i = 0; i < 5; i++) { - if (i < p_rating) - stars[i]->set_texture(get_icon("Favorites", "EditorIcons")); - else - stars[i]->set_texture(get_icon("NonFavorite", "EditorIcons")); - } } void EditorAssetLibraryItem::set_image(int p_type, int p_index, const Ref<Texture> &p_image) { @@ -65,9 +58,10 @@ void EditorAssetLibraryItem::_notification(int p_what) { if (p_what == NOTIFICATION_ENTER_TREE) { - icon->set_normal_texture(get_icon("DefaultProjectIcon", "EditorIcons")); + icon->set_normal_texture(get_icon("ProjectIconLoading", "EditorIcons")); category->add_color_override("font_color", Color(0.5, 0.5, 0.5)); author->add_color_override("font_color", Color(0.5, 0.5, 0.5)); + price->add_color_override("font_color", Color(0.5, 0.5, 0.5)); } } @@ -100,17 +94,19 @@ EditorAssetLibraryItem::EditorAssetLibraryItem() { Ref<StyleBoxEmpty> border; border.instance(); - border->set_default_margin(MARGIN_LEFT, 5); - border->set_default_margin(MARGIN_RIGHT, 5); - border->set_default_margin(MARGIN_BOTTOM, 5); - border->set_default_margin(MARGIN_TOP, 5); + border->set_default_margin(MARGIN_LEFT, 5 * EDSCALE); + border->set_default_margin(MARGIN_RIGHT, 5 * EDSCALE); + border->set_default_margin(MARGIN_BOTTOM, 5 * EDSCALE); + border->set_default_margin(MARGIN_TOP, 5 * EDSCALE); add_style_override("panel", border); HBoxContainer *hb = memnew(HBoxContainer); + // Add some spacing to visually separate the icon from the asset details + hb->add_constant_override("separation", 15 * EDSCALE); add_child(hb); icon = memnew(TextureButton); - icon->set_custom_minimum_size(Size2(64, 64)); + icon->set_custom_minimum_size(Size2(64, 64) * EDSCALE); icon->set_default_cursor_shape(CURSOR_POINTING_HAND); icon->connect("pressed", this, "_asset_clicked"); @@ -139,18 +135,11 @@ EditorAssetLibraryItem::EditorAssetLibraryItem() { author->connect("pressed", this, "_author_clicked"); vb->add_child(author); - HBoxContainer *rating_hb = memnew(HBoxContainer); - vb->add_child(rating_hb); - - for (int i = 0; i < 5; i++) { - stars[i] = memnew(TextureRect); - rating_hb->add_child(stars[i]); - } price = memnew(Label); price->set_text(TTR("Free")); vb->add_child(price); - set_custom_minimum_size(Size2(250, 100)); + set_custom_minimum_size(Size2(250, 100) * EDSCALE); set_h_size_flags(SIZE_EXPAND_FILL); set_mouse_filter(MOUSE_FILTER_PASS); @@ -194,7 +183,6 @@ void EditorAssetLibraryItemDescription::set_image(int p_type, int p_index, const break; } } - //item->call("set_image",p_type,p_index,p_image); } break; case EditorAssetLibrary::IMAGE_QUEUE_SCREENSHOT: { @@ -207,7 +195,6 @@ void EditorAssetLibraryItemDescription::set_image(int p_type, int p_index, const break; } } - //item->call("set_image",p_type,p_index,p_image); } break; } } @@ -248,13 +235,13 @@ void EditorAssetLibraryItemDescription::_preview_click(int p_id) { } } -void EditorAssetLibraryItemDescription::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, int p_rating, const String &p_cost, int p_version, const String &p_version_string, const String &p_description, const String &p_download_url, const String &p_browse_url, const String &p_sha256_hash) { +void EditorAssetLibraryItemDescription::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, int p_version, const String &p_version_string, const String &p_description, const String &p_download_url, const String &p_browse_url, const String &p_sha256_hash) { asset_id = p_asset_id; title = p_title; download_url = p_download_url; sha256 = p_sha256_hash; - item->configure(p_title, p_asset_id, p_category, p_category_id, p_author, p_author_id, p_rating, p_cost); + item->configure(p_title, p_asset_id, p_category, p_category_id, p_author, p_author_id, p_cost); description->clear(); description->add_text(TTR("Version:") + " " + p_version_string + "\n"); description->add_text(TTR("Contents:") + " "); @@ -554,7 +541,7 @@ EditorAssetLibraryItemDownload::EditorAssetLibraryItemDownload() { hb2->add_child(retry); hb2->add_child(install); - set_custom_minimum_size(Size2(310, 0)); + set_custom_minimum_size(Size2(310, 0) * EDSCALE); download = memnew(HTTPRequest); add_child(download); @@ -666,7 +653,6 @@ void EditorAssetLibrary::_install_asset() { } const char *EditorAssetLibrary::sort_key[SORT_MAX] = { - "rating", "downloads", "name", "cost", @@ -674,10 +660,9 @@ const char *EditorAssetLibrary::sort_key[SORT_MAX] = { }; const char *EditorAssetLibrary::sort_text[SORT_MAX] = { - "Rating", "Downloads", "Name", - "Cost", + "License", // "cost" stores the SPDX license name in the Godot Asset Library "Updated" }; @@ -733,6 +718,7 @@ void EditorAssetLibrary::_image_update(bool use_cache, bool final, const PoolByt image_data = cached_data; file->close(); + memdelete(file); } } @@ -807,6 +793,7 @@ void EditorAssetLibrary::_image_request_completed(int p_status, int p_code, cons if (file) { file->store_line(new_etag); file->close(); + memdelete(file); } int len = p_data.size(); @@ -816,6 +803,7 @@ void EditorAssetLibrary::_image_request_completed(int p_status, int p_code, cons file->store_32(len); file->store_buffer(r.ptr(), len); file->close(); + memdelete(file); } break; @@ -855,6 +843,7 @@ void EditorAssetLibrary::_update_image_queue() { if (file) { headers.push_back("If-None-Match: " + file->get_line()); file->close(); + memdelete(file); } } @@ -984,7 +973,7 @@ HBoxContainer *EditorAssetLibrary::_make_pages(int p_page, int p_page_count, int to = p_page_count; hbc->add_spacer(); - hbc->add_constant_override("separation", 5); + hbc->add_constant_override("separation", 5 * EDSCALE); Button *first = memnew(Button); first->set_text(TTR("First")); @@ -1190,8 +1179,8 @@ void EditorAssetLibrary::_http_request_completed(int p_status, int p_code, const asset_items = memnew(GridContainer); asset_items->set_columns(2); - asset_items->add_constant_override("hseparation", 10); - asset_items->add_constant_override("vseparation", 10); + asset_items->add_constant_override("hseparation", 10 * EDSCALE); + asset_items->add_constant_override("vseparation", 10 * EDSCALE); library_vb->add_child(asset_items); @@ -1208,12 +1197,11 @@ void EditorAssetLibrary::_http_request_completed(int p_status, int p_code, const ERR_CONTINUE(!r.has("author_id")); ERR_CONTINUE(!r.has("category_id")); ERR_FAIL_COND(!category_map.has(r["category_id"])); - ERR_CONTINUE(!r.has("rating")); ERR_CONTINUE(!r.has("cost")); EditorAssetLibraryItem *item = memnew(EditorAssetLibraryItem); asset_items->add_child(item); - item->configure(r["title"], r["asset_id"], category_map[r["category_id"]], r["category_id"], r["author"], r["author_id"], r["rating"], r["cost"]); + item->configure(r["title"], r["asset_id"], category_map[r["category_id"]], r["category_id"], r["author"], r["author_id"], r["cost"]); item->connect("asset_selected", this, "_select_asset"); item->connect("author_selected", this, "_select_author"); item->connect("category_selected", this, "_select_category"); @@ -1234,7 +1222,6 @@ void EditorAssetLibrary::_http_request_completed(int p_status, int p_code, const ERR_FAIL_COND(!r.has("version_string")); ERR_FAIL_COND(!r.has("category_id")); ERR_FAIL_COND(!category_map.has(r["category_id"])); - ERR_FAIL_COND(!r.has("rating")); ERR_FAIL_COND(!r.has("cost")); ERR_FAIL_COND(!r.has("description")); ERR_FAIL_COND(!r.has("download_url")); @@ -1250,7 +1237,7 @@ void EditorAssetLibrary::_http_request_completed(int p_status, int p_code, const description->popup_centered_minsize(); description->connect("confirmed", this, "_install_asset"); - description->configure(r["title"], r["asset_id"], category_map[r["category_id"]], r["category_id"], r["author"], r["author_id"], r["rating"], r["cost"], r["version"], r["version_string"], r["description"], r["download_url"], r["browse_url"], r["download_hash"]); + description->configure(r["title"], r["asset_id"], category_map[r["category_id"]], r["category_id"], r["author"], r["author_id"], r["cost"], r["version"], r["version_string"], r["description"], r["download_url"], r["browse_url"], r["download_hash"]); /*item->connect("asset_selected",this,"_select_asset"); item->connect("author_selected",this,"_select_author"); item->connect("category_selected",this,"_category_selected");*/ @@ -1357,7 +1344,7 @@ EditorAssetLibrary::EditorAssetLibrary(bool p_templates_only) { HBoxContainer *search_hb = memnew(HBoxContainer); library_main->add_child(search_hb); - library_main->add_constant_override("separation", 10); + library_main->add_constant_override("separation", 10 * EDSCALE); search_hb->add_child(memnew(Label(TTR("Search:") + " "))); filter = memnew(LineEdit); @@ -1459,10 +1446,10 @@ EditorAssetLibrary::EditorAssetLibrary(bool p_templates_only) { Ref<StyleBoxEmpty> border2; border2.instance(); - border2->set_default_margin(MARGIN_LEFT, 15); - border2->set_default_margin(MARGIN_RIGHT, 35); - border2->set_default_margin(MARGIN_BOTTOM, 15); - border2->set_default_margin(MARGIN_TOP, 15); + border2->set_default_margin(MARGIN_LEFT, 15 * EDSCALE); + border2->set_default_margin(MARGIN_RIGHT, 35 * EDSCALE); + border2->set_default_margin(MARGIN_BOTTOM, 15 * EDSCALE); + border2->set_default_margin(MARGIN_TOP, 15 * EDSCALE); PanelContainer *library_vb_border = memnew(PanelContainer); library_scroll->add_child(library_vb_border); @@ -1474,15 +1461,14 @@ EditorAssetLibrary::EditorAssetLibrary(bool p_templates_only) { library_vb->set_h_size_flags(SIZE_EXPAND_FILL); library_vb_border->add_child(library_vb); - //margin_panel->set_stop_mouse(false); asset_top_page = memnew(HBoxContainer); library_vb->add_child(asset_top_page); asset_items = memnew(GridContainer); asset_items->set_columns(2); - asset_items->add_constant_override("hseparation", 10); - asset_items->add_constant_override("vseparation", 10); + asset_items->add_constant_override("hseparation", 10 * EDSCALE); + asset_items->add_constant_override("vseparation", 10 * EDSCALE); library_vb->add_child(asset_items); @@ -1496,7 +1482,7 @@ EditorAssetLibrary::EditorAssetLibrary(bool p_templates_only) { last_queue_id = 0; - library_vb->add_constant_override("separation", 20); + library_vb->add_constant_override("separation", 20 * EDSCALE); load_status = memnew(ProgressBar); load_status->set_min(0); diff --git a/editor/plugins/asset_library_editor_plugin.h b/editor/plugins/asset_library_editor_plugin.h index dd5f3c2077..81288ae831 100644 --- a/editor/plugins/asset_library_editor_plugin.h +++ b/editor/plugins/asset_library_editor_plugin.h @@ -77,7 +77,7 @@ protected: static void _bind_methods(); public: - void 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, int p_rating, const String &p_cost); + void 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); EditorAssetLibraryItem(); }; @@ -120,7 +120,7 @@ protected: static void _bind_methods(); public: - void 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, int p_rating, const String &p_cost, int p_version, const String &p_version_string, const String &p_description, const String &p_download_url, const String &p_browse_url, const String &p_sha256_hash); + void 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, int p_version, const String &p_version_string, const String &p_description, const String &p_download_url, const String &p_browse_url, const String &p_sha256_hash); void add_preview(int p_id, bool p_video, const String &p_url); String get_title() { return title; } @@ -216,7 +216,6 @@ class EditorAssetLibrary : public PanelContainer { }; enum SortOrder { - SORT_RATING, SORT_DOWNLOADS, SORT_NAME, SORT_COST, diff --git a/editor/plugins/audio_stream_editor_plugin.cpp b/editor/plugins/audio_stream_editor_plugin.cpp index 172096b1a7..0ab3d26c85 100644 --- a/editor/plugins/audio_stream_editor_plugin.cpp +++ b/editor/plugins/audio_stream_editor_plugin.cpp @@ -53,7 +53,6 @@ void AudioStreamEditor::_notification(int p_what) { if (p_what == NOTIFICATION_PROCESS) { _current = _player->get_playback_position(); _indicator->update(); - _preview->update(); } if (p_what == NOTIFICATION_VISIBILITY_CHANGED) { @@ -121,15 +120,19 @@ void AudioStreamEditor::_play() { void AudioStreamEditor::_stop() { _player->stop(); - _on_finished(); + _play_button->set_icon(get_icon("MainPlay", "EditorIcons")); + _current = 0; + _indicator->update(); + set_process(false); } void AudioStreamEditor::_on_finished() { _play_button->set_icon(get_icon("MainPlay", "EditorIcons")); - _current = 0; - _indicator->update(); - set_process(false); + if (_current == _player->get_stream()->get_length()) { + _current = 0; + _indicator->update(); + } } void AudioStreamEditor::_draw_indicator() { diff --git a/editor/plugins/canvas_item_editor_plugin.cpp b/editor/plugins/canvas_item_editor_plugin.cpp index c0f2410636..3c24fd19b6 100644 --- a/editor/plugins/canvas_item_editor_plugin.cpp +++ b/editor/plugins/canvas_item_editor_plugin.cpp @@ -731,6 +731,8 @@ Vector2 CanvasItemEditor::_position_to_anchor(const Control *p_control, Vector2 ERR_FAIL_COND_V(!p_control, Vector2()); Rect2 parent_rect = p_control->get_parent_anchorable_rect(); + ERR_FAIL_COND_V(parent_rect.size.x == 0, Vector2()); + ERR_FAIL_COND_V(parent_rect.size.y == 0, Vector2()); return (p_control->get_transform().xform(position) - parent_rect.position) / parent_rect.size; } @@ -1081,7 +1083,7 @@ bool CanvasItemEditor::_gui_input_zoom_or_pan(const Ref<InputEvent> &p_event) { if (b->is_pressed() && (b->get_button_index() == BUTTON_MIDDLE || (b->get_button_index() == BUTTON_LEFT && tool == TOOL_PAN) || - (b->get_button_index() == BUTTON_LEFT && !EditorSettings::get_singleton()->get("editors/2d/simple_spacebar_panning") && Input::get_singleton()->is_key_pressed(KEY_SPACE)))) { + (b->get_button_index() == BUTTON_LEFT && !EditorSettings::get_singleton()->get("editors/2d/simple_panning") && pan_pressed))) { // Pan the viewport panning = true; } @@ -1097,7 +1099,9 @@ bool CanvasItemEditor::_gui_input_zoom_or_pan(const Ref<InputEvent> &p_event) { Ref<InputEventKey> k = p_event; if (k.is_valid()) { - if (k->get_scancode() == KEY_SPACE && (EditorSettings::get_singleton()->get("editors/2d/simple_spacebar_panning") || drag_type != DRAG_NONE)) { + bool is_pan_key = pan_view_shortcut.is_valid() && pan_view_shortcut->is_shortcut(p_event); + + if (is_pan_key && (EditorSettings::get_singleton()->get("editors/2d/simple_panning") || drag_type != DRAG_NONE)) { if (!panning) { if (k->is_pressed() && !k->is_echo()) { //Pan the viewport @@ -1110,6 +1114,9 @@ bool CanvasItemEditor::_gui_input_zoom_or_pan(const Ref<InputEvent> &p_event) { } } } + + if (is_pan_key) + pan_pressed = k->is_pressed(); } Ref<InputEventMouseMotion> m = p_event; @@ -1387,7 +1394,7 @@ bool CanvasItemEditor::_gui_input_anchors(const Ref<InputEvent> &p_event) { // Starts anchor dragging if needed if (drag_type == DRAG_NONE) { - if (b.is_valid() && b->get_button_index() == BUTTON_LEFT && b->is_pressed() && tool == TOOL_SELECT && show_helpers) { + if (b.is_valid() && b->get_button_index() == BUTTON_LEFT && b->is_pressed() && tool == TOOL_SELECT) { List<CanvasItem *> selection = _get_edited_canvas_items(); if (selection.size() == 1) { Control *control = Object::cast_to<Control>(selection[0]); @@ -2213,7 +2220,8 @@ bool CanvasItemEditor::_gui_input_hover(const Ref<InputEvent> &p_event) { void CanvasItemEditor::_gui_input_viewport(const Ref<InputEvent> &p_event) { bool accepted = false; - if (EditorSettings::get_singleton()->get("editors/2d/simple_spacebar_panning") || !Input::get_singleton()->is_key_pressed(KEY_SPACE)) { + + if (EditorSettings::get_singleton()->get("editors/2d/simple_panning") || !pan_pressed) { if ((accepted = _gui_input_rulers_and_guides(p_event))) { //printf("Rulers and guides\n"); } else if ((accepted = editor->get_editor_plugins_over()->forward_gui_input(p_event))) { @@ -2512,20 +2520,50 @@ void CanvasItemEditor::_draw_grid() { } } -void CanvasItemEditor::_draw_control_helpers(Control *control) { +void CanvasItemEditor::_draw_control_anchors(Control *control) { Transform2D xform = transform * control->get_global_transform_with_canvas(); RID ci = viewport->get_canvas_item(); + if (tool == TOOL_SELECT && !Object::cast_to<Container>(control->get_parent())) { + + // Compute the anchors + float anchors_values[4]; + anchors_values[0] = control->get_anchor(MARGIN_LEFT); + anchors_values[1] = control->get_anchor(MARGIN_TOP); + anchors_values[2] = control->get_anchor(MARGIN_RIGHT); + anchors_values[3] = control->get_anchor(MARGIN_BOTTOM); + + Vector2 anchors_pos[4]; + for (int i = 0; i < 4; i++) { + Vector2 value = Vector2((i % 2 == 0) ? anchors_values[i] : anchors_values[(i + 1) % 4], (i % 2 == 1) ? anchors_values[i] : anchors_values[(i + 1) % 4]); + anchors_pos[i] = xform.xform(_anchor_to_position(control, value)); + } + + // Draw the anchors handles + Rect2 anchor_rects[4]; + anchor_rects[0] = Rect2(anchors_pos[0] - anchor_handle->get_size(), anchor_handle->get_size()); + anchor_rects[1] = Rect2(anchors_pos[1] - Vector2(0.0, anchor_handle->get_size().y), Point2(-anchor_handle->get_size().x, anchor_handle->get_size().y)); + anchor_rects[2] = Rect2(anchors_pos[2], -anchor_handle->get_size()); + anchor_rects[3] = Rect2(anchors_pos[3] - Vector2(anchor_handle->get_size().x, 0.0), Point2(anchor_handle->get_size().x, -anchor_handle->get_size().y)); + + for (int i = 0; i < 4; i++) { + anchor_handle->draw_rect(ci, anchor_rects[i]); + } + } +} + +void CanvasItemEditor::_draw_control_helpers(Control *control) { + Transform2D xform = transform * control->get_global_transform_with_canvas(); if (tool == TOOL_SELECT && show_helpers && !Object::cast_to<Container>(control->get_parent())) { // Draw the helpers Color color_base = Color(0.8, 0.8, 0.8, 0.5); + // Compute the anchors float anchors_values[4]; anchors_values[0] = control->get_anchor(MARGIN_LEFT); anchors_values[1] = control->get_anchor(MARGIN_TOP); anchors_values[2] = control->get_anchor(MARGIN_RIGHT); anchors_values[3] = control->get_anchor(MARGIN_BOTTOM); - // Draw the anchors Vector2 anchors[4]; Vector2 anchors_pos[4]; for (int i = 0; i < 4; i++) { @@ -2592,16 +2630,6 @@ void CanvasItemEditor::_draw_control_helpers(Control *control) { _draw_percentage_at_position(percent_val, (line_ends[(dragged_anchor + 1) % 4] + anchors_pos[dragged_anchor]) / 2, (Margin)((dragged_anchor + 1) % 4)); } - Rect2 anchor_rects[4]; - anchor_rects[0] = Rect2(anchors_pos[0] - anchor_handle->get_size(), anchor_handle->get_size()); - anchor_rects[1] = Rect2(anchors_pos[1] - Vector2(0.0, anchor_handle->get_size().y), Point2(-anchor_handle->get_size().x, anchor_handle->get_size().y)); - anchor_rects[2] = Rect2(anchors_pos[2], -anchor_handle->get_size()); - anchor_rects[3] = Rect2(anchors_pos[3] - Vector2(anchor_handle->get_size().x, 0.0), Point2(anchor_handle->get_size().x, -anchor_handle->get_size().y)); - - for (int i = 0; i < 4; i++) { - anchor_handle->draw_rect(ci, anchor_rects[i]); - } - // Draw the margin values and the node width/height when dragging control side float ratio = 0.33; Transform2D parent_transform = xform * control->get_transform().affine_inverse(); @@ -2779,6 +2807,7 @@ void CanvasItemEditor::_draw_selection() { // Draw control-related helpers Control *control = Object::cast_to<Control>(canvas_item); if (control && _is_node_movable(control)) { + _draw_control_anchors(control); _draw_control_helpers(control); } @@ -3258,6 +3287,7 @@ void CanvasItemEditor::_notification(int p_what) { if (p_what == NOTIFICATION_PHYSICS_PROCESS) { EditorNode::get_singleton()->get_scene_root()->set_snap_controls_to_pixels(GLOBAL_GET("gui/common/snap_controls_to_pixels")); + bool has_container_parents = false; int nb_control = 0; int nb_having_pivot = 0; @@ -3301,6 +3331,10 @@ void CanvasItemEditor::_notification(int p_what) { viewport->update(); } nb_control++; + + if (Object::cast_to<Container>(control->get_parent())) { + has_container_parents = true; + } } if (canvas_item->_edit_use_pivot()) { @@ -3311,24 +3345,26 @@ void CanvasItemEditor::_notification(int p_what) { // Activate / Deactivate the pivot tool pivot_button->set_disabled(nb_having_pivot == 0); - // Show / Hide the layout button + // Show / Hide the layout and anchors mode buttons if (nb_control > 0 && nb_control == selection.size()) { presets_menu->set_visible(true); - presets_menu->set_tooltip(TTR("Presets for the anchors and margins values of a Control node.")); + anchor_mode_button->set_visible(true); // Disable if the selected node is child of a container - presets_menu->set_disabled(false); - for (List<CanvasItem *>::Element *E = selection.front(); E; E = E->next()) { - Control *control = Object::cast_to<Control>(E->get()); - if (!control || Object::cast_to<Container>(control->get_parent())) { - presets_menu->set_disabled(true); - presets_menu->set_tooltip(TTR("Children of containers have their anchors and margins values overridden by their parent.")); - break; - } + if (has_container_parents) { + presets_menu->set_disabled(true); + presets_menu->set_tooltip(TTR("Children of containers have their anchors and margins values overridden by their parent.")); + anchor_mode_button->set_disabled(true); + anchor_mode_button->set_tooltip(TTR("Children of containers have their anchors and margins values overridden by their parent.")); + } else { + presets_menu->set_disabled(false); + presets_menu->set_tooltip(TTR("Presets for the anchors and margins values of a Control node.")); + anchor_mode_button->set_disabled(false); + anchor_mode_button->set_tooltip(TTR("When active, moving Control nodes changes their anchors instead of their margins.")); } - } else { presets_menu->set_visible(false); + anchor_mode_button->set_visible(false); } // Update the viewport if bones changes @@ -3436,9 +3472,10 @@ void CanvasItemEditor::_notification(int p_what) { p->add_icon_item(get_icon("ControlHcenterWide", "EditorIcons"), "HCenter Wide ", ANCHORS_AND_MARGINS_PRESET_HCENTER_WIDE); p->add_separator(); p->add_icon_item(get_icon("ControlAlignWide", "EditorIcons"), "Full Rect", ANCHORS_AND_MARGINS_PRESET_WIDE); + p->add_icon_item(get_icon("Anchor", "EditorIcons"), "Keep Ratio", ANCHORS_AND_MARGINS_PRESET_KEEP_RATIO); p->add_separator(); - p->add_submenu_item(TTR("Anchors Only"), "Anchors"); - p->set_item_icon(20, get_icon("Anchor", "EditorIcons")); + p->add_submenu_item(TTR("Anchors only"), "Anchors"); + p->set_item_icon(21, get_icon("Anchor", "EditorIcons")); anchors_popup->clear(); anchors_popup->add_icon_item(get_icon("ControlAlignTopLeft", "EditorIcons"), "Top Left", ANCHORS_PRESET_TOP_LEFT); @@ -3460,9 +3497,32 @@ void CanvasItemEditor::_notification(int p_what) { anchors_popup->add_icon_item(get_icon("ControlHcenterWide", "EditorIcons"), "HCenter Wide ", ANCHORS_PRESET_HCENTER_WIDE); anchors_popup->add_separator(); anchors_popup->add_icon_item(get_icon("ControlAlignWide", "EditorIcons"), "Full Rect", ANCHORS_PRESET_WIDE); + + anchor_mode_button->set_icon(get_icon("Anchor", "EditorIcons")); } } +void CanvasItemEditor::_selection_changed() { + // Update the anchors_mode + int nbValidControls = 0; + int nbAnchorsMode = 0; + List<Node *> selection = editor_selection->get_selected_node_list(); + for (List<Node *>::Element *E = selection.front(); E; E = E->next()) { + Control *control = Object::cast_to<Control>(E->get()); + if (!control) + continue; + if (Object::cast_to<Container>(control->get_parent())) + continue; + + nbValidControls++; + if (control->has_meta("_edit_use_anchors_") && control->get_meta("_edit_use_anchors_")) { + nbAnchorsMode++; + } + } + anchors_mode = (nbValidControls == nbAnchorsMode); + anchor_mode_button->set_pressed(anchors_mode); +} + void CanvasItemEditor::edit(CanvasItem *p_canvas_item) { Array selection = editor_selection->get_selected_nodes(); @@ -3680,6 +3740,38 @@ void CanvasItemEditor::_set_anchors_and_margins_preset(Control::LayoutPreset p_p } undo_redo->commit_action(); + + anchors_mode = false; + anchor_mode_button->set_pressed(anchors_mode); +} + +void CanvasItemEditor::_set_anchors_and_margins_to_keep_ratio() { + List<Node *> selection = editor_selection->get_selected_node_list(); + + undo_redo->create_action(TTR("Change Anchors and Margins")); + + for (List<Node *>::Element *E = selection.front(); E; E = E->next()) { + + Control *control = Object::cast_to<Control>(E->get()); + if (control) { + Point2 top_left_anchor = _position_to_anchor(control, Point2()); + Point2 bottom_right_anchor = _position_to_anchor(control, control->get_size()); + undo_redo->add_do_method(control, "set_anchor", MARGIN_LEFT, top_left_anchor.x, false, true); + undo_redo->add_do_method(control, "set_anchor", MARGIN_RIGHT, bottom_right_anchor.x, false, true); + undo_redo->add_do_method(control, "set_anchor", MARGIN_TOP, top_left_anchor.y, false, true); + undo_redo->add_do_method(control, "set_anchor", MARGIN_BOTTOM, bottom_right_anchor.y, false, true); + undo_redo->add_do_method(control, "set_meta", "_edit_use_anchors_", true); + + bool use_anchors = control->has_meta("_edit_use_anchors_") && control->get_meta("_edit_use_anchors_"); + undo_redo->add_undo_method(control, "_edit_set_state", control->_edit_get_state()); + undo_redo->add_undo_method(control, "set_meta", "_edit_use_anchors_", use_anchors); + + anchors_mode = true; + anchor_mode_button->set_pressed(anchors_mode); + } + } + + undo_redo->commit_action(); } void CanvasItemEditor::_set_anchors_preset(Control::LayoutPreset p_preset) { @@ -3811,6 +3903,20 @@ void CanvasItemEditor::_insert_animation_keys(bool p_location, bool p_rotation, } } +void CanvasItemEditor::_button_toggle_anchor_mode(bool p_status) { + List<CanvasItem *> selection = _get_edited_canvas_items(false, false); + for (List<CanvasItem *>::Element *E = selection.front(); E; E = E->next()) { + Control *control = Object::cast_to<Control>(E->get()); + if (!control || Object::cast_to<Container>(control->get_parent())) + continue; + + control->set_meta("_edit_use_anchors_", p_status); + } + + anchors_mode = p_status; + viewport->update(); +} + void CanvasItemEditor::_popup_callback(int p_op) { last_option = MenuOption(p_op); @@ -3911,6 +4017,7 @@ void CanvasItemEditor::_popup_callback(int p_op) { show_rulers = !show_rulers; int idx = view_menu->get_popup()->get_item_index(SHOW_RULERS); view_menu->get_popup()->set_item_checked(idx, show_rulers); + _update_scrollbars(); viewport->update(); } break; case SHOW_GUIDES: { @@ -4047,6 +4154,9 @@ void CanvasItemEditor::_popup_callback(int p_op) { case ANCHORS_AND_MARGINS_PRESET_WIDE: { _set_anchors_and_margins_preset(Control::PRESET_WIDE); } break; + case ANCHORS_AND_MARGINS_PRESET_KEEP_RATIO: { + _set_anchors_and_margins_to_keep_ratio(); + } break; case ANCHORS_PRESET_TOP_LEFT: { _set_anchors_preset(PRESET_TOP_LEFT); @@ -4220,6 +4330,7 @@ void CanvasItemEditor::_popup_callback(int p_op) { Map<Node *, Object *> &selection = editor_selection->get_selection(); + undo_redo->create_action(TTR("Create Custom Bone(s) from Node(s)")); for (Map<Node *, Object *>::Element *E = selection.front(); E; E = E->next()) { Node2D *n2d = Object::cast_to<Node2D>(E->key()); @@ -4229,19 +4340,24 @@ void CanvasItemEditor::_popup_callback(int p_op) { continue; if (!n2d->get_parent_item()) continue; + if (n2d->has_meta("_edit_bone_") && (bool)n2d->get_meta("_edit_bone_") == true) + continue; - n2d->set_meta("_edit_bone_", true); - if (!skeleton_show_bones) - skeleton_menu->get_popup()->activate_item(skeleton_menu->get_popup()->get_item_index(SKELETON_SHOW_BONES)); + undo_redo->add_do_method(n2d, "set_meta", "_edit_bone_", true); + undo_redo->add_undo_method(n2d, "remove_meta", "_edit_bone_"); } - _queue_update_bone_list(); - viewport->update(); + undo_redo->add_do_method(this, "_queue_update_bone_list"); + undo_redo->add_undo_method(this, "_queue_update_bone_list"); + undo_redo->add_do_method(viewport, "update"); + undo_redo->add_undo_method(viewport, "update"); + undo_redo->commit_action(); } break; case SKELETON_CLEAR_BONES: { Map<Node *, Object *> &selection = editor_selection->get_selection(); + undo_redo->create_action(TTR("Clear Bones")); for (Map<Node *, Object *>::Element *E = selection.front(); E; E = E->next()) { Node2D *n2d = Object::cast_to<Node2D>(E->key()); @@ -4249,40 +4365,47 @@ void CanvasItemEditor::_popup_callback(int p_op) { continue; if (!n2d->is_visible_in_tree()) continue; + if (!n2d->has_meta("_edit_bone_")) + continue; - n2d->set_meta("_edit_bone_", Variant()); - if (!skeleton_show_bones) - skeleton_menu->get_popup()->activate_item(skeleton_menu->get_popup()->get_item_index(SKELETON_SHOW_BONES)); + undo_redo->add_do_method(n2d, "remove_meta", "_edit_bone_"); + undo_redo->add_undo_method(n2d, "set_meta", "_edit_bone_", n2d->get_meta("_edit_bone_")); } - _queue_update_bone_list(); - viewport->update(); + undo_redo->add_do_method(this, "_queue_update_bone_list"); + undo_redo->add_undo_method(this, "_queue_update_bone_list"); + undo_redo->add_do_method(viewport, "update"); + undo_redo->add_undo_method(viewport, "update"); + undo_redo->commit_action(); } break; case SKELETON_SET_IK_CHAIN: { List<Node *> selection = editor_selection->get_selected_node_list(); + undo_redo->create_action(TTR("Make IK Chain")); for (List<Node *>::Element *E = selection.front(); E; E = E->next()) { CanvasItem *canvas_item = Object::cast_to<CanvasItem>(E->get()); if (!canvas_item || !canvas_item->is_visible_in_tree()) continue; - if (canvas_item->get_viewport() != EditorNode::get_singleton()->get_scene_root()) continue; + if (canvas_item->has_meta("_edit_ik_") && (bool)canvas_item->get_meta("_edit_ik_") == true) + continue; - canvas_item->set_meta("_edit_ik_", true); - if (!skeleton_show_bones) - skeleton_menu->get_popup()->activate_item(skeleton_menu->get_popup()->get_item_index(SKELETON_SHOW_BONES)); + undo_redo->add_do_method(canvas_item, "set_meta", "_edit_ik_", true); + undo_redo->add_undo_method(canvas_item, "remove_meta", "_edit_ik_"); } - - viewport->update(); + undo_redo->add_do_method(viewport, "update"); + undo_redo->add_undo_method(viewport, "update"); + undo_redo->commit_action(); } break; case SKELETON_CLEAR_IK_CHAIN: { Map<Node *, Object *> &selection = editor_selection->get_selection(); + undo_redo->create_action(TTR("Clear IK Chain")); for (Map<Node *, Object *>::Element *E = selection.front(); E; E = E->next()) { CanvasItem *n2d = Object::cast_to<CanvasItem>(E->key()); @@ -4290,12 +4413,15 @@ void CanvasItemEditor::_popup_callback(int p_op) { continue; if (!n2d->is_visible_in_tree()) continue; + if (!n2d->has_meta("_edit_ik_")) + continue; - n2d->set_meta("_edit_ik_", Variant()); - if (!skeleton_show_bones) - skeleton_menu->get_popup()->activate_item(skeleton_menu->get_popup()->get_item_index(SKELETON_SHOW_BONES)); + undo_redo->add_do_method(n2d, "remove_meta", "_edit_ik_"); + undo_redo->add_undo_method(n2d, "set_meta", "_edit_ik_", n2d->get_meta("_edit_ik_")); } - viewport->update(); + undo_redo->add_do_method(viewport, "update"); + undo_redo->add_undo_method(viewport, "update"); + undo_redo->commit_action(); } break; } @@ -4366,6 +4492,7 @@ void CanvasItemEditor::_bind_methods() { 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_anchor_mode", &CanvasItemEditor::_button_toggle_anchor_mode); ClassDB::bind_method("_update_scroll", &CanvasItemEditor::_update_scroll); ClassDB::bind_method("_update_scrollbars", &CanvasItemEditor::_update_scrollbars); ClassDB::bind_method("_popup_callback", &CanvasItemEditor::_popup_callback); @@ -4376,8 +4503,10 @@ void CanvasItemEditor::_bind_methods() { ClassDB::bind_method("_draw_viewport", &CanvasItemEditor::_draw_viewport); ClassDB::bind_method("_gui_input_viewport", &CanvasItemEditor::_gui_input_viewport); ClassDB::bind_method("_snap_changed", &CanvasItemEditor::_snap_changed); + ClassDB::bind_method("_queue_update_bone_list", &CanvasItemEditor::_update_bone_list); ClassDB::bind_method("_update_bone_list", &CanvasItemEditor::_update_bone_list); ClassDB::bind_method("_tree_changed", &CanvasItemEditor::_tree_changed); + ClassDB::bind_method("_selection_changed", &CanvasItemEditor::_selection_changed); ClassDB::bind_method("_popup_warning_depop", &CanvasItemEditor::_popup_warning_depop); ClassDB::bind_method(D_METHOD("_selection_result_pressed"), &CanvasItemEditor::_selection_result_pressed); ClassDB::bind_method(D_METHOD("_selection_menu_hide"), &CanvasItemEditor::_selection_menu_hide); @@ -4411,6 +4540,7 @@ Dictionary CanvasItemEditor::get_state() const { state["show_rulers"] = show_rulers; state["show_guides"] = show_guides; state["show_helpers"] = show_helpers; + state["show_zoom_control"] = zoom_hb->is_visible(); state["show_edit_locks"] = show_edit_locks; state["snap_rotation"] = snap_rotation; state["snap_relative"] = snap_relative; @@ -4421,6 +4551,7 @@ Dictionary CanvasItemEditor::get_state() const { void CanvasItemEditor::set_state(const Dictionary &p_state) { + bool update_scrollbars = false; Dictionary state = p_state; if (state.has("zoom")) { zoom = p_state["zoom"]; @@ -4429,7 +4560,7 @@ void CanvasItemEditor::set_state(const Dictionary &p_state) { if (state.has("ofs")) { view_offset = p_state["ofs"]; previous_update_view_offset = view_offset; - _update_scrollbars(); + update_scrollbars = true; } if (state.has("grid_offset")) { @@ -4517,6 +4648,7 @@ void CanvasItemEditor::set_state(const Dictionary &p_state) { show_rulers = state["show_rulers"]; int idx = view_menu->get_popup()->get_item_index(SHOW_RULERS); view_menu->get_popup()->set_item_checked(idx, show_rulers); + update_scrollbars = true; } if (state.has("show_guides")) { @@ -4537,6 +4669,11 @@ void CanvasItemEditor::set_state(const Dictionary &p_state) { view_menu->get_popup()->set_item_checked(idx, show_edit_locks); } + if (state.has("show_zoom_control")) { + // This one is not user-controllable, but instrumentable + zoom_hb->set_visible(state["show_zoom_control"]); + } + if (state.has("snap_rotation")) { snap_rotation = state["snap_rotation"]; int idx = snap_config_menu->get_popup()->get_item_index(SNAP_USE_ROTATION); @@ -4561,6 +4698,9 @@ void CanvasItemEditor::set_state(const Dictionary &p_state) { skeleton_menu->get_popup()->set_item_checked(idx, skeleton_show_bones); } + if (update_scrollbars) { + _update_scrollbars(); + } viewport->update(); } @@ -4636,6 +4776,8 @@ CanvasItemEditor::CanvasItemEditor(EditorNode *p_editor) { snap_relative = false; snap_pixel = false; + anchors_mode = false; + skeleton_show_bones = true; drag_type = DRAG_NONE; @@ -4644,6 +4786,7 @@ CanvasItemEditor::CanvasItemEditor(EditorNode *p_editor) { dragged_guide_pos = Point2(); dragged_guide_index = -1; panning = false; + pan_pressed = false; bone_last_frame = 0; @@ -4654,6 +4797,7 @@ CanvasItemEditor::CanvasItemEditor(EditorNode *p_editor) { editor_selection = p_editor->get_editor_selection(); editor_selection->add_editor_plugin(this); editor_selection->connect("selection_changed", this, "update"); + editor_selection->connect("selection_changed", this, "_selection_changed"); hb = memnew(HBoxContainer); add_child(hb); @@ -4913,6 +5057,12 @@ CanvasItemEditor::CanvasItemEditor(EditorNode *p_editor) { anchors_popup->set_name("Anchors"); anchors_popup->connect("id_pressed", this, "_popup_callback"); + anchor_mode_button = memnew(ToolButton); + hb->add_child(anchor_mode_button); + anchor_mode_button->set_toggle_mode(true); + anchor_mode_button->hide(); + anchor_mode_button->connect("toggled", this, "_button_toggle_anchor_mode"); + animation_hb = memnew(HBoxContainer); hb->add_child(animation_hb); animation_hb->add_child(memnew(VSeparator)); @@ -4986,6 +5136,7 @@ CanvasItemEditor::CanvasItemEditor(EditorNode *p_editor) { multiply_grid_step_shortcut = ED_SHORTCUT("canvas_item_editor/multiply_grid_step", TTR("Multiply grid step by 2"), KEY_KP_MULTIPLY); divide_grid_step_shortcut = ED_SHORTCUT("canvas_item_editor/divide_grid_step", TTR("Divide grid step by 2"), KEY_KP_DIVIDE); + pan_view_shortcut = ED_SHORTCUT("canvas_item_editor/pan_view", TTR("Pan View"), KEY_SPACE); skeleton_menu->get_popup()->set_item_checked(skeleton_menu->get_popup()->get_item_index(SKELETON_SHOW_BONES), true); singleton = this; diff --git a/editor/plugins/canvas_item_editor_plugin.h b/editor/plugins/canvas_item_editor_plugin.h index 14ea81f302..ff221eb758 100644 --- a/editor/plugins/canvas_item_editor_plugin.h +++ b/editor/plugins/canvas_item_editor_plugin.h @@ -129,6 +129,7 @@ private: ANCHORS_AND_MARGINS_PRESET_VCENTER_WIDE, ANCHORS_AND_MARGINS_PRESET_HCENTER_WIDE, ANCHORS_AND_MARGINS_PRESET_WIDE, + ANCHORS_AND_MARGINS_PRESET_KEEP_RATIO, ANCHORS_PRESET_TOP_LEFT, ANCHORS_PRESET_TOP_RIGHT, ANCHORS_PRESET_BOTTOM_LEFT, @@ -240,6 +241,8 @@ private: Point2 view_offset; Point2 previous_update_view_offset; + bool anchors_mode; + Point2 grid_offset; Point2 grid_step; int grid_step_multiplier; @@ -262,6 +265,7 @@ private: bool key_rot; bool key_scale; bool panning; + bool pan_pressed; MenuOption last_option; @@ -347,6 +351,8 @@ private: PopupMenu *anchors_and_margins_popup; PopupMenu *anchors_popup; + ToolButton *anchor_mode_button; + Button *key_loc_button; Button *key_rot_button; Button *key_scale_button; @@ -378,6 +384,7 @@ private: Ref<ShortCut> set_pivot_shortcut; Ref<ShortCut> multiply_grid_step_shortcut; Ref<ShortCut> divide_grid_step_shortcut; + Ref<ShortCut> pan_view_shortcut; bool _is_node_locked(const Node *p_node); bool _is_node_movable(const Node *p_node, bool p_popup_warning = false); @@ -438,6 +445,7 @@ private: void _draw_guides(); void _draw_focus(); void _draw_grid(); + void _draw_control_anchors(Control *control); void _draw_control_helpers(Control *control); void _draw_selection(); void _draw_axis(); @@ -462,6 +470,8 @@ private: void _gui_input_viewport(const Ref<InputEvent> &p_event); + void _selection_changed(); + void _focus_selection(int p_op); void _solve_IK(Node2D *leaf_node, Point2 target_position); @@ -473,6 +483,9 @@ private: void _set_anchors_preset(Control::LayoutPreset p_preset); void _set_margins_preset(Control::LayoutPreset p_preset); void _set_anchors_and_margins_preset(Control::LayoutPreset p_preset); + void _set_anchors_and_margins_to_keep_ratio(); + + void _button_toggle_anchor_mode(bool p_status); HBoxContainer *zoom_hb; void _zoom_on_position(float p_zoom, Point2 p_position = Point2()); @@ -575,6 +588,8 @@ public: void focus_selection(); + bool is_anchors_mode_enabled() { return anchors_mode; }; + CanvasItemEditor(EditorNode *p_editor); }; diff --git a/editor/plugins/curve_editor_plugin.cpp b/editor/plugins/curve_editor_plugin.cpp index 55feb40c2c..3b1d728b8b 100644 --- a/editor/plugins/curve_editor_plugin.cpp +++ b/editor/plugins/curve_editor_plugin.cpp @@ -593,7 +593,8 @@ struct CanvasItemPlotCurve { color2(p_color2) {} void operator()(Vector2 pos0, Vector2 pos1, bool in_definition) { - ci.draw_line(pos0, pos1, in_definition ? color1 : color2); + // FIXME: Using a line width greater than 1 breaks curve rendering + ci.draw_line(pos0, pos1, in_definition ? color1 : color2, 1, true); } }; @@ -616,8 +617,8 @@ void CurveEditor::_draw() { Vector2 min_edge = get_world_pos(Vector2(0, view_size.y)); Vector2 max_edge = get_world_pos(Vector2(view_size.x, 0)); - const Color grid_color0 = Color(1.0, 1.0, 1.0, 0.15); - const Color grid_color1 = Color(1.0, 1.0, 1.0, 0.07); + const Color grid_color0 = get_color("mono_color", "Editor") * Color(1, 1, 1, 0.15); + const Color grid_color1 = get_color("mono_color", "Editor") * Color(1, 1, 1, 0.07); draw_line(Vector2(min_edge.x, curve.get_min_value()), Vector2(max_edge.x, curve.get_min_value()), grid_color0); draw_line(Vector2(max_edge.x, curve.get_max_value()), Vector2(min_edge.x, curve.get_max_value()), grid_color0); draw_line(Vector2(0, min_edge.y), Vector2(0, max_edge.y), grid_color0); @@ -674,13 +675,13 @@ void CurveEditor::_draw() { if (i != 0) { Vector2 control_pos = get_tangent_view_pos(i, TANGENT_LEFT); - draw_line(get_view_pos(pos), control_pos, tangent_color); + draw_line(get_view_pos(pos), control_pos, tangent_color, Math::round(EDSCALE), true); draw_rect(Rect2(control_pos, Vector2(1, 1)).grow(2), tangent_color); } if (i != curve.get_point_count() - 1) { Vector2 control_pos = get_tangent_view_pos(i, TANGENT_RIGHT); - draw_line(get_view_pos(pos), control_pos, tangent_color); + draw_line(get_view_pos(pos), control_pos, tangent_color, Math::round(EDSCALE), true); draw_rect(Rect2(control_pos, Vector2(1, 1)).grow(2), tangent_color); } } @@ -689,8 +690,8 @@ void CurveEditor::_draw() { draw_set_transform_matrix(_world_to_view); - const Color line_color = get_color("highlight_color", "Editor"); - const Color edge_line_color = get_color("font_color", "Editor"); + const Color line_color = get_color("font_color", "Editor"); + const Color edge_line_color = get_color("highlight_color", "Editor"); CanvasItemPlotCurve plot_func(*this, line_color, edge_line_color); plot_curve_accurate(curve, 4.f / view_size.x, plot_func); @@ -736,10 +737,10 @@ void CurveEditor::stroke_rect(Rect2 rect, Color color) { Vector2 c(rect.position.x, rect.position.y + rect.size.y); Vector2 d(rect.position + rect.size); - draw_line(a, b, color); - draw_line(b, d, color); - draw_line(d, c, color); - draw_line(c, a, color); + draw_line(a, b, color, Math::round(EDSCALE)); + draw_line(b, d, color, Math::round(EDSCALE)); + draw_line(d, c, color, Math::round(EDSCALE)); + draw_line(c, a, color, Math::round(EDSCALE)); } void CurveEditor::_bind_methods() { diff --git a/editor/plugins/editor_preview_plugins.cpp b/editor/plugins/editor_preview_plugins.cpp index 58d7968723..285823d95a 100644 --- a/editor/plugins/editor_preview_plugins.cpp +++ b/editor/plugins/editor_preview_plugins.cpp @@ -78,7 +78,7 @@ bool EditorTexturePreviewPlugin::handles(const String &p_type) const { return ClassDB::is_parent_class(p_type, "Texture"); } -bool EditorTexturePreviewPlugin::should_generate_small_preview() const { +bool EditorTexturePreviewPlugin::generate_small_preview_automatically() const { return true; } @@ -186,7 +186,7 @@ Ref<Texture> EditorImagePreviewPlugin::generate(const RES &p_from, const Size2 p EditorImagePreviewPlugin::EditorImagePreviewPlugin() { } -bool EditorImagePreviewPlugin::should_generate_small_preview() const { +bool EditorImagePreviewPlugin::generate_small_preview_automatically() const { return true; } //////////////////////////////////////////////////////////////////////////// @@ -250,7 +250,7 @@ Ref<Texture> EditorBitmapPreviewPlugin::generate(const RES &p_from, const Size2 return ptex; } -bool EditorBitmapPreviewPlugin::should_generate_small_preview() const { +bool EditorBitmapPreviewPlugin::generate_small_preview_automatically() const { return true; } @@ -317,7 +317,7 @@ bool EditorMaterialPreviewPlugin::handles(const String &p_type) const { return ClassDB::is_parent_class(p_type, "Material"); //any material } -bool EditorMaterialPreviewPlugin::should_generate_small_preview() const { +bool EditorMaterialPreviewPlugin::generate_small_preview_automatically() const { return true; } @@ -643,7 +643,7 @@ Ref<Texture> EditorAudioStreamPreviewPlugin::generate(const RES &p_from, const S float max = -1000; float min = 1000; int from = uint64_t(i) * frame_length / w; - int to = uint64_t(i + 1) * frame_length / w; + int to = (uint64_t(i) + 1) * frame_length / w; to = MIN(to, frame_length); from = MIN(from, frame_length - 1); if (to == from) { diff --git a/editor/plugins/editor_preview_plugins.h b/editor/plugins/editor_preview_plugins.h index ed2c003a0a..16b1f3082b 100644 --- a/editor/plugins/editor_preview_plugins.h +++ b/editor/plugins/editor_preview_plugins.h @@ -39,7 +39,7 @@ class EditorTexturePreviewPlugin : public EditorResourcePreviewGenerator { GDCLASS(EditorTexturePreviewPlugin, EditorResourcePreviewGenerator) public: virtual bool handles(const String &p_type) const; - virtual bool should_generate_small_preview() const; + virtual bool generate_small_preview_automatically() const; virtual Ref<Texture> generate(const RES &p_from, const Size2 p_size) const; EditorTexturePreviewPlugin(); @@ -49,7 +49,7 @@ class EditorImagePreviewPlugin : public EditorResourcePreviewGenerator { GDCLASS(EditorImagePreviewPlugin, EditorResourcePreviewGenerator) public: virtual bool handles(const String &p_type) const; - virtual bool should_generate_small_preview() const; + virtual bool generate_small_preview_automatically() const; virtual Ref<Texture> generate(const RES &p_from, const Size2 p_size) const; EditorImagePreviewPlugin(); @@ -59,7 +59,7 @@ class EditorBitmapPreviewPlugin : public EditorResourcePreviewGenerator { GDCLASS(EditorBitmapPreviewPlugin, EditorResourcePreviewGenerator) public: virtual bool handles(const String &p_type) const; - virtual bool should_generate_small_preview() const; + virtual bool generate_small_preview_automatically() const; virtual Ref<Texture> generate(const RES &p_from, const Size2 p_size) const; EditorBitmapPreviewPlugin(); @@ -98,7 +98,7 @@ protected: public: virtual bool handles(const String &p_type) const; - virtual bool should_generate_small_preview() const; + virtual bool generate_small_preview_automatically() const; virtual Ref<Texture> generate(const RES &p_from, const Size2 p_size) const; EditorMaterialPreviewPlugin(); diff --git a/editor/plugins/mesh_library_editor_plugin.cpp b/editor/plugins/mesh_library_editor_plugin.cpp index 18586b2fe5..e582f6ded2 100644 --- a/editor/plugins/mesh_library_editor_plugin.cpp +++ b/editor/plugins/mesh_library_editor_plugin.cpp @@ -71,6 +71,8 @@ void MeshLibraryEditor::_import_scene(Node *p_scene, Ref<MeshLibrary> p_library, if (!p_merge) p_library->clear(); + Map<int, MeshInstance *> mesh_instances; + for (int i = 0; i < p_scene->get_child_count(); i++) { Node *child = p_scene->get_child(i); @@ -91,6 +93,15 @@ void MeshLibraryEditor::_import_scene(Node *p_scene, Ref<MeshLibrary> p_library, if (mesh.is_null()) continue; + mesh = mesh->duplicate(); + for (int j = 0; j < mesh->get_surface_count(); ++j) { + Ref<Material> mat = mi->get_surface_material(j); + + if (mat.is_valid()) { + mesh->surface_set_material(j, mat); + } + } + int id = p_library->find_item_by_name(mi->get_name()); if (id < 0) { @@ -100,6 +111,7 @@ void MeshLibraryEditor::_import_scene(Node *p_scene, Ref<MeshLibrary> p_library, } p_library->set_item_mesh(id, mesh); + mesh_instances[id] = mi; Vector<MeshLibrary::ShapeData> collisions; @@ -159,14 +171,26 @@ void MeshLibraryEditor::_import_scene(Node *p_scene, Ref<MeshLibrary> p_library, if (1) { Vector<Ref<Mesh> > meshes; + Vector<Transform> transforms; Vector<int> ids = p_library->get_item_list(); for (int i = 0; i < ids.size(); i++) { - meshes.push_back(p_library->get_item_mesh(ids[i])); + + if (mesh_instances.find(ids[i])) { + + meshes.push_back(p_library->get_item_mesh(ids[i])); + transforms.push_back(mesh_instances[ids[i]]->get_transform()); + } } - Vector<Ref<Texture> > textures = EditorInterface::get_singleton()->make_mesh_previews(meshes, EditorSettings::get_singleton()->get("editors/grid_map/preview_size")); + Vector<Ref<Texture> > textures = EditorInterface::get_singleton()->make_mesh_previews(meshes, &transforms, EditorSettings::get_singleton()->get("editors/grid_map/preview_size")); + int j = 0; for (int i = 0; i < ids.size(); i++) { - p_library->set_item_preview(ids[i], textures[i]); + + if (mesh_instances.find(ids[i])) { + + p_library->set_item_preview(ids[i], textures[j]); + j++; + } } } } diff --git a/editor/plugins/multimesh_editor_plugin.cpp b/editor/plugins/multimesh_editor_plugin.cpp index fc0a425bfc..cae705a697 100644 --- a/editor/plugins/multimesh_editor_plugin.cpp +++ b/editor/plugins/multimesh_editor_plugin.cpp @@ -197,7 +197,7 @@ void MultiMeshEditor::_populate() { float areapos = Math::random(0.0f, area_accum); Map<float, int>::Element *E = triangle_area_map.find_closest(areapos); - ERR_FAIL_COND(!E) + ERR_FAIL_COND(!E); int index = E->get(); ERR_FAIL_INDEX(index, facecount); diff --git a/editor/plugins/particles_2d_editor_plugin.cpp b/editor/plugins/particles_2d_editor_plugin.cpp index 50bdf4512b..6fabdc93c6 100644 --- a/editor/plugins/particles_2d_editor_plugin.cpp +++ b/editor/plugins/particles_2d_editor_plugin.cpp @@ -93,7 +93,13 @@ void Particles2DEditorPlugin::_menu_callback(int p_idx) { cpu_particles->set_pause_mode(particles->get_pause_mode()); cpu_particles->set_z_index(particles->get_z_index()); - EditorNode::get_singleton()->get_scene_tree_dock()->replace_node(particles, cpu_particles, false); + UndoRedo *ur = EditorNode::get_singleton()->get_undo_redo(); + ur->create_action(TTR("Convert to CPUParticles")); + ur->add_do_method(EditorNode::get_singleton()->get_scene_tree_dock(), "replace_node", particles, cpu_particles, true, false); + ur->add_do_reference(particles); + ur->add_undo_method(EditorNode::get_singleton()->get_scene_tree_dock(), "replace_node", cpu_particles, particles, false, false); + ur->add_undo_reference(this); + ur->commit_action(); } break; } diff --git a/editor/plugins/particles_editor_plugin.cpp b/editor/plugins/particles_editor_plugin.cpp index 09180edf2a..3f4f66a26d 100644 --- a/editor/plugins/particles_editor_plugin.cpp +++ b/editor/plugins/particles_editor_plugin.cpp @@ -67,7 +67,7 @@ bool ParticlesEditorBase::_generate(PoolVector<Vector3> &points, PoolVector<Vect float areapos = Math::random(0.0f, area_accum); Map<float, int>::Element *E = triangle_area_map.find_closest(areapos); - ERR_FAIL_COND_V(!E, false) + ERR_FAIL_COND_V(!E, false); int index = E->get(); ERR_FAIL_INDEX_V(index, geometry.size(), false); @@ -312,7 +312,13 @@ void ParticlesEditor::_menu_option(int p_option) { cpu_particles->set_visible(node->is_visible()); cpu_particles->set_pause_mode(node->get_pause_mode()); - EditorNode::get_singleton()->get_scene_tree_dock()->replace_node(node, cpu_particles, false); + UndoRedo *ur = EditorNode::get_singleton()->get_undo_redo(); + ur->create_action(TTR("Convert to CPUParticles")); + ur->add_do_method(EditorNode::get_singleton()->get_scene_tree_dock(), "replace_node", node, cpu_particles, true, false); + ur->add_do_reference(node); + ur->add_undo_method(EditorNode::get_singleton()->get_scene_tree_dock(), "replace_node", cpu_particles, node, false, false); + ur->add_undo_reference(this); + ur->commit_action(); } break; } diff --git a/editor/plugins/script_editor_plugin.cpp b/editor/plugins/script_editor_plugin.cpp index 828abef9a9..b4719b2e6d 100644 --- a/editor/plugins/script_editor_plugin.cpp +++ b/editor/plugins/script_editor_plugin.cpp @@ -388,6 +388,14 @@ void ScriptEditor::_save_history() { void ScriptEditor::_go_to_tab(int p_idx) { + ScriptEditorBase *current = _get_current_editor(); + if (current) { + if (current->is_unsaved()) { + + current->apply_code(); + } + } + Control *c = Object::cast_to<Control>(tab_container->get_child(p_idx)); if (!c) return; @@ -429,6 +437,8 @@ void ScriptEditor::_go_to_tab(int p_idx) { if (script != NULL) { notify_script_changed(script); } + + Object::cast_to<ScriptEditorBase>(c)->validate(); } if (Object::cast_to<EditorHelp>(c)) { @@ -715,6 +725,8 @@ void ScriptEditor::_resave_scripts(const String &p_str) { se->trim_trailing_whitespace(); } + se->insert_final_newline(); + if (convert_indent_on_save) { if (use_space_indentation) { se->convert_indent_to_spaces(); @@ -1070,6 +1082,8 @@ void ScriptEditor::_menu_option(int p_option) { if (trim_trailing_whitespace_on_save) current->trim_trailing_whitespace(); + current->insert_final_newline(); + if (convert_indent_on_save) { if (use_space_indentation) { current->convert_indent_to_spaces(); @@ -1089,7 +1103,10 @@ void ScriptEditor::_menu_option(int p_option) { } break; case FILE_SAVE_AS: { - current->trim_trailing_whitespace(); + if (trim_trailing_whitespace_on_save) + current->trim_trailing_whitespace(); + + current->insert_final_newline(); if (convert_indent_on_save) { if (use_space_indentation) { @@ -1232,7 +1249,7 @@ void ScriptEditor::_menu_option(int p_option) { if (p_option >= WINDOW_SELECT_BASE) { tab_container->set_current_tab(p_option - WINDOW_SELECT_BASE); - script_list->select(p_option - WINDOW_SELECT_BASE); + _update_script_names(); } } } @@ -1296,23 +1313,29 @@ void ScriptEditor::_theme_option(int p_option) { EditorSettings::get_singleton()->load_text_editor_theme(); } break; case THEME_SAVE: { - if (!EditorSettings::get_singleton()->save_text_editor_theme()) { + if (EditorSettings::get_singleton()->is_default_text_editor_theme()) { + ScriptEditor::_show_save_theme_as_dialog(); + } else if (!EditorSettings::get_singleton()->save_text_editor_theme()) { editor->show_warning(TTR("Error while saving theme"), TTR("Error saving")); } } break; case THEME_SAVE_AS: { - file_dialog->set_mode(EditorFileDialog::MODE_SAVE_FILE); - file_dialog->set_access(EditorFileDialog::ACCESS_FILESYSTEM); - file_dialog_option = THEME_SAVE_AS; - file_dialog->clear_filters(); - file_dialog->add_filter("*.tet"); - file_dialog->set_current_path(EditorSettings::get_singleton()->get_text_editor_themes_dir().plus_file(EditorSettings::get_singleton()->get("text_editor/theme/color_theme"))); - file_dialog->popup_centered_ratio(); - file_dialog->set_title(TTR("Save Theme As...")); + ScriptEditor::_show_save_theme_as_dialog(); } break; } } +void ScriptEditor::_show_save_theme_as_dialog() { + file_dialog->set_mode(EditorFileDialog::MODE_SAVE_FILE); + file_dialog->set_access(EditorFileDialog::ACCESS_FILESYSTEM); + file_dialog_option = THEME_SAVE_AS; + file_dialog->clear_filters(); + file_dialog->add_filter("*.tet"); + file_dialog->set_current_path(EditorSettings::get_singleton()->get_text_editor_themes_dir().plus_file(EditorSettings::get_singleton()->get("text_editor/theme/color_theme"))); + file_dialog->popup_centered_ratio(); + file_dialog->set_title(TTR("Save Theme As...")); +} + void ScriptEditor::_tab_changed(int p_which) { ensure_select_current(); @@ -1353,6 +1376,8 @@ void ScriptEditor::_notification(int p_what) { script_forward->set_icon(get_icon("Forward", "EditorIcons")); script_back->set_icon(get_icon("Back", "EditorIcons")); members_overview_alphabeta_sort_button->set_icon(get_icon("Sort", "EditorIcons")); + filter_scripts->set_right_icon(get_icon("Search", "EditorIcons")); + filter_methods->set_right_icon(get_icon("Search", "EditorIcons")); } break; case NOTIFICATION_READY: { @@ -1558,7 +1583,15 @@ struct _ScriptEditorItemData { bool operator<(const _ScriptEditorItemData &id) const { - return category == id.category ? sort_key < id.sort_key : category < id.category; + if (category == id.category) { + if (sort_key == id.sort_key) { + return index < id.index; + } else { + return sort_key < id.sort_key; + } + } else { + return category < id.category; + } } }; @@ -1602,8 +1635,12 @@ void ScriptEditor::_update_members_overview() { } for (int i = 0; i < functions.size(); i++) { - members_overview->add_item(functions[i].get_slice(":", 0)); - members_overview->set_item_metadata(i, functions[i].get_slice(":", 1).to_int() - 1); + String filter = filter_methods->get_text(); + String name = functions[i].get_slice(":", 0); + if (filter == "" || filter.is_subsequence_ofi(name)) { + members_overview->add_item(name); + members_overview->set_item_metadata(members_overview->get_item_count() - 1, functions[i].get_slice(":", 1).to_int() - 1); + } } String path = se->get_edited_resource()->get_path(); @@ -1725,7 +1762,19 @@ void ScriptEditor::_update_script_names() { Ref<Texture> icon = se->get_icon(); String path = se->get_edited_resource()->get_path(); bool built_in = !path.is_resource_file(); - String name = built_in ? path.get_file() : se->get_name(); + String name; + + if (built_in) { + + name = path.get_file(); + String resource_name = se->get_edited_resource()->get_name(); + if (resource_name != "") { + name = name.substr(0, name.find("::", 0) + 2) + resource_name; + } + } else { + + name = se->get_name(); + } _ScriptEditorItemData sd; sd.icon = icon; @@ -1810,20 +1859,26 @@ void ScriptEditor::_update_script_names() { _sort_list_on_update = false; } + Vector<_ScriptEditorItemData> sedata_filtered; for (int i = 0; i < sedata.size(); i++) { + String filter = filter_scripts->get_text(); + if (filter == "" || filter.is_subsequence_ofi(sedata[i].name)) { + sedata_filtered.push_back(sedata[i]); + } + } - script_list->add_item(sedata[i].name, sedata[i].icon); + for (int i = 0; i < sedata_filtered.size(); i++) { + script_list->add_item(sedata_filtered[i].name, sedata_filtered[i].icon); int index = script_list->get_item_count() - 1; - script_list->set_item_tooltip(index, sedata[i].tooltip); - script_list->set_item_metadata(index, sedata[i].index); - if (sedata[i].used) { - + script_list->set_item_tooltip(index, sedata_filtered[i].tooltip); + script_list->set_item_metadata(index, sedata_filtered[i].index); /* Saving as metadata the script's index in the tab container and not the filtered one */ + if (sedata_filtered[i].used) { script_list->set_item_custom_bg_color(index, Color(88 / 255.0, 88 / 255.0, 60 / 255.0)); } - if (tab_container->get_current_tab() == sedata[i].index) { + if (tab_container->get_current_tab() == sedata_filtered[i].index) { script_list->select(index); - script_name_label->set_text(sedata[i].name); - script_icon->set_texture(sedata[i].icon); + script_name_label->set_text(sedata_filtered[i].name); + script_icon->set_texture(sedata_filtered[i].icon); } } @@ -1941,10 +1996,11 @@ bool ScriptEditor::edit(const RES &p_resource, int p_line, int p_col, bool p_gra String flags = EditorSettings::get_singleton()->get("text_editor/external/exec_flags"); List<String> args; + bool has_file_flag = false; + String script_path = ProjectSettings::get_singleton()->globalize_path(p_resource->get_path()); if (flags.size()) { String project_path = ProjectSettings::get_singleton()->get_resource_path(); - String script_path = ProjectSettings::get_singleton()->globalize_path(p_resource->get_path()); flags = flags.replacen("{line}", itos(p_line > 0 ? p_line : 0)); flags = flags.replacen("{col}", itos(p_col)); @@ -1966,6 +2022,9 @@ bool ScriptEditor::edit(const RES &p_resource, int p_line, int p_col, bool p_gra } else if (flags[i] == '\0' || (!inside_quotes && flags[i] == ' ')) { String arg = flags.substr(from, num_chars); + if (arg.find("{file}") != -1) { + has_file_flag = true; + } // do path replacement here, else there will be issues with spaces and quotes arg = arg.replacen("{project}", project_path); @@ -1980,6 +2039,11 @@ bool ScriptEditor::edit(const RES &p_resource, int p_line, int p_col, bool p_gra } } + // Default to passing script path if no {file} flag is specified. + if (!has_file_flag) { + args.push_back(script_path); + } + Error err = OS::get_singleton()->execute(path, args, false); if (err == OK) return false; @@ -1997,7 +2061,7 @@ bool ScriptEditor::edit(const RES &p_resource, int p_line, int p_col, bool p_gra if (should_open) { if (tab_container->get_current_tab() != i) { _go_to_tab(i); - script_list->select(script_list->find_metadata(i)); + _update_script_names(); } if (is_visible_in_tree()) se->ensure_focus(); @@ -2006,6 +2070,8 @@ bool ScriptEditor::edit(const RES &p_resource, int p_line, int p_col, bool p_gra se->goto_line(p_line - 1); } } + _update_script_names(); + script_list->ensure_current_is_visible(); return true; } } @@ -2093,6 +2159,8 @@ void ScriptEditor::save_all_scripts() { se->trim_trailing_whitespace(); } + se->insert_final_newline(); + if (!se->is_unsaved()) continue; @@ -2371,7 +2439,7 @@ void ScriptEditor::drop_data_fw(const Point2 &p_point, const Variant &p_data, Co ScriptEditorBase *se = Object::cast_to<ScriptEditorBase>(node); EditorHelp *eh = Object::cast_to<EditorHelp>(node); if (se || eh) { - int new_index = script_list->get_item_at_position(p_point); + int new_index = script_list->get_item_metadata(script_list->get_item_at_position(p_point)); tab_container->move_child(node, new_index); tab_container->set_current_tab(new_index); _update_script_names(); @@ -2388,7 +2456,7 @@ void ScriptEditor::drop_data_fw(const Point2 &p_point, const Variant &p_data, Co ScriptEditorBase *se = Object::cast_to<ScriptEditorBase>(node); EditorHelp *eh = Object::cast_to<EditorHelp>(node); if (se || eh) { - int new_index = script_list->get_item_at_position(p_point); + int new_index = script_list->get_item_metadata(script_list->get_item_at_position(p_point)); tab_container->move_child(node, new_index); tab_container->set_current_tab(new_index); _update_script_names(); @@ -2399,7 +2467,7 @@ void ScriptEditor::drop_data_fw(const Point2 &p_point, const Variant &p_data, Co Vector<String> files = d["files"]; - int new_index = script_list->get_item_at_position(p_point); + int new_index = script_list->get_item_metadata(script_list->get_item_at_position(p_point)); int num_tabs_before = tab_container->get_child_count(); for (int i = 0; i < files.size(); i++) { String file = files[i]; @@ -2411,7 +2479,7 @@ void ScriptEditor::drop_data_fw(const Point2 &p_point, const Variant &p_data, Co if (tab_container->get_child_count() > num_tabs_before) { tab_container->move_child(tab_container->get_child(tab_container->get_child_count() - 1), new_index); num_tabs_before = tab_container->get_child_count(); - } else { + } else { /* Maybe script was already open */ tab_container->move_child(tab_container->get_child(tab_container->get_current_tab()), new_index); } } @@ -2906,6 +2974,14 @@ void ScriptEditor::_on_find_in_files_modified_files(PoolStringArray paths) { _update_modified_scripts_for_external_editor(); } +void ScriptEditor::_filter_scripts_text_changed(const String &p_newtext) { + _update_script_names(); +} + +void ScriptEditor::_filter_methods_text_changed(const String &p_newtext) { + _update_members_overview(); +} + void ScriptEditor::_bind_methods() { ClassDB::bind_method("_file_dialog_action", &ScriptEditor::_file_dialog_action); @@ -2957,6 +3033,8 @@ void ScriptEditor::_bind_methods() { ClassDB::bind_method("_toggle_members_overview_alpha_sort", &ScriptEditor::_toggle_members_overview_alpha_sort); ClassDB::bind_method("_update_members_overview", &ScriptEditor::_update_members_overview); ClassDB::bind_method("_script_changed", &ScriptEditor::_script_changed); + ClassDB::bind_method("_filter_scripts_text_changed", &ScriptEditor::_filter_scripts_text_changed); + ClassDB::bind_method("_filter_methods_text_changed", &ScriptEditor::_filter_methods_text_changed); ClassDB::bind_method("_update_recent_scripts", &ScriptEditor::_update_recent_scripts); ClassDB::bind_method("_on_find_in_files_requested", &ScriptEditor::_on_find_in_files_requested); ClassDB::bind_method("_start_find_in_files", &ScriptEditor::_start_find_in_files); @@ -3003,8 +3081,18 @@ ScriptEditor::ScriptEditor(EditorNode *p_editor) { script_split->add_child(list_split); list_split->set_v_size_flags(SIZE_EXPAND_FILL); + scripts_vbox = memnew(VBoxContainer); + scripts_vbox->set_v_size_flags(SIZE_EXPAND_FILL); + list_split->add_child(scripts_vbox); + + filter_scripts = memnew(LineEdit); + filter_scripts->set_placeholder(TTR("Filter scripts")); + filter_scripts->set_clear_button_enabled(true); + filter_scripts->connect("text_changed", this, "_filter_scripts_text_changed"); + scripts_vbox->add_child(filter_scripts); + script_list = memnew(ItemList); - list_split->add_child(script_list); + scripts_vbox->add_child(script_list); script_list->set_custom_minimum_size(Size2(150, 90) * EDSCALE); //need to give a bit of limit to avoid it from disappearing script_list->set_v_size_flags(SIZE_EXPAND_FILL); script_split->set_split_offset(140); @@ -3040,6 +3128,12 @@ ScriptEditor::ScriptEditor(EditorNode *p_editor) { buttons_hbox->add_child(members_overview_alphabeta_sort_button); + filter_methods = memnew(LineEdit); + filter_methods->set_placeholder(TTR("Filter methods")); + filter_methods->set_clear_button_enabled(true); + filter_methods->connect("text_changed", this, "_filter_methods_text_changed"); + overview_vbox->add_child(filter_methods); + members_overview = memnew(ItemList); overview_vbox->add_child(members_overview); @@ -3047,7 +3141,6 @@ ScriptEditor::ScriptEditor(EditorNode *p_editor) { members_overview->set_custom_minimum_size(Size2(0, 90) * EDSCALE); //need to give a bit of limit to avoid it from disappearing members_overview->set_v_size_flags(SIZE_EXPAND_FILL); members_overview->set_allow_rmb_select(true); - members_overview->set_drag_forwarding(this); help_overview = memnew(ItemList); overview_vbox->add_child(help_overview); @@ -3401,7 +3494,8 @@ ScriptEditorPlugin::ScriptEditorPlugin(EditorNode *p_node) { EditorSettings::get_singleton()->add_property_hint(PropertyInfo(Variant::INT, "text_editor/open_scripts/list_script_names_as", PROPERTY_HINT_ENUM, "Name,Parent Directory And Name,Full Path")); EDITOR_DEF("text_editor/open_scripts/list_script_names_as", 0); EditorSettings::get_singleton()->add_property_hint(PropertyInfo(Variant::STRING, "text_editor/external/exec_path", PROPERTY_HINT_GLOBAL_FILE)); - EDITOR_DEF("text_editor/external/exec_flags", ""); + EDITOR_DEF("text_editor/external/exec_flags", "{file}"); + EditorSettings::get_singleton()->add_property_hint(PropertyInfo(Variant::STRING, "text_editor/external/exec_flags", PROPERTY_HINT_PLACEHOLDER_TEXT, "Call flags with placeholders: {project}, {file}, {col}, {line}.")); ED_SHORTCUT("script_editor/open_recent", TTR("Open Recent"), KEY_MASK_CMD | KEY_MASK_SHIFT | KEY_T); ED_SHORTCUT("script_editor/clear_recent", TTR("Clear Recent Files")); diff --git a/editor/plugins/script_editor_plugin.h b/editor/plugins/script_editor_plugin.h index 683fa881f8..0d9168261a 100644 --- a/editor/plugins/script_editor_plugin.h +++ b/editor/plugins/script_editor_plugin.h @@ -38,6 +38,7 @@ #include "editor/editor_plugin.h" #include "editor/script_create_dialog.h" #include "scene/gui/item_list.h" +#include "scene/gui/line_edit.h" #include "scene/gui/menu_button.h" #include "scene/gui/split_container.h" #include "scene/gui/tab_container.h" @@ -99,6 +100,7 @@ public: virtual void set_executing_line(int p_line) = 0; virtual void clear_executing_line() = 0; virtual void trim_trailing_whitespace() = 0; + virtual void insert_final_newline() = 0; virtual void convert_indent_to_spaces() = 0; virtual void convert_indent_to_tabs() = 0; virtual void ensure_focus() = 0; @@ -116,6 +118,8 @@ public: virtual Control *get_edit_menu() = 0; virtual void clear_edit_menu() = 0; + virtual void validate() = 0; + ScriptEditorBase() {} }; @@ -210,6 +214,9 @@ class ScriptEditor : public PanelContainer { ItemList *script_list; HSplitContainer *script_split; ItemList *members_overview; + LineEdit *filter_scripts; + LineEdit *filter_methods; + VBoxContainer *scripts_vbox; VBoxContainer *overview_vbox; HBoxContainer *buttons_hbox; Label *filename; @@ -263,6 +270,7 @@ class ScriptEditor : public PanelContainer { void _tab_changed(int p_which); void _menu_option(int p_option); void _theme_option(int p_option); + void _show_save_theme_as_dialog(); Tree *disk_changed_list; ConfirmationDialog *disk_changed; @@ -337,6 +345,8 @@ class ScriptEditor : public PanelContainer { void _update_members_overview_visibility(); void _update_members_overview(); void _toggle_members_overview_alpha_sort(bool p_alphabetic_sort); + void _filter_scripts_text_changed(const String &p_newtext); + void _filter_methods_text_changed(const String &p_newtext); void _update_script_names(); void _update_script_connections(); bool _sort_list_on_update; diff --git a/editor/plugins/script_text_editor.cpp b/editor/plugins/script_text_editor.cpp index eaba48fa05..ce0859a1f6 100644 --- a/editor/plugins/script_text_editor.cpp +++ b/editor/plugins/script_text_editor.cpp @@ -213,6 +213,7 @@ void ScriptTextEditor::_load_theme_settings() { Color function_color = EDITOR_GET("text_editor/highlighting/function_color"); Color member_variable_color = EDITOR_GET("text_editor/highlighting/member_variable_color"); Color mark_color = EDITOR_GET("text_editor/highlighting/mark_color"); + Color bookmark_color = EDITOR_GET("text_editor/highlighting/bookmark_color"); Color breakpoint_color = EDITOR_GET("text_editor/highlighting/breakpoint_color"); Color executing_line_color = EDITOR_GET("text_editor/highlighting/executing_line_color"); Color code_folding_color = EDITOR_GET("text_editor/highlighting/code_folding_color"); @@ -245,6 +246,7 @@ void ScriptTextEditor::_load_theme_settings() { text_edit->add_color_override("number_color", number_color); text_edit->add_color_override("function_color", function_color); text_edit->add_color_override("member_variable_color", member_variable_color); + text_edit->add_color_override("bookmark_color", bookmark_color); text_edit->add_color_override("breakpoint_color", breakpoint_color); text_edit->add_color_override("executing_line_color", executing_line_color); text_edit->add_color_override("mark_color", mark_color); @@ -376,7 +378,6 @@ void ScriptTextEditor::reload_text() { int v = te->get_v_scroll(); te->set_text(script->get_source_code()); - te->clear_undo_history(); te->cursor_set_line(row); te->cursor_set_column(column); te->set_h_scroll(h); @@ -456,6 +457,11 @@ void ScriptTextEditor::trim_trailing_whitespace() { code_editor->trim_trailing_whitespace(); } +void ScriptTextEditor::insert_final_newline() { + + code_editor->insert_final_newline(); +} + void ScriptTextEditor::convert_indent_to_spaces() { code_editor->convert_indent_to_spaces(); @@ -541,7 +547,6 @@ void ScriptTextEditor::_validate_script() { script->set_source_code(text); script->update_exports(); _update_member_keywords(); - //script->reload(); //will update all the variables in property editors } functions.clear(); @@ -552,30 +557,36 @@ void ScriptTextEditor::_validate_script() { } _update_connected_methods(); - code_editor->set_warning_nb(missing_connections.size() + warnings.size()); + int warning_nb = warnings.size(); warnings_panel->clear(); - // add missing connections - Node *base = get_tree()->get_edited_scene_root(); - if (base && missing_connections.size() > 0) { - warnings_panel->push_table(1); - for (List<Connection>::Element *E = missing_connections.front(); E; E = E->next()) { - Connection connection = E->get(); - - String base_path = base->get_name(); - String source_path = base == connection.source ? base_path : base_path + "/" + String(base->get_path_to(Object::cast_to<Node>(connection.source))); - String target_path = base == connection.target ? base_path : base_path + "/" + String(base->get_path_to(Object::cast_to<Node>(connection.target))); + // Add missing connections. + if (GLOBAL_GET("debug/gdscript/warnings/enable").booleanize()) { + Node *base = get_tree()->get_edited_scene_root(); + if (base && missing_connections.size() > 0) { + warnings_panel->push_table(1); + for (List<Connection>::Element *E = missing_connections.front(); E; E = E->next()) { + Connection connection = E->get(); + + String base_path = base->get_name(); + String source_path = base == connection.source ? base_path : base_path + "/" + String(base->get_path_to(Object::cast_to<Node>(connection.source))); + String target_path = base == connection.target ? base_path : base_path + "/" + String(base->get_path_to(Object::cast_to<Node>(connection.target))); + + warnings_panel->push_cell(); + warnings_panel->push_color(warnings_panel->get_color("warning_color", "Editor")); + warnings_panel->add_text(vformat(TTR("Missing connected method '%s' for signal '%s' from node '%s' to node '%s'."), connection.method, connection.signal, source_path, target_path)); + warnings_panel->pop(); // Color. + warnings_panel->pop(); // Cell. + } + warnings_panel->pop(); // Table. - warnings_panel->push_cell(); - warnings_panel->push_color(warnings_panel->get_color("warning_color", "Editor")); - warnings_panel->add_text(vformat(TTR("Missing connected method '%s' for signal '%s' from node '%s' to node '%s'"), connection.method, connection.signal, source_path, target_path)); - warnings_panel->pop(); // Color - warnings_panel->pop(); // Cell + warning_nb += missing_connections.size(); } - warnings_panel->pop(); // Table } - // add script warnings + code_editor->set_warning_nb(warning_nb); + + // Add script warnings. warnings_panel->push_table(3); for (List<ScriptLanguage::Warning>::Element *E = warnings.front(); E; E = E->next()) { ScriptLanguage::Warning w = E->get(); @@ -585,13 +596,13 @@ void ScriptTextEditor::_validate_script() { warnings_panel->push_color(warnings_panel->get_color("warning_color", "Editor")); warnings_panel->add_text(TTR("Line") + " " + itos(w.line)); warnings_panel->add_text(" (" + w.string_code + "):"); - warnings_panel->pop(); // Color - warnings_panel->pop(); // Meta goto - warnings_panel->pop(); // Cell + warnings_panel->pop(); // Color. + warnings_panel->pop(); // Meta goto. + warnings_panel->pop(); // Cell. warnings_panel->push_cell(); warnings_panel->add_text(w.message); - warnings_panel->pop(); // Cell + warnings_panel->pop(); // Cell. Dictionary ignore_meta; ignore_meta["line"] = w.line; @@ -599,11 +610,10 @@ void ScriptTextEditor::_validate_script() { warnings_panel->push_cell(); warnings_panel->push_meta(ignore_meta); warnings_panel->add_text(TTR("(ignore)")); - warnings_panel->pop(); // Meta ignore - warnings_panel->pop(); // Cell - //warnings_panel->add_newline(); + warnings_panel->pop(); // Meta ignore. + warnings_panel->pop(); // Cell. } - warnings_panel->pop(); // Table + warnings_panel->pop(); // Table. line--; bool highlight_safe = EDITOR_DEF("text_editor/highlighting/highlight_type_safe_lines", true); @@ -734,7 +744,7 @@ void ScriptTextEditor::_code_complete_script(const String &p_code, List<String> base = _find_node_for_script(base, base, script); } String hint; - Error err = script->get_language()->complete_code(p_code, script->get_path().get_base_dir(), base, r_options, r_force, hint); + Error err = script->get_language()->complete_code(p_code, script->get_path(), base, r_options, r_force, hint); if (err == OK && hint != "") { code_editor->get_text_edit()->set_code_hint(hint); } @@ -765,7 +775,7 @@ void ScriptTextEditor::_lookup_symbol(const String &p_symbol, int p_row, int p_c EditorNode::get_singleton()->load_resource(p_symbol); } - } else if (script->get_language()->lookup_code(code_editor->get_text_edit()->get_text_for_lookup_completion(), p_symbol, script->get_path().get_base_dir(), base, result) == OK) { + } else if (script->get_language()->lookup_code(code_editor->get_text_edit()->get_text_for_lookup_completion(), p_symbol, script->get_path(), base, result) == OK) { _goto_line(p_row); @@ -866,12 +876,36 @@ void ScriptTextEditor::_update_connected_methods() { continue; } - int line = script->get_language()->find_function(connection.method, text_edit->get_text()); - if (line < 0) { - missing_connections.push_back(connection); + // As deleted nodes are still accessible via the undo/redo system, check if they're still on the tree. + Node *source = Object::cast_to<Node>(connection.source); + if (source && !source->is_inside_tree()) { continue; } - text_edit->set_line_info_icon(line - 1, get_parent_control()->get_icon("Slot", "EditorIcons"), connection.method); + + if (!ClassDB::has_method(script->get_instance_base_type(), connection.method)) { + + 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(); + } + + 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); + } + } } } } @@ -1066,6 +1100,22 @@ void ScriptTextEditor::_edit_option(int p_op) { goto_line_dialog->popup_find_line(tx); } break; + case BOOKMARK_TOGGLE: { + + code_editor->toggle_bookmark(); + } break; + case BOOKMARK_GOTO_NEXT: { + + code_editor->goto_next_bookmark(); + } break; + case BOOKMARK_GOTO_PREV: { + + code_editor->goto_prev_bookmark(); + } break; + case BOOKMARK_REMOVE_ALL: { + + code_editor->remove_all_bookmarks(); + } break; case DEBUG_TOGGLE_BREAKPOINT: { int line = tx->cursor_get_line(); @@ -1430,7 +1480,7 @@ void ScriptTextEditor::_text_edit_gui_input(const Ref<InputEvent> &ev) { base = _find_node_for_script(base, base, script); } ScriptLanguage::LookupResult result; - if (script->get_language()->lookup_code(code_editor->get_text_edit()->get_text_for_lookup_completion(), word_at_mouse, script->get_path().get_base_dir(), base, result) == OK) { + if (script->get_language()->lookup_code(code_editor->get_text_edit()->get_text_for_lookup_completion(), word_at_mouse, script->get_path(), base, result) == OK) { open_docs = true; } } @@ -1500,6 +1550,7 @@ void ScriptTextEditor::_make_context_menu(bool p_selection, bool p_color, bool p context_menu->add_shortcut(ED_GET_SHORTCUT("script_text_editor/indent_left"), EDIT_INDENT_LEFT); context_menu->add_shortcut(ED_GET_SHORTCUT("script_text_editor/indent_right"), EDIT_INDENT_RIGHT); context_menu->add_shortcut(ED_GET_SHORTCUT("script_text_editor/toggle_comment"), EDIT_TOGGLE_COMMENT); + context_menu->add_shortcut(ED_GET_SHORTCUT("script_text_editor/toggle_bookmark"), BOOKMARK_TOGGLE); if (p_selection) { context_menu->add_separator(); @@ -1652,6 +1703,16 @@ ScriptTextEditor::ScriptTextEditor() { search_menu->get_popup()->connect("id_pressed", this, "_edit_option"); + PopupMenu *bookmarks = memnew(PopupMenu); + bookmarks->set_name("bookmarks"); + edit_menu->get_popup()->add_child(bookmarks); + edit_menu->get_popup()->add_submenu_item(TTR("Bookmarks"), "bookmarks"); + bookmarks->add_shortcut(ED_GET_SHORTCUT("script_text_editor/toggle_bookmark"), BOOKMARK_TOGGLE); + bookmarks->add_shortcut(ED_GET_SHORTCUT("script_text_editor/remove_all_bookmarks"), BOOKMARK_REMOVE_ALL); + bookmarks->add_shortcut(ED_GET_SHORTCUT("script_text_editor/goto_next_bookmark"), BOOKMARK_GOTO_NEXT); + bookmarks->add_shortcut(ED_GET_SHORTCUT("script_text_editor/goto_previous_bookmark"), BOOKMARK_GOTO_PREV); + bookmarks->connect("id_pressed", this, "_edit_option"); + edit_hb->add_child(edit_menu); quick_open = memnew(ScriptEditorQuickOpen); @@ -1693,6 +1754,10 @@ void ScriptTextEditor::register_editor() { ED_SHORTCUT("script_text_editor/indent_left", TTR("Indent Left"), 0); ED_SHORTCUT("script_text_editor/indent_right", TTR("Indent Right"), 0); ED_SHORTCUT("script_text_editor/toggle_comment", TTR("Toggle Comment"), KEY_MASK_CMD | KEY_K); + ED_SHORTCUT("script_text_editor/toggle_bookmark", TTR("Toggle Bookmark"), KEY_MASK_CMD | KEY_MASK_ALT | KEY_B); + ED_SHORTCUT("script_text_editor/goto_next_bookmark", TTR("Go to Next Bookmark"), KEY_MASK_CMD | KEY_B); + ED_SHORTCUT("script_text_editor/goto_previous_bookmark", TTR("Go to Previous Bookmark"), KEY_MASK_CMD | KEY_MASK_SHIFT | KEY_B); + ED_SHORTCUT("script_text_editor/remove_all_bookmarks", TTR("Remove All Bookmarks"), 0); ED_SHORTCUT("script_text_editor/toggle_fold_line", TTR("Fold/Unfold Line"), KEY_MASK_ALT | KEY_F); ED_SHORTCUT("script_text_editor/fold_all_lines", TTR("Fold All Lines"), 0); ED_SHORTCUT("script_text_editor/unfold_all_lines", TTR("Unfold All Lines"), 0); @@ -1700,7 +1765,7 @@ void ScriptTextEditor::register_editor() { ED_SHORTCUT("script_text_editor/clone_down", TTR("Clone Down"), KEY_MASK_SHIFT | KEY_MASK_CMD | KEY_C); ED_SHORTCUT("script_text_editor/complete_symbol", TTR("Complete Symbol"), KEY_MASK_CTRL | KEY_SPACE); #else - ED_SHORTCUT("script_text_editor/clone_down", TTR("Clone Down"), KEY_MASK_CMD | KEY_B); + ED_SHORTCUT("script_text_editor/clone_down", TTR("Clone Down"), KEY_MASK_CMD | KEY_D); ED_SHORTCUT("script_text_editor/complete_symbol", TTR("Complete Symbol"), KEY_MASK_CMD | KEY_SPACE); #endif ED_SHORTCUT("script_text_editor/trim_trailing_whitespace", TTR("Trim Trailing Whitespace"), KEY_MASK_CMD | KEY_MASK_ALT | KEY_T); @@ -1740,8 +1805,12 @@ void ScriptTextEditor::register_editor() { #ifdef OSX_ENABLED ED_SHORTCUT("script_text_editor/contextual_help", TTR("Contextual Help"), KEY_MASK_ALT | KEY_MASK_SHIFT | KEY_SPACE); #else - ED_SHORTCUT("script_text_editor/contextual_help", TTR("Contextual Help"), KEY_MASK_SHIFT | KEY_F1); + ED_SHORTCUT("script_text_editor/contextual_help", TTR("Contextual Help"), KEY_MASK_ALT | KEY_F1); #endif ScriptEditor::register_create_script_editor_function(create_editor); } + +void ScriptTextEditor::validate() { + this->code_editor->validate_script(); +} diff --git a/editor/plugins/script_text_editor.h b/editor/plugins/script_text_editor.h index 0dbc884594..24d40a5eec 100644 --- a/editor/plugins/script_text_editor.h +++ b/editor/plugins/script_text_editor.h @@ -128,6 +128,10 @@ class ScriptTextEditor : public ScriptEditorBase { SEARCH_LOCATE_FUNCTION, SEARCH_GOTO_LINE, SEARCH_IN_FILES, + BOOKMARK_TOGGLE, + BOOKMARK_GOTO_NEXT, + BOOKMARK_GOTO_PREV, + BOOKMARK_REMOVE_ALL, DEBUG_TOGGLE_BREAKPOINT, DEBUG_REMOVE_ALL_BREAKPOINTS, DEBUG_GOTO_NEXT_BREAKPOINT, @@ -190,6 +194,7 @@ public: virtual void set_edit_state(const Variant &p_state); virtual void ensure_focus(); virtual void trim_trailing_whitespace(); + virtual void insert_final_newline(); virtual void convert_indent_to_spaces(); virtual void convert_indent_to_tabs(); virtual void tag_saved_version(); @@ -215,6 +220,8 @@ public: virtual void clear_edit_menu(); static void register_editor(); + virtual void validate(); + ScriptTextEditor(); }; diff --git a/editor/plugins/shader_editor_plugin.cpp b/editor/plugins/shader_editor_plugin.cpp index 31660a9e19..f9ca38b919 100644 --- a/editor/plugins/shader_editor_plugin.cpp +++ b/editor/plugins/shader_editor_plugin.cpp @@ -60,6 +60,26 @@ void ShaderTextEditor::set_edited_shader(const Ref<Shader> &p_shader) { _line_col_changed(); } +void ShaderTextEditor::reload_text() { + ERR_FAIL_COND(shader.is_null()); + + TextEdit *te = get_text_edit(); + int column = te->cursor_get_column(); + int row = te->cursor_get_line(); + int h = te->get_h_scroll(); + int v = te->get_v_scroll(); + + te->set_text(shader->get_code()); + te->cursor_set_line(row); + te->cursor_set_column(column); + te->set_h_scroll(h); + te->set_v_scroll(v); + + te->tag_saved_version(); + + update_line_and_column(); +} + void ShaderTextEditor::_load_theme_settings() { get_text_edit()->clear_colors(); @@ -84,6 +104,7 @@ void ShaderTextEditor::_load_theme_settings() { Color function_color = EDITOR_GET("text_editor/highlighting/function_color"); Color member_variable_color = EDITOR_GET("text_editor/highlighting/member_variable_color"); Color mark_color = EDITOR_GET("text_editor/highlighting/mark_color"); + Color bookmark_color = EDITOR_GET("text_editor/highlighting/bookmark_color"); Color breakpoint_color = EDITOR_GET("text_editor/highlighting/breakpoint_color"); Color executing_line_color = EDITOR_GET("text_editor/highlighting/executing_line_color"); Color code_folding_color = EDITOR_GET("text_editor/highlighting/code_folding_color"); @@ -113,6 +134,7 @@ void ShaderTextEditor::_load_theme_settings() { get_text_edit()->add_color_override("function_color", function_color); get_text_edit()->add_color_override("member_variable_color", member_variable_color); get_text_edit()->add_color_override("mark_color", mark_color); + get_text_edit()->add_color_override("bookmark_color", bookmark_color); get_text_edit()->add_color_override("breakpoint_color", breakpoint_color); get_text_edit()->add_color_override("executing_line_color", executing_line_color); get_text_edit()->add_color_override("code_folding_color", code_folding_color); @@ -304,6 +326,22 @@ void ShaderEditor::_menu_option(int p_option) { goto_line_dialog->popup_find_line(shader_editor->get_text_edit()); } break; + case BOOKMARK_TOGGLE: { + + shader_editor->toggle_bookmark(); + } break; + case BOOKMARK_GOTO_NEXT: { + + shader_editor->goto_next_bookmark(); + } break; + case BOOKMARK_GOTO_PREV: { + + shader_editor->goto_prev_bookmark(); + } break; + case BOOKMARK_REMOVE_ALL: { + + shader_editor->remove_all_bookmarks(); + } break; } if (p_option != SEARCH_FIND && p_option != SEARCH_REPLACE && p_option != SEARCH_GOTO_LINE) { shader_editor->get_text_edit()->call_deferred("grab_focus"); @@ -312,9 +350,8 @@ void ShaderEditor::_menu_option(int p_option) { void ShaderEditor::_notification(int p_what) { - if (p_what == NOTIFICATION_VISIBILITY_CHANGED) { - //if (is_visible_in_tree()) - // shader_editor->get_text_edit()->grab_focus(); + if (p_what == MainLoop::NOTIFICATION_WM_FOCUS_IN) { + _check_for_external_edit(); } } @@ -345,12 +382,14 @@ void ShaderEditor::_editor_settings_changed() { void ShaderEditor::_bind_methods() { + ClassDB::bind_method("_reload_shader_from_disk", &ShaderEditor::_reload_shader_from_disk); ClassDB::bind_method("_editor_settings_changed", &ShaderEditor::_editor_settings_changed); ClassDB::bind_method("_text_edit_gui_input", &ShaderEditor::_text_edit_gui_input); ClassDB::bind_method("_menu_option", &ShaderEditor::_menu_option); ClassDB::bind_method("_params_changed", &ShaderEditor::_params_changed); ClassDB::bind_method("apply_shaders", &ShaderEditor::apply_shaders); + ClassDB::bind_method("save_external_data", &ShaderEditor::save_external_data); } void ShaderEditor::ensure_select_current() { @@ -371,6 +410,37 @@ void ShaderEditor::goto_line_selection(int p_line, int p_begin, int p_end) { shader_editor->goto_line_selection(p_line, p_begin, p_end); } +void ShaderEditor::_check_for_external_edit() { + + if (shader.is_null() || !shader.is_valid()) { + return; + } + + // internal shader. + if (shader->get_path() == "" || shader->get_path().find("local://") != -1 || shader->get_path().find("::") != -1) { + return; + } + + bool use_autoreload = bool(EDITOR_DEF("text_editor/files/auto_reload_scripts_on_external_change", false)); + if (shader->get_last_modified_time() != FileAccess::get_modified_time(shader->get_path())) { + if (use_autoreload) { + _reload_shader_from_disk(); + } else { + disk_changed->call_deferred("popup_centered"); + } + } +} + +void ShaderEditor::_reload_shader_from_disk() { + + Ref<Shader> rel_shader = ResourceLoader::load(shader->get_path(), shader->get_class(), true); + ERR_FAIL_COND(!rel_shader.is_valid()); + + shader->set_code(rel_shader->get_code()); + shader->set_last_modified_time(rel_shader->get_last_modified_time()); + shader_editor->reload_text(); +} + void ShaderEditor::edit(const Ref<Shader> &p_shader) { if (p_shader.is_null() || !p_shader->is_text_shader()) @@ -387,16 +457,20 @@ void ShaderEditor::edit(const Ref<Shader> &p_shader) { // see if already has it } -void ShaderEditor::save_external_data() { +void ShaderEditor::save_external_data(const String &p_str) { - if (shader.is_null()) + if (shader.is_null()) { + disk_changed->hide(); return; - apply_shaders(); + } + apply_shaders(); if (shader->get_path() != "" && shader->get_path().find("local://") == -1 && shader->get_path().find("::") == -1) { //external shader, save it ResourceSaver::save(shader->get_path(), shader); } + + disk_changed->hide(); } void ShaderEditor::apply_shaders() { @@ -535,6 +609,16 @@ ShaderEditor::ShaderEditor(EditorNode *p_node) { search_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("script_text_editor/goto_line"), SEARCH_GOTO_LINE); search_menu->get_popup()->connect("id_pressed", this, "_menu_option"); + PopupMenu *bookmarks = memnew(PopupMenu); + bookmarks->set_name("bookmarks"); + edit_menu->get_popup()->add_child(bookmarks); + edit_menu->get_popup()->add_submenu_item(TTR("Bookmarks"), "bookmarks"); + bookmarks->add_shortcut(ED_GET_SHORTCUT("script_text_editor/toggle_bookmark"), BOOKMARK_TOGGLE); + bookmarks->add_shortcut(ED_GET_SHORTCUT("script_text_editor/remove_all_bookmarks"), BOOKMARK_REMOVE_ALL); + bookmarks->add_shortcut(ED_GET_SHORTCUT("script_text_editor/goto_next_bookmark"), BOOKMARK_GOTO_NEXT); + bookmarks->add_shortcut(ED_GET_SHORTCUT("script_text_editor/goto_previous_bookmark"), BOOKMARK_GOTO_PREV); + bookmarks->connect("id_pressed", this, "_edit_option"); + add_child(main_container); main_container->add_child(hbc); hbc->add_child(search_menu); @@ -545,6 +629,23 @@ ShaderEditor::ShaderEditor(EditorNode *p_node) { goto_line_dialog = memnew(GotoLineDialog); add_child(goto_line_dialog); + disk_changed = memnew(ConfirmationDialog); + + VBoxContainer *vbc = memnew(VBoxContainer); + disk_changed->add_child(vbc); + + Label *dl = memnew(Label); + dl->set_text(TTR("This shader has been modified on on disk.\nWhat action should be taken?")); + vbc->add_child(dl); + + disk_changed->connect("confirmed", this, "_reload_shader_from_disk"); + disk_changed->get_ok()->set_text(TTR("Reload")); + + disk_changed->add_button(TTR("Resave"), !OS::get_singleton()->get_swap_ok_cancel(), "resave"); + disk_changed->connect("custom_action", this, "save_external_data"); + + add_child(disk_changed); + _editor_settings_changed(); } diff --git a/editor/plugins/shader_editor_plugin.h b/editor/plugins/shader_editor_plugin.h index 46c78c1d33..b56c1451ad 100644 --- a/editor/plugins/shader_editor_plugin.h +++ b/editor/plugins/shader_editor_plugin.h @@ -58,6 +58,8 @@ protected: public: virtual void _validate_script(); + void reload_text(); + Ref<Shader> get_edited_shader() const; void set_edited_shader(const Ref<Shader> &p_shader); ShaderTextEditor(); @@ -88,6 +90,10 @@ class ShaderEditor : public PanelContainer { SEARCH_FIND_PREV, SEARCH_REPLACE, SEARCH_GOTO_LINE, + BOOKMARK_TOGGLE, + BOOKMARK_GOTO_NEXT, + BOOKMARK_GOTO_PREV, + BOOKMARK_REMOVE_ALL, }; @@ -99,6 +105,7 @@ class ShaderEditor : public PanelContainer { GotoLineDialog *goto_line_dialog; ConfirmationDialog *erase_tab_confirm; + ConfirmationDialog *disk_changed; ShaderTextEditor *shader_editor; @@ -108,6 +115,9 @@ class ShaderEditor : public PanelContainer { void _editor_settings_changed(); + void _check_for_external_edit(); + void _reload_shader_from_disk(); + protected: void _notification(int p_what); static void _bind_methods(); @@ -123,7 +133,7 @@ public: void goto_line_selection(int p_line, int p_begin, int p_end); virtual Size2 get_minimum_size() const { return Size2(0, 200); } - void save_external_data(); + void save_external_data(const String &p_str = ""); ShaderEditor(EditorNode *p_node); }; diff --git a/editor/plugins/spatial_editor_plugin.cpp b/editor/plugins/spatial_editor_plugin.cpp index 5a733f6509..a1c0b732fa 100644 --- a/editor/plugins/spatial_editor_plugin.cpp +++ b/editor/plugins/spatial_editor_plugin.cpp @@ -3510,10 +3510,14 @@ SpatialEditorViewport::SpatialEditorViewport(SpatialEditor *p_spatial_editor, Ed camera->make_current(); surface->set_focus_mode(FOCUS_ALL); + VBoxContainer *vbox = memnew(VBoxContainer); + surface->add_child(vbox); + vbox->set_position(Point2(10, 10) * EDSCALE); + view_menu = memnew(MenuButton); view_menu->set_flat(false); - surface->add_child(view_menu); - view_menu->set_position(Point2(10, 10) * EDSCALE); + vbox->add_child(view_menu); + view_menu->set_h_size_flags(0); view_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("spatial_editor/top_view"), VIEW_TOP); view_menu->get_popup()->add_shortcut(ED_GET_SHORTCUT("spatial_editor/bottom_view"), VIEW_BOTTOM); @@ -3566,9 +3570,9 @@ SpatialEditorViewport::SpatialEditorViewport(SpatialEditor *p_spatial_editor, Ed ED_SHORTCUT("spatial_editor/freelook_speed_modifier", TTR("Freelook Speed Modifier"), KEY_SHIFT); preview_camera = memnew(CheckBox); - preview_camera->set_position(Point2(10, 38) * EDSCALE); // Below the 'view_menu' MenuButton. preview_camera->set_text(TTR("Preview")); - surface->add_child(preview_camera); + 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; @@ -4207,7 +4211,7 @@ void SpatialEditor::set_state(const Dictionary &p_state) { Array vp = d["viewports"]; uint32_t vp_size = static_cast<uint32_t>(vp.size()); if (vp_size > VIEWPORTS_COUNT) { - WARN_PRINT("Ignoring superfluous viewport settings from spatial editor state.") + WARN_PRINT("Ignoring superfluous viewport settings from spatial editor state."); vp_size = VIEWPORTS_COUNT; } @@ -5605,7 +5609,7 @@ SpatialEditor::SpatialEditor(EditorNode *p_editor) { ED_SHORTCUT("spatial_editor/front_view", TTR("Front View"), KEY_KP_1); ED_SHORTCUT("spatial_editor/left_view", TTR("Left View"), KEY_MASK_ALT + KEY_KP_3); ED_SHORTCUT("spatial_editor/right_view", TTR("Right View"), KEY_KP_3); - ED_SHORTCUT("spatial_editor/switch_perspective_orthogonal", TTR("Switch Perspective/Orthogonal view"), KEY_KP_5); + ED_SHORTCUT("spatial_editor/switch_perspective_orthogonal", TTR("Switch Perspective/Orthogonal View"), KEY_KP_5); ED_SHORTCUT("spatial_editor/insert_anim_key", TTR("Insert Animation Key"), KEY_K); ED_SHORTCUT("spatial_editor/focus_origin", TTR("Focus Origin"), KEY_O); ED_SHORTCUT("spatial_editor/focus_selection", TTR("Focus Selection"), KEY_F); @@ -5626,7 +5630,7 @@ SpatialEditor::SpatialEditor(EditorNode *p_editor) { hbc_menu->add_child(transform_menu); p = transform_menu->get_popup(); - p->add_shortcut(ED_SHORTCUT("spatial_editor/snap_to_floor", TTR("Snap object to floor"), KEY_PAGEDOWN), MENU_SNAP_TO_FLOOR); + p->add_shortcut(ED_SHORTCUT("spatial_editor/snap_to_floor", TTR("Snap Object to Floor"), KEY_PAGEDOWN), MENU_SNAP_TO_FLOOR); p->add_shortcut(ED_SHORTCUT("spatial_editor/configure_snap", TTR("Configure Snap...")), MENU_TRANSFORM_CONFIGURE_SNAP); p->add_separator(); p->add_shortcut(ED_SHORTCUT("spatial_editor/transform_dialog", TTR("Transform Dialog...")), MENU_TRANSFORM_DIALOG); diff --git a/editor/plugins/sprite_editor_plugin.cpp b/editor/plugins/sprite_editor_plugin.cpp index 7642bfaf04..2deb2090e2 100644 --- a/editor/plugins/sprite_editor_plugin.cpp +++ b/editor/plugins/sprite_editor_plugin.cpp @@ -327,7 +327,14 @@ void SpriteEditor::_convert_to_mesh_2d_node() { MeshInstance2D *mesh_instance = memnew(MeshInstance2D); mesh_instance->set_mesh(mesh); - EditorNode::get_singleton()->get_scene_tree_dock()->replace_node(node, mesh_instance); + + UndoRedo *ur = EditorNode::get_singleton()->get_undo_redo(); + ur->create_action(TTR("Convert to Mesh2D")); + ur->add_do_method(EditorNode::get_singleton()->get_scene_tree_dock(), "replace_node", node, mesh_instance, true, false); + ur->add_do_reference(mesh_instance); + ur->add_undo_method(EditorNode::get_singleton()->get_scene_tree_dock(), "replace_node", mesh_instance, node, false, false); + ur->add_undo_reference(node); + ur->commit_action(); } void SpriteEditor::_convert_to_polygon_2d_node() { @@ -379,7 +386,13 @@ void SpriteEditor::_convert_to_polygon_2d_node() { polygon_2d_instance->set_polygon(polygon); polygon_2d_instance->set_polygons(polys); - EditorNode::get_singleton()->get_scene_tree_dock()->replace_node(node, polygon_2d_instance); + UndoRedo *ur = EditorNode::get_singleton()->get_undo_redo(); + ur->create_action(TTR("Convert to Polygon2D")); + ur->add_do_method(EditorNode::get_singleton()->get_scene_tree_dock(), "replace_node", node, polygon_2d_instance, true, false); + ur->add_do_reference(polygon_2d_instance); + ur->add_undo_method(EditorNode::get_singleton()->get_scene_tree_dock(), "replace_node", polygon_2d_instance, node, false, false); + ur->add_undo_reference(node); + ur->commit_action(); } void SpriteEditor::_create_collision_polygon_2d_node() { @@ -396,7 +409,12 @@ void SpriteEditor::_create_collision_polygon_2d_node() { CollisionPolygon2D *collision_polygon_2d_instance = memnew(CollisionPolygon2D); collision_polygon_2d_instance->set_polygon(outline); - _add_as_sibling_or_child(node, collision_polygon_2d_instance); + UndoRedo *ur = EditorNode::get_singleton()->get_undo_redo(); + ur->create_action(TTR("Create CollisionPolygon2D Sibling")); + ur->add_do_method(this, "_add_as_sibling_or_child", node, collision_polygon_2d_instance); + ur->add_do_reference(collision_polygon_2d_instance); + ur->add_undo_method(node != this->get_tree()->get_edited_scene_root() ? node->get_parent() : this->get_tree()->get_edited_scene_root(), "remove_child", collision_polygon_2d_instance); + ur->commit_action(); } } @@ -425,15 +443,20 @@ void SpriteEditor::_create_light_occluder_2d_node() { LightOccluder2D *light_occluder_2d_instance = memnew(LightOccluder2D); light_occluder_2d_instance->set_occluder_polygon(polygon); - _add_as_sibling_or_child(node, light_occluder_2d_instance); + UndoRedo *ur = EditorNode::get_singleton()->get_undo_redo(); + ur->create_action(TTR("Create LightOccluder2D Sibling")); + ur->add_do_method(this, "_add_as_sibling_or_child", node, light_occluder_2d_instance); + ur->add_do_reference(light_occluder_2d_instance); + ur->add_undo_method(node != this->get_tree()->get_edited_scene_root() ? node->get_parent() : this->get_tree()->get_edited_scene_root(), "remove_child", light_occluder_2d_instance); + ur->commit_action(); } } -void SpriteEditor::_add_as_sibling_or_child(Node2D *p_own_node, Node2D *p_new_node) { +void SpriteEditor::_add_as_sibling_or_child(Node *p_own_node, Node *p_new_node) { // Can't make sibling if own node is scene root if (p_own_node != this->get_tree()->get_edited_scene_root()) { p_own_node->get_parent()->add_child(p_new_node, true); - p_new_node->set_transform(p_own_node->get_transform()); + Object::cast_to<Node2D>(p_new_node)->set_transform(Object::cast_to<Node2D>(p_own_node)->get_transform()); } else { p_own_node->add_child(p_new_node, true); } @@ -534,6 +557,7 @@ void SpriteEditor::_bind_methods() { ClassDB::bind_method("_debug_uv_draw", &SpriteEditor::_debug_uv_draw); ClassDB::bind_method("_update_mesh_data", &SpriteEditor::_update_mesh_data); ClassDB::bind_method("_create_node", &SpriteEditor::_create_node); + ClassDB::bind_method("_add_as_sibling_or_child", &SpriteEditor::_add_as_sibling_or_child); } SpriteEditor::SpriteEditor() { diff --git a/editor/plugins/sprite_editor_plugin.h b/editor/plugins/sprite_editor_plugin.h index 460f5a5707..81be4a19e9 100644 --- a/editor/plugins/sprite_editor_plugin.h +++ b/editor/plugins/sprite_editor_plugin.h @@ -84,7 +84,7 @@ class SpriteEditor : public Control { void _create_collision_polygon_2d_node(); void _create_light_occluder_2d_node(); - void _add_as_sibling_or_child(Node2D *p_own_node, Node2D *p_new_node); + void _add_as_sibling_or_child(Node *p_own_node, Node *p_new_node); protected: void _node_removed(Node *p_node); diff --git a/editor/plugins/text_editor.cpp b/editor/plugins/text_editor.cpp index becaae3567..eeef3397d2 100644 --- a/editor/plugins/text_editor.cpp +++ b/editor/plugins/text_editor.cpp @@ -93,6 +93,7 @@ void TextEditor::_load_theme_settings() { Color function_color = EDITOR_GET("text_editor/highlighting/function_color"); Color member_variable_color = EDITOR_GET("text_editor/highlighting/member_variable_color"); Color mark_color = EDITOR_GET("text_editor/highlighting/mark_color"); + Color bookmark_color = EDITOR_GET("text_editor/highlighting/bookmark_color"); Color breakpoint_color = EDITOR_GET("text_editor/highlighting/breakpoint_color"); Color executing_line_color = EDITOR_GET("text_editor/highlighting/executing_line_color"); Color code_folding_color = EDITOR_GET("text_editor/highlighting/code_folding_color"); @@ -127,6 +128,7 @@ void TextEditor::_load_theme_settings() { text_edit->add_color_override("breakpoint_color", breakpoint_color); text_edit->add_color_override("executing_line_color", executing_line_color); text_edit->add_color_override("mark_color", mark_color); + text_edit->add_color_override("bookmark_color", bookmark_color); text_edit->add_color_override("code_folding_color", code_folding_color); text_edit->add_color_override("search_result_color", search_result_color); text_edit->add_color_override("search_result_border_color", search_result_border_color); @@ -202,7 +204,6 @@ void TextEditor::reload_text() { int v = te->get_v_scroll(); te->set_text(text_file->get_text()); - te->clear_undo_history(); te->cursor_set_line(row); te->cursor_set_column(column); te->set_h_scroll(h); @@ -250,6 +251,11 @@ void TextEditor::trim_trailing_whitespace() { code_editor->trim_trailing_whitespace(); } +void TextEditor::insert_final_newline() { + + code_editor->insert_final_newline(); +} + void TextEditor::convert_indent_to_spaces() { code_editor->convert_indent_to_spaces(); @@ -438,6 +444,22 @@ void TextEditor::_edit_option(int p_op) { goto_line_dialog->popup_find_line(tx); } break; + case BOOKMARK_TOGGLE: { + + code_editor->toggle_bookmark(); + } break; + case BOOKMARK_GOTO_NEXT: { + + code_editor->goto_next_bookmark(); + } break; + case BOOKMARK_GOTO_PREV: { + + code_editor->goto_prev_bookmark(); + } break; + case BOOKMARK_REMOVE_ALL: { + + code_editor->remove_all_bookmarks(); + } break; } } @@ -620,5 +642,18 @@ TextEditor::TextEditor() { highlighter_menu->add_radio_check_item(TTR("Standard")); highlighter_menu->connect("id_pressed", this, "_change_syntax_highlighter"); + PopupMenu *bookmarks = memnew(PopupMenu); + bookmarks->set_name("bookmarks"); + edit_menu->get_popup()->add_child(bookmarks); + edit_menu->get_popup()->add_submenu_item(TTR("Bookmarks"), "bookmarks"); + bookmarks->add_shortcut(ED_GET_SHORTCUT("script_text_editor/toggle_bookmark"), BOOKMARK_TOGGLE); + bookmarks->add_shortcut(ED_GET_SHORTCUT("script_text_editor/remove_all_bookmarks"), BOOKMARK_REMOVE_ALL); + bookmarks->add_shortcut(ED_GET_SHORTCUT("script_text_editor/goto_next_bookmark"), BOOKMARK_GOTO_NEXT); + bookmarks->add_shortcut(ED_GET_SHORTCUT("script_text_editor/goto_previous_bookmark"), BOOKMARK_GOTO_PREV); + bookmarks->connect("id_pressed", this, "_edit_option"); + code_editor->get_text_edit()->set_drag_forwarding(this); } + +void TextEditor::validate() { +} diff --git a/editor/plugins/text_editor.h b/editor/plugins/text_editor.h index 767001e2f6..e91909e0ea 100644 --- a/editor/plugins/text_editor.h +++ b/editor/plugins/text_editor.h @@ -87,6 +87,10 @@ private: SEARCH_FIND_PREV, SEARCH_REPLACE, SEARCH_GOTO_LINE, + BOOKMARK_TOGGLE, + BOOKMARK_GOTO_NEXT, + BOOKMARK_GOTO_PREV, + BOOKMARK_REMOVE_ALL, }; protected: @@ -126,6 +130,7 @@ public: virtual void set_executing_line(int p_line); virtual void clear_executing_line(); virtual void trim_trailing_whitespace(); + virtual void insert_final_newline(); virtual void convert_indent_to_spaces(); virtual void convert_indent_to_tabs(); virtual void ensure_focus(); @@ -140,6 +145,8 @@ public: virtual Control *get_edit_menu(); virtual void clear_edit_menu(); + virtual void validate(); + static void register_editor(); TextEditor(); diff --git a/editor/plugins/theme_editor_plugin.cpp b/editor/plugins/theme_editor_plugin.cpp index 85743c96d6..5b67d259ba 100644 --- a/editor/plugins/theme_editor_plugin.cpp +++ b/editor/plugins/theme_editor_plugin.cpp @@ -631,12 +631,14 @@ ThemeEditor::ThemeEditor() { scroll = memnew(ScrollContainer); add_child(scroll); + scroll->set_theme(Theme::get_default()); scroll->set_enable_v_scroll(true); scroll->set_enable_h_scroll(false); scroll->set_v_size_flags(SIZE_EXPAND_FILL); main_container = memnew(MarginContainer); scroll->add_child(main_container); + main_container->set_theme(Theme::get_default()); main_container->set_clip_contents(true); main_container->set_custom_minimum_size(Size2(700, 0) * EDSCALE); main_container->set_v_size_flags(SIZE_EXPAND_FILL); @@ -646,11 +648,9 @@ ThemeEditor::ThemeEditor() { Panel *panel = memnew(Panel); main_container->add_child(panel); - panel->set_theme(Theme::get_default()); MarginContainer *mc = memnew(MarginContainer); main_container->add_child(mc); - mc->set_theme(Theme::get_default()); mc->add_constant_override("margin_right", 4 * EDSCALE); mc->add_constant_override("margin_top", 4 * EDSCALE); mc->add_constant_override("margin_left", 4 * EDSCALE); @@ -879,11 +879,9 @@ ThemeEditor::ThemeEditor() { void ThemeEditorPlugin::edit(Object *p_node) { if (Object::cast_to<Theme>(p_node)) { - theme_editor->show(); theme_editor->edit(Object::cast_to<Theme>(p_node)); } else { theme_editor->edit(Ref<Theme>()); - theme_editor->hide(); } } @@ -898,11 +896,11 @@ void ThemeEditorPlugin::make_visible(bool p_visible) { theme_editor->set_process(true); button->show(); editor->make_bottom_panel_item_visible(theme_editor); - } else { theme_editor->set_process(false); if (theme_editor->is_visible_in_tree()) editor->hide_bottom_panel(); + button->hide(); } } diff --git a/editor/plugins/tile_map_editor_plugin.cpp b/editor/plugins/tile_map_editor_plugin.cpp index 29a54f815d..16f93b8fd3 100644 --- a/editor/plugins/tile_map_editor_plugin.cpp +++ b/editor/plugins/tile_map_editor_plugin.cpp @@ -299,9 +299,13 @@ void TileMapEditor::_set_cell(const Point2i &p_pos, Vector<int> p_values, bool p Vector2 position; int current = manual_palette->get_current(); if (current != -1) { - position = manual_palette->get_item_metadata(current); + if (tool != TOOL_PASTING) { + position = manual_palette->get_item_metadata(current); + } else { + position = p_autotile_coord; + } } else { - // if there is no manual tile selected, that either means that + // If there is no manual tile selected, that either means that // autotiling is enabled, or the given tile is not autotiling. Either // way, the coordinate of the tile does not matter, so assigning it to // the coordinate of the existing tile works fine. @@ -309,7 +313,7 @@ void TileMapEditor::_set_cell(const Point2i &p_pos, Vector<int> p_values, bool p } if (p_value == prev_val && p_flip_h == prev_flip_h && p_flip_v == prev_flip_v && p_transpose == prev_transpose && prev_position == position) - return; //check that it's actually different + return; // Check that it's actually different. for (int y = p_pos.y - 1; y <= p_pos.y + 1; y++) { for (int x = p_pos.x - 1; x <= p_pos.x + 1; x++) { @@ -322,15 +326,19 @@ void TileMapEditor::_set_cell(const Point2i &p_pos, Vector<int> p_values, bool p node->_set_celld(p_pos, _create_cell_dictionary(p_value, p_flip_h, p_flip_v, p_transpose, p_autotile_coord)); + if (tool == TOOL_PASTING) + return; + if (manual_autotile || (p_value != -1 && node->get_tileset()->tile_get_tile_mode(p_value) == TileSet::ATLAS_TILE)) { if (current != -1) { node->set_cell_autotile_coord(p_pos.x, p_pos.y, position); + } else if (node->get_tileset()->tile_get_tile_mode(p_value) == TileSet::ATLAS_TILE && priority_atlastile) { + // BIND_CENTER is used to indicate that bitmask should not update for this tile cell. + node->get_tileset()->autotile_set_bitmask(p_value, Vector2(p_pos.x, p_pos.y), TileSet::BIND_CENTER); + node->update_cell_bitmask(p_pos.x, p_pos.y); } } else { - // manually placing tiles should not update bitmasks - if (tool != TOOL_PASTING) { - node->update_bitmask_area(Point2(p_pos)); - } + node->update_bitmask_area(Point2(p_pos)); } } @@ -339,6 +347,11 @@ void TileMapEditor::_manual_toggled(bool p_enabled) { _update_palette(); } +void TileMapEditor::_priority_toggled(bool p_enabled) { + priority_atlastile = p_enabled; + _update_palette(); +} + void TileMapEditor::_text_entered(const String &p_text) { canvas_item_editor_viewport->grab_focus(); @@ -385,6 +398,8 @@ void TileMapEditor::_update_palette() { // Update the palette Vector<int> selected = get_selected_tiles(); + int selected_single = palette->get_current(); + int selected_manual = manual_palette->get_current(); palette->clear(); manual_palette->clear(); manual_palette->hide(); @@ -492,12 +507,13 @@ void TileMapEditor::_update_palette() { if (selected.get(0) != TileMap::INVALID_CELL) { set_selected_tiles(selected); sel_tile = selected.get(Math::rand() % selected.size()); - } else { + } else if (palette->get_item_count() > 0) { palette->select(0); } if (sel_tile != TileMap::INVALID_CELL) { - if ((manual_autotile && tileset->tile_get_tile_mode(sel_tile) == TileSet::AUTO_TILE) || tileset->tile_get_tile_mode(sel_tile) == TileSet::ATLAS_TILE) { + if ((manual_autotile && tileset->tile_get_tile_mode(sel_tile) == TileSet::AUTO_TILE) || + (!priority_atlastile && tileset->tile_get_tile_mode(sel_tile) == TileSet::ATLAS_TILE)) { const Map<Vector2, uint32_t> &tiles2 = tileset->autotile_get_bitmask_map(sel_tile); @@ -533,16 +549,19 @@ void TileMapEditor::_update_palette() { if (manual_palette->get_item_count() > 0) { // Only show the manual palette if at least tile exists in it - int selected2 = manual_palette->get_current(); - if (selected2 == -1) selected2 = 0; - manual_palette->set_current(selected2); + if (selected_manual == -1 || selected_single != palette->get_current()) + selected_manual = 0; + if (selected_manual < manual_palette->get_item_count()) + manual_palette->set_current(selected_manual); manual_palette->show(); } if (sel_tile != TileMap::INVALID_CELL && tileset->tile_get_tile_mode(sel_tile) == TileSet::AUTO_TILE) { manual_button->show(); + priority_button->hide(); } else { manual_button->hide(); + priority_button->show(); } } @@ -553,23 +572,25 @@ void TileMapEditor::_pick_tile(const Point2 &p_pos) { if (id == TileMap::INVALID_CELL) return; - if (search_box->get_text().strip_edges() != "") { - + if (search_box->get_text() != "") { search_box->set_text(""); _update_palette(); } - Vector<int> selected; - - selected.push_back(id); - set_selected_tiles(selected); - flip_h = node->is_cell_x_flipped(p_pos.x, p_pos.y); flip_v = node->is_cell_y_flipped(p_pos.x, p_pos.y); transpose = node->is_cell_transposed(p_pos.x, p_pos.y); autotile_coord = node->get_cell_autotile_coord(p_pos.x, p_pos.y); + Vector<int> selected; + selected.push_back(id); + set_selected_tiles(selected); _update_palette(); + + if ((manual_autotile && node->get_tileset()->tile_get_tile_mode(id) == TileSet::AUTO_TILE) || (!priority_atlastile && node->get_tileset()->tile_get_tile_mode(id) == TileSet::ATLAS_TILE)) { + manual_palette->select(manual_palette->find_metadata((Point2)autotile_coord)); + } + CanvasItemEditor::get_singleton()->update_viewport(); } @@ -686,7 +707,8 @@ void TileMapEditor::_fill_points(const PoolVector<Vector2> p_points, const Dicti _set_cell(pr[i], ids, xf, yf, tr); node->make_bitmask_area_dirty(pr[i]); } - node->update_dirty_bitmask(); + if (!manual_autotile) + node->update_dirty_bitmask(); } void TileMapEditor::_erase_points(const PoolVector<Vector2> p_points) { @@ -744,15 +766,15 @@ void TileMapEditor::_draw_cell(Control *p_viewport, int p_cell, const Point2i &p Rect2 r = node->get_tileset()->tile_get_region(p_cell); if (node->get_tileset()->tile_get_tile_mode(p_cell) == TileSet::AUTO_TILE || node->get_tileset()->tile_get_tile_mode(p_cell) == TileSet::ATLAS_TILE) { Vector2 offset; - int selected = manual_palette->get_current(); - if ((manual_autotile || node->get_tileset()->tile_get_tile_mode(p_cell) == TileSet::ATLAS_TILE) && selected != -1) { - offset = manual_palette->get_item_metadata(selected); - } else { - if (tool != TOOL_PASTING) { - offset = node->get_tileset()->autotile_get_icon_coordinate(p_cell); + if (tool != TOOL_PASTING) { + int selected = manual_palette->get_current(); + if ((manual_autotile || (node->get_tileset()->tile_get_tile_mode(p_cell) == TileSet::ATLAS_TILE && !priority_atlastile)) && selected != -1) { + offset = manual_palette->get_item_metadata(selected); } else { - offset = p_autotile_coord; + offset = node->get_tileset()->autotile_get_icon_coordinate(p_cell); } + } else { + offset = p_autotile_coord; } int spacing = node->get_tileset()->autotile_get_spacing(p_cell); @@ -760,7 +782,8 @@ void TileMapEditor::_draw_cell(Control *p_viewport, int p_cell, const Point2i &p r.position += (r.size + Vector2(spacing, spacing)) * offset; } Size2 sc = p_xform.get_scale(); - + /* For a future CheckBox to Center Texture: + Size2 cell_size = node->get_cell_size(); */ Rect2 rect = Rect2(); rect.position = node->map_to_world(p_point) + node->get_cell_draw_offset(); @@ -770,72 +793,37 @@ void TileMapEditor::_draw_cell(Control *p_viewport, int p_cell, const Point2i &p rect.size = r.size; } - if (rect.size.y > rect.size.x) { - if ((p_flip_h && (p_flip_v || p_transpose)) || (p_flip_v && !p_transpose)) - tile_ofs.y += rect.size.y - rect.size.x; - } else if (rect.size.y < rect.size.x) { - if ((p_flip_v && (p_flip_h || p_transpose)) || (p_flip_h && !p_transpose)) - tile_ofs.x += rect.size.x - rect.size.y; - } - if (p_transpose) { SWAP(tile_ofs.x, tile_ofs.y); + /* For a future CheckBox to Center Texture: + rect.position.x += cell_size.x / 2 - rect.size.y / 2; + rect.position.y += cell_size.y / 2 - rect.size.x / 2; + } else { + rect.position += cell_size / 2 - rect.size / 2; */ } + if (p_flip_h) { sc.x *= -1.0; tile_ofs.x *= -1.0; } + if (p_flip_v) { sc.y *= -1.0; tile_ofs.y *= -1.0; } - if (node->get_tile_origin() == TileMap::TILE_ORIGIN_TOP_LEFT) { - - rect.position += tile_ofs; - } else if (node->get_tile_origin() == TileMap::TILE_ORIGIN_BOTTOM_LEFT) { - Size2 cell_size = node->get_cell_size(); - - rect.position += tile_ofs; - - if (p_transpose) { - if (p_flip_h) - rect.position.x -= cell_size.x; - else - rect.position.x += cell_size.x; - } else { - if (p_flip_v) - rect.position.y -= cell_size.y; - else - rect.position.y += cell_size.y; - } - - } else if (node->get_tile_origin() == TileMap::TILE_ORIGIN_CENTER) { - Size2 cell_size = node->get_cell_size(); - - rect.position += tile_ofs; - - if (p_flip_h) - rect.position.x -= cell_size.x / 2; - else - rect.position.x += cell_size.x / 2; - - if (p_flip_v) - rect.position.y -= cell_size.y / 2; - else - rect.position.y += cell_size.y / 2; - } - + rect.position += tile_ofs; rect.position = p_xform.xform(rect.position); rect.size *= sc; Color modulate = node->get_tileset()->tile_get_modulate(p_cell); modulate.a = 0.5; - if (r.has_no_area()) + if (r.has_no_area()) { p_viewport->draw_texture_rect(t, rect, false, modulate, p_transpose); - else + } else { p_viewport->draw_texture_rect_region(t, rect, r, modulate, p_transpose); + } } void TileMapEditor::_draw_fill_preview(Control *p_viewport, int p_cell, const Point2i &p_point, bool p_flip_h, bool p_flip_v, bool p_transpose, const Point2i p_autotile_coord, const Transform2D &p_xform) { @@ -870,7 +858,6 @@ void TileMapEditor::_update_copydata() { TileData tcd; tcd.cell = node->get_cell(j, i); - if (tcd.cell != TileMap::INVALID_CELL) { tcd.pos = Point2i(j, i); tcd.flip_h = node->is_cell_x_flipped(j, i); @@ -997,7 +984,7 @@ bool TileMapEditor::forward_gui_input(const Ref<InputEvent> &p_event) { return true; } else { - // Mousebutton was released + // Mousebutton was released. if (tool != TOOL_NONE) { if (tool == TOOL_PAINTING) { @@ -1061,7 +1048,7 @@ bool TileMapEditor::forward_gui_input(const Ref<InputEvent> &p_event) { CanvasItemEditor::get_singleton()->update_viewport(); - return true; // We want to keep the Pasting tool + return true; // We want to keep the Pasting tool. } else if (tool == TOOL_SELECTING) { CanvasItemEditor::get_singleton()->update_viewport(); @@ -1085,7 +1072,10 @@ bool TileMapEditor::forward_gui_input(const Ref<InputEvent> &p_event) { _finish_undo(); - // We want to keep the bucket-tool active + // So the fill preview is cleared right after the click. + CanvasItemEditor::get_singleton()->update_viewport(); + + // We want to keep the bucket-tool active. return true; } @@ -1212,7 +1202,7 @@ bool TileMapEditor::forward_gui_input(const Ref<InputEvent> &p_event) { if (tool == TOOL_PAINTING) { - // Paint using bresenham line to prevent holes in painting if the user moves fast + // Paint using bresenham line to prevent holes in painting if the user moves fast. Vector<Point2i> points = line(old_over_tile.x, over_tile.x, old_over_tile.y, over_tile.y); Vector<int> ids = get_selected_tiles(); @@ -1233,7 +1223,7 @@ bool TileMapEditor::forward_gui_input(const Ref<InputEvent> &p_event) { if (tool == TOOL_ERASING) { - // erase using bresenham line to prevent holes in painting if the user moves fast + // Erase using bresenham line to prevent holes in painting if the user moves fast. Vector<Point2i> points = line(old_over_tile.x, over_tile.x, old_over_tile.y, over_tile.y); @@ -1358,13 +1348,13 @@ bool TileMapEditor::forward_gui_input(const Ref<InputEvent> &p_event) { } if (!mouse_over) { - // Editor shortcuts should not fire if mouse not in viewport + // Editor shortcuts should not fire if mouse not in viewport. return false; } if (ED_IS_SHORTCUT("tile_map_editor/paint_tile", p_event)) { // NOTE: We do not set tool = TOOL_PAINTING as this begins painting - // immediately without pressing the left mouse button first + // immediately without pressing the left mouse button first. tool = TOOL_NONE; CanvasItemEditor::get_singleton()->update_viewport(); @@ -1446,7 +1436,7 @@ bool TileMapEditor::forward_gui_input(const Ref<InputEvent> &p_event) { CanvasItemEditor::get_singleton()->update_viewport(); return true; } - } else if (k.is_valid()) { // release event + } else if (k.is_valid()) { // Release event. if (tool == TOOL_NONE) { @@ -1462,7 +1452,7 @@ bool TileMapEditor::forward_gui_input(const Ref<InputEvent> &p_event) { #else if (k->get_scancode() == KEY_CONTROL) { #endif - // go back to that last tool if KEY_CONTROL was released + // Go back to that last tool if KEY_CONTROL was released. tool = last_tool; CanvasItemEditor::get_singleton()->update_viewport(); @@ -1750,6 +1740,7 @@ void TileMapEditor::_icon_size_changed(float p_value) { void TileMapEditor::_bind_methods() { ClassDB::bind_method(D_METHOD("_manual_toggled"), &TileMapEditor::_manual_toggled); + ClassDB::bind_method(D_METHOD("_priority_toggled"), &TileMapEditor::_priority_toggled); ClassDB::bind_method(D_METHOD("_text_entered"), &TileMapEditor::_text_entered); ClassDB::bind_method(D_METHOD("_text_changed"), &TileMapEditor::_text_changed); ClassDB::bind_method(D_METHOD("_sbox_input"), &TileMapEditor::_sbox_input); @@ -1853,6 +1844,7 @@ TileMapEditor::TileMapEditor(EditorNode *p_editor) { node = NULL; manual_autotile = false; + priority_atlastile = false; manual_position = Vector2(0, 0); canvas_item_editor_viewport = NULL; editor = p_editor; @@ -1883,10 +1875,15 @@ TileMapEditor::TileMapEditor(EditorNode *p_editor) { add_child(tool_hb); manual_button = memnew(CheckBox); - manual_button->set_text("Disable Autotile"); + manual_button->set_text(TTR("Disable Autotile")); manual_button->connect("toggled", this, "_manual_toggled"); add_child(manual_button); + priority_button = memnew(CheckBox); + priority_button->set_text(TTR("Enable Priority")); + priority_button->connect("toggled", this, "_priority_toggled"); + add_child(priority_button); + search_box = memnew(LineEdit); search_box->set_h_size_flags(SIZE_EXPAND_FILL); search_box->connect("text_entered", this, "_text_entered"); @@ -1995,31 +1992,31 @@ TileMapEditor::TileMapEditor(EditorNode *p_editor) { p->connect("id_pressed", this, "_menu_option"); rotate_left_button = memnew(ToolButton); - rotate_left_button->set_tooltip(TTR("Rotate left")); + rotate_left_button->set_tooltip(TTR("Rotate Left")); rotate_left_button->set_focus_mode(FOCUS_NONE); rotate_left_button->connect("pressed", this, "_rotate", varray(-1)); tool_hb->add_child(rotate_left_button); rotate_right_button = memnew(ToolButton); - rotate_right_button->set_tooltip(TTR("Rotate right")); + rotate_right_button->set_tooltip(TTR("Rotate Right")); rotate_right_button->set_focus_mode(FOCUS_NONE); rotate_right_button->connect("pressed", this, "_rotate", varray(1)); tool_hb->add_child(rotate_right_button); flip_horizontal_button = memnew(ToolButton); - flip_horizontal_button->set_tooltip(TTR("Flip horizontally")); + flip_horizontal_button->set_tooltip(TTR("Flip Horizontally")); flip_horizontal_button->set_focus_mode(FOCUS_NONE); flip_horizontal_button->connect("pressed", this, "_flip_horizontal"); tool_hb->add_child(flip_horizontal_button); flip_vertical_button = memnew(ToolButton); - flip_vertical_button->set_tooltip(TTR("Flip vertically")); + flip_vertical_button->set_tooltip(TTR("Flip Vertically")); flip_vertical_button->set_focus_mode(FOCUS_NONE); flip_vertical_button->connect("pressed", this, "_flip_vertical"); tool_hb->add_child(flip_vertical_button); clear_transform_button = memnew(ToolButton); - clear_transform_button->set_tooltip(TTR("Clear transform")); + clear_transform_button->set_tooltip(TTR("Clear Transform")); clear_transform_button->set_focus_mode(FOCUS_NONE); clear_transform_button->connect("pressed", this, "_clear_transform"); tool_hb->add_child(clear_transform_button); diff --git a/editor/plugins/tile_map_editor_plugin.h b/editor/plugins/tile_map_editor_plugin.h index fcdada1111..3f0abd1e6e 100644 --- a/editor/plugins/tile_map_editor_plugin.h +++ b/editor/plugins/tile_map_editor_plugin.h @@ -74,6 +74,7 @@ class TileMapEditor : public VBoxContainer { TileMap *node; bool manual_autotile; + bool priority_atlastile; Vector2 manual_position; EditorNode *editor; @@ -103,6 +104,7 @@ class TileMapEditor : public VBoxContainer { ToolButton *clear_transform_button; CheckBox *manual_button; + CheckBox *priority_button; Tool tool; Tool last_tool; @@ -183,6 +185,7 @@ class TileMapEditor : public VBoxContainer { void set_selected_tiles(Vector<int> p_tile); void _manual_toggled(bool p_enabled); + void _priority_toggled(bool p_enabled); void _text_entered(const String &p_text); void _text_changed(const String &p_text); void _sbox_input(const Ref<InputEvent> &p_ie); diff --git a/editor/plugins/tile_set_editor_plugin.cpp b/editor/plugins/tile_set_editor_plugin.cpp index 93c6614841..4b225fddf5 100644 --- a/editor/plugins/tile_set_editor_plugin.cpp +++ b/editor/plugins/tile_set_editor_plugin.cpp @@ -372,6 +372,15 @@ TileSetEditor::TileSetEditor(EditorNode *p_editor) { tool_editmode[EDITMODE_COLLISION]->set_pressed(true); edit_mode = EDITMODE_COLLISION; + tool_editmode[EDITMODE_REGION]->set_shortcut(ED_SHORTCUT("tileset_editor/editmode_region", TTR("Region Mode"), KEY_1)); + tool_editmode[EDITMODE_COLLISION]->set_shortcut(ED_SHORTCUT("tileset_editor/editmode_collision", TTR("Collision Mode"), KEY_2)); + tool_editmode[EDITMODE_OCCLUSION]->set_shortcut(ED_SHORTCUT("tileset_editor/editmode_occlusion", TTR("Occlusion Mode"), KEY_3)); + tool_editmode[EDITMODE_NAVIGATION]->set_shortcut(ED_SHORTCUT("tileset_editor/editmode_navigation", TTR("Navigation Mode"), KEY_4)); + tool_editmode[EDITMODE_BITMASK]->set_shortcut(ED_SHORTCUT("tileset_editor/editmode_bitmask", TTR("Bitmask Mode"), KEY_5)); + tool_editmode[EDITMODE_PRIORITY]->set_shortcut(ED_SHORTCUT("tileset_editor/editmode_priority", TTR("Priority Mode"), KEY_6)); + tool_editmode[EDITMODE_ICON]->set_shortcut(ED_SHORTCUT("tileset_editor/editmode_icon", TTR("Icon Mode"), KEY_7)); + tool_editmode[EDITMODE_Z_INDEX]->set_shortcut(ED_SHORTCUT("tileset_editor/editmode_z_index", TTR("Z Index Mode"), KEY_8)); + main_vb->add_child(tool_hb); separator_editmode = memnew(HSeparator); main_vb->add_child(separator_editmode); @@ -3095,7 +3104,6 @@ void TileSetEditor::update_workspace_tile_mode() { _select_edited_shape_coord(); tool_editmode[EDITMODE_BITMASK]->hide(); - tool_editmode[EDITMODE_PRIORITY]->hide(); } _on_edit_mode_changed(edit_mode); } diff --git a/editor/plugins/visual_shader_editor_plugin.cpp b/editor/plugins/visual_shader_editor_plugin.cpp index ad698be0a3..a1b903576e 100644 --- a/editor/plugins/visual_shader_editor_plugin.cpp +++ b/editor/plugins/visual_shader_editor_plugin.cpp @@ -31,6 +31,7 @@ #include "visual_shader_editor_plugin.h" #include "core/io/resource_loader.h" +#include "core/math/math_defs.h" #include "core/os/input.h" #include "core/os/keyboard.h" #include "core/project_settings.h" @@ -68,6 +69,7 @@ void VisualShaderEditor::edit(VisualShader *p_visual_shader) { } } visual_shader = Ref<VisualShader>(p_visual_shader); + visual_shader->set_graph_offset(graph->get_scroll_ofs() / EDSCALE); } else { visual_shader.unref(); } @@ -358,7 +360,9 @@ void VisualShaderEditor::_update_graph() { for (int i = 0; i < graph->get_child_count(); i++) { if (Object::cast_to<GraphNode>(graph->get_child(i))) { - memdelete(graph->get_child(i)); + Node *node = graph->get_child(i); + graph->remove_child(node); + memdelete(node); i--; } } @@ -377,13 +381,33 @@ void VisualShaderEditor::_update_graph() { Vector<int> nodes = visual_shader->get_node_list(type); + Control *offset; + for (int n_i = 0; n_i < nodes.size(); n_i++) { Vector2 position = visual_shader->get_node_position(type, nodes[n_i]); Ref<VisualShaderNode> vsnode = visual_shader->get_node(type, nodes[n_i]); + Ref<VisualShaderNodeGroupBase> group_node = Object::cast_to<VisualShaderNodeGroupBase>(vsnode.ptr()); + bool is_group = !group_node.is_null(); + Size2 size = Size2(0, 0); + + Ref<VisualShaderNodeExpression> expression_node = Object::cast_to<VisualShaderNodeExpression>(group_node.ptr()); + bool is_expression = !expression_node.is_null(); + String expression = ""; + GraphNode *node = memnew(GraphNode); + if (is_group) { + size = group_node->get_size(); + + node->set_resizable(true); + node->connect("resize_request", this, "_node_resized", varray((int)type, nodes[n_i])); + } + if (is_expression) { + expression = expression_node->get_expression(); + } + /*if (!vsnode->is_connected("changed", this, "_node_changed")) { vsnode->connect("changed", this, "_node_changed", varray(vsnode->get_instance_id()), CONNECT_DEFERRED); }*/ @@ -403,6 +427,10 @@ void VisualShaderEditor::_update_graph() { Control *custom_editor = NULL; int port_offset = 0; + if (is_group) { + port_offset++; + } + Ref<VisualShaderNodeUniform> uniform = vsnode; if (uniform.is_valid()) { graph->add_child(node); @@ -438,6 +466,24 @@ void VisualShaderEditor::_update_graph() { custom_editor = NULL; } + if (is_group) { + HBoxContainer *hb2 = memnew(HBoxContainer); + + Button *add_input_btn = memnew(Button); + add_input_btn->set_text(TTR("Add input +")); + add_input_btn->connect("pressed", this, "_add_input_port", varray(nodes[n_i], group_node->get_free_input_port_id(), VisualShaderNode::PORT_TYPE_VECTOR, "input" + itos(group_node->get_free_input_port_id())), CONNECT_DEFERRED); + hb2->add_child(add_input_btn); + + hb2->add_spacer(); + + Button *add_output_btn = memnew(Button); + add_output_btn->set_text(TTR("Add output +")); + add_output_btn->connect("pressed", this, "_add_output_port", varray(nodes[n_i], group_node->get_free_output_port_id(), VisualShaderNode::PORT_TYPE_VECTOR, "output" + itos(group_node->get_free_output_port_id())), CONNECT_DEFERRED); + hb2->add_child(add_output_btn); + + node->add_child(hb2); + } + for (int i = 0; i < MAX(vsnode->get_input_port_count(), vsnode->get_output_port_count()); i++) { if (vsnode->is_port_separator(i)) { @@ -507,21 +553,75 @@ void VisualShaderEditor::_update_graph() { if (valid_left) { - Label *label = memnew(Label); - label->set_text(name_left); - label->add_style_override("normal", label_style); //more compact - hb->add_child(label); + if (is_group) { + + OptionButton *type_box = memnew(OptionButton); + hb->add_child(type_box); + type_box->add_item(TTR("Scalar")); + type_box->add_item(TTR("Vector")); + type_box->add_item(TTR("Boolean")); + type_box->add_item(TTR("Transform")); + type_box->select(group_node->get_input_port_type(i)); + type_box->set_custom_minimum_size(Size2(100 * EDSCALE, 0)); + type_box->connect("item_selected", this, "_change_input_port_type", varray(nodes[n_i], i), CONNECT_DEFERRED); + + LineEdit *name_box = memnew(LineEdit); + hb->add_child(name_box); + name_box->set_custom_minimum_size(Size2(60 * EDSCALE, 0)); + name_box->set_text(name_left); + name_box->set_expand_to_text_length(true); + name_box->connect("text_entered", this, "_change_input_port_name", varray(name_box, nodes[n_i], i)); + name_box->connect("focus_exited", this, "_port_name_focus_out", varray(name_box, nodes[n_i], i, false)); + + if (is_group) { + Button *remove_btn = memnew(Button); + remove_btn->set_icon(EditorNode::get_singleton()->get_gui_base()->get_icon("Remove", "EditorIcons")); + remove_btn->set_tooltip(TTR("Remove") + " " + name_left); + remove_btn->connect("pressed", this, "_remove_input_port", varray(nodes[n_i], i), CONNECT_DEFERRED); + hb->add_child(remove_btn); + } + } else { + + Label *label = memnew(Label); + label->set_text(name_left); + label->add_style_override("normal", label_style); //more compact + hb->add_child(label); + } } hb->add_spacer(); if (valid_right) { - - Label *label = memnew(Label); - label->set_text(name_right); - label->set_align(Label::ALIGN_RIGHT); - label->add_style_override("normal", label_style); //more compact - hb->add_child(label); + if (is_group) { + Button *remove_btn = memnew(Button); + remove_btn->set_icon(EditorNode::get_singleton()->get_gui_base()->get_icon("Remove", "EditorIcons")); + remove_btn->set_tooltip(TTR("Remove") + " " + name_left); + remove_btn->connect("pressed", this, "_remove_output_port", varray(nodes[n_i], i), CONNECT_DEFERRED); + hb->add_child(remove_btn); + + LineEdit *name_box = memnew(LineEdit); + hb->add_child(name_box); + name_box->set_custom_minimum_size(Size2(60 * EDSCALE, 0)); + name_box->set_text(name_right); + name_box->set_expand_to_text_length(true); + name_box->connect("text_entered", this, "_change_output_port_name", varray(name_box, nodes[n_i], i)); + name_box->connect("focus_exited", this, "_port_name_focus_out", varray(name_box, nodes[n_i], i, true)); + + OptionButton *type_box = memnew(OptionButton); + hb->add_child(type_box); + type_box->add_item(TTR("Scalar")); + type_box->add_item(TTR("Vector")); + type_box->add_item(TTR("Boolean")); + type_box->add_item(TTR("Transform")); + type_box->select(group_node->get_output_port_type(i)); + type_box->set_custom_minimum_size(Size2(100 * EDSCALE, 0)); + type_box->connect("item_selected", this, "_change_output_port_type", varray(nodes[n_i], i), CONNECT_DEFERRED); + } else { + Label *label = memnew(Label); + label->set_text(name_right); + label->add_style_override("normal", label_style); //more compact + hb->add_child(label); + } } } @@ -540,18 +640,33 @@ void VisualShaderEditor::_update_graph() { hb->add_child(preview); } + if (is_group) { + offset = memnew(Control); + offset->set_custom_minimum_size(Size2(0, 5 * EDSCALE)); + node->add_child(offset); + port_offset++; + } + node->add_child(hb); node->set_slot(i + port_offset, valid_left, port_left, type_color[port_left], valid_right, port_right, type_color[port_right]); } if (vsnode->get_output_port_for_preview() >= 0 && vsnode->get_output_port_type(vsnode->get_output_port_for_preview()) != VisualShaderNode::PORT_TYPE_TRANSFORM) { + offset = memnew(Control); + offset->set_custom_minimum_size(Size2(0, 5 * EDSCALE)); + node->add_child(offset); + VisualShaderNodePortPreview *port_preview = memnew(VisualShaderNodePortPreview); port_preview->setup(visual_shader, type, nodes[n_i], vsnode->get_output_port_for_preview()); port_preview->set_h_size_flags(SIZE_SHRINK_CENTER); node->add_child(port_preview); } + offset = memnew(Control); + offset->set_custom_minimum_size(Size2(0, 5 * EDSCALE)); + node->add_child(offset); + String error = vsnode->get_warning(visual_shader->get_mode(), type); if (error != String()) { Label *error_label = memnew(Label); @@ -560,9 +675,42 @@ void VisualShaderEditor::_update_graph() { node->add_child(error_label); } + if (is_expression) { + + TextEdit *expression_box = memnew(TextEdit); + expression_node->set_control(expression_box, 0); + node->add_child(expression_box); + + Color text_color = EDITOR_GET("text_editor/highlighting/text_color"); + Color keyword_color = EDITOR_GET("text_editor/highlighting/keyword_color"); + Color comment_color = EDITOR_GET("text_editor/highlighting/comment_color"); + Color symbol_color = EDITOR_GET("text_editor/highlighting/symbol_color"); + + expression_box->set_syntax_coloring(true); + + for (List<String>::Element *E = keyword_list.front(); E; E = E->next()) { + + expression_box->add_keyword_color(E->get(), keyword_color); + } + + expression_box->add_font_override("font", get_font("expression", "EditorFonts")); + expression_box->add_color_override("font_color", text_color); + expression_box->add_color_override("symbol_color", symbol_color); + expression_box->add_color_region("/*", "*/", comment_color, false); + expression_box->add_color_region("//", "", comment_color, false); + + expression_box->set_text(expression); + expression_box->set_context_menu_enabled(false); + expression_box->set_show_line_numbers(true); + + expression_box->connect("focus_exited", this, "_expression_focus_out", varray(expression_box, nodes[n_i])); + } + if (!uniform.is_valid()) { graph->add_child(node); _update_created_node(node); + if (is_group) + call_deferred("_set_node_size", (int)type, nodes[n_i], size); } } @@ -577,6 +725,285 @@ void VisualShaderEditor::_update_graph() { } } +void VisualShaderEditor::_add_input_port(int p_node, int p_port, int p_port_type, const String &p_name) { + + VisualShader::Type type = VisualShader::Type(edit_type->get_selected()); + Ref<VisualShaderNodeExpression> node = visual_shader->get_node(type, p_node); + if (node.is_null()) { + return; + } + + undo_redo->create_action(TTR("Add input port")); + undo_redo->add_do_method(node.ptr(), "add_input_port", p_port, p_port_type, p_name); + undo_redo->add_undo_method(node.ptr(), "remove_input_port", p_port); + undo_redo->add_do_method(this, "_update_graph"); + undo_redo->add_undo_method(this, "_update_graph"); + undo_redo->add_do_method(this, "_rebuild"); + undo_redo->add_undo_method(this, "_rebuild"); + undo_redo->commit_action(); +} + +void VisualShaderEditor::_add_output_port(int p_node, int p_port, int p_port_type, const String &p_name) { + + VisualShader::Type type = VisualShader::Type(edit_type->get_selected()); + Ref<VisualShaderNodeGroupBase> node = visual_shader->get_node(type, p_node); + if (node.is_null()) { + return; + } + + undo_redo->create_action(TTR("Add output port")); + undo_redo->add_do_method(node.ptr(), "add_output_port", p_port, p_port_type, p_name); + undo_redo->add_undo_method(node.ptr(), "remove_output_port", p_port); + undo_redo->add_do_method(this, "_update_graph"); + undo_redo->add_undo_method(this, "_update_graph"); + undo_redo->add_do_method(this, "_rebuild"); + undo_redo->add_undo_method(this, "_rebuild"); + undo_redo->commit_action(); +} + +void VisualShaderEditor::_change_input_port_type(int p_type, int p_node, int p_port) { + + VisualShader::Type type = VisualShader::Type(edit_type->get_selected()); + Ref<VisualShaderNodeGroupBase> node = visual_shader->get_node(type, p_node); + if (node.is_null()) { + return; + } + + undo_redo->create_action(TTR("Change input port type")); + undo_redo->add_do_method(node.ptr(), "set_input_port_type", p_port, p_type); + undo_redo->add_undo_method(node.ptr(), "set_input_port_type", p_port, node->get_input_port_type(p_port)); + undo_redo->add_do_method(this, "_update_graph"); + undo_redo->add_undo_method(this, "_update_graph"); + undo_redo->add_do_method(this, "_rebuild"); + undo_redo->add_undo_method(this, "_rebuild"); + undo_redo->commit_action(); +} + +void VisualShaderEditor::_change_output_port_type(int p_type, int p_node, int p_port) { + + VisualShader::Type type = VisualShader::Type(edit_type->get_selected()); + Ref<VisualShaderNodeGroupBase> node = visual_shader->get_node(type, p_node); + if (node.is_null()) { + return; + } + + undo_redo->create_action(TTR("Change output port type")); + undo_redo->add_do_method(node.ptr(), "set_output_port_type", p_port, p_type); + undo_redo->add_undo_method(node.ptr(), "set_output_port_type", p_port, node->get_output_port_type(p_port)); + undo_redo->add_do_method(this, "_update_graph"); + undo_redo->add_undo_method(this, "_update_graph"); + undo_redo->add_do_method(this, "_rebuild"); + undo_redo->add_undo_method(this, "_rebuild"); + undo_redo->commit_action(); +} + +void VisualShaderEditor::_change_input_port_name(const String &p_text, Object *line_edit, int p_node_id, int p_port_id) { + + VisualShader::Type type = VisualShader::Type(edit_type->get_selected()); + + Ref<VisualShaderNodeGroupBase> node = visual_shader->get_node(type, p_node_id); + ERR_FAIL_COND(!node.is_valid()); + + undo_redo->create_action(TTR("Change input port name")); + undo_redo->add_do_method(node.ptr(), "set_input_port_name", p_port_id, p_text); + undo_redo->add_undo_method(node.ptr(), "set_input_port_name", p_port_id, node->get_input_port_name(p_port_id)); + undo_redo->add_do_method(this, "_rebuild"); + undo_redo->add_undo_method(this, "_rebuild"); + undo_redo->commit_action(); +} + +void VisualShaderEditor::_change_output_port_name(const String &p_text, Object *line_edit, int p_node_id, int p_port_id) { + + VisualShader::Type type = VisualShader::Type(edit_type->get_selected()); + + Ref<VisualShaderNodeGroupBase> node = visual_shader->get_node(type, p_node_id); + ERR_FAIL_COND(!node.is_valid()); + + undo_redo->create_action(TTR("Change output port name")); + undo_redo->add_do_method(node.ptr(), "set_output_port_name", p_port_id, p_text); + undo_redo->add_undo_method(node.ptr(), "set_output_port_name", p_port_id, node->get_output_port_name(p_port_id)); + undo_redo->add_do_method(this, "_rebuild"); + undo_redo->add_undo_method(this, "_rebuild"); + undo_redo->commit_action(); +} + +void VisualShaderEditor::_remove_input_port(int p_node, int p_port) { + + VisualShader::Type type = VisualShader::Type(edit_type->get_selected()); + Ref<VisualShaderNodeGroupBase> node = visual_shader->get_node(type, p_node); + if (node.is_null()) { + return; + } + + undo_redo->create_action(TTR("Remove input port")); + + List<VisualShader::Connection> conns; + visual_shader->get_node_connections(type, &conns); + for (List<VisualShader::Connection>::Element *E = conns.front(); E; E = E->next()) { + + int from_node = E->get().from_node; + int from_port = E->get().from_port; + int to_node = E->get().to_node; + int to_port = E->get().to_port; + + if (to_node == p_node) { + if (to_port == p_port) { + undo_redo->add_do_method(visual_shader.ptr(), "disconnect_nodes", type, from_node, from_port, to_node, to_port); + undo_redo->add_undo_method(visual_shader.ptr(), "connect_nodes_forced", type, from_node, from_port, to_node, to_port); + } else if (to_port > p_port) { + undo_redo->add_do_method(visual_shader.ptr(), "disconnect_nodes", type, from_node, from_port, to_node, to_port); + undo_redo->add_undo_method(visual_shader.ptr(), "connect_nodes_forced", type, from_node, from_port, to_node, to_port); + + undo_redo->add_do_method(visual_shader.ptr(), "connect_nodes_forced", type, from_node, from_port, to_node, to_port - 1); + undo_redo->add_undo_method(visual_shader.ptr(), "disconnect_nodes", type, from_node, from_port, to_node, to_port - 1); + } + } + } + + undo_redo->add_do_method(node.ptr(), "remove_input_port", p_port); + undo_redo->add_undo_method(node.ptr(), "add_input_port", p_port, (int)node->get_input_port_type(p_port), node->get_input_port_name(p_port)); + + undo_redo->add_do_method(this, "_update_graph"); + undo_redo->add_undo_method(this, "_update_graph"); + + undo_redo->add_do_method(this, "_rebuild"); + undo_redo->add_undo_method(this, "_rebuild"); + + undo_redo->commit_action(); +} + +void VisualShaderEditor::_remove_output_port(int p_node, int p_port) { + + VisualShader::Type type = VisualShader::Type(edit_type->get_selected()); + Ref<VisualShaderNodeGroupBase> node = visual_shader->get_node(type, p_node); + if (node.is_null()) { + return; + } + + undo_redo->create_action(TTR("Remove output port")); + + List<VisualShader::Connection> conns; + visual_shader->get_node_connections(type, &conns); + for (List<VisualShader::Connection>::Element *E = conns.front(); E; E = E->next()) { + + int from_node = E->get().from_node; + int from_port = E->get().from_port; + int to_node = E->get().to_node; + int to_port = E->get().to_port; + + if (from_node == p_node) { + if (from_port == p_port) { + undo_redo->add_do_method(visual_shader.ptr(), "disconnect_nodes", type, from_node, from_port, to_node, to_port); + undo_redo->add_undo_method(visual_shader.ptr(), "connect_nodes_forced", type, from_node, from_port, to_node, to_port); + } else if (from_port > p_port) { + undo_redo->add_do_method(visual_shader.ptr(), "disconnect_nodes", type, from_node, from_port, to_node, to_port); + undo_redo->add_undo_method(visual_shader.ptr(), "connect_nodes_forced", type, from_node, from_port, to_node, to_port); + + undo_redo->add_do_method(visual_shader.ptr(), "connect_nodes_forced", type, from_node, from_port - 1, to_node, to_port); + undo_redo->add_undo_method(visual_shader.ptr(), "disconnect_nodes", type, from_node, from_port - 1, to_node, to_port); + } + } + } + + undo_redo->add_do_method(node.ptr(), "remove_output_port", p_port); + undo_redo->add_undo_method(node.ptr(), "add_output_port", p_port, (int)node->get_output_port_type(p_port), node->get_output_port_name(p_port)); + + undo_redo->add_do_method(this, "_update_graph"); + undo_redo->add_undo_method(this, "_update_graph"); + + undo_redo->add_do_method(this, "_rebuild"); + undo_redo->add_undo_method(this, "_rebuild"); + + undo_redo->commit_action(); +} + +void VisualShaderEditor::_expression_focus_out(Object *text_edit, int p_node) { + + VisualShader::Type type = VisualShader::Type(edit_type->get_selected()); + Ref<VisualShaderNodeExpression> node = visual_shader->get_node(type, p_node); + if (node.is_null()) { + return; + } + + TextEdit *expression_box = Object::cast_to<TextEdit>(text_edit); + + if (node->get_expression() == expression_box->get_text()) + return; + + undo_redo->create_action(TTR("Set expression")); + undo_redo->add_do_method(node.ptr(), "set_expression", expression_box->get_text()); + undo_redo->add_undo_method(node.ptr(), "set_expression", node->get_expression()); + undo_redo->add_do_method(this, "_rebuild"); + undo_redo->add_undo_method(this, "_rebuild"); + undo_redo->commit_action(); +} + +void VisualShaderEditor::_rebuild() { + EditorNode::get_singleton()->get_log()->clear(); + visual_shader->rebuild(); +} + +void VisualShaderEditor::_set_node_size(int p_type, int p_node, const Vector2 &p_size) { + + VisualShader::Type type = VisualShader::Type(p_type); + Ref<VisualShaderNode> node = visual_shader->get_node(type, p_node); + if (node.is_null()) { + return; + } + + Ref<VisualShaderNodeGroupBase> group_node = Object::cast_to<VisualShaderNodeGroupBase>(node.ptr()); + + if (group_node.is_null()) { + return; + } + + Vector2 size = p_size; + + group_node->set_size(size); + + GraphNode *gn = NULL; + if (edit_type->get_selected() == p_type) { // check - otherwise the error will be emitted + Node *node2 = graph->get_node(itos(p_node)); + gn = Object::cast_to<GraphNode>(node2); + if (!gn) + return; + + gn->set_custom_minimum_size(size); + gn->set_size(Size2(1, 1)); + } + + Ref<VisualShaderNodeExpression> expression_node = Object::cast_to<VisualShaderNodeExpression>(node.ptr()); + if (!expression_node.is_null()) { + Control *text_box = expression_node->get_control(0); + Size2 box_size = size; + if (gn != NULL) { + if (box_size.x < 150 * EDSCALE || box_size.y < 0) { + box_size.x = gn->get_size().x; + } + } + box_size.x -= text_box->get_margin(MARGIN_LEFT); + box_size.x -= 28 * EDSCALE; + box_size.y -= text_box->get_margin(MARGIN_TOP); + box_size.y -= 28 * EDSCALE; + text_box->set_custom_minimum_size(Size2(box_size.x, box_size.y)); + text_box->set_size(Size2(1, 1)); + } +} + +void VisualShaderEditor::_node_resized(const Vector2 &p_new_size, int p_type, int p_node) { + + VisualShader::Type type = VisualShader::Type(p_type); + Ref<VisualShaderNodeGroupBase> node = visual_shader->get_node(type, p_node); + if (node.is_null()) { + return; + } + + undo_redo->create_action(TTR("Resize VisualShader node"), UndoRedo::MERGE_ENDS); + undo_redo->add_do_method(this, "_set_node_size", p_type, p_node, p_new_size / EDSCALE); + undo_redo->add_undo_method(this, "_set_node_size", p_type, p_node, node->get_size()); + undo_redo->commit_action(); +} + void VisualShaderEditor::_preview_select_port(int p_node, int p_port) { VisualShader::Type type = VisualShader::Type(edit_type->get_selected()); @@ -623,6 +1050,52 @@ void VisualShaderEditor::_line_edit_focus_out(Object *line_edit, int p_node_id) _line_edit_changed(text, line_edit, p_node_id); } +void VisualShaderEditor::_port_name_focus_out(Object *line_edit, int p_node_id, int p_port_id, bool p_output) { + + VisualShader::Type type = VisualShader::Type(edit_type->get_selected()); + + Ref<VisualShaderNodeGroupBase> node = visual_shader->get_node(type, p_node_id); + ERR_FAIL_COND(!node.is_valid()); + + String text = Object::cast_to<LineEdit>(line_edit)->get_text(); + + if (!p_output) { + if (node->get_input_port_name(p_port_id) == text) + return; + } else { + if (node->get_output_port_name(p_port_id) == text) + return; + } + + List<String> input_names; + List<String> output_names; + + for (int i = 0; i < node->get_input_port_count(); i++) { + if (!p_output && i == p_port_id) continue; + input_names.push_back(node->get_input_port_name(i)); + } + for (int i = 0; i < node->get_output_port_count(); i++) { + if (p_output && i == p_port_id) continue; + output_names.push_back(node->get_output_port_name(i)); + } + + String validated_name = visual_shader->validate_port_name(text, input_names, output_names); + if (validated_name == "") { + if (!p_output) { + Object::cast_to<LineEdit>(line_edit)->set_text(node->get_input_port_name(p_port_id)); + } else { + Object::cast_to<LineEdit>(line_edit)->set_text(node->get_output_port_name(p_port_id)); + } + return; + } + + if (!p_output) { + _change_input_port_name(validated_name, line_edit, p_node_id, p_port_id); + } else { + _change_output_port_name(validated_name, line_edit, p_node_id, p_port_id); + } +} + void VisualShaderEditor::_port_edited() { VisualShader::Type type = VisualShader::Type(edit_type->get_selected()); @@ -667,6 +1140,13 @@ void VisualShaderEditor::_add_node(int p_idx, int p_op_idx) { VisualShaderNode *vsn = Object::cast_to<VisualShaderNode>(ClassDB::instance(add_options[p_idx].type)); ERR_FAIL_COND(!vsn); + VisualShaderNodeScalarConstant *constant = Object::cast_to<VisualShaderNodeScalarConstant>(vsn); + + if (constant) { + if ((int)add_options[p_idx].value != -1) + constant->set_constant(add_options[p_idx].value); + } + if (p_op_idx != -1) { VisualShaderNodeInput *input = Object::cast_to<VisualShaderNodeInput>(vsn); @@ -757,6 +1237,12 @@ void VisualShaderEditor::_add_node(int p_idx, int p_op_idx) { undo_redo->create_action(TTR("Add Node to Visual Shader")); undo_redo->add_do_method(visual_shader.ptr(), "add_node", type, vsnode, position, id_to_use); undo_redo->add_undo_method(visual_shader.ptr(), "remove_node", type, id_to_use); + + VisualShaderNodeExpression *expr = Object::cast_to<VisualShaderNodeExpression>(vsnode.ptr()); + if (expr) { + undo_redo->add_do_method(expr, "set_size", Size2(250 * EDSCALE, 150 * EDSCALE)); + } + undo_redo->add_do_method(this, "_update_graph"); undo_redo->add_undo_method(this, "_update_graph"); undo_redo->commit_action(); @@ -831,10 +1317,25 @@ void VisualShaderEditor::_connection_to_empty(const String &p_from, int p_from_s void VisualShaderEditor::_delete_request(int which) { VisualShader::Type type = VisualShader::Type(edit_type->get_selected()); + Ref<VisualShaderNode> node = Ref<VisualShaderNode>(visual_shader->get_node(type, which)); undo_redo->create_action(TTR("Delete Node")); undo_redo->add_do_method(visual_shader.ptr(), "remove_node", type, which); - undo_redo->add_undo_method(visual_shader.ptr(), "add_node", type, visual_shader->get_node(type, which), visual_shader->get_node_position(type, which), which); + undo_redo->add_undo_method(visual_shader.ptr(), "add_node", type, node, visual_shader->get_node_position(type, which), which); + + // restore size, inputs and outputs if node is group + VisualShaderNodeGroupBase *group = Object::cast_to<VisualShaderNodeGroupBase>(node.ptr()); + if (group) { + undo_redo->add_undo_method(group, "set_size", group->get_size()); + undo_redo->add_undo_method(group, "set_inputs", group->get_inputs()); + undo_redo->add_undo_method(group, "set_outputs", group->get_outputs()); + } + + // restore expression text if node is expression + VisualShaderNodeExpression *expression = Object::cast_to<VisualShaderNodeExpression>(node.ptr()); + if (expression) { + undo_redo->add_undo_method(expression, "set_expression", expression->get_expression()); + } List<VisualShader::Connection> conns; visual_shader->get_node_connections(type, &conns); @@ -1022,6 +1523,19 @@ void VisualShaderEditor::_duplicate_nodes() { undo_redo->add_do_method(visual_shader.ptr(), "add_node", type, dupli, visual_shader->get_node_position(type, E->get()) + Vector2(10, 10) * EDSCALE, id_from); undo_redo->add_undo_method(visual_shader.ptr(), "remove_node", type, id_from); + // duplicate size, inputs and outputs if node is group + Ref<VisualShaderNodeGroupBase> group = Object::cast_to<VisualShaderNodeGroupBase>(node.ptr()); + if (!group.is_null()) { + undo_redo->add_do_method(dupli.ptr(), "set_size", group->get_size()); + undo_redo->add_do_method(dupli.ptr(), "set_inputs", group->get_inputs()); + undo_redo->add_do_method(dupli.ptr(), "set_outputs", group->get_outputs()); + } + // duplicate expression text if node is expression + Ref<VisualShaderNodeExpression> expression = Object::cast_to<VisualShaderNodeExpression>(node.ptr()); + if (!expression.is_null()) { + undo_redo->add_do_method(dupli.ptr(), "set_expression", expression->get_expression()); + } + id_from++; } @@ -1030,7 +1544,7 @@ void VisualShaderEditor::_duplicate_nodes() { for (List<VisualShader::Connection>::Element *E = conns.front(); E; E = E->next()) { if (connection_remap.has(E->get().from_node) && connection_remap.has(E->get().to_node)) { - undo_redo->add_do_method(visual_shader.ptr(), "connect_nodes", type, connection_remap[E->get().from_node], E->get().from_port, connection_remap[E->get().to_node], E->get().to_port); + undo_redo->add_do_method(visual_shader.ptr(), "connect_nodes_forced", type, connection_remap[E->get().from_node], E->get().from_port, connection_remap[E->get().to_node], E->get().to_port); } } @@ -1073,8 +1587,25 @@ void VisualShaderEditor::_on_nodes_delete() { undo_redo->create_action(TTR("Delete Nodes")); for (List<int>::Element *F = to_erase.front(); F; F = F->next()) { + + Ref<VisualShaderNode> node = visual_shader->get_node(type, F->get()); + undo_redo->add_do_method(visual_shader.ptr(), "remove_node", type, F->get()); - undo_redo->add_undo_method(visual_shader.ptr(), "add_node", type, visual_shader->get_node(type, F->get()), visual_shader->get_node_position(type, F->get()), F->get()); + undo_redo->add_undo_method(visual_shader.ptr(), "add_node", type, node, visual_shader->get_node_position(type, F->get()), F->get()); + + // restore size, inputs and outputs if node is group + VisualShaderNodeGroupBase *group = Object::cast_to<VisualShaderNodeGroupBase>(node.ptr()); + if (group) { + undo_redo->add_undo_method(group, "set_size", group->get_size()); + undo_redo->add_undo_method(group, "set_inputs", group->get_inputs()); + undo_redo->add_undo_method(group, "set_outputs", group->get_outputs()); + } + + // restore expression text if node is expression + VisualShaderNodeExpression *expression = Object::cast_to<VisualShaderNodeExpression>(node.ptr()); + if (expression) { + undo_redo->add_undo_method(expression, "set_expression", expression->get_expression()); + } } List<VisualShader::Connection> conns; @@ -1267,8 +1798,10 @@ void VisualShaderEditor::drop_data_fw(const Point2 &p_point, const Variant &p_da } void VisualShaderEditor::_bind_methods() { + ClassDB::bind_method("_rebuild", &VisualShaderEditor::_rebuild); ClassDB::bind_method("_update_graph", &VisualShaderEditor::_update_graph); ClassDB::bind_method("_update_options_menu", &VisualShaderEditor::_update_options_menu); + ClassDB::bind_method("_expression_focus_out", &VisualShaderEditor::_expression_focus_out); ClassDB::bind_method("_add_node", &VisualShaderEditor::_add_node); ClassDB::bind_method("_node_dragged", &VisualShaderEditor::_node_dragged); ClassDB::bind_method("_connection_request", &VisualShaderEditor::_connection_request); @@ -1283,11 +1816,22 @@ void VisualShaderEditor::_bind_methods() { ClassDB::bind_method("_connection_to_empty", &VisualShaderEditor::_connection_to_empty); ClassDB::bind_method("_line_edit_focus_out", &VisualShaderEditor::_line_edit_focus_out); ClassDB::bind_method("_line_edit_changed", &VisualShaderEditor::_line_edit_changed); + ClassDB::bind_method("_port_name_focus_out", &VisualShaderEditor::_port_name_focus_out); ClassDB::bind_method("_duplicate_nodes", &VisualShaderEditor::_duplicate_nodes); ClassDB::bind_method("_mode_selected", &VisualShaderEditor::_mode_selected); ClassDB::bind_method("_input_select_item", &VisualShaderEditor::_input_select_item); ClassDB::bind_method("_preview_select_port", &VisualShaderEditor::_preview_select_port); ClassDB::bind_method("_graph_gui_input", &VisualShaderEditor::_graph_gui_input); + ClassDB::bind_method("_add_input_port", &VisualShaderEditor::_add_input_port); + ClassDB::bind_method("_change_input_port_type", &VisualShaderEditor::_change_input_port_type); + ClassDB::bind_method("_change_input_port_name", &VisualShaderEditor::_change_input_port_name); + ClassDB::bind_method("_remove_input_port", &VisualShaderEditor::_remove_input_port); + ClassDB::bind_method("_add_output_port", &VisualShaderEditor::_add_output_port); + ClassDB::bind_method("_change_output_port_type", &VisualShaderEditor::_change_output_port_type); + ClassDB::bind_method("_change_output_port_name", &VisualShaderEditor::_change_output_port_name); + ClassDB::bind_method("_remove_output_port", &VisualShaderEditor::_remove_output_port); + ClassDB::bind_method("_node_resized", &VisualShaderEditor::_node_resized); + ClassDB::bind_method("_set_node_size", &VisualShaderEditor::_set_node_size); ClassDB::bind_method(D_METHOD("get_drag_data_fw"), &VisualShaderEditor::get_drag_data_fw); ClassDB::bind_method(D_METHOD("can_drop_data_fw"), &VisualShaderEditor::can_drop_data_fw); @@ -1311,6 +1855,7 @@ VisualShaderEditor::VisualShaderEditor() { updating = false; saved_node_pos_dirty = false; saved_node_pos = Point2(0, 0); + ShaderLanguage::get_keyword_list(&keyword_list); graph = memnew(GraphEdit); add_child(graph); @@ -1451,6 +1996,7 @@ VisualShaderEditor::VisualShaderEditor() { add_options.push_back(AddOption("ColorUniform", "Color", "Variables", "VisualShaderNodeColorUniform", TTR("Color uniform."), -1, VisualShaderNode::PORT_TYPE_COLOR)); // BOOLEAN + add_options.push_back(AddOption("If", "Conditional", "Functions", "VisualShaderNodeIf", TTR("Returns an associated vector if the provided scalars are equal, greater or less."), -1, VisualShaderNode::PORT_TYPE_VECTOR)); add_options.push_back(AddOption("Switch", "Conditional", "Functions", "VisualShaderNodeSwitch", TTR("Returns an associated vector if the provided boolean value is true or false."), -1, VisualShaderNode::PORT_TYPE_VECTOR)); add_options.push_back(AddOption("BooleanConstant", "Conditional", "Variables", "VisualShaderNodeBooleanConstant", TTR("Boolean constant."), -1, VisualShaderNode::PORT_TYPE_BOOLEAN)); @@ -1564,6 +2110,19 @@ VisualShaderEditor::VisualShaderEditor() { add_options.push_back(AddOption("ScalarFunc", "Scalar", "Common", "VisualShaderNodeScalarFunc", TTR("Scalar function."), -1, VisualShaderNode::PORT_TYPE_SCALAR)); add_options.push_back(AddOption("ScalarOp", "Scalar", "Common", "VisualShaderNodeScalarOp", TTR("Scalar operator."), -1, VisualShaderNode::PORT_TYPE_SCALAR)); + //CONSTANTS + + add_options.push_back(AddOption("E", "Scalar", "Constants", "VisualShaderNodeScalarConstant", TTR("E constant (2.718282). Represents the base of the natural logarithm."), -1, VisualShaderNode::PORT_TYPE_SCALAR, -1, -1, Math_E)); + add_options.push_back(AddOption("Epsilon", "Scalar", "Constants", "VisualShaderNodeScalarConstant", TTR("Epsilon constant (0.00001). Smallest possible scalar number."), -1, VisualShaderNode::PORT_TYPE_SCALAR, -1, -1, CMP_EPSILON)); + add_options.push_back(AddOption("Phi", "Scalar", "Constants", "VisualShaderNodeScalarConstant", TTR("Phi constant (1.618034). Golden ratio."), -1, VisualShaderNode::PORT_TYPE_SCALAR, -1, -1, 1.618034f)); + add_options.push_back(AddOption("Pi/4", "Scalar", "Constants", "VisualShaderNodeScalarConstant", TTR("Pi/4 constant (0.785398) or 45 degrees."), -1, VisualShaderNode::PORT_TYPE_SCALAR, -1, -1, Math_PI / 4)); + add_options.push_back(AddOption("Pi/2", "Scalar", "Constants", "VisualShaderNodeScalarConstant", TTR("Pi/2 constant (1.570796) or 90 degrees."), -1, VisualShaderNode::PORT_TYPE_SCALAR, -1, -1, Math_PI / 2)); + add_options.push_back(AddOption("Pi", "Scalar", "Constants", "VisualShaderNodeScalarConstant", TTR("Pi constant (3.141593) or 180 degrees."), -1, VisualShaderNode::PORT_TYPE_SCALAR, -1, -1, Math_PI)); + add_options.push_back(AddOption("Tau", "Scalar", "Constants", "VisualShaderNodeScalarConstant", TTR("Tau constant (6.283185) or 360 degrees."), -1, VisualShaderNode::PORT_TYPE_SCALAR, -1, -1, Math_TAU)); + add_options.push_back(AddOption("Sqrt2", "Scalar", "Constants", "VisualShaderNodeScalarConstant", TTR("Sqrt2 constant (1.414214). Square root of 2."), -1, VisualShaderNode::PORT_TYPE_SCALAR, -1, -1, Math_SQRT2)); + + // FUNCTIONS + add_options.push_back(AddOption("Abs", "Scalar", "Functions", "VisualShaderNodeScalarFunc", TTR("Returns the absolute value of the parameter."), VisualShaderNodeScalarFunc::FUNC_ABS, VisualShaderNode::PORT_TYPE_SCALAR)); add_options.push_back(AddOption("ACos", "Scalar", "Functions", "VisualShaderNodeScalarFunc", TTR("Returns the arc-cosine of the parameter."), VisualShaderNodeScalarFunc::FUNC_ACOS, VisualShaderNode::PORT_TYPE_SCALAR)); add_options.push_back(AddOption("ACosH", "Scalar", "Functions", "VisualShaderNodeScalarFunc", TTR("(GLES3 only) Returns the inverse hyperbolic cosine of the parameter."), VisualShaderNodeScalarFunc::FUNC_ACOSH, VisualShaderNode::PORT_TYPE_SCALAR)); @@ -1710,6 +2269,7 @@ VisualShaderEditor::VisualShaderEditor() { // SPECIAL + add_options.push_back(AddOption("Expression", "Special", "", "VisualShaderNodeExpression", TTR("Custom Godot Shader Language expression, with custom amount of input and 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."))); add_options.push_back(AddOption("Fresnel", "Special", "", "VisualShaderNodeFresnel", TTR("Returns falloff based on the dot product of surface normal and view direction of camera (pass associated inputs to it)."), -1, VisualShaderNode::PORT_TYPE_SCALAR)); add_options.push_back(AddOption("ScalarDerivativeFunc", "Special", "Common", "VisualShaderNodeScalarDerivativeFunc", TTR("(GLES3 only) (Fragment/Light mode only) Scalar derivative function."), -1, VisualShaderNode::PORT_TYPE_SCALAR, VisualShader::TYPE_FRAGMENT | VisualShader::TYPE_LIGHT)); diff --git a/editor/plugins/visual_shader_editor_plugin.h b/editor/plugins/visual_shader_editor_plugin.h index eb0dee7594..1b009b61d5 100644 --- a/editor/plugins/visual_shader_editor_plugin.h +++ b/editor/plugins/visual_shader_editor_plugin.h @@ -101,8 +101,9 @@ class VisualShaderEditor : public VBoxContainer { int mode; int return_type; int func; + float value; - AddOption(const String &p_name = String(), const String &p_category = String(), const String &p_sub_category = String(), const String &p_type = String(), const String &p_description = String(), int p_sub_func = -1, int p_return_type = -1, int p_mode = -1, int p_func = -1) { + AddOption(const String &p_name = String(), const String &p_category = String(), const String &p_sub_category = String(), const String &p_type = String(), const String &p_description = String(), int p_sub_func = -1, int p_return_type = -1, int p_mode = -1, int p_func = -1, float p_value = -1) { name = p_name; type = p_type; category = p_category; @@ -112,9 +113,10 @@ class VisualShaderEditor : public VBoxContainer { return_type = p_return_type; mode = p_mode; func = p_func; + value = p_value; } - AddOption(const String &p_name, const String &p_category, const String &p_sub_category, const String &p_type, const String &p_description, const String &p_sub_func, int p_return_type = -1, int p_mode = -1, int p_func = -1) { + AddOption(const String &p_name, const String &p_category, const String &p_sub_category, const String &p_type, const String &p_description, const String &p_sub_func, int p_return_type = -1, int p_mode = -1, int p_func = -1, float p_value = -1) { name = p_name; type = p_type; category = p_category; @@ -124,10 +126,12 @@ class VisualShaderEditor : public VBoxContainer { return_type = p_return_type; mode = p_mode; func = p_func; + value = p_value; } }; Vector<AddOption> add_options; + List<String> keyword_list; void _draw_color_over_button(Object *obj, Color p_color); @@ -160,14 +164,32 @@ class VisualShaderEditor : public VBoxContainer { void _line_edit_changed(const String &p_text, Object *line_edit, int p_node_id); void _line_edit_focus_out(Object *line_edit, int p_node_id); + void _port_name_focus_out(Object *line_edit, int p_node_id, int p_port_id, bool p_output); + void _duplicate_nodes(); Vector<Ref<VisualShaderNodePlugin> > plugins; void _mode_selected(int p_id); + void _rebuild(); void _input_select_item(Ref<VisualShaderNodeInput> input, String name); + void _add_input_port(int p_node, int p_port, int p_type, const String &p_name); + void _remove_input_port(int p_node, int p_port); + void _change_input_port_type(int p_type, int p_node, int p_port); + void _change_input_port_name(const String &p_text, Object *line_edit, int p_node, int p_port); + + void _add_output_port(int p_node, int p_port, int p_type, const String &p_name); + void _remove_output_port(int p_node, int p_port); + void _change_output_port_type(int p_type, int p_node, int p_port); + void _change_output_port_name(const String &p_text, Object *line_edit, int p_node, int p_port); + + void _expression_focus_out(Object *text_edit, int p_node); + + void _set_node_size(int p_type, int p_node, const Size2 &p_size); + void _node_resized(const Vector2 &p_new_size, int p_type, int p_node); + void _preview_select_port(int p_node, int p_port); void _graph_gui_input(const Ref<InputEvent> p_event); diff --git a/editor/project_export.cpp b/editor/project_export.cpp index e1950c666c..ee78b240a4 100644 --- a/editor/project_export.cpp +++ b/editor/project_export.cpp @@ -88,14 +88,7 @@ void ProjectExportDialog::popup_export() { if (saved_size != Rect2()) { popup(saved_size); } else { - - Size2 popup_size = Size2(900, 700) * editor_get_scale(); - Size2 window_size = get_viewport_rect().size; - - popup_size.x = MIN(window_size.x * 0.8, popup_size.x); - popup_size.y = MIN(window_size.y * 0.8, popup_size.y); - - popup_centered(popup_size); + popup_centered_clamped(Size2(900, 700) * EDSCALE, 0.8); } } @@ -571,9 +564,8 @@ void ProjectExportDialog::_duplicate_preset() { Ref<EditorExportPreset> preset = current->get_platform()->create_preset(); ERR_FAIL_COND(!preset.is_valid()); - String name = current->get_name() + "" + itos(1); + String name = current->get_name() + " (copy)"; bool make_runnable = true; - int attempt = 2; while (true) { bool valid = true; @@ -592,8 +584,7 @@ void ProjectExportDialog::_duplicate_preset() { if (valid) break; - attempt++; - name = current->get_name() + " " + itos(attempt); + name += " (copy)"; } preset->set_name(name); diff --git a/editor/project_manager.cpp b/editor/project_manager.cpp index 6de4330493..4b3d468a61 100644 --- a/editor/project_manager.cpp +++ b/editor/project_manager.cpp @@ -294,13 +294,13 @@ private: String sp = _test_path(); if (sp != "") { - // set the project name to the select folder name - if (project_name->get_text() == "") { + // If the project name is empty or default, infer the project name from the selected folder name + if (project_name->get_text() == "" || project_name->get_text() == TTR("New Game Project")) { sp = sp.replace("\\", "/"); int lidx = sp.find_last("/"); if (lidx != -1) { - sp = sp.substr(lidx + 1, sp.length()); + sp = sp.substr(lidx + 1, sp.length()).capitalize(); } if (sp == "" && mode == MODE_IMPORT) sp = TTR("Imported Project"); @@ -919,28 +919,37 @@ public: struct ProjectItem { String project; + String project_name; String path; String conf; - int config_version; + String icon; + String main_scene; uint64_t last_modified; bool favorite; bool grayed; - bool ordered_latest_modification; + ProjectListFilter::FilterOption filter_order_option; ProjectItem() {} - ProjectItem(const String &p_project, const String &p_path, const String &p_conf, int p_config_version, uint64_t p_last_modified, bool p_favorite = false, bool p_grayed = false, const bool p_ordered_latest_modification = true) { + ProjectItem(const String &p_project, const String &p_name, const String &p_path, const String &p_conf, const String &p_icon, const String &p_main_scene, uint64_t p_last_modified, bool p_favorite = false, bool p_grayed = false, const ProjectListFilter::FilterOption p_filter_order_option = ProjectListFilter::FILTER_NAME) { project = p_project; + project_name = p_name; path = p_path; conf = p_conf; - config_version = p_config_version; + icon = p_icon; + main_scene = p_main_scene; last_modified = p_last_modified; favorite = p_favorite; grayed = p_grayed; - ordered_latest_modification = p_ordered_latest_modification; + filter_order_option = p_filter_order_option; } _FORCE_INLINE_ bool operator<(const ProjectItem &l) const { - if (ordered_latest_modification) - return last_modified > l.last_modified; - return project < l.project; + switch (filter_order_option) { + case ProjectListFilter::FILTER_PATH: + return project < l.project; + case ProjectListFilter::FILTER_MODIFIED: + return last_modified > l.last_modified; + default: + return project_name < l.project_name; + } } _FORCE_INLINE_ bool operator==(const ProjectItem &l) const { return project == l.project; } }; @@ -961,9 +970,25 @@ void ProjectManager::_notification(int p_what) { set_process_unhandled_input(is_visible_in_tree()); } break; + case NOTIFICATION_WM_QUIT_REQUEST: { + + _dim_window(); + } break; } } +void ProjectManager::_dim_window() { + + // This method must be called before calling `get_tree()->quit()`. + // Otherwise, its effect won't be visible + + // Dim the project manager window while it's quitting to make it clearer that it's busy. + // No transition is applied, as the effect needs to be visible immediately + float c = 1.0f - float(EDITOR_GET("interface/editor/dim_amount")); + Color dim_color = Color(c, c, c); + gui_base->set_modulate(dim_color); +} + void ProjectManager::_panel_draw(Node *p_hb) { HBoxContainer *hb = Object::cast_to<HBoxContainer>(p_hb); @@ -1240,13 +1265,7 @@ void ProjectManager::_load_recent_projects() { Color font_color = gui_base->get_color("font_color", "Tree"); - bool set_ordered_latest_modification; ProjectListFilter::FilterOption filter_order_option = project_order_filter->get_filter_option(); - if (filter_order_option == ProjectListFilter::FILTER_NAME) { - set_ordered_latest_modification = false; - } else { - set_ordered_latest_modification = true; - } EditorSettings::get_singleton()->set("project_manager/sorting_order", (int)filter_order_option); List<ProjectItem> projects; @@ -1264,10 +1283,30 @@ void ProjectManager::_load_recent_projects() { String project = _name.get_slice("/", 1); String conf = path.plus_file("project.godot"); - int config_version = 0; // Assume 0 until we know better bool favorite = (_name.begins_with("favorite_projects/")) ? true : false; bool grayed = false; + Ref<ConfigFile> cf = memnew(ConfigFile); + Error cf_err = cf->load(conf); + + int config_version = 0; + String project_name = TTR("Unnamed Project"); + if (cf_err == OK) { + + String cf_project_name = static_cast<String>(cf->get_value("application", "config/name", "")); + if (cf_project_name != "") + project_name = cf_project_name.xml_unescape(); + config_version = (int)cf->get_value("", "config_version", 0); + } + + if (config_version > ProjectSettings::CONFIG_VERSION) { + // Comes from an incompatible (more recent) Godot version, grey it out + grayed = true; + } + + String icon = cf->get_value("application", "config/icon", ""); + String main_scene = cf->get_value("application", "run/main_scene", ""); + uint64_t last_modified = 0; if (FileAccess::exists(conf)) { last_modified = FileAccess::get_modified_time(conf); @@ -1282,7 +1321,7 @@ void ProjectManager::_load_recent_projects() { grayed = true; } - ProjectItem item(project, path, conf, config_version, last_modified, favorite, grayed, set_ordered_latest_modification); + ProjectItem item(project, project_name, path, conf, icon, main_scene, last_modified, favorite, grayed, filter_order_option); if (favorite) favorite_projects.push_back(item); else @@ -1310,43 +1349,23 @@ void ProjectManager::_load_recent_projects() { String path = item.path; String conf = item.conf; - Ref<ConfigFile> cf = memnew(ConfigFile); - Error cf_err = cf->load(conf); - - String project_name = TTR("Unnamed Project"); - if (cf_err == OK && cf->has_section_key("application", "config/name")) { - project_name = static_cast<String>(cf->get_value("application", "config/name")).xml_unescape(); - } - - if (filter_option == ProjectListFilter::FILTER_NAME && search_term != "" && project_name.findn(search_term) == -1) + if (filter_option == ProjectListFilter::FILTER_NAME && search_term != "" && item.project_name.findn(search_term) == -1) continue; Ref<Texture> icon; - String main_scene; - if (cf_err == OK) { - item.config_version = (int)cf->get_value("", "config_version", 0); - if (item.config_version > ProjectSettings::CONFIG_VERSION) { - // Comes from an incompatible (more recent) Godot version, grey it out - item.grayed = true; + if (item.icon != "") { + Ref<Image> img; + img.instance(); + Error err = img->load(item.icon.replace_first("res://", path + "/")); + if (err == OK) { + + Ref<Texture> default_icon = get_icon("DefaultProjectIcon", "EditorIcons"); + img->resize(default_icon->get_width(), default_icon->get_height()); + Ref<ImageTexture> it = memnew(ImageTexture); + it->create_from_image(img); + icon = it; } - - String appicon = cf->get_value("application", "config/icon", ""); - if (appicon != "") { - Ref<Image> img; - img.instance(); - Error err = img->load(appicon.replace_first("res://", path + "/")); - if (err == OK) { - - Ref<Texture> default_icon = get_icon("DefaultProjectIcon", "EditorIcons"); - img->resize(default_icon->get_width(), default_icon->get_height()); - Ref<ImageTexture> it = memnew(ImageTexture); - it->create_from_image(img); - icon = it; - } - } - - main_scene = cf->get_value("application", "run/main_scene", ""); } if (icon.is_null()) { @@ -1360,7 +1379,7 @@ void ProjectManager::_load_recent_projects() { HBoxContainer *hb = memnew(HBoxContainer); hb->set_meta("name", project); - hb->set_meta("main_scene", main_scene); + hb->set_meta("main_scene", item.main_scene); hb->set_meta("favorite", is_favorite); hb->connect("draw", this, "_panel_draw", varray(hb)); hb->connect("gui_input", this, "_panel_input", varray(hb)); @@ -1390,7 +1409,7 @@ void ProjectManager::_load_recent_projects() { ec->set_custom_minimum_size(Size2(0, 1)); ec->set_mouse_filter(MOUSE_FILTER_PASS); vb->add_child(ec); - Label *title = memnew(Label(project_name)); + Label *title = memnew(Label(item.project_name)); title->add_font_override("font", gui_base->get_font("title", "EditorFonts")); title->add_color_override("font_color", font_color); title->set_clip_text(true); @@ -1514,6 +1533,7 @@ void ProjectManager::_open_selected_projects() { ERR_FAIL_COND(err); } + _dim_window(); get_tree()->quit(); } @@ -1627,40 +1647,28 @@ void ProjectManager::_show_project(const String &p_path) { OS::get_singleton()->shell_open(String("file://") + p_path); } -void ProjectManager::_scan_dir(DirAccess *da, float pos, float total, List<String> *r_projects) { - - List<String> subdirs; +void ProjectManager::_scan_dir(const String &path, List<String> *r_projects) { + DirAccess *da = DirAccess::create(DirAccess::ACCESS_FILESYSTEM); + da->change_dir(path); da->list_dir_begin(); String n = da->get_next(); while (n != String()) { if (da->current_is_dir() && !n.begins_with(".")) { - subdirs.push_front(n); + _scan_dir(da->get_current_dir().plus_file(n), r_projects); } else if (n == "project.godot") { r_projects->push_back(da->get_current_dir()); } n = da->get_next(); } da->list_dir_end(); - int m = 0; - for (List<String>::Element *E = subdirs.front(); E; E = E->next()) { - - da->change_dir(E->get()); - - float slice = total / subdirs.size(); - _scan_dir(da, pos + slice * m, slice, r_projects); - da->change_dir(".."); - m++; - } + memdelete(da); } void ProjectManager::_scan_begin(const String &p_base) { print_line("Scanning projects at: " + p_base); List<String> projects; - DirAccess *da = DirAccess::create(DirAccess::ACCESS_FILESYSTEM); - da->change_dir(p_base); - _scan_dir(da, 0, 1, &projects); - memdelete(da); + _scan_dir(p_base, &projects); print_line("Found " + itos(projects.size()) + " projects."); for (List<String>::Element *E = projects.front(); E; E = E->next()) { @@ -1792,11 +1800,13 @@ void ProjectManager::_restart_confirm() { Error err = OS::get_singleton()->execute(exec, args, false, &pid); ERR_FAIL_COND(err); + _dim_window(); get_tree()->quit(); } void ProjectManager::_exit_dialog() { + _dim_window(); get_tree()->quit(); } @@ -1983,7 +1993,7 @@ ProjectManager::ProjectManager() { l = memnew(Label); String hash = String(VERSION_HASH); if (hash.length() != 0) - hash = "." + hash.left(7); + hash = "." + hash.left(9); l->set_text("v" VERSION_FULL_BUILD "" + hash); l->set_align(Label::ALIGN_CENTER); top_hb->add_child(l); @@ -2013,6 +2023,7 @@ ProjectManager::ProjectManager() { sort_filters->add_child(sort_label); Vector<String> sort_filter_titles; sort_filter_titles.push_back("Name"); + sort_filter_titles.push_back("Path"); sort_filter_titles.push_back("Last Modified"); project_order_filter = memnew(ProjectListFilter); project_order_filter->_setup_filters(sort_filter_titles); @@ -2166,6 +2177,19 @@ ProjectManager::ProjectManager() { Button *cancel = memnew(Button); cancel->set_text(TTR("Exit")); cancel->set_custom_minimum_size(Size2(100, 1) * EDSCALE); + +#ifndef OSX_ENABLED + // Pressing Command + Q quits the Project Manager + // This is handled by the platform implementation on macOS, + // so only define the shortcut on other platforms + InputEventKey *quit_key = memnew(InputEventKey); + quit_key->set_command(true); + quit_key->set_scancode(KEY_Q); + ShortCut *quit_shortcut = memnew(ShortCut); + quit_shortcut->set_shortcut(quit_key); + cancel->set_shortcut(quit_shortcut); +#endif + cc->add_child(cancel); cancel->connect("pressed", this, "_exit_dialog"); vb->add_child(cc); diff --git a/editor/project_manager.h b/editor/project_manager.h index 382e9fc8fb..d75d7164cc 100644 --- a/editor/project_manager.h +++ b/editor/project_manager.h @@ -106,10 +106,11 @@ class ProjectManager : public Control { void _on_project_created(const String &dir); void _on_projects_updated(); void _update_scroll_position(const String &dir); - void _scan_dir(DirAccess *da, float pos, float total, List<String> *r_projects); + void _scan_dir(const String &path, List<String> *r_projects); void _install_project(const String &p_zip_path, const String &p_title); + void _dim_window(); void _panel_draw(Node *p_hb); void _panel_input(const Ref<InputEvent> &p_ev, Node *p_hb); void _unhandled_input(const Ref<InputEvent> &p_ev); @@ -130,17 +131,19 @@ class ProjectListFilter : public HBoxContainer { GDCLASS(ProjectListFilter, HBoxContainer); +public: + enum FilterOption { + FILTER_NAME, + FILTER_PATH, + FILTER_MODIFIED, + }; + private: friend class ProjectManager; OptionButton *filter_option; LineEdit *search_box; bool has_search_box; - - enum FilterOption { - FILTER_NAME, - FILTER_PATH, - }; FilterOption _current_filter; void _search_text_changed(const String &p_newtext); diff --git a/editor/project_settings_editor.cpp b/editor/project_settings_editor.cpp index 71bddebcf5..872f8fcd2c 100644 --- a/editor/project_settings_editor.cpp +++ b/editor/project_settings_editor.cpp @@ -793,15 +793,9 @@ void ProjectSettingsEditor::popup_project_settings() { if (saved_size != Rect2()) { popup(saved_size); } else { - - Size2 popup_size = Size2(900, 700) * editor_get_scale(); - Size2 window_size = get_viewport_rect().size; - - popup_size.x = MIN(window_size.x * 0.8, popup_size.x); - popup_size.y = MIN(window_size.y * 0.8, popup_size.y); - - popup_centered(popup_size); + popup_centered_clamped(Size2(900, 700) * EDSCALE, 0.8); } + globals_editor->update_category_list(); _update_translations(); autoload_settings->update_autoload(); diff --git a/editor/scene_tree_dock.cpp b/editor/scene_tree_dock.cpp index 1f5300e351..e8f5139cd5 100644 --- a/editor/scene_tree_dock.cpp +++ b/editor/scene_tree_dock.cpp @@ -31,6 +31,7 @@ #include "scene_tree_dock.h" #include "core/io/resource_saver.h" +#include "core/os/input.h" #include "core/os/keyboard.h" #include "core/project_settings.h" @@ -347,7 +348,7 @@ void SceneTreeDock::_tool_selected(int p_tool, bool p_confirm_override) { if (!profile_allow_editing) { break; } - create_dialog->popup_create(false, true); + create_dialog->popup_create(false, true, scene_tree->get_selected()->get_class()); } break; case TOOL_ATTACH_SCRIPT: { @@ -517,6 +518,7 @@ void SceneTreeDock::_tool_selected(int p_tool, bool p_confirm_override) { editor_data->get_undo_redo().add_do_method(editor_selection, "clear"); Node *dupsingle = NULL; + List<Node *> editable_children; for (List<Node *>::Element *E = selection.front(); E; E = E->next()) { @@ -529,6 +531,9 @@ void SceneTreeDock::_tool_selected(int p_tool, bool p_confirm_override) { Map<const Node *, Node *> duplimap; Node *dup = node->duplicate_from_editor(duplimap); + if (EditorNode::get_singleton()->get_edited_scene()->is_editable_instance(node)) + editable_children.push_back(dup); + ERR_CONTINUE(!dup); if (selection.size() == 1) @@ -561,6 +566,9 @@ void SceneTreeDock::_tool_selected(int p_tool, bool p_confirm_override) { if (dupsingle) editor->push_item(dupsingle); + for (List<Node *>::Element *E = editable_children.front(); E; E = E->next()) + _toggle_editable_children(E->get()); + } break; case TOOL_REPARENT: { @@ -796,7 +804,7 @@ void SceneTreeDock::_tool_selected(int p_tool, bool p_confirm_override) { editable_instance_remove_dialog->popup_centered_minsize(); break; } - _toggle_editable_children(); + _toggle_editable_children(node); } } } break; @@ -1074,7 +1082,7 @@ void SceneTreeDock::_notification(int p_what) { bool show_create_root = bool(EDITOR_GET("interface/editors/show_scene_tree_root_selection")) && get_tree()->get_edited_scene_root() == NULL; - if (show_create_root != create_root_dialog->is_visible_in_tree()) { + if (show_create_root != create_root_dialog->is_visible_in_tree() && !remote_tree->is_visible()) { if (show_create_root) { create_root_dialog->show(); scene_tree->hide(); @@ -1612,30 +1620,27 @@ void SceneTreeDock::_script_created(Ref<Script> p_script) { _update_script_button(); } -void SceneTreeDock::_toggle_editable_children() { +void SceneTreeDock::_toggle_editable_children_from_selection() { + List<Node *> selection = editor_selection->get_selected_node_list(); List<Node *>::Element *e = selection.front(); + if (e) { - Node *node = e->get(); - if (node) { - bool editable = EditorNode::get_singleton()->get_edited_scene()->is_editable_instance(node); + _toggle_editable_children(e->get()); + } +} - int editable_item_idx = menu->get_item_idx_from_text(TTR("Editable Children")); - int placeholder_item_idx = menu->get_item_idx_from_text(TTR("Load As Placeholder")); - editable = !editable; +void SceneTreeDock::_toggle_editable_children(Node *p_node) { - EditorNode::get_singleton()->get_edited_scene()->set_editable_instance(node, editable); + if (p_node) { + bool editable = !EditorNode::get_singleton()->get_edited_scene()->is_editable_instance(p_node); + EditorNode::get_singleton()->get_edited_scene()->set_editable_instance(p_node, editable); + if (editable) + p_node->set_scene_instance_load_placeholder(false); - menu->set_item_checked(editable_item_idx, editable); - if (editable) { - node->set_scene_instance_load_placeholder(false); - menu->set_item_checked(placeholder_item_idx, false); - } + SpatialEditor::get_singleton()->update_all_gizmos(p_node); - SpatialEditor::get_singleton()->update_all_gizmos(node); - - scene_tree->update_tree(); - } + scene_tree->update_tree(); } } @@ -1853,7 +1858,7 @@ void SceneTreeDock::_create() { scene_tree->get_scene_tree()->call_deferred("grab_focus"); } -void SceneTreeDock::replace_node(Node *p_node, Node *p_by_node, bool p_keep_properties) { +void SceneTreeDock::replace_node(Node *p_node, Node *p_by_node, bool p_keep_properties, bool p_remove_old) { Node *n = p_node; Node *newnode = p_by_node; @@ -1917,16 +1922,20 @@ void SceneTreeDock::replace_node(Node *p_node, Node *p_by_node, bool p_keep_prop Node *c = newnode->get_child(i); c->call("set_transform", c->call("get_transform")); } - editor_data->get_undo_redo().clear_history(); + //p_remove_old was added to support undo + if (p_remove_old) + editor_data->get_undo_redo().clear_history(); newnode->set_name(newname); editor->push_item(newnode); - memdelete(n); + if (p_remove_old) { + memdelete(n); - while (to_erase.front()) { - memdelete(to_erase.front()->get()); - to_erase.pop_front(); + while (to_erase.front()) { + memdelete(to_erase.front()->get()); + to_erase.pop_front(); + } } } @@ -1942,13 +1951,7 @@ void SceneTreeDock::set_selected(Node *p_node, bool p_emit_selected) { void SceneTreeDock::import_subscene() { - Size2 popup_size = Size2(500, 800) * editor_get_scale(); - Size2 window_size = get_viewport_rect().size; - - popup_size.x = MIN(window_size.x * 0.8, popup_size.x); - popup_size.y = MIN(window_size.y * 0.8, popup_size.y); - - import_subscene_dialog->popup_centered(popup_size); + import_subscene_dialog->popup_centered_clamped(Size2(500, 800) * EDSCALE, 0.8); } void SceneTreeDock::_import_subscene() { @@ -2132,7 +2135,7 @@ void SceneTreeDock::_nodes_dragged(Array p_nodes, NodePath p_to, int p_type) { int to_pos = -1; _normalize_drop(to_node, to_pos, p_type); - _do_reparent(to_node, to_pos, nodes, true); + _do_reparent(to_node, to_pos, nodes, !Input::get_singleton()->is_key_pressed(KEY_SHIFT)); } void SceneTreeDock::_add_children_to_popup(Object *p_obj, int p_depth) { @@ -2364,6 +2367,7 @@ void SceneTreeDock::hide_tab_buttons() { void SceneTreeDock::_remote_tree_selected() { scene_tree->hide(); + create_root_dialog->hide(); if (remote_tree) remote_tree->show(); edit_remote->set_pressed(true); @@ -2481,7 +2485,7 @@ void SceneTreeDock::_bind_methods() { ClassDB::bind_method(D_METHOD("_input"), &SceneTreeDock::_input); ClassDB::bind_method(D_METHOD("_nodes_drag_begin"), &SceneTreeDock::_nodes_drag_begin); ClassDB::bind_method(D_METHOD("_delete_confirm"), &SceneTreeDock::_delete_confirm); - ClassDB::bind_method(D_METHOD("_toggle_editable_children"), &SceneTreeDock::_toggle_editable_children); + ClassDB::bind_method(D_METHOD("_toggle_editable_children_from_selection"), &SceneTreeDock::_toggle_editable_children_from_selection); ClassDB::bind_method(D_METHOD("_node_prerenamed"), &SceneTreeDock::_node_prerenamed); ClassDB::bind_method(D_METHOD("_import_subscene"), &SceneTreeDock::_import_subscene); ClassDB::bind_method(D_METHOD("_selection_changed"), &SceneTreeDock::_selection_changed); @@ -2501,6 +2505,7 @@ void SceneTreeDock::_bind_methods() { ClassDB::bind_method(D_METHOD("_feature_profile_changed"), &SceneTreeDock::_feature_profile_changed); ClassDB::bind_method(D_METHOD("instance"), &SceneTreeDock::instance); + ClassDB::bind_method(D_METHOD("replace_node"), &SceneTreeDock::replace_node); ADD_SIGNAL(MethodInfo("remote_tree_selected")); } @@ -2649,7 +2654,7 @@ SceneTreeDock::SceneTreeDock(EditorNode *p_editor, Node *p_scene_root, EditorSel editable_instance_remove_dialog = memnew(ConfirmationDialog); add_child(editable_instance_remove_dialog); - editable_instance_remove_dialog->connect("confirmed", this, "_toggle_editable_children"); + editable_instance_remove_dialog->connect("confirmed", this, "_toggle_editable_children_from_selection"); import_subscene_dialog = memnew(EditorSubScene); add_child(import_subscene_dialog); diff --git a/editor/scene_tree_dock.h b/editor/scene_tree_dock.h index e66525d721..9f9e93f2df 100644 --- a/editor/scene_tree_dock.h +++ b/editor/scene_tree_dock.h @@ -172,7 +172,8 @@ class SceneTreeDock : public VBoxContainer { void _delete_confirm(); - void _toggle_editable_children(); + void _toggle_editable_children_from_selection(); + void _toggle_editable_children(Node *p_node); void _node_prerenamed(Node *p_node, const String &p_new_name); @@ -243,7 +244,7 @@ public: void show_tab_buttons(); void hide_tab_buttons(); - void replace_node(Node *p_node, Node *p_by_node, bool p_keep_properties = true); + 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); diff --git a/editor/scene_tree_editor.cpp b/editor/scene_tree_editor.cpp index 76feaedb1a..d6c8e6b452 100644 --- a/editor/scene_tree_editor.cpp +++ b/editor/scene_tree_editor.cpp @@ -51,6 +51,7 @@ void SceneTreeEditor::_cell_button_pressed(Object *p_item, int p_column, int p_i if (connect_to_script_mode) { return; //don't do anything in this mode } + TreeItem *item = Object::cast_to<TreeItem>(p_item); ERR_FAIL_COND(!item); @@ -220,23 +221,27 @@ bool SceneTreeEditor::_add_nodes(Node *p_node, TreeItem *p_parent) { } if (marked.has(p_node)) { - item->set_text(0, String(p_node->get_name()) + " " + TTR("(Connecting From)")); - + String node_name = p_node->get_name(); + if (connecting_signal) { + node_name += " " + TTR("(Connecting From)"); + } + item->set_text(0, node_name); item->set_custom_color(0, accent); } } else if (part_of_subscene) { - //item->set_selectable(0,marked_selectable); if (valid_types.size() == 0) { item->set_custom_color(0, get_color("disabled_font_color", "Editor")); } - } else if (marked.has(p_node)) { - if (!connect_to_script_mode) { - item->set_selectable(0, marked_selectable); + String node_name = p_node->get_name(); + if (connecting_signal) { + node_name += " " + TTR("(Connecting From)"); } - item->set_custom_color(0, get_color("error_color", "Editor")); + item->set_text(0, node_name); + item->set_selectable(0, marked_selectable); + item->set_custom_color(0, get_color("accent_color", "Editor")); } else if (!marked_selectable && !marked_children_selectable) { Node *node = p_node; @@ -286,8 +291,8 @@ bool SceneTreeEditor::_add_nodes(Node *p_node, TreeItem *p_parent) { p_node->connect("script_changed", this, "_node_script_changed", varray(p_node)); if (!p_node->get_script().is_null()) { - - item->add_button(0, get_icon("Script", "EditorIcons"), BUTTON_SCRIPT, false, TTR("Open Script")); + Ref<Script> script = p_node->get_script(); + item->add_button(0, get_icon("Script", "EditorIcons"), BUTTON_SCRIPT, false, TTR("Open Script:") + " " + script->get_path()); } if (p_node->is_class("CanvasItem")) { @@ -379,6 +384,12 @@ bool SceneTreeEditor::_add_nodes(Node *p_node, TreeItem *p_parent) { } if (!keep) { + if (editor_selection) { + Node *n = get_node(item->get_metadata(0)); + if (n) { + editor_selection->remove_node(n); + } + } memdelete(item); return false; } else { @@ -388,15 +399,17 @@ bool SceneTreeEditor::_add_nodes(Node *p_node, TreeItem *p_parent) { void SceneTreeEditor::_node_visibility_changed(Node *p_node) { - if (p_node != get_scene_node() && !p_node->get_owner()) { + if (!p_node || (p_node != get_scene_node() && !p_node->get_owner())) { return; } - TreeItem *item = p_node ? _find(tree->get_root(), p_node->get_path()) : NULL; - if (!item) { + TreeItem *item = _find(tree->get_root(), p_node->get_path()); + + if (!item) { return; } + int idx = item->get_button_by_id(0, BUTTON_VISIBILITY); ERR_FAIL_COND(idx == -1); @@ -471,6 +484,17 @@ void SceneTreeEditor::_node_removed(Node *p_node) { emit_signal("node_selected"); } } + +void SceneTreeEditor::_node_renamed(Node *p_node) { + + emit_signal("node_renamed"); + + if (!tree_dirty) { + MessageQueue::get_singleton()->push_call(this, "_update_tree"); + tree_dirty = true; + } +} + void SceneTreeEditor::_update_tree() { if (!is_inside_tree()) { @@ -594,6 +618,7 @@ void SceneTreeEditor::_notification(int p_what) { get_tree()->connect("tree_changed", this, "_tree_changed"); get_tree()->connect("node_removed", this, "_node_removed"); + get_tree()->connect("node_renamed", this, "_node_renamed"); get_tree()->connect("node_configuration_warning_changed", this, "_warning_changed"); tree->connect("item_collapsed", this, "_cell_collapsed"); @@ -604,6 +629,7 @@ void SceneTreeEditor::_notification(int p_what) { get_tree()->disconnect("tree_changed", this, "_tree_changed"); get_tree()->disconnect("node_removed", this, "_node_removed"); + get_tree()->disconnect("node_renamed", this, "_node_renamed"); tree->disconnect("item_collapsed", this, "_cell_collapsed"); get_tree()->disconnect("node_configuration_warning_changed", this, "_warning_changed"); } break; @@ -685,12 +711,6 @@ void SceneTreeEditor::_rename_node(ObjectID p_node, const String &p_name) { n->set_name(p_name); item->set_metadata(0, n->get_path()); item->set_text(0, p_name); - emit_signal("node_renamed"); - - if (!tree_dirty) { - MessageQueue::get_singleton()->push_call(this, "_update_tree"); - tree_dirty = true; - } } void SceneTreeEditor::_renamed() { @@ -1020,11 +1040,17 @@ void SceneTreeEditor::set_connect_to_script_mode(bool p_enable) { update_tree(); } +void SceneTreeEditor::set_connecting_signal(bool p_enable) { + connecting_signal = p_enable; + update_tree(); +} + void SceneTreeEditor::_bind_methods() { ClassDB::bind_method("_tree_changed", &SceneTreeEditor::_tree_changed); ClassDB::bind_method("_update_tree", &SceneTreeEditor::_update_tree); ClassDB::bind_method("_node_removed", &SceneTreeEditor::_node_removed); + ClassDB::bind_method("_node_renamed", &SceneTreeEditor::_node_renamed); ClassDB::bind_method("_selected_changed", &SceneTreeEditor::_selected_changed); ClassDB::bind_method("_deselect_items", &SceneTreeEditor::_deselect_items); ClassDB::bind_method("_renamed", &SceneTreeEditor::_renamed); @@ -1063,6 +1089,7 @@ void SceneTreeEditor::_bind_methods() { SceneTreeEditor::SceneTreeEditor(bool p_label, bool p_can_rename, bool p_can_open_instance) { connect_to_script_mode = false; + connecting_signal = false; undo_redo = NULL; tree_dirty = true; selected = NULL; diff --git a/editor/scene_tree_editor.h b/editor/scene_tree_editor.h index 9158c4aa48..68642910e8 100644 --- a/editor/scene_tree_editor.h +++ b/editor/scene_tree_editor.h @@ -68,6 +68,7 @@ class SceneTreeEditor : public Control { AcceptDialog *warning; bool connect_to_script_mode; + bool connecting_signal; int blocked; @@ -78,6 +79,7 @@ class SceneTreeEditor : public Control { void _update_tree(); void _tree_changed(); void _node_removed(Node *p_node); + void _node_renamed(Node *p_node); TreeItem *_find(TreeItem *p_node, const NodePath &p_path); void _notification(int p_what); @@ -154,6 +156,7 @@ public: void update_tree() { _update_tree(); } void set_connect_to_script_mode(bool p_enable); + void set_connecting_signal(bool p_enable); Tree *get_scene_tree() { return tree; } diff --git a/editor/script_create_dialog.cpp b/editor/script_create_dialog.cpp index 751ae4fcf7..ffa221edaf 100644 --- a/editor/script_create_dialog.cpp +++ b/editor/script_create_dialog.cpp @@ -100,17 +100,25 @@ void ScriptCreateDialog::set_inheritance_base_type(const String &p_base) { base_type = p_base; } -bool ScriptCreateDialog::_validate(const String &p_string) { +bool ScriptCreateDialog::_validate_parent(const String &p_string) { if (p_string.length() == 0) return false; - if (ScriptServer::get_language(language_menu->get_selected())->can_inherit_from_file() && p_string.is_quoted()) { + if (can_inherit_from_file && p_string.is_quoted()) { String p = p_string.substr(1, p_string.length() - 2); if (_validate_path(p, true) == "") return true; } + return ClassDB::class_exists(p_string) || ScriptServer::is_global_class(p_string); +} + +bool ScriptCreateDialog::_validate_class(const String &p_string) { + + if (p_string.length() == 0) + return false; + for (int i = 0; i < p_string.length(); i++) { if (i == 0) { @@ -118,7 +126,7 @@ bool ScriptCreateDialog::_validate(const String &p_string) { return false; // no start with number plz } - bool valid_char = (p_string[i] >= '0' && p_string[i] <= '9') || (p_string[i] >= 'a' && p_string[i] <= 'z') || (p_string[i] >= 'A' && p_string[i] <= 'Z') || p_string[i] == '_' || p_string[i] == '-'; + bool valid_char = (p_string[i] >= '0' && p_string[i] <= '9') || (p_string[i] >= 'a' && p_string[i] <= 'z') || (p_string[i] >= 'A' && p_string[i] <= 'Z') || p_string[i] == '_'; if (!valid_char) return false; @@ -193,7 +201,7 @@ String ScriptCreateDialog::_validate_path(const String &p_path, bool p_file_must void ScriptCreateDialog::_class_name_changed(const String &p_name) { - if (_validate(class_name->get_text())) { + if (_validate_class(class_name->get_text())) { is_class_name_valid = true; } else { is_class_name_valid = false; @@ -203,7 +211,7 @@ void ScriptCreateDialog::_class_name_changed(const String &p_name) { void ScriptCreateDialog::_parent_name_changed(const String &p_parent) { - if (_validate(parent_name->get_text())) { + if (_validate_parent(parent_name->get_text())) { is_parent_name_valid = true; } else { is_parent_name_valid = false; @@ -298,27 +306,13 @@ void ScriptCreateDialog::_load_exist() { void ScriptCreateDialog::_lang_changed(int l) { - l = language_menu->get_selected(); ScriptLanguage *language = ScriptServer::get_language(l); - if (language->has_named_classes()) { - has_named_classes = true; - } else { - has_named_classes = false; - } - - if (language->supports_builtin_mode()) { - supports_built_in = true; - } else { - supports_built_in = false; + has_named_classes = language->has_named_classes(); + can_inherit_from_file = language->can_inherit_from_file(); + supports_built_in = language->supports_builtin_mode(); + if (!supports_built_in) is_built_in = false; - } - - if (ScriptServer::get_language(l)->can_inherit_from_file()) { - can_inherit_from_file = true; - } else { - can_inherit_from_file = false; - } String selected_ext = "." + language->get_extension(); String path = file_path->get_text(); @@ -430,7 +424,7 @@ void ScriptCreateDialog::_file_selected(const String &p_file) { String p = ProjectSettings::get_singleton()->localize_path(p_file); if (is_browsing_parent) { parent_name->set_text("\"" + p + "\""); - _class_name_changed("\"" + p + "\""); + _parent_name_changed(parent_name->get_text()); } else { file_path->set_text(p); _path_changed(p); @@ -445,7 +439,8 @@ void ScriptCreateDialog::_file_selected(const String &p_file) { void ScriptCreateDialog::_create() { - parent_name->set_text(select_class->get_selected_type()); + parent_name->set_text(select_class->get_selected_type().split(" ")[0]); + _parent_name_changed(parent_name->get_text()); } void ScriptCreateDialog::_browse_class_in_tree() { @@ -542,14 +537,7 @@ void ScriptCreateDialog::_update_dialog() { class_name->set_editable(false); class_name->set_placeholder(TTR("N/A")); class_name->set_placeholder_alpha(1); - } - - /* Can script inherit from a file */ - - if (can_inherit_from_file) { - parent_browse_button->set_disabled(false); - } else { - parent_browse_button->set_disabled(true); + class_name->set_text(""); } /* Is script Built-in */ @@ -572,7 +560,8 @@ void ScriptCreateDialog::_update_dialog() { if (is_built_in) { get_ok()->set_text(TTR("Create")); parent_name->set_editable(true); - parent_browse_button->set_disabled(false); + parent_search_button->set_disabled(false); + parent_browse_button->set_disabled(!can_inherit_from_file); internal->set_visible(_can_be_built_in()); internal_label->set_visible(_can_be_built_in()); _msg_path_valid(true, TTR("Built-in script (into scene file).")); @@ -580,7 +569,8 @@ void ScriptCreateDialog::_update_dialog() { // New Script Created get_ok()->set_text(TTR("Create")); parent_name->set_editable(true); - parent_browse_button->set_disabled(false); + parent_search_button->set_disabled(false); + parent_browse_button->set_disabled(!can_inherit_from_file); internal->set_visible(_can_be_built_in()); internal_label->set_visible(_can_be_built_in()); if (is_path_valid) { @@ -590,6 +580,7 @@ void ScriptCreateDialog::_update_dialog() { // Script Loaded get_ok()->set_text(TTR("Load")); parent_name->set_editable(false); + parent_search_button->set_disabled(true); parent_browse_button->set_disabled(true); internal->set_disabled(!_can_be_built_in()); if (is_path_valid) { @@ -755,7 +746,6 @@ ScriptCreateDialog::ScriptCreateDialog() { internal->set_h_size_flags(0); internal->connect("pressed", this, "_built_in_pressed"); internal_label = memnew(Label(TTR("Built-in Script"))); - internal_label->set_text(TTR("Built-in Script")); internal_label->set_align(Label::ALIGN_RIGHT); gc->add_child(internal_label); gc->add_child(internal); diff --git a/editor/script_create_dialog.h b/editor/script_create_dialog.h index c6dba78f56..61f87f5732 100644 --- a/editor/script_create_dialog.h +++ b/editor/script_create_dialog.h @@ -87,7 +87,8 @@ class ScriptCreateDialog : public ConfirmationDialog { void _path_entered(const String &p_path = String()); void _lang_changed(int l = 0); void _built_in_pressed(); - bool _validate(const String &p_string); + bool _validate_parent(const String &p_string); + bool _validate_class(const String &p_string); String _validate_path(const String &p_path, bool p_file_must_exist); void _class_name_changed(const String &p_name); void _parent_name_changed(const String &p_parent); diff --git a/editor/script_editor_debugger.cpp b/editor/script_editor_debugger.cpp index a661c2cfc3..3b086c6316 100644 --- a/editor/script_editor_debugger.cpp +++ b/editor/script_editor_debugger.cpp @@ -262,7 +262,7 @@ void ScriptEditorDebugger::_scene_tree_folded(Object *obj) { return; ObjectID id = item->get_metadata(0); - if (item->is_collapsed()) { + if (unfold_cache.has(id)) { unfold_cache.erase(id); } else { unfold_cache.insert(id); @@ -727,20 +727,8 @@ void ScriptEditorDebugger::_parse_message(const String &p_msg, const Array &p_da String tt = vs; switch (Performance::MonitorType((int)perf_items[i]->get_metadata(1))) { case Performance::MONITOR_TYPE_MEMORY: { - // for the time being, going above GBs is a bad sign. - String unit = "B"; - if ((int)v > 1073741824) { - unit = "GB"; - v /= 1073741824.0; - } else if ((int)v > 1048576) { - unit = "MB"; - v /= 1048576.0; - } else if ((int)v > 1024) { - unit = "KB"; - v /= 1024.0; - } - tt += " bytes"; - vs = String::num(v, 2) + " " + unit; + vs = String::humanize_size(v); + tt = vs; } break; case Performance::MONITOR_TYPE_TIME: { tt += " seconds"; @@ -1025,7 +1013,9 @@ void ScriptEditorDebugger::_performance_draw() { int pi = which[i]; Color c = get_color("accent_color", "Editor"); float h = (float)which[i] / (float)(perf_items.size()); - c.set_hsv(Math::fmod(h + 0.4, 0.9), c.get_s() * 0.9, c.get_v() * 1.4); + // Use a darker color on light backgrounds for better visibility + float value_multiplier = EditorSettings::get_singleton()->is_dark_theme() ? 1.4 : 0.55; + c.set_hsv(Math::fmod(h + 0.4, 0.9), c.get_s() * 0.9, c.get_v() * value_multiplier); c.a = 0.6; perf_draw->draw_string(graph_font, r.position + Point2(0, graph_font->get_ascent()), perf_items[pi]->get_text(0), c, r.size.x); @@ -1045,9 +1035,8 @@ void ScriptEditorDebugger::_performance_draw() { float h2 = E->get()[pi] / m; h2 = (1.0 - h2) * r.size.y; - c.a = 0.7; if (E != perf_history.front()) - perf_draw->draw_line(r.position + Point2(from, h2), r.position + Point2(from + spacing, prev), c, 2.0); + perf_draw->draw_line(r.position + Point2(from, h2), r.position + Point2(from + spacing, prev), c, Math::round(EDSCALE), true); prev = h2; E = E->next(); from -= spacing; diff --git a/editor/settings_config_dialog.cpp b/editor/settings_config_dialog.cpp index 68a1117364..b4643231d7 100644 --- a/editor/settings_config_dialog.cpp +++ b/editor/settings_config_dialog.cpp @@ -98,14 +98,7 @@ void EditorSettingsDialog::popup_edit_settings() { if (saved_size != Rect2()) { popup(saved_size); } else { - - Size2 popup_size = Size2(900, 700) * editor_get_scale(); - Size2 window_size = get_viewport_rect().size; - - popup_size.x = MIN(window_size.x * 0.8, popup_size.x); - popup_size.y = MIN(window_size.y * 0.8, popup_size.y); - - popup_centered(popup_size); + popup_centered_clamped(Size2(900, 700) * EDSCALE, 0.8); } _focus_current_search_box(); diff --git a/editor/spatial_editor_gizmos.cpp b/editor/spatial_editor_gizmos.cpp index 104bac190e..67cbcf5de4 100644 --- a/editor/spatial_editor_gizmos.cpp +++ b/editor/spatial_editor_gizmos.cpp @@ -58,6 +58,7 @@ #include "scene/resources/concave_polygon_shape.h" #include "scene/resources/convex_polygon_shape.h" #include "scene/resources/cylinder_shape.h" +#include "scene/resources/height_map_shape.h" #include "scene/resources/plane_shape.h" #include "scene/resources/primitive_meshes.h" #include "scene/resources/ray_shape.h" @@ -3637,6 +3638,14 @@ void CollisionShapeSpatialGizmoPlugin::redraw(EditorSpatialGizmo *p_gizmo) { handles.push_back(Vector3(0, 0, rs->get_length())); p_gizmo->add_handles(handles, handles_material); } + + if (Object::cast_to<HeightMapShape>(*s)) { + + Ref<HeightMapShape> hms = s; + + Ref<ArrayMesh> mesh = hms->get_debug_mesh(); + p_gizmo->add_mesh(mesh, false, RID(), material); + } } ///// diff --git a/editor/translations/Makefile b/editor/translations/Makefile index 4f5d9f165f..1843114f06 100644 --- a/editor/translations/Makefile +++ b/editor/translations/Makefile @@ -7,7 +7,7 @@ LANGS = $(POFILES:%.po=%) all: update merge update: - @cd ../..; python2 editor/translations/extract.py + @cd ../..; python3 editor/translations/extract.py merge: @for po in $(POFILES); do \ diff --git a/editor/translations/af.po b/editor/translations/af.po index 795044c0cd..120a87db58 100644 --- a/editor/translations/af.po +++ b/editor/translations/af.po @@ -73,6 +73,14 @@ msgstr "" msgid "Mirror" msgstr "" +#: editor/animation_bezier_editor.cpp editor/editor_profiler.cpp +msgid "Time:" +msgstr "" + +#: editor/animation_bezier_editor.cpp +msgid "Value:" +msgstr "" + #: editor/animation_bezier_editor.cpp #, fuzzy msgid "Insert Key Here" @@ -163,16 +171,21 @@ msgstr "" #: editor/animation_track_editor.cpp #, fuzzy -msgid "Add Track" -msgstr "Anim Voeg Baan By" +msgid "Animation length (frames)" +msgstr "Animasie lengte (in sekondes)." #: editor/animation_track_editor.cpp #, fuzzy -msgid "Animation Length Time (seconds)" +msgid "Animation length (seconds)" msgstr "Animasie lengte (in sekondes)." #: editor/animation_track_editor.cpp #, fuzzy +msgid "Add Track" +msgstr "Anim Voeg Baan By" + +#: editor/animation_track_editor.cpp +#, fuzzy msgid "Animation Looping" msgstr "Animasie Zoem." @@ -304,11 +317,13 @@ msgid "Create %d NEW tracks and insert keys?" msgstr "Skep %d NUWE bane en voeg sleutels by?" #: editor/animation_track_editor.cpp editor/create_dialog.cpp -#: editor/editor_audio_buses.cpp editor/editor_plugin_settings.cpp -#: editor/plugin_config_dialog.cpp +#: editor/editor_audio_buses.cpp editor/editor_feature_profile.cpp +#: editor/editor_plugin_settings.cpp editor/plugin_config_dialog.cpp #: editor/plugins/abstract_polygon_2d_editor.cpp #: editor/plugins/mesh_instance_editor_plugin.cpp -#: editor/plugins/particles_editor_plugin.cpp editor/script_create_dialog.cpp +#: editor/plugins/particles_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_create_dialog.cpp msgid "Create" msgstr "Skep" @@ -424,6 +439,23 @@ msgid "" msgstr "" #: editor/animation_track_editor.cpp +msgid "" +"This animation belongs to an imported scene, so changes to imported tracks " +"will not be saved.\n" +"\n" +"To enable the ability to add custom tracks, navigate to the scene's import " +"settings and set\n" +"\"Animation > Storage\" to \"Files\", enable \"Animation > Keep Custom Tracks" +"\", then re-import.\n" +"Alternatively, use an import preset that imports animations to separate " +"files." +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Warning: Editing imported animation" +msgstr "" + +#: editor/animation_track_editor.cpp msgid "Only show tracks from nodes selected in tree." msgstr "" @@ -562,7 +594,8 @@ msgstr "Skaal Verhouding:" msgid "Select tracks to copy:" msgstr "" -#: editor/animation_track_editor.cpp editor/editor_properties.cpp +#: editor/animation_track_editor.cpp editor/editor_log.cpp +#: editor/editor_properties.cpp #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp @@ -631,6 +664,11 @@ msgstr "Vervang Alles" msgid "Selection Only" msgstr "Slegs Seleksie" +#: editor/code_editor.cpp editor/plugins/script_text_editor.cpp +#: editor/plugins/text_editor.cpp +msgid "Standard" +msgstr "" + #: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/texture_region_editor_plugin.cpp #: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp @@ -656,21 +694,38 @@ msgid "Line and column numbers." msgstr "" #: editor/connections_dialog.cpp -msgid "Method in target Node must be specified!" +#, fuzzy +msgid "Method in target node must be specified." msgstr "Metode in teiken Nodus moet gespesifiseer word!" #: editor/connections_dialog.cpp +#, fuzzy msgid "" -"Target method not found! Specify a valid method or attach a script to target " -"Node." +"Target method not found. Specify a valid method or attach a script to the " +"target node." msgstr "" "Teiken metode nie gevind nie! Spesifiseer 'n geldige metode of heg 'n skrip " "aan die teiken Node." #: editor/connections_dialog.cpp -msgid "Connect To Node:" +#, fuzzy +msgid "Connect to Node:" msgstr "Koppel aan Nodus:" +#: editor/connections_dialog.cpp +#, fuzzy +msgid "Connect to Script:" +msgstr "Koppel aan Nodus:" + +#: editor/connections_dialog.cpp +#, fuzzy +msgid "From Signal:" +msgstr "Seine:" + +#: editor/connections_dialog.cpp +msgid "Scene does not contain any script." +msgstr "" + #: editor/connections_dialog.cpp editor/editor_autoload_settings.cpp #: editor/groups_editor.cpp editor/plugins/item_list_editor_plugin.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_settings_editor.cpp @@ -678,10 +733,12 @@ msgid "Add" msgstr "Voeg By" #: editor/connections_dialog.cpp editor/dependency_editor.cpp -#: editor/groups_editor.cpp editor/plugins/animation_player_editor_plugin.cpp +#: editor/editor_feature_profile.cpp editor/groups_editor.cpp +#: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp #: editor/plugins/resource_preloader_editor_plugin.cpp -#: editor/plugins/theme_editor_plugin.cpp editor/project_manager.cpp +#: editor/plugins/theme_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_manager.cpp #: editor/project_settings_editor.cpp msgid "Remove" msgstr "Verwyder" @@ -695,21 +752,31 @@ msgid "Extra Call Arguments:" msgstr "Ekstra Roep Argumente:" #: editor/connections_dialog.cpp -msgid "Path to Node:" -msgstr "Pad na Nodus:" - -#: editor/connections_dialog.cpp -msgid "Make Function" -msgstr "Maak Funksie" +msgid "Advanced" +msgstr "" #: editor/connections_dialog.cpp msgid "Deferred" msgstr "Uitgestel" #: editor/connections_dialog.cpp +msgid "" +"Defers the signal, storing it in a queue and only firing it at idle time." +msgstr "" + +#: editor/connections_dialog.cpp msgid "Oneshot" msgstr "Een-skoot" +#: editor/connections_dialog.cpp +msgid "Disconnects the signal after its first emission." +msgstr "" + +#: editor/connections_dialog.cpp +#, fuzzy +msgid "Cannot connect signal" +msgstr "Koppel tans Sein:" + #: editor/connections_dialog.cpp editor/dependency_editor.cpp #: editor/export_template_manager.cpp editor/groups_editor.cpp #: editor/plugins/animation_player_editor_plugin.cpp @@ -753,12 +820,12 @@ msgstr "Ontkoppel" #: editor/connections_dialog.cpp #, fuzzy -msgid "Connect Signal: " +msgid "Connect a Signal to a Method" msgstr "Koppel tans Sein:" #: editor/connections_dialog.cpp #, fuzzy -msgid "Edit Connection: " +msgid "Edit Connection:" msgstr "Wysig Seleksie Kurwe" #: editor/connections_dialog.cpp @@ -793,7 +860,6 @@ msgid "Change %s Type" msgstr "Verander Skikking Waarde-Soort" #: editor/create_dialog.cpp editor/project_settings_editor.cpp -#: modules/visual_script/visual_script_editor.cpp msgid "Change" msgstr "" @@ -825,7 +891,8 @@ msgid "Matches:" msgstr "Passendes:" #: editor/create_dialog.cpp editor/plugin_config_dialog.cpp -#: editor/plugins/asset_library_editor_plugin.cpp editor/property_selector.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/property_selector.cpp #: modules/visual_script/visual_script_property_selector.cpp msgid "Description:" msgstr "Beskrywing:" @@ -839,17 +906,19 @@ msgid "Dependencies For:" msgstr "Afhanlikhede Vir:" #: editor/dependency_editor.cpp +#, fuzzy msgid "" "Scene '%s' is currently being edited.\n" -"Changes will not take effect unless reloaded." +"Changes will only take effect when reloaded." msgstr "" "Toneel '%s' is tans besig om geredigeer te word.\n" "Verandering sal eers in werking tree nadat herlaai word." #: editor/dependency_editor.cpp +#, fuzzy msgid "" "Resource '%s' is in use.\n" -"Changes will take effect when reloaded." +"Changes will only take effect when reloaded." msgstr "" "Hulpbron '%s' is in gebruik.\n" "Verandering sal eers in werking tree nadat herlaai word." @@ -947,21 +1016,14 @@ msgid "Permanently delete %d item(s)? (No undo!)" msgstr "Skrap %d item(s) permanent? (Geen ontdoen!)" #: editor/dependency_editor.cpp -msgid "Owns" -msgstr "Besit" - -#: editor/dependency_editor.cpp -msgid "Resources Without Explicit Ownership:" -msgstr "Hulpbronne Sonder Eksplisiete Eienaarskap:" +#, fuzzy +msgid "Show Dependencies" +msgstr "Afhanklikhede" #: editor/dependency_editor.cpp editor/editor_node.cpp msgid "Orphan Resource Explorer" msgstr "Verweerde Hulpbron Verkenner" -#: editor/dependency_editor.cpp -msgid "Delete selected files?" -msgstr "Skrap gekose lêers?" - #: editor/dependency_editor.cpp editor/editor_audio_buses.cpp #: editor/editor_file_dialog.cpp editor/editor_node.cpp #: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp @@ -970,6 +1032,14 @@ msgstr "Skrap gekose lêers?" msgid "Delete" msgstr "Skrap" +#: editor/dependency_editor.cpp +msgid "Owns" +msgstr "Besit" + +#: editor/dependency_editor.cpp +msgid "Resources Without Explicit Ownership:" +msgstr "Hulpbronne Sonder Eksplisiete Eienaarskap:" + #: editor/dictionary_property_edit.cpp msgid "Change Dictionary Key" msgstr "Verander Woordeboek Sleutel" @@ -1085,7 +1155,7 @@ msgstr "Pakket Suksesvol Geïnstalleer!" msgid "Success!" msgstr "Sukses!" -#: editor/editor_asset_installer.cpp +#: editor/editor_asset_installer.cpp editor/editor_node.cpp #: editor/plugins/asset_library_editor_plugin.cpp msgid "Install" msgstr "Installeer" @@ -1213,8 +1283,12 @@ msgid "Open Audio Bus Layout" msgstr "Oop Oudio-Bus Uitleg" #: editor/editor_audio_buses.cpp -msgid "There is no 'res://default_bus_layout.tres' file." -msgstr "Daar is nie 'n 'res://default_bus_layout.tres'-lêer nie." +msgid "There is no '%s' file." +msgstr "" + +#: editor/editor_audio_buses.cpp editor/plugins/canvas_item_editor_plugin.cpp +msgid "Layout" +msgstr "" #: editor/editor_audio_buses.cpp msgid "Invalid file, not an audio bus layout." @@ -1269,20 +1343,27 @@ msgid "Valid characters:" msgstr "Geldige karakters:" #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing engine class name." +#, fuzzy +msgid "Must not collide with an existing engine class name." msgstr "Ongeldige naam. Dit moet nie met bestaande enjin klasname bots nie." #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing buit-in type name." +#, fuzzy +msgid "Must not collide with an existing buit-in type name." msgstr "" "Ongeldige naam. Dit moet nie met bestaande ingeboude tiepename bots nie." #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing global constant name." +#, fuzzy +msgid "Must not collide with an existing global constant name." msgstr "" "Ongeldige naam. Moet nie met bestaande globale knostante name bots nie." #: editor/editor_autoload_settings.cpp +msgid "Keyword cannot be used as an autoload name." +msgstr "" + +#: editor/editor_autoload_settings.cpp msgid "Autoload '%s' already exists!" msgstr "AutoLaai '%s' bestaan reeds!" @@ -1310,11 +1391,12 @@ msgstr "Aktiveer" msgid "Rearrange Autoloads" msgstr "Herrangskik AutoLaaie" -#: editor/editor_autoload_settings.cpp -msgid "Invalid Path." +#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp +#, fuzzy +msgid "Invalid path." msgstr "Ongeldige Pad." -#: editor/editor_autoload_settings.cpp +#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp msgid "File does not exist." msgstr "Lêer bestaan nie." @@ -1365,7 +1447,8 @@ msgid "[unsaved]" msgstr "" #: editor/editor_dir_dialog.cpp -msgid "Please select a base directory first" +#, fuzzy +msgid "Please select a base directory first." msgstr "Kies asseblief eerste die basis gids" #: editor/editor_dir_dialog.cpp @@ -1373,7 +1456,8 @@ msgid "Choose a Directory" msgstr "Kies 'n Gids" #: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp -#: editor/filesystem_dock.cpp scene/gui/file_dialog.cpp +#: editor/filesystem_dock.cpp editor/project_manager.cpp +#: scene/gui/file_dialog.cpp msgid "Create Folder" msgstr "Skep Vouer" @@ -1443,6 +1527,167 @@ msgstr "" msgid "Template file not found:" msgstr "Sjabloon lêer nie gevind nie:\n" +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "3D Editor" +msgstr "Afhanklikheid Bewerker" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Script Editor" +msgstr "Afhanklikheid Bewerker" + +#: editor/editor_feature_profile.cpp +msgid "Asset Library" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Scene Tree Editing" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Import Dock" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Node Dock" +msgstr "Nodus Naam:" + +#: editor/editor_feature_profile.cpp +msgid "Filesystem Dock" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Erase profile '%s'? (no undo)" +msgstr "Vervang Alles" + +#: editor/editor_feature_profile.cpp +msgid "Profile must be a valid filename and must not contain '.'" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Profile with this name already exists." +msgstr "AutoLaai '%s' bestaan reeds!" + +#: editor/editor_feature_profile.cpp +msgid "(Editor Disabled, Properties Disabled)" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "(Properties Disabled)" +msgstr "Eienskappe" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "(Editor Disabled)" +msgstr "Afgeskaskel" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Class Options:" +msgstr "Beskrywing:" + +#: editor/editor_feature_profile.cpp +msgid "Enable Contextual Editor" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enabled Properties:" +msgstr "Eienskappe" + +#: editor/editor_feature_profile.cpp +msgid "Enabled Features:" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enabled Classes:" +msgstr "Deursoek Klasse" + +#: editor/editor_feature_profile.cpp +msgid "File '%s' format is invalid, import aborted." +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "" +"Profile '%s' already exists. Remote it first before importing, import " +"aborted." +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Error saving profile to path: '%s'." +msgstr "Fout tydens storing van hulpbron!" + +#: editor/editor_feature_profile.cpp +msgid "Unset" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Current Profile" +msgstr "Skep Vouer" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Make Current" +msgstr "Maak Funksie" + +#: editor/editor_feature_profile.cpp +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "New" +msgstr "" + +#: editor/editor_feature_profile.cpp editor/editor_node.cpp +#: editor/plugins/asset_library_editor_plugin.cpp editor/project_manager.cpp +msgid "Import" +msgstr "" + +#: editor/editor_feature_profile.cpp editor/editor_node.cpp +#: editor/project_export.cpp +msgid "Export" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Available Profiles" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enabled Classes" +msgstr "Deursoek Klasse" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Class Options" +msgstr "Beskrywing" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "New profile name:" +msgstr "Nodus Naam:" + +#: editor/editor_feature_profile.cpp +msgid "Erase Profile" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Import Profile(s)" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Export Profile" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Manage Editor Feature Profiles" +msgstr "" + #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp #, fuzzy msgid "Select Current Folder" @@ -1466,8 +1711,8 @@ msgstr "" msgid "Open in File Manager" msgstr "Open 'n Lêer" -#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp -#: editor/project_manager.cpp +#: editor/editor_file_dialog.cpp editor/editor_node.cpp +#: editor/filesystem_dock.cpp editor/project_manager.cpp #, fuzzy msgid "Show in File Manager" msgstr "Open 'n Lêer" @@ -1527,7 +1772,7 @@ msgstr "Gaan Vorentoe" msgid "Go Up" msgstr "Gaan Op" -#: editor/editor_file_dialog.cpp +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Toggle Hidden Files" msgstr "Wissel Versteekte Lêers" @@ -1561,8 +1806,9 @@ msgstr "Voorskou:" msgid "Next Folder" msgstr "Skep Vouer" -#: editor/editor_file_dialog.cpp -msgid "Go to parent folder" +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp +#, fuzzy +msgid "Go to parent folder." msgstr "Gaan na ouer vouer" #: editor/editor_file_dialog.cpp @@ -1570,6 +1816,11 @@ msgstr "Gaan na ouer vouer" msgid "(Un)favorite current folder." msgstr "Kon nie vouer skep nie." +#: editor/editor_file_dialog.cpp +#, fuzzy +msgid "Toggle visibility of hidden files." +msgstr "Wissel Versteekte Lêers" + #: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp msgid "View items as a grid of thumbnails." msgstr "" @@ -1584,6 +1835,7 @@ msgstr "Gidse & Lêers:" #: editor/editor_file_dialog.cpp editor/plugins/sprite_editor_plugin.cpp #: editor/plugins/style_box_editor_plugin.cpp +#: editor/plugins/theme_editor_plugin.cpp msgid "Preview:" msgstr "Voorskou:" @@ -1600,6 +1852,12 @@ msgid "ScanSources" msgstr "SkandeerBronne" #: editor/editor_file_system.cpp +msgid "" +"There are multiple importers for different types pointing to file %s, import " +"aborted" +msgstr "" + +#: editor/editor_file_system.cpp msgid "(Re)Importing Assets" msgstr "(Her)Invoer van Bates" @@ -1799,6 +2057,11 @@ msgstr "" msgid "Output:" msgstr "Afvoer:" +#: editor/editor_log.cpp editor/plugins/tile_map_editor_plugin.cpp +#, fuzzy +msgid "Copy Selection" +msgstr "Verwyder Seleksie" + #: editor/editor_log.cpp editor/editor_profiler.cpp #: editor/editor_properties.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp @@ -1947,7 +2210,7 @@ msgstr "" #: editor/editor_node.cpp msgid "" "This resource belongs to a scene that was instanced or inherited.\n" -"Changes to it will not be kept when saving the current scene." +"Changes to it won't be kept when saving the current scene." msgstr "" #: editor/editor_node.cpp @@ -1958,7 +2221,7 @@ msgstr "" #: editor/editor_node.cpp msgid "" -"This scene was imported, so changes to it will not be kept.\n" +"This scene was imported, so changes to it won't be kept.\n" "Instancing it or inheriting will allow making changes to it.\n" "Please read the documentation relevant to importing scenes to better " "understand this workflow." @@ -1966,7 +2229,7 @@ msgstr "" #: editor/editor_node.cpp msgid "" -"This is a remote object so changes to it will not be kept.\n" +"This is a remote object, so changes to it won't be kept.\n" "Please read the documentation relevant to debugging to better understand " "this workflow." msgstr "" @@ -1976,27 +2239,6 @@ msgid "There is no defined scene to run." msgstr "" #: editor/editor_node.cpp -msgid "" -"No main scene has ever been defined, select one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" - -#: editor/editor_node.cpp -msgid "" -"Selected scene '%s' does not exist, select a valid one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" - -#: editor/editor_node.cpp -msgid "" -"Selected scene '%s' is not a scene file, select a valid one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" - -#: editor/editor_node.cpp msgid "Current scene was never saved, please save it prior to running." msgstr "" @@ -2004,7 +2246,7 @@ msgstr "" msgid "Could not start subprocess!" msgstr "" -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/filesystem_dock.cpp msgid "Open Scene" msgstr "" @@ -2013,6 +2255,11 @@ msgid "Open Base Scene" msgstr "" #: editor/editor_node.cpp +#, fuzzy +msgid "Quick Open..." +msgstr "Oop" + +#: editor/editor_node.cpp msgid "Quick Open Scene..." msgstr "" @@ -2174,6 +2421,27 @@ msgid "Clear Recent Scenes" msgstr "" #: editor/editor_node.cpp +msgid "" +"No main scene has ever been defined, select one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"Selected scene '%s' does not exist, select a valid one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"Selected scene '%s' is not a scene file, select a valid one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" + +#: editor/editor_node.cpp msgid "Save Layout" msgstr "" @@ -2201,6 +2469,19 @@ msgstr "" msgid "Close Tab" msgstr "Maak Toe" +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +msgid "Close Other Tabs" +msgstr "" + +#: editor/editor_node.cpp +msgid "Close Tabs to the Right" +msgstr "" + +#: editor/editor_node.cpp +#, fuzzy +msgid "Close All Tabs" +msgstr "Maak Toe" + #: editor/editor_node.cpp msgid "Switch Scene Tab" msgstr "" @@ -2324,10 +2605,6 @@ msgstr "" msgid "Project Settings" msgstr "" -#: editor/editor_node.cpp editor/project_export.cpp -msgid "Export" -msgstr "" - #: editor/editor_node.cpp editor/plugins/tile_set_editor_plugin.cpp msgid "Tools" msgstr "" @@ -2338,6 +2615,10 @@ msgid "Open Project Data Folder" msgstr "Projek Stigters" #: editor/editor_node.cpp +msgid "Install Android Build Template" +msgstr "" + +#: editor/editor_node.cpp msgid "Quit to Project List" msgstr "" @@ -2442,6 +2723,10 @@ msgstr "" msgid "Open Editor Settings Folder" msgstr "" +#: editor/editor_node.cpp +msgid "Manage Editor Features" +msgstr "" + #: editor/editor_node.cpp editor/project_export.cpp msgid "Manage Export Templates" msgstr "" @@ -2454,6 +2739,7 @@ msgstr "" #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp #: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp #: editor/project_settings_editor.cpp editor/rename_dialog.cpp msgid "Search" msgstr "Soek" @@ -2543,11 +2829,6 @@ msgstr "" msgid "Disable Update Spinner" msgstr "" -#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp -#: editor/project_manager.cpp -msgid "Import" -msgstr "" - #: editor/editor_node.cpp msgid "FileSystem" msgstr "" @@ -2573,6 +2854,27 @@ msgid "Don't Save" msgstr "" #: editor/editor_node.cpp +msgid "Android build template is missing, please install relevant templates." +msgstr "" + +#: editor/editor_node.cpp +msgid "Manage Templates" +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"This will install the Android project for custom builds.\n" +"Note that, in order to use it, it needs to be enabled per export preset." +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"Android build template is already installed and it won't be overwritten.\n" +"Remove the \"build\" directory manually before attempting this operation " +"again." +msgstr "" + +#: editor/editor_node.cpp msgid "Import Templates From ZIP File" msgstr "" @@ -2695,10 +2997,6 @@ msgid "Physics Frame %" msgstr "" #: editor/editor_profiler.cpp -msgid "Time:" -msgstr "" - -#: editor/editor_profiler.cpp msgid "Inclusive" msgstr "" @@ -2835,10 +3133,6 @@ msgid "Remove Item" msgstr "" #: editor/editor_run_native.cpp -msgid "Select device from the list" -msgstr "" - -#: editor/editor_run_native.cpp msgid "" "No runnable export preset found for this platform.\n" "Please add a runnable preset in the export menu." @@ -2872,6 +3166,10 @@ msgstr "" msgid "Select Node(s) to Import" msgstr "" +#: editor/editor_sub_scene.cpp editor/project_manager.cpp +msgid "Browse" +msgstr "" + #: editor/editor_sub_scene.cpp msgid "Scene Path:" msgstr "" @@ -3035,6 +3333,11 @@ msgid "SSL Handshake Error" msgstr "" #: editor/export_template_manager.cpp +#, fuzzy +msgid "Uncompressing Android Build Sources" +msgstr "Ontpak Bates" + +#: editor/export_template_manager.cpp msgid "Current Version:" msgstr "" @@ -3051,8 +3354,9 @@ msgid "Remove Template" msgstr "" #: editor/export_template_manager.cpp -msgid "Select template file" -msgstr "" +#, fuzzy +msgid "Select Template File" +msgstr "Skep Vouer" #: editor/export_template_manager.cpp msgid "Export Template Manager" @@ -3111,7 +3415,7 @@ msgid "No name provided." msgstr "" #: editor/filesystem_dock.cpp -msgid "Provided name contains invalid characters" +msgid "Provided name contains invalid characters." msgstr "" #: editor/filesystem_dock.cpp @@ -3142,7 +3446,12 @@ msgstr "Dupliseer" #: editor/filesystem_dock.cpp #, fuzzy -msgid "Open Scene(s)" +msgid "New Inherited Scene" +msgstr "Geërf deur:" + +#: editor/filesystem_dock.cpp +#, fuzzy +msgid "Open Scenes" msgstr "Open Lêer(s)" #: editor/filesystem_dock.cpp @@ -3151,12 +3460,13 @@ msgstr "" #: editor/filesystem_dock.cpp #, fuzzy -msgid "Add to favorites" +msgid "Add to Favorites" msgstr "Gunstelinge:" #: editor/filesystem_dock.cpp -msgid "Remove from favorites" -msgstr "" +#, fuzzy +msgid "Remove from Favorites" +msgstr "Skuif Gunsteling Op" #: editor/filesystem_dock.cpp msgid "Edit Dependencies..." @@ -3188,11 +3498,13 @@ msgstr "" msgid "New Resource..." msgstr "Stoor Hulpbron As..." -#: editor/filesystem_dock.cpp editor/script_editor_debugger.cpp +#: editor/filesystem_dock.cpp editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_editor_debugger.cpp msgid "Expand All" msgstr "" -#: editor/filesystem_dock.cpp editor/script_editor_debugger.cpp +#: editor/filesystem_dock.cpp editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_editor_debugger.cpp #, fuzzy msgid "Collapse All" msgstr "Vervang Alles" @@ -3205,12 +3517,14 @@ msgid "Rename" msgstr "" #: editor/filesystem_dock.cpp -msgid "Previous Directory" -msgstr "" +#, fuzzy +msgid "Previous Folder/File" +msgstr "Voorskou:" #: editor/filesystem_dock.cpp -msgid "Next Directory" -msgstr "" +#, fuzzy +msgid "Next Folder/File" +msgstr "Skep Vouer" #: editor/filesystem_dock.cpp msgid "Re-Scan Filesystem" @@ -3218,7 +3532,7 @@ msgstr "" #: editor/filesystem_dock.cpp #, fuzzy -msgid "Toggle split mode" +msgid "Toggle Split Mode" msgstr "Wissel Modus" #: editor/filesystem_dock.cpp @@ -3248,7 +3562,7 @@ msgstr "" msgid "Create Script" msgstr "" -#: editor/find_in_files.cpp +#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp #, fuzzy msgid "Find in Files" msgstr "Vind" @@ -3267,6 +3581,12 @@ msgstr "Skep Vouer" msgid "Filters:" msgstr "" +#: editor/find_in_files.cpp +msgid "" +"Include the files with the following extensions. Add or remove them in " +"ProjectSettings." +msgstr "" + #: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp msgid "Find..." @@ -3716,7 +4036,7 @@ msgstr "Optimaliseer Animasie" #: editor/plugins/animation_blend_space_2d_editor.cpp #, fuzzy -msgid "Triangle already exists" +msgid "Triangle already exists." msgstr "AutoLaai '%s' bestaan reeds!" #: editor/plugins/animation_blend_space_2d_editor.cpp @@ -3794,7 +4114,6 @@ msgid "Node Moved" msgstr "Nodus Naam:" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Unable to connect, port may be in use or connection may be invalid." msgstr "" @@ -3868,8 +4187,9 @@ msgid "Edit Filtered Tracks:" msgstr "" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -msgid "Enable filtering" -msgstr "" +#, fuzzy +msgid "Enable Filtering" +msgstr "Verander Anim Lente" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Toggle Autoplay" @@ -3987,10 +4307,6 @@ msgid "Animation" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "New" -msgstr "" - -#: editor/plugins/animation_player_editor_plugin.cpp #, fuzzy msgid "Edit Transitions..." msgstr "Oorgange" @@ -4009,11 +4325,11 @@ msgid "Autoplay on Load" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Onion Skinning" +msgid "Enable Onion Skinning" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Enable Onion Skinning" +msgid "Onion Skinning Options" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp @@ -4567,13 +4883,19 @@ msgid "Move CanvasItem" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"Children of containers have their anchors and margins values overridden by " +"their parent." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Presets for the anchors and margins values of a Control node." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "" -"Children of containers have their anchors and margins values overridden by " -"their parent." +"When active, moving Control nodes changes their anchors instead of their " +"margins." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4589,10 +4911,49 @@ msgid "Change Anchors" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Lock Selected" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Unlock Selected" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Group Selected" +msgstr "Verwyder Seleksie" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Ungroup Selected" +msgstr "Verwyder Seleksie" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Paste Pose" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Create Custom Bone(s) from Node(s)" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Clear Bones" +msgstr "Vee uit" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Make IK Chain" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Clear IK Chain" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "" "Warning: Children of a container get their position and size determined only " "by their parent." @@ -4666,7 +5027,7 @@ msgid "Snapping Options" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to grid" +msgid "Snap to Grid" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4687,31 +5048,31 @@ msgid "Use Pixel Snap" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Smart snapping" +msgid "Smart Snapping" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to parent" +msgid "Snap to Parent" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node anchor" +msgid "Snap to Node Anchor" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node sides" +msgid "Snap to Node Sides" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node center" +msgid "Snap to Node Center" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to other nodes" +msgid "Snap to Other Nodes" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to guides" +msgid "Snap to Guides" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4725,10 +5086,12 @@ msgid "Unlock the selected object (can be moved)." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Makes sure the object's children are not selectable." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Restores the object's children's ability to be selected." msgstr "" @@ -4742,14 +5105,6 @@ msgid "Show Bones" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Make IK Chain" -msgstr "" - -#: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Clear IK Chain" -msgstr "" - -#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Make Custom Bone(s) from Node(s)" msgstr "" @@ -4800,7 +5155,7 @@ msgid "Frame Selection" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Layout" +msgid "Preview Canvas Scale" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4854,6 +5209,10 @@ msgid "Divide grid step by 2" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Pan View" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Add %s" msgstr "" @@ -4876,8 +5235,9 @@ msgid "Error instancing scene from %s" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Change default type" -msgstr "" +#, fuzzy +msgid "Change Default Type" +msgstr "Verander Skikking Waarde-Soort" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "" @@ -4963,19 +5323,19 @@ msgid "Create Emission Points From Node" msgstr "" #: editor/plugins/curve_editor_plugin.cpp -msgid "Flat0" +msgid "Flat 0" msgstr "" #: editor/plugins/curve_editor_plugin.cpp -msgid "Flat1" +msgid "Flat 1" msgstr "" -#: editor/plugins/curve_editor_plugin.cpp -msgid "Ease in" +#: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp +msgid "Ease In" msgstr "" -#: editor/plugins/curve_editor_plugin.cpp -msgid "Ease out" +#: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp +msgid "Ease Out" msgstr "" #: editor/plugins/curve_editor_plugin.cpp @@ -4995,24 +5355,29 @@ msgid "Load Curve Preset" msgstr "" #: editor/plugins/curve_editor_plugin.cpp -msgid "Add point" -msgstr "" +#, fuzzy +msgid "Add Point" +msgstr "Skuif Gunsteling Op" #: editor/plugins/curve_editor_plugin.cpp -msgid "Remove point" -msgstr "" +#, fuzzy +msgid "Remove Point" +msgstr "Skuif Gunsteling Op" #: editor/plugins/curve_editor_plugin.cpp -msgid "Left linear" -msgstr "" +#, fuzzy +msgid "Left Linear" +msgstr "Lineêr" #: editor/plugins/curve_editor_plugin.cpp -msgid "Right linear" -msgstr "" +#, fuzzy +msgid "Right Linear" +msgstr "Lineêr" #: editor/plugins/curve_editor_plugin.cpp -msgid "Load preset" -msgstr "" +#, fuzzy +msgid "Load Preset" +msgstr "Laai Verstek" #: editor/plugins/curve_editor_plugin.cpp msgid "Remove Curve Point" @@ -5067,14 +5432,19 @@ msgid "This doesn't work on scene root!" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Trimesh Shape" +msgid "Create Trimesh Static Shape" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Shape" +msgid "Failed creating shapes!" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp +#, fuzzy +msgid "Create Convex Shape(s)" +msgstr "Skep Nuwe" + +#: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Navigation Mesh" msgstr "" @@ -5124,16 +5494,13 @@ msgid "Create Trimesh Static Body" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Static Body" -msgstr "" - -#: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Trimesh Collision Sibling" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Collision Sibling" -msgstr "" +#, fuzzy +msgid "Create Convex Collision Sibling(s)" +msgstr "Skep Intekening" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Outline Mesh..." @@ -5286,20 +5653,20 @@ msgid "Create Navigation Polygon" msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp -msgid "Generating Visibility Rect" +#: editor/plugins/particles_editor_plugin.cpp +msgid "Convert to CPUParticles" msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp -msgid "Generate Visibility Rect" +msgid "Generating Visibility Rect" msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp -msgid "Can only set point into a ParticlesMaterial process material" +msgid "Generate Visibility Rect" msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp -#: editor/plugins/particles_editor_plugin.cpp -msgid "Convert to CPUParticles" +msgid "Can only set point into a ParticlesMaterial process material" msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp @@ -5442,7 +5809,7 @@ msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp editor/plugins/theme_editor_plugin.cpp -#: editor/project_export.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_export.cpp msgid "Options" msgstr "" @@ -5494,7 +5861,7 @@ msgstr "" #: editor/plugins/physical_bone_plugin.cpp #, fuzzy -msgid "Move joint" +msgid "Move Joint" msgstr "Skuif Gunsteling Op" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5733,7 +6100,6 @@ msgid "Open in Editor" msgstr "" #: editor/plugins/resource_preloader_editor_plugin.cpp -#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Load Resource" msgstr "" @@ -5833,6 +6199,11 @@ msgid "%s Class Reference" msgstr "" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp +msgid "Find Next" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp msgid "Toggle alphabetical sorting of the method list." msgstr "" @@ -5916,10 +6287,6 @@ msgstr "" msgid "Close All" msgstr "" -#: editor/plugins/script_editor_plugin.cpp -msgid "Close Other Tabs" -msgstr "" - #: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp msgid "Run" msgstr "" @@ -5928,11 +6295,6 @@ msgstr "" msgid "Toggle Scripts Panel" msgstr "" -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/script_text_editor.cpp -msgid "Find Next" -msgstr "" - #: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp msgid "Step Over" msgstr "" @@ -5959,15 +6321,16 @@ msgid "Debug with External Editor" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Open Godot online documentation" -msgstr "" +#, fuzzy +msgid "Open Godot online documentation." +msgstr "Opnoemings" #: editor/plugins/script_editor_plugin.cpp msgid "Request Docs" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Help improve the Godot documentation by giving feedback" +msgid "Help improve the Godot documentation by giving feedback." msgstr "" #: editor/plugins/script_editor_plugin.cpp @@ -5993,10 +6356,12 @@ msgid "" msgstr "" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp msgid "Reload" msgstr "" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp msgid "Resave" msgstr "" @@ -6011,6 +6376,31 @@ msgstr "Deursoek Hulp" #: editor/plugins/script_text_editor.cpp #, fuzzy +msgid "Connections to method:" +msgstr "Koppel aan Nodus:" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Source" +msgstr "Hulpbron" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Signal" +msgstr "Seine" + +#: editor/plugins/script_text_editor.cpp +msgid "Target" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "" +"Missing connected method '%s' for signal '%s' from node '%s' to node '%s'." +msgstr "Koppel '%s' aan '%s'" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy msgid "Line" msgstr "Reël:" @@ -6023,10 +6413,6 @@ msgstr "" msgid "Go to Function" msgstr "Maak Funksie" -#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp -msgid "Standard" -msgstr "" - #: editor/plugins/script_text_editor.cpp msgid "Only resources from filesystem can be dropped." msgstr "" @@ -6059,6 +6445,11 @@ msgstr "" msgid "Syntax Highlighter" msgstr "" +#: editor/plugins/script_text_editor.cpp +#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp +msgid "Bookmarks" +msgstr "" + #: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" @@ -6086,6 +6477,26 @@ msgid "Toggle Comment" msgstr "" #: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Toggle Bookmark" +msgstr "Wissel Modus" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Go to Next Bookmark" +msgstr "Gaan na Volgende Stap" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Go to Previous Bookmark" +msgstr "Gaan na Vorige Stap" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Remove All Bookmarks" +msgstr "Hernoem AutoLaai" + +#: editor/plugins/script_text_editor.cpp msgid "Fold/Unfold Line" msgstr "" @@ -6164,6 +6575,12 @@ msgid "Contextual Help" msgstr "" #: editor/plugins/shader_editor_plugin.cpp +msgid "" +"This shader has been modified on on disk.\n" +"What action should be taken?" +msgstr "" + +#: editor/plugins/shader_editor_plugin.cpp msgid "Shader" msgstr "" @@ -6504,7 +6921,7 @@ msgid "Right View" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Switch Perspective/Orthogonal view" +msgid "Switch Perspective/Orthogonal View" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp @@ -6544,11 +6961,12 @@ msgid "Toggle Freelook" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Transform" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Snap object to floor" +msgid "Snap Object to Floor" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp @@ -6693,23 +7111,11 @@ msgid "Invalid geometry, can't replace by mesh." msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Invalid geometry, can't create polygon." -msgstr "" - -#: editor/plugins/sprite_editor_plugin.cpp -msgid "Invalid geometry, can't create collision polygon." -msgstr "" - -#: editor/plugins/sprite_editor_plugin.cpp -msgid "Invalid geometry, can't create light occluder." -msgstr "" - -#: editor/plugins/sprite_editor_plugin.cpp -msgid "Sprite" +msgid "Convert to Mesh2D" msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Convert to Mesh2D" +msgid "Invalid geometry, can't create polygon." msgstr "" #: editor/plugins/sprite_editor_plugin.cpp @@ -6718,15 +7124,27 @@ msgid "Convert to Polygon2D" msgstr "Hernoem AutoLaai" #: editor/plugins/sprite_editor_plugin.cpp +msgid "Invalid geometry, can't create collision polygon." +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp #, fuzzy msgid "Create CollisionPolygon2D Sibling" msgstr "Skep Intekening" #: editor/plugins/sprite_editor_plugin.cpp +msgid "Invalid geometry, can't create light occluder." +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp msgid "Create LightOccluder2D Sibling" msgstr "" #: editor/plugins/sprite_editor_plugin.cpp +msgid "Sprite" +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp msgid "Simplification: " msgstr "" @@ -6744,7 +7162,12 @@ msgid "Settings:" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "ERROR: Couldn't load frame resource!" +#, fuzzy +msgid "No Frames Selected" +msgstr "Koppel" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Add %d Frame(s)" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp @@ -6752,6 +7175,10 @@ msgid "Add Frame" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "ERROR: Couldn't load frame resource!" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Resource clipboard is empty or not a texture!" msgstr "" @@ -6795,6 +7222,15 @@ msgid "Animation Frames:" msgstr "Animasie Zoem." #: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Add a Texture from File" +msgstr "Skuif huidige baan op." + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Add Frames from a Sprite Sheet" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Insert Empty (Before)" msgstr "" @@ -6811,6 +7247,26 @@ msgid "Move (After)" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Select Frames" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Horizontal:" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Vertical:" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Select/Clear All Frames" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Create Frames from Sprite Sheet" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "SpriteFrames" msgstr "" @@ -6875,13 +7331,14 @@ msgstr "" msgid "Remove All Items" msgstr "" -#: editor/plugins/theme_editor_plugin.cpp +#: editor/plugins/theme_editor_plugin.cpp editor/project_manager.cpp msgid "Remove All" msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "Edit theme..." -msgstr "" +#, fuzzy +msgid "Edit Theme" +msgstr "Lede" #: editor/plugins/theme_editor_plugin.cpp msgid "Theme editing menu." @@ -6908,18 +7365,25 @@ msgid "Create From Current Editor Theme" msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "CheckBox Radio1" -msgstr "" +#, fuzzy +msgid "Toggle Button" +msgstr "Wissel Modus" #: editor/plugins/theme_editor_plugin.cpp -msgid "CheckBox Radio2" -msgstr "" +#, fuzzy +msgid "Disabled Button" +msgstr "Afgeskaskel" #: editor/plugins/theme_editor_plugin.cpp msgid "Item" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Disabled Item" +msgstr "Afgeskaskel" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Check Item" msgstr "" @@ -6936,6 +7400,22 @@ msgid "Checked Radio Item" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +msgid "Named Sep." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Submenu" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Item 1" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Item 2" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Has" msgstr "" @@ -6944,8 +7424,9 @@ msgid "Many" msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "Has,Many,Options" -msgstr "" +#, fuzzy +msgid "Disabled LineEdit" +msgstr "Afgeskaskel" #: editor/plugins/theme_editor_plugin.cpp msgid "Tab 1" @@ -6960,6 +7441,18 @@ msgid "Tab 3" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +msgid "Editable Item" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Subtree" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Has,Many,Options" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Data Type:" msgstr "" @@ -6993,6 +7486,7 @@ msgid "Fix Invalid Tiles" msgstr "Ongeldige naam." #: editor/plugins/tile_map_editor_plugin.cpp +#: modules/gridmap/grid_map_editor_plugin.cpp #, fuzzy msgid "Cut Selection" msgstr "Dupliseer Seleksie" @@ -7035,37 +7529,46 @@ msgid "Mirror Y" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp +msgid "Disable Autotile" +msgstr "" + +#: editor/plugins/tile_map_editor_plugin.cpp +msgid "Enable Priority" +msgstr "" + +#: editor/plugins/tile_map_editor_plugin.cpp msgid "Paint Tile" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Pick Tile" +msgid "" +"Shift+RMB: Line Draw\n" +"Shift+Ctrl+RMB: Rectangle Paint" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy -msgid "Copy Selection" -msgstr "Verwyder Seleksie" +msgid "Pick Tile" +msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Rotate left" +msgid "Rotate Left" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Rotate right" +msgid "Rotate Right" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Flip horizontally" +msgid "Flip Horizontally" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Flip vertically" +msgid "Flip Vertically" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp #, fuzzy -msgid "Clear transform" +msgid "Clear Transform" msgstr "Anim Verander Transform" #: editor/plugins/tile_set_editor_plugin.cpp @@ -7102,6 +7605,42 @@ msgid "Select the previous shape, subtile, or Tile." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp +msgid "Region Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Collision Mode" +msgstr "Skep Intekening" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Occlusion Mode" +msgstr "Skep Intekening" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Navigation Mode" +msgstr "Skep Intekening" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Bitmask Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Priority Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Icon Mode" +msgstr "Wissel Modus" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Z Index Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp msgid "Copy bitmask." msgstr "" @@ -7189,6 +7728,7 @@ msgstr "Skep Intekening" msgid "" "LMB: Set bit on.\n" "RMB: Set bit off.\n" +"Shift+LMB: Set wildcard bit.\n" "Click on another Tile to edit it." msgstr "Skep Vouer" @@ -7305,6 +7845,71 @@ msgid "TileSet" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add input +" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add output +" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Add input port" +msgstr "Gunstelinge:" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add output port" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change input port type" +msgstr "Verander Skikking Waarde-Soort" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Change output port type" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change input port name" +msgstr "Verander Woordeboek Waarde" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Change output port name" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Remove input port" +msgstr "Hernoem AutoLaai" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Remove output port" +msgstr "Verwyder Seleksie" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Set expression" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Resize VisualShader node" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Set Uniform Name" msgstr "" @@ -7343,6 +7948,849 @@ msgid "Light" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Create Shader Node" +msgstr "Skep Vouer" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Color function." +msgstr "Maak Funksie" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Color operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Grayscale function." +msgstr "Maak Funksie" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts HSV vector to RGB equivalent." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts RGB vector to HSV equivalent." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Sepia function." +msgstr "Maak Funksie" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Burn operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Darken operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Difference operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Dodge operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "HardLight operator" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Lighten operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Overlay operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Screen operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "SoftLight operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Color constant." +msgstr "Konstant" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Color uniform." +msgstr "Anim Verander Transform" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns an associated vector if the provided scalars are equal, greater or " +"less." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns an associated vector if the provided boolean value is true or false." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'camera' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'inv_camera' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'inv_projection' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'normal' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'projection' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'time' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'viewport_size' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'world' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'texture_pixel_size' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Input parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'binormal' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'fragcoord' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_coord' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_uv' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'side' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'tangent' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv2' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'vertex' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'view' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'albedo' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'attenuation' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'diffuse' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_color' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'roughness' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'specular' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'transmission' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'modelview' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_size' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'tangent' input parameter for vertex and fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_pass' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_coord' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_pixel_size' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_uv' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_alpha' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_height' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_uv' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_vec' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'normal' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'shadow_color' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'extra' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'projection' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'vertex' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'world' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'active' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'custom' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'custom_alpha' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'delta' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'emission_transform' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'index' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'lifetime' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'restart' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'time' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'transform' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'velocity' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar function." +msgstr "Skaal Seleksie" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Scalar operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "E constant (2.718282). Represents the base of the natural logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Epsilon constant (0.00001). Smallest possible scalar number." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Phi constant (1.618034). Golden ratio." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi/4 constant (0.785398) or 45 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi/2 constant (1.570796) or 90 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi constant (3.141593) or 180 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Tau constant (6.283185) or 360 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Sqrt2 constant (1.414214). Square root of 2." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the absolute value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-tangent of the parameters." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Finds the nearest integer that is greater than or equal to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Constrains a value to lie between two further values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts a quantity in radians to degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-e Exponential." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-2 Exponential." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Finds the nearest integer less than or equal to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Computes the fractional part of the argument." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the inverse of the square root of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Natural logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-2 logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the greater of two values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the lesser of two values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Linear interpolation between two scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the opposite value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 - scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns the value of the first parameter raised to the power of the second." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts a quantity in degrees to radians." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 / scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the nearest integer to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the nearest even integer to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Clamps the value between 0.0 and 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Extracts the sign of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the square root of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( scalar(edge0), scalar(edge1), scalar(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if x is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( scalar(edge), scalar(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the truncated value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Adds scalar to scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Divides scalar by scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies scalar by scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the remainder of the two scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Subtracts scalar from scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Scalar constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar uniform." +msgstr "Anim Verander Transform" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Perform the cubic texture lookup." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Perform the texture lookup." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Cubic texture uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "2D texture uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Transform function." +msgstr "Skep Intekening" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) Calculate the outer product of a pair of vectors.\n" +"\n" +"OuterProduct treats the first parameter 'c' as a column vector (matrix with " +"one column) and the second parameter 'r' as a row vector (matrix with one " +"row) and does a linear algebraic matrix multiply 'c * r', yielding a matrix " +"whose number of rows is the number of components in 'c' and whose number of " +"columns is the number of components in 'r'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Composes transform from four vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Decomposes transform to four vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the determinant of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the inverse of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the transpose of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies transform by transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies vector by transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Transform constant." +msgstr "Skep Intekening" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Transform uniform." +msgstr "Skep Intekening" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector function." +msgstr "Maak Funksie" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Composes vector from three scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Decomposes vector to three scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the cross product of two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the distance between two points." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the dot product of two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns a vector that points in the same direction as a reference vector. " +"The function has three vector parameters : N, the vector to orient, I, the " +"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 "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the length of a vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Linear interpolation between two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the normalize product of vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 - vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 / vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns a vector that points in the direction of reflection ( a : incident " +"vector, b : normal vector )." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns a vector that points in the direction of refraction." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( vector(edge0), vector(edge1), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if 'x' is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( scalar(edge0), scalar(edge1), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if 'x' is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( vector(edge), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( scalar(edge), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Adds vector to vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Divides vector by vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies vector by vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the remainder of the two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Subtracts vector from vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Custom Godot Shader Language expression, with custom amount of input and " +"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 "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns falloff based on the dot product of surface normal and view " +"direction of camera (pass associated inputs to it)." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) (Fragment/Light mode only) Scalar derivative function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) (Fragment/Light mode only) Vector derivative function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Derivative in 'x' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Derivative in 'x' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Derivative in 'y' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Derivative in 'y' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Sum of absolute derivative " +"in 'x' and 'y'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Sum of absolute derivative " +"in 'x' and 'y'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "VisualShader" msgstr "" @@ -7530,6 +8978,10 @@ msgid "Directory already contains a Godot project." msgstr "" #: editor/project_manager.cpp +msgid "New Game Project" +msgstr "" + +#: editor/project_manager.cpp msgid "Imported Project" msgstr "" @@ -7578,10 +9030,6 @@ msgid "Rename Project" msgstr "" #: editor/project_manager.cpp -msgid "New Game Project" -msgstr "" - -#: editor/project_manager.cpp msgid "Import Existing Project" msgstr "" @@ -7612,10 +9060,6 @@ msgid "Project Name:" msgstr "" #: editor/project_manager.cpp -msgid "Create folder" -msgstr "" - -#: editor/project_manager.cpp msgid "Project Path:" msgstr "" @@ -7624,10 +9068,6 @@ msgid "Project Installation Path:" msgstr "" #: editor/project_manager.cpp -msgid "Browse" -msgstr "" - -#: editor/project_manager.cpp msgid "Renderer:" msgstr "" @@ -7681,8 +9121,8 @@ msgid "" "\n" "If you proceed with opening it, it will be converted to Godot's current " "configuration file format.\n" -"Warning: You will not be able to open the project with previous versions of " -"the engine anymore." +"Warning: You won't be able to open the project with previous versions of the " +"engine anymore." msgstr "" #: editor/project_manager.cpp @@ -7693,8 +9133,8 @@ msgid "" "%s\n" "\n" "Do you want to convert it?\n" -"Warning: You will not be able to open the project with previous versions of " -"the engine anymore." +"Warning: You won't be able to open the project with previous versions of the " +"engine anymore." msgstr "" #: editor/project_manager.cpp @@ -7706,7 +9146,7 @@ msgstr "" #: editor/project_manager.cpp msgid "" "Can't run project: no main scene defined.\n" -"Please edit the project and set the main scene in \"Project Settings\" under " +"Please edit the project and set the main scene in the Project Settings under " "the \"Application\" category." msgstr "" @@ -7717,23 +9157,37 @@ msgid "" msgstr "" #: editor/project_manager.cpp -msgid "Are you sure to run more than one project?" +msgid "Are you sure to run %d projects at once?" msgstr "" #: editor/project_manager.cpp -msgid "Remove project from the list? (Folder contents will not be modified)" +msgid "" +"Remove %d projects from the list?\n" +"The project folders' contents won't be modified." +msgstr "" + +#: editor/project_manager.cpp +msgid "" +"Remove this project from the list?\n" +"The project folder's contents won't be modified." +msgstr "" + +#: editor/project_manager.cpp +msgid "" +"Remove all missing projects from the list? (Folders contents will not be " +"modified)" msgstr "" #: editor/project_manager.cpp msgid "" "Language changed.\n" -"The UI will update next time the editor or project manager starts." +"The interface will update after restarting the editor or project manager." msgstr "" #: editor/project_manager.cpp msgid "" -"You are about the scan %s folders for existing Godot projects. Do you " -"confirm?" +"Are you sure to scan %s folders for existing Godot projects?\n" +"This could take a while." msgstr "" #: editor/project_manager.cpp @@ -7757,6 +9211,11 @@ msgid "New Project" msgstr "" #: editor/project_manager.cpp +#, fuzzy +msgid "Remove Missing" +msgstr "Verwyder" + +#: editor/project_manager.cpp msgid "Templates" msgstr "" @@ -7774,8 +9233,8 @@ msgstr "" #: editor/project_manager.cpp msgid "" -"You don't currently have any projects.\n" -"Would you like to explore the official example projects in the Asset Library?" +"You currently don't have any projects.\n" +"Would you like to explore official example projects in the Asset Library?" msgstr "" #: editor/project_settings_editor.cpp @@ -7801,8 +9260,9 @@ msgid "" msgstr "" #: editor/project_settings_editor.cpp -msgid "Action '%s' already exists!" -msgstr "" +#, fuzzy +msgid "An action with the name '%s' already exists." +msgstr "AutoLaai '%s' bestaan reeds!" #: editor/project_settings_editor.cpp msgid "Rename Input Action Event" @@ -7956,10 +9416,6 @@ msgid "" msgstr "" #: editor/project_settings_editor.cpp -msgid "Already existing" -msgstr "" - -#: editor/project_settings_editor.cpp msgid "Add Input Action" msgstr "" @@ -8024,7 +9480,7 @@ msgid "Override For..." msgstr "" #: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp -msgid "Editor must be restarted for changes to take effect" +msgid "The editor must be restarted for changes to take effect." msgstr "" #: editor/project_settings_editor.cpp @@ -8085,12 +9541,13 @@ msgid "Locales Filter" msgstr "" #: editor/project_settings_editor.cpp -msgid "Show all locales" +msgid "Show All Locales" msgstr "" #: editor/project_settings_editor.cpp -msgid "Show only selected locales" -msgstr "" +#, fuzzy +msgid "Show Selected Locales Only" +msgstr "Slegs Seleksie" #: editor/project_settings_editor.cpp msgid "Filter mode:" @@ -8105,14 +9562,6 @@ msgid "AutoLoad" msgstr "" #: editor/property_editor.cpp -msgid "Ease In" -msgstr "" - -#: editor/property_editor.cpp -msgid "Ease Out" -msgstr "" - -#: editor/property_editor.cpp msgid "Zero" msgstr "" @@ -8186,7 +9635,7 @@ msgid "Suffix" msgstr "" #: editor/rename_dialog.cpp -msgid "Advanced options" +msgid "Advanced Options" msgstr "" #: editor/rename_dialog.cpp @@ -8443,8 +9892,9 @@ msgid "User Interface" msgstr "" #: editor/scene_tree_dock.cpp -msgid "Custom Node" -msgstr "" +#, fuzzy +msgid "Other Node" +msgstr "Skrap" #: editor/scene_tree_dock.cpp msgid "Can't operate on nodes from a foreign scene!" @@ -8487,7 +9937,7 @@ msgstr "" #: editor/scene_tree_dock.cpp #, fuzzy -msgid "Open documentation" +msgid "Open Documentation" msgstr "Opnoemings" #: editor/scene_tree_dock.cpp @@ -8514,7 +9964,7 @@ msgstr "" msgid "Save Branch as Scene" msgstr "" -#: editor/scene_tree_dock.cpp +#: editor/scene_tree_dock.cpp editor/script_editor_debugger.cpp msgid "Copy Node Path" msgstr "" @@ -8558,6 +10008,20 @@ msgid "Toggle Visible" msgstr "Wissel Versteekte Lêers" #: editor/scene_tree_editor.cpp +#, fuzzy +msgid "Unlock Node" +msgstr "Skuif Byvoeg Sleutel" + +#: editor/scene_tree_editor.cpp +msgid "Button Group" +msgstr "" + +#: editor/scene_tree_editor.cpp +#, fuzzy +msgid "(Connecting From)" +msgstr "Koppel tans Sein:" + +#: editor/scene_tree_editor.cpp msgid "Node configuration warning:" msgstr "" @@ -8579,9 +10043,10 @@ msgid "" "Click to show groups dock." msgstr "" -#: editor/scene_tree_editor.cpp editor/script_create_dialog.cpp -msgid "Open Script" -msgstr "" +#: editor/scene_tree_editor.cpp +#, fuzzy +msgid "Open Script:" +msgstr "Afhanklikheid Bewerker" #: editor/scene_tree_editor.cpp msgid "" @@ -8626,71 +10091,74 @@ msgid "Select a Node" msgstr "" #: editor/script_create_dialog.cpp -msgid "Error loading template '%s'" +msgid "Path is empty." msgstr "" #: editor/script_create_dialog.cpp -msgid "Error - Could not create script in filesystem." +msgid "Filename is empty." msgstr "" #: editor/script_create_dialog.cpp -msgid "Error loading script from %s" +msgid "Path is not local." msgstr "" #: editor/script_create_dialog.cpp -msgid "N/A" -msgstr "" +#, fuzzy +msgid "Invalid base path." +msgstr "Ongeldige Pad." #: editor/script_create_dialog.cpp -msgid "Open Script/Choose Location" +msgid "A directory with the same name exists." msgstr "" #: editor/script_create_dialog.cpp -msgid "Path is empty" -msgstr "" +#, fuzzy +msgid "Invalid extension." +msgstr "Moet 'n geldige uitbreiding gebruik." #: editor/script_create_dialog.cpp -msgid "Filename is empty" +msgid "Wrong extension chosen." msgstr "" #: editor/script_create_dialog.cpp -msgid "Path is not local" +msgid "Error loading template '%s'" msgstr "" #: editor/script_create_dialog.cpp -msgid "Invalid base path" +msgid "Error - Could not create script in filesystem." msgstr "" #: editor/script_create_dialog.cpp -msgid "Directory of the same name exists" +msgid "Error loading script from %s" msgstr "" #: editor/script_create_dialog.cpp -msgid "File exists, will be reused" +msgid "N/A" msgstr "" #: editor/script_create_dialog.cpp -msgid "Invalid extension" +msgid "Open Script / Choose Location" msgstr "" #: editor/script_create_dialog.cpp -msgid "Wrong extension chosen" +msgid "Open Script" msgstr "" #: editor/script_create_dialog.cpp -msgid "Invalid Path" +msgid "File exists, it will be reused." msgstr "" #: editor/script_create_dialog.cpp -msgid "Invalid class name" -msgstr "" +#, fuzzy +msgid "Invalid class name." +msgstr "Ongeldige naam." #: editor/script_create_dialog.cpp -msgid "Invalid inherited parent name or path" +msgid "Invalid inherited parent name or path." msgstr "" #: editor/script_create_dialog.cpp -msgid "Script valid" +msgid "Script is valid." msgstr "" #: editor/script_create_dialog.cpp @@ -8698,16 +10166,18 @@ msgid "Allowed: a-z, A-Z, 0-9 and _" msgstr "" #: editor/script_create_dialog.cpp -msgid "Built-in script (into scene file)" +msgid "Built-in script (into scene file)." msgstr "" #: editor/script_create_dialog.cpp -msgid "Create new script file" -msgstr "" +#, fuzzy +msgid "Will create a new script file." +msgstr "Skep Nuwe" #: editor/script_create_dialog.cpp -msgid "Load existing script file" -msgstr "" +#, fuzzy +msgid "Will load an existing script file." +msgstr "Laai 'n bestaande Bus Uitleg." #: editor/script_create_dialog.cpp msgid "Language" @@ -8837,6 +10307,10 @@ msgstr "" msgid "Set From Tree" msgstr "" +#: editor/script_editor_debugger.cpp +msgid "Export measures as CSV" +msgstr "" + #: editor/settings_config_dialog.cpp msgid "Erase Shortcut" msgstr "" @@ -8967,6 +10441,14 @@ msgid "GDNativeLibrary" msgstr "" #: modules/gdnative/gdnative_library_singleton_editor.cpp +msgid "Enabled GDNative Singleton" +msgstr "" + +#: modules/gdnative/gdnative_library_singleton_editor.cpp +msgid "Disabled GDNative Singleton" +msgstr "" + +#: modules/gdnative/gdnative_library_singleton_editor.cpp msgid "Library" msgstr "" @@ -9052,8 +10534,9 @@ msgid "GridMap Fill Selection" msgstr "Alle Seleksie" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "GridMap Duplicate Selection" -msgstr "" +#, fuzzy +msgid "GridMap Paste Selection" +msgstr "Alle Seleksie" #: modules/gridmap/grid_map_editor_plugin.cpp msgid "GridMap Paint" @@ -9120,18 +10603,6 @@ msgid "Cursor Clear Rotation" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Create Area" -msgstr "" - -#: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Create Exterior Connector" -msgstr "" - -#: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Erase Area" -msgstr "" - -#: modules/gridmap/grid_map_editor_plugin.cpp msgid "Clear Selection" msgstr "" @@ -9487,15 +10958,7 @@ msgid "Available Nodes:" msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Select or create a function to edit graph" -msgstr "" - -#: modules/visual_script/visual_script_editor.cpp -msgid "Edit Signal Arguments:" -msgstr "" - -#: modules/visual_script/visual_script_editor.cpp -msgid "Edit Variable:" +msgid "Select or create a function to edit its graph." msgstr "" #: modules/visual_script/visual_script_editor.cpp @@ -9627,6 +11090,19 @@ msgid "Debug keystore not configured in the Editor Settings nor in the preset." msgstr "" #: platform/android/export/export.cpp +msgid "Custom build requires a valid Android SDK path in Editor Settings." +msgstr "" + +#: platform/android/export/export.cpp +msgid "Invalid Android SDK path for custom build in Editor Settings." +msgstr "" + +#: platform/android/export/export.cpp +msgid "" +"Android project is not installed for compiling. Install from Editor menu." +msgstr "" + +#: platform/android/export/export.cpp msgid "Invalid public key for APK expansion." msgstr "" @@ -9635,6 +11111,34 @@ msgstr "" msgid "Invalid package name:" msgstr "Ongeldige naam." +#: platform/android/export/export.cpp +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 "" +"Android build version mismatch:\n" +" Template installed: %s\n" +" Godot Version: %s\n" +"Please reinstall Android build template from 'Project' menu." +msgstr "" + +#: platform/android/export/export.cpp +msgid "Building Android Project (gradle)" +msgstr "" + +#: 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 "" + +#: platform/android/export/export.cpp +msgid "No build apk generated at: " +msgstr "" + #: platform/iphone/export/export.cpp msgid "Identifier is missing." msgstr "" @@ -9895,27 +11399,27 @@ msgid "ARVRCamera must have an ARVROrigin node as its parent" msgstr "" #: scene/3d/arvr_nodes.cpp -msgid "ARVRController must have an ARVROrigin node as its parent" +msgid "ARVRController must have an ARVROrigin node as its parent." msgstr "" #: scene/3d/arvr_nodes.cpp msgid "" -"The controller id must not be 0 or this controller will not be bound to an " -"actual controller" +"The controller ID must not be 0 or this controller won't be bound to an " +"actual controller." msgstr "" #: scene/3d/arvr_nodes.cpp -msgid "ARVRAnchor must have an ARVROrigin node as its parent" +msgid "ARVRAnchor must have an ARVROrigin node as its parent." msgstr "" #: scene/3d/arvr_nodes.cpp msgid "" -"The anchor id must not be 0 or this anchor will not be bound to an actual " -"anchor" +"The anchor ID must not be 0 or this anchor won't be bound to an actual " +"anchor." msgstr "" #: scene/3d/arvr_nodes.cpp -msgid "ARVROrigin requires an ARVRCamera child node" +msgid "ARVROrigin requires an ARVRCamera child node." msgstr "" #: scene/3d/baked_lightmap.cpp @@ -9985,8 +11489,8 @@ msgstr "" #: scene/3d/cpu_particles.cpp msgid "" -"CPUParticles animation requires the usage of a SpatialMaterial with " -"\"Billboard Particles\" enabled." +"CPUParticles animation requires the usage of a SpatialMaterial whose " +"Billboard Mode is set to \"Particle Billboard\"." msgstr "" #: scene/3d/gi_probe.cpp @@ -10023,8 +11527,8 @@ msgstr "" #: scene/3d/particles.cpp msgid "" -"Particles animation requires the usage of a SpatialMaterial with \"Billboard " -"Particles\" enabled." +"Particles animation requires the usage of a SpatialMaterial whose Billboard " +"Mode is set to \"Particle Billboard\"." msgstr "" #: scene/3d/path.cpp @@ -10049,7 +11553,7 @@ msgid "Path property must point to a valid Spatial node to work." msgstr "" #: scene/3d/soft_body.cpp -msgid "This body will be ignored until you set a mesh" +msgid "This body will be ignored until you set a mesh." msgstr "" #: scene/3d/soft_body.cpp @@ -10150,7 +11654,7 @@ msgstr "" msgid "" "Container by itself serves no purpose unless a script configures it's " "children placement behavior.\n" -"If you dont't intend to add a script, then please use a plain 'Control' node " +"If you don't intend to add a script, then please use a plain 'Control' node " "instead." msgstr "" @@ -10162,11 +11666,6 @@ msgstr "" msgid "Please Confirm..." msgstr "" -#: scene/gui/file_dialog.cpp -#, fuzzy -msgid "Go to parent folder." -msgstr "Gaan na ouer vouer" - #: scene/gui/popup.cpp msgid "" "Popups will hide by default unless you call popup() or any of the popup*() " @@ -10239,6 +11738,22 @@ msgstr "" msgid "Varyings can only be assigned in vertex function." msgstr "" +#: servers/visual/shader_language.cpp +msgid "Constants cannot be modified." +msgstr "" + +#~ msgid "Path to Node:" +#~ msgstr "Pad na Nodus:" + +#~ msgid "Delete selected files?" +#~ msgstr "Skrap gekose lêers?" + +#~ msgid "There is no 'res://default_bus_layout.tres' file." +#~ msgstr "Daar is nie 'n 'res://default_bus_layout.tres'-lêer nie." + +#~ msgid "Go to parent folder" +#~ msgstr "Gaan na ouer vouer" + #~ msgid "Line:" #~ msgstr "Reël:" @@ -10268,9 +11783,6 @@ msgstr "" #~ msgid "Class List:" #~ msgstr "Klas Lys:" -#~ msgid "Search Classes" -#~ msgstr "Deursoek Klasse" - #~ msgid "Public Methods" #~ msgstr "Openbare Metodes" @@ -10303,9 +11815,6 @@ msgstr "" #~ msgid "Match case" #~ msgstr "Pas Letterkas" -#~ msgid "Disabled" -#~ msgstr "Afgeskaskel" - #~ msgid "Move Anim Track Up" #~ msgstr "Skuif Anim Baan Op" diff --git a/editor/translations/ar.po b/editor/translations/ar.po index 50efabd7f5..9a045680e5 100644 --- a/editor/translations/ar.po +++ b/editor/translations/ar.po @@ -24,12 +24,15 @@ # Mohammad Fares <mhdchehade@gmail.com>, 2018. # NewFriskFan26 <newfriskfan26@gmail.com>, 2019. # spiderx0x <legendofdarks@gmail.com>, 2019. +# Ibraheem Tawfik <tawfikibraheem@gmail.com>, 2019. +# DiscoverSquishy <noaimi@discoversquishy.me>, 2019. +# ButterflyOfFire <ButterflyOfFire@protonmail.com>, 2019. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2019-04-17 10:02+0000\n" -"Last-Translator: Omar Aglan <omar.aglan91@yahoo.com>\n" +"PO-Revision-Date: 2019-06-16 19:42+0000\n" +"Last-Translator: ButterflyOfFire <ButterflyOfFire@protonmail.com>\n" "Language-Team: Arabic <https://hosted.weblate.org/projects/godot-engine/" "godot/ar/>\n" "Language: ar\n" @@ -38,7 +41,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 " "&& n%100<=10 ? 3 : n%100>=11 ? 4 : 5;\n" -"X-Generator: Weblate 3.6-dev\n" +"X-Generator: Weblate 3.7-dev\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -92,6 +95,15 @@ msgstr "متوازن / متعادل" msgid "Mirror" msgstr "عكس / الإنعكاس" +#: editor/animation_bezier_editor.cpp editor/editor_profiler.cpp +msgid "Time:" +msgstr "الوقت:" + +#: editor/animation_bezier_editor.cpp +#, fuzzy +msgid "Value:" +msgstr "إسم جديد:" + #: editor/animation_bezier_editor.cpp msgid "Insert Key Here" msgstr "أدخل الرمز هنا" @@ -174,29 +186,33 @@ msgid "Animation Playback Track" msgstr "شريط ضبط Ø§Ù„ØØ±ÙƒØ©" #: editor/animation_track_editor.cpp -msgid "Add Track" -msgstr "Ø¥Ø¶Ø§ÙØ© مسار" +msgid "Animation length (frames)" +msgstr "مدة Ø§Ù„ØØ±ÙƒØ© (frames)" + +#: editor/animation_track_editor.cpp +msgid "Animation length (seconds)" +msgstr "مدة Ø§Ù„ØØ±ÙƒØ© (seconds)" #: editor/animation_track_editor.cpp -msgid "Animation Length Time (seconds)" -msgstr "مدة Ø§Ù„ØØ±ÙƒØ© (بالثواني)" +msgid "Add Track" +msgstr "Ø¥Ø¶Ø§ÙØ© مسار" #: editor/animation_track_editor.cpp msgid "Animation Looping" -msgstr "تكرار Ø§Ù„ØØ±ÙƒØ©" +msgstr "تكرار الرسوم Ø§Ù„Ù…ØªØØ±ÙƒØ©" #: editor/animation_track_editor.cpp #: modules/visual_script/visual_script_editor.cpp msgid "Functions:" -msgstr "دوال:" +msgstr "الإعدادات:" #: editor/animation_track_editor.cpp msgid "Audio Clips:" -msgstr "مقاطع الصوت:" +msgstr "مقاطع صوتية:" #: editor/animation_track_editor.cpp msgid "Anim Clips:" -msgstr "مقاطع Ø§Ù„ØØ±ÙƒØ©:" +msgstr "مقاطع الرسوم Ø§Ù„Ù…ØªØØ±ÙƒØ©:" #: editor/animation_track_editor.cpp msgid "Change Track Path" @@ -305,11 +321,13 @@ msgid "Create %d NEW tracks and insert keys?" msgstr "أنشئ %d مسارات جديدة Ùˆ أدخل Ù…ÙØ§ØªÙŠØØŸ" #: editor/animation_track_editor.cpp editor/create_dialog.cpp -#: editor/editor_audio_buses.cpp editor/editor_plugin_settings.cpp -#: editor/plugin_config_dialog.cpp +#: editor/editor_audio_buses.cpp editor/editor_feature_profile.cpp +#: editor/editor_plugin_settings.cpp editor/plugin_config_dialog.cpp #: editor/plugins/abstract_polygon_2d_editor.cpp #: editor/plugins/mesh_instance_editor_plugin.cpp -#: editor/plugins/particles_editor_plugin.cpp editor/script_create_dialog.cpp +#: editor/plugins/particles_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_create_dialog.cpp msgid "Create" msgstr "أنشئ" @@ -358,8 +376,9 @@ msgstr "" "-الصوت الجاري للأعب ثلاثي الأبعاد" #: editor/animation_track_editor.cpp +#, fuzzy msgid "Animation tracks can only point to AnimationPlayer nodes." -msgstr "" +msgstr "مسارات Ø§Ù„ØØ±ÙƒØ© يمكنها Ùقط أن تشير إلى عقدة مشغّل Ø§Ù„ØØ±ÙƒØ© AnimationPlayer" #: editor/animation_track_editor.cpp msgid "An animation player can't animate itself, only other players." @@ -424,6 +443,23 @@ msgid "" msgstr "هذا الخيار لا يعمل لتعديل خط (Bezier), لأنه Ùقط مقطع ÙˆØ§ØØ¯." #: editor/animation_track_editor.cpp +msgid "" +"This animation belongs to an imported scene, so changes to imported tracks " +"will not be saved.\n" +"\n" +"To enable the ability to add custom tracks, navigate to the scene's import " +"settings and set\n" +"\"Animation > Storage\" to \"Files\", enable \"Animation > Keep Custom Tracks" +"\", then re-import.\n" +"Alternatively, use an import preset that imports animations to separate " +"files." +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Warning: Editing imported animation" +msgstr "" + +#: editor/animation_track_editor.cpp msgid "Only show tracks from nodes selected in tree." msgstr "Ùقط قم بتبين المقاطع من العقد (Nodes) Ø§Ù„Ù…ØØ¯Ø¯Ø© ÙÙŠ الشجرة." @@ -442,11 +478,11 @@ msgstr "قيمة خطوة Ø§Ù„ØØ±ÙƒØ©." #: editor/animation_track_editor.cpp msgid "Seconds" -msgstr "" +msgstr "ثواني" #: editor/animation_track_editor.cpp msgid "FPS" -msgstr "" +msgstr "إطار خلال ثانية" #: editor/animation_track_editor.cpp editor/editor_properties.cpp #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -558,7 +594,8 @@ msgstr "نسبة التكبير:" msgid "Select tracks to copy:" msgstr "ØØ¯Ø¯ مقاطع لنسخ:" -#: editor/animation_track_editor.cpp editor/editor_properties.cpp +#: editor/animation_track_editor.cpp editor/editor_log.cpp +#: editor/editor_properties.cpp #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp @@ -626,6 +663,11 @@ msgstr "إستبدال الكل" msgid "Selection Only" msgstr "Ø§Ù„Ù…ØØ¯Ø¯ Ùقط" +#: editor/code_editor.cpp editor/plugins/script_text_editor.cpp +#: editor/plugins/text_editor.cpp +msgid "Standard" +msgstr "" + #: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/texture_region_editor_plugin.cpp #: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp @@ -651,21 +693,39 @@ msgid "Line and column numbers." msgstr "أرقام الخط Ùˆ العمود." #: editor/connections_dialog.cpp -msgid "Method in target Node must be specified!" +#, fuzzy +msgid "Method in target node must be specified." msgstr "الطريقة ÙÙŠ العقدة Ø§Ù„Ù…Ø³ØªÙ‡Ø¯ÙØ© يجب أن تكون Ù…ØØ¯Ù‘دة!" #: editor/connections_dialog.cpp +#, fuzzy msgid "" -"Target method not found! Specify a valid method or attach a script to target " -"Node." +"Target method not found. Specify a valid method or attach a script to the " +"target node." msgstr "" "لم يتم العثور على الطريقة Ø§Ù„Ù…Ø³ØªÙ‡Ø¯ÙØ©! ØØ¯Ù‘د طريقة سليمة أو أرÙÙ‚ كود لإستهدا٠" "العقدة." #: editor/connections_dialog.cpp -msgid "Connect To Node:" +#, fuzzy +msgid "Connect to Node:" msgstr "صلها بالعقدة:" +#: editor/connections_dialog.cpp +#, fuzzy +msgid "Connect to Script:" +msgstr "لا يمكن الإتصال Ø¨Ø§Ù„Ù…ÙØ¶ÙŠÙ:" + +#: editor/connections_dialog.cpp +#, fuzzy +msgid "From Signal:" +msgstr "الإشارات:" + +#: editor/connections_dialog.cpp +#, fuzzy +msgid "Scene does not contain any script." +msgstr "العقدة لا ØªØØªÙˆÙŠ Ø¹Ù„Ù‰ هندسة." + #: editor/connections_dialog.cpp editor/editor_autoload_settings.cpp #: editor/groups_editor.cpp editor/plugins/item_list_editor_plugin.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_settings_editor.cpp @@ -673,10 +733,12 @@ msgid "Add" msgstr "أضÙ" #: editor/connections_dialog.cpp editor/dependency_editor.cpp -#: editor/groups_editor.cpp editor/plugins/animation_player_editor_plugin.cpp +#: editor/editor_feature_profile.cpp editor/groups_editor.cpp +#: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp #: editor/plugins/resource_preloader_editor_plugin.cpp -#: editor/plugins/theme_editor_plugin.cpp editor/project_manager.cpp +#: editor/plugins/theme_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_manager.cpp #: editor/project_settings_editor.cpp msgid "Remove" msgstr "إمسØ" @@ -690,21 +752,32 @@ msgid "Extra Call Arguments:" msgstr "وسائط إستدعاء إضاÙية :" #: editor/connections_dialog.cpp -msgid "Path to Node:" -msgstr "مسار العقدة:" - -#: editor/connections_dialog.cpp -msgid "Make Function" -msgstr "إصنع دالة" +#, fuzzy +msgid "Advanced" +msgstr "إعدادات الكبس" #: editor/connections_dialog.cpp msgid "Deferred" msgstr "مؤجل" #: editor/connections_dialog.cpp +msgid "" +"Defers the signal, storing it in a queue and only firing it at idle time." +msgstr "" + +#: editor/connections_dialog.cpp msgid "Oneshot" msgstr "لقطة ÙˆØ§ØØ¯Ø©" +#: editor/connections_dialog.cpp +msgid "Disconnects the signal after its first emission." +msgstr "" + +#: editor/connections_dialog.cpp +#, fuzzy +msgid "Cannot connect signal" +msgstr "قم بوصل الإشارة: " + #: editor/connections_dialog.cpp editor/dependency_editor.cpp #: editor/export_template_manager.cpp editor/groups_editor.cpp #: editor/plugins/animation_player_editor_plugin.cpp @@ -745,11 +818,13 @@ msgid "Disconnect" msgstr "قطع الاتصال" #: editor/connections_dialog.cpp -msgid "Connect Signal: " +#, fuzzy +msgid "Connect a Signal to a Method" msgstr "قم بوصل الإشارة: " #: editor/connections_dialog.cpp -msgid "Edit Connection: " +#, fuzzy +msgid "Edit Connection:" msgstr "قم بتعديل الإتصال: " #: editor/connections_dialog.cpp @@ -781,7 +856,6 @@ msgid "Change %s Type" msgstr "غير نوع %s" #: editor/create_dialog.cpp editor/project_settings_editor.cpp -#: modules/visual_script/visual_script_editor.cpp msgid "Change" msgstr "تغير" @@ -812,7 +886,8 @@ msgid "Matches:" msgstr "يطابق:" #: editor/create_dialog.cpp editor/plugin_config_dialog.cpp -#: editor/plugins/asset_library_editor_plugin.cpp editor/property_selector.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/property_selector.cpp #: modules/visual_script/visual_script_property_selector.cpp msgid "Description:" msgstr "الوصÙ:" @@ -826,17 +901,19 @@ msgid "Dependencies For:" msgstr "تابعة لـ:" #: editor/dependency_editor.cpp +#, fuzzy msgid "" "Scene '%s' is currently being edited.\n" -"Changes will not take effect unless reloaded." +"Changes will only take effect when reloaded." msgstr "" "المشهد '%s' هو ØØ§Ù„ياً جاري تعديله.\n" "التغييرات لن ØªØØµÙ„ ØØªÙŠ ÙŠØªÙ… إعادة التشغيل." #: editor/dependency_editor.cpp +#, fuzzy msgid "" "Resource '%s' is in use.\n" -"Changes will take effect when reloaded." +"Changes will only take effect when reloaded." msgstr "" "المورد '%s' قيد الإستخدام.\n" "التغييرات ستظهر بعد إعادة التشغيل." @@ -931,21 +1008,14 @@ msgid "Permanently delete %d item(s)? (No undo!)" msgstr "Ø¥Ù…Ø³Ø Ù†Ù‡Ø§Ø¦ÙŠØ§ %d عنصر(عناصر)ØŸ (بلا رجعة!)" #: editor/dependency_editor.cpp -msgid "Owns" -msgstr "يملك" - -#: editor/dependency_editor.cpp -msgid "Resources Without Explicit Ownership:" -msgstr "موارد من غير مالك صريØ:" +#, fuzzy +msgid "Show Dependencies" +msgstr "التبعيات" #: editor/dependency_editor.cpp editor/editor_node.cpp msgid "Orphan Resource Explorer" msgstr "Ù…ØªØµÙØ الموارد Ø£ÙˆØ±ÙØ§Ù†" -#: editor/dependency_editor.cpp -msgid "Delete selected files?" -msgstr "Ø¥Ù…Ø³Ø Ø§Ù„Ù…Ù„ÙØ§Øª Ø§Ù„Ù…ØØ¯Ø¯Ø©ØŸ" - #: editor/dependency_editor.cpp editor/editor_audio_buses.cpp #: editor/editor_file_dialog.cpp editor/editor_node.cpp #: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp @@ -954,6 +1024,14 @@ msgstr "Ø¥Ù…Ø³Ø Ø§Ù„Ù…Ù„ÙØ§Øª Ø§Ù„Ù…ØØ¯Ø¯Ø©ØŸ" msgid "Delete" msgstr "مسØ" +#: editor/dependency_editor.cpp +msgid "Owns" +msgstr "يملك" + +#: editor/dependency_editor.cpp +msgid "Resources Without Explicit Ownership:" +msgstr "موارد من غير مالك صريØ:" + #: editor/dictionary_property_edit.cpp msgid "Change Dictionary Key" msgstr "تغيير Ù…ÙØªØ§Ø القاموس" @@ -1067,7 +1145,7 @@ msgstr "تم تتبيث Ø§Ù„ØØ²Ù…Ø© بنجاØ!" msgid "Success!" msgstr "تم بشكل ناجØ!" -#: editor/editor_asset_installer.cpp +#: editor/editor_asset_installer.cpp editor/editor_node.cpp #: editor/plugins/asset_library_editor_plugin.cpp msgid "Install" msgstr "تثبيت" @@ -1194,8 +1272,12 @@ msgid "Open Audio Bus Layout" msgstr "Ø¥ÙØªØ نسق بيوس الصوت" #: editor/editor_audio_buses.cpp -msgid "There is no 'res://default_bus_layout.tres' file." -msgstr "ليس هناك مل٠'res://default_bus_layout.tres'." +msgid "There is no '%s' file." +msgstr "" + +#: editor/editor_audio_buses.cpp editor/plugins/canvas_item_editor_plugin.cpp +msgid "Layout" +msgstr "المخطط" #: editor/editor_audio_buses.cpp msgid "Invalid file, not an audio bus layout." @@ -1248,18 +1330,25 @@ msgid "Valid characters:" msgstr "Ø§Ù„Ø£ØØ±Ù Ø§Ù„ØµØ§Ù„ØØ©:" #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing engine class name." +#, fuzzy +msgid "Must not collide with an existing engine class name." msgstr "إسم غير ØµØ§Ù„ØØŒ يجب أن لا يتصادم مع أسم ÙØµÙ„ خاص Ø¨Ø§Ù„Ù…ØØ±Ùƒ." #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing buit-in type name." +#, fuzzy +msgid "Must not collide with an existing buit-in type name." msgstr "إسم غير ØµØ§Ù„ØØŒ يجب أن لا يتصادم مع الأسماء المبنية تلقائياً الموجودة." #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing global constant name." +#, fuzzy +msgid "Must not collide with an existing global constant name." msgstr "إسم غير ØµØ§Ù„ØØŒ ييجب ألاّ يتصادم مع إسم موجود لثابت عمومي." #: editor/editor_autoload_settings.cpp +msgid "Keyword cannot be used as an autoload name." +msgstr "" + +#: editor/editor_autoload_settings.cpp msgid "Autoload '%s' already exists!" msgstr "التØÙ…يل التلقائي '%s' موجود اصلا!" @@ -1287,11 +1376,12 @@ msgstr "تمكين" msgid "Rearrange Autoloads" msgstr "اعادة ترتيب التØÙ…يلات التلقائية" -#: editor/editor_autoload_settings.cpp -msgid "Invalid Path." +#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp +#, fuzzy +msgid "Invalid path." msgstr "مسار غير صالØ." -#: editor/editor_autoload_settings.cpp +#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp msgid "File does not exist." msgstr "المل٠غير موجود." @@ -1342,7 +1432,8 @@ msgid "[unsaved]" msgstr "[غير Ù…ØÙوظ]" #: editor/editor_dir_dialog.cpp -msgid "Please select a base directory first" +#, fuzzy +msgid "Please select a base directory first." msgstr "من ÙØ¶Ù„Ùƒ ØØ¯Ø¯ الوجهة الأساسية أولاً" #: editor/editor_dir_dialog.cpp @@ -1350,7 +1441,8 @@ msgid "Choose a Directory" msgstr "ØØ¯Ø¯ الوجهة" #: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp -#: editor/filesystem_dock.cpp scene/gui/file_dialog.cpp +#: editor/filesystem_dock.cpp editor/project_manager.cpp +#: scene/gui/file_dialog.cpp msgid "Create Folder" msgstr "أنشئ مجلد" @@ -1417,12 +1509,181 @@ msgstr "مل٠النموذج غير موجود:" #: 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 "قالب الإصدار المخصص ليس موجود." #: editor/editor_export.cpp platform/javascript/export/export.cpp msgid "Template file not found:" msgstr "مل٠النموذج غير موجود:" +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "3D Editor" +msgstr "Ø§Ù„Ù…ÙØ¹Ø¯Ù„" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Script Editor" +msgstr "ÙØªØ Ù…ÙØ¹Ø¯Ù„ الكود" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Asset Library" +msgstr "ÙØªØ مكتبة الأصول" + +#: editor/editor_feature_profile.cpp +msgid "Scene Tree Editing" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Import Dock" +msgstr "إستيراد" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Node Dock" +msgstr "وضع Ø§Ù„ØªØØ±ÙŠÙƒ" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Filesystem Dock" +msgstr "نظام Ø§Ù„Ù…Ù„ÙØ§Øª" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Erase profile '%s'? (no undo)" +msgstr "إستبدال الكل" + +#: editor/editor_feature_profile.cpp +msgid "Profile must be a valid filename and must not contain '.'" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Profile with this name already exists." +msgstr "مل٠أو مجلد مع هذا الأسم موجود Ø¨Ø§Ù„ÙØ¹Ù„." + +#: editor/editor_feature_profile.cpp +msgid "(Editor Disabled, Properties Disabled)" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "(Properties Disabled)" +msgstr "خصائص Ùقط" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "(Editor Disabled)" +msgstr "معطّل" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Class Options:" +msgstr "وص٠الصÙ:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enable Contextual Editor" +msgstr "ÙØªØ ÙÙŠ Ø§Ù„Ù…ÙØ¹Ø¯Ù„ التالي" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enabled Properties:" +msgstr "خصائص:" + +#: editor/editor_feature_profile.cpp +msgid "Enabled Features:" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enabled Classes:" +msgstr "Ø¥Ø¨ØØ« ÙÙŠ الأصناÙ" + +#: editor/editor_feature_profile.cpp +msgid "File '%s' format is invalid, import aborted." +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "" +"Profile '%s' already exists. Remote it first before importing, import " +"aborted." +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Error saving profile to path: '%s'." +msgstr "خطأ ÙÙŠ ØÙظ مجموعة البلاط!" + +#: editor/editor_feature_profile.cpp +msgid "Unset" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Current Profile" +msgstr "النسخة Ø§Ù„ØØ§Ù„ية:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Make Current" +msgstr "Ø§Ù„ØØ§Ù„ÙŠ:" + +#: editor/editor_feature_profile.cpp +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "New" +msgstr "" + +#: editor/editor_feature_profile.cpp editor/editor_node.cpp +#: editor/plugins/asset_library_editor_plugin.cpp editor/project_manager.cpp +msgid "Import" +msgstr "إستيراد" + +#: editor/editor_feature_profile.cpp editor/editor_node.cpp +#: editor/project_export.cpp +msgid "Export" +msgstr "تصدير" + +#: editor/editor_feature_profile.cpp +msgid "Available Profiles" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enabled Classes" +msgstr "Ø¥Ø¨ØØ« ÙÙŠ الأصناÙ" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Class Options" +msgstr "وص٠الصÙ" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "New profile name:" +msgstr "إسم جديد:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Erase Profile" +msgstr "زر Ø§Ù„ÙØ£Ø±Ø© الأيمن: Ù…Ø³Ø Ø§Ù„Ù†Ù‚Ø·Ø©." + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Import Profile(s)" +msgstr "%d مزيد من Ø§Ù„Ù…Ù„ÙØ§Øª" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Export Profile" +msgstr "تصدير المشروع" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Manage Editor Feature Profiles" +msgstr "إدارة قوالب التصدير" + #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Select Current Folder" msgstr "ØªØØ¯ÙŠØ¯ المجلد Ø§Ù„ØØ§Ù„ÙŠ" @@ -1445,8 +1706,8 @@ msgstr "نسخ المسار" msgid "Open in File Manager" msgstr "أظهر ÙÙŠ مدير Ø§Ù„Ù…Ù„ÙØ§Øª" -#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp -#: editor/project_manager.cpp +#: editor/editor_file_dialog.cpp editor/editor_node.cpp +#: editor/filesystem_dock.cpp editor/project_manager.cpp #, fuzzy msgid "Show in File Manager" msgstr "أظهر ÙÙŠ مدير Ø§Ù„Ù…Ù„ÙØ§Øª" @@ -1506,7 +1767,7 @@ msgstr "إذهب للأمام" msgid "Go Up" msgstr "إذهب للأعلي" -#: editor/editor_file_dialog.cpp +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Toggle Hidden Files" msgstr "أظهر Ø§Ù„Ù…Ù„ÙØ§Øª المخÙية" @@ -1531,17 +1792,17 @@ msgid "Move Favorite Down" msgstr "ØØ±Ùƒ المÙÙØ¶Ù„Ø© للأسÙÙ„" #: editor/editor_file_dialog.cpp -#, fuzzy msgid "Previous Folder" -msgstr "التبويب السابق" +msgstr "المجلد السابق" #: editor/editor_file_dialog.cpp #, fuzzy msgid "Next Folder" -msgstr "أنشئ مجلد" +msgstr "المجلد اللاØÙ‚" -#: editor/editor_file_dialog.cpp -msgid "Go to parent folder" +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp +#, fuzzy +msgid "Go to parent folder." msgstr "إذهب إلي المجلد السابق" #: editor/editor_file_dialog.cpp @@ -1549,6 +1810,11 @@ msgstr "إذهب إلي المجلد السابق" msgid "(Un)favorite current folder." msgstr "لا يمكن إنشاء المجلد." +#: editor/editor_file_dialog.cpp +#, fuzzy +msgid "Toggle visibility of hidden files." +msgstr "أظهر Ø§Ù„Ù…Ù„ÙØ§Øª المخÙية" + #: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp #, fuzzy msgid "View items as a grid of thumbnails." @@ -1565,6 +1831,7 @@ msgstr "الوجهات ÙˆØ§Ù„Ù…Ù„ÙØ§Øª:" #: editor/editor_file_dialog.cpp editor/plugins/sprite_editor_plugin.cpp #: editor/plugins/style_box_editor_plugin.cpp +#: editor/plugins/theme_editor_plugin.cpp msgid "Preview:" msgstr "إستعراض:" @@ -1581,6 +1848,12 @@ msgid "ScanSources" msgstr "ÙØØµ المصادر" #: editor/editor_file_system.cpp +msgid "" +"There are multiple importers for different types pointing to file %s, import " +"aborted" +msgstr "" + +#: editor/editor_file_system.cpp msgid "(Re)Importing Assets" msgstr "إعادة إستيراد الأصول" @@ -1610,7 +1883,7 @@ msgstr "خصائص" #: editor/editor_help.cpp msgid "Properties:" -msgstr "" +msgstr "خصائص:" #: editor/editor_help.cpp msgid "Methods" @@ -1624,7 +1897,7 @@ msgstr "قائمة الطرق" #: editor/editor_help.cpp #, fuzzy msgid "Theme Properties" -msgstr "خصائص" +msgstr "خصائص النمط" #: editor/editor_help.cpp #, fuzzy @@ -1656,14 +1929,12 @@ msgid "Constants:" msgstr "الثوابت:" #: editor/editor_help.cpp -#, fuzzy msgid "Class Description" -msgstr "الوصÙ" +msgstr "وص٠الصÙ" #: editor/editor_help.cpp -#, fuzzy msgid "Class Description:" -msgstr "الوصÙ:" +msgstr "وص٠الصÙ:" #: editor/editor_help.cpp msgid "Online Tutorials:" @@ -1721,34 +1992,28 @@ msgid "Search Help" msgstr "Ø¥Ø¨ØØ« ÙÙŠ المساعدة" #: editor/editor_help_search.cpp -#, fuzzy msgid "Display All" -msgstr "إستبدال الكل" +msgstr "إظهار الكل" #: editor/editor_help_search.cpp -#, fuzzy msgid "Classes Only" -msgstr "Ø§Ù„ÙØ¦Ø§Øª" +msgstr "الصÙÙˆÙ Ùقط" #: editor/editor_help_search.cpp -#, fuzzy msgid "Methods Only" -msgstr "قائمة الطرق" +msgstr "الطرق Ùقط" #: editor/editor_help_search.cpp -#, fuzzy msgid "Signals Only" -msgstr "إشارات" +msgstr "إشارات Ùقط" #: editor/editor_help_search.cpp -#, fuzzy msgid "Constants Only" -msgstr "الثوابت" +msgstr "ثوابت Ùقط" #: editor/editor_help_search.cpp -#, fuzzy msgid "Properties Only" -msgstr "خصائص" +msgstr "خصائص Ùقط" #: editor/editor_help_search.cpp #, fuzzy @@ -1756,9 +2021,8 @@ msgid "Theme Properties Only" msgstr "خصائص" #: editor/editor_help_search.cpp -#, fuzzy msgid "Member Type" -msgstr "الأعضاء" +msgstr "نوع العضو" #: editor/editor_help_search.cpp #, fuzzy @@ -1767,11 +2031,11 @@ msgstr "صنÙ:" #: editor/editor_inspector.cpp editor/project_settings_editor.cpp msgid "Property:" -msgstr "" +msgstr "خصيصة:" #: editor/editor_inspector.cpp msgid "Set" -msgstr "" +msgstr "مجموعة" #: editor/editor_inspector.cpp msgid "Set Multiple:" @@ -1781,6 +2045,11 @@ msgstr "" msgid "Output:" msgstr "الخرج:" +#: editor/editor_log.cpp editor/plugins/tile_map_editor_plugin.cpp +#, fuzzy +msgid "Copy Selection" +msgstr "ØØ°Ù Ø§Ù„Ù…ÙØØ¯Ø¯" + #: editor/editor_log.cpp editor/editor_profiler.cpp #: editor/editor_properties.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp @@ -1806,7 +2075,7 @@ msgstr "" #: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp #: scene/gui/dialogs.cpp msgid "OK" -msgstr "" +msgstr "ØØ³Ù†Ø§" #: editor/editor_node.cpp editor/plugins/animation_player_editor_plugin.cpp msgid "Error saving resource!" @@ -1929,9 +2198,10 @@ msgstr "" "هذا النظام." #: editor/editor_node.cpp +#, fuzzy msgid "" "This resource belongs to a scene that was instanced or inherited.\n" -"Changes to it will not be kept when saving the current scene." +"Changes to it won't be kept when saving the current scene." msgstr "" "هذا المصدر ينتمي إلي مشهد قد تم ØªÙˆØ¶ÙŠØØ© أو إيراثه.\n" "تغييره لن ÙŠÙØÙØ¸ ØÙŠÙ†Ù…ا يتم ØÙظ المشهد Ø§Ù„ØØ§Ù„ÙŠ." @@ -1945,8 +2215,9 @@ msgstr "" "الإستيراد ومن ثم أعد إستيراده." #: editor/editor_node.cpp +#, fuzzy msgid "" -"This scene was imported, so changes to it will not be kept.\n" +"This scene was imported, so changes to it won't be kept.\n" "Instancing it or inheriting will allow making changes to it.\n" "Please read the documentation relevant to importing scenes to better " "understand this workflow." @@ -1957,8 +2228,9 @@ msgstr "" "هذا النظام." #: editor/editor_node.cpp +#, fuzzy msgid "" -"This is a remote object so changes to it will not be kept.\n" +"This is a remote object, so changes to it won't be kept.\n" "Please read the documentation relevant to debugging to better understand " "this workflow." msgstr "" @@ -1971,33 +2243,6 @@ msgid "There is no defined scene to run." msgstr "ليس هناك مشهد Ù…ØØ¯Ø¯ ليتم تشغيله." #: editor/editor_node.cpp -msgid "" -"No main scene has ever been defined, select one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" -"لا مشهد أساسي تم ØªØØ¯ÙŠØ¯Ù‡ØŒ ØØ¯Ø¯ ÙˆØ§ØØ¯ØŸ\n" -"يمكنك تغييره لاØÙ‚اً ÙÙŠ \"إعدادات المشروع\" ØªØØª قسم 'التطبيق'." - -#: editor/editor_node.cpp -msgid "" -"Selected scene '%s' does not exist, select a valid one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" -"المشهد Ø§Ù„Ù…ÙØØ¯Ø¯ '%s' غير موجود، ØØ¯Ø¯ مشهد ØµØ§Ù„ØØŸ\n" -"يمكنك تغييره لاØÙ‚اً ÙÙŠ \"إعدادات المشروع\" ØªØØª قسم 'التطبيق'." - -#: editor/editor_node.cpp -msgid "" -"Selected scene '%s' is not a scene file, select a valid one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" -"المشهد Ø§Ù„Ù…ÙØØ¯Ø¯ '%s' ليس مل٠مشهد. ØØ¯Ø¯ مشهد ØµØ§Ù„ØØŸ\n" -"يمكنك تغييره لاØÙ‚اً ÙÙŠ \"إعدادات المشروع\" ØªØØª قسم 'التطبيق'." - -#: editor/editor_node.cpp msgid "Current scene was never saved, please save it prior to running." msgstr "المشهد Ø§Ù„ØØ§Ù„ÙŠ لم يتم ØÙظه. الرجاء ØÙظ المشهد قبل تشغيله Ùˆ اختباره." @@ -2005,7 +2250,7 @@ msgstr "المشهد Ø§Ù„ØØ§Ù„ÙŠ لم يتم ØÙظه. الرجاء ØÙظ ال msgid "Could not start subprocess!" msgstr "لا يمكن بدء عملية جانبية!" -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/filesystem_dock.cpp msgid "Open Scene" msgstr "ÙØªØ مشهد" @@ -2014,6 +2259,11 @@ msgid "Open Base Scene" msgstr "ÙØªØ مشهد أساسي" #: editor/editor_node.cpp +#, fuzzy +msgid "Quick Open..." +msgstr "ÙØªØ سريع للمشهد..." + +#: editor/editor_node.cpp msgid "Quick Open Scene..." msgstr "ÙØªØ سريع للمشهد..." @@ -2190,6 +2440,33 @@ msgid "Clear Recent Scenes" msgstr "إخلاء المشاهد Ø§Ù„ØØ§Ù„ية" #: editor/editor_node.cpp +msgid "" +"No main scene has ever been defined, select one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" +"لا مشهد أساسي تم ØªØØ¯ÙŠØ¯Ù‡ØŒ ØØ¯Ø¯ ÙˆØ§ØØ¯ØŸ\n" +"يمكنك تغييره لاØÙ‚اً ÙÙŠ \"إعدادات المشروع\" ØªØØª قسم 'التطبيق'." + +#: editor/editor_node.cpp +msgid "" +"Selected scene '%s' does not exist, select a valid one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" +"المشهد Ø§Ù„Ù…ÙØØ¯Ø¯ '%s' غير موجود، ØØ¯Ø¯ مشهد ØµØ§Ù„ØØŸ\n" +"يمكنك تغييره لاØÙ‚اً ÙÙŠ \"إعدادات المشروع\" ØªØØª قسم 'التطبيق'." + +#: editor/editor_node.cpp +msgid "" +"Selected scene '%s' is not a scene file, select a valid one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" +"المشهد Ø§Ù„Ù…ÙØØ¯Ø¯ '%s' ليس مل٠مشهد. ØØ¯Ø¯ مشهد ØµØ§Ù„ØØŸ\n" +"يمكنك تغييره لاØÙ‚اً ÙÙŠ \"إعدادات المشروع\" ØªØØª قسم 'التطبيق'." + +#: editor/editor_node.cpp msgid "Save Layout" msgstr "ØÙظ المخطط" @@ -2218,6 +2495,19 @@ msgstr "تشغيل المشهد" msgid "Close Tab" msgstr "اغلاق" +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +msgid "Close Other Tabs" +msgstr "" + +#: editor/editor_node.cpp +msgid "Close Tabs to the Right" +msgstr "" + +#: editor/editor_node.cpp +#, fuzzy +msgid "Close All Tabs" +msgstr "اغلاق" + #: editor/editor_node.cpp msgid "Switch Scene Tab" msgstr "تبديل بين Ù†ÙˆØ§ÙØ° المشهد" @@ -2341,10 +2631,6 @@ msgstr "مشروع" msgid "Project Settings" msgstr "إعدادات المشروع" -#: editor/editor_node.cpp editor/project_export.cpp -msgid "Export" -msgstr "تصدير" - #: editor/editor_node.cpp editor/plugins/tile_set_editor_plugin.cpp msgid "Tools" msgstr "ادوات" @@ -2355,6 +2641,10 @@ msgid "Open Project Data Folder" msgstr "ÙØªØ مدير المشروع؟" #: editor/editor_node.cpp +msgid "Install Android Build Template" +msgstr "" + +#: editor/editor_node.cpp msgid "Quit to Project List" msgstr "غادر الي قائمه المشاريع" @@ -2478,6 +2768,11 @@ msgstr "" msgid "Open Editor Settings Folder" msgstr "إعدادات Ø§Ù„Ù…ÙØ¹Ø¯Ù„" +#: editor/editor_node.cpp +#, fuzzy +msgid "Manage Editor Features" +msgstr "إدارة قوالب التصدير" + #: editor/editor_node.cpp editor/project_export.cpp msgid "Manage Export Templates" msgstr "إدارة قوالب التصدير" @@ -2490,6 +2785,7 @@ msgstr "مساعدة" #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp #: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp #: editor/project_settings_editor.cpp editor/rename_dialog.cpp msgid "Search" msgstr "Ø¨ØØ«" @@ -2581,11 +2877,6 @@ msgstr "ØªØØ¯ÙŠØ« التغييرات" msgid "Disable Update Spinner" msgstr "تعطيل دوار Ø§Ù„ØªØØ¯ÙŠØ«" -#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp -#: editor/project_manager.cpp -msgid "Import" -msgstr "إستيراد" - #: editor/editor_node.cpp msgid "FileSystem" msgstr "نظام Ø§Ù„Ù…Ù„ÙØ§Øª" @@ -2612,6 +2903,28 @@ msgid "Don't Save" msgstr "لا تØÙظ" #: editor/editor_node.cpp +msgid "Android build template is missing, please install relevant templates." +msgstr "" + +#: editor/editor_node.cpp +#, fuzzy +msgid "Manage Templates" +msgstr "إدارة قوالب التصدير" + +#: editor/editor_node.cpp +msgid "" +"This will install the Android project for custom builds.\n" +"Note that, in order to use it, it needs to be enabled per export preset." +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"Android build template is already installed and it won't be overwritten.\n" +"Remove the \"build\" directory manually before attempting this operation " +"again." +msgstr "" + +#: editor/editor_node.cpp msgid "Import Templates From ZIP File" msgstr "إستيراد القوالب من مل٠مضغوط بصيغة Zip" @@ -2737,10 +3050,6 @@ msgid "Physics Frame %" msgstr "نسبة الإطار الÙيزيائي %" #: editor/editor_profiler.cpp -msgid "Time:" -msgstr "الوقت:" - -#: editor/editor_profiler.cpp msgid "Inclusive" msgstr "شامل" @@ -2879,10 +3188,6 @@ msgid "Remove Item" msgstr "" #: editor/editor_run_native.cpp -msgid "Select device from the list" -msgstr "اختار جهاز من القائمة" - -#: editor/editor_run_native.cpp msgid "" "No runnable export preset found for this platform.\n" "Please add a runnable preset in the export menu." @@ -2918,6 +3223,10 @@ msgstr "هل نسيت الطريقة '_run' ØŸ" msgid "Select Node(s) to Import" msgstr "إختيار عقدة(عقد) للإستيراد" +#: editor/editor_sub_scene.cpp editor/project_manager.cpp +msgid "Browse" +msgstr "" + #: editor/editor_sub_scene.cpp msgid "Scene Path:" msgstr "المسار للمشهد:" @@ -3083,6 +3392,11 @@ msgid "SSL Handshake Error" msgstr "خطأ مطابقة ssl" #: editor/export_template_manager.cpp +#, fuzzy +msgid "Uncompressing Android Build Sources" +msgstr "ÙŠÙكك الضغط عن الأصول" + +#: editor/export_template_manager.cpp msgid "Current Version:" msgstr "النسخة Ø§Ù„ØØ§Ù„ية:" @@ -3099,7 +3413,8 @@ msgid "Remove Template" msgstr "Ù…Ø³Ø Ø§Ù„Ù‚Ø§Ù„Ø¨" #: editor/export_template_manager.cpp -msgid "Select template file" +#, fuzzy +msgid "Select Template File" msgstr "ØØ¯Ø¯ مل٠القالب" #: editor/export_template_manager.cpp @@ -3158,7 +3473,8 @@ msgid "No name provided." msgstr "لا أسم Ù…Ùقدم." #: editor/filesystem_dock.cpp -msgid "Provided name contains invalid characters" +#, fuzzy +msgid "Provided name contains invalid characters." msgstr "الأسم المÙقدم ÙŠØØªÙˆÙŠ Ø¹Ù„ÙŠ ØØ±ÙˆÙ خاطئة" #: editor/filesystem_dock.cpp @@ -3186,8 +3502,14 @@ msgid "Duplicating folder:" msgstr "تكرار مجلد:" #: editor/filesystem_dock.cpp -msgid "Open Scene(s)" -msgstr "ÙØªØ مشهد (مشاهد)" +#, fuzzy +msgid "New Inherited Scene" +msgstr "مشهد مورث جديد..." + +#: editor/filesystem_dock.cpp +#, fuzzy +msgid "Open Scenes" +msgstr "ÙØªØ مشهد" #: editor/filesystem_dock.cpp msgid "Instance" @@ -3195,12 +3517,12 @@ msgstr "نموذج" #: editor/filesystem_dock.cpp #, fuzzy -msgid "Add to favorites" +msgid "Add to Favorites" msgstr "Ø§Ù„Ù…ÙØ¶Ù„Ø©:" #: editor/filesystem_dock.cpp #, fuzzy -msgid "Remove from favorites" +msgid "Remove from Favorites" msgstr "ØØ°Ù من المجموعة" #: editor/filesystem_dock.cpp @@ -3233,12 +3555,14 @@ msgstr "ÙØªØ سريع للكود..." msgid "New Resource..." msgstr "ØÙظ المورد باسم..." -#: editor/filesystem_dock.cpp editor/script_editor_debugger.cpp +#: editor/filesystem_dock.cpp editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_editor_debugger.cpp #, fuzzy msgid "Expand All" msgstr "توسيع الكل" -#: editor/filesystem_dock.cpp editor/script_editor_debugger.cpp +#: editor/filesystem_dock.cpp editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_editor_debugger.cpp #, fuzzy msgid "Collapse All" msgstr "طوي الكل" @@ -3251,12 +3575,14 @@ msgid "Rename" msgstr "إعادة التسمية" #: editor/filesystem_dock.cpp -msgid "Previous Directory" +#, fuzzy +msgid "Previous Folder/File" msgstr "المجلد السابق" #: editor/filesystem_dock.cpp -msgid "Next Directory" -msgstr "المجلد التالي" +#, fuzzy +msgid "Next Folder/File" +msgstr "المجلد اللاØÙ‚" #: editor/filesystem_dock.cpp msgid "Re-Scan Filesystem" @@ -3264,7 +3590,7 @@ msgstr "إعادة ÙØØµ نظام Ø§Ù„Ù…Ù„ÙØ§Øª" #: editor/filesystem_dock.cpp #, fuzzy -msgid "Toggle split mode" +msgid "Toggle Split Mode" msgstr "أظهر المود" #: editor/filesystem_dock.cpp @@ -3297,7 +3623,7 @@ msgstr "" msgid "Create Script" msgstr "" -#: editor/find_in_files.cpp +#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp #, fuzzy msgid "Find in Files" msgstr "%d مزيد من Ø§Ù„Ù…Ù„ÙØ§Øª" @@ -3317,6 +3643,12 @@ msgstr "أنشئ مجلد" msgid "Filters:" msgstr "وضع Ø§Ù„Ù…ÙØµÙÙŠ:" +#: editor/find_in_files.cpp +msgid "" +"Include the files with the following extensions. Add or remove them in " +"ProjectSettings." +msgstr "" + #: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp msgid "Find..." @@ -3782,7 +4114,7 @@ msgstr "عقدة Ø§Ù„ØØ±ÙƒØ©" #: editor/plugins/animation_blend_space_2d_editor.cpp #, fuzzy -msgid "Triangle already exists" +msgid "Triangle already exists." msgstr "خطأ: إسم Ø§Ù„ØØ±ÙƒØ© موجود Ø¨Ø§Ù„ÙØ¹Ù„!" #: editor/plugins/animation_blend_space_2d_editor.cpp @@ -3864,7 +4196,6 @@ msgid "Node Moved" msgstr "وضع Ø§Ù„ØªØØ±ÙŠÙƒ" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Unable to connect, port may be in use or connection may be invalid." msgstr "" @@ -3939,8 +4270,9 @@ msgid "Edit Filtered Tracks:" msgstr "تعديل المصاÙÙŠ" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -msgid "Enable filtering" -msgstr "" +#, fuzzy +msgid "Enable Filtering" +msgstr "تغيير خط Ø§Ù„ØØ±ÙƒØ©" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Toggle Autoplay" @@ -4059,10 +4391,6 @@ msgid "Animation" msgstr "صورة Ù…ØªØØ±ÙƒØ©" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "New" -msgstr "" - -#: editor/plugins/animation_player_editor_plugin.cpp #, fuzzy msgid "Edit Transitions..." msgstr "تØÙˆÙŠÙ„ات" @@ -4081,14 +4409,15 @@ msgid "Autoplay on Load" msgstr "تشغيل تلقائي ØÙŠÙ†Ù…ا يتم التØÙ…يل" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Onion Skinning" -msgstr "تقشير البصل" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Enable Onion Skinning" msgstr "ØªÙØ¹ÙŠÙ„ تقشير البصل" #: editor/plugins/animation_player_editor_plugin.cpp +#, fuzzy +msgid "Onion Skinning Options" +msgstr "تقشير البصل" + +#: editor/plugins/animation_player_editor_plugin.cpp msgid "Directions" msgstr "الاتجاهات" @@ -4644,14 +4973,20 @@ msgid "Move CanvasItem" msgstr "ØªØØ±ÙŠÙƒ العنصر القماشي" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"Children of containers have their anchors and margins values overridden by " +"their parent." +msgstr "تجاوز Ø§Ù„Ø£Ø·ÙØ§Ù„ الثوابت والقيم وتجاهل الوالدين ." + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Presets for the anchors and margins values of a Control node." msgstr "إعدادات مسبقة للمخططات والتØÙƒÙ… بالدمج ." #: editor/plugins/canvas_item_editor_plugin.cpp msgid "" -"Children of containers have their anchors and margins values overridden by " -"their parent." -msgstr "تجاوز Ø§Ù„Ø£Ø·ÙØ§Ù„ الثوابت والقيم وتجاهل الوالدين ." +"When active, moving Control nodes changes their anchors instead of their " +"margins." +msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Anchors only" @@ -4666,10 +5001,51 @@ msgid "Change Anchors" msgstr "تغيير المرتكزات" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Lock Selected" +msgstr "ØØ¯Ø¯" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Unlock Selected" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Group Selected" +msgstr "ØØ°Ù Ø§Ù„Ù…ÙØØ¯Ø¯" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Ungroup Selected" +msgstr "ØØ°Ù Ø§Ù„Ù…ÙØØ¯Ø¯" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Paste Pose" msgstr "لصق الوضع" #: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Create Custom Bone(s) from Node(s)" +msgstr "أنشئ نقاط إنبعاث من الشبكة" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Clear Bones" +msgstr "إخلاء الوضع" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Make IK Chain" +msgstr "أنشئ سلسة IK" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Clear IK Chain" +msgstr "إخلاء سلسلة IK" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "" "Warning: Children of a container get their position and size determined only " "by their parent." @@ -4746,7 +5122,8 @@ msgid "Snapping Options" msgstr "إعدادات الكبس" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to grid" +#, fuzzy +msgid "Snap to Grid" msgstr "الكبس إلي الشبكة" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4767,32 +5144,38 @@ msgid "Use Pixel Snap" msgstr "إستخدام كبس البكسل" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Smart snapping" +#, fuzzy +msgid "Smart Snapping" msgstr "الكبس الذكي" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to parent" +#, fuzzy +msgid "Snap to Parent" msgstr "الكبس إلي الطÙÙ„" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node anchor" +#, fuzzy +msgid "Snap to Node Anchor" msgstr "إكبس إلي مرتكز العقدة" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node sides" +#, fuzzy +msgid "Snap to Node Sides" msgstr "إكبس إلي جوانب العقدة" #: editor/plugins/canvas_item_editor_plugin.cpp #, fuzzy -msgid "Snap to node center" +msgid "Snap to Node Center" msgstr "إكبس إلي مرتكز العقدة" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to other nodes" +#, fuzzy +msgid "Snap to Other Nodes" msgstr "إكبس إلي العقد الأخري" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to guides" +#, fuzzy +msgid "Snap to Guides" msgstr "أكبس إلي الموجهات" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4806,10 +5189,12 @@ msgid "Unlock the selected object (can be moved)." msgstr "إلغاء القÙÙ„ عن هذا العنصر (يمكن ØªØØ±ÙŠÙƒÙ‡ الأن)." #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Makes sure the object's children are not selectable." msgstr "تأكد من أن الطÙÙ„ للعنصر غير قابل Ù„Ù„ØªØØ¯ÙŠØ¯." #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Restores the object's children's ability to be selected." msgstr "إرجاع مقدرة ØªØØ¯ÙŠØ¯ الطÙÙ„ للعنصر." @@ -4823,14 +5208,6 @@ msgid "Show Bones" msgstr "إظهار العظام" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Make IK Chain" -msgstr "أنشئ سلسة IK" - -#: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Clear IK Chain" -msgstr "إخلاء سلسلة IK" - -#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Make Custom Bone(s) from Node(s)" msgstr "" @@ -4882,8 +5259,8 @@ msgid "Frame Selection" msgstr "إملئ الشاشة Ø¨Ø§Ù„Ù…ØØ¯Ø¯" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Layout" -msgstr "المخطط" +msgid "Preview Canvas Scale" +msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Translation mask for inserting keys." @@ -4936,6 +5313,11 @@ msgid "Divide grid step by 2" msgstr "قسم خطوة الشبكة بـ 2" #: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Pan View" +msgstr "أظهر" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Add %s" msgstr "أض٠%s" @@ -4958,7 +5340,8 @@ msgid "Error instancing scene from %s" msgstr "خطأ ÙÙŠ ØªÙˆØ¶ÙŠØ Ø§Ù„Ù…Ø´Ù‡Ø¯ من %s" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Change default type" +#, fuzzy +msgid "Change Default Type" msgstr "غير النوع Ø§Ù„Ø¥ÙØªØ±Ø§Ø¶ÙŠ" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -5048,20 +5431,22 @@ msgid "Create Emission Points From Node" msgstr "أنشئ نقاط إنبعاث من العقدة" #: editor/plugins/curve_editor_plugin.cpp -msgid "Flat0" +#, fuzzy +msgid "Flat 0" msgstr "مسطØ0" #: editor/plugins/curve_editor_plugin.cpp -msgid "Flat1" +#, fuzzy +msgid "Flat 1" msgstr "مسطØ1" -#: editor/plugins/curve_editor_plugin.cpp -msgid "Ease in" -msgstr "تخÙي٠للداخل" +#: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp +msgid "Ease In" +msgstr "" -#: editor/plugins/curve_editor_plugin.cpp -msgid "Ease out" -msgstr "تخÙي٠للخارج" +#: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp +msgid "Ease Out" +msgstr "" #: editor/plugins/curve_editor_plugin.cpp msgid "Smoothstep" @@ -5080,23 +5465,28 @@ msgid "Load Curve Preset" msgstr "تØÙ…يل إعداد مسبق للإنØÙ†Ø§Ø¡" #: editor/plugins/curve_editor_plugin.cpp -msgid "Add point" +#, fuzzy +msgid "Add Point" msgstr "Ø¥Ø¶Ø§ÙØ© نقطة" #: editor/plugins/curve_editor_plugin.cpp -msgid "Remove point" +#, fuzzy +msgid "Remove Point" msgstr "Ù…Ø³Ø Ø§Ù„Ù†Ù‚Ø·Ø©" #: editor/plugins/curve_editor_plugin.cpp -msgid "Left linear" +#, fuzzy +msgid "Left Linear" msgstr "الخط الشمالي" #: editor/plugins/curve_editor_plugin.cpp -msgid "Right linear" +#, fuzzy +msgid "Right Linear" msgstr "الخط اليميني" #: editor/plugins/curve_editor_plugin.cpp -msgid "Load preset" +#, fuzzy +msgid "Load Preset" msgstr "تØÙ…يل الإعداد المعد مسبقاً" #: editor/plugins/curve_editor_plugin.cpp @@ -5152,11 +5542,17 @@ msgid "This doesn't work on scene root!" msgstr "هذا لا يعمل علي جزر المشهد!" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Trimesh Shape" +#, fuzzy +msgid "Create Trimesh Static Shape" msgstr "أنشئ شكل تراميش" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Shape" +msgid "Failed creating shapes!" +msgstr "" + +#: editor/plugins/mesh_instance_editor_plugin.cpp +#, fuzzy +msgid "Create Convex Shape(s)" msgstr "أنشئ شكل Ù…ØØ¯Ø¨" #: editor/plugins/mesh_instance_editor_plugin.cpp @@ -5210,15 +5606,12 @@ msgid "Create Trimesh Static Body" msgstr "إنشاء جسم تراميش ثابت" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Static Body" -msgstr "أنشئ جسم Ù…ØØ¯Ø¨ ثابت" - -#: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Trimesh Collision Sibling" msgstr "إنشاء متصادم تراميش قريب" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Collision Sibling" +#, fuzzy +msgid "Create Convex Collision Sibling(s)" msgstr "إنشاء متصادم Ù…ØØ¯Ø¨ قريب" #: editor/plugins/mesh_instance_editor_plugin.cpp @@ -5372,6 +5765,12 @@ msgid "Create Navigation Polygon" msgstr "إنشاء Ù…ÙØ¶Ù„ع التنقل" #: editor/plugins/particles_2d_editor_plugin.cpp +#: editor/plugins/particles_editor_plugin.cpp +#, fuzzy +msgid "Convert to CPUParticles" +msgstr "تØÙˆÙŠÙ„ إلي %s" + +#: editor/plugins/particles_2d_editor_plugin.cpp #, fuzzy msgid "Generating Visibility Rect" msgstr "توليد Rect الرؤية" @@ -5386,12 +5785,6 @@ msgstr "لا يمكن إنشاء سوى نقطة ÙˆØÙŠØ¯Ø© داخل ParticlesMa #: editor/plugins/particles_2d_editor_plugin.cpp #: editor/plugins/particles_editor_plugin.cpp -#, fuzzy -msgid "Convert to CPUParticles" -msgstr "تØÙˆÙŠÙ„ إلي %s" - -#: editor/plugins/particles_2d_editor_plugin.cpp -#: editor/plugins/particles_editor_plugin.cpp msgid "Generation Time (sec):" msgstr "وقت التوليد (تانية):" @@ -5530,7 +5923,7 @@ msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp editor/plugins/theme_editor_plugin.cpp -#: editor/project_export.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_export.cpp #, fuzzy msgid "Options" msgstr "الخيارات" @@ -5583,7 +5976,7 @@ msgstr "" #: editor/plugins/physical_bone_plugin.cpp #, fuzzy -msgid "Move joint" +msgid "Move Joint" msgstr "Ù…Ø³Ø Ø§Ù„Ù†Ù‚Ø·Ø©" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5834,7 +6227,6 @@ msgid "Open in Editor" msgstr "" #: editor/plugins/resource_preloader_editor_plugin.cpp -#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Load Resource" msgstr "" @@ -5936,6 +6328,11 @@ msgid "%s Class Reference" msgstr " مرجع الصنÙ" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp +msgid "Find Next" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp msgid "Toggle alphabetical sorting of the method list." msgstr "" @@ -6019,10 +6416,6 @@ msgstr "" msgid "Close All" msgstr "" -#: editor/plugins/script_editor_plugin.cpp -msgid "Close Other Tabs" -msgstr "" - #: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp msgid "Run" msgstr "" @@ -6031,11 +6424,6 @@ msgstr "" msgid "Toggle Scripts Panel" msgstr "" -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/script_text_editor.cpp -msgid "Find Next" -msgstr "" - #: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp msgid "Step Over" msgstr "" @@ -6063,15 +6451,16 @@ msgid "Debug with External Editor" msgstr "ÙØªØ ÙÙŠ Ø§Ù„Ù…ÙØ¹Ø¯Ù„ التالي" #: editor/plugins/script_editor_plugin.cpp -msgid "Open Godot online documentation" -msgstr "" +#, fuzzy +msgid "Open Godot online documentation." +msgstr "ÙÙØªØ مؤخراً" #: editor/plugins/script_editor_plugin.cpp msgid "Request Docs" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Help improve the Godot documentation by giving feedback" +msgid "Help improve the Godot documentation by giving feedback." msgstr "" #: editor/plugins/script_editor_plugin.cpp @@ -6097,10 +6486,12 @@ msgid "" msgstr "" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp msgid "Reload" msgstr "" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp msgid "Resave" msgstr "" @@ -6115,6 +6506,31 @@ msgstr "Ø¥Ø¨ØØ« ÙÙŠ المساعدة" #: editor/plugins/script_text_editor.cpp #, fuzzy +msgid "Connections to method:" +msgstr "صلها بالعقدة:" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Source" +msgstr "مورد" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Signal" +msgstr "إشارات" + +#: editor/plugins/script_text_editor.cpp +msgid "Target" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "" +"Missing connected method '%s' for signal '%s' from node '%s' to node '%s'." +msgstr "قطع إتصال'%s' من '%s'" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy msgid "Line" msgstr "الخط:" @@ -6127,10 +6543,6 @@ msgstr "" msgid "Go to Function" msgstr "Ù…Ø³Ø Ø§Ù„Ù…Ù‡Ù…Ø©" -#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp -msgid "Standard" -msgstr "" - #: editor/plugins/script_text_editor.cpp msgid "Only resources from filesystem can be dropped." msgstr "" @@ -6163,6 +6575,11 @@ msgstr "" msgid "Syntax Highlighter" msgstr "" +#: editor/plugins/script_text_editor.cpp +#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp +msgid "Bookmarks" +msgstr "" + #: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" @@ -6190,6 +6607,26 @@ msgid "Toggle Comment" msgstr "" #: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Toggle Bookmark" +msgstr "إلغاء/ØªÙØ¹ÙŠÙ„ وضع النظرة Ø§Ù„ØØ±Ø©" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Go to Next Bookmark" +msgstr "إذهب إلي الخطوة التالية" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Go to Previous Bookmark" +msgstr "إذهب إلي الخطوة السابقة" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Remove All Bookmarks" +msgstr "Ù…Ø³Ø Ø§Ù„ÙƒÙ„" + +#: editor/plugins/script_text_editor.cpp msgid "Fold/Unfold Line" msgstr "إلغاء/ØªÙØ¹ÙŠÙ„ طي الخط" @@ -6270,6 +6707,12 @@ msgid "Contextual Help" msgstr "" #: editor/plugins/shader_editor_plugin.cpp +msgid "" +"This shader has been modified on on disk.\n" +"What action should be taken?" +msgstr "" + +#: editor/plugins/shader_editor_plugin.cpp msgid "Shader" msgstr "" @@ -6615,7 +7058,7 @@ msgid "Right View" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Switch Perspective/Orthogonal view" +msgid "Switch Perspective/Orthogonal View" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp @@ -6655,12 +7098,14 @@ msgid "Toggle Freelook" msgstr "إلغاء/ØªÙØ¹ÙŠÙ„ وضع النظرة Ø§Ù„ØØ±Ø©" #: editor/plugins/spatial_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Transform" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Snap object to floor" -msgstr "" +#, fuzzy +msgid "Snap Object to Floor" +msgstr "الكبس إلي الشبكة" #: editor/plugins/spatial_editor_plugin.cpp msgid "Transform Dialog..." @@ -6805,30 +7250,22 @@ msgid "Invalid geometry, can't replace by mesh." msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Invalid geometry, can't create polygon." -msgstr "" - -#: editor/plugins/sprite_editor_plugin.cpp -msgid "Invalid geometry, can't create collision polygon." -msgstr "" - -#: editor/plugins/sprite_editor_plugin.cpp -msgid "Invalid geometry, can't create light occluder." -msgstr "" +#, fuzzy +msgid "Convert to Mesh2D" +msgstr "تØÙˆÙŠÙ„ إلي %s" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Sprite" +msgid "Invalid geometry, can't create polygon." msgstr "" #: editor/plugins/sprite_editor_plugin.cpp #, fuzzy -msgid "Convert to Mesh2D" +msgid "Convert to Polygon2D" msgstr "تØÙˆÙŠÙ„ إلي %s" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy -msgid "Convert to Polygon2D" -msgstr "تØÙˆÙŠÙ„ إلي %s" +msgid "Invalid geometry, can't create collision polygon." +msgstr "" #: editor/plugins/sprite_editor_plugin.cpp #, fuzzy @@ -6836,11 +7273,19 @@ msgid "Create CollisionPolygon2D Sibling" msgstr "إنشاء Ù…ÙØ¶Ù„ع التنقل" #: editor/plugins/sprite_editor_plugin.cpp +msgid "Invalid geometry, can't create light occluder." +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp #, fuzzy msgid "Create LightOccluder2D Sibling" msgstr "أنشئ شكل Ù…ÙØ·Ø¨Ù‚" #: editor/plugins/sprite_editor_plugin.cpp +msgid "Sprite" +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp msgid "Simplification: " msgstr "" @@ -6859,7 +7304,12 @@ msgid "Settings:" msgstr "إعدادات Ø§Ù„Ù…ÙØ¹Ø¯Ù„" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "ERROR: Couldn't load frame resource!" +#, fuzzy +msgid "No Frames Selected" +msgstr "إملئ الشاشة Ø¨Ø§Ù„Ù…ØØ¯Ø¯" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Add %d Frame(s)" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp @@ -6867,6 +7317,10 @@ msgid "Add Frame" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "ERROR: Couldn't load frame resource!" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Resource clipboard is empty or not a texture!" msgstr "" @@ -6910,6 +7364,15 @@ msgid "Animation Frames:" msgstr "إسم Ø§Ù„ØØ±ÙƒØ©:" #: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Add a Texture from File" +msgstr "التقط من البيكسل" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Add Frames from a Sprite Sheet" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Insert Empty (Before)" msgstr "" @@ -6926,6 +7389,27 @@ msgid "Move (After)" msgstr "ØªØØ±ÙŠÙƒ (للتالي)" #: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Select Frames" +msgstr "ØªØØ¯ÙŠØ¯ الوضع" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Horizontal:" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Vertical:" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Select/Clear All Frames" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Create Frames from Sprite Sheet" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "SpriteFrames" msgstr "" @@ -6991,13 +7475,14 @@ msgstr "" msgid "Remove All Items" msgstr "" -#: editor/plugins/theme_editor_plugin.cpp +#: editor/plugins/theme_editor_plugin.cpp editor/project_manager.cpp msgid "Remove All" msgstr "Ù…Ø³Ø Ø§Ù„ÙƒÙ„" #: editor/plugins/theme_editor_plugin.cpp -msgid "Edit theme..." -msgstr "" +#, fuzzy +msgid "Edit Theme" +msgstr "الأعضاء" #: editor/plugins/theme_editor_plugin.cpp msgid "Theme editing menu." @@ -7025,13 +7510,13 @@ msgstr "" #: editor/plugins/theme_editor_plugin.cpp #, fuzzy -msgid "CheckBox Radio1" -msgstr "صندوق تأشير Ù¡" +msgid "Toggle Button" +msgstr "إلغاء/ØªÙØ¹ÙŠÙ„ التشغيل التلقائي" #: editor/plugins/theme_editor_plugin.cpp #, fuzzy -msgid "CheckBox Radio2" -msgstr "صندوق تأشير٢" +msgid "Disabled Button" +msgstr "معطّل" #: editor/plugins/theme_editor_plugin.cpp #, fuzzy @@ -7040,6 +7525,11 @@ msgstr "عنصر" #: editor/plugins/theme_editor_plugin.cpp #, fuzzy +msgid "Disabled Item" +msgstr "معطّل" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy msgid "Check Item" msgstr "اختار العنصر" @@ -7059,6 +7549,24 @@ msgid "Checked Radio Item" msgstr "عنصر انتقاء مَضْبÙوط" #: editor/plugins/theme_editor_plugin.cpp +msgid "Named Sep." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Submenu" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Item 1" +msgstr "عنصر" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Item 2" +msgstr "عنصر" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Has" msgstr "" @@ -7068,8 +7576,8 @@ msgstr "" #: editor/plugins/theme_editor_plugin.cpp #, fuzzy -msgid "Has,Many,Options" -msgstr "بكثير، خيارات عديدة،!" +msgid "Disabled LineEdit" +msgstr "معطّل" #: editor/plugins/theme_editor_plugin.cpp msgid "Tab 1" @@ -7084,6 +7592,20 @@ msgid "Tab 3" msgstr "علامة التبويب 3" #: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Editable Item" +msgstr "عنصر انتقاء" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Subtree" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Has,Many,Options" +msgstr "بكثير، خيارات عديدة،!" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Data Type:" msgstr "" @@ -7117,6 +7639,7 @@ msgid "Fix Invalid Tiles" msgstr "اسم غير صالØ." #: editor/plugins/tile_map_editor_plugin.cpp +#: modules/gridmap/grid_map_editor_plugin.cpp #, fuzzy msgid "Cut Selection" msgstr "Ù†ØµÙ Ø§Ù„Ù…ÙØØ¯Ø¯" @@ -7159,39 +7682,49 @@ msgid "Mirror Y" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp +msgid "Disable Autotile" +msgstr "" + +#: editor/plugins/tile_map_editor_plugin.cpp +#, fuzzy +msgid "Enable Priority" +msgstr "تعديل المصاÙÙŠ" + +#: editor/plugins/tile_map_editor_plugin.cpp msgid "Paint Tile" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Pick Tile" +msgid "" +"Shift+RMB: Line Draw\n" +"Shift+Ctrl+RMB: Rectangle Paint" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy -msgid "Copy Selection" -msgstr "ØØ°Ù Ø§Ù„Ù…ÙØØ¯Ø¯" +msgid "Pick Tile" +msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp #, fuzzy -msgid "Rotate left" +msgid "Rotate Left" msgstr "وضع التدوير" #: editor/plugins/tile_map_editor_plugin.cpp #, fuzzy -msgid "Rotate right" +msgid "Rotate Right" msgstr "وضع التدوير" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Flip horizontally" +msgid "Flip Horizontally" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Flip vertically" +msgid "Flip Vertically" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp #, fuzzy -msgid "Clear transform" +msgid "Clear Transform" msgstr "تØÙˆÙŠÙ„ تغيير Ø§Ù„ØªØØ±ÙŠÙƒ" #: editor/plugins/tile_set_editor_plugin.cpp @@ -7229,6 +7762,46 @@ msgid "Select the previous shape, subtile, or Tile." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Region Mode" +msgstr "وضع التدوير" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Collision Mode" +msgstr "وضعية Ø§Ù„Ø£Ø³ØªÙŠÙØ§Ø¡" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Occlusion Mode" +msgstr "تعديل البولي" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Navigation Mode" +msgstr "أنشئ ميش التنقل" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Bitmask Mode" +msgstr "وضع التدوير" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Priority Mode" +msgstr "تصدير المشروع" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Icon Mode" +msgstr "وضع Ø§Ù„Ø³ØØ¨" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Z Index Mode" +msgstr "وضع Ø§Ù„Ø³ØØ¨" + +#: editor/plugins/tile_set_editor_plugin.cpp msgid "Copy bitmask." msgstr "" @@ -7318,6 +7891,7 @@ msgstr "Ù…Ø³Ø Ø§Ù„Ù†Ù‚Ø§Ø·" msgid "" "LMB: Set bit on.\n" "RMB: Set bit off.\n" +"Shift+LMB: Set wildcard bit.\n" "Click on another Tile to edit it." msgstr "ØÙظ العنوان Ø§Ù„ÙØ±Ø¹ÙŠ Ø§Ù„Ø°ÙŠ يتم تعديله ØØ§Ù„يا." @@ -7442,6 +8016,77 @@ msgid "TileSet" msgstr "مجموعة البلاط" #: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Add input +" +msgstr "أض٠مدخله" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Add output +" +msgstr "أض٠مدخله" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar" +msgstr "تكبير/تصغير:" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector" +msgstr "Ù…ÙØ±Ø§Ù‚ب" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Add input port" +msgstr "أض٠مدخله" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add output port" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change input port type" +msgstr "غير النوع Ø§Ù„Ø¥ÙØªØ±Ø§Ø¶ÙŠ" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change output port type" +msgstr "غير النوع Ø§Ù„Ø¥ÙØªØ±Ø§Ø¶ÙŠ" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change input port name" +msgstr "تغيير إسم Ø§Ù„ØØ±ÙƒØ©:" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Change output port name" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Remove input port" +msgstr "Ù…Ø³Ø Ø§Ù„Ù†Ù‚Ø·Ø©" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Remove output port" +msgstr "Ù…Ø³Ø Ø§Ù„Ù†Ù‚Ø·Ø©" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Set expression" +msgstr "النسخة Ø§Ù„ØØ§Ù„ية:" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Resize VisualShader node" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Set Uniform Name" msgstr "" @@ -7482,6 +8127,852 @@ msgid "Light" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Create Shader Node" +msgstr "إنشاء عقدة" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Color function." +msgstr "Ù…Ø³Ø Ø§Ù„Ù…Ù‡Ù…Ø©" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Color operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Grayscale function." +msgstr "إصنع دالة" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts HSV vector to RGB equivalent." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts RGB vector to HSV equivalent." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Sepia function." +msgstr "إصنع دالة" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Burn operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Darken operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Difference operator." +msgstr "Ø§Ù„Ø¥Ø®ØªÙ„Ø§ÙØ§Øª Ùقط" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Dodge operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "HardLight operator" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Lighten operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Overlay operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Screen operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "SoftLight operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Color constant." +msgstr "ثابت" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Color uniform." +msgstr "تØÙˆÙŠÙ„ تغيير Ø§Ù„ØªØØ±ÙŠÙƒ" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns an associated vector if the provided scalars are equal, greater or " +"less." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns an associated vector if the provided boolean value is true or false." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'camera' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'inv_camera' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'inv_projection' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'normal' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'projection' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'time' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'viewport_size' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'world' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'texture_pixel_size' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Input parameter." +msgstr "الكبس إلي الطÙÙ„" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'binormal' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'fragcoord' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_coord' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_uv' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'side' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'tangent' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv2' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'vertex' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'view' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'albedo' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'attenuation' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'diffuse' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_color' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'roughness' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'specular' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'transmission' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'modelview' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_size' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'tangent' input parameter for vertex and fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_pass' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_coord' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_pixel_size' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_uv' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_alpha' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_height' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_uv' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_vec' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'normal' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'shadow_color' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'extra' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'projection' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'vertex' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'world' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'active' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'custom' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'custom_alpha' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'delta' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'emission_transform' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'index' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'lifetime' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'restart' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'time' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'transform' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'velocity' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar function." +msgstr "تكبير Ø§Ù„Ù…ØØ¯Ø¯" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Scalar operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "E constant (2.718282). Represents the base of the natural logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Epsilon constant (0.00001). Smallest possible scalar number." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Phi constant (1.618034). Golden ratio." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi/4 constant (0.785398) or 45 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi/2 constant (1.570796) or 90 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi constant (3.141593) or 180 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Tau constant (6.283185) or 360 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Sqrt2 constant (1.414214). Square root of 2." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the absolute value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-tangent of the parameters." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Finds the nearest integer that is greater than or equal to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Constrains a value to lie between two further values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts a quantity in radians to degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-e Exponential." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-2 Exponential." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Finds the nearest integer less than or equal to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Computes the fractional part of the argument." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the inverse of the square root of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Natural logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-2 logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the greater of two values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the lesser of two values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Linear interpolation between two scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the opposite value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 - scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns the value of the first parameter raised to the power of the second." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts a quantity in degrees to radians." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 / scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the nearest integer to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the nearest even integer to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Clamps the value between 0.0 and 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Extracts the sign of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the square root of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( scalar(edge0), scalar(edge1), scalar(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if x is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( scalar(edge), scalar(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the truncated value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Adds scalar to scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Divides scalar by scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies scalar by scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the remainder of the two scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Subtracts scalar from scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Scalar constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar uniform." +msgstr "تØÙˆÙŠÙ„ تغيير Ø§Ù„ØªØØ±ÙŠÙƒ" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Perform the cubic texture lookup." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Perform the texture lookup." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Cubic texture uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "2D texture uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Transform function." +msgstr "إنشاء بولي" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) Calculate the outer product of a pair of vectors.\n" +"\n" +"OuterProduct treats the first parameter 'c' as a column vector (matrix with " +"one column) and the second parameter 'r' as a row vector (matrix with one " +"row) and does a linear algebraic matrix multiply 'c * r', yielding a matrix " +"whose number of rows is the number of components in 'c' and whose number of " +"columns is the number of components in 'r'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Composes transform from four vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Decomposes transform to four vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the determinant of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the inverse of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the transpose of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies transform by transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies vector by transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Transform constant." +msgstr "إنشاء بولي" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Transform uniform." +msgstr "إنشاء بولي" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector function." +msgstr "التعيين لتعمل." + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Composes vector from three scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Decomposes vector to three scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the cross product of two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the distance between two points." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the dot product of two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns a vector that points in the same direction as a reference vector. " +"The function has three vector parameters : N, the vector to orient, I, the " +"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 "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the length of a vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Linear interpolation between two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the normalize product of vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 - vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 / vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns a vector that points in the direction of reflection ( a : incident " +"vector, b : normal vector )." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns a vector that points in the direction of refraction." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( vector(edge0), vector(edge1), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if 'x' is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( scalar(edge0), scalar(edge1), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if 'x' is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( vector(edge), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( scalar(edge), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Adds vector to vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Divides vector by vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies vector by vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the remainder of the two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Subtracts vector from vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector uniform." +msgstr "التعين للإنتظام." + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Custom Godot Shader Language expression, with custom amount of input and " +"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 "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns falloff based on the dot product of surface normal and view " +"direction of camera (pass associated inputs to it)." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) (Fragment/Light mode only) Scalar derivative function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) (Fragment/Light mode only) Vector derivative function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Derivative in 'x' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Derivative in 'x' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Derivative in 'y' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Derivative in 'y' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Sum of absolute derivative " +"in 'x' and 'y'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Sum of absolute derivative " +"in 'x' and 'y'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "VisualShader" msgstr "" @@ -7677,6 +9168,10 @@ msgid "Directory already contains a Godot project." msgstr "" #: editor/project_manager.cpp +msgid "New Game Project" +msgstr "" + +#: editor/project_manager.cpp msgid "Imported Project" msgstr "" @@ -7724,10 +9219,6 @@ msgid "Rename Project" msgstr "" #: editor/project_manager.cpp -msgid "New Game Project" -msgstr "" - -#: editor/project_manager.cpp msgid "Import Existing Project" msgstr "" @@ -7756,10 +9247,6 @@ msgid "Project Name:" msgstr "" #: editor/project_manager.cpp -msgid "Create folder" -msgstr "إنشاء مجلد" - -#: editor/project_manager.cpp msgid "Project Path:" msgstr "" @@ -7768,10 +9255,6 @@ msgid "Project Installation Path:" msgstr "" #: editor/project_manager.cpp -msgid "Browse" -msgstr "" - -#: editor/project_manager.cpp msgid "Renderer:" msgstr "" @@ -7825,8 +9308,8 @@ msgid "" "\n" "If you proceed with opening it, it will be converted to Godot's current " "configuration file format.\n" -"Warning: You will not be able to open the project with previous versions of " -"the engine anymore." +"Warning: You won't be able to open the project with previous versions of the " +"engine anymore." msgstr "" #: editor/project_manager.cpp @@ -7837,8 +9320,8 @@ msgid "" "%s\n" "\n" "Do you want to convert it?\n" -"Warning: You will not be able to open the project with previous versions of " -"the engine anymore." +"Warning: You won't be able to open the project with previous versions of the " +"engine anymore." msgstr "" #: editor/project_manager.cpp @@ -7848,11 +9331,14 @@ msgid "" msgstr "" #: editor/project_manager.cpp +#, fuzzy msgid "" "Can't run project: no main scene defined.\n" -"Please edit the project and set the main scene in \"Project Settings\" under " +"Please edit the project and set the main scene in the Project Settings under " "the \"Application\" category." msgstr "" +"لا مشهد أساسي تم ØªØØ¯ÙŠØ¯Ù‡ØŒ ØØ¯Ø¯ ÙˆØ§ØØ¯ØŸ\n" +"يمكنك تغييره لاØÙ‚اً ÙÙŠ \"إعدادات المشروع\" ØªØØª قسم 'التطبيق'." #: editor/project_manager.cpp msgid "" @@ -7861,23 +9347,37 @@ msgid "" msgstr "" #: editor/project_manager.cpp -msgid "Are you sure to run more than one project?" +msgid "Are you sure to run %d projects at once?" +msgstr "" + +#: editor/project_manager.cpp +msgid "" +"Remove %d projects from the list?\n" +"The project folders' contents won't be modified." +msgstr "" + +#: editor/project_manager.cpp +msgid "" +"Remove this project from the list?\n" +"The project folder's contents won't be modified." msgstr "" #: editor/project_manager.cpp -msgid "Remove project from the list? (Folder contents will not be modified)" +msgid "" +"Remove all missing projects from the list? (Folders contents will not be " +"modified)" msgstr "" #: editor/project_manager.cpp msgid "" "Language changed.\n" -"The UI will update next time the editor or project manager starts." +"The interface will update after restarting the editor or project manager." msgstr "" #: editor/project_manager.cpp msgid "" -"You are about the scan %s folders for existing Godot projects. Do you " -"confirm?" +"Are you sure to scan %s folders for existing Godot projects?\n" +"This could take a while." msgstr "" #: editor/project_manager.cpp @@ -7901,6 +9401,11 @@ msgid "New Project" msgstr "" #: editor/project_manager.cpp +#, fuzzy +msgid "Remove Missing" +msgstr "Ù…Ø³Ø Ø§Ù„Ù†Ù‚Ø·Ø©" + +#: editor/project_manager.cpp msgid "Templates" msgstr "" @@ -7918,8 +9423,8 @@ msgstr "" #: editor/project_manager.cpp msgid "" -"You don't currently have any projects.\n" -"Would you like to explore the official example projects in the Asset Library?" +"You currently don't have any projects.\n" +"Would you like to explore official example projects in the Asset Library?" msgstr "" #: editor/project_settings_editor.cpp @@ -7945,8 +9450,9 @@ msgid "" msgstr "" #: editor/project_settings_editor.cpp -msgid "Action '%s' already exists!" -msgstr "" +#, fuzzy +msgid "An action with the name '%s' already exists." +msgstr "خطأ: إسم Ø§Ù„ØØ±ÙƒØ© موجود Ø¨Ø§Ù„ÙØ¹Ù„!" #: editor/project_settings_editor.cpp msgid "Rename Input Action Event" @@ -8100,10 +9606,6 @@ msgid "" msgstr "" #: editor/project_settings_editor.cpp -msgid "Already existing" -msgstr "" - -#: editor/project_settings_editor.cpp msgid "Add Input Action" msgstr "" @@ -8168,7 +9670,7 @@ msgid "Override For..." msgstr "" #: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp -msgid "Editor must be restarted for changes to take effect" +msgid "The editor must be restarted for changes to take effect." msgstr "" #: editor/project_settings_editor.cpp @@ -8229,12 +9731,14 @@ msgid "Locales Filter" msgstr "" #: editor/project_settings_editor.cpp -msgid "Show all locales" -msgstr "" +#, fuzzy +msgid "Show All Locales" +msgstr "إظهار العظام" #: editor/project_settings_editor.cpp -msgid "Show only selected locales" -msgstr "" +#, fuzzy +msgid "Show Selected Locales Only" +msgstr "Ø§Ù„Ù…ØØ¯Ø¯ Ùقط" #: editor/project_settings_editor.cpp msgid "Filter mode:" @@ -8249,14 +9753,6 @@ msgid "AutoLoad" msgstr "" #: editor/property_editor.cpp -msgid "Ease In" -msgstr "" - -#: editor/property_editor.cpp -msgid "Ease Out" -msgstr "" - -#: editor/property_editor.cpp msgid "Zero" msgstr "" @@ -8331,7 +9827,7 @@ msgstr "" #: editor/rename_dialog.cpp #, fuzzy -msgid "Advanced options" +msgid "Advanced Options" msgstr "إعدادات الكبس" #: editor/rename_dialog.cpp @@ -8596,7 +10092,7 @@ msgstr "" #: editor/scene_tree_dock.cpp #, fuzzy -msgid "Custom Node" +msgid "Other Node" msgstr "إنشاء عقدة" #: editor/scene_tree_dock.cpp @@ -8639,7 +10135,7 @@ msgstr "" #: editor/scene_tree_dock.cpp #, fuzzy -msgid "Open documentation" +msgid "Open Documentation" msgstr "ÙÙØªØ مؤخراً" #: editor/scene_tree_dock.cpp @@ -8668,7 +10164,7 @@ msgstr "" msgid "Save Branch as Scene" msgstr "" -#: editor/scene_tree_dock.cpp +#: editor/scene_tree_dock.cpp editor/script_editor_debugger.cpp msgid "Copy Node Path" msgstr "" @@ -8712,6 +10208,21 @@ msgid "Toggle Visible" msgstr "أظهر Ø§Ù„Ù…Ù„ÙØ§Øª المخÙية" #: editor/scene_tree_editor.cpp +#, fuzzy +msgid "Unlock Node" +msgstr "عقدة اللقطة Ø§Ù„ÙˆØ§ØØ¯Ø©" + +#: editor/scene_tree_editor.cpp +#, fuzzy +msgid "Button Group" +msgstr "Ø¥Ø¶Ø§ÙØ© إلي مجموعة" + +#: editor/scene_tree_editor.cpp +#, fuzzy +msgid "(Connecting From)" +msgstr "خطأ ÙÙŠ الإتصال" + +#: editor/scene_tree_editor.cpp msgid "Node configuration warning:" msgstr "" @@ -8733,9 +10244,9 @@ msgid "" "Click to show groups dock." msgstr "" -#: editor/scene_tree_editor.cpp editor/script_create_dialog.cpp +#: editor/scene_tree_editor.cpp #, fuzzy -msgid "Open Script" +msgid "Open Script:" msgstr "ÙØªØ الكود" #: editor/scene_tree_editor.cpp @@ -8781,90 +10292,101 @@ msgid "Select a Node" msgstr "" #: editor/script_create_dialog.cpp -msgid "Error loading template '%s'" -msgstr "" - -#: editor/script_create_dialog.cpp -msgid "Error - Could not create script in filesystem." -msgstr "" +#, fuzzy +msgid "Path is empty." +msgstr "الميش ÙØ§Ø±Øº!" #: editor/script_create_dialog.cpp -msgid "Error loading script from %s" -msgstr "" +#, fuzzy +msgid "Filename is empty." +msgstr "الميش ÙØ§Ø±Øº!" #: editor/script_create_dialog.cpp -msgid "N/A" +msgid "Path is not local." msgstr "" #: editor/script_create_dialog.cpp #, fuzzy -msgid "Open Script/Choose Location" -msgstr "ÙØªØ Ù…ÙØ¹Ø¯Ù„ الكود" +msgid "Invalid base path." +msgstr "مسار غير صالØ." #: editor/script_create_dialog.cpp -msgid "Path is empty" -msgstr "" +#, fuzzy +msgid "A directory with the same name exists." +msgstr "مل٠أو مجلد مع هذا الأسم موجود Ø¨Ø§Ù„ÙØ¹Ù„." #: editor/script_create_dialog.cpp #, fuzzy -msgid "Filename is empty" -msgstr "الميش ÙØ§Ø±Øº!" +msgid "Invalid extension." +msgstr "يجب أن يستخدم صيغة صØÙŠØØ©." #: editor/script_create_dialog.cpp -msgid "Path is not local" +msgid "Wrong extension chosen." msgstr "" #: editor/script_create_dialog.cpp -msgid "Invalid base path" +msgid "Error loading template '%s'" msgstr "" #: editor/script_create_dialog.cpp -msgid "Directory of the same name exists" +msgid "Error - Could not create script in filesystem." msgstr "" #: editor/script_create_dialog.cpp -msgid "File exists, will be reused" -msgstr "المل٠موجود، سيعاد إستخدامه" +msgid "Error loading script from %s" +msgstr "" #: editor/script_create_dialog.cpp -msgid "Invalid extension" +msgid "N/A" msgstr "" #: editor/script_create_dialog.cpp -msgid "Wrong extension chosen" -msgstr "" +#, fuzzy +msgid "Open Script / Choose Location" +msgstr "ÙØªØ Ù…ÙØ¹Ø¯Ù„ الكود" #: editor/script_create_dialog.cpp -msgid "Invalid Path" -msgstr "" +#, fuzzy +msgid "Open Script" +msgstr "ÙØªØ الكود" #: editor/script_create_dialog.cpp -msgid "Invalid class name" +#, fuzzy +msgid "File exists, it will be reused." +msgstr "المل٠موجود، سيعاد إستخدامه" + +#: editor/script_create_dialog.cpp +#, fuzzy +msgid "Invalid class name." msgstr "إسم صن٠غير صالØ" #: editor/script_create_dialog.cpp -msgid "Invalid inherited parent name or path" +msgid "Invalid inherited parent name or path." msgstr "" #: editor/script_create_dialog.cpp -msgid "Script valid" -msgstr "" +#, fuzzy +msgid "Script is valid." +msgstr "شجرة Ø§Ù„ØØ±ÙƒØ© صØÙŠØØ©." #: editor/script_create_dialog.cpp msgid "Allowed: a-z, A-Z, 0-9 and _" msgstr "" #: editor/script_create_dialog.cpp -msgid "Built-in script (into scene file)" -msgstr "" +#, fuzzy +msgid "Built-in script (into scene file)." +msgstr "عمليات مع Ù…Ù„ÙØ§Øª المشهد." #: editor/script_create_dialog.cpp -msgid "Create new script file" +#, fuzzy +msgid "Will create a new script file." msgstr "إنشاء مل٠كود جديد" #: editor/script_create_dialog.cpp -msgid "Load existing script file" -msgstr "" +#, fuzzy +msgid "Will load an existing script file." +msgstr "تØÙ…يل نسق بيوس موجود مسبقاً." #: editor/script_create_dialog.cpp msgid "Language" @@ -8994,6 +10516,10 @@ msgstr "" msgid "Set From Tree" msgstr "" +#: editor/script_editor_debugger.cpp +msgid "Export measures as CSV" +msgstr "" + #: editor/settings_config_dialog.cpp #, fuzzy msgid "Erase Shortcut" @@ -9128,6 +10654,15 @@ msgid "GDNativeLibrary" msgstr "" #: 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 "تعطيل دوار Ø§Ù„ØªØØ¯ÙŠØ«" + +#: modules/gdnative/gdnative_library_singleton_editor.cpp msgid "Library" msgstr "" @@ -9221,8 +10756,9 @@ msgid "GridMap Fill Selection" msgstr "ÙƒÙÙ„ Ø§Ù„Ù…ÙØØ¯Ø¯" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "GridMap Duplicate Selection" -msgstr "" +#, fuzzy +msgid "GridMap Paste Selection" +msgstr "ÙƒÙÙ„ Ø§Ù„Ù…ÙØØ¯Ø¯" #: modules/gridmap/grid_map_editor_plugin.cpp msgid "GridMap Paint" @@ -9289,18 +10825,6 @@ msgid "Cursor Clear Rotation" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Create Area" -msgstr "" - -#: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Create Exterior Connector" -msgstr "" - -#: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Erase Area" -msgstr "" - -#: modules/gridmap/grid_map_editor_plugin.cpp msgid "Clear Selection" msgstr "إخلاء Ø§Ù„Ù…ØØ¯Ø¯" @@ -9656,15 +11180,7 @@ msgid "Available Nodes:" msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Select or create a function to edit graph" -msgstr "" - -#: modules/visual_script/visual_script_editor.cpp -msgid "Edit Signal Arguments:" -msgstr "" - -#: modules/visual_script/visual_script_editor.cpp -msgid "Edit Variable:" +msgid "Select or create a function to edit its graph." msgstr "" #: modules/visual_script/visual_script_editor.cpp @@ -9796,6 +11312,19 @@ msgid "Debug keystore not configured in the Editor Settings nor in the preset." msgstr "" #: platform/android/export/export.cpp +msgid "Custom build requires a valid Android SDK path in Editor Settings." +msgstr "" + +#: platform/android/export/export.cpp +msgid "Invalid Android SDK path for custom build in Editor Settings." +msgstr "" + +#: platform/android/export/export.cpp +msgid "" +"Android project is not installed for compiling. Install from Editor menu." +msgstr "" + +#: platform/android/export/export.cpp msgid "Invalid public key for APK expansion." msgstr "" @@ -9804,6 +11333,34 @@ msgstr "" msgid "Invalid package name:" msgstr "إسم صن٠غير صالØ" +#: platform/android/export/export.cpp +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 "" +"Android build version mismatch:\n" +" Template installed: %s\n" +" Godot Version: %s\n" +"Please reinstall Android build template from 'Project' menu." +msgstr "" + +#: platform/android/export/export.cpp +msgid "Building Android Project (gradle)" +msgstr "" + +#: 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 "" + +#: platform/android/export/export.cpp +msgid "No build apk generated at: " +msgstr "" + #: platform/iphone/export/export.cpp msgid "Identifier is missing." msgstr "" @@ -10065,27 +11622,27 @@ msgid "ARVRCamera must have an ARVROrigin node as its parent" msgstr "" #: scene/3d/arvr_nodes.cpp -msgid "ARVRController must have an ARVROrigin node as its parent" +msgid "ARVRController must have an ARVROrigin node as its parent." msgstr "" #: scene/3d/arvr_nodes.cpp msgid "" -"The controller id must not be 0 or this controller will not be bound to an " -"actual controller" +"The controller ID must not be 0 or this controller won't be bound to an " +"actual controller." msgstr "" #: scene/3d/arvr_nodes.cpp -msgid "ARVRAnchor must have an ARVROrigin node as its parent" +msgid "ARVRAnchor must have an ARVROrigin node as its parent." msgstr "" #: scene/3d/arvr_nodes.cpp msgid "" -"The anchor id must not be 0 or this anchor will not be bound to an actual " -"anchor" +"The anchor ID must not be 0 or this anchor won't be bound to an actual " +"anchor." msgstr "" #: scene/3d/arvr_nodes.cpp -msgid "ARVROrigin requires an ARVRCamera child node" +msgid "ARVROrigin requires an ARVRCamera child node." msgstr "" #: scene/3d/baked_lightmap.cpp @@ -10155,8 +11712,8 @@ msgstr "" #: scene/3d/cpu_particles.cpp msgid "" -"CPUParticles animation requires the usage of a SpatialMaterial with " -"\"Billboard Particles\" enabled." +"CPUParticles animation requires the usage of a SpatialMaterial whose " +"Billboard Mode is set to \"Particle Billboard\"." msgstr "" #: scene/3d/gi_probe.cpp @@ -10193,8 +11750,8 @@ msgstr "" #: scene/3d/particles.cpp msgid "" -"Particles animation requires the usage of a SpatialMaterial with \"Billboard " -"Particles\" enabled." +"Particles animation requires the usage of a SpatialMaterial whose Billboard " +"Mode is set to \"Particle Billboard\"." msgstr "" #: scene/3d/path.cpp @@ -10219,7 +11776,7 @@ msgid "Path property must point to a valid Spatial node to work." msgstr "" #: scene/3d/soft_body.cpp -msgid "This body will be ignored until you set a mesh" +msgid "This body will be ignored until you set a mesh." msgstr "" #: scene/3d/soft_body.cpp @@ -10322,7 +11879,7 @@ msgstr "أض٠اللون Ø§Ù„ØØ§Ù„ÙŠ كإعداد مسبق" msgid "" "Container by itself serves no purpose unless a script configures it's " "children placement behavior.\n" -"If you dont't intend to add a script, then please use a plain 'Control' node " +"If you don't intend to add a script, then please use a plain 'Control' node " "instead." msgstr "" @@ -10334,11 +11891,6 @@ msgstr "تنبيه!" msgid "Please Confirm..." msgstr "يرجى التاكيد..." -#: scene/gui/file_dialog.cpp -#, fuzzy -msgid "Go to parent folder." -msgstr "إذهب إلي المجلد السابق" - #: scene/gui/popup.cpp msgid "" "Popups will hide by default unless you call popup() or any of the popup*() " @@ -10411,6 +11963,58 @@ msgstr "التعين للإنتظام." msgid "Varyings can only be assigned in vertex function." msgstr "يمكن تعيين المتغيرات Ùقط ÙÙŠ الذروة ." +#: servers/visual/shader_language.cpp +msgid "Constants cannot be modified." +msgstr "" + +#~ msgid "Path to Node:" +#~ msgstr "مسار العقدة:" + +#~ msgid "Delete selected files?" +#~ msgstr "Ø¥Ù…Ø³Ø Ø§Ù„Ù…Ù„ÙØ§Øª Ø§Ù„Ù…ØØ¯Ø¯Ø©ØŸ" + +#~ msgid "There is no 'res://default_bus_layout.tres' file." +#~ msgstr "ليس هناك مل٠'res://default_bus_layout.tres'." + +#~ msgid "Go to parent folder" +#~ msgstr "إذهب إلي المجلد السابق" + +#~ msgid "Select device from the list" +#~ msgstr "اختار جهاز من القائمة" + +#~ msgid "Open Scene(s)" +#~ msgstr "ÙØªØ مشهد (مشاهد)" + +#~ msgid "Previous Directory" +#~ msgstr "المجلد السابق" + +#~ msgid "Next Directory" +#~ msgstr "المجلد التالي" + +#~ msgid "Ease in" +#~ msgstr "تخÙي٠للداخل" + +#~ msgid "Ease out" +#~ msgstr "تخÙي٠للخارج" + +#~ msgid "Create Convex Static Body" +#~ msgstr "أنشئ جسم Ù…ØØ¯Ø¨ ثابت" + +#, fuzzy +#~ msgid "CheckBox Radio1" +#~ msgstr "صندوق تأشير Ù¡" + +#, fuzzy +#~ msgid "CheckBox Radio2" +#~ msgstr "صندوق تأشير٢" + +#~ msgid "Create folder" +#~ msgstr "إنشاء مجلد" + +#, fuzzy +#~ msgid "Custom Node" +#~ msgstr "إنشاء عقدة" + #, fuzzy #~ msgid "Insert keys." #~ msgstr "أدخل Ù…ÙØ§ØªÙŠØ" @@ -10491,9 +12095,6 @@ msgstr "يمكن تعيين المتغيرات Ùقط ÙÙŠ الذروة ." #~ msgid "Class List:" #~ msgstr "قائمة الأصناÙ:" -#~ msgid "Search Classes" -#~ msgstr "Ø¥Ø¨ØØ« ÙÙŠ الأصناÙ" - #~ msgid "Public Methods" #~ msgstr "الطرق العامة" @@ -10545,9 +12146,6 @@ msgstr "يمكن تعيين المتغيرات Ùقط ÙÙŠ الذروة ." #~ msgid "Modify Color Ramp" #~ msgstr "تعديل Ù…Ù†ØØ¯Ø± اللون" -#~ msgid "Disabled" -#~ msgstr "معطّل" - #~ msgid "Move Anim Track Up" #~ msgstr "Ø±ÙØ¹ مسار Ø§Ù„ØªØØ±ÙŠÙƒ" diff --git a/editor/translations/bg.po b/editor/translations/bg.po index fb81a1793a..cf26258550 100644 --- a/editor/translations/bg.po +++ b/editor/translations/bg.po @@ -80,6 +80,15 @@ msgstr "" msgid "Mirror" msgstr "Отрази (огледално)" +#: editor/animation_bezier_editor.cpp editor/editor_profiler.cpp +msgid "Time:" +msgstr "" + +#: editor/animation_bezier_editor.cpp +#, fuzzy +msgid "Value:" +msgstr "СтойноÑÑ‚" + #: editor/animation_bezier_editor.cpp msgid "Insert Key Here" msgstr "" @@ -165,12 +174,18 @@ msgstr "" #: editor/animation_track_editor.cpp #, fuzzy -msgid "Add Track" -msgstr "ДобавÑне на нови пътечки." +msgid "Animation length (frames)" +msgstr "Ðово Име на ÐнимациÑ:" #: editor/animation_track_editor.cpp -msgid "Animation Length Time (seconds)" -msgstr "" +#, fuzzy +msgid "Animation length (seconds)" +msgstr "Промени Името на ÐнимациÑта:" + +#: editor/animation_track_editor.cpp +#, fuzzy +msgid "Add Track" +msgstr "ДобавÑне на нови пътечки." #: editor/animation_track_editor.cpp #, fuzzy @@ -304,11 +319,13 @@ msgid "Create %d NEW tracks and insert keys?" msgstr "" #: editor/animation_track_editor.cpp editor/create_dialog.cpp -#: editor/editor_audio_buses.cpp editor/editor_plugin_settings.cpp -#: editor/plugin_config_dialog.cpp +#: editor/editor_audio_buses.cpp editor/editor_feature_profile.cpp +#: editor/editor_plugin_settings.cpp editor/plugin_config_dialog.cpp #: editor/plugins/abstract_polygon_2d_editor.cpp #: editor/plugins/mesh_instance_editor_plugin.cpp -#: editor/plugins/particles_editor_plugin.cpp editor/script_create_dialog.cpp +#: editor/plugins/particles_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_create_dialog.cpp msgid "Create" msgstr "Създаване" @@ -424,6 +441,23 @@ msgid "" msgstr "" #: editor/animation_track_editor.cpp +msgid "" +"This animation belongs to an imported scene, so changes to imported tracks " +"will not be saved.\n" +"\n" +"To enable the ability to add custom tracks, navigate to the scene's import " +"settings and set\n" +"\"Animation > Storage\" to \"Files\", enable \"Animation > Keep Custom Tracks" +"\", then re-import.\n" +"Alternatively, use an import preset that imports animations to separate " +"files." +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Warning: Editing imported animation" +msgstr "" + +#: editor/animation_track_editor.cpp msgid "Only show tracks from nodes selected in tree." msgstr "" @@ -560,7 +594,8 @@ msgstr "" msgid "Select tracks to copy:" msgstr "" -#: editor/animation_track_editor.cpp editor/editor_properties.cpp +#: editor/animation_track_editor.cpp editor/editor_log.cpp +#: editor/editor_properties.cpp #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp @@ -630,6 +665,11 @@ msgstr "Преименувай Ð’Ñички" msgid "Selection Only" msgstr "Само СелекциÑта" +#: editor/code_editor.cpp editor/plugins/script_text_editor.cpp +#: editor/plugins/text_editor.cpp +msgid "Standard" +msgstr "" + #: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/texture_region_editor_plugin.cpp #: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp @@ -655,18 +695,34 @@ msgid "Line and column numbers." msgstr "" #: editor/connections_dialog.cpp -msgid "Method in target Node must be specified!" +msgid "Method in target node must be specified." msgstr "" #: editor/connections_dialog.cpp msgid "" -"Target method not found! Specify a valid method or attach a script to target " -"Node." +"Target method not found. Specify a valid method or attach a script to the " +"target node." msgstr "" #: editor/connections_dialog.cpp -msgid "Connect To Node:" -msgstr "" +#, fuzzy +msgid "Connect to Node:" +msgstr "ИзрÑзване на възелите" + +#: editor/connections_dialog.cpp +#, fuzzy +msgid "Connect to Script:" +msgstr "Свържи Сигнала: " + +#: editor/connections_dialog.cpp +#, fuzzy +msgid "From Signal:" +msgstr "Свържи Сигнала: " + +#: editor/connections_dialog.cpp +#, fuzzy +msgid "Scene does not contain any script." +msgstr "Възелът не Ñъдържа геометриÑ." #: editor/connections_dialog.cpp editor/editor_autoload_settings.cpp #: editor/groups_editor.cpp editor/plugins/item_list_editor_plugin.cpp @@ -675,10 +731,12 @@ msgid "Add" msgstr "Добави" #: editor/connections_dialog.cpp editor/dependency_editor.cpp -#: editor/groups_editor.cpp editor/plugins/animation_player_editor_plugin.cpp +#: editor/editor_feature_profile.cpp editor/groups_editor.cpp +#: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp #: editor/plugins/resource_preloader_editor_plugin.cpp -#: editor/plugins/theme_editor_plugin.cpp editor/project_manager.cpp +#: editor/plugins/theme_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_manager.cpp #: editor/project_settings_editor.cpp msgid "Remove" msgstr "Премахни" @@ -692,21 +750,31 @@ msgid "Extra Call Arguments:" msgstr "" #: editor/connections_dialog.cpp -msgid "Path to Node:" +msgid "Advanced" msgstr "" #: editor/connections_dialog.cpp -msgid "Make Function" +msgid "Deferred" msgstr "" #: editor/connections_dialog.cpp -msgid "Deferred" +msgid "" +"Defers the signal, storing it in a queue and only firing it at idle time." msgstr "" #: editor/connections_dialog.cpp msgid "Oneshot" msgstr "" +#: editor/connections_dialog.cpp +msgid "Disconnects the signal after its first emission." +msgstr "" + +#: editor/connections_dialog.cpp +#, fuzzy +msgid "Cannot connect signal" +msgstr "Свържи Сигнала: " + #: editor/connections_dialog.cpp editor/dependency_editor.cpp #: editor/export_template_manager.cpp editor/groups_editor.cpp #: editor/plugins/animation_player_editor_plugin.cpp @@ -747,11 +815,13 @@ msgid "Disconnect" msgstr "Разкачи" #: editor/connections_dialog.cpp -msgid "Connect Signal: " +#, fuzzy +msgid "Connect a Signal to a Method" msgstr "Свържи Сигнала: " #: editor/connections_dialog.cpp -msgid "Edit Connection: " +#, fuzzy +msgid "Edit Connection:" msgstr "Промени Връзката: " #: editor/connections_dialog.cpp @@ -785,7 +855,6 @@ msgid "Change %s Type" msgstr "" #: editor/create_dialog.cpp editor/project_settings_editor.cpp -#: modules/visual_script/visual_script_editor.cpp msgid "Change" msgstr "" @@ -816,7 +885,8 @@ msgid "Matches:" msgstr "Съвпадащи:" #: editor/create_dialog.cpp editor/plugin_config_dialog.cpp -#: editor/plugins/asset_library_editor_plugin.cpp editor/property_selector.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/property_selector.cpp #: modules/visual_script/visual_script_property_selector.cpp msgid "Description:" msgstr "ОпиÑание:" @@ -832,13 +902,13 @@ msgstr "" #: editor/dependency_editor.cpp msgid "" "Scene '%s' is currently being edited.\n" -"Changes will not take effect unless reloaded." +"Changes will only take effect when reloaded." msgstr "" #: editor/dependency_editor.cpp msgid "" "Resource '%s' is in use.\n" -"Changes will take effect when reloaded." +"Changes will only take effect when reloaded." msgstr "" #: editor/dependency_editor.cpp @@ -930,21 +1000,14 @@ msgid "Permanently delete %d item(s)? (No undo!)" msgstr "" #: editor/dependency_editor.cpp -msgid "Owns" -msgstr "" - -#: editor/dependency_editor.cpp -msgid "Resources Without Explicit Ownership:" -msgstr "" +#, fuzzy +msgid "Show Dependencies" +msgstr "ЗавиÑимоÑти" #: editor/dependency_editor.cpp editor/editor_node.cpp msgid "Orphan Resource Explorer" msgstr "" -#: editor/dependency_editor.cpp -msgid "Delete selected files?" -msgstr "Изтрий избраните файлове?" - #: editor/dependency_editor.cpp editor/editor_audio_buses.cpp #: editor/editor_file_dialog.cpp editor/editor_node.cpp #: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp @@ -953,6 +1016,14 @@ msgstr "Изтрий избраните файлове?" msgid "Delete" msgstr "Изтрий" +#: editor/dependency_editor.cpp +msgid "Owns" +msgstr "" + +#: editor/dependency_editor.cpp +msgid "Resources Without Explicit Ownership:" +msgstr "" + #: editor/dictionary_property_edit.cpp msgid "Change Dictionary Key" msgstr "" @@ -1063,7 +1134,7 @@ msgstr "" msgid "Success!" msgstr "Готово!" -#: editor/editor_asset_installer.cpp +#: editor/editor_asset_installer.cpp editor/editor_node.cpp #: editor/plugins/asset_library_editor_plugin.cpp msgid "Install" msgstr "ИнÑталиране" @@ -1190,7 +1261,11 @@ msgid "Open Audio Bus Layout" msgstr "" #: editor/editor_audio_buses.cpp -msgid "There is no 'res://default_bus_layout.tres' file." +msgid "There is no '%s' file." +msgstr "" + +#: editor/editor_audio_buses.cpp editor/plugins/canvas_item_editor_plugin.cpp +msgid "Layout" msgstr "" #: editor/editor_audio_buses.cpp @@ -1244,15 +1319,19 @@ msgid "Valid characters:" msgstr "" #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing engine class name." +msgid "Must not collide with an existing engine class name." msgstr "" #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing buit-in type name." +msgid "Must not collide with an existing buit-in type name." msgstr "" #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing global constant name." +msgid "Must not collide with an existing global constant name." +msgstr "" + +#: editor/editor_autoload_settings.cpp +msgid "Keyword cannot be used as an autoload name." msgstr "" #: editor/editor_autoload_settings.cpp @@ -1283,11 +1362,12 @@ msgstr "" msgid "Rearrange Autoloads" msgstr "" -#: editor/editor_autoload_settings.cpp -msgid "Invalid Path." -msgstr "" +#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp +#, fuzzy +msgid "Invalid path." +msgstr "невалидно име на Група." -#: editor/editor_autoload_settings.cpp +#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp msgid "File does not exist." msgstr "" @@ -1339,7 +1419,8 @@ msgid "[unsaved]" msgstr "" #: editor/editor_dir_dialog.cpp -msgid "Please select a base directory first" +#, fuzzy +msgid "Please select a base directory first." msgstr "МолÑ, първо изберете оÑновна папка" #: editor/editor_dir_dialog.cpp @@ -1347,7 +1428,8 @@ msgid "Choose a Directory" msgstr "Избери ДиректориÑ" #: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp -#: editor/filesystem_dock.cpp scene/gui/file_dialog.cpp +#: editor/filesystem_dock.cpp editor/project_manager.cpp +#: scene/gui/file_dialog.cpp msgid "Create Folder" msgstr "Създаване на папка" @@ -1415,6 +1497,171 @@ msgstr "" msgid "Template file not found:" msgstr "" +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "3D Editor" +msgstr "Ðова Ñцена" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Script Editor" +msgstr "Отвори Кодов Редактор" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Asset Library" +msgstr "ОтварÑне на библиотеката" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Scene Tree Editing" +msgstr "ÐаÑтройки за пуÑкане на Ñцена" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Import Dock" +msgstr "ВнаÑÑне" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Node Dock" +msgstr "Режим на ПремеÑтване" + +#: editor/editor_feature_profile.cpp +msgid "Filesystem Dock" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Erase profile '%s'? (no undo)" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Profile must be a valid filename and must not contain '.'" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Profile with this name already exists." +msgstr "Вече ÑъщеÑтвува файл или папка Ñ Ñ‚Ð¾Ð²Ð° име." + +#: editor/editor_feature_profile.cpp +msgid "(Editor Disabled, Properties Disabled)" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "(Properties Disabled)" +msgstr "Изберете ÑвойÑтво" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "(Editor Disabled)" +msgstr "Изключено" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Class Options:" +msgstr "ОпиÑание:" + +#: editor/editor_feature_profile.cpp +msgid "Enable Contextual Editor" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enabled Properties:" +msgstr "ПоÑтавÑне на възелите" + +#: editor/editor_feature_profile.cpp +msgid "Enabled Features:" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enabled Classes:" +msgstr "ТърÑи КлаÑове" + +#: editor/editor_feature_profile.cpp +msgid "File '%s' format is invalid, import aborted." +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "" +"Profile '%s' already exists. Remote it first before importing, import " +"aborted." +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Error saving profile to path: '%s'." +msgstr "Грешка при зареждането на шрифта." + +#: editor/editor_feature_profile.cpp +msgid "Unset" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Current Profile" +msgstr "Избиране на текущата папка" + +#: editor/editor_feature_profile.cpp +msgid "Make Current" +msgstr "" + +#: editor/editor_feature_profile.cpp +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "New" +msgstr "" + +#: editor/editor_feature_profile.cpp editor/editor_node.cpp +#: editor/plugins/asset_library_editor_plugin.cpp editor/project_manager.cpp +msgid "Import" +msgstr "ВнаÑÑне" + +#: editor/editor_feature_profile.cpp editor/editor_node.cpp +#: editor/project_export.cpp +msgid "Export" +msgstr "ИзнаÑÑне" + +#: editor/editor_feature_profile.cpp +msgid "Available Profiles" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enabled Classes" +msgstr "ТърÑи КлаÑове" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Class Options" +msgstr "ОпиÑание" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "New profile name:" +msgstr "Ðово име:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Erase Profile" +msgstr "Изтрий точки." + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Import Profile(s)" +msgstr "ВнеÑен проект" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Export Profile" +msgstr "ИзнаÑÑне на проекта" + +#: editor/editor_feature_profile.cpp +msgid "Manage Editor Feature Profiles" +msgstr "" + #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Select Current Folder" msgstr "Избиране на текущата папка" @@ -1437,8 +1684,8 @@ msgstr "" msgid "Open in File Manager" msgstr "ДиÑпечер на проектите" -#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp -#: editor/project_manager.cpp +#: editor/editor_file_dialog.cpp editor/editor_node.cpp +#: editor/filesystem_dock.cpp editor/project_manager.cpp #, fuzzy msgid "Show in File Manager" msgstr "Покажи във Файлов Мениджър" @@ -1498,7 +1745,7 @@ msgstr "" msgid "Go Up" msgstr "" -#: editor/editor_file_dialog.cpp +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Toggle Hidden Files" msgstr "Покажи Скрити Файлове" @@ -1532,8 +1779,9 @@ msgstr "Предишен подпрозорец" msgid "Next Folder" msgstr "Създаване на папка" -#: editor/editor_file_dialog.cpp -msgid "Go to parent folder" +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp +#, fuzzy +msgid "Go to parent folder." msgstr "Към горната папка" #: editor/editor_file_dialog.cpp @@ -1541,6 +1789,11 @@ msgstr "Към горната папка" msgid "(Un)favorite current folder." msgstr "ÐеуÑпешно Ñъздаване на папка." +#: editor/editor_file_dialog.cpp +#, fuzzy +msgid "Toggle visibility of hidden files." +msgstr "Покажи Скрити Файлове" + #: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp msgid "View items as a grid of thumbnails." msgstr "" @@ -1555,6 +1808,7 @@ msgstr "Папки и файлове:" #: editor/editor_file_dialog.cpp editor/plugins/sprite_editor_plugin.cpp #: editor/plugins/style_box_editor_plugin.cpp +#: editor/plugins/theme_editor_plugin.cpp msgid "Preview:" msgstr "" @@ -1571,6 +1825,12 @@ msgid "ScanSources" msgstr "" #: editor/editor_file_system.cpp +msgid "" +"There are multiple importers for different types pointing to file %s, import " +"aborted" +msgstr "" + +#: editor/editor_file_system.cpp msgid "(Re)Importing Assets" msgstr "Извършва Ñе повторно внаÑÑне" @@ -1762,6 +2022,11 @@ msgstr "" msgid "Output:" msgstr "" +#: editor/editor_log.cpp editor/plugins/tile_map_editor_plugin.cpp +#, fuzzy +msgid "Copy Selection" +msgstr "Ðова Ñцена" + #: editor/editor_log.cpp editor/editor_profiler.cpp #: editor/editor_properties.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp @@ -1910,7 +2175,7 @@ msgstr "" #: editor/editor_node.cpp msgid "" "This resource belongs to a scene that was instanced or inherited.\n" -"Changes to it will not be kept when saving the current scene." +"Changes to it won't be kept when saving the current scene." msgstr "" #: editor/editor_node.cpp @@ -1921,7 +2186,7 @@ msgstr "" #: editor/editor_node.cpp msgid "" -"This scene was imported, so changes to it will not be kept.\n" +"This scene was imported, so changes to it won't be kept.\n" "Instancing it or inheriting will allow making changes to it.\n" "Please read the documentation relevant to importing scenes to better " "understand this workflow." @@ -1929,7 +2194,7 @@ msgstr "" #: editor/editor_node.cpp msgid "" -"This is a remote object so changes to it will not be kept.\n" +"This is a remote object, so changes to it won't be kept.\n" "Please read the documentation relevant to debugging to better understand " "this workflow." msgstr "" @@ -1939,27 +2204,6 @@ msgid "There is no defined scene to run." msgstr "" #: editor/editor_node.cpp -msgid "" -"No main scene has ever been defined, select one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" - -#: editor/editor_node.cpp -msgid "" -"Selected scene '%s' does not exist, select a valid one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" - -#: editor/editor_node.cpp -msgid "" -"Selected scene '%s' is not a scene file, select a valid one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" - -#: editor/editor_node.cpp msgid "Current scene was never saved, please save it prior to running." msgstr "" "Сегашната Ñцена никога не е била запазена, молÑ, запазете Ñ Ð¿Ñ€ÐµÐ´Ð¸ изпълнение." @@ -1968,7 +2212,7 @@ msgstr "" msgid "Could not start subprocess!" msgstr "" -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/filesystem_dock.cpp msgid "Open Scene" msgstr "ОтварÑне на Ñцена" @@ -1977,6 +2221,11 @@ msgid "Open Base Scene" msgstr "" #: editor/editor_node.cpp +#, fuzzy +msgid "Quick Open..." +msgstr "Бързо отварÑне на Ñцена..." + +#: editor/editor_node.cpp msgid "Quick Open Scene..." msgstr "Бързо отварÑне на Ñцена..." @@ -2142,6 +2391,27 @@ msgid "Clear Recent Scenes" msgstr "ЗатварÑне на Ñцената" #: editor/editor_node.cpp +msgid "" +"No main scene has ever been defined, select one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"Selected scene '%s' does not exist, select a valid one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"Selected scene '%s' is not a scene file, select a valid one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" + +#: editor/editor_node.cpp msgid "Save Layout" msgstr "" @@ -2170,6 +2440,19 @@ msgstr "Възпроизвеждане на Ñцената" msgid "Close Tab" msgstr "ЗатварÑне" +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +msgid "Close Other Tabs" +msgstr "" + +#: editor/editor_node.cpp +msgid "Close Tabs to the Right" +msgstr "" + +#: editor/editor_node.cpp +#, fuzzy +msgid "Close All Tabs" +msgstr "ЗатварÑне на вÑичко" + #: editor/editor_node.cpp msgid "Switch Scene Tab" msgstr "" @@ -2295,10 +2578,6 @@ msgstr "Проект" msgid "Project Settings" msgstr "ÐаÑтройки на проекта" -#: editor/editor_node.cpp editor/project_export.cpp -msgid "Export" -msgstr "ИзнаÑÑне" - #: editor/editor_node.cpp editor/plugins/tile_set_editor_plugin.cpp msgid "Tools" msgstr "Сечива" @@ -2309,6 +2588,10 @@ msgid "Open Project Data Folder" msgstr "ДиÑпечер на проектите" #: editor/editor_node.cpp +msgid "Install Android Build Template" +msgstr "" + +#: editor/editor_node.cpp msgid "Quit to Project List" msgstr "Изход до ÑпиÑъка Ñ Ð¿Ñ€Ð¾ÐµÐºÑ‚Ð¸" @@ -2415,6 +2698,10 @@ msgstr "" msgid "Open Editor Settings Folder" msgstr "ÐаÑтройки на редактора" +#: editor/editor_node.cpp +msgid "Manage Editor Features" +msgstr "" + #: editor/editor_node.cpp editor/project_export.cpp msgid "Manage Export Templates" msgstr "" @@ -2427,6 +2714,7 @@ msgstr "" #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp #: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp #: editor/project_settings_editor.cpp editor/rename_dialog.cpp msgid "Search" msgstr "ТърÑене" @@ -2517,11 +2805,6 @@ msgstr "" msgid "Disable Update Spinner" msgstr "" -#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp -#: editor/project_manager.cpp -msgid "Import" -msgstr "ВнаÑÑне" - #: editor/editor_node.cpp msgid "FileSystem" msgstr "" @@ -2547,6 +2830,28 @@ msgid "Don't Save" msgstr "Ðе Запазвай" #: editor/editor_node.cpp +msgid "Android build template is missing, please install relevant templates." +msgstr "" + +#: editor/editor_node.cpp +#, fuzzy +msgid "Manage Templates" +msgstr "Шаблони" + +#: editor/editor_node.cpp +msgid "" +"This will install the Android project for custom builds.\n" +"Note that, in order to use it, it needs to be enabled per export preset." +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"Android build template is already installed and it won't be overwritten.\n" +"Remove the \"build\" directory manually before attempting this operation " +"again." +msgstr "" + +#: editor/editor_node.cpp msgid "Import Templates From ZIP File" msgstr "ВнаÑÑне на шаблони от архив във формат ZIP" @@ -2671,10 +2976,6 @@ msgid "Physics Frame %" msgstr "" #: editor/editor_profiler.cpp -msgid "Time:" -msgstr "" - -#: editor/editor_profiler.cpp msgid "Inclusive" msgstr "" @@ -2811,10 +3112,6 @@ msgid "Remove Item" msgstr "" #: editor/editor_run_native.cpp -msgid "Select device from the list" -msgstr "" - -#: editor/editor_run_native.cpp msgid "" "No runnable export preset found for this platform.\n" "Please add a runnable preset in the export menu." @@ -2848,6 +3145,10 @@ msgstr "" msgid "Select Node(s) to Import" msgstr "" +#: editor/editor_sub_scene.cpp editor/project_manager.cpp +msgid "Browse" +msgstr "Разглеждане" + #: editor/editor_sub_scene.cpp msgid "Scene Path:" msgstr "Път на Ñцената:" @@ -3018,6 +3319,11 @@ msgid "SSL Handshake Error" msgstr "" #: editor/export_template_manager.cpp +#, fuzzy +msgid "Uncompressing Android Build Sources" +msgstr "Разархивиране на активи" + +#: editor/export_template_manager.cpp msgid "Current Version:" msgstr "" @@ -3036,7 +3342,7 @@ msgstr "" #: editor/export_template_manager.cpp #, fuzzy -msgid "Select template file" +msgid "Select Template File" msgstr "Избиране на вÑичко" #: editor/export_template_manager.cpp @@ -3097,7 +3403,7 @@ msgid "No name provided." msgstr "" #: editor/filesystem_dock.cpp -msgid "Provided name contains invalid characters" +msgid "Provided name contains invalid characters." msgstr "" #: editor/filesystem_dock.cpp @@ -3128,7 +3434,12 @@ msgstr "" #: editor/filesystem_dock.cpp #, fuzzy -msgid "Open Scene(s)" +msgid "New Inherited Scene" +msgstr "Ðов Ñкрипт" + +#: editor/filesystem_dock.cpp +#, fuzzy +msgid "Open Scenes" msgstr "ОтварÑне на Ñцена" #: editor/filesystem_dock.cpp @@ -3137,12 +3448,12 @@ msgstr "" #: editor/filesystem_dock.cpp #, fuzzy -msgid "Add to favorites" +msgid "Add to Favorites" msgstr "Любими:" #: editor/filesystem_dock.cpp #, fuzzy -msgid "Remove from favorites" +msgid "Remove from Favorites" msgstr "Премахни Ð’Ñички Breakpoint-ове" #: editor/filesystem_dock.cpp @@ -3175,11 +3486,13 @@ msgstr "Ðов Ñкрипт" msgid "New Resource..." msgstr "Ðова папка..." -#: editor/filesystem_dock.cpp editor/script_editor_debugger.cpp +#: editor/filesystem_dock.cpp editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_editor_debugger.cpp msgid "Expand All" msgstr "" -#: editor/filesystem_dock.cpp editor/script_editor_debugger.cpp +#: editor/filesystem_dock.cpp editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_editor_debugger.cpp #, fuzzy msgid "Collapse All" msgstr "ЗатварÑне на вÑичко" @@ -3192,12 +3505,14 @@ msgid "Rename" msgstr "" #: editor/filesystem_dock.cpp -msgid "Previous Directory" -msgstr "" +#, fuzzy +msgid "Previous Folder/File" +msgstr "Предишен подпрозорец" #: editor/filesystem_dock.cpp -msgid "Next Directory" -msgstr "" +#, fuzzy +msgid "Next Folder/File" +msgstr "Създаване на папка" #: editor/filesystem_dock.cpp msgid "Re-Scan Filesystem" @@ -3205,7 +3520,7 @@ msgstr "" #: editor/filesystem_dock.cpp #, fuzzy -msgid "Toggle split mode" +msgid "Toggle Split Mode" msgstr "Покажи Любими" #: editor/filesystem_dock.cpp @@ -3235,7 +3550,7 @@ msgstr "" msgid "Create Script" msgstr "" -#: editor/find_in_files.cpp +#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp #, fuzzy msgid "Find in Files" msgstr "Ðамери във файлове" @@ -3255,6 +3570,12 @@ msgstr "Папка: " msgid "Filters:" msgstr "ПоÑтавÑне на възелите" +#: editor/find_in_files.cpp +msgid "" +"Include the files with the following extensions. Add or remove them in " +"ProjectSettings." +msgstr "" + #: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp msgid "Find..." @@ -3725,8 +4046,9 @@ msgid "Open Animation Node" msgstr "Отвори Ðнимационен Възел" #: editor/plugins/animation_blend_space_2d_editor.cpp -msgid "Triangle already exists" -msgstr "" +#, fuzzy +msgid "Triangle already exists." +msgstr "Група Ñ Ñ‚Ð¾Ð²Ð° име вече ÑъщеÑтвува." #: editor/plugins/animation_blend_space_2d_editor.cpp #, fuzzy @@ -3806,7 +4128,6 @@ msgid "Node Moved" msgstr "Режим на ПремеÑтване" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Unable to connect, port may be in use or connection may be invalid." msgstr "" @@ -3882,7 +4203,7 @@ msgstr "Файл:" #: editor/plugins/animation_blend_tree_editor_plugin.cpp #, fuzzy -msgid "Enable filtering" +msgid "Enable Filtering" msgstr "Позволи филтриране" #: editor/plugins/animation_player_editor_plugin.cpp @@ -3998,10 +4319,6 @@ msgid "Animation" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "New" -msgstr "" - -#: editor/plugins/animation_player_editor_plugin.cpp #, fuzzy msgid "Edit Transitions..." msgstr "Преходи" @@ -4019,11 +4336,11 @@ msgid "Autoplay on Load" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Onion Skinning" +msgid "Enable Onion Skinning" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Enable Onion Skinning" +msgid "Onion Skinning Options" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp @@ -4581,13 +4898,19 @@ msgid "Move CanvasItem" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"Children of containers have their anchors and margins values overridden by " +"their parent." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Presets for the anchors and margins values of a Control node." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "" -"Children of containers have their anchors and margins values overridden by " -"their parent." +"When active, moving Control nodes changes their anchors instead of their " +"margins." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4603,10 +4926,51 @@ msgid "Change Anchors" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Lock Selected" +msgstr "Изберете метод" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Unlock Selected" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Group Selected" +msgstr "Ðова Ñцена" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Ungroup Selected" +msgstr "Ðова Ñцена" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Paste Pose" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Create Custom Bone(s) from Node(s)" +msgstr "Възпроизвеждане на Ñцена по избор" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Clear Bones" +msgstr "Възпроизвеждане на Ñцена по избор" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Make IK Chain" +msgstr "Ðаправи IK Връзка" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Clear IK Chain" +msgstr "ИзчиÑти IK Връзка" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "" "Warning: Children of a container get their position and size determined only " "by their parent." @@ -4682,7 +5046,7 @@ msgid "Snapping Options" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to grid" +msgid "Snap to Grid" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4703,32 +5067,35 @@ msgid "Use Pixel Snap" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Smart snapping" +msgid "Smart Snapping" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to parent" +msgid "Snap to Parent" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node anchor" +msgid "Snap to Node Anchor" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node sides" -msgstr "" +#, fuzzy +msgid "Snap to Node Sides" +msgstr "Избиране на вÑичко" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node center" +msgid "Snap to Node Center" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to other nodes" -msgstr "" +#, fuzzy +msgid "Snap to Other Nodes" +msgstr "ПоÑтавÑне на възелите" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to guides" -msgstr "" +#, fuzzy +msgid "Snap to Guides" +msgstr "Избиране на вÑичко" #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp @@ -4741,11 +5108,13 @@ msgid "Unlock the selected object (can be moved)." 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 "Гарантирай че децата на този обект нÑма да могат да бъдат Ñелектирани." #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Restores the object's children's ability to be selected." msgstr "Възвръщане на ÑпоÑобноÑтта да Ñе Ñелектират децата на обекта." @@ -4759,14 +5128,6 @@ msgid "Show Bones" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Make IK Chain" -msgstr "Ðаправи IK Връзка" - -#: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Clear IK Chain" -msgstr "ИзчиÑти IK Връзка" - -#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Make Custom Bone(s) from Node(s)" msgstr "" @@ -4820,7 +5181,7 @@ msgid "Frame Selection" msgstr "Покажи СелекциÑта (вмеÑти в Ñ†ÐµÐ»Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†)" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Layout" +msgid "Preview Canvas Scale" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4872,6 +5233,11 @@ msgid "Divide grid step by 2" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Pan View" +msgstr "Изглед Отзад." + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Add %s" msgstr "Добави %s" @@ -4894,7 +5260,7 @@ msgid "Error instancing scene from %s" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Change default type" +msgid "Change Default Type" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4981,19 +5347,19 @@ msgid "Create Emission Points From Node" msgstr "" #: editor/plugins/curve_editor_plugin.cpp -msgid "Flat0" +msgid "Flat 0" msgstr "" #: editor/plugins/curve_editor_plugin.cpp -msgid "Flat1" +msgid "Flat 1" msgstr "" -#: editor/plugins/curve_editor_plugin.cpp -msgid "Ease in" +#: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp +msgid "Ease In" msgstr "" -#: editor/plugins/curve_editor_plugin.cpp -msgid "Ease out" +#: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp +msgid "Ease Out" msgstr "" #: editor/plugins/curve_editor_plugin.cpp @@ -5013,24 +5379,27 @@ msgid "Load Curve Preset" msgstr "" #: editor/plugins/curve_editor_plugin.cpp -msgid "Add point" -msgstr "" +#, fuzzy +msgid "Add Point" +msgstr "Добави Възел..." #: editor/plugins/curve_editor_plugin.cpp -msgid "Remove point" -msgstr "" +#, fuzzy +msgid "Remove Point" +msgstr "LMB: ПремеÑти Точка." #: editor/plugins/curve_editor_plugin.cpp #, fuzzy -msgid "Left linear" +msgid "Left Linear" msgstr "Линейно" #: editor/plugins/curve_editor_plugin.cpp -msgid "Right linear" -msgstr "" +#, fuzzy +msgid "Right Linear" +msgstr "Изглед ОтдÑÑно." #: editor/plugins/curve_editor_plugin.cpp -msgid "Load preset" +msgid "Load Preset" msgstr "" #: editor/plugins/curve_editor_plugin.cpp @@ -5086,14 +5455,19 @@ msgid "This doesn't work on scene root!" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Trimesh Shape" +msgid "Create Trimesh Static Shape" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Shape" +msgid "Failed creating shapes!" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp +#, fuzzy +msgid "Create Convex Shape(s)" +msgstr "Създай нови възли." + +#: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Navigation Mesh" msgstr "" @@ -5143,16 +5517,13 @@ msgid "Create Trimesh Static Body" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Static Body" -msgstr "" - -#: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Trimesh Collision Sibling" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Collision Sibling" -msgstr "" +#, fuzzy +msgid "Create Convex Collision Sibling(s)" +msgstr "Създаване на папка" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Outline Mesh..." @@ -5305,20 +5676,20 @@ msgid "Create Navigation Polygon" msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp -msgid "Generating Visibility Rect" +#: editor/plugins/particles_editor_plugin.cpp +msgid "Convert to CPUParticles" msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp -msgid "Generate Visibility Rect" +msgid "Generating Visibility Rect" msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp -msgid "Can only set point into a ParticlesMaterial process material" +msgid "Generate Visibility Rect" msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp -#: editor/plugins/particles_editor_plugin.cpp -msgid "Convert to CPUParticles" +msgid "Can only set point into a ParticlesMaterial process material" msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp @@ -5460,7 +5831,7 @@ msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp editor/plugins/theme_editor_plugin.cpp -#: editor/project_export.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_export.cpp msgid "Options" msgstr "" @@ -5511,8 +5882,9 @@ msgid "Split Segment (in curve)" msgstr "" #: editor/plugins/physical_bone_plugin.cpp -msgid "Move joint" -msgstr "" +#, fuzzy +msgid "Move Joint" +msgstr "LMB: ПремеÑти Точка." #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "" @@ -5754,7 +6126,6 @@ msgid "Open in Editor" msgstr "" #: editor/plugins/resource_preloader_editor_plugin.cpp -#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Load Resource" msgstr "" @@ -5848,6 +6219,11 @@ msgid "%s Class Reference" msgstr "" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp +msgid "Find Next" +msgstr "Ðамери Ðапред" + +#: editor/plugins/script_editor_plugin.cpp msgid "Toggle alphabetical sorting of the method list." msgstr "" @@ -5932,10 +6308,6 @@ msgstr "Затвори ДокументациÑта" msgid "Close All" msgstr "ЗатварÑне на вÑичко" -#: editor/plugins/script_editor_plugin.cpp -msgid "Close Other Tabs" -msgstr "" - #: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp msgid "Run" msgstr "ПуÑкане" @@ -5945,11 +6317,6 @@ msgstr "ПуÑкане" msgid "Toggle Scripts Panel" msgstr "ВидимоÑÑ‚ на Панела ÑÑŠÑ Ð¡ÐºÑ€Ð¸Ð¿Ñ‚Ð¾Ð²Ðµ" -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/script_text_editor.cpp -msgid "Find Next" -msgstr "Ðамери Ðапред" - #: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp msgid "Step Over" msgstr "" @@ -5976,7 +6343,8 @@ msgid "Debug with External Editor" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Open Godot online documentation" +#, fuzzy +msgid "Open Godot online documentation." msgstr "Отвори документациÑта на Godot онлайн" #: editor/plugins/script_editor_plugin.cpp @@ -5984,7 +6352,7 @@ msgid "Request Docs" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Help improve the Godot documentation by giving feedback" +msgid "Help improve the Godot documentation by giving feedback." msgstr "" #: editor/plugins/script_editor_plugin.cpp @@ -6012,10 +6380,12 @@ msgstr "" "Кое дейÑтвие трÑбва да Ñе предприеме?:" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp msgid "Reload" msgstr "Презареди" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp msgid "Resave" msgstr "Презапиши" @@ -6029,6 +6399,29 @@ msgid "Search Results" msgstr "ТърÑене" #: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Connections to method:" +msgstr "Свързване..." + +#: editor/plugins/script_text_editor.cpp +msgid "Source" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Signal" +msgstr "ÐаÑтройки на редактора" + +#: editor/plugins/script_text_editor.cpp +msgid "Target" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "" +"Missing connected method '%s' for signal '%s' from node '%s' to node '%s'." +msgstr "" + +#: editor/plugins/script_text_editor.cpp msgid "Line" msgstr "Ред" @@ -6041,10 +6434,6 @@ msgstr "" msgid "Go to Function" msgstr "Отиди на Ред" -#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp -msgid "Standard" -msgstr "" - #: editor/plugins/script_text_editor.cpp msgid "Only resources from filesystem can be dropped." msgstr "" @@ -6077,6 +6466,11 @@ msgstr "Ð’ÑÑка дума Ñ Ð“Ð»Ð°Ð²Ð½Ð° буква" msgid "Syntax Highlighter" msgstr "" +#: editor/plugins/script_text_editor.cpp +#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp +msgid "Bookmarks" +msgstr "" + #: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" @@ -6104,6 +6498,26 @@ msgid "Toggle Comment" msgstr "Вкарай Коментар" #: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Toggle Bookmark" +msgstr "Добави Breakpoint" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Go to Next Bookmark" +msgstr "Отиди на ÑÐ»ÐµÐ´Ð²Ð°Ñ‰Ð¸Ñ Breakpoint" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Go to Previous Bookmark" +msgstr "Отиди на ÐŸÑ€ÐµÐ´Ð¸ÑˆÐ½Ð¸Ñ Breakpoint" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Remove All Bookmarks" +msgstr "Премахни Ð’Ñички Breakpoint-ове" + +#: editor/plugins/script_text_editor.cpp msgid "Fold/Unfold Line" msgstr "Разтвори/Събери Реда" @@ -6182,6 +6596,15 @@ msgid "Contextual Help" msgstr "" #: editor/plugins/shader_editor_plugin.cpp +#, fuzzy +msgid "" +"This shader has been modified on on disk.\n" +"What action should be taken?" +msgstr "" +"Следните файлове Ñа по-нови на диÑка.\n" +"Кое дейÑтвие трÑбва да Ñе предприеме?:" + +#: editor/plugins/shader_editor_plugin.cpp msgid "Shader" msgstr "" @@ -6524,7 +6947,7 @@ msgid "Right View" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Switch Perspective/Orthogonal view" +msgid "Switch Perspective/Orthogonal View" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp @@ -6564,11 +6987,12 @@ msgid "Toggle Freelook" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Transform" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Snap object to floor" +msgid "Snap Object to Floor" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp @@ -6713,23 +7137,11 @@ msgid "Invalid geometry, can't replace by mesh." msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Invalid geometry, can't create polygon." -msgstr "" - -#: editor/plugins/sprite_editor_plugin.cpp -msgid "Invalid geometry, can't create collision polygon." -msgstr "" - -#: editor/plugins/sprite_editor_plugin.cpp -msgid "Invalid geometry, can't create light occluder." -msgstr "" - -#: editor/plugins/sprite_editor_plugin.cpp -msgid "Sprite" +msgid "Convert to Mesh2D" msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Convert to Mesh2D" +msgid "Invalid geometry, can't create polygon." msgstr "" #: editor/plugins/sprite_editor_plugin.cpp @@ -6738,15 +7150,27 @@ msgid "Convert to Polygon2D" msgstr "ПремеÑтване на Полигон" #: editor/plugins/sprite_editor_plugin.cpp +msgid "Invalid geometry, can't create collision polygon." +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp #, fuzzy msgid "Create CollisionPolygon2D Sibling" msgstr "Създаване на папка" #: editor/plugins/sprite_editor_plugin.cpp +msgid "Invalid geometry, can't create light occluder." +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp msgid "Create LightOccluder2D Sibling" msgstr "" #: editor/plugins/sprite_editor_plugin.cpp +msgid "Sprite" +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp msgid "Simplification: " msgstr "" @@ -6765,7 +7189,12 @@ msgid "Settings:" msgstr "ÐаÑтройки" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "ERROR: Couldn't load frame resource!" +#, fuzzy +msgid "No Frames Selected" +msgstr "Покажи СелекциÑта (вмеÑти в Ñ†ÐµÐ»Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†)" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Add %d Frame(s)" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp @@ -6773,6 +7202,10 @@ msgid "Add Frame" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "ERROR: Couldn't load frame resource!" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Resource clipboard is empty or not a texture!" msgstr "" @@ -6816,6 +7249,15 @@ msgid "Animation Frames:" msgstr "Ðово Име на ÐнимациÑ:" #: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Add a Texture from File" +msgstr "ПремеÑтване на пътечката нагоре." + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Add Frames from a Sprite Sheet" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Insert Empty (Before)" msgstr "" @@ -6833,6 +7275,28 @@ msgid "Move (After)" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Select Frames" +msgstr "Режим на Селектиране" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Horizontal:" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Vertical:" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Select/Clear All Frames" +msgstr "Избиране на вÑичко" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Create Frames from Sprite Sheet" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "SpriteFrames" msgstr "" @@ -6898,14 +7362,15 @@ msgstr "" msgid "Remove All Items" msgstr "" -#: editor/plugins/theme_editor_plugin.cpp +#: editor/plugins/theme_editor_plugin.cpp editor/project_manager.cpp #, fuzzy msgid "Remove All" msgstr "ЗатварÑне на вÑичко" #: editor/plugins/theme_editor_plugin.cpp -msgid "Edit theme..." -msgstr "" +#, fuzzy +msgid "Edit Theme" +msgstr "Файл:" #: editor/plugins/theme_editor_plugin.cpp msgid "Theme editing menu." @@ -6932,18 +7397,25 @@ msgid "Create From Current Editor Theme" msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "CheckBox Radio1" -msgstr "" +#, fuzzy +msgid "Toggle Button" +msgstr "Средно копче" #: editor/plugins/theme_editor_plugin.cpp -msgid "CheckBox Radio2" -msgstr "" +#, fuzzy +msgid "Disabled Button" +msgstr "Средно копче" #: editor/plugins/theme_editor_plugin.cpp msgid "Item" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Disabled Item" +msgstr "Изключено" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Check Item" msgstr "" @@ -6960,6 +7432,22 @@ msgid "Checked Radio Item" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +msgid "Named Sep." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Submenu" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Item 1" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Item 2" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Has" msgstr "" @@ -6968,8 +7456,9 @@ msgid "Many" msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "Has,Many,Options" -msgstr "" +#, fuzzy +msgid "Disabled LineEdit" +msgstr "Изключено" #: editor/plugins/theme_editor_plugin.cpp msgid "Tab 1" @@ -6984,6 +7473,19 @@ msgid "Tab 3" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Editable Item" +msgstr "Промени Филтрите" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Subtree" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Has,Many,Options" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Data Type:" msgstr "" @@ -7016,6 +7518,7 @@ msgid "Fix Invalid Tiles" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp +#: modules/gridmap/grid_map_editor_plugin.cpp #, fuzzy msgid "Cut Selection" msgstr "Центрирай върху СелекциÑта" @@ -7058,39 +7561,49 @@ msgid "Mirror Y" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp +msgid "Disable Autotile" +msgstr "" + +#: editor/plugins/tile_map_editor_plugin.cpp +#, fuzzy +msgid "Enable Priority" +msgstr "Промени Филтрите" + +#: editor/plugins/tile_map_editor_plugin.cpp msgid "Paint Tile" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Pick Tile" +msgid "" +"Shift+RMB: Line Draw\n" +"Shift+Ctrl+RMB: Rectangle Paint" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy -msgid "Copy Selection" -msgstr "Ðова Ñцена" +msgid "Pick Tile" +msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp #, fuzzy -msgid "Rotate left" +msgid "Rotate Left" msgstr "Режим на Завъртане" #: editor/plugins/tile_map_editor_plugin.cpp #, fuzzy -msgid "Rotate right" +msgid "Rotate Right" msgstr "Завъртане на Полигон" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Flip horizontally" +msgid "Flip Horizontally" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Flip vertically" +msgid "Flip Vertically" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp #, fuzzy -msgid "Clear transform" +msgid "Clear Transform" msgstr "ИзнаÑÑне към платформа" #: editor/plugins/tile_set_editor_plugin.cpp @@ -7129,6 +7642,46 @@ msgid "Select the previous shape, subtile, or Tile." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Region Mode" +msgstr "Режим на Завъртане" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Collision Mode" +msgstr "Промени ÑъщеÑтвуващ полигон:" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Occlusion Mode" +msgstr "ПриÑтавки" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Navigation Mode" +msgstr "Ðнимационен Възел" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Bitmask Mode" +msgstr "Режим на Завъртане" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Priority Mode" +msgstr "Режим на изнаÑÑне:" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Icon Mode" +msgstr "Панорамен режим на ОтмеÑтване (на Ñ€Ð°Ð±Ð¾Ñ‚Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†)" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Z Index Mode" +msgstr "Панорамен режим на ОтмеÑтване (на Ñ€Ð°Ð±Ð¾Ñ‚Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†)" + +#: editor/plugins/tile_set_editor_plugin.cpp msgid "Copy bitmask." msgstr "" @@ -7218,6 +7771,7 @@ msgstr "Изтриване на анимациÑта?" msgid "" "LMB: Set bit on.\n" "RMB: Set bit off.\n" +"Shift+LMB: Set wildcard bit.\n" "Click on another Tile to edit it." msgstr "Избиране на текущата папка" @@ -7343,6 +7897,75 @@ msgid "TileSet" msgstr "Файл:" #: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add input +" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add output +" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar" +msgstr "Мащаб:" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector" +msgstr "ИнÑпектор" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Add input port" +msgstr "Любими:" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add output port" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change input port type" +msgstr "Промени Името на ÐнимациÑта:" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Change output port type" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change input port name" +msgstr "Промени Името на ÐнимациÑта:" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Change output port name" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Remove input port" +msgstr "ЗатварÑне на вÑичко" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Remove output port" +msgstr "ВнаÑÑне на текÑтури" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Set expression" +msgstr "Двуизмерна текÑтура" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Resize VisualShader node" +msgstr "ПоÑтавÑне на възелите" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Set Uniform Name" msgstr "" @@ -7382,6 +8005,846 @@ msgid "Light" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Create Shader Node" +msgstr "Създай Възел" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Color function." +msgstr "Отиди на Ред" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Color operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Grayscale function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts HSV vector to RGB equivalent." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts RGB vector to HSV equivalent." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Sepia function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Burn operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Darken operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Difference operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Dodge operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "HardLight operator" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Lighten operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Overlay operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Screen operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "SoftLight operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Color constant." +msgstr "ПоÑтоÑнно" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Color uniform." +msgstr "ИзнаÑÑне към платформа" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns an associated vector if the provided scalars are equal, greater or " +"less." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns an associated vector if the provided boolean value is true or false." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'camera' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'inv_camera' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'inv_projection' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'normal' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'projection' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'time' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'viewport_size' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'world' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'texture_pixel_size' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Input parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'binormal' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'fragcoord' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_coord' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_uv' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'side' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'tangent' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv2' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'vertex' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'view' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'albedo' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'attenuation' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'diffuse' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_color' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'roughness' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'specular' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'transmission' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'modelview' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_size' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'tangent' input parameter for vertex and fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_pass' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_coord' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_pixel_size' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_uv' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_alpha' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_height' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_uv' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_vec' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'normal' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'shadow_color' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'extra' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'projection' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'vertex' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'world' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'active' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'custom' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'custom_alpha' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'delta' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'emission_transform' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'index' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'lifetime' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'restart' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'time' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'transform' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'velocity' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Scalar function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Scalar operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "E constant (2.718282). Represents the base of the natural logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Epsilon constant (0.00001). Smallest possible scalar number." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Phi constant (1.618034). Golden ratio." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi/4 constant (0.785398) or 45 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi/2 constant (1.570796) or 90 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi constant (3.141593) or 180 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Tau constant (6.283185) or 360 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Sqrt2 constant (1.414214). Square root of 2." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the absolute value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-tangent of the parameters." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Finds the nearest integer that is greater than or equal to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Constrains a value to lie between two further values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts a quantity in radians to degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-e Exponential." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-2 Exponential." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Finds the nearest integer less than or equal to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Computes the fractional part of the argument." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the inverse of the square root of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Natural logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-2 logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the greater of two values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the lesser of two values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Linear interpolation between two scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the opposite value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 - scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns the value of the first parameter raised to the power of the second." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts a quantity in degrees to radians." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 / scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the nearest integer to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the nearest even integer to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Clamps the value between 0.0 and 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Extracts the sign of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the square root of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( scalar(edge0), scalar(edge1), scalar(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if x is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( scalar(edge), scalar(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the truncated value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Adds scalar to scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Divides scalar by scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies scalar by scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the remainder of the two scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Subtracts scalar from scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Scalar constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar uniform." +msgstr "ИзнаÑÑне към платформа" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Perform the cubic texture lookup." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Perform the texture lookup." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Cubic texture uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "2D texture uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Transform function." +msgstr "Създаване на папка" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) Calculate the outer product of a pair of vectors.\n" +"\n" +"OuterProduct treats the first parameter 'c' as a column vector (matrix with " +"one column) and the second parameter 'r' as a row vector (matrix with one " +"row) and does a linear algebraic matrix multiply 'c * r', yielding a matrix " +"whose number of rows is the number of components in 'c' and whose number of " +"columns is the number of components in 'r'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Composes transform from four vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Decomposes transform to four vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the determinant of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the inverse of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the transpose of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies transform by transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies vector by transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Transform constant." +msgstr "Създаване на папка" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Transform uniform." +msgstr "Създаване на папка" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector function." +msgstr "Отиди на Ред" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Composes vector from three scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Decomposes vector to three scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the cross product of two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the distance between two points." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the dot product of two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns a vector that points in the same direction as a reference vector. " +"The function has three vector parameters : N, the vector to orient, I, the " +"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 "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the length of a vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Linear interpolation between two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the normalize product of vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 - vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 / vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns a vector that points in the direction of reflection ( a : incident " +"vector, b : normal vector )." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns a vector that points in the direction of refraction." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( vector(edge0), vector(edge1), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if 'x' is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( scalar(edge0), scalar(edge1), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if 'x' is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( vector(edge), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( scalar(edge), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Adds vector to vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Divides vector by vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies vector by vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the remainder of the two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Subtracts vector from vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Custom Godot Shader Language expression, with custom amount of input and " +"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 "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns falloff based on the dot product of surface normal and view " +"direction of camera (pass associated inputs to it)." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) (Fragment/Light mode only) Scalar derivative function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) (Fragment/Light mode only) Vector derivative function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Derivative in 'x' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Derivative in 'x' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Derivative in 'y' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Derivative in 'y' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Sum of absolute derivative " +"in 'x' and 'y'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Sum of absolute derivative " +"in 'x' and 'y'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "VisualShader" msgstr "" @@ -7579,6 +9042,10 @@ msgid "Directory already contains a Godot project." msgstr "" #: editor/project_manager.cpp +msgid "New Game Project" +msgstr "" + +#: editor/project_manager.cpp msgid "Imported Project" msgstr "ВнеÑен проект" @@ -7628,10 +9095,6 @@ msgid "Rename Project" msgstr "Ðов проект" #: editor/project_manager.cpp -msgid "New Game Project" -msgstr "" - -#: editor/project_manager.cpp msgid "Import Existing Project" msgstr "ВнаÑÑне на ÑъщеÑтвуващ проект" @@ -7663,11 +9126,6 @@ msgid "Project Name:" msgstr "Име:" #: editor/project_manager.cpp -#, fuzzy -msgid "Create folder" -msgstr "Създаване на папка" - -#: editor/project_manager.cpp msgid "Project Path:" msgstr "Път:" @@ -7677,10 +9135,6 @@ msgid "Project Installation Path:" msgstr "Път:" #: editor/project_manager.cpp -msgid "Browse" -msgstr "Разглеждане" - -#: editor/project_manager.cpp msgid "Renderer:" msgstr "" @@ -7734,8 +9188,8 @@ msgid "" "\n" "If you proceed with opening it, it will be converted to Godot's current " "configuration file format.\n" -"Warning: You will not be able to open the project with previous versions of " -"the engine anymore." +"Warning: You won't be able to open the project with previous versions of the " +"engine anymore." msgstr "" #: editor/project_manager.cpp @@ -7746,8 +9200,8 @@ msgid "" "%s\n" "\n" "Do you want to convert it?\n" -"Warning: You will not be able to open the project with previous versions of " -"the engine anymore." +"Warning: You won't be able to open the project with previous versions of the " +"engine anymore." msgstr "" #: editor/project_manager.cpp @@ -7759,7 +9213,7 @@ msgstr "" #: editor/project_manager.cpp msgid "" "Can't run project: no main scene defined.\n" -"Please edit the project and set the main scene in \"Project Settings\" under " +"Please edit the project and set the main scene in the Project Settings under " "the \"Application\" category." msgstr "" @@ -7770,23 +9224,37 @@ msgid "" msgstr "" #: editor/project_manager.cpp -msgid "Are you sure to run more than one project?" +msgid "Are you sure to run %d projects at once?" +msgstr "" + +#: editor/project_manager.cpp +msgid "" +"Remove %d projects from the list?\n" +"The project folders' contents won't be modified." +msgstr "" + +#: editor/project_manager.cpp +msgid "" +"Remove this project from the list?\n" +"The project folder's contents won't be modified." msgstr "" #: editor/project_manager.cpp -msgid "Remove project from the list? (Folder contents will not be modified)" +msgid "" +"Remove all missing projects from the list? (Folders contents will not be " +"modified)" msgstr "" #: editor/project_manager.cpp msgid "" "Language changed.\n" -"The UI will update next time the editor or project manager starts." +"The interface will update after restarting the editor or project manager." msgstr "" #: editor/project_manager.cpp msgid "" -"You are about the scan %s folders for existing Godot projects. Do you " -"confirm?" +"Are you sure to scan %s folders for existing Godot projects?\n" +"This could take a while." msgstr "" #: editor/project_manager.cpp @@ -7810,6 +9278,11 @@ msgid "New Project" msgstr "Ðов проект" #: editor/project_manager.cpp +#, fuzzy +msgid "Remove Missing" +msgstr "ЗатварÑне на вÑичко" + +#: editor/project_manager.cpp msgid "Templates" msgstr "Шаблони" @@ -7828,8 +9301,8 @@ msgstr "Създаване на нов проект" #: editor/project_manager.cpp msgid "" -"You don't currently have any projects.\n" -"Would you like to explore the official example projects in the Asset Library?" +"You currently don't have any projects.\n" +"Would you like to explore official example projects in the Asset Library?" msgstr "" #: editor/project_settings_editor.cpp @@ -7855,8 +9328,9 @@ msgid "" msgstr "" #: editor/project_settings_editor.cpp -msgid "Action '%s' already exists!" -msgstr "" +#, fuzzy +msgid "An action with the name '%s' already exists." +msgstr "Вече ÑъщеÑтвува файл или папка Ñ Ñ‚Ð¾Ð²Ð° име." #: editor/project_settings_editor.cpp msgid "Rename Input Action Event" @@ -8014,10 +9488,6 @@ msgid "" msgstr "" #: editor/project_settings_editor.cpp -msgid "Already existing" -msgstr "" - -#: editor/project_settings_editor.cpp msgid "Add Input Action" msgstr "" @@ -8082,7 +9552,7 @@ msgid "Override For..." msgstr "" #: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp -msgid "Editor must be restarted for changes to take effect" +msgid "The editor must be restarted for changes to take effect." msgstr "" #: editor/project_settings_editor.cpp @@ -8143,12 +9613,14 @@ msgid "Locales Filter" msgstr "" #: editor/project_settings_editor.cpp -msgid "Show all locales" -msgstr "" +#, fuzzy +msgid "Show All Locales" +msgstr "Събери вÑички Редове" #: editor/project_settings_editor.cpp -msgid "Show only selected locales" -msgstr "" +#, fuzzy +msgid "Show Selected Locales Only" +msgstr "Само СелекциÑта" #: editor/project_settings_editor.cpp #, fuzzy @@ -8164,14 +9636,6 @@ msgid "AutoLoad" msgstr "" #: editor/property_editor.cpp -msgid "Ease In" -msgstr "" - -#: editor/property_editor.cpp -msgid "Ease Out" -msgstr "" - -#: editor/property_editor.cpp msgid "Zero" msgstr "" @@ -8247,7 +9711,7 @@ msgid "Suffix" msgstr "" #: editor/rename_dialog.cpp -msgid "Advanced options" +msgid "Advanced Options" msgstr "" #: editor/rename_dialog.cpp @@ -8509,8 +9973,8 @@ msgstr "" #: editor/scene_tree_dock.cpp #, fuzzy -msgid "Custom Node" -msgstr "ИзрÑзване на възелите" +msgid "Other Node" +msgstr "Избиране на вÑичко" #: editor/scene_tree_dock.cpp msgid "Can't operate on nodes from a foreign scene!" @@ -8553,7 +10017,7 @@ msgstr "" #: editor/scene_tree_dock.cpp #, fuzzy -msgid "Open documentation" +msgid "Open Documentation" msgstr "Отвори документациÑта на Godot онлайн" #: editor/scene_tree_dock.cpp @@ -8582,7 +10046,7 @@ msgstr "" msgid "Save Branch as Scene" msgstr "" -#: editor/scene_tree_dock.cpp +#: editor/scene_tree_dock.cpp editor/script_editor_debugger.cpp msgid "Copy Node Path" msgstr "" @@ -8627,6 +10091,21 @@ msgid "Toggle Visible" msgstr "" #: editor/scene_tree_editor.cpp +#, fuzzy +msgid "Unlock Node" +msgstr "Избиране на вÑичко" + +#: editor/scene_tree_editor.cpp +#, fuzzy +msgid "Button Group" +msgstr "Копче 7" + +#: editor/scene_tree_editor.cpp +#, fuzzy +msgid "(Connecting From)" +msgstr "Свързване..." + +#: editor/scene_tree_editor.cpp msgid "Node configuration warning:" msgstr "" @@ -8648,9 +10127,9 @@ msgid "" "Click to show groups dock." msgstr "" -#: editor/scene_tree_editor.cpp editor/script_create_dialog.cpp +#: editor/scene_tree_editor.cpp #, fuzzy -msgid "Open Script" +msgid "Open Script:" msgstr "Ðова Ñцена" #: editor/scene_tree_editor.cpp @@ -8696,75 +10175,80 @@ msgid "Select a Node" msgstr "" #: editor/script_create_dialog.cpp -#, fuzzy -msgid "Error loading template '%s'" -msgstr "Грешка при зареждането на шрифта." - -#: editor/script_create_dialog.cpp -#, fuzzy -msgid "Error - Could not create script in filesystem." -msgstr "ÐеуÑпешно Ñъздаване на папка." +msgid "Path is empty." +msgstr "" #: editor/script_create_dialog.cpp -#, fuzzy -msgid "Error loading script from %s" -msgstr "Грешка при зареждането на шрифта." +msgid "Filename is empty." +msgstr "" #: editor/script_create_dialog.cpp -msgid "N/A" +msgid "Path is not local." msgstr "" #: editor/script_create_dialog.cpp -msgid "Open Script/Choose Location" -msgstr "" +#, fuzzy +msgid "Invalid base path." +msgstr "Име:" #: editor/script_create_dialog.cpp -msgid "Path is empty" -msgstr "" +#, fuzzy +msgid "A directory with the same name exists." +msgstr "Вече ÑъщеÑтвува файл или папка Ñ Ñ‚Ð¾Ð²Ð° име." #: editor/script_create_dialog.cpp -msgid "Filename is empty" -msgstr "" +#, fuzzy +msgid "Invalid extension." +msgstr "ТрÑбва да Ñе използва правилно разширение." #: editor/script_create_dialog.cpp -msgid "Path is not local" +msgid "Wrong extension chosen." msgstr "" #: editor/script_create_dialog.cpp -msgid "Invalid base path" -msgstr "" +#, fuzzy +msgid "Error loading template '%s'" +msgstr "Грешка при зареждането на шрифта." #: editor/script_create_dialog.cpp -msgid "Directory of the same name exists" -msgstr "" +#, fuzzy +msgid "Error - Could not create script in filesystem." +msgstr "ÐеуÑпешно Ñъздаване на папка." #: editor/script_create_dialog.cpp #, fuzzy -msgid "File exists, will be reused" -msgstr "Файлът ÑъщеÑтвува. ИÑкате ли да го презапишете?" +msgid "Error loading script from %s" +msgstr "Грешка при зареждането на шрифта." #: editor/script_create_dialog.cpp -msgid "Invalid extension" +msgid "N/A" msgstr "" #: editor/script_create_dialog.cpp -msgid "Wrong extension chosen" +msgid "Open Script / Choose Location" msgstr "" #: editor/script_create_dialog.cpp -msgid "Invalid Path" -msgstr "" +#, fuzzy +msgid "Open Script" +msgstr "Ðова Ñцена" #: editor/script_create_dialog.cpp -msgid "Invalid class name" -msgstr "" +#, fuzzy +msgid "File exists, it will be reused." +msgstr "Файлът ÑъщеÑтвува. ИÑкате ли да го презапишете?" #: editor/script_create_dialog.cpp -msgid "Invalid inherited parent name or path" +#, fuzzy +msgid "Invalid class name." +msgstr "невалидно име на Група." + +#: editor/script_create_dialog.cpp +msgid "Invalid inherited parent name or path." msgstr "" #: editor/script_create_dialog.cpp -msgid "Script valid" +msgid "Script is valid." msgstr "" #: editor/script_create_dialog.cpp @@ -8772,15 +10256,16 @@ msgid "Allowed: a-z, A-Z, 0-9 and _" msgstr "" #: editor/script_create_dialog.cpp -msgid "Built-in script (into scene file)" +msgid "Built-in script (into scene file)." msgstr "" #: editor/script_create_dialog.cpp -msgid "Create new script file" +#, fuzzy +msgid "Will create a new script file." msgstr "Създаване на нов Ñкрипт" #: editor/script_create_dialog.cpp -msgid "Load existing script file" +msgid "Will load an existing script file." msgstr "" #: editor/script_create_dialog.cpp @@ -8914,6 +10399,10 @@ msgstr "" msgid "Set From Tree" msgstr "" +#: editor/script_editor_debugger.cpp +msgid "Export measures as CSV" +msgstr "" + #: editor/settings_config_dialog.cpp msgid "Erase Shortcut" msgstr "" @@ -9047,6 +10536,14 @@ msgid "GDNativeLibrary" msgstr "ИзнаÑÑне на библиотеката" #: modules/gdnative/gdnative_library_singleton_editor.cpp +msgid "Enabled GDNative Singleton" +msgstr "" + +#: modules/gdnative/gdnative_library_singleton_editor.cpp +msgid "Disabled GDNative Singleton" +msgstr "" + +#: modules/gdnative/gdnative_library_singleton_editor.cpp #, fuzzy msgid "Library" msgstr "ИзнаÑÑне на библиотеката" @@ -9145,8 +10642,9 @@ msgid "GridMap Fill Selection" msgstr "ÐаÑтройки" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "GridMap Duplicate Selection" -msgstr "" +#, fuzzy +msgid "GridMap Paste Selection" +msgstr "ÐаÑтройки" #: modules/gridmap/grid_map_editor_plugin.cpp #, fuzzy @@ -9216,20 +10714,6 @@ msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp #, fuzzy -msgid "Create Area" -msgstr "Създаване" - -#: modules/gridmap/grid_map_editor_plugin.cpp -#, fuzzy -msgid "Create Exterior Connector" -msgstr "Създаване на нов проект" - -#: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Erase Area" -msgstr "" - -#: modules/gridmap/grid_map_editor_plugin.cpp -#, fuzzy msgid "Clear Selection" msgstr "Ðова Ñцена" @@ -9591,15 +11075,7 @@ msgid "Available Nodes:" msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Select or create a function to edit graph" -msgstr "" - -#: modules/visual_script/visual_script_editor.cpp -msgid "Edit Signal Arguments:" -msgstr "" - -#: modules/visual_script/visual_script_editor.cpp -msgid "Edit Variable:" +msgid "Select or create a function to edit its graph." msgstr "" #: modules/visual_script/visual_script_editor.cpp @@ -9731,6 +11207,19 @@ msgid "Debug keystore not configured in the Editor Settings nor in the preset." msgstr "" #: platform/android/export/export.cpp +msgid "Custom build requires a valid Android SDK path in Editor Settings." +msgstr "" + +#: platform/android/export/export.cpp +msgid "Invalid Android SDK path for custom build in Editor Settings." +msgstr "" + +#: platform/android/export/export.cpp +msgid "" +"Android project is not installed for compiling. Install from Editor menu." +msgstr "" + +#: platform/android/export/export.cpp msgid "Invalid public key for APK expansion." msgstr "" @@ -9739,6 +11228,34 @@ msgstr "" msgid "Invalid package name:" msgstr "невалидно име на Група." +#: platform/android/export/export.cpp +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 "" +"Android build version mismatch:\n" +" Template installed: %s\n" +" Godot Version: %s\n" +"Please reinstall Android build template from 'Project' menu." +msgstr "" + +#: platform/android/export/export.cpp +msgid "Building Android Project (gradle)" +msgstr "" + +#: 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 "" + +#: platform/android/export/export.cpp +msgid "No build apk generated at: " +msgstr "" + #: platform/iphone/export/export.cpp msgid "Identifier is missing." msgstr "" @@ -10023,27 +11540,27 @@ msgid "ARVRCamera must have an ARVROrigin node as its parent" msgstr "" #: scene/3d/arvr_nodes.cpp -msgid "ARVRController must have an ARVROrigin node as its parent" +msgid "ARVRController must have an ARVROrigin node as its parent." msgstr "" #: scene/3d/arvr_nodes.cpp msgid "" -"The controller id must not be 0 or this controller will not be bound to an " -"actual controller" +"The controller ID must not be 0 or this controller won't be bound to an " +"actual controller." msgstr "" #: scene/3d/arvr_nodes.cpp -msgid "ARVRAnchor must have an ARVROrigin node as its parent" +msgid "ARVRAnchor must have an ARVROrigin node as its parent." msgstr "" #: scene/3d/arvr_nodes.cpp msgid "" -"The anchor id must not be 0 or this anchor will not be bound to an actual " -"anchor" +"The anchor ID must not be 0 or this anchor won't be bound to an actual " +"anchor." msgstr "" #: scene/3d/arvr_nodes.cpp -msgid "ARVROrigin requires an ARVRCamera child node" +msgid "ARVROrigin requires an ARVRCamera child node." msgstr "" #: scene/3d/baked_lightmap.cpp @@ -10113,8 +11630,8 @@ msgstr "" #: scene/3d/cpu_particles.cpp msgid "" -"CPUParticles animation requires the usage of a SpatialMaterial with " -"\"Billboard Particles\" enabled." +"CPUParticles animation requires the usage of a SpatialMaterial whose " +"Billboard Mode is set to \"Particle Billboard\"." msgstr "" #: scene/3d/gi_probe.cpp @@ -10151,8 +11668,8 @@ msgstr "" #: scene/3d/particles.cpp msgid "" -"Particles animation requires the usage of a SpatialMaterial with \"Billboard " -"Particles\" enabled." +"Particles animation requires the usage of a SpatialMaterial whose Billboard " +"Mode is set to \"Particle Billboard\"." msgstr "" #: scene/3d/path.cpp @@ -10181,7 +11698,7 @@ msgstr "" "работи." #: scene/3d/soft_body.cpp -msgid "This body will be ignored until you set a mesh" +msgid "This body will be ignored until you set a mesh." msgstr "" #: scene/3d/soft_body.cpp @@ -10278,7 +11795,7 @@ msgstr "" msgid "" "Container by itself serves no purpose unless a script configures it's " "children placement behavior.\n" -"If you dont't intend to add a script, then please use a plain 'Control' node " +"If you don't intend to add a script, then please use a plain 'Control' node " "instead." msgstr "" @@ -10290,11 +11807,6 @@ msgstr "Тревога!" msgid "Please Confirm..." msgstr "МолÑ, потвърдете..." -#: scene/gui/file_dialog.cpp -#, fuzzy -msgid "Go to parent folder." -msgstr "Към горната папка" - #: scene/gui/popup.cpp msgid "" "Popups will hide by default unless you call popup() or any of the popup*() " @@ -10367,6 +11879,36 @@ msgstr "" msgid "Varyings can only be assigned in vertex function." msgstr "" +#: servers/visual/shader_language.cpp +msgid "Constants cannot be modified." +msgstr "" + +#~ msgid "Delete selected files?" +#~ msgstr "Изтрий избраните файлове?" + +#~ msgid "Go to parent folder" +#~ msgstr "Към горната папка" + +#, fuzzy +#~ msgid "Open Scene(s)" +#~ msgstr "ОтварÑне на Ñцена" + +#, fuzzy +#~ msgid "Create folder" +#~ msgstr "Създаване на папка" + +#, fuzzy +#~ msgid "Custom Node" +#~ msgstr "ИзрÑзване на възелите" + +#, fuzzy +#~ msgid "Create Area" +#~ msgstr "Създаване" + +#, fuzzy +#~ msgid "Create Exterior Connector" +#~ msgstr "Създаване на нов проект" + #~ msgid "Warnings:" #~ msgstr "ПредупреждениÑ:" @@ -10385,10 +11927,6 @@ msgstr "" #~ msgstr "PathFollow2D работи Ñамо когато е наÑледник на Path2D." #, fuzzy -#~ msgid "Remove Split" -#~ msgstr "ЗатварÑне на вÑичко" - -#, fuzzy #~ msgid "Connect two points to make a split." #~ msgstr "Свържи две точки, за да направиш разделение" @@ -10421,9 +11959,6 @@ msgstr "" #~ msgid "Class List:" #~ msgstr "СпиÑък на КлаÑове:" -#~ msgid "Search Classes" -#~ msgstr "ТърÑи КлаÑове" - #~ msgid "Public Methods" #~ msgstr "Публични методи" @@ -10446,9 +11981,6 @@ msgstr "" #~ msgid "Errors:" #~ msgstr "Грешки:" -#~ msgid "Disabled" -#~ msgstr "Изключено" - #~ msgid "Length (s):" #~ msgstr "Дължина (Ñек.):" @@ -10461,9 +11993,6 @@ msgstr "" #~ msgid "Fetching:" #~ msgstr "ИзтеглÑне:" -#~ msgid "Button 7" -#~ msgstr "Копче 7" - #~ msgid "Button 8" #~ msgstr "Копче 8" @@ -10474,10 +12003,6 @@ msgstr "" #~ msgstr "УÑловие" #, fuzzy -#~ msgid "Edit Signal" -#~ msgstr "ÐаÑтройки на редактора" - -#, fuzzy #~ msgid "Can't write file." #~ msgstr "ÐеуÑпешно Ñъздаване на папка." diff --git a/editor/translations/bn.po b/editor/translations/bn.po index 4b7dd76be6..83d7a9b527 100644 --- a/editor/translations/bn.po +++ b/editor/translations/bn.po @@ -78,6 +78,15 @@ msgstr "" msgid "Mirror" msgstr "পà§à¦°à¦¤à¦¿à¦¬à¦¿à¦®à§à¦¬ X" +#: editor/animation_bezier_editor.cpp editor/editor_profiler.cpp +msgid "Time:" +msgstr "সময়:" + +#: editor/animation_bezier_editor.cpp +#, fuzzy +msgid "Value:" +msgstr "মান" + #: editor/animation_bezier_editor.cpp #, fuzzy msgid "Insert Key Here" @@ -172,16 +181,21 @@ msgstr "অà§à¦¯à¦¾à¦¨à¦¿à¦®à§‡à¦¶à¦¨à§‡à¦° চালনা বনà§à¦§ কর #: editor/animation_track_editor.cpp #, fuzzy -msgid "Add Track" -msgstr "অà§à¦¯à¦¾à¦¨à¦¿à¦®à§‡à¦¶à¦¨ (Anim) টà§à¦°à§à¦¯à¦¾à¦• যোগ করà§à¦¨" +msgid "Animation length (frames)" +msgstr "অà§à¦¯à¦¾à¦¨à¦¿à¦®à§‡à¦¶à¦¨à§‡à¦° (Animation) দৈরà§à¦˜à§à¦¯ (সময় সেকেনà§à¦¡à§‡)।" #: editor/animation_track_editor.cpp #, fuzzy -msgid "Animation Length Time (seconds)" +msgid "Animation length (seconds)" msgstr "অà§à¦¯à¦¾à¦¨à¦¿à¦®à§‡à¦¶à¦¨à§‡à¦° (Animation) দৈরà§à¦˜à§à¦¯ (সময় সেকেনà§à¦¡à§‡)।" #: editor/animation_track_editor.cpp #, fuzzy +msgid "Add Track" +msgstr "অà§à¦¯à¦¾à¦¨à¦¿à¦®à§‡à¦¶à¦¨ (Anim) টà§à¦°à§à¦¯à¦¾à¦• যোগ করà§à¦¨" + +#: editor/animation_track_editor.cpp +#, fuzzy msgid "Animation Looping" msgstr "অà§à¦¯à¦¾à¦¨à¦¿à¦®à§‡à¦¶à¦¨ (Animation) জà§à¦® (zoom) করà§à¦¨à¥¤" @@ -319,11 +333,13 @@ msgid "Create %d NEW tracks and insert keys?" msgstr "%d à¦à¦° জনà§à¦¯ নতà§à¦¨ টà§à¦°à§à¦¯à¦¾à¦•/পথ-সমূহ তৈরি করতে à¦à¦¬à¦‚ চাবিসমূহ পà§à¦°à¦¬à§‡à¦¶ করাতে চান?" #: editor/animation_track_editor.cpp editor/create_dialog.cpp -#: editor/editor_audio_buses.cpp editor/editor_plugin_settings.cpp -#: editor/plugin_config_dialog.cpp +#: editor/editor_audio_buses.cpp editor/editor_feature_profile.cpp +#: editor/editor_plugin_settings.cpp editor/plugin_config_dialog.cpp #: editor/plugins/abstract_polygon_2d_editor.cpp #: editor/plugins/mesh_instance_editor_plugin.cpp -#: editor/plugins/particles_editor_plugin.cpp editor/script_create_dialog.cpp +#: editor/plugins/particles_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_create_dialog.cpp msgid "Create" msgstr "তৈরি করà§à¦¨" @@ -442,6 +458,23 @@ msgid "" msgstr "" #: editor/animation_track_editor.cpp +msgid "" +"This animation belongs to an imported scene, so changes to imported tracks " +"will not be saved.\n" +"\n" +"To enable the ability to add custom tracks, navigate to the scene's import " +"settings and set\n" +"\"Animation > Storage\" to \"Files\", enable \"Animation > Keep Custom Tracks" +"\", then re-import.\n" +"Alternatively, use an import preset that imports animations to separate " +"files." +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Warning: Editing imported animation" +msgstr "" + +#: editor/animation_track_editor.cpp msgid "Only show tracks from nodes selected in tree." msgstr "" @@ -581,7 +614,8 @@ msgstr "সà§à¦•েল/মাপের অনà§à¦ªà¦¾à¦¤:" msgid "Select tracks to copy:" msgstr "" -#: editor/animation_track_editor.cpp editor/editor_properties.cpp +#: editor/animation_track_editor.cpp editor/editor_log.cpp +#: editor/editor_properties.cpp #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp @@ -650,6 +684,11 @@ msgstr "সমসà§à¦¤à¦—à§à¦²à¦¿ পà§à¦°à¦¤à¦¿à¦¸à§à¦¥à¦¾à¦ªà¦¨ করà§à msgid "Selection Only" msgstr "শà§à¦§à§à¦®à¦¾à¦¤à§à¦° নিরà§à¦¬à¦¾à¦šà¦¿à¦¤à¦¸à¦®à§‚হ" +#: editor/code_editor.cpp editor/plugins/script_text_editor.cpp +#: editor/plugins/text_editor.cpp +msgid "Standard" +msgstr "" + #: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/texture_region_editor_plugin.cpp #: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp @@ -676,21 +715,39 @@ msgid "Line and column numbers." msgstr "" #: editor/connections_dialog.cpp -msgid "Method in target Node must be specified!" +#, fuzzy +msgid "Method in target node must be specified." msgstr "নিরà§à¦¦à§‡à¦¶à¦¿à¦¤ নোডের মেথড নিরà§à¦¦à¦¿à¦·à§à¦Ÿ করতে হবে!" #: editor/connections_dialog.cpp +#, fuzzy msgid "" -"Target method not found! Specify a valid method or attach a script to target " -"Node." +"Target method not found. Specify a valid method or attach a script to the " +"target node." msgstr "" "উদà§à¦¦à§‡à¦¶à§à¦¯à¦¿à¦¤ মেথড পাওয়া যায়নি! উদà§à¦¦à§‡à¦¶à§à¦¯à¦¿à¦¤ নোডে à¦à¦•টি কারà§à¦¯à¦•র মেথড নিরà§à¦¦à¦¿à¦·à§à¦Ÿ করà§à¦¨ অথবা " "à¦à¦•টি সà§à¦•à§à¦°à¦¿à¦ªà§à¦Ÿ ফাইল সংযà§à¦•à§à¦¤ করà§à¦¨à¥¤" #: editor/connections_dialog.cpp -msgid "Connect To Node:" +#, fuzzy +msgid "Connect to Node:" msgstr "নোডের সাথে সংযà§à¦•à§à¦¤ করà§à¦¨:" +#: editor/connections_dialog.cpp +#, fuzzy +msgid "Connect to Script:" +msgstr "নোডের সাথে সংযà§à¦•à§à¦¤ করà§à¦¨:" + +#: editor/connections_dialog.cpp +#, fuzzy +msgid "From Signal:" +msgstr "সিগনà§à¦¯à¦¾à¦²à¦¸/সংকেতসমূহ:" + +#: editor/connections_dialog.cpp +#, fuzzy +msgid "Scene does not contain any script." +msgstr "নোডে কোনো জà§à¦¯à¦¾à¦®à¦¿à¦¤à¦¿à¦• আকার নেই।" + #: editor/connections_dialog.cpp editor/editor_autoload_settings.cpp #: editor/groups_editor.cpp editor/plugins/item_list_editor_plugin.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_settings_editor.cpp @@ -698,10 +755,12 @@ msgid "Add" msgstr "সংযোজন করà§à¦¨" #: editor/connections_dialog.cpp editor/dependency_editor.cpp -#: editor/groups_editor.cpp editor/plugins/animation_player_editor_plugin.cpp +#: editor/editor_feature_profile.cpp editor/groups_editor.cpp +#: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp #: editor/plugins/resource_preloader_editor_plugin.cpp -#: editor/plugins/theme_editor_plugin.cpp editor/project_manager.cpp +#: editor/plugins/theme_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_manager.cpp #: editor/project_settings_editor.cpp msgid "Remove" msgstr "অপসারণ করà§à¦¨" @@ -715,21 +774,32 @@ msgid "Extra Call Arguments:" msgstr "ডাকযোগà§à¦¯ অতিরিকà§à¦¤ মান/আরà§à¦—à§à¦®à§‡à¦¨à§à¦Ÿ-সমূহ:" #: editor/connections_dialog.cpp -msgid "Path to Node:" -msgstr "নোডের পথ:" - -#: editor/connections_dialog.cpp -msgid "Make Function" -msgstr "নিরà§à¦®à¦¾à¦£ ফাংশন" +#, fuzzy +msgid "Advanced" +msgstr "অà§à¦¯à¦¾à¦¨à¦¿à¦®à§‡à¦¶à¦¨à§‡à¦° সিদà§à¦§à¦¾à¦¨à§à¦¤à¦¸à¦®à§‚হ" #: editor/connections_dialog.cpp msgid "Deferred" msgstr "বিলমà§à¦¬à¦¿à¦¤" #: editor/connections_dialog.cpp +msgid "" +"Defers the signal, storing it in a queue and only firing it at idle time." +msgstr "" + +#: editor/connections_dialog.cpp msgid "Oneshot" msgstr "ওয়ান-শট" +#: editor/connections_dialog.cpp +msgid "Disconnects the signal after its first emission." +msgstr "" + +#: editor/connections_dialog.cpp +#, fuzzy +msgid "Cannot connect signal" +msgstr "সংযোজক সংকেত/সিগনà§à¦¯à¦¾à¦²:" + #: editor/connections_dialog.cpp editor/dependency_editor.cpp #: editor/export_template_manager.cpp editor/groups_editor.cpp #: editor/plugins/animation_player_editor_plugin.cpp @@ -773,12 +843,12 @@ msgstr "সংযোগ বিচà§à¦›à¦¿à¦¨à§à¦¨ করà§à¦¨" #: editor/connections_dialog.cpp #, fuzzy -msgid "Connect Signal: " +msgid "Connect a Signal to a Method" msgstr "সংযোজক সংকেত/সিগনà§à¦¯à¦¾à¦²:" #: editor/connections_dialog.cpp #, fuzzy -msgid "Edit Connection: " +msgid "Edit Connection:" msgstr "সংযোগসমূহ সমà§à¦ªà¦¾à¦¦à¦¨ করà§à¦¨" #: editor/connections_dialog.cpp @@ -815,7 +885,6 @@ msgid "Change %s Type" msgstr "ধরণ পরিবরà§à¦¤à¦¨ করà§à¦¨" #: editor/create_dialog.cpp editor/project_settings_editor.cpp -#: modules/visual_script/visual_script_editor.cpp msgid "Change" msgstr "পরিবরà§à¦¤à¦¨ করà§à¦¨" @@ -847,7 +916,8 @@ msgid "Matches:" msgstr "মিলসমূহ:" #: editor/create_dialog.cpp editor/plugin_config_dialog.cpp -#: editor/plugins/asset_library_editor_plugin.cpp editor/property_selector.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/property_selector.cpp #: modules/visual_script/visual_script_property_selector.cpp msgid "Description:" msgstr "বরà§à¦£à¦¨à¦¾:" @@ -861,17 +931,19 @@ msgid "Dependencies For:" msgstr "à¦à¦° জনà§à¦¯ নিরà§à¦à¦°à¦¤à¦¾-সমূহ:" #: editor/dependency_editor.cpp +#, fuzzy msgid "" "Scene '%s' is currently being edited.\n" -"Changes will not take effect unless reloaded." +"Changes will only take effect when reloaded." msgstr "" "'%s' দৃশà§à¦¯à¦Ÿà¦¿ à¦à¦‡-মà§à¦¹à§‚রà§à¦¤à§‡ সমà§à¦ªà¦¾à¦¦à¦¿à¦¤ হচà§à¦›à§‡à¥¤\n" "পà§à¦¨à¦°à¦¾à§Ÿ-লোড (রিলোড) না করা পরà§à¦¯à¦¨à§à¦¤ পরিবরà§à¦¤à¦¨-সমূহ কারà§à¦¯à¦•র হবে না।" #: editor/dependency_editor.cpp +#, fuzzy msgid "" "Resource '%s' is in use.\n" -"Changes will take effect when reloaded." +"Changes will only take effect when reloaded." msgstr "" "'%s' রিসোরà§à¦¸à¦Ÿà¦¿ বà§à¦¯à¦¬à¦¹à§ƒà¦¤ হচà§à¦›à§‡à¥¤\n" "পà§à¦¨à¦°à¦¾à§Ÿ-লোড (রিলোড)-à¦à¦° সময় পরিবরà§à¦¤à¦¨à¦¸à¦®à§‚হ কারà§à¦¯à¦•র হবে।" @@ -969,21 +1041,14 @@ msgid "Permanently delete %d item(s)? (No undo!)" msgstr "%d -টি বসà§à¦¤à§(সমূহ) সà§à¦¥à¦¾à¦¯à¦¼à§€à¦à¦¾à¦¬à§‡ মà§à¦›à§‡ ফেলবেন? (অফেরৎযোগà§à¦¯!)" #: editor/dependency_editor.cpp -msgid "Owns" -msgstr "আয়তà§à¦¤à§‡" - -#: editor/dependency_editor.cpp -msgid "Resources Without Explicit Ownership:" -msgstr "সà§à¦ªà¦·à§à¦Ÿ মালিকানা বিহীন রিসোরà§à¦¸à¦¸à¦®à§‚হ:" +#, fuzzy +msgid "Show Dependencies" +msgstr "নিরà§à¦à¦°à¦¤à¦¾-সমূহ" #: editor/dependency_editor.cpp editor/editor_node.cpp msgid "Orphan Resource Explorer" msgstr "মালিকবিহীন রিসোরà§à¦¸à§‡à¦° অনà§à¦¸à¦¨à§à¦§à¦¾à¦¨à¦•ারী" -#: editor/dependency_editor.cpp -msgid "Delete selected files?" -msgstr "নিরà§à¦¬à¦¾à¦šà¦¿à¦¤ ফাইলসমূহ অপসারণ করবেন?" - #: editor/dependency_editor.cpp editor/editor_audio_buses.cpp #: editor/editor_file_dialog.cpp editor/editor_node.cpp #: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp @@ -992,6 +1057,14 @@ msgstr "নিরà§à¦¬à¦¾à¦šà¦¿à¦¤ ফাইলসমূহ অপসারণ msgid "Delete" msgstr "অপসারণ করà§à¦¨" +#: editor/dependency_editor.cpp +msgid "Owns" +msgstr "আয়তà§à¦¤à§‡" + +#: editor/dependency_editor.cpp +msgid "Resources Without Explicit Ownership:" +msgstr "সà§à¦ªà¦·à§à¦Ÿ মালিকানা বিহীন রিসোরà§à¦¸à¦¸à¦®à§‚হ:" + #: editor/dictionary_property_edit.cpp msgid "Change Dictionary Key" msgstr "ডিকশনারি কি পরিবরà§à¦¤à¦¨ করà§à¦¨" @@ -1106,7 +1179,7 @@ msgstr "পà§à¦¯à¦¾à¦•েজ ইনà§à¦¸à¦Ÿà¦² সমà§à¦ªà¦¨à§à¦¨ হয়ে msgid "Success!" msgstr "সমà§à¦ªà¦¨à§à¦¨ হয়েছে!" -#: editor/editor_asset_installer.cpp +#: editor/editor_asset_installer.cpp editor/editor_node.cpp #: editor/plugins/asset_library_editor_plugin.cpp msgid "Install" msgstr "ইনà§à¦¸à¦Ÿà¦²" @@ -1234,8 +1307,13 @@ msgid "Open Audio Bus Layout" msgstr "অডিও বাস লেআউট ওপেন করà§à¦¨" #: editor/editor_audio_buses.cpp -msgid "There is no 'res://default_bus_layout.tres' file." -msgstr "'res://default_bus_layout.tres' ফাইল খà§à¦à¦œà§‡ পাওয়া যায়নি।" +msgid "There is no '%s' file." +msgstr "" + +#: editor/editor_audio_buses.cpp editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Layout" +msgstr "লেআউট/নকশা সংরকà§à¦·à¦£ করà§à¦¨" #: editor/editor_audio_buses.cpp msgid "Invalid file, not an audio bus layout." @@ -1289,24 +1367,31 @@ msgid "Valid characters:" msgstr "গà§à¦°à¦¹à¦¨à¦¯à§‹à¦—à§à¦¯ অকà§à¦·à¦°à¦¸à¦®à§‚হ:" #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing engine class name." +#, fuzzy +msgid "Must not collide with an existing engine class name." msgstr "" "অগà§à¦°à¦¹à¦¨à¦¯à§‹à¦—à§à¦¯ নাম। নামটি অবশà§à¦¯à¦‡ ইঞà§à¦œà¦¿à¦¨à§‡ বিদà§à¦¯à¦®à¦¾à¦¨ কà§à¦²à¦¾à¦¸à§‡à¦° নামের সাথে পরমà§à¦ªà¦°à¦¬à¦¿à¦°à§‡à¦¾à¦§à§€ হতে " "পারবে না।" #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing buit-in type name." +#, fuzzy +msgid "Must not collide with an existing buit-in type name." msgstr "" "অগà§à¦°à¦¹à¦¨à¦¯à§‹à¦—à§à¦¯ নাম। নামটি অবশà§à¦¯à¦‡ বিদà§à¦¯à¦®à¦¾à¦¨ পূরà§à¦¬à¦¨à¦¿à¦°à§à¦®à¦¿à¦¤ ধরণের নামের সাথে পরমà§à¦ªà¦°à¦¬à¦¿à¦°à§‡à¦¾à¦§à§€ " "হতে পারবে না।" #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing global constant name." +#, fuzzy +msgid "Must not collide with an existing global constant name." msgstr "" "অগà§à¦°à¦¹à¦¨à¦¯à§‹à¦—à§à¦¯ নাম। নামটি অবশà§à¦¯à¦‡ বিদà§à¦¯à¦®à¦¾à¦¨ সারà§à¦¬à¦œà¦¨à§€à¦¨ ধà§à¦°à§à¦¬à¦•ের নামের সাথে পরমà§à¦ªà¦°à¦¬à¦¿à¦°à§‡à¦¾à¦§à§€ " "হতে পারবে না।" #: editor/editor_autoload_settings.cpp +msgid "Keyword cannot be used as an autoload name." +msgstr "" + +#: editor/editor_autoload_settings.cpp msgid "Autoload '%s' already exists!" msgstr "'%s' à¦à¦° AutoLoad ইতিমধà§à¦¯à§‡à¦‡ বিদà§à¦¯à¦®à¦¾à¦¨!" @@ -1334,11 +1419,12 @@ msgstr "সকà§à¦°à¦¿à¦¯à¦¼ করà§à¦¨" msgid "Rearrange Autoloads" msgstr "Autoload সমূহ পà§à¦¨à¦°à§à¦¬à¦¿à¦¨à§à¦¯à¦¸à§à¦¤ করà§à¦¨" -#: editor/editor_autoload_settings.cpp -msgid "Invalid Path." +#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp +#, fuzzy +msgid "Invalid path." msgstr "অকারà§à¦¯à¦•র পথ।" -#: editor/editor_autoload_settings.cpp +#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp msgid "File does not exist." msgstr "ফাইলটি বিদà§à¦¯à¦®à¦¾à¦¨ নয়।" @@ -1391,7 +1477,7 @@ msgstr "" #: editor/editor_dir_dialog.cpp #, fuzzy -msgid "Please select a base directory first" +msgid "Please select a base directory first." msgstr "পà§à¦°à¦¥à¦®à§‡ অনà§à¦—à§à¦°à¦¹ করে দৃশà§à¦¯à¦Ÿà¦¿ সংরকà§à¦·à¦£ করà§à¦¨à¥¤" #: editor/editor_dir_dialog.cpp @@ -1399,7 +1485,8 @@ msgid "Choose a Directory" msgstr "à¦à¦•টি সà§à¦¥à¦¾à¦¨ পছনà§à¦¦ করà§à¦¨" #: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp -#: editor/filesystem_dock.cpp scene/gui/file_dialog.cpp +#: editor/filesystem_dock.cpp editor/project_manager.cpp +#: scene/gui/file_dialog.cpp msgid "Create Folder" msgstr "ফোলà§à¦¡à¦¾à¦° তৈরি করà§à¦¨" @@ -1473,6 +1560,178 @@ msgstr "সà§à¦¬à¦¨à¦¿à¦°à§à¦®à¦¿à¦¤ রিলিস (release) পà§à¦¯à¦¾à¦• msgid "Template file not found:" msgstr "টেমপà§à¦²à§‡à¦Ÿ ফাইল পাওয়া যায়নি:\n" +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "3D Editor" +msgstr "সমà§à¦ªà¦¾à¦¦à¦¨ করà§à¦¨ (Edit)" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Script Editor" +msgstr "à¦à¦¡à¦¿à¦Ÿà¦°à§‡ খà§à¦²à§à¦¨" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Asset Library" +msgstr "লাইবà§à¦°à§‡à¦°à¦¿ à¦à¦•à§à¦¸à¦ªà§‹à¦°à§à¦Ÿ করà§à¦¨" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Scene Tree Editing" +msgstr "দৃশà§à¦¯à§‡à¦° শাখা (নোডসমূহ):" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Import Dock" +msgstr "ইমà§à¦ªà§‹à¦°à§à¦Ÿ" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Node Dock" +msgstr "মোড (Mode) সরান" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Filesystem Dock" +msgstr "ফাইলসিসà§à¦Ÿà§‡à¦®" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Erase profile '%s'? (no undo)" +msgstr "সমসà§à¦¤à¦—à§à¦²à¦¿ পà§à¦°à¦¤à¦¿à¦¸à§à¦¥à¦¾à¦ªà¦¨ করà§à¦¨" + +#: editor/editor_feature_profile.cpp +msgid "Profile must be a valid filename and must not contain '.'" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Profile with this name already exists." +msgstr "গà§à¦°à§à¦ªà§‡à¦° নাম ইতিমধà§à¦¯à§‡à¦‡ আছে!" + +#: editor/editor_feature_profile.cpp +msgid "(Editor Disabled, Properties Disabled)" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "(Properties Disabled)" +msgstr "পà§à¦°à§‹à¦ªà¦¾à¦°à§à¦Ÿà¦¿-সমূহ:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "(Editor Disabled)" +msgstr "অসমরà§à¦¥/অকà§à¦·à¦®" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Class Options:" +msgstr "বরà§à¦£à¦¨à¦¾:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enable Contextual Editor" +msgstr "à¦à¦¡à¦¿à¦Ÿà¦°à§‡ খà§à¦²à§à¦¨" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enabled Properties:" +msgstr "পà§à¦°à§‹à¦ªà¦¾à¦°à§à¦Ÿà¦¿-সমূহ:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enabled Features:" +msgstr "গঠনবিনà§à¦¯à¦¾à¦¸" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enabled Classes:" +msgstr "কà§à¦²à¦¾à¦¸à§‡à¦° অনà§à¦¸à¦¨à§à¦§à¦¾à¦¨ করà§à¦¨" + +#: editor/editor_feature_profile.cpp +msgid "File '%s' format is invalid, import aborted." +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "" +"Profile '%s' already exists. Remote it first before importing, import " +"aborted." +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Error saving profile to path: '%s'." +msgstr "ছবি লোডে সমসà§à¦¯à¦¾ হয়েছে:" + +#: editor/editor_feature_profile.cpp +msgid "Unset" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Current Profile" +msgstr "বরà§à¦¤à¦®à¦¾à¦¨ দৃশà§à¦¯" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Make Current" +msgstr "বরà§à¦¤à¦®à¦¾à¦¨:" + +#: editor/editor_feature_profile.cpp +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "New" +msgstr "নতà§à¦¨" + +#: editor/editor_feature_profile.cpp editor/editor_node.cpp +#: editor/plugins/asset_library_editor_plugin.cpp editor/project_manager.cpp +msgid "Import" +msgstr "ইমà§à¦ªà§‹à¦°à§à¦Ÿ" + +#: editor/editor_feature_profile.cpp editor/editor_node.cpp +#: editor/project_export.cpp +msgid "Export" +msgstr "à¦à¦•à§à¦¸à¦ªà§‹à¦°à§à¦Ÿ" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Available Profiles" +msgstr "উপসà§à¦¥à¦¿à¦¤ নোডসমূহ:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enabled Classes" +msgstr "কà§à¦²à¦¾à¦¸à§‡à¦° অনà§à¦¸à¦¨à§à¦§à¦¾à¦¨ করà§à¦¨" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Class Options" +msgstr "বরà§à¦£à¦¨à¦¾:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "New profile name:" +msgstr "নতà§à¦¨ নাম:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Erase Profile" +msgstr "TileMap মà§à¦›à§‡ ফেলà§à¦¨" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Import Profile(s)" +msgstr "পà§à¦°à¦•লà§à¦ª ইমà§à¦ªà§‹à¦°à§à¦Ÿ করা হয়েছে" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Export Profile" +msgstr "পà§à¦°à¦•লà§à¦ª à¦à¦•à§à¦¸à¦ªà§‹à¦°à§à¦Ÿ করà§à¦¨" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Manage Editor Feature Profiles" +msgstr "à¦à¦•à§à¦¸à¦ªà§‹à¦°à§à¦Ÿ টেমপà§à¦²à§‡à¦Ÿà¦¸à¦®à§‚হ লোড হচà§à¦›à§‡" + #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp #, fuzzy msgid "Select Current Folder" @@ -1496,8 +1755,8 @@ msgstr "পথ পà§à¦°à¦¤à¦¿à¦²à¦¿à¦ªà¦¿/কপি করà§à¦¨" msgid "Open in File Manager" msgstr "ফাইল-মà§à¦¯à¦¾à¦¨à§‡à¦œà¦¾à¦°à§‡ দেখà§à¦¨" -#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp -#: editor/project_manager.cpp +#: editor/editor_file_dialog.cpp editor/editor_node.cpp +#: editor/filesystem_dock.cpp editor/project_manager.cpp #, fuzzy msgid "Show in File Manager" msgstr "ফাইল-মà§à¦¯à¦¾à¦¨à§‡à¦œà¦¾à¦°à§‡ দেখà§à¦¨" @@ -1558,7 +1817,7 @@ msgstr "সামনের দিকে যান" msgid "Go Up" msgstr "উপরের দিকে যান" -#: editor/editor_file_dialog.cpp +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Toggle Hidden Files" msgstr "অদৃশà§à¦¯ ফাইলসমূহ অদলবদল/টগল করà§à¦¨" @@ -1592,9 +1851,9 @@ msgstr "পূরà§à¦¬à§‡à¦° টà§à¦¯à¦¾à¦¬" msgid "Next Folder" msgstr "ফোলà§à¦¡à¦¾à¦° তৈরি করà§à¦¨" -#: editor/editor_file_dialog.cpp +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp #, fuzzy -msgid "Go to parent folder" +msgid "Go to parent folder." msgstr "ফোলà§à¦¡à¦¾à¦° তৈরী করা সমà§à¦à¦¬ হয়নি।" #: editor/editor_file_dialog.cpp @@ -1602,6 +1861,11 @@ msgstr "ফোলà§à¦¡à¦¾à¦° তৈরী করা সমà§à¦à¦¬ হয়নঠmsgid "(Un)favorite current folder." msgstr "ফোলà§à¦¡à¦¾à¦° তৈরী করা সমà§à¦à¦¬ হয়নি।" +#: editor/editor_file_dialog.cpp +#, fuzzy +msgid "Toggle visibility of hidden files." +msgstr "অদৃশà§à¦¯ ফাইলসমূহ অদলবদল/টগল করà§à¦¨" + #: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp #, fuzzy msgid "View items as a grid of thumbnails." @@ -1618,6 +1882,7 @@ msgstr "পথ à¦à¦¬à¦‚ ফাইল:" #: editor/editor_file_dialog.cpp editor/plugins/sprite_editor_plugin.cpp #: editor/plugins/style_box_editor_plugin.cpp +#: editor/plugins/theme_editor_plugin.cpp msgid "Preview:" msgstr "পà§à¦°à¦¿à¦à¦¿à¦‰:" @@ -1634,6 +1899,12 @@ msgid "ScanSources" msgstr "উৎসসমূহ সà§à¦•à§à¦¯à¦¾à¦¨ করà§à¦¨" #: editor/editor_file_system.cpp +msgid "" +"There are multiple importers for different types pointing to file %s, import " +"aborted" +msgstr "" + +#: editor/editor_file_system.cpp #, fuzzy msgid "(Re)Importing Assets" msgstr "পà§à¦¨à¦°à¦¾à§Ÿ ইমà§à¦ªà§‹à¦°à§à¦Ÿ হচà§à¦›à§‡" @@ -1845,6 +2116,11 @@ msgstr "" msgid "Output:" msgstr " আউটপà§à¦Ÿ/ফলাফল:" +#: editor/editor_log.cpp editor/plugins/tile_map_editor_plugin.cpp +#, fuzzy +msgid "Copy Selection" +msgstr "নিরà§à¦¬à¦¾à¦šà¦¿à¦¤ সমূহ অপসারণ করà§à¦¨" + #: editor/editor_log.cpp editor/editor_profiler.cpp #: editor/editor_properties.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp @@ -2000,9 +2276,10 @@ msgstr "" "বিসà§à¦¤à¦¾à¦°à¦¿à¦¤ জানতে ডকà§à¦®à§‡à¦¨à§à¦Ÿà§‡à¦¶à¦¨à§‡à¦° সাহাযà§à¦¯ নিন।" #: editor/editor_node.cpp +#, fuzzy msgid "" "This resource belongs to a scene that was instanced or inherited.\n" -"Changes to it will not be kept when saving the current scene." +"Changes to it won't be kept when saving the current scene." msgstr "" "à¦à¦‡ রিসোরà§à¦¸à¦Ÿà¦¿ ইনà§à¦¸à¦Ÿà§à¦¯à¦¾à¦¨à§à¦¸à¦¡ অথবা ইনহেরিটেড সিন à¦à¦° অংশ।\n" "কারেনà§à¦Ÿ সিন সেঠকরার সময় নতà§à¦¨ কোন পরিবরà§à¦¤à¦¨ বাতিল হযে যাবে।" @@ -2016,8 +2293,9 @@ msgstr "" "করà§à¦¨ à¦à¦¬à¦‚ পà§à¦¨à¦°à¦¾à§Ÿ ইমà§à¦ªà§‹à¦°à§à¦Ÿ করà§à¦¨à¥¤" #: editor/editor_node.cpp +#, fuzzy msgid "" -"This scene was imported, so changes to it will not be kept.\n" +"This scene was imported, so changes to it won't be kept.\n" "Instancing it or inheriting will allow making changes to it.\n" "Please read the documentation relevant to importing scenes to better " "understand this workflow." @@ -2027,8 +2305,9 @@ msgstr "" "বিসà§à¦¤à¦¾à¦°à¦¿à¦¤ তথà§à¦¯à§‡à¦° জনà§à¦¯ অনà§à¦—à§à¦°à¦¹ করে ডকà§à¦®à§‡à¦¨à§à¦Ÿà§‡à¦¶à¦¨à§‡à¦° সাহাযà§à¦¯ নিন।" #: editor/editor_node.cpp +#, fuzzy msgid "" -"This is a remote object so changes to it will not be kept.\n" +"This is a remote object, so changes to it won't be kept.\n" "Please read the documentation relevant to debugging to better understand " "this workflow." msgstr "" @@ -2040,38 +2319,6 @@ msgid "There is no defined scene to run." msgstr "চালানোর জনà§à¦¯ কোনো দৃশà§à¦¯ নিরà§à¦¦à¦¿à¦·à§à¦Ÿ করা নেই।" #: editor/editor_node.cpp -#, fuzzy -msgid "" -"No main scene has ever been defined, select one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" -"কোনো মà§à¦–à§à¦¯ দৃশà§à¦¯ নিরà§à¦§à¦¾à¦°à¦£ করা হয়নি, নিরà§à¦§à¦¾à¦°à¦£ করবেন?\n" -"আপনি পরবরà§à¦¤à¦¿à¦¤à§‡ তা 'অà§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•েশন (application)' বিà¦à¦¾à¦—ের \\\"পà§à¦°à¦•লà§à¦ªà§‡à¦° সেটিংস " -"(Project Settings)\\\"-ঠপরিবরà§à¦¤à¦¨ করতে পারবেন।" - -#: editor/editor_node.cpp -msgid "" -"Selected scene '%s' does not exist, select a valid one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" -"নিরà§à¦¬à¦¾à¦šà¦¿à¦¤ '%s' দৃশà§à¦¯à¦Ÿà¦¿ বিদà§à¦¯à¦®à¦¾à¦¨ নয়, à¦à¦•টি কারà§à¦¯à¦•র দৃশà§à¦¯ নিরà§à¦§à¦¾à¦°à¦£ করবেন?\n" -"আপনি পরবরà§à¦¤à¦¿à¦¤à§‡ তা 'অà§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•েশন (application)' বিà¦à¦¾à¦—ের \\\"পà§à¦°à¦•লà§à¦ªà§‡à¦° সেটিংস " -"(Project Settings)\\\"-ঠপরিবরà§à¦¤à¦¨ করতে পারবেন।" - -#: editor/editor_node.cpp -msgid "" -"Selected scene '%s' is not a scene file, select a valid one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" -"নিরà§à¦¬à¦¾à¦šà¦¿à¦¤ '%s' দৃশà§à¦¯à¦Ÿà¦¿ কোনো দৃশà§à¦¯à§‡à¦° ফাইল নয়, à¦à¦•টি কারà§à¦¯à¦•র দৃশà§à¦¯à§‡à¦° ফাইল নিরà§à¦§à¦¾à¦°à¦£ " -"করবেন?\n" -"আপনি পরবরà§à¦¤à¦¿à¦¤à§‡ তা 'অà§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•েশন (application)' বিà¦à¦¾à¦—ের \\\"পà§à¦°à¦•লà§à¦ªà§‡à¦° সেটিংস " -"(Project Settings)\\\"-ঠপরিবরà§à¦¤à¦¨ করতে পারবেন।" - -#: editor/editor_node.cpp msgid "Current scene was never saved, please save it prior to running." msgstr "" "বরà§à¦¤à¦®à¦¾à¦¨ দৃশà§à¦¯à¦Ÿà¦¿ কখনোই সংরকà§à¦·à¦£ করা হয় নি, অনà§à¦—à§à¦°à¦¹ করে চালানোর পূরà§à¦¬à§‡ à¦à¦Ÿà¦¿ সংরকà§à¦·à¦£ করà§à¦¨à¥¤" @@ -2080,7 +2327,7 @@ msgstr "" msgid "Could not start subprocess!" msgstr "উপ-পà§à¦°à¦•à§à¦°à¦¿à¦¯à¦¼à¦¾à¦•ে শà§à¦°à§ করা সমà§à¦à¦¬ হয়নি!" -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/filesystem_dock.cpp msgid "Open Scene" msgstr "দৃশà§à¦¯ খà§à¦²à§à¦¨" @@ -2089,6 +2336,11 @@ msgid "Open Base Scene" msgstr "গোড়ার দৃশà§à¦¯ খà§à¦²à§à¦¨" #: editor/editor_node.cpp +#, fuzzy +msgid "Quick Open..." +msgstr "দà§à¦°à§à¦¤ দৃশà§à¦¯ খà§à¦²à§à¦¨..." + +#: editor/editor_node.cpp msgid "Quick Open Scene..." msgstr "দà§à¦°à§à¦¤ দৃশà§à¦¯ খà§à¦²à§à¦¨..." @@ -2270,6 +2522,38 @@ msgid "Clear Recent Scenes" msgstr "বোনà§â€Œ/হাড় পরিষà§à¦•ার করà§à¦¨" #: editor/editor_node.cpp +#, fuzzy +msgid "" +"No main scene has ever been defined, select one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" +"কোনো মà§à¦–à§à¦¯ দৃশà§à¦¯ নিরà§à¦§à¦¾à¦°à¦£ করা হয়নি, নিরà§à¦§à¦¾à¦°à¦£ করবেন?\n" +"আপনি পরবরà§à¦¤à¦¿à¦¤à§‡ তা 'অà§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•েশন (application)' বিà¦à¦¾à¦—ের \\\"পà§à¦°à¦•লà§à¦ªà§‡à¦° সেটিংস " +"(Project Settings)\\\"-ঠপরিবরà§à¦¤à¦¨ করতে পারবেন।" + +#: editor/editor_node.cpp +msgid "" +"Selected scene '%s' does not exist, select a valid one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" +"নিরà§à¦¬à¦¾à¦šà¦¿à¦¤ '%s' দৃশà§à¦¯à¦Ÿà¦¿ বিদà§à¦¯à¦®à¦¾à¦¨ নয়, à¦à¦•টি কারà§à¦¯à¦•র দৃশà§à¦¯ নিরà§à¦§à¦¾à¦°à¦£ করবেন?\n" +"আপনি পরবরà§à¦¤à¦¿à¦¤à§‡ তা 'অà§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•েশন (application)' বিà¦à¦¾à¦—ের \\\"পà§à¦°à¦•লà§à¦ªà§‡à¦° সেটিংস " +"(Project Settings)\\\"-ঠপরিবরà§à¦¤à¦¨ করতে পারবেন।" + +#: editor/editor_node.cpp +msgid "" +"Selected scene '%s' is not a scene file, select a valid one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" +"নিরà§à¦¬à¦¾à¦šà¦¿à¦¤ '%s' দৃশà§à¦¯à¦Ÿà¦¿ কোনো দৃশà§à¦¯à§‡à¦° ফাইল নয়, à¦à¦•টি কারà§à¦¯à¦•র দৃশà§à¦¯à§‡à¦° ফাইল নিরà§à¦§à¦¾à¦°à¦£ " +"করবেন?\n" +"আপনি পরবরà§à¦¤à¦¿à¦¤à§‡ তা 'অà§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•েশন (application)' বিà¦à¦¾à¦—ের \\\"পà§à¦°à¦•লà§à¦ªà§‡à¦° সেটিংস " +"(Project Settings)\\\"-ঠপরিবরà§à¦¤à¦¨ করতে পারবেন।" + +#: editor/editor_node.cpp msgid "Save Layout" msgstr "লেআউট/নকশা সংরকà§à¦·à¦£ করà§à¦¨" @@ -2298,6 +2582,19 @@ msgstr "দৃশà§à¦¯ চালান" msgid "Close Tab" msgstr "অনà§à¦¯ টà§à¦¯à¦¾à¦¬à¦—à§à¦²à¦¿ বনà§à¦§ করà§à¦¨" +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +msgid "Close Other Tabs" +msgstr "অনà§à¦¯ টà§à¦¯à¦¾à¦¬à¦—à§à¦²à¦¿ বনà§à¦§ করà§à¦¨" + +#: editor/editor_node.cpp +msgid "Close Tabs to the Right" +msgstr "" + +#: editor/editor_node.cpp +#, fuzzy +msgid "Close All Tabs" +msgstr "সবগà§à¦²à¦¿ বনà§à¦§ করà§à¦¨" + #: editor/editor_node.cpp msgid "Switch Scene Tab" msgstr "দৃশà§à¦¯à§‡à¦° টà§à¦¯à¦¾à¦¬ পরিবরà§à¦¤à¦¨ করà§à¦¨" @@ -2428,10 +2725,6 @@ msgstr "নতà§à¦¨ পà§à¦°à¦•লà§à¦ª" msgid "Project Settings" msgstr "পà§à¦°à¦•লà§à¦ªà§‡à¦° সেটিংস" -#: editor/editor_node.cpp editor/project_export.cpp -msgid "Export" -msgstr "à¦à¦•à§à¦¸à¦ªà§‹à¦°à§à¦Ÿ" - #: editor/editor_node.cpp editor/plugins/tile_set_editor_plugin.cpp msgid "Tools" msgstr "সরঞà§à¦œà¦¾à¦®-সমূহ" @@ -2442,6 +2735,10 @@ msgid "Open Project Data Folder" msgstr "পà§à¦°à¦•লà§à¦ª মà§à¦¯à¦¾à¦¨à§‡à¦œà¦¾à¦°" #: editor/editor_node.cpp +msgid "Install Android Build Template" +msgstr "" + +#: editor/editor_node.cpp msgid "Quit to Project List" msgstr "পà§à¦°à¦•লà§à¦ªà§‡à¦° তালিকায় পà§à¦°à¦¸à§à¦¥à¦¾à¦¨ করà§à¦¨" @@ -2569,6 +2866,11 @@ msgstr "" msgid "Open Editor Settings Folder" msgstr "à¦à¦¡à¦¿à¦Ÿà¦°à§‡à¦° সেটিংস" +#: editor/editor_node.cpp +#, fuzzy +msgid "Manage Editor Features" +msgstr "à¦à¦•à§à¦¸à¦ªà§‹à¦°à§à¦Ÿ টেমপà§à¦²à§‡à¦Ÿà¦¸à¦®à§‚হ লোড হচà§à¦›à§‡" + #: editor/editor_node.cpp editor/project_export.cpp #, fuzzy msgid "Manage Export Templates" @@ -2582,6 +2884,7 @@ msgstr "হেলà§à¦ª" #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp #: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp #: editor/project_settings_editor.cpp editor/rename_dialog.cpp msgid "Search" msgstr "অনà§à¦¸à¦¨à§à¦§à¦¾à¦¨ করà§à¦¨" @@ -2674,11 +2977,6 @@ msgstr "পরিবরà§à¦¤à¦¨à¦¸à¦®à§‚হ হাল-নাগাদ করৠmsgid "Disable Update Spinner" msgstr "হাল-নাগাদকারী ঘূরà§à¦£à¦• নিষà§à¦•à§à¦°à¦¿à§Ÿ করà§à¦¨" -#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp -#: editor/project_manager.cpp -msgid "Import" -msgstr "ইমà§à¦ªà§‹à¦°à§à¦Ÿ" - #: editor/editor_node.cpp msgid "FileSystem" msgstr "ফাইলসিসà§à¦Ÿà§‡à¦®" @@ -2705,6 +3003,28 @@ msgid "Don't Save" msgstr "সংরকà§à¦·à¦£ করবেন না" #: editor/editor_node.cpp +msgid "Android build template is missing, please install relevant templates." +msgstr "" + +#: editor/editor_node.cpp +#, fuzzy +msgid "Manage Templates" +msgstr "à¦à¦•à§à¦¸à¦ªà§‹à¦°à§à¦Ÿ টেমপà§à¦²à§‡à¦Ÿà¦¸à¦®à§‚হ লোড হচà§à¦›à§‡" + +#: editor/editor_node.cpp +msgid "" +"This will install the Android project for custom builds.\n" +"Note that, in order to use it, it needs to be enabled per export preset." +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"Android build template is already installed and it won't be overwritten.\n" +"Remove the \"build\" directory manually before attempting this operation " +"again." +msgstr "" + +#: editor/editor_node.cpp msgid "Import Templates From ZIP File" msgstr "ZIP ফাইল হতে টেমপà§à¦²à§‡à¦Ÿ-সমূহ ইমà§à¦ªà§‹à¦°à§à¦Ÿ করà§à¦¨" @@ -2839,10 +3159,6 @@ msgid "Physics Frame %" msgstr "সà§à¦¥à¦¿à¦°/বদà§à¦§ ফà§à¦°à§‡à¦® %" #: editor/editor_profiler.cpp -msgid "Time:" -msgstr "সময়:" - -#: editor/editor_profiler.cpp msgid "Inclusive" msgstr "অনà§à¦¤à¦°à§à¦à§à¦•à§à¦¤" @@ -2991,10 +3307,6 @@ msgid "Remove Item" msgstr "বসà§à¦¤à§ অপসারণ করà§à¦¨" #: editor/editor_run_native.cpp -msgid "Select device from the list" -msgstr "লিসà§à¦Ÿ থেকে ডিà¦à¦¾à¦‡à¦¸ সিলেকà§à¦Ÿ করà§à¦¨" - -#: editor/editor_run_native.cpp msgid "" "No runnable export preset found for this platform.\n" "Please add a runnable preset in the export menu." @@ -3030,6 +3342,10 @@ msgstr "আপনি কি '_run' মেথডটি দিতে à¦à§à¦²à§‡à msgid "Select Node(s) to Import" msgstr "ইমà§à¦ªà§‹à¦°à§à¦Ÿà§‡à¦° জনà§à¦¯ নোড(সমূহ) নিরà§à¦¬à¦¾à¦šà¦¨ করà§à¦¨" +#: editor/editor_sub_scene.cpp editor/project_manager.cpp +msgid "Browse" +msgstr "বà§à¦°à¦¾à¦‰à¦¸" + #: editor/editor_sub_scene.cpp msgid "Scene Path:" msgstr "দৃশà§à¦¯à§‡à¦° পথ:" @@ -3217,6 +3533,11 @@ msgstr "à¦à§à¦²/সমসà§à¦¯à¦¾-সমূহ লোড করà§à¦¨" #: editor/export_template_manager.cpp #, fuzzy +msgid "Uncompressing Android Build Sources" +msgstr "আনকমà§à¦ªà§à¦°à§‡à¦¸à§à¦¡ অà§à¦¯à¦¾à¦¸à§‡à¦Ÿà¦¸" + +#: editor/export_template_manager.cpp +#, fuzzy msgid "Current Version:" msgstr "বরà§à¦¤à¦®à¦¾à¦¨ দৃশà§à¦¯" @@ -3237,7 +3558,7 @@ msgstr "বসà§à¦¤à§ অপসারণ করà§à¦¨" #: editor/export_template_manager.cpp #, fuzzy -msgid "Select template file" +msgid "Select Template File" msgstr "নিরà§à¦¬à¦¾à¦šà¦¿à¦¤ ফাইলসমূহ অপসারণ করবেন?" #: editor/export_template_manager.cpp @@ -3309,7 +3630,8 @@ msgid "No name provided." msgstr "পà§à¦¨à¦ƒà¦¨à¦¾à¦®à¦•রণ করà§à¦¨ অথবা সরান..." #: editor/filesystem_dock.cpp -msgid "Provided name contains invalid characters" +#, fuzzy +msgid "Provided name contains invalid characters." msgstr "বà§à¦¯à¦¬à¦¹à§ƒà¦¤ নামে অগà§à¦°à¦¹à¦£à¦¯à§‹à¦—à§à¦¯ অকà§à¦·à¦° বিদà§à¦¯à¦®à¦¾à¦¨" #: editor/filesystem_dock.cpp @@ -3344,7 +3666,12 @@ msgstr "নোড পà§à¦¨à¦ƒà¦¨à¦¾à¦®à¦•রণ করà§à¦¨" #: editor/filesystem_dock.cpp #, fuzzy -msgid "Open Scene(s)" +msgid "New Inherited Scene" +msgstr "নতà§à¦¨ উতà§à¦¤à¦°à¦¾à¦§à¦¿à¦•ারী দৃশà§à¦¯..." + +#: editor/filesystem_dock.cpp +#, fuzzy +msgid "Open Scenes" msgstr "দৃশà§à¦¯ খà§à¦²à§à¦¨" #: editor/filesystem_dock.cpp @@ -3353,12 +3680,12 @@ msgstr "ইনসà§à¦Ÿà§à¦¯à¦¾à¦¨à§à¦¸" #: editor/filesystem_dock.cpp #, fuzzy -msgid "Add to favorites" +msgid "Add to Favorites" msgstr "ফেবরিট/পà§à¦°à¦¿à¦¯à¦¼-সমূহ:" #: editor/filesystem_dock.cpp #, fuzzy -msgid "Remove from favorites" +msgid "Remove from Favorites" msgstr "গà§à¦°à§à¦ª/দল হতে অপসারণ করà§à¦¨" #: editor/filesystem_dock.cpp @@ -3393,12 +3720,14 @@ msgstr "নতà§à¦¨ সà§à¦•à§à¦°à¦¿à¦ªà§à¦Ÿ" msgid "New Resource..." msgstr "রিসোরà§à¦¸ à¦à¦‡à¦°à§‚পে সংরকà§à¦·à¦£ করà§à¦¨..." -#: editor/filesystem_dock.cpp editor/script_editor_debugger.cpp +#: editor/filesystem_dock.cpp editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_editor_debugger.cpp #, fuzzy msgid "Expand All" msgstr "ধারক/বাহক পরà§à¦¯à¦¨à§à¦¤ বিসà§à¦¤à§ƒà¦¤ করà§à¦¨" -#: editor/filesystem_dock.cpp editor/script_editor_debugger.cpp +#: editor/filesystem_dock.cpp editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_editor_debugger.cpp #, fuzzy msgid "Collapse All" msgstr "কলাপà§à¦¸ করà§à¦¨" @@ -3411,12 +3740,14 @@ msgid "Rename" msgstr "পà§à¦¨à¦ƒà¦¨à¦¾à¦®à¦•রণ করà§à¦¨" #: editor/filesystem_dock.cpp -msgid "Previous Directory" -msgstr "পূরà§à¦¬à§‡à¦° সà§à¦¥à¦¾à¦¨" +#, fuzzy +msgid "Previous Folder/File" +msgstr "পূরà§à¦¬à§‡à¦° টà§à¦¯à¦¾à¦¬" #: editor/filesystem_dock.cpp -msgid "Next Directory" -msgstr "পরের সà§à¦¥à¦¾à¦¨" +#, fuzzy +msgid "Next Folder/File" +msgstr "ফোলà§à¦¡à¦¾à¦° তৈরি করà§à¦¨" #: editor/filesystem_dock.cpp msgid "Re-Scan Filesystem" @@ -3424,7 +3755,7 @@ msgstr "ফাইলসিসà§à¦Ÿà§‡à¦® পà§à¦¨-সà§à¦•à§à¦¯à¦¾à¦¨ কর #: editor/filesystem_dock.cpp #, fuzzy -msgid "Toggle split mode" +msgid "Toggle Split Mode" msgstr "মোড অদলবদল/টগল করà§à¦¨" #: editor/filesystem_dock.cpp @@ -3457,7 +3788,7 @@ msgstr "" msgid "Create Script" msgstr "সà§à¦•à§à¦°à¦¿à¦ªà§à¦Ÿ তৈরি করà§à¦¨" -#: editor/find_in_files.cpp +#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp #, fuzzy msgid "Find in Files" msgstr "টাইল খà§à¦à¦œà§à¦¨" @@ -3477,6 +3808,12 @@ msgstr "লাইন-ঠযান" msgid "Filters:" msgstr "ফিলà§à¦Ÿà¦¾à¦°à¦¸à¦®à§‚হ" +#: editor/find_in_files.cpp +msgid "" +"Include the files with the following extensions. Add or remove them in " +"ProjectSettings." +msgstr "" + #: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp msgid "Find..." @@ -3956,7 +4293,7 @@ msgstr "অà§à¦¯à¦¾à¦¨à¦¿à¦®à§‡à¦¶à¦¨à§‡à¦° নোড" #: editor/plugins/animation_blend_space_2d_editor.cpp #, fuzzy -msgid "Triangle already exists" +msgid "Triangle already exists." msgstr "'%s' অà§à¦¯à¦¾à¦•শন ইতিমধà§à¦¯à§‡à¦‡ বিদà§à¦¯à¦®à¦¾à¦¨!" #: editor/plugins/animation_blend_space_2d_editor.cpp @@ -4042,7 +4379,6 @@ msgid "Node Moved" msgstr "মোড (Mode) সরান" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Unable to connect, port may be in use or connection may be invalid." msgstr "" @@ -4119,7 +4455,7 @@ msgstr "নোড ফিলà§à¦Ÿà¦¾à¦°à¦¸à¦®à§‚হ সমà§à¦ªà¦¾à¦¦à¦¨ কর #: editor/plugins/animation_blend_tree_editor_plugin.cpp #, fuzzy -msgid "Enable filtering" +msgid "Enable Filtering" msgstr "সমà§à¦ªà¦¾à¦¦à¦¨à¦¯à§‹à¦—à§à¦¯ অংশীদারীসমূহ" #: editor/plugins/animation_player_editor_plugin.cpp @@ -4240,10 +4576,6 @@ msgid "Animation" msgstr "অà§à¦¯à¦¾à¦¨à¦¿à¦®à§‡à¦¶à¦¨" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "New" -msgstr "নতà§à¦¨" - -#: editor/plugins/animation_player_editor_plugin.cpp #, fuzzy msgid "Edit Transitions..." msgstr "অনà§à¦¬à¦¾à¦¦à¦¸à¦®à§‚হ" @@ -4262,12 +4594,13 @@ msgid "Autoplay on Load" msgstr "লোডের পরেই সà§à¦¬à§Ÿà¦‚কà§à¦°à¦¿à§Ÿà¦à¦¾à¦¬à§‡ চালানà§â€Œ" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Onion Skinning" +msgid "Enable Onion Skinning" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Enable Onion Skinning" -msgstr "" +#, fuzzy +msgid "Onion Skinning Options" +msgstr "অà§à¦¯à¦¾à¦¨à¦¿à¦®à§‡à¦¶à¦¨à§‡à¦° সিদà§à¦§à¦¾à¦¨à§à¦¤à¦¸à¦®à§‚হ" #: editor/plugins/animation_player_editor_plugin.cpp #, fuzzy @@ -4844,13 +5177,19 @@ msgid "Move CanvasItem" msgstr "CanvasItem সমà§à¦ªà¦¾à¦¦à¦¨ করà§à¦¨" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"Children of containers have their anchors and margins values overridden by " +"their parent." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Presets for the anchors and margins values of a Control node." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "" -"Children of containers have their anchors and margins values overridden by " -"their parent." +"When active, moving Control nodes changes their anchors instead of their " +"margins." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4868,10 +5207,52 @@ msgid "Change Anchors" msgstr "অà§à¦¯à¦¾à¦‚করসমূহ পরিবরà§à¦¤à¦¨ করà§à¦¨" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Lock Selected" +msgstr "নিরà§à¦¬à¦¾à¦šà¦¨ করà§à¦¨" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Unlock Selected" +msgstr "নিরà§à¦¬à¦¾à¦šà¦¿à¦¤ সমূহ অপসারণ করà§à¦¨" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Group Selected" +msgstr "নিরà§à¦¬à¦¾à¦šà¦¿à¦¤ সমূহ অপসারণ করà§à¦¨" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Ungroup Selected" +msgstr "নিরà§à¦¬à¦¾à¦šà¦¿à¦¤ সমূহ অপসারণ করà§à¦¨" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Paste Pose" msgstr "à¦à¦™à§à¦—ি পà§à¦°à¦¤à¦¿à¦²à§‡à¦ªà¦¨ করà§à¦¨" #: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Create Custom Bone(s) from Node(s)" +msgstr "Mesh হতে Emitter তৈরি করà§à¦¨" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Clear Bones" +msgstr "à¦à¦™à§à¦—ি পরিষà§à¦•ার করà§à¦¨" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Make IK Chain" +msgstr "IK চেইন তৈরি করà§à¦¨" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Clear IK Chain" +msgstr "IK চেইন পরিষà§à¦•ার করà§à¦¨" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "" "Warning: Children of a container get their position and size determined only " "by their parent." @@ -4950,7 +5331,7 @@ msgstr "অà§à¦¯à¦¾à¦¨à¦¿à¦®à§‡à¦¶à¦¨à§‡à¦° সিদà§à¦§à¦¾à¦¨à§à¦¤à¦¸à¦®à§ #: editor/plugins/canvas_item_editor_plugin.cpp #, fuzzy -msgid "Snap to grid" +msgid "Snap to Grid" msgstr "সà§à¦¨à§à¦¯à¦¾à¦ª মোড:" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4972,34 +5353,38 @@ msgid "Use Pixel Snap" msgstr "পিকà§à¦¸à§‡à¦² সà§à¦¨à§à¦¯à¦¾à¦ª বà§à¦¯à¦¬à¦¹à¦¾à¦° করà§à¦¨" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Smart snapping" +#, fuzzy +msgid "Smart Snapping" msgstr "সà§à¦®à¦¾à¦°à§à¦Ÿ সà§à¦¨à§à¦¯à¦¾à¦ªà¦¿à¦‚ বà§à¦¯à¦¾à¦¬à¦¹à¦¾à¦° করà§à¦¨" #: editor/plugins/canvas_item_editor_plugin.cpp #, fuzzy -msgid "Snap to parent" +msgid "Snap to Parent" msgstr "ধারক/বাহক পরà§à¦¯à¦¨à§à¦¤ বিসà§à¦¤à§ƒà¦¤ করà§à¦¨" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node anchor" +#, fuzzy +msgid "Snap to Node Anchor" msgstr "নোড অà§à¦¯à¦¾à¦¨à§à¦•রের সাথে সà§à¦¨à§à¦¯à¦¾à¦ª করà§à¦¨" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node sides" +#, fuzzy +msgid "Snap to Node Sides" msgstr "নোড সাইডের সাথে সà§à¦¨à§à¦¯à¦¾à¦ª করà§à¦¨" #: editor/plugins/canvas_item_editor_plugin.cpp #, fuzzy -msgid "Snap to node center" +msgid "Snap to Node Center" msgstr "নোড অà§à¦¯à¦¾à¦¨à§à¦•রের সাথে সà§à¦¨à§à¦¯à¦¾à¦ª করà§à¦¨" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to other nodes" +#, fuzzy +msgid "Snap to Other Nodes" msgstr "অনà§à¦¯ নোড à¦à¦° সাথে সà§à¦¨à§à¦¯à¦¾à¦ª করà§à¦¨" #: editor/plugins/canvas_item_editor_plugin.cpp #, fuzzy -msgid "Snap to guides" +msgid "Snap to Guides" msgstr "সà§à¦¨à§à¦¯à¦¾à¦ª মোড:" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -5013,10 +5398,12 @@ msgid "Unlock the selected object (can be moved)." msgstr "নিরà§à¦¬à¦¾à¦šà¦¿à¦¤ বসà§à¦¤à§à¦Ÿà¦¿à¦•ে মà§à¦•à§à¦¤ করà§à¦¨ (সরানো সমà§à¦à¦¬ হবে)।" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Makes sure the object's children are not selectable." msgstr "বসà§à¦¤à§à¦° অনà§à¦¤à¦°à§à¦à§à¦•à§à¦¤-সমূহ যাতে নিরà§à¦¬à¦¾à¦šà¦¨à¦¯à§‹à¦—à§à¦¯ না হয় তা নিশà§à¦šà¦¿à¦¤ করে।" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Restores the object's children's ability to be selected." msgstr "বসà§à¦¤à§à¦° অনà§à¦¤à¦°à§à¦à§à¦•à§à¦¤-সমূহের নিরà§à¦¬à¦¾à¦šà¦¨à¦¯à§‹à¦—à§à¦¯à¦¤à¦¾ পà§à¦¨à¦°à¦¾à§Ÿ ফিরিয়ে আনে।" @@ -5030,14 +5417,6 @@ msgid "Show Bones" msgstr "বোনà§â€Œ/হাড় দেখান" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Make IK Chain" -msgstr "IK চেইন তৈরি করà§à¦¨" - -#: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Clear IK Chain" -msgstr "IK চেইন পরিষà§à¦•ার করà§à¦¨" - -#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Make Custom Bone(s) from Node(s)" msgstr "" @@ -5095,8 +5474,8 @@ msgstr "নিরà§à¦¬à¦¾à¦šà¦¨à¦•ে ফà§à¦°à§‡à¦®à¦à§‚কà§à¦¤ করà§à #: editor/plugins/canvas_item_editor_plugin.cpp #, fuzzy -msgid "Layout" -msgstr "লেআউট/নকশা সংরকà§à¦·à¦£ করà§à¦¨" +msgid "Preview Canvas Scale" +msgstr "à¦à¦Ÿà¦²à¦¾à¦¸/মানচিতà§à¦°à¦¾à¦¬à¦²à§€ পà§à¦°à¦¿à¦à¦¿à¦‰" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Translation mask for inserting keys." @@ -5149,6 +5528,11 @@ msgid "Divide grid step by 2" msgstr "গà§à¦°à¦¿à¦¡ সà§à¦Ÿà§‡à¦ª দà§à¦¬à¦¿à¦—à§à¦£ সংখà§à¦¯à¦¾à§Ÿ হà§à¦°à¦¾à¦¸ করà§à¦¨" #: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Pan View" +msgstr "পশà§à¦šà¦¾à§Ž দরà§à¦¶à¦¨" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Add %s" msgstr "%s সংযà§à¦•à§à¦¤ করà§à¦¨" @@ -5171,7 +5555,8 @@ msgid "Error instancing scene from %s" msgstr "%s হতে দৃশà§à¦¯ ইনসà§à¦Ÿà§à¦¯à¦¾à¦¨à§à¦¸ করাতে সমসà§à¦¯à¦¾ হয়েছে" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Change default type" +#, fuzzy +msgid "Change Default Type" msgstr "ডিফলà§à¦Ÿ ধরণ পরিবরà§à¦¤à¦¨ করà§à¦¨" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -5267,21 +5652,21 @@ msgid "Create Emission Points From Node" msgstr "Node হতে Emitter তৈরি করà§à¦¨" #: editor/plugins/curve_editor_plugin.cpp -msgid "Flat0" +#, fuzzy +msgid "Flat 0" msgstr "ফà§à¦²à§à¦¯à¦¾à¦Ÿ0" #: editor/plugins/curve_editor_plugin.cpp -msgid "Flat1" +#, fuzzy +msgid "Flat 1" msgstr "ফà§à¦²à§à¦¯à¦¾à¦Ÿ1" -#: editor/plugins/curve_editor_plugin.cpp -#, fuzzy -msgid "Ease in" +#: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp +msgid "Ease In" msgstr "আনà§à¦¤-সহজাগমন" -#: editor/plugins/curve_editor_plugin.cpp -#, fuzzy -msgid "Ease out" +#: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp +msgid "Ease Out" msgstr "বহিঃ-সহজাগমন" #: editor/plugins/curve_editor_plugin.cpp @@ -5305,27 +5690,27 @@ msgstr "রিসোরà§à¦¸ লোড করà§à¦¨" #: editor/plugins/curve_editor_plugin.cpp #, fuzzy -msgid "Add point" +msgid "Add Point" msgstr "ইনপà§à¦Ÿ যোগ করà§à¦¨" #: editor/plugins/curve_editor_plugin.cpp #, fuzzy -msgid "Remove point" +msgid "Remove Point" msgstr "পথের বিনà§à¦¦à§ অপসারণ করà§à¦¨" #: editor/plugins/curve_editor_plugin.cpp #, fuzzy -msgid "Left linear" +msgid "Left Linear" msgstr "রৈখিক/লিনিয়ার" #: editor/plugins/curve_editor_plugin.cpp #, fuzzy -msgid "Right linear" +msgid "Right Linear" msgstr "ডান দরà§à¦¶à¦¨" #: editor/plugins/curve_editor_plugin.cpp #, fuzzy -msgid "Load preset" +msgid "Load Preset" msgstr "রিসোরà§à¦¸ লোড করà§à¦¨" #: editor/plugins/curve_editor_plugin.cpp @@ -5382,11 +5767,17 @@ msgid "This doesn't work on scene root!" msgstr "দৃশà§à¦¯à§‡à¦° গোড়ায় à¦à¦Ÿà¦¿ কাজ করেনা!" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Trimesh Shape" +#, fuzzy +msgid "Create Trimesh Static Shape" msgstr "টà§à¦°à¦¾à¦‡à¦®à§‡à¦¸ আকার তৈরি করà§à¦¨" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Shape" +msgid "Failed creating shapes!" +msgstr "" + +#: editor/plugins/mesh_instance_editor_plugin.cpp +#, fuzzy +msgid "Create Convex Shape(s)" msgstr "কনà¦à§‡à¦•à§à¦¸ আকার তৈরি করà§à¦¨" #: editor/plugins/mesh_instance_editor_plugin.cpp @@ -5439,15 +5830,12 @@ msgid "Create Trimesh Static Body" msgstr "সà§à¦¥à¦¿à¦¤-টà§à¦°à¦¾à¦‡à¦®à§‡à¦¸ বডি তৈরি করà§à¦¨" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Static Body" -msgstr "সà§à¦¥à¦¿à¦¤-কনà¦à§‡à¦•à§à¦¸ বডি তৈরি করà§à¦¨" - -#: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Trimesh Collision Sibling" msgstr "টà§à¦°à¦¾à¦‡à¦®à§‡à¦¸ কলিশ়ন সহোদর তৈরি করà§à¦¨" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Collision Sibling" +#, fuzzy +msgid "Create Convex Collision Sibling(s)" msgstr "কনà¦à§‡à¦•à§à¦¸ কলিশ়ন সহোদর তৈরি করà§à¦¨" #: editor/plugins/mesh_instance_editor_plugin.cpp @@ -5603,6 +5991,12 @@ msgid "Create Navigation Polygon" msgstr "Navigation Polygon তৈরি করà§à¦¨" #: editor/plugins/particles_2d_editor_plugin.cpp +#: editor/plugins/particles_editor_plugin.cpp +#, fuzzy +msgid "Convert to CPUParticles" +msgstr "à¦à¦¤à§‡ রূপানà§à¦¤à¦° করà§à¦¨..." + +#: editor/plugins/particles_2d_editor_plugin.cpp #, fuzzy msgid "Generating Visibility Rect" msgstr "à¦à¦¿à¦œà¦¿à¦¬à¦¿à¦²à¦¿à¦Ÿà¦¿ রেকà§à¦Ÿ তৈরি করà§à¦¨" @@ -5618,12 +6012,6 @@ msgstr "শà§à¦§à§à¦®à¦¾à¦¤à§à¦° ParticlesMaterial পà§à¦°à¦¸à§‡à¦¸ মà§à #: editor/plugins/particles_2d_editor_plugin.cpp #: editor/plugins/particles_editor_plugin.cpp #, fuzzy -msgid "Convert to CPUParticles" -msgstr "à¦à¦¤à§‡ রূপানà§à¦¤à¦° করà§à¦¨..." - -#: editor/plugins/particles_2d_editor_plugin.cpp -#: editor/plugins/particles_editor_plugin.cpp -#, fuzzy msgid "Generation Time (sec):" msgstr "গড় সময় (সেঃ)" @@ -5770,7 +6158,7 @@ msgstr "বকà§à¦°à¦°à§‡à¦–া বনà§à¦§ করà§à¦¨" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp editor/plugins/theme_editor_plugin.cpp -#: editor/project_export.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_export.cpp msgid "Options" msgstr "সিদà§à¦§à¦¾à¦¨à§à¦¤à¦¸à¦®à§‚হ" @@ -5827,7 +6215,7 @@ msgstr "অংশ বিà¦à¦•à§à¦¤ করà§à¦¨ (বকà§à¦°à¦°à§‡à¦–ায়)" #: editor/plugins/physical_bone_plugin.cpp #, fuzzy -msgid "Move joint" +msgid "Move Joint" msgstr "বিনà§à¦¦à§ সরান" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -6079,7 +6467,6 @@ msgid "Open in Editor" msgstr "à¦à¦¡à¦¿à¦Ÿà¦°à§‡ খà§à¦²à§à¦¨" #: editor/plugins/resource_preloader_editor_plugin.cpp -#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Load Resource" msgstr "রিসোরà§à¦¸ লোড করà§à¦¨" @@ -6186,6 +6573,11 @@ msgid "%s Class Reference" msgstr " কà§à¦²à¦¾à¦¸ রেফারেনà§à¦¸" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp +msgid "Find Next" +msgstr "পরবরà§à¦¤à§€ খà§à¦à¦œà§à¦¨" + +#: editor/plugins/script_editor_plugin.cpp msgid "Toggle alphabetical sorting of the method list." msgstr "" @@ -6271,10 +6663,6 @@ msgstr "ডকà§à¦®à§‡à¦¨à§à¦Ÿà¦¸à¦®à§‚হ বনà§à¦§ করà§à¦¨" msgid "Close All" msgstr "সবগà§à¦²à¦¿ বনà§à¦§ করà§à¦¨" -#: editor/plugins/script_editor_plugin.cpp -msgid "Close Other Tabs" -msgstr "অনà§à¦¯ টà§à¦¯à¦¾à¦¬à¦—à§à¦²à¦¿ বনà§à¦§ করà§à¦¨" - #: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp msgid "Run" msgstr "চালান" @@ -6284,11 +6672,6 @@ msgstr "চালান" msgid "Toggle Scripts Panel" msgstr "ফেবরিট/পà§à¦°à¦¿à¦¯à¦¼-সমূহ অদলবদল/টগল করà§à¦¨" -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/script_text_editor.cpp -msgid "Find Next" -msgstr "পরবরà§à¦¤à§€ খà§à¦à¦œà§à¦¨" - #: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp msgid "Step Over" msgstr "ধাপ লাফিয়ে যান" @@ -6317,7 +6700,7 @@ msgstr "à¦à¦¡à¦¿à¦Ÿà¦°à§‡ খà§à¦²à§à¦¨" #: editor/plugins/script_editor_plugin.cpp #, fuzzy -msgid "Open Godot online documentation" +msgid "Open Godot online documentation." msgstr "রেফারেনà§à¦¸à§‡à¦° ডকà§à¦®à§‡à¦¨à§à¦Ÿà§‡à¦¶à¦¨à§‡ খà§à¦à¦œà§à¦¨à¥¤" #: editor/plugins/script_editor_plugin.cpp @@ -6325,7 +6708,7 @@ msgid "Request Docs" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Help improve the Godot documentation by giving feedback" +msgid "Help improve the Godot documentation by giving feedback." msgstr "" #: editor/plugins/script_editor_plugin.cpp @@ -6354,10 +6737,12 @@ msgstr "" "কোন সিধানà§à¦¤à¦Ÿà¦¿ নেয়া উচিত হবে?:" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp msgid "Reload" msgstr "রিলোড" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp msgid "Resave" msgstr "পà§à¦¨à¦ƒà¦¸à¦‚রকà§à¦·à¦£" @@ -6372,6 +6757,31 @@ msgstr "সাহাযà§à¦¯ অনà§à¦¸à¦¨à§à¦§à¦¾à¦¨ করà§à¦¨" #: editor/plugins/script_text_editor.cpp #, fuzzy +msgid "Connections to method:" +msgstr "নোডের সাথে সংযà§à¦•à§à¦¤ করà§à¦¨:" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Source" +msgstr "উৎস:" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Signal" +msgstr "সংকেতসমূহ" + +#: editor/plugins/script_text_editor.cpp +msgid "Target" +msgstr "টারà§à¦—েট" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "" +"Missing connected method '%s' for signal '%s' from node '%s' to node '%s'." +msgstr "'%s' à¦à¦° সাথে '%s' সংযà§à¦•à§à¦¤ করà§à¦¨" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy msgid "Line" msgstr "লাইন:" @@ -6384,10 +6794,6 @@ msgstr "" msgid "Go to Function" msgstr "ফাংশনে যান..." -#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp -msgid "Standard" -msgstr "" - #: editor/plugins/script_text_editor.cpp msgid "Only resources from filesystem can be dropped." msgstr "শà§à¦§à§à¦®à¦¾à¦¤à§à¦° ফাইল সিসà§à¦Ÿà§‡à¦® থেকে রিসোরà§à¦¸ ডà§à¦°à¦ª করা সমà§à¦à¦¬à¥¤" @@ -6422,6 +6828,11 @@ msgstr "বড় হাতের অকà§à¦·à¦°à§‡ পরিবরà§à¦¤à¦¨à§‡ ঠmsgid "Syntax Highlighter" msgstr "" +#: editor/plugins/script_text_editor.cpp +#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp +msgid "Bookmarks" +msgstr "" + #: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" @@ -6451,6 +6862,26 @@ msgstr "কমেনà§à¦Ÿ টগল করà§à¦¨" #: editor/plugins/script_text_editor.cpp #, fuzzy +msgid "Toggle Bookmark" +msgstr "পূরà§à¦£-পরà§à¦¦à¦¾ অদলবদল/টগল করà§à¦¨" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Go to Next Bookmark" +msgstr "পরের বিরতিবিনà§à¦¦à§à¦¤à§‡ যান" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Go to Previous Bookmark" +msgstr "পূরà§à¦¬à§‡à¦° বিরতিবিনà§à¦¦à§à¦¤à§‡ যান" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Remove All Bookmarks" +msgstr "কà§à¦²à¦¾à¦¸à§‡à¦° আইটেম অপসারণ করà§à¦¨" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy msgid "Fold/Unfold Line" msgstr "লাইন আনফোলà§à¦¡ করà§à¦¨" @@ -6531,6 +6962,15 @@ msgid "Contextual Help" msgstr "পà§à¦°à¦¾à¦¸à¦™à§à¦—িক সাহাযà§à¦¯" #: editor/plugins/shader_editor_plugin.cpp +#, fuzzy +msgid "" +"This shader has been modified on on disk.\n" +"What action should be taken?" +msgstr "" +"নিমà§à¦¨à§‹à¦•à§à¦¤ ফাইলসমূহ ডিসà§à¦•ে নতà§à¦¨à¦¤à¦°à¥¤\n" +"কোন সিধানà§à¦¤à¦Ÿà¦¿ নেয়া উচিত হবে?:" + +#: editor/plugins/shader_editor_plugin.cpp msgid "Shader" msgstr "শেডার" @@ -6898,7 +7338,8 @@ msgid "Right View" msgstr "ডান দরà§à¦¶à¦¨" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Switch Perspective/Orthogonal view" +#, fuzzy +msgid "Switch Perspective/Orthogonal View" msgstr "পরিপà§à¦°à§‡à¦•à§à¦·à¦¿à¦¤/সমকোণীয় (Perspective/Orthogonal) দরà§à¦¶à¦¨ পরিবরà§à¦¤à¦¨ করà§à¦¨" #: editor/plugins/spatial_editor_plugin.cpp @@ -6943,12 +7384,14 @@ msgid "Toggle Freelook" msgstr "পূরà§à¦£-পরà§à¦¦à¦¾ অদলবদল/টগল করà§à¦¨" #: editor/plugins/spatial_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Transform" msgstr "রà§à¦ªà¦¾à¦¨à§à¦¤à¦°" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Snap object to floor" -msgstr "" +#, fuzzy +msgid "Snap Object to Floor" +msgstr "সà§à¦¨à§à¦¯à¦¾à¦ª মোড:" #: editor/plugins/spatial_editor_plugin.cpp msgid "Transform Dialog..." @@ -7094,43 +7537,43 @@ msgid "Invalid geometry, can't replace by mesh." msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Invalid geometry, can't create polygon." -msgstr "" - -#: editor/plugins/sprite_editor_plugin.cpp -msgid "Invalid geometry, can't create collision polygon." -msgstr "" - -#: editor/plugins/sprite_editor_plugin.cpp -msgid "Invalid geometry, can't create light occluder." -msgstr "" - -#: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy -msgid "Sprite" -msgstr "ফà§à¦°à§‡à¦®à¦¸à¦®à§‚হ সà§à¦¤à§‚প করà§à¦¨" - -#: editor/plugins/sprite_editor_plugin.cpp #, fuzzy msgid "Convert to Mesh2D" msgstr "à¦à¦¤à§‡ রূপানà§à¦¤à¦° করà§à¦¨..." #: editor/plugins/sprite_editor_plugin.cpp +msgid "Invalid geometry, can't create polygon." +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp #, fuzzy msgid "Convert to Polygon2D" msgstr "পলিগন সরান" #: editor/plugins/sprite_editor_plugin.cpp +msgid "Invalid geometry, can't create collision polygon." +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp #, fuzzy msgid "Create CollisionPolygon2D Sibling" msgstr "Navigation Polygon তৈরি করà§à¦¨" #: editor/plugins/sprite_editor_plugin.cpp +msgid "Invalid geometry, can't create light occluder." +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp #, fuzzy msgid "Create LightOccluder2D Sibling" msgstr "অকলà§à¦¡à¦¾à¦° (occluder) পলিগন তৈরি করà§à¦¨" #: editor/plugins/sprite_editor_plugin.cpp +#, fuzzy +msgid "Sprite" +msgstr "ফà§à¦°à§‡à¦®à¦¸à¦®à§‚হ সà§à¦¤à§‚প করà§à¦¨" + +#: editor/plugins/sprite_editor_plugin.cpp msgid "Simplification: " msgstr "" @@ -7150,14 +7593,24 @@ msgid "Settings:" msgstr "সেটিংস" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "ERROR: Couldn't load frame resource!" -msgstr "সমসà§à¦¯à¦¾: ফà§à¦°à§‡à¦® রিসোরà§à¦¸ লোড করা সমà§à¦à¦¬ হয়নি!" +#, fuzzy +msgid "No Frames Selected" +msgstr "নিরà§à¦¬à¦¾à¦šà¦¨à¦•ে ফà§à¦°à§‡à¦®à¦à§‚কà§à¦¤ করà§à¦¨" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Add %d Frame(s)" +msgstr "ফà§à¦°à§‡à¦® যোগ করà§à¦¨" #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Add Frame" msgstr "ফà§à¦°à§‡à¦® যোগ করà§à¦¨" #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "ERROR: Couldn't load frame resource!" +msgstr "সমসà§à¦¯à¦¾: ফà§à¦°à§‡à¦® রিসোরà§à¦¸ লোড করা সমà§à¦à¦¬ হয়নি!" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Resource clipboard is empty or not a texture!" msgstr "রিসোরà§à¦¸ কà§à¦²à§€à¦ªà¦¬à§‹à¦°à§à¦¡ খালি অথবা কোনো টেকà§à¦¸à¦¾à¦° নয়!" @@ -7201,6 +7654,15 @@ msgid "Animation Frames:" msgstr "অà§à¦¯à¦¾à¦¨à¦¿à¦®à§‡à¦¶à¦¨à§‡à¦° ফà§à¦°à§‡à¦®à¦¸à¦®à§‚হ" #: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Add a Texture from File" +msgstr "শাখা (tree) হতে নোড (সমূহ) যà§à¦•à§à¦¤ করà§à¦¨" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Add Frames from a Sprite Sheet" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Insert Empty (Before)" msgstr "খালি বসà§à¦¤à§ যà§à¦•à§à¦¤ করà§à¦¨ (পূরà§à¦¬à§‡)" @@ -7220,6 +7682,30 @@ msgstr "বামে সরান" #: editor/plugins/sprite_frames_editor_plugin.cpp #, fuzzy +msgid "Select Frames" +msgstr "ফà§à¦°à§‡à¦®à¦¸à¦®à§‚হ সà§à¦¤à§‚প করà§à¦¨" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Horizontal:" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Vertical:" +msgstr "à¦à¦¾à¦°à¦Ÿà§‡à¦•à§à¦¸" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Select/Clear All Frames" +msgstr "সবগà§à¦²à¦¿ বাছাই করà§à¦¨" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Create Frames from Sprite Sheet" +msgstr "দৃশà§à¦¯ হতে তৈরি করবেন" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy msgid "SpriteFrames" msgstr "ফà§à¦°à§‡à¦®à¦¸à¦®à§‚হ সà§à¦¤à§‚প করà§à¦¨" @@ -7289,13 +7775,14 @@ msgstr "সবগà§à¦²à¦¿ যোগ করà§à¦¨" msgid "Remove All Items" msgstr "কà§à¦²à¦¾à¦¸à§‡à¦° আইটেম অপসারণ করà§à¦¨" -#: editor/plugins/theme_editor_plugin.cpp +#: editor/plugins/theme_editor_plugin.cpp editor/project_manager.cpp #, fuzzy msgid "Remove All" msgstr "অপসারণ করà§à¦¨" #: editor/plugins/theme_editor_plugin.cpp -msgid "Edit theme..." +#, fuzzy +msgid "Edit Theme" msgstr "থিম à¦à¦¡à¦¿à¦Ÿ করà§à¦¨..." #: editor/plugins/theme_editor_plugin.cpp @@ -7324,18 +7811,25 @@ msgid "Create From Current Editor Theme" msgstr "à¦à¦¡à¦¿à¦Ÿà¦°à§‡à¦° খালি টেমপà§à¦²à§‡à¦Ÿ তৈরি করà§à¦¨" #: editor/plugins/theme_editor_plugin.cpp -msgid "CheckBox Radio1" -msgstr "CheckBox Radioà§§" +#, fuzzy +msgid "Toggle Button" +msgstr "মাউসের বোতাম" #: editor/plugins/theme_editor_plugin.cpp -msgid "CheckBox Radio2" -msgstr "CheckBox Radio২" +#, fuzzy +msgid "Disabled Button" +msgstr "মধà§à¦¯ বোতাম" #: editor/plugins/theme_editor_plugin.cpp msgid "Item" msgstr "বসà§à¦¤à§/আইটেম" #: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Disabled Item" +msgstr "অসমরà§à¦¥" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Check Item" msgstr "আইটেম চিহà§à¦¨à¦¿à¦¤ করà§à¦¨" @@ -7354,6 +7848,24 @@ msgid "Checked Radio Item" msgstr "চিহà§à¦¨à¦¿à¦¤ আইটেম" #: editor/plugins/theme_editor_plugin.cpp +msgid "Named Sep." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Submenu" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Item 1" +msgstr "বসà§à¦¤à§/আইটেম" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Item 2" +msgstr "বসà§à¦¤à§/আইটেম" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Has" msgstr "আছে" @@ -7363,8 +7875,8 @@ msgstr "অনেক" #: editor/plugins/theme_editor_plugin.cpp #, fuzzy -msgid "Has,Many,Options" -msgstr "আছে,অনেক,à¦à¦•াধিক,সিদà§à¦§à¦¾à¦¨à§à¦¤à¦¸à¦®à§‚হ!" +msgid "Disabled LineEdit" +msgstr "অসমরà§à¦¥" #: editor/plugins/theme_editor_plugin.cpp msgid "Tab 1" @@ -7379,6 +7891,20 @@ msgid "Tab 3" msgstr "টà§à¦¯à¦¾à¦¬ à§©" #: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Editable Item" +msgstr "সমà§à¦ªà¦¾à¦¦à¦¨à¦¯à§‹à¦—à§à¦¯ অংশীদারীসমূহ" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Subtree" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Has,Many,Options" +msgstr "আছে,অনেক,à¦à¦•াধিক,সিদà§à¦§à¦¾à¦¨à§à¦¤à¦¸à¦®à§‚হ!" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Data Type:" msgstr "ডাটার ধরণ:" @@ -7413,6 +7939,7 @@ msgid "Fix Invalid Tiles" msgstr "অগà§à¦°à¦¹à¦¨à¦¯à§‹à¦—à§à¦¯ নাম।" #: editor/plugins/tile_map_editor_plugin.cpp +#: modules/gridmap/grid_map_editor_plugin.cpp #, fuzzy msgid "Cut Selection" msgstr "নিরà§à¦¬à¦¾à¦šà¦¨à¦•ে কেনà§à¦¦à§à¦°à§€à¦à§‚ত করà§à¦¨" @@ -7458,39 +7985,50 @@ msgstr "পà§à¦°à¦¤à¦¿à¦¬à¦¿à¦®à§à¦¬ Y" #: editor/plugins/tile_map_editor_plugin.cpp #, fuzzy +msgid "Disable Autotile" +msgstr "সà§à¦¬à§Ÿà¦‚কà§à¦°à¦¿à§Ÿ টà§à¦•রো" + +#: editor/plugins/tile_map_editor_plugin.cpp +#, fuzzy +msgid "Enable Priority" +msgstr "নোড ফিলà§à¦Ÿà¦¾à¦°à¦¸à¦®à§‚হ সমà§à¦ªà¦¾à¦¦à¦¨ করà§à¦¨" + +#: editor/plugins/tile_map_editor_plugin.cpp +#, fuzzy msgid "Paint Tile" msgstr "TileMap আà¦à¦•à§à¦¨" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Pick Tile" -msgstr "টাইল পছনà§à¦¦ করà§à¦¨" +msgid "" +"Shift+RMB: Line Draw\n" +"Shift+Ctrl+RMB: Rectangle Paint" +msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy -msgid "Copy Selection" -msgstr "নিরà§à¦¬à¦¾à¦šà¦¿à¦¤ সমূহ অপসারণ করà§à¦¨" +msgid "Pick Tile" +msgstr "টাইল পছনà§à¦¦ করà§à¦¨" #: editor/plugins/tile_map_editor_plugin.cpp #, fuzzy -msgid "Rotate left" +msgid "Rotate Left" msgstr "ঘূরà§à¦£à¦¾à§Ÿà¦¨ মোড" #: editor/plugins/tile_map_editor_plugin.cpp #, fuzzy -msgid "Rotate right" +msgid "Rotate Right" msgstr "ডানে সরান" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Flip horizontally" +msgid "Flip Horizontally" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Flip vertically" +msgid "Flip Vertically" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp #, fuzzy -msgid "Clear transform" +msgid "Clear Transform" msgstr "রà§à¦ªà¦¾à¦¨à§à¦¤à¦°" #: editor/plugins/tile_set_editor_plugin.cpp @@ -7530,6 +8068,46 @@ msgid "Select the previous shape, subtile, or Tile." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Region Mode" +msgstr "চালানোর মোড:" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Collision Mode" +msgstr "অà§à¦¯à¦¾à¦¨à¦¿à¦®à§‡à¦¶à¦¨à§‡à¦° নোড" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Occlusion Mode" +msgstr "Poly সমà§à¦ªà¦¾à¦¦à¦¨ করà§à¦¨" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Navigation Mode" +msgstr "Navigation Mesh তৈরি করà§à¦¨" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Bitmask Mode" +msgstr "ঘূরà§à¦£à¦¾à§Ÿà¦¨ মোড" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Priority Mode" +msgstr "à¦à¦•à§à¦¸à¦ªà§‹à¦°à§à¦Ÿ মোড:" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Icon Mode" +msgstr "পà§à¦¯à¦¾à¦¨ মোড" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Z Index Mode" +msgstr "পà§à¦¯à¦¾à¦¨ মোড" + +#: editor/plugins/tile_set_editor_plugin.cpp msgid "Copy bitmask." msgstr "" @@ -7619,6 +8197,7 @@ msgstr "বিনà§à¦¦à§ অপসারণ করà§à¦¨" msgid "" "LMB: Set bit on.\n" "RMB: Set bit off.\n" +"Shift+LMB: Set wildcard bit.\n" "Click on another Tile to edit it." msgstr "à¦à¦‡-মà§à¦¹à§‚রà§à¦¤à§‡ সমà§à¦ªà¦¾à¦¦à¦¿à¦¤ রিসোরà§à¦¸à¦Ÿà¦¿ সংরকà§à¦·à¦£ করà§à¦¨à¥¤" @@ -7745,6 +8324,79 @@ msgid "TileSet" msgstr "TileSet (টাইল-সেট)..." #: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Add input +" +msgstr "ইনপà§à¦Ÿ যোগ করà§à¦¨" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Add output +" +msgstr "ইনপà§à¦Ÿ যোগ করà§à¦¨" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar" +msgstr "সà§à¦•েল/মাপ:" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector" +msgstr "পরিদরà§à¦¶à¦•/পরীকà§à¦·à¦•" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Add input port" +msgstr "ইনপà§à¦Ÿ যোগ করà§à¦¨" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add output port" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change input port type" +msgstr "ডিফলà§à¦Ÿ ধরণ পরিবরà§à¦¤à¦¨ করà§à¦¨" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change output port type" +msgstr "ডিফলà§à¦Ÿ ধরণ পরিবরà§à¦¤à¦¨ করà§à¦¨" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change input port name" +msgstr "ইনপà§à¦Ÿ নাম পরিবরà§à¦¤à¦¨ করà§à¦¨" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change output port name" +msgstr "ইনপà§à¦Ÿ নাম পরিবরà§à¦¤à¦¨ করà§à¦¨" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Remove input port" +msgstr "পথের বিনà§à¦¦à§ অপসারণ করà§à¦¨" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Remove output port" +msgstr "পথের বিনà§à¦¦à§ অপসারণ করà§à¦¨" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Set expression" +msgstr "অà¦à¦¿à¦¬à§à¦¯à¦•à§à¦¤à¦¿ (Expression) পরিবরà§à¦¤à¦¨ করà§à¦¨" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Resize VisualShader node" +msgstr "শেডার" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Set Uniform Name" msgstr "" @@ -7788,6 +8440,858 @@ msgstr "ডান" #: editor/plugins/visual_shader_editor_plugin.cpp #, fuzzy +msgid "Create Shader Node" +msgstr "নোড তৈরি করà§à¦¨" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Color function." +msgstr "ফাংশনে যান..." + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Color operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Grayscale function." +msgstr "নিরà§à¦®à¦¾à¦£ ফাংশন" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts HSV vector to RGB equivalent." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts RGB vector to HSV equivalent." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Sepia function." +msgstr "ফাংশনের (Function) নতà§à¦¨ নামকরণ করà§à¦¨" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Burn operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Darken operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Difference operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Dodge operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "HardLight operator" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Lighten operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Overlay operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Screen operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "SoftLight operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Color constant." +msgstr "ধà§à¦°à§à¦¬à¦•/কনà§à¦¸à¦Ÿà§à¦¯à¦¾à¦¨à§à¦Ÿ" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Color uniform." +msgstr "রà§à¦ªà¦¾à¦¨à§à¦¤à¦°" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns an associated vector if the provided scalars are equal, greater or " +"less." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns an associated vector if the provided boolean value is true or false." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Boolean constant." +msgstr "à¦à§‡à¦•à§à¦Ÿà¦° ধà§à¦°à§à¦¬à¦• পরিবরà§à¦¤à¦¨ করà§à¦¨" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'camera' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'inv_camera' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'inv_projection' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'normal' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'projection' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'time' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'viewport_size' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'world' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'texture_pixel_size' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Input parameter." +msgstr "ধারক/বাহক পরà§à¦¯à¦¨à§à¦¤ বিসà§à¦¤à§ƒà¦¤ করà§à¦¨" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'binormal' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'fragcoord' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_coord' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_uv' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'side' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'tangent' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv2' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'vertex' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'view' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'albedo' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'attenuation' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'diffuse' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_color' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'roughness' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'specular' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'transmission' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'modelview' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_size' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'tangent' input parameter for vertex and fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_pass' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_coord' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_pixel_size' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_uv' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_alpha' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_height' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_uv' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_vec' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'normal' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'shadow_color' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'extra' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'projection' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'vertex' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'world' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'active' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'custom' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'custom_alpha' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'delta' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'emission_transform' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'index' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'lifetime' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'restart' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'time' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'transform' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'velocity' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar function." +msgstr "সà§à¦•েলার ফাংশন পরিবরà§à¦¤à¦¨ করà§à¦¨" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar operator." +msgstr "সà§à¦•েলার অপারেটর পরিবরà§à¦¤à¦¨ করà§à¦¨" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "E constant (2.718282). Represents the base of the natural logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Epsilon constant (0.00001). Smallest possible scalar number." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Phi constant (1.618034). Golden ratio." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi/4 constant (0.785398) or 45 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi/2 constant (1.570796) or 90 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi constant (3.141593) or 180 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Tau constant (6.283185) or 360 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Sqrt2 constant (1.414214). Square root of 2." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the absolute value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-tangent of the parameters." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Finds the nearest integer that is greater than or equal to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Constrains a value to lie between two further values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts a quantity in radians to degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-e Exponential." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-2 Exponential." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Finds the nearest integer less than or equal to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Computes the fractional part of the argument." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the inverse of the square root of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Natural logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-2 logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the greater of two values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the lesser of two values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Linear interpolation between two scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the opposite value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 - scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns the value of the first parameter raised to the power of the second." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts a quantity in degrees to radians." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 / scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the nearest integer to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the nearest even integer to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Clamps the value between 0.0 and 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Extracts the sign of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the square root of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( scalar(edge0), scalar(edge1), scalar(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if x is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( scalar(edge), scalar(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the truncated value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Adds scalar to scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Divides scalar by scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies scalar by scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the remainder of the two scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Subtracts scalar from scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar constant." +msgstr "সà§à¦•েলার ধà§à¦°à§à¦¬à¦• পরিবরà§à¦¤à¦¨ করà§à¦¨" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar uniform." +msgstr "সà§à¦•েলার ইউনিফরà§à¦® পরিবরà§à¦¤à¦¨ করà§à¦¨" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Perform the cubic texture lookup." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Perform the texture lookup." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Cubic texture uniform." +msgstr "টেকà§à¦¸à¦¾à¦° ইউনিফরà§à¦® পরিবরà§à¦¤à¦¨ করà§à¦¨" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "2D texture uniform." +msgstr "টেকà§à¦¸à¦¾à¦° ইউনিফরà§à¦® পরিবরà§à¦¤à¦¨ করà§à¦¨" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Transform function." +msgstr "রà§à¦ªà¦¾à¦¨à§à¦¤à¦°à§‡à¦° à¦à¦° সংলাপ..." + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) Calculate the outer product of a pair of vectors.\n" +"\n" +"OuterProduct treats the first parameter 'c' as a column vector (matrix with " +"one column) and the second parameter 'r' as a row vector (matrix with one " +"row) and does a linear algebraic matrix multiply 'c * r', yielding a matrix " +"whose number of rows is the number of components in 'c' and whose number of " +"columns is the number of components in 'r'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Composes transform from four vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Decomposes transform to four vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the determinant of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the inverse of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the transpose of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies transform by transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies vector by transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Transform constant." +msgstr "রà§à¦ªà¦¾à¦¨à§à¦¤à¦° নিষà§à¦«à¦²à¦¾ করা হয়েছে।" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Transform uniform." +msgstr "রà§à¦ªà¦¾à¦¨à§à¦¤à¦° নিষà§à¦«à¦²à¦¾ করা হয়েছে।" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector function." +msgstr "ফাংশনে যান..." + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector operator." +msgstr "à¦à§‡à¦•à§à¦Ÿà¦° অপারেটর পরিবরà§à¦¤à¦¨ করà§à¦¨" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Composes vector from three scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Decomposes vector to three scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the cross product of two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the distance between two points." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the dot product of two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns a vector that points in the same direction as a reference vector. " +"The function has three vector parameters : N, the vector to orient, I, the " +"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 "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the length of a vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Linear interpolation between two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the normalize product of vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 - vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 / vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns a vector that points in the direction of reflection ( a : incident " +"vector, b : normal vector )." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns a vector that points in the direction of refraction." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( vector(edge0), vector(edge1), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if 'x' is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( scalar(edge0), scalar(edge1), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if 'x' is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( vector(edge), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( scalar(edge), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Adds vector to vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Divides vector by vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies vector by vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the remainder of the two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Subtracts vector from vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector constant." +msgstr "à¦à§‡à¦•à§à¦Ÿà¦° ধà§à¦°à§à¦¬à¦• পরিবরà§à¦¤à¦¨ করà§à¦¨" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector uniform." +msgstr "à¦à§‡à¦•à§à¦Ÿà¦° ইউনিফরà§à¦® পরিবরà§à¦¤à¦¨ করà§à¦¨" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Custom Godot Shader Language expression, with custom amount of input and " +"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 "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns falloff based on the dot product of surface normal and view " +"direction of camera (pass associated inputs to it)." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) (Fragment/Light mode only) Scalar derivative function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) (Fragment/Light mode only) Vector derivative function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Derivative in 'x' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Derivative in 'x' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Derivative in 'y' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Derivative in 'y' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Sum of absolute derivative " +"in 'x' and 'y'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Sum of absolute derivative " +"in 'x' and 'y'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy msgid "VisualShader" msgstr "শেডার" @@ -8008,6 +9512,10 @@ msgid "Directory already contains a Godot project." msgstr "" #: editor/project_manager.cpp +msgid "New Game Project" +msgstr "নতà§à¦¨ গেম পà§à¦°à¦•লà§à¦ª" + +#: editor/project_manager.cpp msgid "Imported Project" msgstr "পà§à¦°à¦•লà§à¦ª ইমà§à¦ªà§‹à¦°à§à¦Ÿ করা হয়েছে" @@ -8060,10 +9568,6 @@ msgid "Rename Project" msgstr "নামহীন পà§à¦°à¦•লà§à¦ª" #: editor/project_manager.cpp -msgid "New Game Project" -msgstr "নতà§à¦¨ গেম পà§à¦°à¦•লà§à¦ª" - -#: editor/project_manager.cpp msgid "Import Existing Project" msgstr "বিদà§à¦¯à¦®à¦¾à¦¨ পà§à¦°à¦•লà§à¦ª ইমà§à¦ªà§‹à¦°à§à¦Ÿ করà§à¦¨" @@ -8095,11 +9599,6 @@ msgid "Project Name:" msgstr "পà§à¦°à¦•লà§à¦ªà§‡à¦° নাম:" #: editor/project_manager.cpp -#, fuzzy -msgid "Create folder" -msgstr "ফোলà§à¦¡à¦¾à¦° তৈরি করà§à¦¨" - -#: editor/project_manager.cpp msgid "Project Path:" msgstr "পà§à¦°à¦•লà§à¦ªà§‡à¦° পথ:" @@ -8109,10 +9608,6 @@ msgid "Project Installation Path:" msgstr "পà§à¦°à¦•লà§à¦ªà§‡à¦° পথ:" #: editor/project_manager.cpp -msgid "Browse" -msgstr "বà§à¦°à¦¾à¦‰à¦¸" - -#: editor/project_manager.cpp msgid "Renderer:" msgstr "" @@ -8166,8 +9661,8 @@ msgid "" "\n" "If you proceed with opening it, it will be converted to Godot's current " "configuration file format.\n" -"Warning: You will not be able to open the project with previous versions of " -"the engine anymore." +"Warning: You won't be able to open the project with previous versions of the " +"engine anymore." msgstr "" #: editor/project_manager.cpp @@ -8178,8 +9673,8 @@ msgid "" "%s\n" "\n" "Do you want to convert it?\n" -"Warning: You will not be able to open the project with previous versions of " -"the engine anymore." +"Warning: You won't be able to open the project with previous versions of the " +"engine anymore." msgstr "" #: editor/project_manager.cpp @@ -8192,7 +9687,7 @@ msgstr "" #, fuzzy msgid "" "Can't run project: no main scene defined.\n" -"Please edit the project and set the main scene in \"Project Settings\" under " +"Please edit the project and set the main scene in the Project Settings under " "the \"Application\" category." msgstr "" "কোনো মà§à¦–à§à¦¯ দৃশà§à¦¯ নিরà§à¦§à¦¾à¦°à¦£ করা হয়নি, নিরà§à¦§à¦¾à¦°à¦£ করবেন?\n" @@ -8208,25 +9703,45 @@ msgstr "" "ইমà§à¦ªà§‹à¦°à§à¦Ÿ শà§à¦°à§ করার জনà§à¦¯ পà§à¦°à¦œà§‡à¦•à§à¦Ÿ à¦à¦¡à¦¿à¦Ÿ করà§à¦¨à¥¤" #: editor/project_manager.cpp -msgid "Are you sure to run more than one project?" +#, fuzzy +msgid "Are you sure to run %d projects at once?" msgstr "à¦à¦•ধিক পà§à¦°à¦•লà§à¦ª চালানোয় আপনি সà§à¦¨à¦¿à¦¶à§à¦šà¦¿à¦¤?" #: editor/project_manager.cpp -msgid "Remove project from the list? (Folder contents will not be modified)" +#, fuzzy +msgid "" +"Remove %d projects from the list?\n" +"The project folders' contents won't be modified." +msgstr "তালিকা হতে পà§à¦°à¦•লà§à¦ª অপসারণ করবেন? (ফোলà§à¦¡à¦¾à¦°à§‡à¦° বিষয়াদি পরিবরà§à¦¤à¦¨ হবে না)" + +#: editor/project_manager.cpp +#, fuzzy +msgid "" +"Remove this project from the list?\n" +"The project folder's contents won't be modified." msgstr "তালিকা হতে পà§à¦°à¦•লà§à¦ª অপসারণ করবেন? (ফোলà§à¦¡à¦¾à¦°à§‡à¦° বিষয়াদি পরিবরà§à¦¤à¦¨ হবে না)" #: editor/project_manager.cpp +#, fuzzy +msgid "" +"Remove all missing projects from the list? (Folders contents will not be " +"modified)" +msgstr "তালিকা হতে পà§à¦°à¦•লà§à¦ª অপসারণ করবেন? (ফোলà§à¦¡à¦¾à¦°à§‡à¦° বিষয়াদি পরিবরà§à¦¤à¦¨ হবে না)" + +#: editor/project_manager.cpp +#, fuzzy msgid "" "Language changed.\n" -"The UI will update next time the editor or project manager starts." +"The interface will update after restarting the editor or project manager." msgstr "" "à¦à¦¾à¦·à¦¾ পরিবরà§à¦¤à¦¨ করা হয়েছে।\n" "পরবরà§à¦¤à§€à¦¤à§‡ পà§à¦°à¦œà§‡à¦•à§à¦Ÿ মà§à¦¯à¦¾à¦¨à§‡à¦œà¦¾à¦° অথবা à¦à¦¡à¦¿à¦Ÿà¦° শà§à¦°à§ হওয়ার সময় ইউ আই পরিবরà§à¦¤à¦¨à¦¸à¦®à§‚হ বà§à¦¯à¦¬à¦¹à§ƒà¦¤ হবে।" #: editor/project_manager.cpp +#, fuzzy msgid "" -"You are about the scan %s folders for existing Godot projects. Do you " -"confirm?" +"Are you sure to scan %s folders for existing Godot projects?\n" +"This could take a while." msgstr "" "বিদà§à¦¯à¦®à¦¾à¦¨ Godot পà§à¦°à¦œà§‡à¦•à§à¦Ÿà§‡à¦° খোà¦à¦œà§‡ আপনি %s ফোলà§à¦¡à¦¾à¦°à¦¸à¦®à§‚হ সà§à¦•à§à¦¯à¦¾à¦¨ করতে যাচà§à¦›à§‡à¦¨à¥¤ আপনি কি " "সà§à¦¨à¦¿à¦¶à§à¦šà¦¿à¦¤?" @@ -8253,6 +9768,11 @@ msgstr "নতà§à¦¨ পà§à¦°à¦•লà§à¦ª" #: editor/project_manager.cpp #, fuzzy +msgid "Remove Missing" +msgstr "পথের বিনà§à¦¦à§ অপসারণ করà§à¦¨" + +#: editor/project_manager.cpp +#, fuzzy msgid "Templates" msgstr "বসà§à¦¤à§ অপসারণ করà§à¦¨" @@ -8272,8 +9792,8 @@ msgstr "সংযোগ..." #: editor/project_manager.cpp msgid "" -"You don't currently have any projects.\n" -"Would you like to explore the official example projects in the Asset Library?" +"You currently don't have any projects.\n" +"Would you like to explore official example projects in the Asset Library?" msgstr "" #: editor/project_settings_editor.cpp @@ -8299,7 +9819,8 @@ msgid "" msgstr "" #: editor/project_settings_editor.cpp -msgid "Action '%s' already exists!" +#, fuzzy +msgid "An action with the name '%s' already exists." msgstr "'%s' অà§à¦¯à¦¾à¦•শন ইতিমধà§à¦¯à§‡à¦‡ বিদà§à¦¯à¦®à¦¾à¦¨!" #: editor/project_settings_editor.cpp @@ -8466,11 +9987,6 @@ msgid "" msgstr "" #: editor/project_settings_editor.cpp -#, fuzzy -msgid "Already existing" -msgstr "সà§à¦¥à¦¾à§Ÿà§€à§Ÿà¦¤à¦¾ টগল করà§à¦¨" - -#: editor/project_settings_editor.cpp msgid "Add Input Action" msgstr "ইনপà§à¦Ÿ অà§à¦¯à¦¾à¦•শন যোগ করà§à¦¨" @@ -8537,7 +10053,7 @@ msgid "Override For..." msgstr "ওà¦à¦¾à¦°à¦°à¦¾à¦‡à¦¡..." #: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp -msgid "Editor must be restarted for changes to take effect" +msgid "The editor must be restarted for changes to take effect." msgstr "" #: editor/project_settings_editor.cpp @@ -8599,11 +10115,12 @@ msgstr "ছবির ফিলà§à¦Ÿà¦¾à¦°:" #: editor/project_settings_editor.cpp #, fuzzy -msgid "Show all locales" +msgid "Show All Locales" msgstr "বোনà§â€Œ/হাড় দেখান" #: editor/project_settings_editor.cpp -msgid "Show only selected locales" +#, fuzzy +msgid "Show Selected Locales Only" msgstr "শà§à¦§à§à¦®à¦¾à¦¤à§à¦° নিরà§à¦¬à¦¾à¦šà¦¿à¦¤ লোকালগà§à¦²à¦¿ দেখান" #: editor/project_settings_editor.cpp @@ -8621,14 +10138,6 @@ msgid "AutoLoad" msgstr "সà§à¦¬à§Ÿà¦‚কà§à¦°à¦¿à§Ÿ-লোড" #: editor/property_editor.cpp -msgid "Ease In" -msgstr "আনà§à¦¤-সহজাগমন" - -#: editor/property_editor.cpp -msgid "Ease Out" -msgstr "বহিঃ-সহজাগমন" - -#: editor/property_editor.cpp msgid "Zero" msgstr "শূনà§à¦¯" @@ -8706,7 +10215,7 @@ msgstr "" #: editor/rename_dialog.cpp #, fuzzy -msgid "Advanced options" +msgid "Advanced Options" msgstr "অà§à¦¯à¦¾à¦¨à¦¿à¦®à§‡à¦¶à¦¨à§‡à¦° সিদà§à¦§à¦¾à¦¨à§à¦¤à¦¸à¦®à§‚হ" #: editor/rename_dialog.cpp @@ -8977,8 +10486,8 @@ msgstr "উতà§à¦¤à¦°à¦¾à¦§à¦¿à¦•ারতà§à¦¬ পরিসà§à¦•ার কà #: editor/scene_tree_dock.cpp #, fuzzy -msgid "Custom Node" -msgstr "নোড-সমূহ করà§à¦¤à¦¨/কাট করà§à¦¨" +msgid "Other Node" +msgstr "নোড(সমূহ) অপসারণ করà§à¦¨" #: editor/scene_tree_dock.cpp msgid "Can't operate on nodes from a foreign scene!" @@ -9023,7 +10532,7 @@ msgstr "উতà§à¦¤à¦°à¦¾à¦§à¦¿à¦•ারতà§à¦¬ পরিসà§à¦•ার কà #: editor/scene_tree_dock.cpp #, fuzzy -msgid "Open documentation" +msgid "Open Documentation" msgstr "রেফারেনà§à¦¸à§‡à¦° ডকà§à¦®à§‡à¦¨à§à¦Ÿà§‡à¦¶à¦¨à§‡ খà§à¦à¦œà§à¦¨à¥¤" #: editor/scene_tree_dock.cpp @@ -9052,7 +10561,7 @@ msgstr "দৃশà§à¦¯ হতে à¦à¦•তà§à¦°à¦¿à¦¤ করà§à¦¨" msgid "Save Branch as Scene" msgstr "পà§à¦°à¦¶à¦¾à¦–াকে দৃশà§à¦¯ হিসেবে সংরকà§à¦·à¦£ করà§à¦¨" -#: editor/scene_tree_dock.cpp +#: editor/scene_tree_dock.cpp editor/script_editor_debugger.cpp #, fuzzy msgid "Copy Node Path" msgstr "পথ পà§à¦°à¦¤à¦¿à¦²à¦¿à¦ªà¦¿/কপি করà§à¦¨" @@ -9101,6 +10610,21 @@ msgid "Toggle Visible" msgstr "Spatial দৃশà§à¦¯à¦®à¦¾à¦¨à¦¤à¦¾ টগল করà§à¦¨" #: editor/scene_tree_editor.cpp +#, fuzzy +msgid "Unlock Node" +msgstr "à¦à¦•টি নোড নিরà§à¦¬à¦¾à¦šà¦¨ করà§à¦¨" + +#: editor/scene_tree_editor.cpp +#, fuzzy +msgid "Button Group" +msgstr "বোতাম à§" + +#: editor/scene_tree_editor.cpp +#, fuzzy +msgid "(Connecting From)" +msgstr "সংযোগ..." + +#: editor/scene_tree_editor.cpp msgid "Node configuration warning:" msgstr "নোড কনফিগারেশন সতরà§à¦•বারà§à¦¤à¦¾:" @@ -9129,9 +10653,9 @@ msgstr "" "à¦à¦‡ নোডটি à¦à¦•টি গà§à¦°à§à¦ªà§‡à¦° অনà§à¦¤à¦°à§à¦à§à¦•à§à¦¤à¥¤\n" "গà§à¦°à§à¦ª ডক পà§à¦°à¦¦à¦°à§à¦¶à¦¨ করতে কà§à¦²à¦¿à¦• করà§à¦¨à¥¤" -#: editor/scene_tree_editor.cpp editor/script_create_dialog.cpp +#: editor/scene_tree_editor.cpp #, fuzzy -msgid "Open Script" +msgid "Open Script:" msgstr "পরবরà§à¦¤à§€ সà§à¦•à§à¦°à¦¿à¦ªà§à¦Ÿ" #: editor/scene_tree_editor.cpp @@ -9185,78 +10709,85 @@ msgstr "à¦à¦•টি নোড নিরà§à¦¬à¦¾à¦šà¦¨ করà§à¦¨" #: editor/script_create_dialog.cpp #, fuzzy -msgid "Error loading template '%s'" -msgstr "ছবি লোডে সমসà§à¦¯à¦¾ হয়েছে:" +msgid "Path is empty." +msgstr "পথটি খালি" #: editor/script_create_dialog.cpp #, fuzzy -msgid "Error - Could not create script in filesystem." -msgstr "ফাইলসিসà§à¦Ÿà§‡à¦®à§‡ সà§à¦•à§à¦°à¦¿à¦ªà§à¦Ÿ তৈরি করা সমà§à¦à¦¬ হয়নি।" +msgid "Filename is empty." +msgstr "সংরকà§à¦·à¦£à§‡à¦° পথটি খালি!" #: editor/script_create_dialog.cpp -msgid "Error loading script from %s" -msgstr "%s হতে সà§à¦•à§à¦°à¦¿à¦ªà§à¦Ÿ তà§à¦²à¦¤à§‡/লোডে সমসà§à¦¯à¦¾ হয়েছে" +#, fuzzy +msgid "Path is not local." +msgstr "পথটি সà§à¦¥à¦¾à¦¨à§€à§Ÿ নয়" #: editor/script_create_dialog.cpp -msgid "N/A" -msgstr "না/আ" +#, fuzzy +msgid "Invalid base path." +msgstr "বেস পথ অগà§à¦°à¦¹à¦£à¦¯à§‹à¦—à§à¦¯" #: editor/script_create_dialog.cpp #, fuzzy -msgid "Open Script/Choose Location" -msgstr "à¦à¦¡à¦¿à¦Ÿà¦°à§‡ খà§à¦²à§à¦¨" +msgid "A directory with the same name exists." +msgstr "à¦à¦•ই নামের ডিরেকà§à¦Ÿà¦°à¦¿ বিদà§à¦¯à¦®à¦¾à¦¨" #: editor/script_create_dialog.cpp -msgid "Path is empty" -msgstr "পথটি খালি" +#, fuzzy +msgid "Invalid extension." +msgstr "অগà§à¦°à¦¹à¦£à¦¯à§‹à¦—à§à¦¯ à¦à¦•à§à¦¸à¦Ÿà§‡à¦¨à¦¶à¦¨" #: editor/script_create_dialog.cpp #, fuzzy -msgid "Filename is empty" -msgstr "সংরকà§à¦·à¦£à§‡à¦° পথটি খালি!" +msgid "Wrong extension chosen." +msgstr "à¦à§à¦² à¦à¦•à§à¦¸à¦Ÿà§‡à¦¨à¦¶à¦¨ নিরà§à¦¬à¦¾à¦šà¦¿à¦¤" #: editor/script_create_dialog.cpp -msgid "Path is not local" -msgstr "পথটি সà§à¦¥à¦¾à¦¨à§€à§Ÿ নয়" +#, fuzzy +msgid "Error loading template '%s'" +msgstr "ছবি লোডে সমসà§à¦¯à¦¾ হয়েছে:" #: editor/script_create_dialog.cpp -msgid "Invalid base path" -msgstr "বেস পথ অগà§à¦°à¦¹à¦£à¦¯à§‹à¦—à§à¦¯" +#, fuzzy +msgid "Error - Could not create script in filesystem." +msgstr "ফাইলসিসà§à¦Ÿà§‡à¦®à§‡ সà§à¦•à§à¦°à¦¿à¦ªà§à¦Ÿ তৈরি করা সমà§à¦à¦¬ হয়নি।" #: editor/script_create_dialog.cpp -msgid "Directory of the same name exists" -msgstr "à¦à¦•ই নামের ডিরেকà§à¦Ÿà¦°à¦¿ বিদà§à¦¯à¦®à¦¾à¦¨" +msgid "Error loading script from %s" +msgstr "%s হতে সà§à¦•à§à¦°à¦¿à¦ªà§à¦Ÿ তà§à¦²à¦¤à§‡/লোডে সমসà§à¦¯à¦¾ হয়েছে" #: editor/script_create_dialog.cpp -#, fuzzy -msgid "File exists, will be reused" -msgstr "à¦à¦•ই নামের ফাইল উপসà§à¦¥à¦¿à¦¤, তা মà§à¦›à§‡ লিখবেন?" +msgid "N/A" +msgstr "না/আ" #: editor/script_create_dialog.cpp -msgid "Invalid extension" -msgstr "অগà§à¦°à¦¹à¦£à¦¯à§‹à¦—à§à¦¯ à¦à¦•à§à¦¸à¦Ÿà§‡à¦¨à¦¶à¦¨" +#, fuzzy +msgid "Open Script / Choose Location" +msgstr "à¦à¦¡à¦¿à¦Ÿà¦°à§‡ খà§à¦²à§à¦¨" #: editor/script_create_dialog.cpp -msgid "Wrong extension chosen" -msgstr "à¦à§à¦² à¦à¦•à§à¦¸à¦Ÿà§‡à¦¨à¦¶à¦¨ নিরà§à¦¬à¦¾à¦šà¦¿à¦¤" +#, fuzzy +msgid "Open Script" +msgstr "পরবরà§à¦¤à§€ সà§à¦•à§à¦°à¦¿à¦ªà§à¦Ÿ" #: editor/script_create_dialog.cpp #, fuzzy -msgid "Invalid Path" -msgstr "অকারà§à¦¯à¦•র পথ।" +msgid "File exists, it will be reused." +msgstr "à¦à¦•ই নামের ফাইল উপসà§à¦¥à¦¿à¦¤, তা মà§à¦›à§‡ লিখবেন?" #: editor/script_create_dialog.cpp -msgid "Invalid class name" +#, fuzzy +msgid "Invalid class name." msgstr "অগà§à¦°à¦¹à¦£à¦¯à§‹à¦—à§à¦¯ কà§à¦²à¦¾à¦¸ নাম" #: editor/script_create_dialog.cpp #, fuzzy -msgid "Invalid inherited parent name or path" +msgid "Invalid inherited parent name or path." msgstr "সূচক/ইনডেকà§à¦¸ মানের অগà§à¦°à¦¹à¦¨à¦¯à§‹à¦—à§à¦¯ নাম।" #: editor/script_create_dialog.cpp #, fuzzy -msgid "Script valid" +msgid "Script is valid." msgstr "সà§à¦•à§à¦°à¦¿à¦ªà§à¦Ÿ" #: editor/script_create_dialog.cpp @@ -9264,17 +10795,18 @@ msgid "Allowed: a-z, A-Z, 0-9 and _" msgstr "অনà§à¦®à§‹à¦¦à¦¿à¦¤: a-z, A-Z, 0-9 à¦à¦¬à¦‚ _" #: editor/script_create_dialog.cpp -msgid "Built-in script (into scene file)" +#, fuzzy +msgid "Built-in script (into scene file)." msgstr "বিলà§à¦Ÿ ইন সà§à¦•à§à¦°à¦¿à¦ªà§à¦Ÿ (সিন ফাইলে)" #: editor/script_create_dialog.cpp #, fuzzy -msgid "Create new script file" +msgid "Will create a new script file." msgstr "নতà§à¦¨ সà§à¦•à§à¦°à¦¿à¦ªà§à¦Ÿ তৈরি করà§à¦¨" #: editor/script_create_dialog.cpp #, fuzzy -msgid "Load existing script file" +msgid "Will load an existing script file." msgstr "বিদà§à¦¯à¦®à¦¾à¦¨ সà§à¦•à§à¦°à¦¿à¦ªà§à¦Ÿ লোড করà§à¦¨" #: editor/script_create_dialog.cpp @@ -9412,6 +10944,10 @@ msgstr "সকà§à¦°à¦¿à¦¯à¦¼à¦à¦¾à¦¬à§‡ মূল সমà§à¦ªà¦¾à¦¦à¦¨ কর msgid "Set From Tree" msgstr "শাখা হতে সà§à¦¥à¦¾à¦ªà¦¨ করà§à¦¨" +#: editor/script_editor_debugger.cpp +msgid "Export measures as CSV" +msgstr "" + #: editor/settings_config_dialog.cpp #, fuzzy msgid "Erase Shortcut" @@ -9555,6 +11091,15 @@ msgid "GDNativeLibrary" msgstr "জিডিনà§à¦¯à¦¾à¦Ÿà¦¿à¦" #: 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 "হাল-নাগাদকারী ঘূরà§à¦£à¦• নিষà§à¦•à§à¦°à¦¿à§Ÿ করà§à¦¨" + +#: modules/gdnative/gdnative_library_singleton_editor.cpp #, fuzzy msgid "Library" msgstr "MeshLibrary (মেস-লাইবà§à¦°à§‡à¦°à¦¿)..." @@ -9648,8 +11193,8 @@ msgstr "নিরà§à¦¬à¦¾à¦šà¦¿à¦¤ সমূহ অপসারণ করà§à¦¨ #: modules/gridmap/grid_map_editor_plugin.cpp #, fuzzy -msgid "GridMap Duplicate Selection" -msgstr "নিরà§à¦¬à¦¾à¦šà¦¿à¦¤ সমূহ অনà§à¦²à¦¿à¦ªà¦¿ করà§à¦¨" +msgid "GridMap Paste Selection" +msgstr "নিরà§à¦¬à¦¾à¦šà¦¿à¦¤ সমূহ অপসারণ করà§à¦¨" #: modules/gridmap/grid_map_editor_plugin.cpp #, fuzzy @@ -9724,21 +11269,6 @@ msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp #, fuzzy -msgid "Create Area" -msgstr "নতà§à¦¨ তৈরি করà§à¦¨" - -#: modules/gridmap/grid_map_editor_plugin.cpp -#, fuzzy -msgid "Create Exterior Connector" -msgstr "নতà§à¦¨ পà§à¦°à¦•লà§à¦ª তৈরি করà§à¦¨" - -#: modules/gridmap/grid_map_editor_plugin.cpp -#, fuzzy -msgid "Erase Area" -msgstr "TileMap মà§à¦›à§‡ ফেলà§à¦¨" - -#: modules/gridmap/grid_map_editor_plugin.cpp -#, fuzzy msgid "Clear Selection" msgstr "নিরà§à¦¬à¦¾à¦šà¦¨à¦•ে কেনà§à¦¦à§à¦°à§€à¦à§‚ত করà§à¦¨" @@ -10142,18 +11672,11 @@ msgid "Available Nodes:" msgstr "উপসà§à¦¥à¦¿à¦¤ নোডসমূহ:" #: modules/visual_script/visual_script_editor.cpp -msgid "Select or create a function to edit graph" +#, fuzzy +msgid "Select or create a function to edit its graph." msgstr "গà§à¦°à¦¾à¦« সমà§à¦ªà¦¾à¦¦à¦¨ করতে ফাংশন নিরà§à¦¬à¦¾à¦šà¦¨ অথবা তৈরি করà§à¦¨" #: modules/visual_script/visual_script_editor.cpp -msgid "Edit Signal Arguments:" -msgstr "সংকেত/সিগনà§à¦¯à¦¾à¦²-à¦à¦° মান/আরà§à¦—à§à¦®à§‡à¦¨à§à¦Ÿ-সমূহ সমà§à¦ªà¦¾à¦¦à¦¨ করà§à¦¨:" - -#: modules/visual_script/visual_script_editor.cpp -msgid "Edit Variable:" -msgstr "চলক/à¦à§‡à¦°à¦¿à§Ÿà§‡à¦¬à¦² সমà§à¦ªà¦¾à¦¦à¦¨ করà§à¦¨:" - -#: modules/visual_script/visual_script_editor.cpp msgid "Delete Selected" msgstr "নিরà§à¦¬à¦¾à¦šà¦¿à¦¤ সমূহ অপসারণ করà§à¦¨" @@ -10284,6 +11807,19 @@ msgid "Debug keystore not configured in the Editor Settings nor in the preset." msgstr "" #: platform/android/export/export.cpp +msgid "Custom build requires a valid Android SDK path in Editor Settings." +msgstr "" + +#: platform/android/export/export.cpp +msgid "Invalid Android SDK path for custom build in Editor Settings." +msgstr "" + +#: platform/android/export/export.cpp +msgid "" +"Android project is not installed for compiling. Install from Editor menu." +msgstr "" + +#: platform/android/export/export.cpp msgid "Invalid public key for APK expansion." msgstr "" @@ -10292,6 +11828,34 @@ msgstr "" msgid "Invalid package name:" msgstr "অগà§à¦°à¦¹à¦£à¦¯à§‹à¦—à§à¦¯ কà§à¦²à¦¾à¦¸ নাম" +#: platform/android/export/export.cpp +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 "" +"Android build version mismatch:\n" +" Template installed: %s\n" +" Godot Version: %s\n" +"Please reinstall Android build template from 'Project' menu." +msgstr "" + +#: platform/android/export/export.cpp +msgid "Building Android Project (gradle)" +msgstr "" + +#: 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 "" + +#: platform/android/export/export.cpp +msgid "No build apk generated at: " +msgstr "" + #: platform/iphone/export/export.cpp msgid "Identifier is missing." msgstr "" @@ -10575,27 +12139,27 @@ msgid "ARVRCamera must have an ARVROrigin node as its parent" msgstr "" #: scene/3d/arvr_nodes.cpp -msgid "ARVRController must have an ARVROrigin node as its parent" +msgid "ARVRController must have an ARVROrigin node as its parent." msgstr "" #: scene/3d/arvr_nodes.cpp msgid "" -"The controller id must not be 0 or this controller will not be bound to an " -"actual controller" +"The controller ID must not be 0 or this controller won't be bound to an " +"actual controller." msgstr "" #: scene/3d/arvr_nodes.cpp -msgid "ARVRAnchor must have an ARVROrigin node as its parent" +msgid "ARVRAnchor must have an ARVROrigin node as its parent." msgstr "" #: scene/3d/arvr_nodes.cpp msgid "" -"The anchor id must not be 0 or this anchor will not be bound to an actual " -"anchor" +"The anchor ID must not be 0 or this anchor won't be bound to an actual " +"anchor." msgstr "" #: scene/3d/arvr_nodes.cpp -msgid "ARVROrigin requires an ARVRCamera child node" +msgid "ARVROrigin requires an ARVRCamera child node." msgstr "" #: scene/3d/baked_lightmap.cpp @@ -10676,8 +12240,8 @@ msgstr "" #: scene/3d/cpu_particles.cpp msgid "" -"CPUParticles animation requires the usage of a SpatialMaterial with " -"\"Billboard Particles\" enabled." +"CPUParticles animation requires the usage of a SpatialMaterial whose " +"Billboard Mode is set to \"Particle Billboard\"." msgstr "" #: scene/3d/gi_probe.cpp @@ -10719,8 +12283,8 @@ msgstr "" #: scene/3d/particles.cpp msgid "" -"Particles animation requires the usage of a SpatialMaterial with \"Billboard " -"Particles\" enabled." +"Particles animation requires the usage of a SpatialMaterial whose Billboard " +"Mode is set to \"Particle Billboard\"." msgstr "" #: scene/3d/path.cpp @@ -10746,7 +12310,7 @@ msgid "Path property must point to a valid Spatial node to work." msgstr "Path à¦à¦° দিক অবশà§à¦¯à¦‡ à¦à¦•টি কারà§à¦¯à¦•র Spatial নোডের à¦à¦° দিকে নিরà§à¦¦à§‡à¦¶ করাতে হবে।" #: scene/3d/soft_body.cpp -msgid "This body will be ignored until you set a mesh" +msgid "This body will be ignored until you set a mesh." msgstr "" #: scene/3d/soft_body.cpp @@ -10854,7 +12418,7 @@ msgstr "" msgid "" "Container by itself serves no purpose unless a script configures it's " "children placement behavior.\n" -"If you dont't intend to add a script, then please use a plain 'Control' node " +"If you don't intend to add a script, then please use a plain 'Control' node " "instead." msgstr "" @@ -10866,11 +12430,6 @@ msgstr "সতরà§à¦•তা!" msgid "Please Confirm..." msgstr "অনà§à¦—à§à¦°à¦¹ করে নিশà§à¦šà¦¿à¦¤ করà§à¦¨..." -#: scene/gui/file_dialog.cpp -#, fuzzy -msgid "Go to parent folder." -msgstr "ফোলà§à¦¡à¦¾à¦° তৈরী করা সমà§à¦à¦¬ হয়নি।" - #: scene/gui/popup.cpp msgid "" "Popups will hide by default unless you call popup() or any of the popup*() " @@ -10952,6 +12511,87 @@ msgstr "" msgid "Varyings can only be assigned in vertex function." msgstr "" +#: servers/visual/shader_language.cpp +msgid "Constants cannot be modified." +msgstr "" + +#~ msgid "Path to Node:" +#~ msgstr "নোডের পথ:" + +#~ msgid "Delete selected files?" +#~ msgstr "নিরà§à¦¬à¦¾à¦šà¦¿à¦¤ ফাইলসমূহ অপসারণ করবেন?" + +#~ msgid "There is no 'res://default_bus_layout.tres' file." +#~ msgstr "'res://default_bus_layout.tres' ফাইল খà§à¦à¦œà§‡ পাওয়া যায়নি।" + +#, fuzzy +#~ msgid "Go to parent folder" +#~ msgstr "ফোলà§à¦¡à¦¾à¦° তৈরী করা সমà§à¦à¦¬ হয়নি।" + +#~ msgid "Select device from the list" +#~ msgstr "লিসà§à¦Ÿ থেকে ডিà¦à¦¾à¦‡à¦¸ সিলেকà§à¦Ÿ করà§à¦¨" + +#, fuzzy +#~ msgid "Open Scene(s)" +#~ msgstr "দৃশà§à¦¯ খà§à¦²à§à¦¨" + +#~ msgid "Previous Directory" +#~ msgstr "পূরà§à¦¬à§‡à¦° সà§à¦¥à¦¾à¦¨" + +#~ msgid "Next Directory" +#~ msgstr "পরের সà§à¦¥à¦¾à¦¨" + +#, fuzzy +#~ msgid "Ease in" +#~ msgstr "আনà§à¦¤-সহজাগমন" + +#, fuzzy +#~ msgid "Ease out" +#~ msgstr "বহিঃ-সহজাগমন" + +#~ msgid "Create Convex Static Body" +#~ msgstr "সà§à¦¥à¦¿à¦¤-কনà¦à§‡à¦•à§à¦¸ বডি তৈরি করà§à¦¨" + +#~ msgid "CheckBox Radio1" +#~ msgstr "CheckBox Radioà§§" + +#~ msgid "CheckBox Radio2" +#~ msgstr "CheckBox Radio২" + +#, fuzzy +#~ msgid "Create folder" +#~ msgstr "ফোলà§à¦¡à¦¾à¦° তৈরি করà§à¦¨" + +#, fuzzy +#~ msgid "Already existing" +#~ msgstr "সà§à¦¥à¦¾à§Ÿà§€à§Ÿà¦¤à¦¾ টগল করà§à¦¨" + +#, fuzzy +#~ msgid "Custom Node" +#~ msgstr "নোড-সমূহ করà§à¦¤à¦¨/কাট করà§à¦¨" + +#, fuzzy +#~ msgid "Invalid Path" +#~ msgstr "অকারà§à¦¯à¦•র পথ।" + +#, fuzzy +#~ msgid "GridMap Duplicate Selection" +#~ msgstr "নিরà§à¦¬à¦¾à¦šà¦¿à¦¤ সমূহ অনà§à¦²à¦¿à¦ªà¦¿ করà§à¦¨" + +#, fuzzy +#~ msgid "Create Area" +#~ msgstr "নতà§à¦¨ তৈরি করà§à¦¨" + +#, fuzzy +#~ msgid "Create Exterior Connector" +#~ msgstr "নতà§à¦¨ পà§à¦°à¦•লà§à¦ª তৈরি করà§à¦¨" + +#~ msgid "Edit Signal Arguments:" +#~ msgstr "সংকেত/সিগনà§à¦¯à¦¾à¦²-à¦à¦° মান/আরà§à¦—à§à¦®à§‡à¦¨à§à¦Ÿ-সমূহ সমà§à¦ªà¦¾à¦¦à¦¨ করà§à¦¨:" + +#~ msgid "Edit Variable:" +#~ msgstr "চলক/à¦à§‡à¦°à¦¿à§Ÿà§‡à¦¬à¦² সমà§à¦ªà¦¾à¦¦à¦¨ করà§à¦¨:" + #, fuzzy #~ msgid "Snap (s): " #~ msgstr "সà§à¦¨à§à¦¯à¦¾à¦ª (পিকà§à¦¸à§‡à¦²à¦¸à¦®à§‚হ):" @@ -11070,9 +12710,6 @@ msgstr "" #~ msgid "Class List:" #~ msgstr "কà§à¦²à¦¾à¦¸à§‡à¦° তালিকা:" -#~ msgid "Search Classes" -#~ msgstr "কà§à¦²à¦¾à¦¸à§‡à¦° অনà§à¦¸à¦¨à§à¦§à¦¾à¦¨ করà§à¦¨" - #, fuzzy #~ msgid "Public Methods" #~ msgstr "সরà§à¦¬à¦œà¦¨à§€à¦¨/পà§à¦°à¦•াশà§à¦¯ মেথডসমূহ:" @@ -11157,9 +12794,6 @@ msgstr "" #~ msgid "Error:" #~ msgstr "সমসà§à¦¯à¦¾:" -#~ msgid "Source:" -#~ msgstr "উৎস:" - #~ msgid "Function:" #~ msgstr "ফাংশন:" @@ -11182,21 +12816,9 @@ msgstr "" #~ msgid "Get" #~ msgstr "মান পান (Get)" -#~ msgid "Change Scalar Constant" -#~ msgstr "সà§à¦•েলার ধà§à¦°à§à¦¬à¦• পরিবরà§à¦¤à¦¨ করà§à¦¨" - -#~ msgid "Change Vec Constant" -#~ msgstr "à¦à§‡à¦•à§à¦Ÿà¦° ধà§à¦°à§à¦¬à¦• পরিবরà§à¦¤à¦¨ করà§à¦¨" - #~ msgid "Change RGB Constant" #~ msgstr "RGB ধà§à¦°à§à¦¬à¦• পরিবরà§à¦¤à¦¨ করà§à¦¨" -#~ msgid "Change Scalar Operator" -#~ msgstr "সà§à¦•েলার অপারেটর পরিবরà§à¦¤à¦¨ করà§à¦¨" - -#~ msgid "Change Vec Operator" -#~ msgstr "à¦à§‡à¦•à§à¦Ÿà¦° অপারেটর পরিবরà§à¦¤à¦¨ করà§à¦¨" - #~ msgid "Change Vec Scalar Operator" #~ msgstr "à¦à§‡à¦•à§à¦Ÿà¦° সà§à¦•েলার অপারেটর পরিবরà§à¦¤à¦¨ করà§à¦¨" @@ -11206,18 +12828,9 @@ msgstr "" #~ msgid "Toggle Rot Only" #~ msgstr "শà§à¦§à§à¦®à¦¾à¦¤à§à¦° ঘূরà§à¦£à¦¨ টগল করà§à¦¨" -#~ msgid "Change Scalar Function" -#~ msgstr "সà§à¦•েলার ফাংশন পরিবরà§à¦¤à¦¨ করà§à¦¨" - #~ msgid "Change Vec Function" #~ msgstr "à¦à§‡à¦•à§à¦Ÿà¦° ফাংশন পরিবরà§à¦¤à¦¨ করà§à¦¨" -#~ msgid "Change Scalar Uniform" -#~ msgstr "সà§à¦•েলার ইউনিফরà§à¦® পরিবরà§à¦¤à¦¨ করà§à¦¨" - -#~ msgid "Change Vec Uniform" -#~ msgstr "à¦à§‡à¦•à§à¦Ÿà¦° ইউনিফরà§à¦® পরিবরà§à¦¤à¦¨ করà§à¦¨" - #~ msgid "Change RGB Uniform" #~ msgstr "RGB ইউনিফরà§à¦® পরিবরà§à¦¤à¦¨ করà§à¦¨" @@ -11227,9 +12840,6 @@ msgstr "" #~ msgid "Change XForm Uniform" #~ msgstr "XForm ইউনিফরà§à¦® পরিবরà§à¦¤à¦¨ করà§à¦¨" -#~ msgid "Change Texture Uniform" -#~ msgstr "টেকà§à¦¸à¦¾à¦° ইউনিফরà§à¦® পরিবরà§à¦¤à¦¨ করà§à¦¨" - #~ msgid "Change Cubemap Uniform" #~ msgstr "Cubemap ইউনিফরà§à¦® পরিবরà§à¦¤à¦¨ করà§à¦¨" @@ -11248,9 +12858,6 @@ msgstr "" #~ msgid "Modify Curve Map" #~ msgstr "Curve Map পরিবরà§à¦¤à¦¨ করà§à¦¨" -#~ msgid "Change Input Name" -#~ msgstr "ইনপà§à¦Ÿ নাম পরিবরà§à¦¤à¦¨ করà§à¦¨" - #~ msgid "Connect Graph Nodes" #~ msgstr "গà§à¦°à¦¾à¦«à§‡à¦° নোডসমূহ সংযà§à¦•à§à¦¤ করà§à¦¨" @@ -11278,9 +12885,6 @@ msgstr "" #~ msgid "Add Shader Graph Node" #~ msgstr "Shader Graph Node যোগ করà§à¦¨" -#~ msgid "Disabled" -#~ msgstr "অসমরà§à¦¥" - #~ msgid "Move Anim Track Up" #~ msgstr "অà§à¦¯à¦¾à¦¨à¦¿à¦®à§‡à¦¶à¦¨ ( Anim) টà§à¦°à§à¦¯à¦¾à¦• আপ" @@ -11461,18 +13065,11 @@ msgstr "" #~ msgid "Item name or ID:" #~ msgstr "আইটেমের নাম বা আইডি:" -#, fuzzy -#~ msgid "Autotiles" -#~ msgstr "সà§à¦¬à§Ÿà¦‚কà§à¦°à¦¿à§Ÿ টà§à¦•রো" - #~ msgid "Export templates for this platform are missing/corrupted: " #~ msgstr "" #~ "à¦à¦‡ পà§à¦²à§à¦¯à¦¾à¦Ÿà¦«à¦°à§à¦®à§‡à¦° জনà§à¦¯ দরকারি à¦à¦•à§à¦¸à¦ªà§‹à¦°à§à¦Ÿ টেমপà§à¦²à§‡à¦Ÿà¦—à§à¦²à¦¿ কà§à¦·à¦¤à¦¿à¦—à§à¦°à¦¸à§à¦¥ হয়েছে অথবা খà§à¦à¦œà§‡ পাওয়া " #~ "যাচà§à¦›à§‡ না: " -#~ msgid "Button 7" -#~ msgstr "বোতাম à§" - #~ msgid "Button 8" #~ msgstr "বোতাম à§®" @@ -12359,9 +13956,6 @@ msgstr "" #~ msgid "Project Export Settings" #~ msgstr "পà§à¦°à¦•লà§à¦ª à¦à¦•à§à¦¸à¦ªà§‹à¦°à§à¦Ÿ-à¦à¦° সেটিংস" -#~ msgid "Target" -#~ msgstr "টারà§à¦—েট" - #~ msgid "Export to Platform" #~ msgstr "পà§à¦²à¦¾à¦Ÿà¦«à¦°à§à¦®à§‡ à¦à¦•à§à¦¸à¦ªà§‹à¦°à§à¦Ÿ করà§à¦¨" @@ -12416,9 +14010,6 @@ msgstr "" #~ msgid "Shrink By:" #~ msgstr "সঙà§à¦•োচন দà§à¦¬à¦¾à¦°à¦¾:" -#~ msgid "Preview Atlas" -#~ msgstr "à¦à¦Ÿà¦²à¦¾à¦¸/মানচিতà§à¦°à¦¾à¦¬à¦²à§€ পà§à¦°à¦¿à¦à¦¿à¦‰" - #~ msgid "Images:" #~ msgstr "ছবিসমূহ:" diff --git a/editor/translations/ca.po b/editor/translations/ca.po index cd87bb8a46..f8c7ccaf76 100644 --- a/editor/translations/ca.po +++ b/editor/translations/ca.po @@ -7,11 +7,12 @@ # Roger Blanco Ribera <roger.blancoribera@gmail.com>, 2016-2018. # Rubén Moreno <ruben.moreno.romero@gmail.com>, 2018. # roger <616steam@gmail.com>, 2019. +# Roger BR <drai_kin@hotmail.com>, 2019. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2019-04-19 16:33+0000\n" +"PO-Revision-Date: 2019-06-16 19:42+0000\n" "Last-Translator: roger <616steam@gmail.com>\n" "Language-Team: Catalan <https://hosted.weblate.org/projects/godot-engine/" "godot/ca/>\n" @@ -20,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.6-dev\n" +"X-Generator: Weblate 3.7-dev\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -74,6 +75,15 @@ msgstr "Equilibrat" msgid "Mirror" msgstr "Emmiralla" +#: editor/animation_bezier_editor.cpp editor/editor_profiler.cpp +msgid "Time:" +msgstr "Temps:" + +#: editor/animation_bezier_editor.cpp +#, fuzzy +msgid "Value:" +msgstr "Valor" + #: editor/animation_bezier_editor.cpp msgid "Insert Key Here" msgstr "Insereix una Clau aquÃ" @@ -91,9 +101,8 @@ msgid "Add Bezier Point" msgstr "Afegir punt Bezier" #: editor/animation_bezier_editor.cpp -#, fuzzy msgid "Move Bezier Points" -msgstr "Mou el Punt" +msgstr "Moure Punts Bezier" #: editor/animation_bezier_editor.cpp editor/animation_track_editor.cpp msgid "Anim Duplicate Keys" @@ -121,12 +130,11 @@ msgstr "Modifica el valor de la clau" #: editor/animation_track_editor.cpp msgid "Anim Change Call" -msgstr "Modifica la Crida" +msgstr "Canviar crida d'animació" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Change Animation Length" -msgstr "Modifica el bucle d'Animació" +msgstr "Canviar la durada de l'Animació" #: editor/animation_track_editor.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp @@ -158,12 +166,16 @@ msgid "Animation Playback Track" msgstr "Pista de reproducció d'Animacions" #: editor/animation_track_editor.cpp -msgid "Add Track" -msgstr "Afegeix una Pista" +msgid "Animation length (frames)" +msgstr "Longitud de l'animació (fotogrames)" #: editor/animation_track_editor.cpp -msgid "Animation Length Time (seconds)" -msgstr "Durada de l'Animació (en segons)" +msgid "Animation length (seconds)" +msgstr "Longitud de l'animació (segons)" + +#: editor/animation_track_editor.cpp +msgid "Add Track" +msgstr "Afegeix una Pista" #: editor/animation_track_editor.cpp msgid "Animation Looping" @@ -183,9 +195,8 @@ msgid "Anim Clips:" msgstr "Talls d'Animació:" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Change Track Path" -msgstr "Modifica el Valor de la Taula" +msgstr "Canviar el camà de la pista" #: editor/animation_track_editor.cpp msgid "Toggle this track on/off." @@ -212,9 +223,8 @@ msgid "Time (s): " msgstr "Temps (s): " #: editor/animation_track_editor.cpp -#, fuzzy msgid "Toggle Track Enabled" -msgstr "Activa Doppler" +msgstr "Pista de commutació activada" #: editor/animation_track_editor.cpp msgid "Continuous" @@ -267,19 +277,16 @@ msgid "Delete Key(s)" msgstr "Elimina les Claus" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Change Animation Update Mode" -msgstr "Modifica el Nom de l'Animació:" +msgstr "Canviar el Mode d'Actualització de l'Animació" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Change Animation Interpolation Mode" -msgstr "Mode d'Interpolació" +msgstr "Canviar Mode d'Interpolació de l'Animació" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Change Animation Loop Mode" -msgstr "Modifica el bucle d'Animació" +msgstr "Canviar Mode de bucle d'Animació" #: editor/animation_track_editor.cpp msgid "Remove Anim Track" @@ -294,11 +301,13 @@ msgid "Create %d NEW tracks and insert keys?" msgstr "Voleu crear %d NOVES pistes i inserir-hi claus?" #: editor/animation_track_editor.cpp editor/create_dialog.cpp -#: editor/editor_audio_buses.cpp editor/editor_plugin_settings.cpp -#: editor/plugin_config_dialog.cpp +#: editor/editor_audio_buses.cpp editor/editor_feature_profile.cpp +#: editor/editor_plugin_settings.cpp editor/plugin_config_dialog.cpp #: editor/plugins/abstract_polygon_2d_editor.cpp #: editor/plugins/mesh_instance_editor_plugin.cpp -#: editor/plugins/particles_editor_plugin.cpp editor/script_create_dialog.cpp +#: editor/plugins/particles_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_create_dialog.cpp msgid "Create" msgstr "Crea" @@ -364,9 +373,8 @@ msgid "Not possible to add a new track without a root" msgstr "No es pot afegir una nova pista sense cap arrel" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Add Bezier Track" -msgstr "Afegeix una Pista" +msgstr "Afegir Pista Bezier" #: editor/animation_track_editor.cpp msgid "Track path is invalid, so can't add a key." @@ -377,9 +385,8 @@ msgid "Track is not of type Spatial, can't insert key" msgstr "No s'hi pot inserir cap Clau. La pista no és del tipus \"Spatial\"" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Add Transform Track Key" -msgstr "Pista de Transformació 3D" +msgstr "Afegir Clau de Pista de Transformació" #: editor/animation_track_editor.cpp msgid "Add Track Key" @@ -421,6 +428,23 @@ msgstr "" "Aquesta opció no funciona per l'edició de Bézier, ja que és una pista única." #: editor/animation_track_editor.cpp +msgid "" +"This animation belongs to an imported scene, so changes to imported tracks " +"will not be saved.\n" +"\n" +"To enable the ability to add custom tracks, navigate to the scene's import " +"settings and set\n" +"\"Animation > Storage\" to \"Files\", enable \"Animation > Keep Custom Tracks" +"\", then re-import.\n" +"Alternatively, use an import preset that imports animations to separate " +"files." +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Warning: Editing imported animation" +msgstr "" + +#: editor/animation_track_editor.cpp msgid "Only show tracks from nodes selected in tree." msgstr "Mostra les pistes dels nodes seleccionats en l'arbre." @@ -431,7 +455,7 @@ msgstr "Agrupa les pistes per node o mostra-les en una llista." #: editor/animation_track_editor.cpp #, fuzzy msgid "Snap:" -msgstr "Alinea" +msgstr "Alinear:" #: editor/animation_track_editor.cpp msgid "Animation step value." @@ -439,7 +463,7 @@ msgstr "Valor del pas d'Animació." #: editor/animation_track_editor.cpp msgid "Seconds" -msgstr "" +msgstr "Segons" #: editor/animation_track_editor.cpp msgid "FPS" @@ -483,14 +507,12 @@ msgid "Delete Selection" msgstr "Elimina la Selecció" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Go to Next Step" -msgstr "Vés al Pas Següent" +msgstr "Anar al Pas Següent" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Go to Previous Step" -msgstr "Vés al Pas Anterior" +msgstr "Anar al Pas Anterior" #: editor/animation_track_editor.cpp msgid "Optimize Animation" @@ -556,7 +578,8 @@ msgstr "Relació d'Escala:" msgid "Select tracks to copy:" msgstr "Tria les Pistes per copiar:" -#: editor/animation_track_editor.cpp editor/editor_properties.cpp +#: editor/animation_track_editor.cpp editor/editor_log.cpp +#: editor/editor_properties.cpp #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp @@ -565,17 +588,16 @@ msgid "Copy" msgstr "Copia" #: editor/animation_track_editor_plugins.cpp -#, fuzzy msgid "Add Audio Track Clip" -msgstr "Talls d'Àudio:" +msgstr "Afegir Clip de Pista d'Àudio" #: editor/animation_track_editor_plugins.cpp msgid "Change Audio Track Clip Start Offset" -msgstr "" +msgstr "Canviar Desplaçament d'Inici de Clip de Pista d'Àudio" #: editor/animation_track_editor_plugins.cpp msgid "Change Audio Track Clip End Offset" -msgstr "" +msgstr "Canviar Desplaçament de Fi del Clip de Pista d'Àudio" #: editor/array_property_edit.cpp msgid "Resize Array" @@ -625,6 +647,11 @@ msgstr "Reemplaça-hoTot" msgid "Selection Only" msgstr "Selecció Només" +#: editor/code_editor.cpp editor/plugins/script_text_editor.cpp +#: editor/plugins/text_editor.cpp +msgid "Standard" +msgstr "Està ndard" + #: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/texture_region_editor_plugin.cpp #: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp @@ -647,24 +674,42 @@ msgstr "Avisos" #: editor/code_editor.cpp msgid "Line and column numbers." -msgstr "" +msgstr "Números de lÃnia i columna." #: editor/connections_dialog.cpp -msgid "Method in target Node must be specified!" +#, fuzzy +msgid "Method in target node must be specified." msgstr "Cal especificar un mètode per al Node objectiu!" #: editor/connections_dialog.cpp +#, fuzzy msgid "" -"Target method not found! Specify a valid method or attach a script to target " -"Node." +"Target method not found. Specify a valid method or attach a script to the " +"target node." msgstr "" "El mètode objectiu no s'ha trobat! Especifiqueu un mètode và lid o adjunteu-" "li un Script." #: editor/connections_dialog.cpp -msgid "Connect To Node:" +#, fuzzy +msgid "Connect to Node:" msgstr "Connecta al Node:" +#: editor/connections_dialog.cpp +#, fuzzy +msgid "Connect to Script:" +msgstr "No es pot connectar a l'amfitrió:" + +#: editor/connections_dialog.cpp +#, fuzzy +msgid "From Signal:" +msgstr "Senyals:" + +#: editor/connections_dialog.cpp +#, fuzzy +msgid "Scene does not contain any script." +msgstr "El Node no conté cap geometria." + #: editor/connections_dialog.cpp editor/editor_autoload_settings.cpp #: editor/groups_editor.cpp editor/plugins/item_list_editor_plugin.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_settings_editor.cpp @@ -672,10 +717,12 @@ msgid "Add" msgstr "Afegeix" #: editor/connections_dialog.cpp editor/dependency_editor.cpp -#: editor/groups_editor.cpp editor/plugins/animation_player_editor_plugin.cpp +#: editor/editor_feature_profile.cpp editor/groups_editor.cpp +#: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp #: editor/plugins/resource_preloader_editor_plugin.cpp -#: editor/plugins/theme_editor_plugin.cpp editor/project_manager.cpp +#: editor/plugins/theme_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_manager.cpp #: editor/project_settings_editor.cpp msgid "Remove" msgstr "Treu" @@ -689,21 +736,32 @@ msgid "Extra Call Arguments:" msgstr "Arguments de Crida addicionals:" #: editor/connections_dialog.cpp -msgid "Path to Node:" -msgstr "Camà al Node:" - -#: editor/connections_dialog.cpp -msgid "Make Function" -msgstr "Crea Funció" +#, fuzzy +msgid "Advanced" +msgstr "Opcions Avançades" #: editor/connections_dialog.cpp msgid "Deferred" msgstr "Diferit" #: editor/connections_dialog.cpp +msgid "" +"Defers the signal, storing it in a queue and only firing it at idle time." +msgstr "" + +#: editor/connections_dialog.cpp msgid "Oneshot" msgstr "Un sol cop" +#: editor/connections_dialog.cpp +msgid "Disconnects the signal after its first emission." +msgstr "" + +#: editor/connections_dialog.cpp +#, fuzzy +msgid "Cannot connect signal" +msgstr "Connecta el Senyal: " + #: editor/connections_dialog.cpp editor/dependency_editor.cpp #: editor/export_template_manager.cpp editor/groups_editor.cpp #: editor/plugins/animation_player_editor_plugin.cpp @@ -744,17 +802,19 @@ msgid "Disconnect" msgstr "Desconnecta" #: editor/connections_dialog.cpp -msgid "Connect Signal: " +#, fuzzy +msgid "Connect a Signal to a Method" msgstr "Connecta el Senyal: " #: editor/connections_dialog.cpp -msgid "Edit Connection: " +#, fuzzy +msgid "Edit Connection:" msgstr "Edita la Connexió: " #: editor/connections_dialog.cpp -#, fuzzy msgid "Are you sure you want to remove all connections from the \"%s\" signal?" -msgstr "Esteu segur que voleu eliminar totes les connexions d'aquest senyal?" +msgstr "" +"Esteu segurs de que voleu eliminar totes les connexions del senyal \"%s\"?" #: editor/connections_dialog.cpp editor/editor_help.cpp editor/node_dock.cpp msgid "Signals" @@ -781,7 +841,6 @@ msgid "Change %s Type" msgstr "Modifica el Tipus de %s" #: editor/create_dialog.cpp editor/project_settings_editor.cpp -#: modules/visual_script/visual_script_editor.cpp msgid "Change" msgstr "Modifica" @@ -812,7 +871,8 @@ msgid "Matches:" msgstr "Coincidències:" #: editor/create_dialog.cpp editor/plugin_config_dialog.cpp -#: editor/plugins/asset_library_editor_plugin.cpp editor/property_selector.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/property_selector.cpp #: modules/visual_script/visual_script_property_selector.cpp msgid "Description:" msgstr "Descripció:" @@ -826,17 +886,19 @@ msgid "Dependencies For:" msgstr "Dependències per a:" #: editor/dependency_editor.cpp +#, fuzzy msgid "" "Scene '%s' is currently being edited.\n" -"Changes will not take effect unless reloaded." +"Changes will only take effect when reloaded." msgstr "" "S'està editant l'Escena '%s'.\n" "Els canvis s'actualitzaran recarregar." #: editor/dependency_editor.cpp +#, fuzzy msgid "" "Resource '%s' is in use.\n" -"Changes will take effect when reloaded." +"Changes will only take effect when reloaded." msgstr "" "S'està usant el Recurs '%s'.\n" "Els canvis s'actualitzaran en recarregar." @@ -908,9 +970,8 @@ msgid "Error loading:" msgstr "Error en carregar:" #: editor/dependency_editor.cpp -#, fuzzy msgid "Load failed due to missing dependencies:" -msgstr "No es pot carregar l'escena. Manquen dependències:" +msgstr "Cà rrega fallida perquè falten les següents dependències:" #: editor/dependency_editor.cpp editor/editor_node.cpp msgid "Open Anyway" @@ -918,7 +979,7 @@ msgstr "Obre igualment" #: editor/dependency_editor.cpp msgid "Which action should be taken?" -msgstr "Amb quina acció s'ha de procedir?" +msgstr "Quina acció s'hauria de prendre?" #: editor/dependency_editor.cpp msgid "Fix Dependencies" @@ -933,21 +994,14 @@ msgid "Permanently delete %d item(s)? (No undo!)" msgstr "Voleu Eliminar permanentment %d element(s)? (No es pot desfer!)" #: editor/dependency_editor.cpp -msgid "Owns" -msgstr "Posseeix" - -#: editor/dependency_editor.cpp -msgid "Resources Without Explicit Ownership:" -msgstr "Recursos Sense Propietat ExplÃcita:" +#, fuzzy +msgid "Show Dependencies" +msgstr "Dependències" #: editor/dependency_editor.cpp editor/editor_node.cpp msgid "Orphan Resource Explorer" msgstr "Navegador de Recursos Orfes" -#: editor/dependency_editor.cpp -msgid "Delete selected files?" -msgstr "Voleu Esborrar els fitxers seleccionats?" - #: editor/dependency_editor.cpp editor/editor_audio_buses.cpp #: editor/editor_file_dialog.cpp editor/editor_node.cpp #: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp @@ -956,6 +1010,14 @@ msgstr "Voleu Esborrar els fitxers seleccionats?" msgid "Delete" msgstr "Esborra" +#: editor/dependency_editor.cpp +msgid "Owns" +msgstr "Posseeix" + +#: editor/dependency_editor.cpp +msgid "Resources Without Explicit Ownership:" +msgstr "Recursos Sense Propietat ExplÃcita:" + #: editor/dictionary_property_edit.cpp msgid "Change Dictionary Key" msgstr "Modifica Clau del Diccionari" @@ -1061,16 +1123,15 @@ msgid "Uncompressing Assets" msgstr "Descomprimint Recursos" #: editor/editor_asset_installer.cpp editor/project_manager.cpp -#, fuzzy msgid "Package installed successfully!" -msgstr "Paquet instal·lat correctament!" +msgstr "Paquet instal·lat amb èxit!" #: editor/editor_asset_installer.cpp #: editor/plugins/asset_library_editor_plugin.cpp msgid "Success!" msgstr "Èxit!" -#: editor/editor_asset_installer.cpp +#: editor/editor_asset_installer.cpp editor/editor_node.cpp #: editor/plugins/asset_library_editor_plugin.cpp msgid "Install" msgstr "Instal·la" @@ -1197,8 +1258,12 @@ msgid "Open Audio Bus Layout" msgstr "Obre un Disseny de Bus d'Àudio" #: editor/editor_audio_buses.cpp -msgid "There is no 'res://default_bus_layout.tres' file." -msgstr "No s'ha trobat cap 'res://default_bus_layout.tres'." +msgid "There is no '%s' file." +msgstr "" + +#: editor/editor_audio_buses.cpp editor/plugins/canvas_item_editor_plugin.cpp +msgid "Layout" +msgstr "Desar Disseny" #: editor/editor_audio_buses.cpp msgid "Invalid file, not an audio bus layout." @@ -1209,9 +1274,8 @@ msgid "Add Bus" msgstr "Afegeix Bus" #: editor/editor_audio_buses.cpp -#, fuzzy msgid "Add a new Audio Bus to this layout." -msgstr "Anomena i Desa el Disseny del Bus d'Àudio..." +msgstr "Afegir un nou Bus d'Àudio a aquesta configuració." #: editor/editor_audio_buses.cpp editor/editor_properties.cpp #: editor/plugins/animation_player_editor_plugin.cpp editor/property_editor.cpp @@ -1252,24 +1316,31 @@ msgid "Valid characters:" msgstr "Carà cters và lids:" #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing engine class name." +#, fuzzy +msgid "Must not collide with an existing engine class name." msgstr "" "El Nom no és và lid. No pot coincidir amb noms de classe del motor ja " "existents." #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing buit-in type name." +#, fuzzy +msgid "Must not collide with an existing buit-in type name." msgstr "" "El Nom no és và lid. No pot coincidir amb noms de tipus integrats ja " "existents." #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing global constant name." +#, fuzzy +msgid "Must not collide with an existing global constant name." msgstr "" "El Nom no és và lid. No pot coincidir amb noms de constants globals ja " "existents." #: editor/editor_autoload_settings.cpp +msgid "Keyword cannot be used as an autoload name." +msgstr "" + +#: editor/editor_autoload_settings.cpp msgid "Autoload '%s' already exists!" msgstr "l'AutoCà rrega '%s' ja existeix!" @@ -1297,11 +1368,12 @@ msgstr "Activa" msgid "Rearrange Autoloads" msgstr "Reorganitza AutoCà rregues" -#: editor/editor_autoload_settings.cpp -msgid "Invalid Path." +#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp +#, fuzzy +msgid "Invalid path." msgstr "Camà no và lid." -#: editor/editor_autoload_settings.cpp +#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp msgid "File does not exist." msgstr "El Fitxer no existeix." @@ -1352,7 +1424,8 @@ msgid "[unsaved]" msgstr "[no desat]" #: editor/editor_dir_dialog.cpp -msgid "Please select a base directory first" +#, fuzzy +msgid "Please select a base directory first." msgstr "Elegiu primer un directori base" #: editor/editor_dir_dialog.cpp @@ -1360,7 +1433,8 @@ msgid "Choose a Directory" msgstr "Tria un Directori" #: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp -#: editor/filesystem_dock.cpp scene/gui/file_dialog.cpp +#: editor/filesystem_dock.cpp editor/project_manager.cpp +#: scene/gui/file_dialog.cpp msgid "Create Folder" msgstr "Crea un Directori" @@ -1397,12 +1471,16 @@ msgid "" "Target platform requires 'ETC' texture compression for GLES2. Enable 'Import " "Etc' in Project Settings." msgstr "" +"La plataforma de destà requereix compressió de textures 'ETC' per a GLES2. " +"Activa 'Import Etc' en la Configuració del Projecte." #: editor/editor_export.cpp msgid "" "Target platform requires 'ETC2' texture compression for GLES3. Enable " "'Import Etc 2' in Project Settings." msgstr "" +"La plataforma de destà requereix compressió de textures 'ETC' per a GLES2. " +"Activa 'Import Etc 2' en la Configuració del Projecte." #: editor/editor_export.cpp msgid "" @@ -1421,14 +1499,185 @@ msgstr "No s'ha trobat cap plantilla de depuració personalitzada." #: 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 -#, fuzzy msgid "Custom release template not found." -msgstr "No s'ha trobat cap paquet de llançament personalitzat." +msgstr "No s'ha trobat cap plantilla de publicació personalitzada." #: editor/editor_export.cpp platform/javascript/export/export.cpp msgid "Template file not found:" msgstr "No s'ha trobat la Plantilla:" +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "3D Editor" +msgstr "Editor" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Script Editor" +msgstr "Editor d'Scripts" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Asset Library" +msgstr "Exportar Biblioteca de Recursos" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Scene Tree Editing" +msgstr "Arbre d'Escenes (Nodes):" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Import Dock" +msgstr "Importa" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Node Dock" +msgstr "Node mogut" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Filesystem Dock" +msgstr "Sistema de Fitxers" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Erase profile '%s'? (no undo)" +msgstr "Reemplaça-ho Tot (no es pot desfer)" + +#: editor/editor_feature_profile.cpp +msgid "Profile must be a valid filename and must not contain '.'" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Profile with this name already exists." +msgstr "Ja existeix un Fitxer o Directori amb aquest nom." + +#: editor/editor_feature_profile.cpp +msgid "(Editor Disabled, Properties Disabled)" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "(Properties Disabled)" +msgstr "Només Propietats" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "(Editor Disabled)" +msgstr "Clip Desactivat" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Class Options:" +msgstr "Descripció de la classe:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enable Contextual Editor" +msgstr "Obre l'Editor Següent" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enabled Properties:" +msgstr "Propietats:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enabled Features:" +msgstr "CaracterÃstiques" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enabled Classes:" +msgstr "Cerca Classes" + +#: editor/editor_feature_profile.cpp +msgid "File '%s' format is invalid, import aborted." +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "" +"Profile '%s' already exists. Remote it first before importing, import " +"aborted." +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Error saving profile to path: '%s'." +msgstr "Error en carregar la plantilla '%s'" + +#: editor/editor_feature_profile.cpp +msgid "Unset" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Current Profile" +msgstr "Versió Actual:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Make Current" +msgstr "Actual:" + +#: editor/editor_feature_profile.cpp +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "New" +msgstr "Nou" + +#: editor/editor_feature_profile.cpp editor/editor_node.cpp +#: editor/plugins/asset_library_editor_plugin.cpp editor/project_manager.cpp +msgid "Import" +msgstr "Importa" + +#: editor/editor_feature_profile.cpp editor/editor_node.cpp +#: editor/project_export.cpp +msgid "Export" +msgstr "Exporta" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Available Profiles" +msgstr "Nodes disponibles:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enabled Classes" +msgstr "Cerca Classes" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Class Options" +msgstr "Descripció de la classe" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "New profile name:" +msgstr "Nou nom:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Erase Profile" +msgstr "Esborra l'Àrea" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Import Profile(s)" +msgstr "Project importat" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Export Profile" +msgstr "Exporta Projecte" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Manage Editor Feature Profiles" +msgstr "Gestor de Plantilles d'Exportació" + #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Select Current Folder" msgstr "Selecciona el Directori Actual" @@ -1438,24 +1687,21 @@ msgid "File Exists, Overwrite?" msgstr "Fitxer Existent, Voleu sobreescriure'l?" #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp -#, fuzzy msgid "Select This Folder" -msgstr "Selecciona aquest Directori" +msgstr "Seleccionar aquest Directori" #: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp msgid "Copy Path" msgstr "Copia CamÃ" #: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp -#, fuzzy msgid "Open in File Manager" -msgstr "Mostra en el Gestor de Fitxers" +msgstr "Obrir en el Gestor de Fitxers" -#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp -#: editor/project_manager.cpp -#, fuzzy +#: editor/editor_file_dialog.cpp editor/editor_node.cpp +#: editor/filesystem_dock.cpp editor/project_manager.cpp msgid "Show in File Manager" -msgstr "Mostra en el Gestor de Fitxers" +msgstr "Mostrar en el Gestor de Fitxers" #: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp msgid "New Folder..." @@ -1512,7 +1758,7 @@ msgstr "Endavant" msgid "Go Up" msgstr "Puja" -#: editor/editor_file_dialog.cpp +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Toggle Hidden Files" msgstr "Commuta Fitxers Ocults" @@ -1544,14 +1790,19 @@ msgstr "Directori Anterior" msgid "Next Folder" msgstr "Directori Següent" -#: editor/editor_file_dialog.cpp -msgid "Go to parent folder" +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp +#, fuzzy +msgid "Go to parent folder." msgstr "Vés al directori principal" #: editor/editor_file_dialog.cpp -#, fuzzy msgid "(Un)favorite current folder." -msgstr "No s'ha pogut crear el directori." +msgstr "Eliminar carpeta actual de preferits." + +#: editor/editor_file_dialog.cpp +#, fuzzy +msgid "Toggle visibility of hidden files." +msgstr "Commuta Fitxers Ocults" #: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp msgid "View items as a grid of thumbnails." @@ -1567,6 +1818,7 @@ msgstr "Directoris i Fitxers:" #: editor/editor_file_dialog.cpp editor/plugins/sprite_editor_plugin.cpp #: editor/plugins/style_box_editor_plugin.cpp +#: editor/plugins/theme_editor_plugin.cpp msgid "Preview:" msgstr "Vista prèvia:" @@ -1583,6 +1835,12 @@ msgid "ScanSources" msgstr "Escaneja Fonts" #: editor/editor_file_system.cpp +msgid "" +"There are multiple importers for different types pointing to file %s, import " +"aborted" +msgstr "" + +#: editor/editor_file_system.cpp msgid "(Re)Importing Assets" msgstr "(Re)Important Recursos" @@ -1677,14 +1935,12 @@ msgstr "" "$url2]sol·licitant-lo[/url][/color]." #: editor/editor_help.cpp -#, fuzzy msgid "Property Descriptions" -msgstr "Descripció de la Propietat:" +msgstr "Descripcions de la Propietat" #: editor/editor_help.cpp -#, fuzzy msgid "Property Descriptions:" -msgstr "Descripció de la Propietat:" +msgstr "Descripcions de la Propietat:" #: editor/editor_help.cpp msgid "" @@ -1695,14 +1951,12 @@ msgstr "" "$color][url=$url] totaportant-ne una[/url][/color]!" #: editor/editor_help.cpp -#, fuzzy msgid "Method Descriptions" -msgstr "Descripció del mètode:" +msgstr "Descripcions del Mètode" #: editor/editor_help.cpp -#, fuzzy msgid "Method Descriptions:" -msgstr "Descripció del mètode:" +msgstr "Descripcions del Mètode:" #: editor/editor_help.cpp msgid "" @@ -1718,9 +1972,8 @@ msgid "Search Help" msgstr "Cerca Ajuda" #: editor/editor_help_search.cpp -#, fuzzy msgid "Display All" -msgstr "Mostra les Normals" +msgstr "Mostra-ho tot" #: editor/editor_help_search.cpp msgid "Classes Only" @@ -1747,9 +2000,8 @@ msgid "Theme Properties Only" msgstr "Només Propietats del Tema" #: editor/editor_help_search.cpp -#, fuzzy msgid "Member Type" -msgstr "Membres" +msgstr "Tipus de Membre" #: editor/editor_help_search.cpp msgid "Class" @@ -1771,6 +2023,10 @@ msgstr "Estableix Múltiples:" msgid "Output:" msgstr "Sortida:" +#: editor/editor_log.cpp editor/plugins/tile_map_editor_plugin.cpp +msgid "Copy Selection" +msgstr "Copiar Selecció" + #: editor/editor_log.cpp editor/editor_profiler.cpp #: editor/editor_properties.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp @@ -1807,6 +2063,8 @@ msgid "" "This resource can't be saved because it does not belong to the edited scene. " "Make it unique first." msgstr "" +"Aquest recurs no es pot desar perquè no pertany a l'escena editada. Feu-lo " +"únic primer." #: editor/editor_node.cpp editor/plugins/animation_player_editor_plugin.cpp msgid "Save Resource As..." @@ -1876,7 +2134,7 @@ msgstr "" #: editor/editor_node.cpp editor/scene_tree_dock.cpp msgid "Can't overwrite scene that is still open!" -msgstr "" +msgstr "No es pot sobreescriure la escena si encara està oberta!" #: editor/editor_node.cpp msgid "Can't load MeshLibrary for merging!" @@ -1920,9 +2178,10 @@ msgstr "" "Referiu-vos a la documentació rellevant sobre la importació d'escenes." #: editor/editor_node.cpp +#, fuzzy msgid "" "This resource belongs to a scene that was instanced or inherited.\n" -"Changes to it will not be kept when saving the current scene." +"Changes to it won't be kept when saving the current scene." msgstr "" "Aquest recurs pertany a una escena instanciada o heretada.\n" "Els canvis efectuats no es conservaran en desar l'escena." @@ -1936,8 +2195,9 @@ msgstr "" "panell d'importació i torneu-lo a importar." #: editor/editor_node.cpp +#, fuzzy msgid "" -"This scene was imported, so changes to it will not be kept.\n" +"This scene was imported, so changes to it won't be kept.\n" "Instancing it or inheriting will allow making changes to it.\n" "Please read the documentation relevant to importing scenes to better " "understand this workflow." @@ -1948,8 +2208,9 @@ msgstr "" "més informació." #: editor/editor_node.cpp +#, fuzzy msgid "" -"This is a remote object so changes to it will not be kept.\n" +"This is a remote object, so changes to it won't be kept.\n" "Please read the documentation relevant to debugging to better understand " "this workflow." msgstr "" @@ -1961,37 +2222,6 @@ msgid "There is no defined scene to run." msgstr "No s'ha definit cap escena per executar." #: editor/editor_node.cpp -msgid "" -"No main scene has ever been defined, select one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" -"No s'ha definit cap escena principal. Seleccioneu-ne una.\n" -"És possible triar-ne una altra des de \"Configuració del Projecte\" en la " -"categoria \"Aplicació\"." - -#: editor/editor_node.cpp -msgid "" -"Selected scene '%s' does not exist, select a valid one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" -"L'escena '%s' no existeix. Seleccioneu-ne una de và lida.\n" -"És possible triar-ne una altra més endavant a \"Configuració del Projecte\" " -"en la categoria \"Aplicació\"." - -#: editor/editor_node.cpp -msgid "" -"Selected scene '%s' is not a scene file, select a valid one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" -"L'escena '%s' seleccionada no és un fitxer d'escena. Seleccioneu-ne un de " -"và lid.\n" -"És possible triar-ne una altra més endavant a \"Configuració del Projecte\" " -"en la categoria \"Aplicació\"." - -#: editor/editor_node.cpp msgid "Current scene was never saved, please save it prior to running." msgstr "" "L'escena actual no s'ha desat encara. Desa l'escena abans d'executar-la." @@ -2000,7 +2230,7 @@ msgstr "" msgid "Could not start subprocess!" msgstr "No s'ha pogut començar el subprocés!" -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/filesystem_dock.cpp msgid "Open Scene" msgstr "Obre una Escena" @@ -2009,6 +2239,11 @@ msgid "Open Base Scene" msgstr "Obre una Escena Base" #: editor/editor_node.cpp +#, fuzzy +msgid "Quick Open..." +msgstr "Obertura Rà pida d'Escenes..." + +#: editor/editor_node.cpp msgid "Quick Open Scene..." msgstr "Obertura Rà pida d'Escenes..." @@ -2027,7 +2262,7 @@ msgstr "Desar els canvis a '%s' abans de tancar?" #: editor/editor_node.cpp #, fuzzy msgid "Saved %s modified resource(s)." -msgstr "No s'ha pogut carregar el recurs." +msgstr "Desat(s) el(s) recurs(os) modificat(s) %s." #: editor/editor_node.cpp msgid "A root node is required to save the scene." @@ -2191,6 +2426,37 @@ msgid "Clear Recent Scenes" msgstr "Buida les Escenes Recents" #: editor/editor_node.cpp +msgid "" +"No main scene has ever been defined, select one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" +"No s'ha definit cap escena principal. Seleccioneu-ne una.\n" +"És possible triar-ne una altra des de \"Configuració del Projecte\" en la " +"categoria \"Aplicació\"." + +#: editor/editor_node.cpp +msgid "" +"Selected scene '%s' does not exist, select a valid one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" +"L'escena '%s' no existeix. Seleccioneu-ne una de và lida.\n" +"És possible triar-ne una altra més endavant a \"Configuració del Projecte\" " +"en la categoria \"Aplicació\"." + +#: editor/editor_node.cpp +msgid "" +"Selected scene '%s' is not a scene file, select a valid one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" +"L'escena '%s' seleccionada no és un fitxer d'escena. Seleccioneu-ne un de " +"và lid.\n" +"És possible triar-ne una altra més endavant a \"Configuració del Projecte\" " +"en la categoria \"Aplicació\"." + +#: editor/editor_node.cpp msgid "Save Layout" msgstr "Desar Disseny" @@ -2205,9 +2471,8 @@ msgstr "Predeterminat" #: editor/editor_node.cpp editor/editor_properties.cpp #: editor/plugins/script_editor_plugin.cpp editor/property_editor.cpp -#, fuzzy msgid "Show in FileSystem" -msgstr "Mostra'l en el Sistema de Fitxers" +msgstr "Mostrar en el Sistema de Fitxers" #: editor/editor_node.cpp msgid "Play This Scene" @@ -2217,6 +2482,19 @@ msgstr "Reprodueix aquesta Escena" msgid "Close Tab" msgstr "Tanca la Pestanya" +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +msgid "Close Other Tabs" +msgstr "Tanca les altres pestanyes" + +#: editor/editor_node.cpp +msgid "Close Tabs to the Right" +msgstr "" + +#: editor/editor_node.cpp +#, fuzzy +msgid "Close All Tabs" +msgstr "Tanca-ho Tot" + #: editor/editor_node.cpp msgid "Switch Scene Tab" msgstr "Mou-te entre les pestanyes d'Escena" @@ -2290,9 +2568,8 @@ msgid "Save Scene" msgstr "Desa Escena" #: editor/editor_node.cpp -#, fuzzy msgid "Save All Scenes" -msgstr "Desa Totes les Escenes" +msgstr "Desar Totes les Escenes" #: editor/editor_node.cpp msgid "Close Scene" @@ -2340,10 +2617,6 @@ msgstr "Projecte" msgid "Project Settings" msgstr "Configuració del Projecte" -#: editor/editor_node.cpp editor/project_export.cpp -msgid "Export" -msgstr "Exporta" - #: editor/editor_node.cpp editor/plugins/tile_set_editor_plugin.cpp msgid "Tools" msgstr "Eines" @@ -2353,6 +2626,10 @@ msgid "Open Project Data Folder" msgstr "Obre el directori de Dades del Projecte" #: editor/editor_node.cpp +msgid "Install Android Build Template" +msgstr "" + +#: editor/editor_node.cpp msgid "Quit to Project List" msgstr "Surt a la Llista de Projectes" @@ -2477,6 +2754,11 @@ msgstr "Obre el directori de Dades de l'Editor" msgid "Open Editor Settings Folder" msgstr "Obre el directori de Configuració de l'Editor" +#: editor/editor_node.cpp +#, fuzzy +msgid "Manage Editor Features" +msgstr "Gestor de Plantilles d'Exportació" + #: editor/editor_node.cpp editor/project_export.cpp msgid "Manage Export Templates" msgstr "Gestor de Plantilles d'Exportació" @@ -2489,6 +2771,7 @@ msgstr "Ajuda" #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp #: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp #: editor/project_settings_editor.cpp editor/rename_dialog.cpp msgid "Search" msgstr "Cerca" @@ -2563,9 +2846,8 @@ msgid "Save & Restart" msgstr "Desa i Reinicia" #: editor/editor_node.cpp -#, fuzzy msgid "Spins when the editor window redraws." -msgstr "Gira i Gira mentre l'editor es repinta!" +msgstr "Gira quan la finestra de l'editor es redibuixa." #: editor/editor_node.cpp msgid "Update Always" @@ -2579,11 +2861,6 @@ msgstr "Actualitza Canvis" msgid "Disable Update Spinner" msgstr "Desactiva l'Indicador d'Actualització" -#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp -#: editor/project_manager.cpp -msgid "Import" -msgstr "Importa" - #: editor/editor_node.cpp msgid "FileSystem" msgstr "Sistema de Fitxers" @@ -2609,6 +2886,28 @@ msgid "Don't Save" msgstr "No Desis" #: editor/editor_node.cpp +msgid "Android build template is missing, please install relevant templates." +msgstr "" + +#: editor/editor_node.cpp +#, fuzzy +msgid "Manage Templates" +msgstr "Gestor de Plantilles d'Exportació" + +#: editor/editor_node.cpp +msgid "" +"This will install the Android project for custom builds.\n" +"Note that, in order to use it, it needs to be enabled per export preset." +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"Android build template is already installed and it won't be overwritten.\n" +"Remove the \"build\" directory manually before attempting this operation " +"again." +msgstr "" + +#: editor/editor_node.cpp msgid "Import Templates From ZIP File" msgstr "Importa Plantilles des d'un Fitxer ZIP" @@ -2731,10 +3030,6 @@ msgid "Physics Frame %" msgstr "Fotograma de FÃsica %" #: editor/editor_profiler.cpp -msgid "Time:" -msgstr "Temps:" - -#: editor/editor_profiler.cpp msgid "Inclusive" msgstr "Inclusiu" @@ -2771,14 +3066,12 @@ msgid "[Empty]" msgstr "[Buit]" #: editor/editor_properties.cpp editor/plugins/root_motion_editor_plugin.cpp -#, fuzzy msgid "Assign..." -msgstr "Assigna..." +msgstr "Assignar..." #: editor/editor_properties.cpp -#, fuzzy msgid "Invalid RID" -msgstr "Camà no và lid" +msgstr "RID no và lid" #: editor/editor_properties.cpp msgid "" @@ -2873,10 +3166,6 @@ msgid "Remove Item" msgstr "Elimina Element" #: editor/editor_run_native.cpp -msgid "Select device from the list" -msgstr "Selecciona un dispositiu de la llista" - -#: editor/editor_run_native.cpp msgid "" "No runnable export preset found for this platform.\n" "Please add a runnable preset in the export menu." @@ -2912,6 +3201,10 @@ msgstr "Podria mancar el mètode '_run'?" msgid "Select Node(s) to Import" msgstr "Selecciona Node(s) per Importar" +#: editor/editor_sub_scene.cpp editor/project_manager.cpp +msgid "Browse" +msgstr "Navega" + #: editor/editor_sub_scene.cpp msgid "Scene Path:" msgstr "Camà de l'Escena:" @@ -3078,6 +3371,11 @@ msgid "SSL Handshake Error" msgstr "Error en la conformitat de la connexió SSL" #: editor/export_template_manager.cpp +#, fuzzy +msgid "Uncompressing Android Build Sources" +msgstr "Descomprimint Recursos" + +#: editor/export_template_manager.cpp msgid "Current Version:" msgstr "Versió Actual:" @@ -3094,7 +3392,8 @@ msgid "Remove Template" msgstr "Elimina la Plantilla" #: editor/export_template_manager.cpp -msgid "Select template file" +#, fuzzy +msgid "Select Template File" msgstr "Selecciona fitxer de plantilla" #: editor/export_template_manager.cpp @@ -3152,7 +3451,8 @@ msgid "No name provided." msgstr "Manca Nom." #: editor/filesystem_dock.cpp -msgid "Provided name contains invalid characters" +#, fuzzy +msgid "Provided name contains invalid characters." msgstr "El nom conté carà cters que no són và lids" #: editor/filesystem_dock.cpp @@ -3180,19 +3480,27 @@ msgid "Duplicating folder:" msgstr "S'està duplicant el directori:" #: editor/filesystem_dock.cpp -msgid "Open Scene(s)" -msgstr "Obre Escenes" +#, fuzzy +msgid "New Inherited Scene" +msgstr "Nova Escena heretada..." + +#: editor/filesystem_dock.cpp +#, fuzzy +msgid "Open Scenes" +msgstr "Obre una Escena" #: editor/filesystem_dock.cpp msgid "Instance" msgstr "Instà ncia" #: editor/filesystem_dock.cpp -msgid "Add to favorites" +#, fuzzy +msgid "Add to Favorites" msgstr "Afegir a preferits" #: editor/filesystem_dock.cpp -msgid "Remove from favorites" +#, fuzzy +msgid "Remove from Favorites" msgstr "Eliminar dels preferits" #: editor/filesystem_dock.cpp @@ -3223,13 +3531,13 @@ msgstr "Script Nou..." msgid "New Resource..." msgstr "Recurs Nou..." -#: editor/filesystem_dock.cpp editor/script_editor_debugger.cpp -#, fuzzy +#: editor/filesystem_dock.cpp editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_editor_debugger.cpp msgid "Expand All" msgstr "Expandir tot" -#: editor/filesystem_dock.cpp editor/script_editor_debugger.cpp -#, fuzzy +#: editor/filesystem_dock.cpp editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_editor_debugger.cpp msgid "Collapse All" msgstr "Col·lapsar tot" @@ -3241,11 +3549,13 @@ msgid "Rename" msgstr "Reanomena" #: editor/filesystem_dock.cpp -msgid "Previous Directory" +#, fuzzy +msgid "Previous Folder/File" msgstr "Directori Anterior" #: editor/filesystem_dock.cpp -msgid "Next Directory" +#, fuzzy +msgid "Next Folder/File" msgstr "Directori Següent" #: editor/filesystem_dock.cpp @@ -3254,8 +3564,8 @@ msgstr "ReAnalitza Sistema de Fitxers" #: editor/filesystem_dock.cpp #, fuzzy -msgid "Toggle split mode" -msgstr "Commuta Mode" +msgid "Toggle Split Mode" +msgstr "Commutar mode dividit" #: editor/filesystem_dock.cpp msgid "Search files" @@ -3283,24 +3593,28 @@ msgstr "Sobreescriu" msgid "Create Script" msgstr "Crea un Script" -#: editor/find_in_files.cpp -#, fuzzy +#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp msgid "Find in Files" -msgstr "Cerca en els fitxers" +msgstr "Cercar en els Fitxers" #: editor/find_in_files.cpp -#, fuzzy msgid "Find:" -msgstr "Cerca: " +msgstr "Cercar:" #: editor/find_in_files.cpp msgid "Folder:" -msgstr "Directori: " +msgstr "Directori:" #: editor/find_in_files.cpp msgid "Filters:" msgstr "Filtres:" +#: editor/find_in_files.cpp +msgid "" +"Include the files with the following extensions. Add or remove them in " +"ProjectSettings." +msgstr "" + #: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp msgid "Find..." @@ -3339,9 +3653,8 @@ msgid "Group name already exists." msgstr "Aquest grup ja existeix." #: editor/groups_editor.cpp -#, fuzzy msgid "Invalid group name." -msgstr "El Nom del grup no és và lid." +msgstr "Nom del grup no và lid." #: editor/groups_editor.cpp editor/node_dock.cpp msgid "Groups" @@ -3474,33 +3787,30 @@ msgstr "ReImportar" #: editor/import_dock.cpp msgid "Save scenes, re-import and restart" -msgstr "" +msgstr "Guardar escenes, reimportar i reiniciar" #: editor/import_dock.cpp msgid "Changing the type of an imported file requires editor restart." msgstr "Canviar el tipus d'un fitxer importat requereix reiniciar l'editor." #: editor/import_dock.cpp -#, fuzzy msgid "" "WARNING: Assets exist that use this resource, they may stop loading properly." msgstr "" -"ADVERTIMENT: Existeixen actius que utilitzen aquest recurs, es possible que " -"deixin de carregar-se correctament." +"ADVERTIMENT: Existeixen elements que utilitzen aquest recurs, es possible " +"que deixin de carregar-se correctament." #: editor/inspector_dock.cpp msgid "Failed to load resource." msgstr "No s'ha pogut carregar el recurs." #: editor/inspector_dock.cpp -#, fuzzy msgid "Expand All Properties" -msgstr "Expandeix totes les propietats" +msgstr "Expandir Totes les Propietats" #: editor/inspector_dock.cpp -#, fuzzy msgid "Collapse All Properties" -msgstr "Col·lapsa totes les propietats" +msgstr "Col·lapsar Totes les Propietats" #: editor/inspector_dock.cpp editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/script_editor_plugin.cpp @@ -3619,15 +3929,14 @@ msgid "Create points." msgstr "Crea punts." #: editor/plugins/abstract_polygon_2d_editor.cpp -#, fuzzy msgid "" "Edit points.\n" "LMB: Move Point\n" "RMB: Erase Point" msgstr "" -"Editar punts:\n" -"Clic Esquerra: Moure Punt.\n" -"Clic Dreta: Eliminar Punt." +"Editar punts.\n" +"Clic Esquerra: Moure Punt\n" +"Clic Dret: Eliminar Punt" #: editor/plugins/abstract_polygon_2d_editor.cpp #: editor/plugins/animation_blend_space_1d_editor.cpp @@ -3643,14 +3952,12 @@ msgid "Insert Point" msgstr "Insereix un Punt" #: editor/plugins/abstract_polygon_2d_editor.cpp -#, fuzzy msgid "Edit Polygon (Remove Point)" -msgstr "Edita el PolÃgon (Elimina un Punt)" +msgstr "Editar PolÃgon (Eliminar Punt)" #: editor/plugins/abstract_polygon_2d_editor.cpp -#, fuzzy msgid "Remove Polygon And Point" -msgstr "Elimina el PolÃgon i el Punt" +msgstr "Eliminar PolÃgon i Punt" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp @@ -3664,25 +3971,21 @@ msgstr "Afegeix una Animació" #: 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 "Load..." -msgstr "Carrega..." +msgstr "Carregar..." #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp -#, fuzzy msgid "Move Node Point" -msgstr "Mou el Punt" +msgstr "Moure Punt de Node" #: editor/plugins/animation_blend_space_1d_editor.cpp -#, fuzzy msgid "Change BlendSpace1D Limits" -msgstr "Modifica el Temps de Mescla" +msgstr "Canviar LÃmits de BlendSpace1D" #: editor/plugins/animation_blend_space_1d_editor.cpp -#, fuzzy msgid "Change BlendSpace1D Labels" -msgstr "Modifica el Temps de Mescla" +msgstr "Canviar Etiquetes de BlendSpace1D" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp @@ -3694,24 +3997,21 @@ msgstr "" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp -#, fuzzy msgid "Add Node Point" -msgstr "Afegeix un Node" +msgstr "Afegir Punt de Node" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp -#, fuzzy msgid "Add Animation Point" -msgstr "Afegeix una Animació" +msgstr "Afegir Punt d'Animació" #: editor/plugins/animation_blend_space_1d_editor.cpp -#, fuzzy msgid "Remove BlendSpace1D Point" -msgstr "Elimina un Punt del CamÃ" +msgstr "Eliminar Punt BlendSpace1D" #: editor/plugins/animation_blend_space_1d_editor.cpp msgid "Move BlendSpace1D Node Point" -msgstr "" +msgstr "Moure Punt BlendSpace1D" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp @@ -3752,7 +4052,8 @@ msgid "Open Animation Node" msgstr "Obre un Node d'Animació" #: editor/plugins/animation_blend_space_2d_editor.cpp -msgid "Triangle already exists" +#, fuzzy +msgid "Triangle already exists." msgstr "El triangle ja existeix" #: editor/plugins/animation_blend_space_2d_editor.cpp @@ -3760,24 +4061,20 @@ msgid "Add Triangle" msgstr "Afegir Triangle" #: editor/plugins/animation_blend_space_2d_editor.cpp -#, fuzzy msgid "Change BlendSpace2D Limits" -msgstr "Modifica el Temps de Mescla" +msgstr "Canviar LÃmits BlendSpace2D" #: editor/plugins/animation_blend_space_2d_editor.cpp -#, fuzzy msgid "Change BlendSpace2D Labels" -msgstr "Modifica el Temps de Mescla" +msgstr "Canviar Etiquetes BlendSpace2D" #: editor/plugins/animation_blend_space_2d_editor.cpp -#, fuzzy msgid "Remove BlendSpace2D Point" -msgstr "Elimina un Punt del CamÃ" +msgstr "Eliminar Punt BlendSpace2D" #: editor/plugins/animation_blend_space_2d_editor.cpp -#, fuzzy msgid "Remove BlendSpace2D Triangle" -msgstr "Elimina la Variable" +msgstr "Eliminar Triangle BlendSpace2D" #: editor/plugins/animation_blend_space_2d_editor.cpp msgid "BlendSpace2D does not belong to an AnimationTree node." @@ -3833,13 +4130,11 @@ msgid "Node Moved" msgstr "Node mogut" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Unable to connect, port may be in use or connection may be invalid." msgstr "No es pot connectar. El port és en ús o la connexió no és và lida." #: editor/plugins/animation_blend_tree_editor_plugin.cpp #: editor/plugins/visual_shader_editor_plugin.cpp -#, fuzzy msgid "Nodes Connected" msgstr "Nodes Connectats" @@ -3849,9 +4144,8 @@ msgid "Nodes Disconnected" msgstr "Nodes Desconnectats" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#, fuzzy msgid "Set Animation" -msgstr "Animació" +msgstr "Establir Animació" #: editor/plugins/animation_blend_tree_editor_plugin.cpp #: editor/plugins/visual_shader_editor_plugin.cpp @@ -3891,26 +4185,23 @@ msgstr "" #: editor/plugins/animation_blend_tree_editor_plugin.cpp #: editor/plugins/animation_state_machine_editor.cpp -#, fuzzy msgid "Node Renamed" -msgstr "Nom del node:" +msgstr "Node Reanomenat" #: editor/plugins/animation_blend_tree_editor_plugin.cpp #: editor/plugins/visual_shader_editor_plugin.cpp -#, fuzzy msgid "Add Node..." -msgstr "Afegeix un Node" +msgstr "Afegir Node..." #: editor/plugins/animation_blend_tree_editor_plugin.cpp #: editor/plugins/root_motion_editor_plugin.cpp -#, fuzzy msgid "Edit Filtered Tracks:" -msgstr "Edita Filtres" +msgstr "Editar Pistes Filtrades:" #: editor/plugins/animation_blend_tree_editor_plugin.cpp #, fuzzy -msgid "Enable filtering" -msgstr "Fills Editables" +msgid "Enable Filtering" +msgstr "Habilitar filtració" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Toggle Autoplay" @@ -3938,14 +4229,12 @@ msgid "Remove Animation" msgstr "Eliminar l'Animació" #: editor/plugins/animation_player_editor_plugin.cpp -#, fuzzy msgid "Invalid animation name!" -msgstr "ERROR: El Nom de l'Animació no és và lid!" +msgstr "El Nom de l'Animació no és và lid!" #: editor/plugins/animation_player_editor_plugin.cpp -#, fuzzy msgid "Animation name already exists!" -msgstr "ERROR: Ja existeix aquest nom d'Animació!" +msgstr "El nom d'animació ja existeix!" #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp @@ -3969,14 +4258,12 @@ msgid "Duplicate Animation" msgstr "Duplica l'Animació" #: editor/plugins/animation_player_editor_plugin.cpp -#, fuzzy msgid "No animation to copy!" -msgstr "ERROR: Cap animació per copiar!" +msgstr "No hi ha animacions per copiar!" #: editor/plugins/animation_player_editor_plugin.cpp -#, fuzzy msgid "No animation resource on clipboard!" -msgstr "ERROR: Cap recurs d'animació al porta-retalls!" +msgstr "No hi ha recursos d'animació al porta-retalls!" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Pasted Animation" @@ -3987,9 +4274,8 @@ msgid "Paste Animation" msgstr "Enganxa l'Animació" #: editor/plugins/animation_player_editor_plugin.cpp -#, fuzzy msgid "No animation to edit!" -msgstr "ERROR: Cap animació per editar!" +msgstr "Cap animació per editar!" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Play selected animation backwards from current pos. (A)" @@ -4030,18 +4316,12 @@ msgid "Animation" msgstr "Animació" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "New" -msgstr "Nou" - -#: editor/plugins/animation_player_editor_plugin.cpp -#, fuzzy msgid "Edit Transitions..." -msgstr "Transicions" +msgstr "Editar Transicions..." #: editor/plugins/animation_player_editor_plugin.cpp -#, fuzzy msgid "Open in Inspector" -msgstr "Obre en l'Editor" +msgstr "Obre en l'Inspector" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Display list of animations in player." @@ -4052,14 +4332,15 @@ msgid "Autoplay on Load" msgstr "Reproducció Automà tica en Carregar" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Onion Skinning" -msgstr "Efecte Paper Ceba" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Enable Onion Skinning" msgstr "Activa l'Efecte Paper Ceba" #: editor/plugins/animation_player_editor_plugin.cpp +#, fuzzy +msgid "Onion Skinning Options" +msgstr "Efecte Paper Ceba" + +#: editor/plugins/animation_player_editor_plugin.cpp msgid "Directions" msgstr "Direccions" @@ -4133,14 +4414,12 @@ msgid "Cross-Animation Blend Times" msgstr "Temps de mescla entre Animacions" #: editor/plugins/animation_state_machine_editor.cpp -#, fuzzy msgid "Move Node" -msgstr "Mode de moviment" +msgstr "Moure Node" #: editor/plugins/animation_state_machine_editor.cpp -#, fuzzy msgid "Add Transition" -msgstr "Afegeix una Traducció" +msgstr "Afegir una Transició" #: editor/plugins/animation_state_machine_editor.cpp #: modules/visual_script/visual_script_editor.cpp @@ -4148,9 +4427,8 @@ msgid "Add Node" msgstr "Afegeix un Node" #: editor/plugins/animation_state_machine_editor.cpp -#, fuzzy msgid "End" -msgstr "Final/s" +msgstr "Final" #: editor/plugins/animation_state_machine_editor.cpp msgid "Immediate" @@ -4162,34 +4440,31 @@ msgstr "Sincronitzar" #: editor/plugins/animation_state_machine_editor.cpp msgid "At End" -msgstr "" +msgstr "Al Final" #: editor/plugins/animation_state_machine_editor.cpp msgid "Travel" -msgstr "" +msgstr "Viatge" #: editor/plugins/animation_state_machine_editor.cpp msgid "Start and end nodes are needed for a sub-transition." -msgstr "" +msgstr "Els nodes d'inici i final són necessaris per a una sub-transició." #: editor/plugins/animation_state_machine_editor.cpp -#, fuzzy msgid "No playback resource set at path: %s." -msgstr "Fora del camà dels recursos." +msgstr "Cap recurs de reproducció assignat en el camÃ: %s." #: editor/plugins/animation_state_machine_editor.cpp -#, fuzzy msgid "Node Removed" -msgstr "Eliminat:" +msgstr "Node Eliminat" #: editor/plugins/animation_state_machine_editor.cpp -#, fuzzy msgid "Transition Removed" -msgstr "Node de Transició" +msgstr "Transició Eliminada" #: editor/plugins/animation_state_machine_editor.cpp msgid "Set Start Node (Autoplay)" -msgstr "" +msgstr "Establir node d'inici (Reproducció Automà tica)" #: editor/plugins/animation_state_machine_editor.cpp msgid "" @@ -4197,34 +4472,34 @@ msgid "" "RMB to add new nodes.\n" "Shift+LMB to create connections." msgstr "" +"Seleccionar i moure nodes.\n" +"Clic dret per afegir nous nodes.\n" +"Shift + clic esquerra per a crear connexions." #: editor/plugins/animation_state_machine_editor.cpp -#, fuzzy msgid "Create new nodes." -msgstr "Crea Nou %s" +msgstr "Crear nous nodes." #: editor/plugins/animation_state_machine_editor.cpp -#, fuzzy msgid "Connect nodes." -msgstr "Connecta els Nodes" +msgstr "Connectar nodes." #: editor/plugins/animation_state_machine_editor.cpp -#, fuzzy msgid "Remove selected node or transition." -msgstr "Treu la pista seleccionada." +msgstr "Eliminar el node o transició seleccionats." #: editor/plugins/animation_state_machine_editor.cpp msgid "Toggle autoplay this animation on start, restart or seek to zero." msgstr "" #: editor/plugins/animation_state_machine_editor.cpp +#, fuzzy msgid "Set the end animation. This is useful for sub-transitions." -msgstr "" +msgstr "Definiu l'animació final. Això és útil per a sub-transicions." #: editor/plugins/animation_state_machine_editor.cpp -#, fuzzy msgid "Transition: " -msgstr "Transició" +msgstr "Transició: " #: editor/plugins/animation_tree_editor_plugin.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp @@ -4418,14 +4693,12 @@ msgid "Asset Download Error:" msgstr "Error en la baixada de l'Actiu:" #: editor/plugins/asset_library_editor_plugin.cpp -#, fuzzy msgid "Downloading (%s / %s)..." -msgstr "S'esta descarrengant" +msgstr "Descarregant (%s / %s)..." #: editor/plugins/asset_library_editor_plugin.cpp -#, fuzzy msgid "Downloading..." -msgstr "S'esta descarrengant" +msgstr "Descarregant..." #: editor/plugins/asset_library_editor_plugin.cpp msgid "Resolving..." @@ -4452,14 +4725,12 @@ msgid "Download for this asset is already in progress!" msgstr "Ja s'està baixant aquest actiu!" #: editor/plugins/asset_library_editor_plugin.cpp -#, fuzzy msgid "First" -msgstr "Inici" +msgstr "Primer" #: editor/plugins/asset_library_editor_plugin.cpp -#, fuzzy msgid "Previous" -msgstr "Pestanya Anterior" +msgstr "Anterior" #: editor/plugins/asset_library_editor_plugin.cpp msgid "Next" @@ -4605,9 +4876,8 @@ msgid "Rotate CanvasItem" msgstr "Modifica el elementCanvas" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Move anchor" -msgstr "Mou l'Acció" +msgstr "Moure à ncora" #: editor/plugins/canvas_item_editor_plugin.cpp #, fuzzy @@ -4625,13 +4895,23 @@ msgid "Move CanvasItem" msgstr "Modifica el elementCanvas" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"Children of containers have their anchors and margins values overridden by " +"their parent." +msgstr "" +"Els fills de contenidors tenen les seves à ncores i els valors del marges " +"anul·lats pels seus pares." + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy msgid "Presets for the anchors and margins values of a Control node." msgstr "" +"Predefinits per als ancoratges i els valors dels marges d'un node Control." #: editor/plugins/canvas_item_editor_plugin.cpp msgid "" -"Children of containers have their anchors and margins values overridden by " -"their parent." +"When active, moving Control nodes changes their anchors instead of their " +"margins." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4647,21 +4927,65 @@ msgid "Change Anchors" msgstr "Modifica Ancoratges" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Lock Selected" +msgstr "Selecciona una Eina" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Unlock Selected" +msgstr "Elimina Seleccionats" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Group Selected" +msgstr "Copiar Selecció" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Ungroup Selected" +msgstr "Copiar Selecció" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Paste Pose" msgstr "Enganxa Positura" #: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Create Custom Bone(s) from Node(s)" +msgstr "Crea Punts d'Emissió des d'una Malla" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Clear Bones" +msgstr "Reestableix la Postura" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Make IK Chain" +msgstr "Crea una cadena CI" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Clear IK Chain" +msgstr "Esborra la cadena CI" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy msgid "" "Warning: Children of a container get their position and size determined only " "by their parent." msgstr "" +"Advertiment: Els fills d'un contenidor tenen la seva posició i mida " +"determinada només pel seu pare." #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/texture_region_editor_plugin.cpp #: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp -#, fuzzy msgid "Zoom Reset" -msgstr "Allunya" +msgstr "Restablir zoom" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Select Mode" @@ -4694,9 +5018,8 @@ msgid "Rotate Mode" msgstr "Mode de Rotació" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Scale Mode" -msgstr "Mode Escala (R)" +msgstr "Mode d'Escalat" #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp @@ -4730,7 +5053,8 @@ msgid "Snapping Options" msgstr "Opcions d'Alineament" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to grid" +#, fuzzy +msgid "Snap to Grid" msgstr "Alinea-ho amb la graella" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4751,32 +5075,38 @@ msgid "Use Pixel Snap" msgstr "Alinea-ho amb els Pixels" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Smart snapping" +#, fuzzy +msgid "Smart Snapping" msgstr "Alineament intel·ligent" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to parent" +#, fuzzy +msgid "Snap to Parent" msgstr "Alinea-ho amb el Pare" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node anchor" +#, fuzzy +msgid "Snap to Node Anchor" msgstr "Alinea-ho amb el node d'ancoratge" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node sides" +#, fuzzy +msgid "Snap to Node Sides" msgstr "Alinea-ho amb els costats del node" #: editor/plugins/canvas_item_editor_plugin.cpp #, fuzzy -msgid "Snap to node center" +msgid "Snap to Node Center" msgstr "Alinea-ho amb el node d'ancoratge" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to other nodes" +#, fuzzy +msgid "Snap to Other Nodes" msgstr "Alinea-ho amb altres nodes" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to guides" +#, fuzzy +msgid "Snap to Guides" msgstr "Alinea-ho amb les guies" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4790,38 +5120,31 @@ msgid "Unlock the selected object (can be moved)." msgstr "Allibera l'Objecte." #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Makes sure the object's children are not selectable." msgstr "Impossibilita la selecció dels nodes fills." #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Restores the object's children's ability to be selected." msgstr "Permet la selecció de nodes fills." #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Skeleton Options" -msgstr "Singleton" +msgstr "Opcions d'esquelet" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Show Bones" msgstr "Mostra els Ossos" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Make IK Chain" -msgstr "Crea una cadena CI" - -#: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Clear IK Chain" -msgstr "Esborra la cadena CI" - -#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Make Custom Bone(s) from Node(s)" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp #, fuzzy msgid "Clear Custom Bones" -msgstr "Esborra els Ossos" +msgstr "Restablir Ossos Personalitzats" #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp @@ -4855,7 +5178,7 @@ msgstr "Mostra el Viewport" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Show Group And Lock Icons" -msgstr "" +msgstr "Mostrar Grup i Bloquejar Icones" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Center Selection" @@ -4866,25 +5189,24 @@ msgid "Frame Selection" msgstr "Enquadra la Selecció" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Layout" -msgstr "Desar Disseny" +msgid "Preview Canvas Scale" +msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Translation mask for inserting keys." -msgstr "" +msgstr "Mascara de translació per a inserir claus." #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Rotation mask for inserting keys." -msgstr "" +msgstr "Mascara de rotació per a inserir claus." #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Scale mask for inserting keys." -msgstr "" +msgstr "Mascara d'escala per a inserir claus." #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Insert keys (based on mask)." -msgstr "Insereix una Clau (Pistes existents)" +msgstr "Inserir claus (basades en mascara)." #: editor/plugins/canvas_item_editor_plugin.cpp msgid "" @@ -4897,7 +5219,7 @@ msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp #, fuzzy msgid "Auto Insert Key" -msgstr "Insereix una Clau" +msgstr "Inserir Clau Automà ticament" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Insert Key (Existing Tracks)" @@ -4920,6 +5242,11 @@ msgid "Divide grid step by 2" msgstr "Divideix l'increment de la graella per 2" #: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Pan View" +msgstr "Vista Posterior" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Add %s" msgstr "Afegeix %s" @@ -4942,7 +5269,8 @@ msgid "Error instancing scene from %s" msgstr "Error en instanciar l'escena des de %s" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Change default type" +#, fuzzy +msgid "Change Default Type" msgstr "Modifica el tipus per defecte" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -5018,7 +5346,7 @@ msgstr "Colors d'Emissió" #: editor/plugins/cpu_particles_editor_plugin.cpp #, fuzzy msgid "CPUParticles" -msgstr "PartÃcules" +msgstr "ParticulesCPU" #: editor/plugins/cpu_particles_editor_plugin.cpp #: editor/plugins/particles_editor_plugin.cpp @@ -5031,19 +5359,21 @@ msgid "Create Emission Points From Node" msgstr "Crea Punts d'Emissió des d'un Node" #: editor/plugins/curve_editor_plugin.cpp -msgid "Flat0" +#, fuzzy +msgid "Flat 0" msgstr "Flat0" #: editor/plugins/curve_editor_plugin.cpp -msgid "Flat1" +#, fuzzy +msgid "Flat 1" msgstr "Flat1" -#: editor/plugins/curve_editor_plugin.cpp -msgid "Ease in" -msgstr "Entrada Lenta" +#: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp +msgid "Ease In" +msgstr "Entrada lenta" -#: editor/plugins/curve_editor_plugin.cpp -msgid "Ease out" +#: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp +msgid "Ease Out" msgstr "Sortida Lenta" #: editor/plugins/curve_editor_plugin.cpp @@ -5063,23 +5393,28 @@ msgid "Load Curve Preset" msgstr "Carrega un ajustament per la Corba" #: editor/plugins/curve_editor_plugin.cpp -msgid "Add point" +#, fuzzy +msgid "Add Point" msgstr "Afegeix un punt" #: editor/plugins/curve_editor_plugin.cpp -msgid "Remove point" +#, fuzzy +msgid "Remove Point" msgstr "Elimina el punt" #: editor/plugins/curve_editor_plugin.cpp -msgid "Left linear" +#, fuzzy +msgid "Left Linear" msgstr "Lineal esquerra" #: editor/plugins/curve_editor_plugin.cpp -msgid "Right linear" +#, fuzzy +msgid "Right Linear" msgstr "Lineal dreta" #: editor/plugins/curve_editor_plugin.cpp -msgid "Load preset" +#, fuzzy +msgid "Load Preset" msgstr "Carrega un ajustament" #: editor/plugins/curve_editor_plugin.cpp @@ -5100,7 +5435,7 @@ msgstr "Precalcula la Sonda d'IG" #: editor/plugins/gradient_editor_plugin.cpp msgid "Gradient Edited" -msgstr "" +msgstr "Degradat Editat" #: editor/plugins/item_list_editor_plugin.cpp msgid "Item %d" @@ -5135,11 +5470,17 @@ msgid "This doesn't work on scene root!" msgstr "No es pot executar en una escena arrel!" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Trimesh Shape" +#, fuzzy +msgid "Create Trimesh Static Shape" msgstr "Crea un forma amb una malla de triangles" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Shape" +msgid "Failed creating shapes!" +msgstr "" + +#: editor/plugins/mesh_instance_editor_plugin.cpp +#, fuzzy +msgid "Create Convex Shape(s)" msgstr "Crea una Forma Convexa" #: editor/plugins/mesh_instance_editor_plugin.cpp @@ -5192,15 +5533,12 @@ msgid "Create Trimesh Static Body" msgstr "Crea un Cos Està tic a partir d'una malla de triangles" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Static Body" -msgstr "Crea un Cos Està tic Convex" - -#: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Trimesh Collision Sibling" msgstr "Crea una Col·lisió entre malles de triangles germanes" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Collision Sibling" +#, fuzzy +msgid "Create Convex Collision Sibling(s)" msgstr "Crea col·lisions convexes entre nodes germans" #: editor/plugins/mesh_instance_editor_plugin.cpp @@ -5354,9 +5692,14 @@ msgid "Create Navigation Polygon" msgstr "Crea un PolÃgon de Navegació" #: editor/plugins/particles_2d_editor_plugin.cpp +#: editor/plugins/particles_editor_plugin.cpp #, fuzzy +msgid "Convert to CPUParticles" +msgstr "Convertir a ParticulesCPU" + +#: editor/plugins/particles_2d_editor_plugin.cpp msgid "Generating Visibility Rect" -msgstr "Genera un Rectangle de Visibilitat" +msgstr "Generar Rectangle de Visibilitat" #: editor/plugins/particles_2d_editor_plugin.cpp msgid "Generate Visibility Rect" @@ -5368,12 +5711,6 @@ msgstr "Només es poden establir punts en materials de procés ParticlesMaterial #: editor/plugins/particles_2d_editor_plugin.cpp #: editor/plugins/particles_editor_plugin.cpp -#, fuzzy -msgid "Convert to CPUParticles" -msgstr "Converteix en majúscules" - -#: editor/plugins/particles_2d_editor_plugin.cpp -#: editor/plugins/particles_editor_plugin.cpp msgid "Generation Time (sec):" msgstr "Temps de generació (s):" @@ -5451,9 +5788,8 @@ msgid "Add Point to Curve" msgstr "Afegeix un Punt a la Corba" #: editor/plugins/path_2d_editor_plugin.cpp -#, fuzzy msgid "Split Curve" -msgstr "Tanca la Corba" +msgstr "Partir Corba" #: editor/plugins/path_2d_editor_plugin.cpp msgid "Move Point in Curve" @@ -5483,9 +5819,8 @@ msgid "Click: Add Point" msgstr "Clic: Afegeix un Punt" #: editor/plugins/path_2d_editor_plugin.cpp -#, fuzzy msgid "Left Click: Split Segment (in curve)" -msgstr "Parteix el Segment (de la Corba)" +msgstr "Clic Esquerra: Partir Segment (en la Corba)" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp @@ -5513,7 +5848,7 @@ msgstr "Tanca la Corba" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp editor/plugins/theme_editor_plugin.cpp -#: editor/project_export.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_export.cpp msgid "Options" msgstr "Opcions" @@ -5565,24 +5900,25 @@ msgstr "Parteix el Segment (de la Corba)" #: editor/plugins/physical_bone_plugin.cpp #, fuzzy -msgid "Move joint" -msgstr "Mou el Punt" +msgid "Move Joint" +msgstr "Moure unió" #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "" "The skeleton property of the Polygon2D does not point to a Skeleton2D node" -msgstr "" +msgstr "La propietat esquelet del Polygon2D no apunta a un node Skeleton2D" #: editor/plugins/polygon_2d_editor_plugin.cpp -#, fuzzy msgid "Sync Bones" -msgstr "Mostra els Ossos" +msgstr "Sincronitzar Ossos" #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "" "No texture in this polygon.\n" "Set a texture to be able to edit UV." msgstr "" +"No hi ha textura en aquest polÃgon.\n" +"Assigneu una textura per a poder editar el UV." #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Create UV Map" @@ -5595,51 +5931,45 @@ msgid "" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp -#, fuzzy msgid "Create Polygon & UV" -msgstr "Crea PolÃgon" +msgstr "Crear PolÃgon i UV" #: editor/plugins/polygon_2d_editor_plugin.cpp -#, fuzzy msgid "Create Internal Vertex" -msgstr "Crea una nova guia horitzontal" +msgstr "Crear Vèrtex Intern" #: editor/plugins/polygon_2d_editor_plugin.cpp -#, fuzzy msgid "Remove Internal Vertex" -msgstr "Elimina el Punt In-Control" +msgstr "Eliminar Vèrtex Intern" #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Invalid Polygon (need 3 different vertices)" -msgstr "" +msgstr "PolÃgon no và lid (es necessiten 3 vèrtex diferents)" #: editor/plugins/polygon_2d_editor_plugin.cpp -#, fuzzy msgid "Add Custom Polygon" -msgstr "Edita PolÃgon" +msgstr "Afegir PolÃgon Personalitzat" #: editor/plugins/polygon_2d_editor_plugin.cpp -#, fuzzy msgid "Remove Custom Polygon" -msgstr "Elimina el PolÃgon i el Punt" +msgstr "Eliminar PolÃgon Personalitzat" #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Transform UV Map" msgstr "Transforma el Mapa UV" #: editor/plugins/polygon_2d_editor_plugin.cpp -#, fuzzy msgid "Transform Polygon" -msgstr "Tipus de Transformació" +msgstr "Transformar PolÃgon" #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Paint Bone Weights" -msgstr "" +msgstr "Pintar Pes dels Ossos" #: editor/plugins/polygon_2d_editor_plugin.cpp #, fuzzy msgid "Open Polygon 2D UV editor." -msgstr "Editor d'UVs de PolÃgons 2D" +msgstr "Obrir editor UV de PolÃgons 2D." #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Polygon 2D UV Editor" @@ -5647,27 +5977,23 @@ msgstr "Editor d'UVs de PolÃgons 2D" #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "UV" -msgstr "" +msgstr "UV" #: editor/plugins/polygon_2d_editor_plugin.cpp -#, fuzzy msgid "Points" -msgstr "Punt" +msgstr "Punts" #: editor/plugins/polygon_2d_editor_plugin.cpp -#, fuzzy msgid "Polygons" -msgstr "PolÃgon -> UV" +msgstr "PolÃgons" #: editor/plugins/polygon_2d_editor_plugin.cpp -#, fuzzy msgid "Bones" -msgstr "Crea els ossos" +msgstr "Ossos" #: editor/plugins/polygon_2d_editor_plugin.cpp -#, fuzzy msgid "Move Points" -msgstr "Mou el Punt" +msgstr "Moure Punts" #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Ctrl: Rotate" @@ -5694,22 +6020,29 @@ msgid "Scale Polygon" msgstr "Escala el PolÃgon" #: editor/plugins/polygon_2d_editor_plugin.cpp +#, fuzzy msgid "Create a custom polygon. Enables custom polygon rendering." msgstr "" +"Crear polÃgon personalitzat. Habilita el renderitzat de polÃgons " +"personalitzats." #: editor/plugins/polygon_2d_editor_plugin.cpp +#, fuzzy msgid "" "Remove a custom polygon. If none remain, custom polygon rendering is " "disabled." msgstr "" +"Eliminar un polÃgon personalitzat. Si no en queda cap, el renderitzat de " +"polÃgons personalitzats es deshabilita." #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Paint weights with specified intensity." -msgstr "" +msgstr "Pinta pesos amb la intensitat especificada." #: editor/plugins/polygon_2d_editor_plugin.cpp +#, fuzzy msgid "Unpaint weights with specified intensity." -msgstr "" +msgstr "Despinta el pes amb la intensitat especificada." #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Radius:" @@ -5728,9 +6061,8 @@ msgid "Clear UV" msgstr "Esborra UVs" #: editor/plugins/polygon_2d_editor_plugin.cpp -#, fuzzy msgid "Grid Settings" -msgstr "Configuració del GridMap" +msgstr "Configuració de la QuadrÃcula" #: editor/plugins/polygon_2d_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp @@ -5743,37 +6075,35 @@ msgstr "Activa l'Alineament" #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Grid" -msgstr "Graella" +msgstr "QuadrÃcula" #: editor/plugins/polygon_2d_editor_plugin.cpp -#, fuzzy msgid "Configure Grid:" -msgstr "Configura l'Alineament" +msgstr "Configurar QuadrÃcula:" #: editor/plugins/polygon_2d_editor_plugin.cpp #, fuzzy msgid "Grid Offset X:" -msgstr "òfset de la graella:" +msgstr "Desplaçament X de la quadrÃcula:" #: editor/plugins/polygon_2d_editor_plugin.cpp #, fuzzy msgid "Grid Offset Y:" -msgstr "òfset de la graella:" +msgstr "Desplaçament Y de la quadrÃcula :" #: editor/plugins/polygon_2d_editor_plugin.cpp #, fuzzy msgid "Grid Step X:" -msgstr "Pas de la Graella:" +msgstr "Pas X de la quadrÃcula:" #: editor/plugins/polygon_2d_editor_plugin.cpp #, fuzzy msgid "Grid Step Y:" -msgstr "Pas de la Graella:" +msgstr "Pas Y de la quadrÃcula:" #: editor/plugins/polygon_2d_editor_plugin.cpp -#, fuzzy msgid "Sync Bones to Polygon" -msgstr "Escala el PolÃgon" +msgstr "Sincronitzar Ossos amb el PolÃgon" #: editor/plugins/resource_preloader_editor_plugin.cpp msgid "ERROR: Couldn't load resource!" @@ -5817,7 +6147,6 @@ msgid "Open in Editor" msgstr "Obre en l'Editor" #: editor/plugins/resource_preloader_editor_plugin.cpp -#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Load Resource" msgstr "Carrega un Recurs" @@ -5845,16 +6174,15 @@ msgstr "Tancar i desar els canvis?" #: editor/plugins/script_editor_plugin.cpp #, fuzzy msgid "Error writing TextFile:" -msgstr "Error en desar TileSet!" +msgstr "Error en escriure el Fitxer de Text:" #: editor/plugins/script_editor_plugin.cpp msgid "Error: could not load file." msgstr "Error: No s'ha pogut carregar el fitxer." #: editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "Error could not load file." -msgstr "Error - No s'ha pogut crea l'Script en el sistema de fitxers." +msgstr "Error no s'ha pogut carregar el fitxer." #: editor/plugins/script_editor_plugin.cpp msgid "Error saving file!" @@ -5865,32 +6193,27 @@ msgid "Error while saving theme." msgstr "Error en desar el tema." #: editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "Error Saving" -msgstr "Error en desar" +msgstr "Error en Desar" #: editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "Error importing theme." -msgstr "Error en importar el tema" +msgstr "Error en importar el tema." #: editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "Error Importing" -msgstr "Error en importar" +msgstr "Error en Importar" #: editor/plugins/script_editor_plugin.cpp #, fuzzy msgid "New TextFile..." -msgstr "Nou Directori..." +msgstr "Nou Fitxer de Text..." #: editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "Open File" -msgstr "Obre un Fitxer" +msgstr "Obrir Fitxer" #: editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "Save File As..." msgstr "Anomena i Desa..." @@ -5913,7 +6236,12 @@ msgstr "Desa el Tema com a..." #: editor/plugins/script_editor_plugin.cpp #, fuzzy msgid "%s Class Reference" -msgstr " Referència de Classe" +msgstr "Referència de Classe %s" + +#: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp +msgid "Find Next" +msgstr "Cerca el Següent" #: editor/plugins/script_editor_plugin.cpp msgid "Toggle alphabetical sorting of the method list." @@ -5948,9 +6276,8 @@ msgid "File" msgstr "Fitxer" #: editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "Open..." -msgstr "Obre" +msgstr "Obrir..." #: editor/plugins/script_editor_plugin.cpp msgid "Save All" @@ -5965,7 +6292,6 @@ msgid "Copy Script Path" msgstr "Copia el camà de l'Script" #: editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "History Previous" msgstr "Anterior en l'Historial" @@ -5979,9 +6305,8 @@ msgid "Theme" msgstr "Tema" #: editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "Import Theme..." -msgstr "Importa un Tema" +msgstr "Importar Tema..." #: editor/plugins/script_editor_plugin.cpp msgid "Reload Theme" @@ -5999,10 +6324,6 @@ msgstr "Tanca la Documentació" msgid "Close All" msgstr "Tanca-ho Tot" -#: editor/plugins/script_editor_plugin.cpp -msgid "Close Other Tabs" -msgstr "Tanca les altres pestanyes" - #: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp msgid "Run" msgstr "Executa" @@ -6011,11 +6332,6 @@ msgstr "Executa" msgid "Toggle Scripts Panel" msgstr "Panell d'Scripts" -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/script_text_editor.cpp -msgid "Find Next" -msgstr "Cerca el Següent" - #: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp msgid "Step Over" msgstr "Pas a Pas (per Procediments)" @@ -6038,12 +6354,12 @@ msgid "Keep Debugger Open" msgstr "Manté el Depurador Obert" #: editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "Debug with External Editor" -msgstr "Depura amb un editor extern" +msgstr "Depurar amb un Editor Extern" #: editor/plugins/script_editor_plugin.cpp -msgid "Open Godot online documentation" +#, fuzzy +msgid "Open Godot online documentation." msgstr "Obre la Documentació en lÃnia" #: editor/plugins/script_editor_plugin.cpp @@ -6051,8 +6367,9 @@ msgid "Request Docs" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Help improve the Godot documentation by giving feedback" -msgstr "" +#, fuzzy +msgid "Help improve the Godot documentation by giving feedback." +msgstr "Ajudeu a millorar la documentació de Godot donant comentaris" #: editor/plugins/script_editor_plugin.cpp msgid "Search the reference documentation." @@ -6079,10 +6396,12 @@ msgstr "" "Quina acció voleu seguir?:" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp msgid "Reload" msgstr "Torna a Carregar" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp msgid "Resave" msgstr "Torna a Desar" @@ -6091,9 +6410,34 @@ msgid "Debugger" msgstr "Depurador" #: editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "Search Results" -msgstr "Cerca Ajuda" +msgstr "Resultats de cerca" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Connections to method:" +msgstr "Connecta al Node:" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Source" +msgstr "Origen:" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Signal" +msgstr "Senyals" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Target" +msgstr "Camà de Destinació:" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "" +"Missing connected method '%s' for signal '%s' from node '%s' to node '%s'." +msgstr "Desconnecta '%s' de '%s'" #: editor/plugins/script_text_editor.cpp msgid "Line" @@ -6107,10 +6451,6 @@ msgstr "" msgid "Go to Function" msgstr "Vés a la Funció" -#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp -msgid "Standard" -msgstr "" - #: editor/plugins/script_text_editor.cpp msgid "Only resources from filesystem can be dropped." msgstr "Només s'hi poden deixar caure Recursos del sistema de fitxers." @@ -6142,6 +6482,11 @@ msgstr "Converteix a Majúscules" #: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp msgid "Syntax Highlighter" +msgstr "Ressaltador de sintaxi" + +#: editor/plugins/script_text_editor.cpp +#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp +msgid "Bookmarks" msgstr "" #: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp @@ -6171,6 +6516,26 @@ msgid "Toggle Comment" msgstr "Comentaris" #: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Toggle Bookmark" +msgstr "Vista Lliure" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Go to Next Bookmark" +msgstr "Anar al Punt d'Interrupció següent" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Go to Previous Bookmark" +msgstr "Anar al Punt d'Interrupció anterior" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Remove All Bookmarks" +msgstr "Treu tots els Elements" + +#: editor/plugins/script_text_editor.cpp msgid "Fold/Unfold Line" msgstr "(Des)Plega la lÃnia" @@ -6201,7 +6566,7 @@ msgstr "Converteix la Sagnia en Espais" #: editor/plugins/script_text_editor.cpp #, fuzzy msgid "Convert Indent to Tabs" -msgstr "Converteix la Sagnia en Tabulacions" +msgstr "Converteix el Sagnat en Tabulacions" #: editor/plugins/script_text_editor.cpp msgid "Auto Indent" @@ -6217,39 +6582,43 @@ msgid "Remove All Breakpoints" msgstr "Elimina tots els punts d'interrupció" #: editor/plugins/script_text_editor.cpp -#, fuzzy msgid "Go to Next Breakpoint" -msgstr "Vés al següent punt d'interrupció" +msgstr "Anar al Punt d'Interrupció següent" #: editor/plugins/script_text_editor.cpp -#, fuzzy msgid "Go to Previous Breakpoint" -msgstr "Vés a l'anterior punt d'interrupció" +msgstr "Anar al Punt d'Interrupció anterior" #: editor/plugins/script_text_editor.cpp msgid "Find Previous" msgstr "Cerca l'Anterior" #: editor/plugins/script_text_editor.cpp -#, fuzzy msgid "Find in Files..." -msgstr "Filtrat de Fitxers..." +msgstr "Cercar en Fitxers..." #: editor/plugins/script_text_editor.cpp -#, fuzzy msgid "Go to Function..." -msgstr "Vés a la Funció..." +msgstr "Anar a la Funció..." #: editor/plugins/script_text_editor.cpp -#, fuzzy msgid "Go to Line..." -msgstr "Vés a la LÃnia..." +msgstr "Anar a la LÃnia..." #: editor/plugins/script_text_editor.cpp msgid "Contextual Help" msgstr "Ajuda Contextual" #: editor/plugins/shader_editor_plugin.cpp +#, fuzzy +msgid "" +"This shader has been modified on on disk.\n" +"What action should be taken?" +msgstr "" +"El disc conté versions més recents dels fitxer següents. \n" +"Quina acció voleu seguir?:" + +#: editor/plugins/shader_editor_plugin.cpp msgid "Shader" msgstr "Ombreig" @@ -6263,21 +6632,22 @@ msgid "Create Rest Pose from Bones" msgstr "Crea Punts d'Emissió des d'una Malla" #: editor/plugins/skeleton_2d_editor_plugin.cpp +#, fuzzy msgid "Set Rest Pose to Bones" -msgstr "" +msgstr "Estableix la postura de repòs als ossos" #: editor/plugins/skeleton_2d_editor_plugin.cpp -#, fuzzy msgid "Skeleton2D" -msgstr "Singleton" +msgstr "Esquelet2D" #: editor/plugins/skeleton_2d_editor_plugin.cpp msgid "Make Rest Pose (From Bones)" msgstr "" #: editor/plugins/skeleton_2d_editor_plugin.cpp +#, fuzzy msgid "Set Bones to Rest Pose" -msgstr "" +msgstr "Establir els ossos a la postura de descans" #: editor/plugins/skeleton_editor_plugin.cpp #, fuzzy @@ -6285,9 +6655,8 @@ msgid "Create physical bones" msgstr "Crea un malla de Navegació" #: editor/plugins/skeleton_editor_plugin.cpp -#, fuzzy msgid "Skeleton" -msgstr "Singleton" +msgstr "Esquelet" #: editor/plugins/skeleton_editor_plugin.cpp #, fuzzy @@ -6425,9 +6794,8 @@ msgid "Rear" msgstr "Darrere" #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Align with View" -msgstr "Alinea amb la Vista" +msgstr "Alinear amb la Vista" #: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp msgid "No parent to instance a child at." @@ -6438,9 +6806,8 @@ msgid "This operation requires a single selected node." msgstr "Aquesta operació requereix un únic node seleccionat." #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Lock View Rotation" -msgstr "Mostra la Informació" +msgstr "Bloquejar Rotació de la Vista" #: editor/plugins/spatial_editor_plugin.cpp msgid "Display Normal" @@ -6487,9 +6854,8 @@ msgid "Doppler Enable" msgstr "Activa Doppler" #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Cinematic Preview" -msgstr "Creant Previsualitzacions de Malles" +msgstr "Previsualització Cinemà tica" #: editor/plugins/spatial_editor_plugin.cpp msgid "Freelook Left" @@ -6520,15 +6886,17 @@ msgid "Freelook Speed 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." msgstr "" +"Nota: el valor FPS mostrat és la taxa de fotogrames de l'editor.\n" +"No es pot utilitzar com una indicació fiable del rendiment en el joc." #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "View Rotation Locked" -msgstr "Mostra la Informació" +msgstr "Rotació de la Vista Bloquejada" #: editor/plugins/spatial_editor_plugin.cpp msgid "XForm Dialog" @@ -6602,7 +6970,8 @@ msgid "Right View" msgstr "Vista Dreta" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Switch Perspective/Orthogonal view" +#, fuzzy +msgid "Switch Perspective/Orthogonal View" msgstr "Vista Perspectiva/Ortogonal" #: editor/plugins/spatial_editor_plugin.cpp @@ -6642,12 +7011,14 @@ msgid "Toggle Freelook" msgstr "Vista Lliure" #: editor/plugins/spatial_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Transform" msgstr "Transforma" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Snap object to floor" -msgstr "" +#, fuzzy +msgid "Snap Object to Floor" +msgstr "Alinea-ho amb la graella" #: editor/plugins/spatial_editor_plugin.cpp msgid "Transform Dialog..." @@ -6760,14 +7131,12 @@ msgid "Nameless gizmo" msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy msgid "Create Mesh2D" -msgstr "Crea la Malla de Contorn" +msgstr "Crear Malla2D" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy msgid "Create Polygon2D" -msgstr "Crear PolÃgon3D" +msgstr "Crear PolÃgon2D" #: editor/plugins/sprite_editor_plugin.cpp #, fuzzy @@ -6790,71 +7159,78 @@ msgstr "" #: editor/plugins/sprite_editor_plugin.cpp msgid "Invalid geometry, can't replace by mesh." -msgstr "" +msgstr "La geometria no és và lida, no es pot substituir per una malla." #: editor/plugins/sprite_editor_plugin.cpp -msgid "Invalid geometry, can't create polygon." -msgstr "" +msgid "Convert to Mesh2D" +msgstr "Convertir a Malla2D" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Invalid geometry, can't create collision polygon." -msgstr "" +msgid "Invalid geometry, can't create polygon." +msgstr "La geometria no és valida, no es pot crear el polÃgon." #: editor/plugins/sprite_editor_plugin.cpp -msgid "Invalid geometry, can't create light occluder." -msgstr "" +msgid "Convert to Polygon2D" +msgstr "Convertir a PolÃgon2D" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy -msgid "Sprite" -msgstr "SpriteFrames" +msgid "Invalid geometry, can't create collision polygon." +msgstr "La geometria no és valida, no es pot crear el polÃgon de col·lisió." #: editor/plugins/sprite_editor_plugin.cpp #, fuzzy -msgid "Convert to Mesh2D" -msgstr "Converteix a %s" +msgid "Create CollisionPolygon2D Sibling" +msgstr "Crea un PolÃgon de Navegació" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy -msgid "Convert to Polygon2D" -msgstr "Mou el PolÃgon" +msgid "Invalid geometry, can't create light occluder." +msgstr "" #: editor/plugins/sprite_editor_plugin.cpp #, fuzzy -msgid "Create CollisionPolygon2D Sibling" -msgstr "Crea un PolÃgon de Navegació" +msgid "Create LightOccluder2D Sibling" +msgstr "Crea un PolÃgon Oclusor" #: editor/plugins/sprite_editor_plugin.cpp #, fuzzy -msgid "Create LightOccluder2D Sibling" -msgstr "Crea un PolÃgon Oclusor" +msgid "Sprite" +msgstr "SpriteFrames" #: editor/plugins/sprite_editor_plugin.cpp msgid "Simplification: " -msgstr "" +msgstr "Simplificació: " #: editor/plugins/sprite_editor_plugin.cpp msgid "Grow (Pixels): " msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy msgid "Update Preview" -msgstr "Previsualització" +msgstr "Actualitzar Previsualització" #: editor/plugins/sprite_editor_plugin.cpp msgid "Settings:" msgstr "Configuració:" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "ERROR: Couldn't load frame resource!" -msgstr "Error: No s'ha trobat el recurs de fotogrames!" +#, fuzzy +msgid "No Frames Selected" +msgstr "Enquadra la Selecció" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Add %d Frame(s)" +msgstr "Afegeix Fotograma" #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Add Frame" msgstr "Afegeix Fotograma" #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "ERROR: Couldn't load frame resource!" +msgstr "Error: No s'ha trobat el recurs de fotogrames!" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Resource clipboard is empty or not a texture!" msgstr "El porta-retalls de Recursos és Buit o no és pas una Textura!" @@ -6895,6 +7271,15 @@ msgid "Animation Frames:" msgstr "Fotogrames d'Animació:" #: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Add a Texture from File" +msgstr "Afegeix Nodes des d'Arbre" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Add Frames from a Sprite Sheet" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Insert Empty (Before)" msgstr "Insereix un element Buit (abans)" @@ -6911,6 +7296,31 @@ msgid "Move (After)" msgstr "Mou (Després)" #: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Select Frames" +msgstr "Fotogrames de la Pila" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Horizontal:" +msgstr "Inverteix horitzontalment" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Vertical:" +msgstr "Vèrtexs" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Select/Clear All Frames" +msgstr "Selecciona-ho Tot" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Create Frames from Sprite Sheet" +msgstr "Crea-ho a partir de l'Escena" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "SpriteFrames" msgstr "SpriteFrames" @@ -6929,9 +7339,8 @@ msgstr "Mode Imant:" #: editor/plugins/texture_region_editor_plugin.cpp #: scene/resources/visual_shader.cpp -#, fuzzy msgid "None" -msgstr "<Cap>" +msgstr "Cap" #: editor/plugins/texture_region_editor_plugin.cpp msgid "Pixel Snap" @@ -6978,12 +7387,13 @@ msgstr "Afegeix-ho Tot" msgid "Remove All Items" msgstr "Treu tots els Elements" -#: editor/plugins/theme_editor_plugin.cpp +#: editor/plugins/theme_editor_plugin.cpp editor/project_manager.cpp msgid "Remove All" msgstr "Treu-los tots" #: editor/plugins/theme_editor_plugin.cpp -msgid "Edit theme..." +#, fuzzy +msgid "Edit Theme" msgstr "Edita el Tema..." #: editor/plugins/theme_editor_plugin.cpp @@ -7011,18 +7421,25 @@ msgid "Create From Current Editor Theme" msgstr "Crea a partir del Tema d'Editor actual" #: editor/plugins/theme_editor_plugin.cpp -msgid "CheckBox Radio1" -msgstr "casella Radio1" +#, fuzzy +msgid "Toggle Button" +msgstr "Botó del ratolÃ" #: editor/plugins/theme_editor_plugin.cpp -msgid "CheckBox Radio2" -msgstr "Casella Radio2" +#, fuzzy +msgid "Disabled Button" +msgstr "Botó Central" #: editor/plugins/theme_editor_plugin.cpp msgid "Item" msgstr "Element" #: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Disabled Item" +msgstr "Desactivat" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Check Item" msgstr "Valida l'Element" @@ -7039,6 +7456,24 @@ msgid "Checked Radio Item" msgstr "Element de rà dio validat" #: editor/plugins/theme_editor_plugin.cpp +msgid "Named Sep." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Submenu" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Item 1" +msgstr "Element" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Item 2" +msgstr "Element" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Has" msgstr "Té" @@ -7047,8 +7482,9 @@ msgid "Many" msgstr "Molts" #: editor/plugins/theme_editor_plugin.cpp -msgid "Has,Many,Options" -msgstr "Té,Moltes,Opcions" +#, fuzzy +msgid "Disabled LineEdit" +msgstr "Desactivat" #: editor/plugins/theme_editor_plugin.cpp msgid "Tab 1" @@ -7063,6 +7499,19 @@ msgid "Tab 3" msgstr "Pestanya 3" #: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Editable Item" +msgstr "Fills Editables" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Subtree" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Has,Many,Options" +msgstr "Té,Moltes,Opcions" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Data Type:" msgstr "Tipus de Dades:" @@ -7096,9 +7545,9 @@ msgid "Fix Invalid Tiles" msgstr "Nom no và lid." #: editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy +#: modules/gridmap/grid_map_editor_plugin.cpp msgid "Cut Selection" -msgstr "Centra la Selecció" +msgstr "Tallar Selecció" #: editor/plugins/tile_map_editor_plugin.cpp msgid "Paint TileMap" @@ -7138,39 +7587,52 @@ msgid "Mirror Y" msgstr "Replica en l'Eix Y" #: editor/plugins/tile_map_editor_plugin.cpp +#, fuzzy +msgid "Disable Autotile" +msgstr "AutoTiles" + +#: editor/plugins/tile_map_editor_plugin.cpp +#, fuzzy +msgid "Enable Priority" +msgstr "Edita Filtres" + +#: editor/plugins/tile_map_editor_plugin.cpp msgid "Paint Tile" msgstr "Pinta Tessel·la" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Pick Tile" -msgstr "Tria un Tessel·la" +msgid "" +"Shift+RMB: Line Draw\n" +"Shift+Ctrl+RMB: Rectangle Paint" +msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy -msgid "Copy Selection" -msgstr "Treu la Selecció" +msgid "Pick Tile" +msgstr "Tria un Tessel·la" #: editor/plugins/tile_map_editor_plugin.cpp #, fuzzy -msgid "Rotate left" +msgid "Rotate Left" msgstr "Mode de Rotació" #: editor/plugins/tile_map_editor_plugin.cpp #, fuzzy -msgid "Rotate right" +msgid "Rotate Right" msgstr "Gira el PolÃgon" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Flip horizontally" -msgstr "" +#, fuzzy +msgid "Flip Horizontally" +msgstr "Inverteix horitzontalment" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Flip vertically" -msgstr "" +#, fuzzy +msgid "Flip Vertically" +msgstr "Inverteix verticalment" #: editor/plugins/tile_map_editor_plugin.cpp #, fuzzy -msgid "Clear transform" +msgid "Clear Transform" msgstr "Transforma" #: editor/plugins/tile_set_editor_plugin.cpp @@ -7192,26 +7654,64 @@ msgid "Merge from Scene" msgstr "Combina-ho a partir de l'Escena" #: editor/plugins/tile_set_editor_plugin.cpp -#, fuzzy msgid "Next Coordinate" -msgstr "Planta Següent" +msgstr "Coordenada Següent" #: editor/plugins/tile_set_editor_plugin.cpp msgid "Select the next shape, subtile, or Tile." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp -#, fuzzy msgid "Previous Coordinate" -msgstr "Planta Anterior" +msgstr "Coordenada Anterior" #: editor/plugins/tile_set_editor_plugin.cpp msgid "Select the previous shape, subtile, or Tile." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Region Mode" +msgstr "Mode d'Execució:" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Collision Mode" +msgstr "Mode d'Interpolació" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Occlusion Mode" +msgstr "Editar PolÃgon d'Oclusió" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Navigation Mode" +msgstr "Crea un malla de Navegació" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Bitmask Mode" +msgstr "Mode de Rotació" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Priority Mode" +msgstr "Mode d'Exportació:" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Icon Mode" +msgstr "Mode d'Escombratge lateral" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Z Index Mode" +msgstr "Mode d'Escombratge lateral" + +#: editor/plugins/tile_set_editor_plugin.cpp msgid "Copy bitmask." -msgstr "" +msgstr "Copiar mà scara de bits." #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy @@ -7225,16 +7725,16 @@ msgstr "Elimina un Punt." #: editor/plugins/tile_set_editor_plugin.cpp msgid "Create a new rectangle." -msgstr "Crear un Nou Rectangle." +msgstr "Crear un nou rectangle." #: editor/plugins/tile_set_editor_plugin.cpp -#, fuzzy msgid "Create a new polygon." -msgstr "Crea un nou PolÃgon del no-res." +msgstr "Crear un nou polÃgon." #: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy msgid "Keep polygon inside region Rect." -msgstr "" +msgstr "Mantenir polÃgon dins de la regió Rect." #: editor/plugins/tile_set_editor_plugin.cpp msgid "Enable snap and show grid (configurable via the Inspector)." @@ -7251,7 +7751,7 @@ msgstr "Elimina l'entrada actual" #: editor/plugins/tile_set_editor_plugin.cpp msgid "You haven't selected a texture to remove." -msgstr "" +msgstr "No heu seleccionat una textura per eliminar." #: editor/plugins/tile_set_editor_plugin.cpp msgid "Create from scene? This will overwrite all current tiles." @@ -7262,13 +7762,13 @@ msgid "Merge from scene?" msgstr "Combinar-ho a partir de l'escena?" #: editor/plugins/tile_set_editor_plugin.cpp -#, fuzzy msgid "Remove Texture" -msgstr "Elimina la Plantilla" +msgstr "Eliminar Textura" #: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy msgid "%s file(s) were not added because was already on the list." -msgstr "" +msgstr "%s fitxer(s) no es van afegir perquè ja estaven en la llista." #: editor/plugins/tile_set_editor_plugin.cpp msgid "" @@ -7289,15 +7789,15 @@ msgid "" msgstr "Selecciona la sub-tessel·la en edició." #: editor/plugins/tile_set_editor_plugin.cpp -#, fuzzy msgid "Delete polygon." -msgstr "Elimina els Punts" +msgstr "Eliminar PolÃgon." #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy msgid "" "LMB: Set bit on.\n" "RMB: Set bit off.\n" +"Shift+LMB: Set wildcard bit.\n" "Click on another Tile to edit it." msgstr "" "clic Esquerra: activa el bit\n" @@ -7351,9 +7851,8 @@ msgid "Edit Collision Polygon" msgstr "Editar PolÃgon de Col·lisió" #: editor/plugins/tile_set_editor_plugin.cpp -#, fuzzy msgid "Edit Occlusion Polygon" -msgstr "Edita PolÃgon" +msgstr "Editar PolÃgon d'Oclusió" #: editor/plugins/tile_set_editor_plugin.cpp msgid "Edit Navigation Polygon" @@ -7371,7 +7870,7 @@ msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy msgid "Make Polygon Concave" -msgstr "Mou el PolÃgon" +msgstr "Fer el polÃgon còncau" #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy @@ -7405,9 +7904,8 @@ msgid "Edit Tile Z Index" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp -#, fuzzy msgid "Create Collision Polygon" -msgstr "Crea un PolÃgon de Navegació" +msgstr "Crear PolÃgon de Col·lisió" #: editor/plugins/tile_set_editor_plugin.cpp msgid "Create Occlusion Polygon" @@ -7423,6 +7921,79 @@ msgid "TileSet" msgstr "Tile Set" #: 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 +" +msgstr "Afegeix una Entrada" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar" +msgstr "Escala:" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector" +msgstr "Inspector" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Add input port" +msgstr "Afegeix una Entrada" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add output port" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change input port type" +msgstr "Modifica el tipus per defecte" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change output port type" +msgstr "Modifica el tipus per defecte" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change input port name" +msgstr "Modifica el Nom de l'Entrada" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change output port name" +msgstr "Modifica el Nom de l'Entrada" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Remove input port" +msgstr "Elimina el punt" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Remove output port" +msgstr "Elimina el punt" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Set expression" +msgstr "Canviar Expressió" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Resize VisualShader node" +msgstr "Ombreig" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Set Uniform Name" msgstr "" @@ -7437,23 +8008,20 @@ msgid "Add Node to Visual Shader" msgstr "Ombreig" #: editor/plugins/visual_shader_editor_plugin.cpp -#, fuzzy msgid "Duplicate Nodes" -msgstr "Duplica els Nodes" +msgstr "Duplicar Nodes" #: editor/plugins/visual_shader_editor_plugin.cpp -#, fuzzy msgid "Delete Nodes" -msgstr "Eliminar Node" +msgstr "Eliminar Nodes" #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Visual Shader Input Type Changed" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp -#, fuzzy msgid "Vertex" -msgstr "Vèrtexs" +msgstr "Vèrtex" #: editor/plugins/visual_shader_editor_plugin.cpp #, fuzzy @@ -7461,9 +8029,861 @@ msgid "Fragment" msgstr "Arguments:" #: editor/plugins/visual_shader_editor_plugin.cpp -#, fuzzy msgid "Light" -msgstr "Dreta" +msgstr "Llum" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Create Shader Node" +msgstr "Crea un Node" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Color function." +msgstr "Vés a la Funció" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Color operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Grayscale function." +msgstr "Crea Funció" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts HSV vector to RGB equivalent." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts RGB vector to HSV equivalent." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Sepia function." +msgstr "Reanomena Funció" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Burn operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Darken operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Difference operator." +msgstr "Només diferencial" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Dodge operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "HardLight operator" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Lighten operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Overlay operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Screen operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "SoftLight operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Color constant." +msgstr "Constant" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Color uniform." +msgstr "Transforma" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns an associated vector if the provided scalars are equal, greater or " +"less." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns an associated vector if the provided boolean value is true or false." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Boolean constant." +msgstr "Modificar una constant vectorial" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'camera' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'inv_camera' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'inv_projection' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'normal' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'projection' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'time' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'viewport_size' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'world' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'texture_pixel_size' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Input parameter." +msgstr "Alinea-ho amb el Pare" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'binormal' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'fragcoord' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_coord' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_uv' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'side' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'tangent' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv2' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'vertex' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'view' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'albedo' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'attenuation' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'diffuse' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_color' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'roughness' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'specular' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'transmission' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'modelview' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_size' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'tangent' input parameter for vertex and fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_pass' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_coord' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_pixel_size' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_uv' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_alpha' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_height' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_uv' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_vec' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'normal' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'shadow_color' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'extra' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'projection' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'vertex' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'world' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'active' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'custom' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'custom_alpha' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'delta' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'emission_transform' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'index' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'lifetime' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'restart' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'time' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'transform' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'velocity' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar function." +msgstr "Modifica una Funció Escalar" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar operator." +msgstr "Modifica un operador escalar" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "E constant (2.718282). Represents the base of the natural logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Epsilon constant (0.00001). Smallest possible scalar number." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Phi constant (1.618034). Golden ratio." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi/4 constant (0.785398) or 45 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi/2 constant (1.570796) or 90 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi constant (3.141593) or 180 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Tau constant (6.283185) or 360 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Sqrt2 constant (1.414214). Square root of 2." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the absolute value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-tangent of the parameters." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Finds the nearest integer that is greater than or equal to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Constrains a value to lie between two further values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts a quantity in radians to degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-e Exponential." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-2 Exponential." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Finds the nearest integer less than or equal to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Computes the fractional part of the argument." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the inverse of the square root of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Natural logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-2 logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the greater of two values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the lesser of two values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Linear interpolation between two scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the opposite value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 - scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns the value of the first parameter raised to the power of the second." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts a quantity in degrees to radians." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 / scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the nearest integer to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the nearest even integer to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Clamps the value between 0.0 and 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Extracts the sign of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the square root of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( scalar(edge0), scalar(edge1), scalar(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if x is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( scalar(edge), scalar(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the truncated value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Adds scalar to scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Divides scalar by scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies scalar by scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the remainder of the two scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Subtracts scalar from scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar constant." +msgstr "Modificar una constant escalar" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar uniform." +msgstr "Modificar un Uniforme Escalar" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Perform the cubic texture lookup." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Perform the texture lookup." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Cubic texture uniform." +msgstr "Modifica un Uniforme Textura" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "2D texture uniform." +msgstr "Modifica un Uniforme Textura" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Transform function." +msgstr "Dià leg de Transformació..." + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) Calculate the outer product of a pair of vectors.\n" +"\n" +"OuterProduct treats the first parameter 'c' as a column vector (matrix with " +"one column) and the second parameter 'r' as a row vector (matrix with one " +"row) and does a linear algebraic matrix multiply 'c * r', yielding a matrix " +"whose number of rows is the number of components in 'c' and whose number of " +"columns is the number of components in 'r'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Composes transform from four vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Decomposes transform to four vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the determinant of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the inverse of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the transpose of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies transform by transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies vector by transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Transform constant." +msgstr "S'ha interromput la Transformació ." + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Transform uniform." +msgstr "S'ha interromput la Transformació ." + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector function." +msgstr "Assignació a funció" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector operator." +msgstr "Modifica un operador vectorial" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Composes vector from three scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Decomposes vector to three scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the cross product of two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the distance between two points." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the dot product of two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns a vector that points in the same direction as a reference vector. " +"The function has three vector parameters : N, the vector to orient, I, the " +"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 "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the length of a vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Linear interpolation between two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the normalize product of vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 - vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 / vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns a vector that points in the direction of reflection ( a : incident " +"vector, b : normal vector )." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns a vector that points in the direction of refraction." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( vector(edge0), vector(edge1), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if 'x' is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( scalar(edge0), scalar(edge1), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if 'x' is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( vector(edge), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( scalar(edge), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Adds vector to vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Divides vector by vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies vector by vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the remainder of the two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Subtracts vector from vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector constant." +msgstr "Modificar una constant vectorial" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector uniform." +msgstr "Modifica un Uniforme Vectorial" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Custom Godot Shader Language expression, with custom amount of input and " +"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 "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns falloff based on the dot product of surface normal and view " +"direction of camera (pass associated inputs to it)." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) (Fragment/Light mode only) Scalar derivative function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) (Fragment/Light mode only) Vector derivative function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Derivative in 'x' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Derivative in 'x' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Derivative in 'y' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Derivative in 'y' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Sum of absolute derivative " +"in 'x' and 'y'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Sum of absolute derivative " +"in 'x' and 'y'." +msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp #, fuzzy @@ -7471,9 +8891,8 @@ msgid "VisualShader" msgstr "Ombreig" #: editor/plugins/visual_shader_editor_plugin.cpp -#, fuzzy msgid "Edit Visual Property" -msgstr "Edita Filtres" +msgstr "Editar Propietat Visual" #: editor/plugins/visual_shader_editor_plugin.cpp #, fuzzy @@ -7493,10 +8912,13 @@ msgid "Delete preset '%s'?" msgstr "Esborrar la configuració '%s' ?" #: editor/project_export.cpp +#, fuzzy msgid "" "Failed to export the project for platform '%s'.\n" "Export templates seem to be missing or invalid." msgstr "" +"No s'ha pogut exportar el projecte per la plataforma '%s'.\n" +"Les plantilles d'exportació semblen absents o son invalides." #: editor/project_export.cpp msgid "" @@ -7516,9 +8938,8 @@ msgid "Exporting All" msgstr "Exportació per a %s" #: editor/project_export.cpp -#, fuzzy msgid "The given export path doesn't exist:" -msgstr "El camà no existeix." +msgstr "El camà d'exportació donat no existeix:" #: editor/project_export.cpp msgid "Export templates for this platform are missing/corrupted:" @@ -7533,9 +8954,8 @@ msgid "Add..." msgstr "Afegeix..." #: editor/project_export.cpp -#, fuzzy msgid "Export Path" -msgstr "Exporta Projecte" +msgstr "Camà d'exportació" #: editor/project_export.cpp msgid "Resources" @@ -7607,11 +9027,11 @@ msgstr "Mode d'Exportació:" #: editor/project_export.cpp msgid "Text" -msgstr "" +msgstr "Text" #: editor/project_export.cpp msgid "Compiled" -msgstr "" +msgstr "Compilat" #: editor/project_export.cpp msgid "Encrypted (Provide Key Below)" @@ -7619,25 +9039,23 @@ msgstr "" #: editor/project_export.cpp msgid "Invalid Encryption Key (must be 64 characters long)" -msgstr "" +msgstr "Clau de xifratge no và lida (ha de tenir 64 carà cters de longitud)" #: editor/project_export.cpp msgid "Script Encryption Key (256-bits as hex):" -msgstr "" +msgstr "Clau de Xifratge de Scripts (256-bits com hexadecimal):" #: editor/project_export.cpp msgid "Export PCK/Zip" msgstr "Exporta PCK/Zip" #: editor/project_export.cpp -#, fuzzy msgid "Export mode?" -msgstr "Mode d'Exportació:" +msgstr "Mode d'Exportació?" #: editor/project_export.cpp -#, fuzzy msgid "Export All" -msgstr "Exporta" +msgstr "Exportar Tot" #: editor/project_export.cpp msgid "Export templates for this platform are missing:" @@ -7652,10 +9070,8 @@ msgid "The path does not exist." msgstr "El camà no existeix." #: editor/project_manager.cpp -#, fuzzy msgid "Invalid '.zip' project file, does not contain a 'project.godot' file." -msgstr "" -"Seleccioneu un directori que no contingui ja un fitxer 'project.godot'." +msgstr "Fitxer de projecte '.zip' invalid, no conte un fitxer 'project.godot'." #: editor/project_manager.cpp msgid "Please choose an empty folder." @@ -7664,11 +9080,15 @@ msgstr "Selecciona un directori buit." #: editor/project_manager.cpp #, fuzzy msgid "Please choose a 'project.godot' or '.zip' file." -msgstr "Selecciona un fitxer 'projecte.godot'." +msgstr "Si us plau seleccioneu un fitxer 'projecte.godot' o '.zip'." #: editor/project_manager.cpp msgid "Directory already contains a Godot project." -msgstr "" +msgstr "El directori ja conté un projecte de Godot." + +#: editor/project_manager.cpp +msgid "New Game Project" +msgstr "Nou Projecte de Joc" #: editor/project_manager.cpp msgid "Imported Project" @@ -7719,10 +9139,6 @@ msgid "Rename Project" msgstr "Reanomena el Projecte" #: editor/project_manager.cpp -msgid "New Game Project" -msgstr "Nou Projecte de Joc" - -#: editor/project_manager.cpp msgid "Import Existing Project" msgstr "Importa un Projecte existent" @@ -7751,29 +9167,20 @@ msgid "Project Name:" msgstr "Nom del Projecte:" #: editor/project_manager.cpp -msgid "Create folder" -msgstr "Crea un Directori" - -#: editor/project_manager.cpp msgid "Project Path:" msgstr "Camà del Projecte:" #: editor/project_manager.cpp -#, fuzzy msgid "Project Installation Path:" -msgstr "Camà del Projecte:" - -#: editor/project_manager.cpp -msgid "Browse" -msgstr "Navega" +msgstr "Camà d'instal·lació del Projecte:" #: editor/project_manager.cpp msgid "Renderer:" -msgstr "" +msgstr "Renderitzador:" #: editor/project_manager.cpp msgid "OpenGL ES 3.0" -msgstr "" +msgstr "OpenGL ES 3.0" #: editor/project_manager.cpp msgid "" @@ -7782,10 +9189,14 @@ msgid "" "Incompatible with older hardware\n" "Not recommended for web games" msgstr "" +"Qualitat visual superior\n" +"Totes les caracterÃstiques disponibles\n" +"Incompatible amb maquinari mes vell\n" +"No recomanat per a jocs web" #: editor/project_manager.cpp msgid "OpenGL ES 2.0" -msgstr "" +msgstr "OpenGL ES 2.0" #: editor/project_manager.cpp msgid "" @@ -7794,19 +9205,24 @@ msgid "" "Works on most hardware\n" "Recommended for web games" msgstr "" +"Qualitat visual inferior\n" +"Algunes caracterÃstiques no disponibles\n" +"Funciona en la majoria de maquinari\n" +"Recomanat per a jocs web" #: editor/project_manager.cpp msgid "Renderer can be changed later, but scenes may need to be adjusted." msgstr "" +"El renderitzador es pot canviar més tard, però és possible que calgui " +"ajustar les escenes." #: editor/project_manager.cpp msgid "Unnamed Project" msgstr "Projecte sense nom" #: editor/project_manager.cpp -#, fuzzy msgid "Can't open project at '%s'." -msgstr "No es pot obrir el projecte" +msgstr "No es pot obrir el projecte a '%s'." #: editor/project_manager.cpp msgid "Are you sure to open more than one project?" @@ -7821,8 +9237,8 @@ msgid "" "\n" "If you proceed with opening it, it will be converted to Godot's current " "configuration file format.\n" -"Warning: You will not be able to open the project with previous versions of " -"the engine anymore." +"Warning: You won't be able to open the project with previous versions of the " +"engine anymore." msgstr "" #: editor/project_manager.cpp @@ -7833,8 +9249,8 @@ msgid "" "%s\n" "\n" "Do you want to convert it?\n" -"Warning: You will not be able to open the project with previous versions of " -"the engine anymore." +"Warning: You won't be able to open the project with previous versions of the " +"engine anymore." msgstr "" #: editor/project_manager.cpp @@ -7842,11 +9258,14 @@ msgid "" "The project settings were created by a newer engine version, whose settings " "are not compatible with this version." msgstr "" +"La configuració del projecte va ser creada per una versió més recent del " +"motor, la configuració del qual no és compatible amb aquesta versió." #: editor/project_manager.cpp +#, fuzzy msgid "" "Can't run project: no main scene defined.\n" -"Please edit the project and set the main scene in \"Project Settings\" under " +"Please edit the project and set the main scene in the Project Settings under " "the \"Application\" category." msgstr "" "No es pot executar el projecte: Manca una escena principal.\n" @@ -7862,27 +9281,51 @@ msgstr "" "Edita el Projecte per inicialitzar-lo." #: editor/project_manager.cpp -msgid "Are you sure to run more than one project?" +#, fuzzy +msgid "Are you sure to run %d projects at once?" msgstr "Esteu segur que voleu executar més d'un projecte de cop?" #: editor/project_manager.cpp -msgid "Remove project from the list? (Folder contents will not be modified)" +#, fuzzy +msgid "" +"Remove %d projects from the list?\n" +"The project folders' contents won't be modified." +msgstr "" +"Retirar el Projecte de la llista? (El contingut del directori no es " +"modificarà )" + +#: editor/project_manager.cpp +#, fuzzy +msgid "" +"Remove this project from the list?\n" +"The project folder's contents won't be modified." +msgstr "" +"Retirar el Projecte de la llista? (El contingut del directori no es " +"modificarà )" + +#: editor/project_manager.cpp +#, fuzzy +msgid "" +"Remove all missing projects from the list? (Folders contents will not be " +"modified)" msgstr "" "Retirar el Projecte de la llista? (El contingut del directori no es " "modificarà )" #: editor/project_manager.cpp +#, fuzzy msgid "" "Language changed.\n" -"The UI will update next time the editor or project manager starts." +"The interface will update after restarting the editor or project manager." msgstr "" "Canvi de Llengua.\n" "La interficie s'actualitzarà en iniciar l'editor o administrador." #: editor/project_manager.cpp +#, fuzzy msgid "" -"You are about the scan %s folders for existing Godot projects. Do you " -"confirm?" +"Are you sure to scan %s folders for existing Godot projects?\n" +"This could take a while." msgstr "S'examinaran %s directoris a la recerca de projectes. Ho Confirmeu?" #: editor/project_manager.cpp @@ -7903,7 +9346,12 @@ msgstr "Selecciona un Directori per Explorar" #: editor/project_manager.cpp msgid "New Project" -msgstr "Projecte Nou" +msgstr "Nou Projecte" + +#: editor/project_manager.cpp +#, fuzzy +msgid "Remove Missing" +msgstr "Elimina el punt" #: editor/project_manager.cpp msgid "Templates" @@ -7922,9 +9370,10 @@ msgid "Can't run project" msgstr "No es pot executar el projecte" #: editor/project_manager.cpp +#, fuzzy msgid "" -"You don't currently have any projects.\n" -"Would you like to explore the official example projects in the Asset Library?" +"You currently don't have any projects.\n" +"Would you like to explore official example projects in the Asset Library?" msgstr "" "Encara no teniu cap projecte.\n" "Voleu explorar els projectes d'exemple oficials a la Biblioteca d'Actius?" @@ -7955,7 +9404,8 @@ msgstr "" "'\"'." #: editor/project_settings_editor.cpp -msgid "Action '%s' already exists!" +#, fuzzy +msgid "An action with the name '%s' already exists." msgstr "L'Acció '%s' ja existeix!" #: editor/project_settings_editor.cpp @@ -7972,9 +9422,8 @@ msgid "Add Input Action Event" msgstr "Afegeix un Incidència d'Acció de Entrada" #: editor/project_settings_editor.cpp -#, fuzzy msgid "All Devices" -msgstr "Dispositiu" +msgstr "Tots els Dispositius" #: editor/project_settings_editor.cpp msgid "Device" @@ -8117,10 +9566,6 @@ msgstr "" "'\"'." #: editor/project_settings_editor.cpp -msgid "Already existing" -msgstr "Ja existeix" - -#: editor/project_settings_editor.cpp msgid "Add Input Action" msgstr "Afegeix una Acció d'Entrada" @@ -8185,8 +9630,9 @@ msgid "Override For..." msgstr "Substitutiu per a..." #: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp -msgid "Editor must be restarted for changes to take effect" -msgstr "" +#, fuzzy +msgid "The editor must be restarted for changes to take effect." +msgstr "Cal reiniciar el editor per a que els canvis tinguin efecte" #: editor/project_settings_editor.cpp msgid "Input Map" @@ -8202,7 +9648,7 @@ msgstr "Acció" #: editor/project_settings_editor.cpp msgid "Deadzone" -msgstr "" +msgstr "Zona morta" #: editor/project_settings_editor.cpp msgid "Device:" @@ -8245,11 +9691,13 @@ msgid "Locales Filter" msgstr "Filtre de Localitzacions" #: editor/project_settings_editor.cpp -msgid "Show all locales" +#, fuzzy +msgid "Show All Locales" msgstr "Mostra totes les Localitzacions" #: editor/project_settings_editor.cpp -msgid "Show only selected locales" +#, fuzzy +msgid "Show Selected Locales Only" msgstr "Mostrar només les Localitzacions seleccionades" #: editor/project_settings_editor.cpp @@ -8265,14 +9713,6 @@ msgid "AutoLoad" msgstr "Cà rrega Automà tica" #: editor/property_editor.cpp -msgid "Ease In" -msgstr "Entrada lenta" - -#: editor/property_editor.cpp -msgid "Ease Out" -msgstr "Sortida Lenta" - -#: editor/property_editor.cpp msgid "Zero" msgstr "Zero" @@ -8339,19 +9779,20 @@ msgstr "Reanomena" #: editor/rename_dialog.cpp msgid "Prefix" -msgstr "" +msgstr "Prefix" #: editor/rename_dialog.cpp msgid "Suffix" -msgstr "" +msgstr "Sufix" #: editor/rename_dialog.cpp -msgid "Advanced options" +#, fuzzy +msgid "Advanced Options" msgstr "Opcions Avançades" #: editor/rename_dialog.cpp msgid "Substitute" -msgstr "" +msgstr "Substitut" #: editor/rename_dialog.cpp msgid "Node name" @@ -8359,53 +9800,53 @@ msgstr "Nom del node" #: editor/rename_dialog.cpp msgid "Node's parent name, if available" -msgstr "" +msgstr "Nom del pare del node, si està disponible" #: editor/rename_dialog.cpp -#, fuzzy msgid "Node type" -msgstr "Troba el Tipus de Node" +msgstr "Tipus de node" #: editor/rename_dialog.cpp -#, fuzzy msgid "Current scene name" -msgstr "Escena Actual" +msgstr "Nom de l'escena actual" #: editor/rename_dialog.cpp -#, fuzzy msgid "Root node name" -msgstr "Nom del node:" +msgstr "Nom del node arrel" #: editor/rename_dialog.cpp +#, fuzzy msgid "" "Sequential integer counter.\n" "Compare counter options." msgstr "" +"Comptador seqüencial d'enters.\n" +"Compara les opcions de comptador." #: editor/rename_dialog.cpp msgid "Per Level counter" -msgstr "" +msgstr "Comptador per nivell" #: editor/rename_dialog.cpp msgid "If set the counter restarts for each group of child nodes" -msgstr "" +msgstr "Si s'estableix el comptador es reinicia per a cada grup de nodes fills" #: editor/rename_dialog.cpp msgid "Initial value for the counter" -msgstr "" +msgstr "Valor inicial per al comptador" #: editor/rename_dialog.cpp -#, fuzzy msgid "Step" -msgstr "Pas:" +msgstr "Pas" #: editor/rename_dialog.cpp msgid "Amount by which counter is incremented for each node" -msgstr "" +msgstr "Quantitat en què s'incrementa el comptador per a cada node" #: editor/rename_dialog.cpp +#, fuzzy msgid "Padding" -msgstr "" +msgstr "Farciment" #: editor/rename_dialog.cpp msgid "" @@ -8414,14 +9855,13 @@ msgid "" msgstr "" #: editor/rename_dialog.cpp -#, fuzzy msgid "Regular Expressions" -msgstr "Modifica l'Expressió" +msgstr "Expressions Regulars" #: editor/rename_dialog.cpp #, fuzzy msgid "Post-Process" -msgstr "Script de Post-Processat:" +msgstr "Post-Processat" #: editor/rename_dialog.cpp msgid "Keep" @@ -8440,19 +9880,17 @@ msgid "Case" msgstr "" #: editor/rename_dialog.cpp -#, fuzzy msgid "To Lowercase" -msgstr "Minúscula" +msgstr "A Minúscules" #: editor/rename_dialog.cpp -#, fuzzy msgid "To Uppercase" -msgstr "Majúscules" +msgstr "A Majúscules" #: editor/rename_dialog.cpp #, fuzzy msgid "Reset" -msgstr "Reinicia el Zoom" +msgstr "Resetejar" #: editor/rename_dialog.cpp msgid "Error" @@ -8543,12 +9981,15 @@ msgid "Can't reparent nodes in inherited scenes, order of nodes can't change." msgstr "" #: editor/scene_tree_dock.cpp +#, fuzzy msgid "Node must belong to the edited scene to become root." msgstr "" +"El node ha de pertà nyer a l'escena editada per a convertir-se en arrel." #: editor/scene_tree_dock.cpp +#, fuzzy msgid "Instantiated scenes can't become root" -msgstr "" +msgstr "Les escenes instanciades no es poden convertir en arrel" #: editor/scene_tree_dock.cpp #, fuzzy @@ -8588,37 +10029,32 @@ msgstr "Carrega com a Contenidor Temporal" #: editor/scene_tree_dock.cpp #, fuzzy msgid "Make Local" -msgstr "Local" +msgstr "Fer Local" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "New Scene Root" -msgstr "Entesos!" +msgstr "Nova Arrel d'Escena" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "Create Root Node:" -msgstr "Crea un Node" +msgstr "Crear Node Arrel:" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "2D Scene" -msgstr "Escena" +msgstr "Escena 2D" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "3D Scene" -msgstr "Escena" +msgstr "Escena 3D" #: editor/scene_tree_dock.cpp -#, fuzzy msgid "User Interface" -msgstr "Elimina l'Herència" +msgstr "InterfÃcie d'usuari" #: editor/scene_tree_dock.cpp #, fuzzy -msgid "Custom Node" -msgstr "Talla els Nodes" +msgid "Other Node" +msgstr "Eliminar Node" #: editor/scene_tree_dock.cpp msgid "Can't operate on nodes from a foreign scene!" @@ -8662,8 +10098,8 @@ msgstr "Elimina l'Herència" #: editor/scene_tree_dock.cpp #, fuzzy -msgid "Open documentation" -msgstr "Obre la Documentació en lÃnia" +msgid "Open Documentation" +msgstr "Obrir documentació" #: editor/scene_tree_dock.cpp msgid "Add Child Node" @@ -8676,7 +10112,7 @@ msgstr "Modifica el Tipus" #: editor/scene_tree_dock.cpp #, fuzzy msgid "Extend Script" -msgstr "Obre un Script" +msgstr "Estén l'script" #: editor/scene_tree_dock.cpp #, fuzzy @@ -8691,7 +10127,7 @@ msgstr "Combina-ho a partir de l'Escena" msgid "Save Branch as Scene" msgstr "Desa la Branca com un Escena" -#: editor/scene_tree_dock.cpp +#: editor/scene_tree_dock.cpp editor/script_editor_debugger.cpp msgid "Copy Node Path" msgstr "Copia el Camà del Node" @@ -8737,6 +10173,21 @@ msgid "Toggle Visible" msgstr "Visibilitat" #: editor/scene_tree_editor.cpp +#, fuzzy +msgid "Unlock Node" +msgstr "Selecciona un Node" + +#: editor/scene_tree_editor.cpp +#, fuzzy +msgid "Button Group" +msgstr "Botó 7" + +#: editor/scene_tree_editor.cpp +#, fuzzy +msgid "(Connecting From)" +msgstr "Error en la connexió" + +#: editor/scene_tree_editor.cpp msgid "Node configuration warning:" msgstr "AvÃs de Configuració del Node:" @@ -8765,28 +10216,26 @@ msgstr "" "El Node està agrupat.\n" "Clic per mostrar el Tauler de Grups." -#: editor/scene_tree_editor.cpp editor/script_create_dialog.cpp +#: editor/scene_tree_editor.cpp #, fuzzy -msgid "Open Script" -msgstr "Obre un Script" +msgid "Open Script:" +msgstr "Obrir Script" #: editor/scene_tree_editor.cpp -#, fuzzy msgid "" "Node is locked.\n" "Click to unlock it." msgstr "" -"El Node està blocat. \n" -"Feu clic per desblocar-lo" +"El Node està bloquejat. \n" +"Feu clic per desbloquejar-lo." #: editor/scene_tree_editor.cpp -#, fuzzy msgid "" "Children are not selectable.\n" "Click to make selectable." msgstr "" -"Els Nodes fills no es pot seleccionar.\n" -"Feu Clic per a poder seleccionar-los" +"Els fills no son seleccionables.\n" +"Feu clic per a fer-los seleccionables." #: editor/scene_tree_editor.cpp msgid "Toggle Visibility" @@ -8819,73 +10268,83 @@ msgid "Select a Node" msgstr "Selecciona un Node" #: editor/script_create_dialog.cpp -msgid "Error loading template '%s'" -msgstr "Error en carregar la plantilla '%s'" +#, fuzzy +msgid "Path is empty." +msgstr "El camà és Buit" #: editor/script_create_dialog.cpp -msgid "Error - Could not create script in filesystem." -msgstr "Error - No s'ha pogut crea l'Script en el sistema de fitxers." +#, fuzzy +msgid "Filename is empty." +msgstr "El nom del fitxer és buit" #: editor/script_create_dialog.cpp -msgid "Error loading script from %s" -msgstr "Error en carregar l'Script des de '%s'" +#, fuzzy +msgid "Path is not local." +msgstr "El Camà no és local" #: editor/script_create_dialog.cpp -msgid "N/A" -msgstr "No Disponible" +#, fuzzy +msgid "Invalid base path." +msgstr "El Camà de base no és và lid" #: editor/script_create_dialog.cpp #, fuzzy -msgid "Open Script/Choose Location" -msgstr "Editor d'Scripts" +msgid "A directory with the same name exists." +msgstr "Ja existeix un directori amb el mateix nom" #: editor/script_create_dialog.cpp -msgid "Path is empty" -msgstr "El camà és Buit" +#, fuzzy +msgid "Invalid extension." +msgstr "L'extensió no és và lida" #: editor/script_create_dialog.cpp #, fuzzy -msgid "Filename is empty" -msgstr "El camà per desar és buit!" +msgid "Wrong extension chosen." +msgstr "L'extensió triada no és correcta" #: editor/script_create_dialog.cpp -msgid "Path is not local" -msgstr "El Camà no és local" +msgid "Error loading template '%s'" +msgstr "Error en carregar la plantilla '%s'" #: editor/script_create_dialog.cpp -msgid "Invalid base path" -msgstr "El Camà de base no és và lid" +msgid "Error - Could not create script in filesystem." +msgstr "Error - No s'ha pogut crea l'Script en el sistema de fitxers." #: editor/script_create_dialog.cpp -msgid "Directory of the same name exists" -msgstr "Ja existeix un directori amb el mateix nom" +msgid "Error loading script from %s" +msgstr "Error en carregar l'Script des de '%s'" #: editor/script_create_dialog.cpp -msgid "File exists, will be reused" -msgstr "El fitxer ja existeix i serà reutilitzat" +msgid "N/A" +msgstr "No Disponible" #: editor/script_create_dialog.cpp -msgid "Invalid extension" -msgstr "L'extensió no és và lida" +#, fuzzy +msgid "Open Script / Choose Location" +msgstr "Obrir Script/Escollir Localització" #: editor/script_create_dialog.cpp -msgid "Wrong extension chosen" -msgstr "L'extensió triada no és correcta" +msgid "Open Script" +msgstr "Obrir Script" #: editor/script_create_dialog.cpp -msgid "Invalid Path" -msgstr "Camà no và lid" +#, fuzzy +msgid "File exists, it will be reused." +msgstr "El fitxer ja existeix i serà reutilitzat" #: editor/script_create_dialog.cpp -msgid "Invalid class name" +#, fuzzy +msgid "Invalid class name." msgstr "El Nom de Classe no és và lid" #: editor/script_create_dialog.cpp -msgid "Invalid inherited parent name or path" +#, fuzzy +msgid "Invalid inherited parent name or path." msgstr "El Nom o camà del Pare heretat no és và lid" #: editor/script_create_dialog.cpp -msgid "Script valid" +#, fuzzy +msgid "Script is valid." msgstr "L'Script és và lid" #: editor/script_create_dialog.cpp @@ -8893,15 +10352,18 @@ msgid "Allowed: a-z, A-Z, 0-9 and _" msgstr "Permesos: a-z, a-Z, 0-9 i _" #: editor/script_create_dialog.cpp -msgid "Built-in script (into scene file)" +#, fuzzy +msgid "Built-in script (into scene file)." msgstr "Script Integrat (en un fitxer d'escena)" #: editor/script_create_dialog.cpp -msgid "Create new script file" +#, fuzzy +msgid "Will create a new script file." msgstr "Crea un nou Script" #: editor/script_create_dialog.cpp -msgid "Load existing script file" +#, fuzzy +msgid "Will load an existing script file." msgstr "Carrega un Script existent" #: editor/script_create_dialog.cpp @@ -9033,20 +10495,21 @@ msgstr "Arrel per l'Edició en directe:" msgid "Set From Tree" msgstr "Estableix des de l'Arbre" +#: editor/script_editor_debugger.cpp +msgid "Export measures as CSV" +msgstr "" + #: editor/settings_config_dialog.cpp -#, fuzzy msgid "Erase Shortcut" -msgstr "Sortida Lenta" +msgstr "Eliminar Drecera" #: editor/settings_config_dialog.cpp -#, fuzzy msgid "Restore Shortcut" -msgstr "Dreceres" +msgstr "Restaurar Drecera" #: editor/settings_config_dialog.cpp -#, fuzzy msgid "Change Shortcut" -msgstr "Modifica Ancoratges" +msgstr "Canviar Drecera" #: editor/settings_config_dialog.cpp msgid "Shortcuts" @@ -9073,9 +10536,8 @@ msgid "Change Camera Size" msgstr "Modifica la Mida de la Cà mera" #: editor/spatial_editor_gizmos.cpp -#, fuzzy msgid "Change Notifier AABB" -msgstr "Modifica l'abast dels Notificadors" +msgstr "Canviar Notificador AABB" #: editor/spatial_editor_gizmos.cpp msgid "Change Particles AABB" @@ -9116,14 +10578,12 @@ msgid "Change Ray Shape Length" msgstr "Modifica la longitud de la Forma Raig" #: modules/csg/csg_gizmos.cpp -#, fuzzy msgid "Change Cylinder Radius" -msgstr "Modifica el Radi de Llum" +msgstr "Canviar Radi del Cilindre" #: modules/csg/csg_gizmos.cpp -#, fuzzy msgid "Change Cylinder Height" -msgstr "Modifica l'alçada de la Forma Caixa" +msgstr "Canviar Alçada del Cilindre" #: modules/csg/csg_gizmos.cpp #, fuzzy @@ -9172,6 +10632,15 @@ msgid "GDNativeLibrary" msgstr "GDNativeLibrary" #: 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 "Desactiva l'Indicador d'Actualització" + +#: modules/gdnative/gdnative_library_singleton_editor.cpp msgid "Library" msgstr "Biblioteca" @@ -9190,7 +10659,7 @@ msgstr "GDNative" #: modules/gdscript/gdscript_functions.cpp #, fuzzy msgid "Step argument is zero!" -msgstr "L'argument 'step' és zero!" +msgstr "L'argument pas és zero!" #: modules/gdscript/gdscript_functions.cpp msgid "Not a script with an instance" @@ -9262,8 +10731,9 @@ msgid "GridMap Fill Selection" msgstr "Elimina la Selecció del GridMap" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "GridMap Duplicate Selection" -msgstr "Duplica la Selecció del GridMap" +#, fuzzy +msgid "GridMap Paste Selection" +msgstr "Elimina la Selecció del GridMap" #: modules/gridmap/grid_map_editor_plugin.cpp #, fuzzy @@ -9331,25 +10801,12 @@ msgid "Cursor Clear Rotation" msgstr "Reestableix la Rotació del Cursor" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Create Area" -msgstr "Crea una Àrea" - -#: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Create Exterior Connector" -msgstr "Crea un Connector Exterior" - -#: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Erase Area" -msgstr "Esborra l'Àrea" - -#: modules/gridmap/grid_map_editor_plugin.cpp msgid "Clear Selection" msgstr "Esborra la Selecció" #: modules/gridmap/grid_map_editor_plugin.cpp -#, fuzzy msgid "Fill Selection" -msgstr "Tota la Selecció" +msgstr "Omplir la Selecció" #: modules/gridmap/grid_map_editor_plugin.cpp msgid "GridMap Settings" @@ -9571,7 +11028,7 @@ msgstr "Afegeix un Senyal" #: modules/visual_script/visual_script_editor.cpp msgid "Change Expression" -msgstr "Modifica l'Expressió" +msgstr "Canviar Expressió" #: modules/visual_script/visual_script_editor.cpp msgid "Remove VisualScript Nodes" @@ -9709,18 +11166,11 @@ msgid "Available Nodes:" msgstr "Nodes disponibles:" #: modules/visual_script/visual_script_editor.cpp -msgid "Select or create a function to edit graph" +#, fuzzy +msgid "Select or create a function to edit its graph." msgstr "Selecciona o crea una funció per editar la corba" #: modules/visual_script/visual_script_editor.cpp -msgid "Edit Signal Arguments:" -msgstr "Edita Arguments del Senyal:" - -#: modules/visual_script/visual_script_editor.cpp -msgid "Edit Variable:" -msgstr "Edita Variable:" - -#: modules/visual_script/visual_script_editor.cpp msgid "Delete Selected" msgstr "Elimina Seleccionats" @@ -9741,9 +11191,8 @@ msgid "Paste Nodes" msgstr "Enganxa els Nodes" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Edit Member" -msgstr "Membres" +msgstr "Editar Membre" #: modules/visual_script/visual_script_flow_control.cpp msgid "Input type not iterable: " @@ -9809,15 +11258,15 @@ msgstr "Elimina el Node de VisualScript" #: modules/visual_script/visual_script_property_selector.cpp msgid "Get %s" -msgstr "" +msgstr "Obtenir %s" #: modules/visual_script/visual_script_property_selector.cpp msgid "Set %s" -msgstr "" +msgstr "Definir %s" #: platform/android/export/export.cpp msgid "Package name is missing." -msgstr "" +msgstr "El nom del paquet falta." #: platform/android/export/export.cpp msgid "Package segments must be of non-zero length." @@ -9826,6 +11275,7 @@ msgstr "" #: platform/android/export/export.cpp msgid "The character '%s' is not allowed in Android application package names." msgstr "" +"El carà cter '%s' no està permès als noms de paquets d'aplicacions Android." #: platform/android/export/export.cpp msgid "A digit cannot be the first character in a package segment." @@ -9837,7 +11287,7 @@ msgstr "" #: platform/android/export/export.cpp msgid "The package must have at least one '.' separator." -msgstr "" +msgstr "El paquet ha de tenir com a mÃnim un separador '. '." #: platform/android/export/export.cpp msgid "ADB executable not configured in the Editor Settings." @@ -9852,48 +11302,90 @@ msgid "Debug keystore not configured in the Editor Settings nor in the preset." msgstr "" #: platform/android/export/export.cpp -msgid "Invalid public key for APK expansion." +msgid "Custom build requires a valid Android SDK path in Editor Settings." msgstr "" #: platform/android/export/export.cpp -#, fuzzy +msgid "Invalid Android SDK path for custom build in Editor Settings." +msgstr "" + +#: platform/android/export/export.cpp +msgid "" +"Android project is not installed for compiling. Install from Editor menu." +msgstr "" + +#: platform/android/export/export.cpp +msgid "Invalid public key for APK expansion." +msgstr "Clau pública no và lida per a l'expansió de l'APK." + +#: platform/android/export/export.cpp msgid "Invalid package name:" -msgstr "El Nom de Classe no és và lid" +msgstr "El nom del paquet no és và lid:" + +#: platform/android/export/export.cpp +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 "" +"Android build version mismatch:\n" +" Template installed: %s\n" +" Godot Version: %s\n" +"Please reinstall Android build template from 'Project' menu." +msgstr "" + +#: platform/android/export/export.cpp +msgid "Building Android Project (gradle)" +msgstr "" + +#: 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 "" + +#: platform/android/export/export.cpp +msgid "No build apk generated at: " +msgstr "" #: platform/iphone/export/export.cpp msgid "Identifier is missing." -msgstr "" +msgstr "Falta l'identificador." #: platform/iphone/export/export.cpp msgid "Identifier segments must be of non-zero length." msgstr "" #: platform/iphone/export/export.cpp -#, fuzzy msgid "The character '%s' is not allowed in Identifier." -msgstr "El nom no és un identificador và lid:" +msgstr "No es permet el carà cter '% s' en l'Identificador." #: platform/iphone/export/export.cpp +#, fuzzy msgid "A digit cannot be the first character in a Identifier segment." -msgstr "" +msgstr "Un dÃgit no pot ser el primer carà cter d'un segment Identificador." #: platform/iphone/export/export.cpp +#, fuzzy msgid "" "The character '%s' cannot be the first character in a Identifier segment." msgstr "" +"El carà cter \"% s\" no pot ser el primer carà cter d'un segment " +"d'Identificador." #: platform/iphone/export/export.cpp msgid "The Identifier must have at least one '.' separator." -msgstr "" +msgstr "L'identificador ha de tenir com a mÃnim un separador '. '." #: platform/iphone/export/export.cpp msgid "App Store Team ID not specified - cannot configure the project." msgstr "" #: platform/iphone/export/export.cpp -#, fuzzy msgid "Invalid Identifier:" -msgstr "El nom no és un identificador và lid:" +msgstr "Identificador no và lid:" #: platform/iphone/export/export.cpp msgid "Required icon is not specified in the preset." @@ -9934,21 +11426,19 @@ msgstr "Utilitzant la imatge de presentació per defecte." #: platform/uwp/export/export.cpp #, fuzzy msgid "Invalid package unique name." -msgstr "Nom no và lid." +msgstr "El nom exclusiu del paquet no és và lid." #: platform/uwp/export/export.cpp -#, fuzzy msgid "Invalid product GUID." -msgstr "La mida de la lletra no és và lida." +msgstr "GUID del producte no và lid." #: platform/uwp/export/export.cpp msgid "Invalid publisher GUID." msgstr "GUID d'editor no và lid." #: platform/uwp/export/export.cpp -#, fuzzy msgid "Invalid background color." -msgstr "Lletra personalitzada no và lida." +msgstr "Color de fons no và lid." #: platform/uwp/export/export.cpp msgid "Invalid Store Logo image dimensions (should be 50x50)." @@ -10156,29 +11646,34 @@ msgid "ARVRCamera must have an ARVROrigin node as its parent" msgstr "El node ARVRCamera requereix un Pare del tipus ARVROrigin" #: scene/3d/arvr_nodes.cpp -msgid "ARVRController must have an ARVROrigin node as its parent" +#, fuzzy +msgid "ARVRController must have an ARVROrigin node as its parent." msgstr "El node ARVRController requereix un Pare del tipus ARVROrigin" #: scene/3d/arvr_nodes.cpp +#, fuzzy msgid "" -"The controller id must not be 0 or this controller will not be bound to an " -"actual controller" +"The controller ID must not be 0 or this controller won't be bound to an " +"actual controller." msgstr "" "L'Id del Controlador no pot ser 0 si es vol vincular-lo amb Controlador real" #: scene/3d/arvr_nodes.cpp -msgid "ARVRAnchor must have an ARVROrigin node as its parent" +#, fuzzy +msgid "ARVRAnchor must have an ARVROrigin node as its parent." msgstr "El node ARVRAnchor requereix un Pare del tipus ARVROrigin" #: scene/3d/arvr_nodes.cpp +#, fuzzy msgid "" -"The anchor id must not be 0 or this anchor will not be bound to an actual " -"anchor" +"The anchor ID must not be 0 or this anchor won't be bound to an actual " +"anchor." msgstr "" "L'Id de l'ancoratge no pot ser 0 si es vol vincular-lo amb un ancoratge real" #: scene/3d/arvr_nodes.cpp -msgid "ARVROrigin requires an ARVRCamera child node" +#, fuzzy +msgid "ARVROrigin requires an ARVRCamera child node." msgstr "El node ARVROrigin requreix un node Fill del tipus ARVRCamera" #: scene/3d/baked_lightmap.cpp @@ -10250,20 +11745,22 @@ msgstr "" "forma!" #: scene/3d/collision_shape.cpp +#, fuzzy msgid "" "Plane shapes don't work well and will be removed in future versions. Please " "don't use them." msgstr "" +"Les formes de tipus pla no funcionen bé i se suprimiran en futures versions. " +"Si us plau, no els utilitzeu." #: scene/3d/cpu_particles.cpp -#, fuzzy msgid "Nothing is visible because no mesh has been assigned." -msgstr "Res és visible perquè no s'ha assignat cap Malla a cap pas de Dibuix." +msgstr "Res és visible perquè no s'ha assignat cap malla." #: scene/3d/cpu_particles.cpp msgid "" -"CPUParticles animation requires the usage of a SpatialMaterial with " -"\"Billboard Particles\" enabled." +"CPUParticles animation requires the usage of a SpatialMaterial whose " +"Billboard Mode is set to \"Particle Billboard\"." msgstr "" #: scene/3d/gi_probe.cpp @@ -10304,8 +11801,8 @@ msgstr "Res és visible perquè no s'ha assignat cap Malla a cap pas de Dibuix." #: scene/3d/particles.cpp msgid "" -"Particles animation requires the usage of a SpatialMaterial with \"Billboard " -"Particles\" enabled." +"Particles animation requires the usage of a SpatialMaterial whose Billboard " +"Mode is set to \"Particle Billboard\"." msgstr "" #: scene/3d/path.cpp @@ -10335,8 +11832,9 @@ msgid "Path property must point to a valid Spatial node to work." msgstr "Cal que la propietat Camà assenyali cap a un node Spatial và lid." #: scene/3d/soft_body.cpp -msgid "This body will be ignored until you set a mesh" -msgstr "" +#, fuzzy +msgid "This body will be ignored until you set a mesh." +msgstr "Aquest cos s'ignorarà fins que l'hi establiu una malla" #: scene/3d/soft_body.cpp #, fuzzy @@ -10396,7 +11894,7 @@ msgstr "Eines d'Animació" #: scene/animation/animation_tree.cpp msgid "In node '%s', invalid animation: '%s'." -msgstr "" +msgstr "En el node '%s', l'animació no és valida: '%s'." #: scene/animation/animation_tree.cpp #, fuzzy @@ -10433,15 +11931,16 @@ msgstr "" #: scene/gui/color_picker.cpp msgid "Pick a color from the screen." -msgstr "" +msgstr "Trieu un color de la pantalla." #: scene/gui/color_picker.cpp msgid "Raw Mode" msgstr "Mode Cru" #: scene/gui/color_picker.cpp +#, fuzzy msgid "Switch between hexadecimal and code values." -msgstr "" +msgstr "Canviar entre valors hexadecimals i de codi." #: scene/gui/color_picker.cpp #, fuzzy @@ -10452,7 +11951,7 @@ msgstr "Afegeix el Color actual com a predeterminat" msgid "" "Container by itself serves no purpose unless a script configures it's " "children placement behavior.\n" -"If you dont't intend to add a script, then please use a plain 'Control' node " +"If you don't intend to add a script, then please use a plain 'Control' node " "instead." msgstr "" @@ -10464,11 +11963,6 @@ msgstr "Ep!" msgid "Please Confirm..." msgstr "Confirmeu..." -#: scene/gui/file_dialog.cpp -#, fuzzy -msgid "Go to parent folder." -msgstr "Vés al directori principal" - #: scene/gui/popup.cpp msgid "" "Popups will hide by default unless you call popup() or any of the popup*() " @@ -10544,8 +12038,9 @@ msgid "Invalid source for shader." msgstr "La mida de la lletra no és và lida." #: servers/visual/shader_language.cpp +#, fuzzy msgid "Assignment to function." -msgstr "" +msgstr "Assignació a funció" #: servers/visual/shader_language.cpp msgid "Assignment to uniform." @@ -10555,6 +12050,76 @@ msgstr "" msgid "Varyings can only be assigned in vertex function." msgstr "" +#: servers/visual/shader_language.cpp +msgid "Constants cannot be modified." +msgstr "" + +#~ msgid "Path to Node:" +#~ msgstr "Camà al Node:" + +#~ msgid "Delete selected files?" +#~ msgstr "Voleu Esborrar els fitxers seleccionats?" + +#~ msgid "There is no 'res://default_bus_layout.tres' file." +#~ msgstr "No s'ha trobat cap 'res://default_bus_layout.tres'." + +#~ 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" + +#~ msgid "Previous Directory" +#~ msgstr "Directori Anterior" + +#~ msgid "Next Directory" +#~ msgstr "Directori Següent" + +#~ msgid "Ease in" +#~ msgstr "Entrada Lenta" + +#~ msgid "Ease out" +#~ msgstr "Sortida Lenta" + +#~ msgid "Create Convex Static Body" +#~ msgstr "Crea un Cos Està tic Convex" + +#~ msgid "CheckBox Radio1" +#~ msgstr "casella Radio1" + +#~ msgid "CheckBox Radio2" +#~ msgstr "Casella Radio2" + +#~ msgid "Create folder" +#~ msgstr "Crea un Directori" + +#~ msgid "Already existing" +#~ msgstr "Ja existeix" + +#~ msgid "Custom Node" +#~ msgstr "Node Personalitzat" + +#~ msgid "Invalid Path" +#~ msgstr "Camà no và lid" + +#~ msgid "GridMap Duplicate Selection" +#~ msgstr "Duplica la Selecció del GridMap" + +#~ msgid "Create Area" +#~ msgstr "Crea una Àrea" + +#~ msgid "Create Exterior Connector" +#~ msgstr "Crea un Connector Exterior" + +#~ msgid "Edit Signal Arguments:" +#~ msgstr "Edita Arguments del Senyal:" + +#~ msgid "Edit Variable:" +#~ msgstr "Edita Variable:" + #~ msgid "Snap (s): " #~ msgstr "Pas (s): " @@ -10681,9 +12246,6 @@ msgstr "" #~ msgid "Class List:" #~ msgstr "Llista de Classes:" -#~ msgid "Search Classes" -#~ msgstr "Cerca Classes" - #~ msgid "Public Methods" #~ msgstr "Mètodes Públics" @@ -10761,9 +12323,6 @@ msgstr "" #~ msgid "Error:" #~ msgstr "Error:" -#~ msgid "Source:" -#~ msgstr "Origen:" - #~ msgid "Function:" #~ msgstr "Funció:" @@ -10785,21 +12344,9 @@ msgstr "" #~ msgid "Get" #~ msgstr "Obtenir" -#~ msgid "Change Scalar Constant" -#~ msgstr "Modificar una constant escalar" - -#~ msgid "Change Vec Constant" -#~ msgstr "Modificar una constant vectorial" - #~ msgid "Change RGB Constant" #~ msgstr "Modificar una constant RGB" -#~ msgid "Change Scalar Operator" -#~ msgstr "Modifica un operador escalar" - -#~ msgid "Change Vec Operator" -#~ msgstr "Modifica un operador vectorial" - #~ msgid "Change Vec Scalar Operator" #~ msgstr "Modifica un operador vectorial- escalar" @@ -10809,18 +12356,9 @@ msgstr "" #~ msgid "Toggle Rot Only" #~ msgstr "només Rotacio" -#~ msgid "Change Scalar Function" -#~ msgstr "Modifica una Funció Escalar" - #~ msgid "Change Vec Function" #~ msgstr "Modifica una Funció Vectorial" -#~ msgid "Change Scalar Uniform" -#~ msgstr "Modificar un Uniforme Escalar" - -#~ msgid "Change Vec Uniform" -#~ msgstr "Modifica un Uniforme Vectorial" - #~ msgid "Change RGB Uniform" #~ msgstr "Modifica un Uniforme RGB" @@ -10830,9 +12368,6 @@ msgstr "" #~ msgid "Change XForm Uniform" #~ msgstr "Modifica el Uniforme XForm" -#~ msgid "Change Texture Uniform" -#~ msgstr "Modifica un Uniforme Textura" - #~ msgid "Change Cubemap Uniform" #~ msgstr "Modifica un Uniforme 'CubeMap'" @@ -10851,9 +12386,6 @@ msgstr "" #~ msgid "Modify Curve Map" #~ msgstr "Modifica el Mapa de Corbes" -#~ msgid "Change Input Name" -#~ msgstr "Modifica el Nom de l'Entrada" - #~ msgid "Connect Graph Nodes" #~ msgstr "Connecta els Nodes de Graf" @@ -10881,9 +12413,6 @@ msgstr "" #~ msgid "Add Shader Graph Node" #~ msgstr "Afegeix un Node de Graf d'Ombreig" -#~ msgid "Disabled" -#~ msgstr "Desactivat" - #~ msgid "Move Anim Track Up" #~ msgstr "Mou la Pista Amunt" @@ -11061,17 +12590,11 @@ msgstr "" #~ msgid "Item name or ID:" #~ msgstr "Nom o ID de l'Element:" -#~ msgid "Autotiles" -#~ msgstr "AutoTiles" - #~ msgid "Export templates for this platform are missing/corrupted: " #~ msgstr "" #~ "Manquen les Plantilles d'Exportació per aquesta plataforma o s'han " #~ "malmès: " -#~ msgid "Button 7" -#~ msgstr "Botó 7" - #~ msgid "Button 8" #~ msgstr "Botó 8" @@ -11329,9 +12852,6 @@ msgstr "" #~ msgid "Source Texture(s):" #~ msgstr "Textures Font:" -#~ msgid "Target Path:" -#~ msgstr "Camà de Destinació:" - #~ msgid "Accept" #~ msgstr "Accepta" diff --git a/editor/translations/cs.po b/editor/translations/cs.po index 63d5bea503..34adfd7652 100644 --- a/editor/translations/cs.po +++ b/editor/translations/cs.po @@ -80,6 +80,15 @@ msgstr "Vyvážený" msgid "Mirror" msgstr "Zrcadlit X" +#: editor/animation_bezier_editor.cpp editor/editor_profiler.cpp +msgid "Time:" +msgstr "ÄŒas:" + +#: editor/animation_bezier_editor.cpp +#, fuzzy +msgid "Value:" +msgstr "Hodnota" + #: editor/animation_bezier_editor.cpp msgid "Insert Key Here" msgstr "Vložit klÃÄ zde" @@ -164,14 +173,20 @@ msgid "Animation Playback Track" msgstr "Stopa pÅ™ehrávánà animace" #: editor/animation_track_editor.cpp -msgid "Add Track" -msgstr "PÅ™idat stopu" +#, fuzzy +msgid "Animation length (frames)" +msgstr "Délka animace (v sekundách)" #: editor/animation_track_editor.cpp -msgid "Animation Length Time (seconds)" +#, fuzzy +msgid "Animation length (seconds)" msgstr "Délka animace (v sekundách)" #: editor/animation_track_editor.cpp +msgid "Add Track" +msgstr "PÅ™idat stopu" + +#: editor/animation_track_editor.cpp msgid "Animation Looping" msgstr "Opakovánà animace" @@ -297,11 +312,13 @@ msgid "Create %d NEW tracks and insert keys?" msgstr "VytvoÅ™it %d NOVÃCH stop a vložit klÃÄe?" #: editor/animation_track_editor.cpp editor/create_dialog.cpp -#: editor/editor_audio_buses.cpp editor/editor_plugin_settings.cpp -#: editor/plugin_config_dialog.cpp +#: editor/editor_audio_buses.cpp editor/editor_feature_profile.cpp +#: editor/editor_plugin_settings.cpp editor/plugin_config_dialog.cpp #: editor/plugins/abstract_polygon_2d_editor.cpp #: editor/plugins/mesh_instance_editor_plugin.cpp -#: editor/plugins/particles_editor_plugin.cpp editor/script_create_dialog.cpp +#: editor/plugins/particles_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_create_dialog.cpp msgid "Create" msgstr "VytvoÅ™it" @@ -418,6 +435,23 @@ msgid "" msgstr "" #: editor/animation_track_editor.cpp +msgid "" +"This animation belongs to an imported scene, so changes to imported tracks " +"will not be saved.\n" +"\n" +"To enable the ability to add custom tracks, navigate to the scene's import " +"settings and set\n" +"\"Animation > Storage\" to \"Files\", enable \"Animation > Keep Custom Tracks" +"\", then re-import.\n" +"Alternatively, use an import preset that imports animations to separate " +"files." +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Warning: Editing imported animation" +msgstr "" + +#: editor/animation_track_editor.cpp msgid "Only show tracks from nodes selected in tree." msgstr "Zobrazit pouze stopy vybraných uzlů." @@ -551,7 +585,8 @@ msgstr "PomÄ›r zvÄ›tÅ¡enÃ:" msgid "Select tracks to copy:" msgstr "Zvolte stopy ke zkopÃrovánÃ:" -#: editor/animation_track_editor.cpp editor/editor_properties.cpp +#: editor/animation_track_editor.cpp editor/editor_log.cpp +#: editor/editor_properties.cpp #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp @@ -620,6 +655,11 @@ msgstr "Nahradit vÅ¡echny" msgid "Selection Only" msgstr "Pouze výbÄ›r" +#: editor/code_editor.cpp editor/plugins/script_text_editor.cpp +#: editor/plugins/text_editor.cpp +msgid "Standard" +msgstr "" + #: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/texture_region_editor_plugin.cpp #: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp @@ -645,21 +685,38 @@ msgid "Line and column numbers." msgstr "" #: editor/connections_dialog.cpp -msgid "Method in target Node must be specified!" +#, fuzzy +msgid "Method in target node must be specified." msgstr "Je nutné zadat metodu v cÃlovém uzlu!" #: editor/connections_dialog.cpp +#, fuzzy msgid "" -"Target method not found! Specify a valid method or attach a script to target " -"Node." +"Target method not found. Specify a valid method or attach a script to the " +"target node." msgstr "" "CÃlová metoda nenalezena! Specifikujte existujÃcà metodu, nebo k cÃlovému " "uzlu pÅ™ipojte skript." #: editor/connections_dialog.cpp -msgid "Connect To Node:" +#, fuzzy +msgid "Connect to Node:" msgstr "PÅ™ipojit k uzlu:" +#: editor/connections_dialog.cpp +#, fuzzy +msgid "Connect to Script:" +msgstr "Nelze se pÅ™ipojit k hostiteli:" + +#: editor/connections_dialog.cpp +#, fuzzy +msgid "From Signal:" +msgstr "Signály:" + +#: editor/connections_dialog.cpp +msgid "Scene does not contain any script." +msgstr "" + #: editor/connections_dialog.cpp editor/editor_autoload_settings.cpp #: editor/groups_editor.cpp editor/plugins/item_list_editor_plugin.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_settings_editor.cpp @@ -667,10 +724,12 @@ msgid "Add" msgstr "PÅ™idat" #: editor/connections_dialog.cpp editor/dependency_editor.cpp -#: editor/groups_editor.cpp editor/plugins/animation_player_editor_plugin.cpp +#: editor/editor_feature_profile.cpp editor/groups_editor.cpp +#: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp #: editor/plugins/resource_preloader_editor_plugin.cpp -#: editor/plugins/theme_editor_plugin.cpp editor/project_manager.cpp +#: editor/plugins/theme_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_manager.cpp #: editor/project_settings_editor.cpp msgid "Remove" msgstr "Odebrat" @@ -684,21 +743,32 @@ msgid "Extra Call Arguments:" msgstr "Dalšà argumenty volánÃ:" #: editor/connections_dialog.cpp -msgid "Path to Node:" -msgstr "Cesta k uzlu:" - -#: editor/connections_dialog.cpp -msgid "Make Function" -msgstr "VytvoÅ™it funkci" +#, fuzzy +msgid "Advanced" +msgstr "PokroÄilé možnosti" #: editor/connections_dialog.cpp msgid "Deferred" msgstr "OdloženÄ›" #: editor/connections_dialog.cpp +msgid "" +"Defers the signal, storing it in a queue and only firing it at idle time." +msgstr "" + +#: editor/connections_dialog.cpp msgid "Oneshot" msgstr "JednorázovÄ›" +#: editor/connections_dialog.cpp +msgid "Disconnects the signal after its first emission." +msgstr "" + +#: editor/connections_dialog.cpp +#, fuzzy +msgid "Cannot connect signal" +msgstr "PÅ™ipojit Signál: " + #: editor/connections_dialog.cpp editor/dependency_editor.cpp #: editor/export_template_manager.cpp editor/groups_editor.cpp #: editor/plugins/animation_player_editor_plugin.cpp @@ -739,11 +809,13 @@ msgid "Disconnect" msgstr "Odpojit" #: editor/connections_dialog.cpp -msgid "Connect Signal: " +#, fuzzy +msgid "Connect a Signal to a Method" msgstr "PÅ™ipojit Signál: " #: editor/connections_dialog.cpp -msgid "Edit Connection: " +#, fuzzy +msgid "Edit Connection:" msgstr "Upravit pÅ™ipojenÃ: " #: editor/connections_dialog.cpp @@ -776,7 +848,6 @@ msgid "Change %s Type" msgstr "ZmÄ›nit typ %d" #: editor/create_dialog.cpp editor/project_settings_editor.cpp -#: modules/visual_script/visual_script_editor.cpp msgid "Change" msgstr "ZmÄ›nit" @@ -807,7 +878,8 @@ msgid "Matches:" msgstr "Shody:" #: editor/create_dialog.cpp editor/plugin_config_dialog.cpp -#: editor/plugins/asset_library_editor_plugin.cpp editor/property_selector.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/property_selector.cpp #: modules/visual_script/visual_script_property_selector.cpp msgid "Description:" msgstr "Popis:" @@ -821,17 +893,19 @@ msgid "Dependencies For:" msgstr "Závislosti na:" #: editor/dependency_editor.cpp +#, fuzzy msgid "" "Scene '%s' is currently being edited.\n" -"Changes will not take effect unless reloaded." +"Changes will only take effect when reloaded." msgstr "" "Scéna '%s' se právÄ› upravuje.\n" "ZmÄ›ny se projevà po opÄ›tovném naÄtenÃ." #: editor/dependency_editor.cpp +#, fuzzy msgid "" "Resource '%s' is in use.\n" -"Changes will take effect when reloaded." +"Changes will only take effect when reloaded." msgstr "" "Zdroj '%s' se právÄ› použÃvá.\n" "ZmÄ›ny se projevà po opÄ›tovném naÄtenÃ." @@ -927,21 +1001,14 @@ msgid "Permanently delete %d item(s)? (No undo!)" msgstr "PermanentnÄ› smazat %d položek? (nelze vrátit zpÄ›t!)" #: editor/dependency_editor.cpp -msgid "Owns" -msgstr "VlastnÃ" - -#: editor/dependency_editor.cpp -msgid "Resources Without Explicit Ownership:" -msgstr "Zdroje bez explicitnÃho vlastnictvÃ:" +#, fuzzy +msgid "Show Dependencies" +msgstr "Závislosti" #: editor/dependency_editor.cpp editor/editor_node.cpp msgid "Orphan Resource Explorer" msgstr "PrůzkumnÃk osiÅ™elých zdrojů" -#: editor/dependency_editor.cpp -msgid "Delete selected files?" -msgstr "Odstranit vybrané soubory?" - #: editor/dependency_editor.cpp editor/editor_audio_buses.cpp #: editor/editor_file_dialog.cpp editor/editor_node.cpp #: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp @@ -950,6 +1017,14 @@ msgstr "Odstranit vybrané soubory?" msgid "Delete" msgstr "Odstranit" +#: editor/dependency_editor.cpp +msgid "Owns" +msgstr "VlastnÃ" + +#: editor/dependency_editor.cpp +msgid "Resources Without Explicit Ownership:" +msgstr "Zdroje bez explicitnÃho vlastnictvÃ:" + #: editor/dictionary_property_edit.cpp msgid "Change Dictionary Key" msgstr "ZmÄ›nit slovnÃkový klÃÄ" @@ -1064,7 +1139,7 @@ msgstr "BalÃÄek byl úspěšnÄ› nainstalován!" msgid "Success!" msgstr "ÚspÄ›ch!" -#: editor/editor_asset_installer.cpp +#: editor/editor_asset_installer.cpp editor/editor_node.cpp #: editor/plugins/asset_library_editor_plugin.cpp msgid "Install" msgstr "Instalovat" @@ -1191,8 +1266,12 @@ msgid "Open Audio Bus Layout" msgstr "OtevÅ™Ãt rozloženà Audio Busu" #: editor/editor_audio_buses.cpp -msgid "There is no 'res://default_bus_layout.tres' file." -msgstr "Soubor 'res://default_bus_layout.tres' neexistuje." +msgid "There is no '%s' file." +msgstr "" + +#: editor/editor_audio_buses.cpp editor/plugins/canvas_item_editor_plugin.cpp +msgid "Layout" +msgstr "RozloženÃ" #: editor/editor_audio_buses.cpp msgid "Invalid file, not an audio bus layout." @@ -1246,20 +1325,27 @@ msgid "Valid characters:" msgstr "Platné znaky:" #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing engine class name." +#, fuzzy +msgid "Must not collide with an existing engine class name." msgstr "Neplatný název. Nesmà kolidovat s existujÃcà názvem tÅ™Ãdy enginu." #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing buit-in type name." +#, fuzzy +msgid "Must not collide with an existing buit-in type name." msgstr "" "Neplatný název. Nesmà kolidovat s existujÃcÃm jménem zabudovaného typu." #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing global constant name." +#, fuzzy +msgid "Must not collide with an existing global constant name." msgstr "" "Neplatný název. Nesmà kolidovat s existujÃcÃm názvem globálnà konstanty." #: editor/editor_autoload_settings.cpp +msgid "Keyword cannot be used as an autoload name." +msgstr "" + +#: editor/editor_autoload_settings.cpp msgid "Autoload '%s' already exists!" msgstr "Autoload '%s' už existuje!" @@ -1287,11 +1373,12 @@ msgstr "Povolit" msgid "Rearrange Autoloads" msgstr "PÅ™eskupit Autoloady" -#: editor/editor_autoload_settings.cpp -msgid "Invalid Path." +#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp +#, fuzzy +msgid "Invalid path." msgstr "Neplatná cesta." -#: editor/editor_autoload_settings.cpp +#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp msgid "File does not exist." msgstr "Soubor neexistuje." @@ -1342,7 +1429,8 @@ msgid "[unsaved]" msgstr "[neuloženo]" #: editor/editor_dir_dialog.cpp -msgid "Please select a base directory first" +#, fuzzy +msgid "Please select a base directory first." msgstr "Nejprve vyberte výchozà složku" #: editor/editor_dir_dialog.cpp @@ -1350,7 +1438,8 @@ msgid "Choose a Directory" msgstr "Vyberte složku" #: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp -#: editor/filesystem_dock.cpp scene/gui/file_dialog.cpp +#: editor/filesystem_dock.cpp editor/project_manager.cpp +#: scene/gui/file_dialog.cpp msgid "Create Folder" msgstr "VytvoÅ™it složku" @@ -1422,6 +1511,178 @@ msgstr "Vlastnà šablona k uveÅ™ejnÄ›nà nebyla nalezena." msgid "Template file not found:" msgstr "Soubor Å¡ablony nenalezen:" +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "3D Editor" +msgstr "Editor" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Script Editor" +msgstr "OtevÅ™Ãt editor skriptů" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Asset Library" +msgstr "OtevÅ™Ãt knihovnu assetů" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Scene Tree Editing" +msgstr "Strom scény (uzly):" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Import Dock" +msgstr "Importovat" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Node Dock" +msgstr "Uzel pÅ™esunut" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Filesystem Dock" +msgstr "Souborový systém" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Erase profile '%s'? (no undo)" +msgstr "Nahradit vÅ¡echny (bez možnosti vrácenÃ)" + +#: editor/editor_feature_profile.cpp +msgid "Profile must be a valid filename and must not contain '.'" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Profile with this name already exists." +msgstr "Soubor nebo složka s tÃmto názvem již existuje." + +#: editor/editor_feature_profile.cpp +msgid "(Editor Disabled, Properties Disabled)" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "(Properties Disabled)" +msgstr "Pouze vlastnosti" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "(Editor Disabled)" +msgstr "Vypnuto" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Class Options:" +msgstr "Popis tÅ™Ãdy:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enable Contextual Editor" +msgstr "OtevÅ™Ãt dalšà editor" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enabled Properties:" +msgstr "Vlastnosti:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enabled Features:" +msgstr "Funkce" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enabled Classes:" +msgstr "Hledat tÅ™Ãdy" + +#: editor/editor_feature_profile.cpp +msgid "File '%s' format is invalid, import aborted." +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "" +"Profile '%s' already exists. Remote it first before importing, import " +"aborted." +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Error saving profile to path: '%s'." +msgstr "Chyba pÅ™i nahrávánà šablony '%s'" + +#: editor/editor_feature_profile.cpp +msgid "Unset" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Current Profile" +msgstr "Aktuálnà verze:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Make Current" +msgstr "AktuálnÃ:" + +#: editor/editor_feature_profile.cpp +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "New" +msgstr "Nový" + +#: editor/editor_feature_profile.cpp editor/editor_node.cpp +#: editor/plugins/asset_library_editor_plugin.cpp editor/project_manager.cpp +msgid "Import" +msgstr "Importovat" + +#: editor/editor_feature_profile.cpp editor/editor_node.cpp +#: editor/project_export.cpp +msgid "Export" +msgstr "Exportovat" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Available Profiles" +msgstr "Dostupné uzly:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enabled Classes" +msgstr "Hledat tÅ™Ãdy" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Class Options" +msgstr "Popis tÅ™Ãdy" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "New profile name:" +msgstr "Nové jméno:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Erase Profile" +msgstr "Vymazat oblast" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Import Profile(s)" +msgstr "%d vÃce souborů" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Export Profile" +msgstr "Exportovat projekt" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Manage Editor Feature Profiles" +msgstr "Spravovat exportnà šablony" + #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Select Current Folder" msgstr "Vybrat stávajÃcà složku" @@ -1442,8 +1703,8 @@ msgstr "KopÃrovat cestu" msgid "Open in File Manager" msgstr "OtevÅ™Ãt ve správci souborů" -#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp -#: editor/project_manager.cpp +#: editor/editor_file_dialog.cpp editor/editor_node.cpp +#: editor/filesystem_dock.cpp editor/project_manager.cpp msgid "Show in File Manager" msgstr "Zobrazit ve správci souborů" @@ -1502,7 +1763,7 @@ msgstr "Jit dopÅ™edu" msgid "Go Up" msgstr "JÃt o úroveň výš" -#: editor/editor_file_dialog.cpp +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Toggle Hidden Files" msgstr "Zobrazit skryté soubory" @@ -1534,8 +1795,9 @@ msgstr "PÅ™edchozà složka" msgid "Next Folder" msgstr "Dalšà složka" -#: editor/editor_file_dialog.cpp -msgid "Go to parent folder" +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp +#, fuzzy +msgid "Go to parent folder." msgstr "JÃt na nadÅ™azenou složku" #: editor/editor_file_dialog.cpp @@ -1543,6 +1805,11 @@ msgstr "JÃt na nadÅ™azenou složku" msgid "(Un)favorite current folder." msgstr "Nelze vytvoÅ™it složku." +#: editor/editor_file_dialog.cpp +#, fuzzy +msgid "Toggle visibility of hidden files." +msgstr "Zobrazit skryté soubory" + #: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp msgid "View items as a grid of thumbnails." msgstr "Zobrazit položky jako mřÞku náhledů." @@ -1557,6 +1824,7 @@ msgstr "Složky a soubory:" #: editor/editor_file_dialog.cpp editor/plugins/sprite_editor_plugin.cpp #: editor/plugins/style_box_editor_plugin.cpp +#: editor/plugins/theme_editor_plugin.cpp msgid "Preview:" msgstr "Náhled:" @@ -1573,6 +1841,12 @@ msgid "ScanSources" msgstr "" #: editor/editor_file_system.cpp +msgid "" +"There are multiple importers for different types pointing to file %s, import " +"aborted" +msgstr "" + +#: editor/editor_file_system.cpp msgid "(Re)Importing Assets" msgstr "(Re)Importovánà assetů" @@ -1756,6 +2030,10 @@ msgstr "Nastavit vÃce:" msgid "Output:" msgstr "Výstup:" +#: editor/editor_log.cpp editor/plugins/tile_map_editor_plugin.cpp +msgid "Copy Selection" +msgstr "KopÃrovat výbÄ›r" + #: editor/editor_log.cpp editor/editor_profiler.cpp #: editor/editor_properties.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp @@ -1906,9 +2184,10 @@ msgstr "" "pochopili tento proces." #: editor/editor_node.cpp +#, fuzzy msgid "" "This resource belongs to a scene that was instanced or inherited.\n" -"Changes to it will not be kept when saving the current scene." +"Changes to it won't be kept when saving the current scene." msgstr "" "Tento zdroj patřà scénÄ›, která byla instancovaná nebo podÄ›dÄ›ná.\n" "Jeho zmÄ›ny nebudou zachovány pÅ™i uloženà aktuálnà scény." @@ -1922,8 +2201,9 @@ msgstr "" "panelu Import a znovu ho importujte." #: editor/editor_node.cpp +#, fuzzy msgid "" -"This scene was imported, so changes to it will not be kept.\n" +"This scene was imported, so changes to it won't be kept.\n" "Instancing it or inheriting will allow making changes to it.\n" "Please read the documentation relevant to importing scenes to better " "understand this workflow." @@ -1934,8 +2214,9 @@ msgstr "" "pochopili tento proces." #: editor/editor_node.cpp +#, fuzzy msgid "" -"This is a remote object so changes to it will not be kept.\n" +"This is a remote object, so changes to it won't be kept.\n" "Please read the documentation relevant to debugging to better understand " "this workflow." msgstr "" @@ -1948,27 +2229,6 @@ msgid "There is no defined scene to run." msgstr "Neexistuje žádná scéna pro spuÅ¡tÄ›nÃ." #: editor/editor_node.cpp -msgid "" -"No main scene has ever been defined, select one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" - -#: editor/editor_node.cpp -msgid "" -"Selected scene '%s' does not exist, select a valid one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" - -#: editor/editor_node.cpp -msgid "" -"Selected scene '%s' is not a scene file, select a valid one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" - -#: editor/editor_node.cpp msgid "Current scene was never saved, please save it prior to running." msgstr "Aktuálnà scéna nebyla nikdy uložena, prosÃm uložte jà pÅ™ed spuÅ¡tÄ›nÃm." @@ -1976,7 +2236,7 @@ msgstr "Aktuálnà scéna nebyla nikdy uložena, prosÃm uložte jà pÅ™ed spuÅ¡ msgid "Could not start subprocess!" msgstr "Nelze spustit podproces!" -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/filesystem_dock.cpp msgid "Open Scene" msgstr "OtevÅ™Ãt scénu" @@ -1985,6 +2245,11 @@ msgid "Open Base Scene" msgstr "OtevÅ™Ãt základnà scénu" #: editor/editor_node.cpp +#, fuzzy +msgid "Quick Open..." +msgstr "Rychle otevÅ™Ãt scénu..." + +#: editor/editor_node.cpp msgid "Quick Open Scene..." msgstr "Rychle otevÅ™Ãt scénu..." @@ -2161,6 +2426,27 @@ msgid "Clear Recent Scenes" msgstr "Vymazat nedávné scény" #: editor/editor_node.cpp +msgid "" +"No main scene has ever been defined, select one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"Selected scene '%s' does not exist, select a valid one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"Selected scene '%s' is not a scene file, select a valid one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" + +#: editor/editor_node.cpp msgid "Save Layout" msgstr "Uložit rozloženÃ" @@ -2186,6 +2472,19 @@ msgstr "Spustit tuto scénu" msgid "Close Tab" msgstr "ZavÅ™Ãt záložku" +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +msgid "Close Other Tabs" +msgstr "ZavÅ™Ãt ostatnà záložky" + +#: editor/editor_node.cpp +msgid "Close Tabs to the Right" +msgstr "" + +#: editor/editor_node.cpp +#, fuzzy +msgid "Close All Tabs" +msgstr "ZavÅ™Ãt vÅ¡e" + #: editor/editor_node.cpp msgid "Switch Scene Tab" msgstr "PÅ™epnout záložku scény" @@ -2308,10 +2607,6 @@ msgstr "Projekt" msgid "Project Settings" msgstr "Nastavenà projektu" -#: editor/editor_node.cpp editor/project_export.cpp -msgid "Export" -msgstr "Exportovat" - #: editor/editor_node.cpp editor/plugins/tile_set_editor_plugin.cpp msgid "Tools" msgstr "Nástroje" @@ -2321,6 +2616,10 @@ msgid "Open Project Data Folder" msgstr "OtevÅ™Ãt složku s daty projektu" #: editor/editor_node.cpp +msgid "Install Android Build Template" +msgstr "" + +#: editor/editor_node.cpp msgid "Quit to Project List" msgstr "UkonÄit do seznamu projektů" @@ -2443,6 +2742,11 @@ msgstr "OtevÅ™Ãt složku s daty editoru" msgid "Open Editor Settings Folder" msgstr "OtevÅ™Ãt složku s nastavenÃm editoru" +#: editor/editor_node.cpp +#, fuzzy +msgid "Manage Editor Features" +msgstr "Spravovat exportnà šablony" + #: editor/editor_node.cpp editor/project_export.cpp msgid "Manage Export Templates" msgstr "Spravovat exportnà šablony" @@ -2455,6 +2759,7 @@ msgstr "NápovÄ›da" #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp #: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp #: editor/project_settings_editor.cpp editor/rename_dialog.cpp msgid "Search" msgstr "Hledat" @@ -2544,11 +2849,6 @@ msgstr "Akualizovat zmÄ›ny" msgid "Disable Update Spinner" msgstr "Vypnout aktualizaÄnà koleÄko" -#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp -#: editor/project_manager.cpp -msgid "Import" -msgstr "Importovat" - #: editor/editor_node.cpp msgid "FileSystem" msgstr "Souborový systém" @@ -2574,6 +2874,28 @@ msgid "Don't Save" msgstr "Neukládat" #: editor/editor_node.cpp +msgid "Android build template is missing, please install relevant templates." +msgstr "" + +#: editor/editor_node.cpp +#, fuzzy +msgid "Manage Templates" +msgstr "Spravovat exportnà šablony" + +#: editor/editor_node.cpp +msgid "" +"This will install the Android project for custom builds.\n" +"Note that, in order to use it, it needs to be enabled per export preset." +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"Android build template is already installed and it won't be overwritten.\n" +"Remove the \"build\" directory manually before attempting this operation " +"again." +msgstr "" + +#: editor/editor_node.cpp msgid "Import Templates From ZIP File" msgstr "Importovat Å¡ablony ze ZIP souboru" @@ -2696,10 +3018,6 @@ msgid "Physics Frame %" msgstr "Fyzikálnà snÃmek %" #: editor/editor_profiler.cpp -msgid "Time:" -msgstr "ÄŒas:" - -#: editor/editor_profiler.cpp msgid "Inclusive" msgstr "" @@ -2838,10 +3156,6 @@ msgid "Remove Item" msgstr "Odstranit položku" #: editor/editor_run_native.cpp -msgid "Select device from the list" -msgstr "Vyberte zaÅ™Ãzenà ze seznamu" - -#: editor/editor_run_native.cpp msgid "" "No runnable export preset found for this platform.\n" "Please add a runnable preset in the export menu." @@ -2877,6 +3191,10 @@ msgstr "NezapomÄ›l jste metodu '_run'?" msgid "Select Node(s) to Import" msgstr "" +#: editor/editor_sub_scene.cpp editor/project_manager.cpp +msgid "Browse" +msgstr "Procházet" + #: editor/editor_sub_scene.cpp msgid "Scene Path:" msgstr "" @@ -3042,6 +3360,11 @@ msgid "SSL Handshake Error" msgstr "Selhánà SSL handshaku" #: editor/export_template_manager.cpp +#, fuzzy +msgid "Uncompressing Android Build Sources" +msgstr "Dekomprese uživatelského obsahu" + +#: editor/export_template_manager.cpp msgid "Current Version:" msgstr "Aktuálnà verze:" @@ -3058,7 +3381,8 @@ msgid "Remove Template" msgstr "Odstranit Å¡ablonu" #: editor/export_template_manager.cpp -msgid "Select template file" +#, fuzzy +msgid "Select Template File" msgstr "Vybrat soubor Å¡ablony" #: editor/export_template_manager.cpp @@ -3118,7 +3442,8 @@ msgid "No name provided." msgstr "Nebylo poskytnuto žádné jméno." #: editor/filesystem_dock.cpp -msgid "Provided name contains invalid characters" +#, fuzzy +msgid "Provided name contains invalid characters." msgstr "Poskytnuté jméno obsahuje neplatné znaky" #: editor/filesystem_dock.cpp @@ -3146,19 +3471,27 @@ msgid "Duplicating folder:" msgstr "Duplikace složky:" #: editor/filesystem_dock.cpp -msgid "Open Scene(s)" -msgstr "OtevÅ™Ãt scénu(y)" +#, fuzzy +msgid "New Inherited Scene" +msgstr "Nová odvozená scéna..." + +#: editor/filesystem_dock.cpp +#, fuzzy +msgid "Open Scenes" +msgstr "OtevÅ™Ãt scénu" #: editor/filesystem_dock.cpp msgid "Instance" msgstr "Instance" #: editor/filesystem_dock.cpp -msgid "Add to favorites" +#, fuzzy +msgid "Add to Favorites" msgstr "PÅ™idat do oblÃbených" #: editor/filesystem_dock.cpp -msgid "Remove from favorites" +#, fuzzy +msgid "Remove from Favorites" msgstr "Odebrat z oblÃbených" #: editor/filesystem_dock.cpp @@ -3189,11 +3522,13 @@ msgstr "Nový skript..." msgid "New Resource..." msgstr "Nový zdroj..." -#: editor/filesystem_dock.cpp editor/script_editor_debugger.cpp +#: editor/filesystem_dock.cpp editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_editor_debugger.cpp msgid "Expand All" msgstr "Rozbalit vÅ¡e" -#: editor/filesystem_dock.cpp editor/script_editor_debugger.cpp +#: editor/filesystem_dock.cpp editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_editor_debugger.cpp msgid "Collapse All" msgstr "Sbalit vÅ¡e" @@ -3205,19 +3540,22 @@ msgid "Rename" msgstr "PÅ™ejmenovat" #: editor/filesystem_dock.cpp -msgid "Previous Directory" +#, fuzzy +msgid "Previous Folder/File" msgstr "PÅ™edchozà složka" #: editor/filesystem_dock.cpp -msgid "Next Directory" -msgstr "NásledujÃcà složka" +#, fuzzy +msgid "Next Folder/File" +msgstr "Dalšà složka" #: editor/filesystem_dock.cpp msgid "Re-Scan Filesystem" msgstr "Znovu skenovat souborový systém" #: editor/filesystem_dock.cpp -msgid "Toggle split mode" +#, fuzzy +msgid "Toggle Split Mode" msgstr "PÅ™epnout režim rozdÄ›lenÃ" #: editor/filesystem_dock.cpp @@ -3248,7 +3586,7 @@ msgstr "PÅ™epsat" msgid "Create Script" msgstr "VytvoÅ™it skript" -#: editor/find_in_files.cpp +#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp msgid "Find in Files" msgstr "NajÃt v souborech" @@ -3264,6 +3602,12 @@ msgstr "Složka:" msgid "Filters:" msgstr "Filtry:" +#: editor/find_in_files.cpp +msgid "" +"Include the files with the following extensions. Add or remove them in " +"ProjectSettings." +msgstr "" + #: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp msgid "Find..." @@ -3701,7 +4045,8 @@ msgid "Open Animation Node" msgstr "OtevÅ™Ãt uzel animace" #: editor/plugins/animation_blend_space_2d_editor.cpp -msgid "Triangle already exists" +#, fuzzy +msgid "Triangle already exists." msgstr "TrojúhelnÃk již existuje" #: editor/plugins/animation_blend_space_2d_editor.cpp @@ -3779,7 +4124,6 @@ msgid "Node Moved" msgstr "Uzel pÅ™esunut" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Unable to connect, port may be in use or connection may be invalid." msgstr "Nelze se pÅ™ipojit, port může být použÃván nebo pÅ™ipojenà nenà platné." @@ -3847,7 +4191,8 @@ msgid "Edit Filtered Tracks:" msgstr "Upravit filtrované stopy:" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -msgid "Enable filtering" +#, fuzzy +msgid "Enable Filtering" msgstr "Povolit filtrovánÃ" #: editor/plugins/animation_player_editor_plugin.cpp @@ -3962,10 +4307,6 @@ msgid "Animation" msgstr "Animace" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "New" -msgstr "Nový" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Edit Transitions..." msgstr "Upravit pÅ™echody..." @@ -3982,12 +4323,13 @@ msgid "Autoplay on Load" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Onion Skinning" +msgid "Enable Onion Skinning" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Enable Onion Skinning" -msgstr "" +#, fuzzy +msgid "Onion Skinning Options" +msgstr "Možnosti pÅ™ichytávánÃ" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Directions" @@ -4530,13 +4872,19 @@ msgid "Move CanvasItem" msgstr "PÅ™emÃstit CanvasItem" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"Children of containers have their anchors and margins values overridden by " +"their parent." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Presets for the anchors and margins values of a Control node." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "" -"Children of containers have their anchors and margins values overridden by " -"their parent." +"When active, moving Control nodes changes their anchors instead of their " +"margins." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4552,10 +4900,52 @@ msgid "Change Anchors" msgstr "Upravit kotvy" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Lock Selected" +msgstr "Nástroj VýbÄ›r" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Unlock Selected" +msgstr "Smazat vybraný" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Group Selected" +msgstr "KopÃrovat výbÄ›r" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Ungroup Selected" +msgstr "KopÃrovat výbÄ›r" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Paste Pose" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Create Custom Bone(s) from Node(s)" +msgstr "VytvoÅ™it ze scény" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Clear Bones" +msgstr "Vymazat pózu" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Make IK Chain" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Clear IK Chain" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "" "Warning: Children of a container get their position and size determined only " "by their parent." @@ -4628,7 +5018,8 @@ msgid "Snapping Options" msgstr "Možnosti pÅ™ichytávánÃ" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to grid" +#, fuzzy +msgid "Snap to Grid" msgstr "PÅ™ichytit k mřÞce" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4649,31 +5040,38 @@ msgid "Use Pixel Snap" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Smart snapping" +#, fuzzy +msgid "Smart Snapping" msgstr "Chytré pÅ™ichytávánÃ" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to parent" +#, fuzzy +msgid "Snap to Parent" msgstr "PÅ™ichytit k rodiÄovi" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node anchor" -msgstr "" +#, fuzzy +msgid "Snap to Node Anchor" +msgstr "PÅ™ichytit ke stÅ™edu uzlu" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node sides" +#, fuzzy +msgid "Snap to Node Sides" msgstr "PÅ™ichytit ke stranám uzlu" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node center" +#, fuzzy +msgid "Snap to Node Center" msgstr "PÅ™ichytit ke stÅ™edu uzlu" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to other nodes" +#, fuzzy +msgid "Snap to Other Nodes" msgstr "PÅ™ichytit k jiným uzlům" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to guides" +#, fuzzy +msgid "Snap to Guides" msgstr "PÅ™ichytit k vodÃtkům" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4687,10 +5085,12 @@ msgid "Unlock the selected object (can be moved)." msgstr "Uvolnit vybraný objekt (může být pÅ™esunut)." #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Makes sure the object's children are not selectable." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Restores the object's children's ability to be selected." msgstr "" @@ -4703,14 +5103,6 @@ msgid "Show Bones" msgstr "Zobrazit kosti" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Make IK Chain" -msgstr "" - -#: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Clear IK Chain" -msgstr "" - -#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Make Custom Bone(s) from Node(s)" msgstr "" @@ -4762,8 +5154,8 @@ msgid "Frame Selection" msgstr "VýbÄ›r snÃmku" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Layout" -msgstr "RozloženÃ" +msgid "Preview Canvas Scale" +msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Translation mask for inserting keys." @@ -4816,6 +5208,11 @@ msgid "Divide grid step by 2" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Pan View" +msgstr "Pohled zezadu" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Add %s" msgstr "PÅ™idat %s" @@ -4838,7 +5235,8 @@ msgid "Error instancing scene from %s" msgstr "Chyba instancovánà scény z %s" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Change default type" +#, fuzzy +msgid "Change Default Type" msgstr "ZmÄ›nit výchozà typ" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4924,20 +5322,21 @@ msgid "Create Emission Points From Node" msgstr "" #: editor/plugins/curve_editor_plugin.cpp -msgid "Flat0" +#, fuzzy +msgid "Flat 0" msgstr "Flat0" #: editor/plugins/curve_editor_plugin.cpp -msgid "Flat1" +#, fuzzy +msgid "Flat 1" msgstr "Flat1" -#: editor/plugins/curve_editor_plugin.cpp -#, fuzzy -msgid "Ease in" -msgstr "ZmÄ›nit měřÃtko výbÄ›ru" +#: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp +msgid "Ease In" +msgstr "" -#: editor/plugins/curve_editor_plugin.cpp -msgid "Ease out" +#: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp +msgid "Ease Out" msgstr "" #: editor/plugins/curve_editor_plugin.cpp @@ -4957,24 +5356,28 @@ msgid "Load Curve Preset" msgstr "" #: editor/plugins/curve_editor_plugin.cpp -msgid "Add point" +#, fuzzy +msgid "Add Point" msgstr "PÅ™idat bod" #: editor/plugins/curve_editor_plugin.cpp -msgid "Remove point" +#, fuzzy +msgid "Remove Point" msgstr "Odstranit bod" #: editor/plugins/curve_editor_plugin.cpp #, fuzzy -msgid "Left linear" +msgid "Left Linear" msgstr "LineárnÃ" #: editor/plugins/curve_editor_plugin.cpp -msgid "Right linear" -msgstr "" +#, fuzzy +msgid "Right Linear" +msgstr "Pohled zprava" #: editor/plugins/curve_editor_plugin.cpp -msgid "Load preset" +#, fuzzy +msgid "Load Preset" msgstr "NaÄÃst preset" #: editor/plugins/curve_editor_plugin.cpp @@ -5030,11 +5433,17 @@ msgid "This doesn't work on scene root!" msgstr "Toto v koÅ™enu scény nefunguje!" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Trimesh Shape" +#, fuzzy +msgid "Create Trimesh Static Shape" msgstr "VytvoÅ™it Trimesh Shape" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Shape" +msgid "Failed creating shapes!" +msgstr "" + +#: editor/plugins/mesh_instance_editor_plugin.cpp +#, fuzzy +msgid "Create Convex Shape(s)" msgstr "VytvoÅ™it Convex Shape" #: editor/plugins/mesh_instance_editor_plugin.cpp @@ -5087,16 +5496,13 @@ msgid "Create Trimesh Static Body" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Static Body" -msgstr "" - -#: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Trimesh Collision Sibling" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Collision Sibling" -msgstr "" +#, fuzzy +msgid "Create Convex Collision Sibling(s)" +msgstr "VytvoÅ™it navigaÄnà polygon" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Outline Mesh..." @@ -5251,6 +5657,11 @@ msgid "Create Navigation Polygon" msgstr "VytvoÅ™it navigaÄnà polygon" #: editor/plugins/particles_2d_editor_plugin.cpp +#: editor/plugins/particles_editor_plugin.cpp +msgid "Convert to CPUParticles" +msgstr "PÅ™evést na CPUParticles" + +#: editor/plugins/particles_2d_editor_plugin.cpp #, fuzzy msgid "Generating Visibility Rect" msgstr "Generovánà C# projektu..." @@ -5265,11 +5676,6 @@ msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp #: editor/plugins/particles_editor_plugin.cpp -msgid "Convert to CPUParticles" -msgstr "PÅ™evést na CPUParticles" - -#: editor/plugins/particles_2d_editor_plugin.cpp -#: editor/plugins/particles_editor_plugin.cpp msgid "Generation Time (sec):" msgstr "ÄŒas generovánà (sec):" @@ -5408,7 +5814,7 @@ msgstr "UzavÅ™Ãt kÅ™ivku" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp editor/plugins/theme_editor_plugin.cpp -#: editor/project_export.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_export.cpp msgid "Options" msgstr "Možnosti" @@ -5462,7 +5868,7 @@ msgstr "RozdÄ›lit segment (v kÅ™ivce)" #: editor/plugins/physical_bone_plugin.cpp #, fuzzy -msgid "Move joint" +msgid "Move Joint" msgstr "PÅ™esunout bod" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5699,7 +6105,6 @@ msgid "Open in Editor" msgstr "OtevÅ™Ãt v editoru" #: editor/plugins/resource_preloader_editor_plugin.cpp -#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Load Resource" msgstr "NaÄÃst zdroj" @@ -5789,6 +6194,11 @@ msgid "%s Class Reference" msgstr " Reference tÅ™Ãdy" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp +msgid "Find Next" +msgstr "NajÃt dalÅ¡Ã" + +#: editor/plugins/script_editor_plugin.cpp msgid "Toggle alphabetical sorting of the method list." msgstr "PÅ™epnout abecednà řazenà seznamu metod." @@ -5870,10 +6280,6 @@ msgstr "ZavÅ™Ãt dokumentaci" msgid "Close All" msgstr "ZavÅ™Ãt vÅ¡e" -#: editor/plugins/script_editor_plugin.cpp -msgid "Close Other Tabs" -msgstr "ZavÅ™Ãt ostatnà záložky" - #: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp msgid "Run" msgstr "Spustit" @@ -5882,11 +6288,6 @@ msgstr "Spustit" msgid "Toggle Scripts Panel" msgstr "" -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/script_text_editor.cpp -msgid "Find Next" -msgstr "NajÃt dalÅ¡Ã" - #: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp msgid "Step Over" msgstr "PÅ™eskoÄit" @@ -5914,7 +6315,8 @@ msgid "Debug with External Editor" msgstr "Debugovat v externÃm editoru" #: editor/plugins/script_editor_plugin.cpp -msgid "Open Godot online documentation" +#, fuzzy +msgid "Open Godot online documentation." msgstr "OtevÅ™Ãt Godot online dokumentaci" #: editor/plugins/script_editor_plugin.cpp @@ -5922,7 +6324,7 @@ msgid "Request Docs" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Help improve the Godot documentation by giving feedback" +msgid "Help improve the Godot documentation by giving feedback." msgstr "" #: editor/plugins/script_editor_plugin.cpp @@ -5950,10 +6352,12 @@ msgstr "" "Jaká akce se má vykonat?:" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp msgid "Reload" msgstr "Znovu naÄÃst" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp msgid "Resave" msgstr "Znovu uložit" @@ -5966,6 +6370,31 @@ msgid "Search Results" msgstr "Výsledky hledánÃ" #: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Connections to method:" +msgstr "PÅ™ipojit k uzlu:" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Source" +msgstr "Zdroj:" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Signal" +msgstr "Signály" + +#: editor/plugins/script_text_editor.cpp +msgid "Target" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "" +"Missing connected method '%s' for signal '%s' from node '%s' to node '%s'." +msgstr "Odpojit '%s' od '%s'" + +#: editor/plugins/script_text_editor.cpp msgid "Line" msgstr "Řádek" @@ -5977,10 +6406,6 @@ msgstr "(ignorovat)" msgid "Go to Function" msgstr "PÅ™ejÃt na funkci" -#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp -msgid "Standard" -msgstr "" - #: editor/plugins/script_text_editor.cpp msgid "Only resources from filesystem can be dropped." msgstr "" @@ -6013,6 +6438,11 @@ msgstr "Velká pÃsmena" msgid "Syntax Highlighter" msgstr "ZvýrazňovaÄ syntaxe" +#: editor/plugins/script_text_editor.cpp +#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp +msgid "Bookmarks" +msgstr "" + #: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" @@ -6040,6 +6470,26 @@ msgid "Toggle Comment" msgstr "PÅ™epnout komentář" #: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Toggle Bookmark" +msgstr "PÅ™epnout volný pohled" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Go to Next Bookmark" +msgstr "PÅ™ejÃt na dalšà breakpoint" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Go to Previous Bookmark" +msgstr "PÅ™ejÃt na pÅ™edchozà breakpoint" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Remove All Bookmarks" +msgstr "Odstranit vÅ¡echny položky" + +#: editor/plugins/script_text_editor.cpp msgid "Fold/Unfold Line" msgstr "Složit/Rozložit řádek" @@ -6113,6 +6563,15 @@ msgid "Contextual Help" msgstr "Kontextová nápovÄ›da" #: editor/plugins/shader_editor_plugin.cpp +#, fuzzy +msgid "" +"This shader has been modified on on disk.\n" +"What action should be taken?" +msgstr "" +"NásledujÃcà soubory majà novÄ›jšà verzi na disku.\n" +"Jaká akce se má vykonat?:" + +#: editor/plugins/shader_editor_plugin.cpp msgid "Shader" msgstr "Shader" @@ -6459,7 +6918,8 @@ msgid "Right View" msgstr "Pohled zprava" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Switch Perspective/Orthogonal view" +#, fuzzy +msgid "Switch Perspective/Orthogonal View" msgstr "PÅ™epnout perspektivnÃ/ortogonálnà pohled" #: editor/plugins/spatial_editor_plugin.cpp @@ -6499,12 +6959,14 @@ msgid "Toggle Freelook" msgstr "PÅ™epnout volný pohled" #: editor/plugins/spatial_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Transform" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Snap object to floor" -msgstr "" +#, fuzzy +msgid "Snap Object to Floor" +msgstr "PÅ™ichytit k mřÞce" #: editor/plugins/spatial_editor_plugin.cpp msgid "Transform Dialog..." @@ -6649,42 +7111,42 @@ msgid "Invalid geometry, can't replace by mesh." msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Invalid geometry, can't create polygon." -msgstr "" - -#: editor/plugins/sprite_editor_plugin.cpp -msgid "Invalid geometry, can't create collision polygon." -msgstr "" - -#: editor/plugins/sprite_editor_plugin.cpp -msgid "Invalid geometry, can't create light occluder." -msgstr "" - -#: editor/plugins/sprite_editor_plugin.cpp -msgid "Sprite" -msgstr "" - -#: editor/plugins/sprite_editor_plugin.cpp #, fuzzy msgid "Convert to Mesh2D" msgstr "Konvertovat na 2D mesh" #: editor/plugins/sprite_editor_plugin.cpp +msgid "Invalid geometry, can't create polygon." +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp #, fuzzy msgid "Convert to Polygon2D" msgstr "PÅ™esunout polygon" #: editor/plugins/sprite_editor_plugin.cpp +msgid "Invalid geometry, can't create collision polygon." +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp #, fuzzy msgid "Create CollisionPolygon2D Sibling" msgstr "VytvoÅ™it navigaÄnà polygon" #: editor/plugins/sprite_editor_plugin.cpp +msgid "Invalid geometry, can't create light occluder." +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp #, fuzzy msgid "Create LightOccluder2D Sibling" msgstr "VytvoÅ™it Occluder Polygon" #: editor/plugins/sprite_editor_plugin.cpp +msgid "Sprite" +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp msgid "Simplification: " msgstr "" @@ -6701,14 +7163,24 @@ msgid "Settings:" msgstr "NastavenÃ:" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "ERROR: Couldn't load frame resource!" -msgstr "CHYBA: Nelze naÄÃst zdroj snÃmku!" +#, fuzzy +msgid "No Frames Selected" +msgstr "VýbÄ›r snÃmku" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Add %d Frame(s)" +msgstr "PÅ™idat snÃmek" #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Add Frame" msgstr "PÅ™idat snÃmek" #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "ERROR: Couldn't load frame resource!" +msgstr "CHYBA: Nelze naÄÃst zdroj snÃmku!" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Resource clipboard is empty or not a texture!" msgstr "" @@ -6750,6 +7222,15 @@ msgid "Animation Frames:" msgstr "SnÃmky animace" #: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Add a Texture from File" +msgstr "PÅ™idat uzel(y) ze stromu" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Add Frames from a Sprite Sheet" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Insert Empty (Before)" msgstr "Vložit prázdný (pÅ™ed)" @@ -6766,6 +7247,31 @@ msgid "Move (After)" msgstr "PÅ™emÃstit (za)" #: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Select Frames" +msgstr "Vybrat uzel" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Horizontal:" +msgstr "PÅ™evrátit horizontálnÄ›" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Vertical:" +msgstr "Vrcholy" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Select/Clear All Frames" +msgstr "Vybrat vÅ¡e" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Create Frames from Sprite Sheet" +msgstr "VytvoÅ™it ze scény" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "SpriteFrames" msgstr "" @@ -6831,12 +7337,13 @@ msgstr "PÅ™idat vÅ¡e" msgid "Remove All Items" msgstr "Odstranit vÅ¡echny položky" -#: editor/plugins/theme_editor_plugin.cpp +#: editor/plugins/theme_editor_plugin.cpp editor/project_manager.cpp msgid "Remove All" msgstr "Odebrat vÅ¡e" #: editor/plugins/theme_editor_plugin.cpp -msgid "Edit theme..." +#, fuzzy +msgid "Edit Theme" msgstr "Editovat téma..." #: editor/plugins/theme_editor_plugin.cpp @@ -6864,12 +7371,14 @@ msgid "Create From Current Editor Theme" msgstr "VytvoÅ™it ze souÄasného motivu editoru" #: editor/plugins/theme_editor_plugin.cpp -msgid "CheckBox Radio1" -msgstr "CheckBox Radio1" +#, fuzzy +msgid "Toggle Button" +msgstr "TlaÄÃtko myÅ¡i" #: editor/plugins/theme_editor_plugin.cpp -msgid "CheckBox Radio2" -msgstr "CheckBox Radio2" +#, fuzzy +msgid "Disabled Button" +msgstr "ProstÅ™ednà tlaÄÃtko" #: editor/plugins/theme_editor_plugin.cpp msgid "Item" @@ -6877,6 +7386,11 @@ msgstr "Položka" #: editor/plugins/theme_editor_plugin.cpp #, fuzzy +msgid "Disabled Item" +msgstr "Zakázáno" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy msgid "Check Item" msgstr "Zkontrolovat položku" @@ -6893,6 +7407,24 @@ msgid "Checked Radio Item" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +msgid "Named Sep." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Submenu" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Item 1" +msgstr "Položka" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Item 2" +msgstr "Položka" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Has" msgstr "" @@ -6901,8 +7433,9 @@ msgid "Many" msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "Has,Many,Options" -msgstr "Má,mnoho,možnostÃ" +#, fuzzy +msgid "Disabled LineEdit" +msgstr "Zakázáno" #: editor/plugins/theme_editor_plugin.cpp msgid "Tab 1" @@ -6917,6 +7450,19 @@ msgid "Tab 3" msgstr "Tab 3" #: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Editable Item" +msgstr "Upravit promÄ›nnou" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Subtree" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Has,Many,Options" +msgstr "Má,mnoho,možnostÃ" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Data Type:" msgstr "Datový typ:" @@ -6949,6 +7495,7 @@ msgid "Fix Invalid Tiles" msgstr "Opravit neplatné dlaždice" #: editor/plugins/tile_map_editor_plugin.cpp +#: modules/gridmap/grid_map_editor_plugin.cpp #, fuzzy msgid "Cut Selection" msgstr "Vycentrovat výbÄ›r" @@ -6990,36 +7537,51 @@ msgid "Mirror Y" msgstr "Zrcadlit Y" #: editor/plugins/tile_map_editor_plugin.cpp +msgid "Disable Autotile" +msgstr "" + +#: editor/plugins/tile_map_editor_plugin.cpp +#, fuzzy +msgid "Enable Priority" +msgstr "Editovat filtry" + +#: editor/plugins/tile_map_editor_plugin.cpp msgid "Paint Tile" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Pick Tile" -msgstr "Vybrat dlaždici" +msgid "" +"Shift+RMB: Line Draw\n" +"Shift+Ctrl+RMB: Rectangle Paint" +msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Copy Selection" -msgstr "KopÃrovat výbÄ›r" +msgid "Pick Tile" +msgstr "Vybrat dlaždici" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Rotate left" +#, fuzzy +msgid "Rotate Left" msgstr "OtoÄit doleva" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Rotate right" +#, fuzzy +msgid "Rotate Right" msgstr "OtoÄit doprava" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Flip horizontally" +#, fuzzy +msgid "Flip Horizontally" msgstr "PÅ™evrátit horizontálnÄ›" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Flip vertically" +#, fuzzy +msgid "Flip Vertically" msgstr "PÅ™evrátit vertikálnÄ›" #: editor/plugins/tile_map_editor_plugin.cpp #, fuzzy -msgid "Clear transform" +msgid "Clear Transform" msgstr "Animace: zmÄ›na transformace" #: editor/plugins/tile_set_editor_plugin.cpp @@ -7059,6 +7621,45 @@ msgid "Select the previous shape, subtile, or Tile." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Region Mode" +msgstr "Režim otáÄenÃ" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Collision Mode" +msgstr "InterpolaÄnà režim" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Occlusion Mode" +msgstr "Editovat polygon" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Navigation Mode" +msgstr "VytvoÅ™it Navigation Mesh" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Bitmask Mode" +msgstr "Režim otáÄenÃ" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Priority Mode" +msgstr "Expertnà režim:" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Icon Mode" +msgstr "Režim pÅ™esouvánÃ" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Z Index Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp msgid "Copy bitmask." msgstr "KopÃrovat bitovou masku." @@ -7144,6 +7745,7 @@ msgstr "Smazat polygon." msgid "" "LMB: Set bit on.\n" "RMB: Set bit off.\n" +"Shift+LMB: Set wildcard bit.\n" "Click on another Tile to edit it." msgstr "VytvoÅ™it složku" @@ -7264,6 +7866,79 @@ msgid "TileSet" msgstr "TileSet" #: 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 +" +msgstr "PÅ™idat vstup" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar" +msgstr "ZvÄ›tÅ¡enÃ:" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector" +msgstr "Inspektor" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Add input port" +msgstr "PÅ™idat vstup" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add output port" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change input port type" +msgstr "ZmÄ›nit výchozà typ" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change output port type" +msgstr "ZmÄ›nit výchozà typ" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change input port name" +msgstr "ZmÄ›nit název vstupu" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change output port name" +msgstr "ZmÄ›nit název vstupu" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Remove input port" +msgstr "Odstranit bod" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Remove output port" +msgstr "Odstranit bod" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Set expression" +msgstr "ZmÄ›nit výraz" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Resize VisualShader node" +msgstr "VisualShader" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Set Uniform Name" msgstr "" @@ -7303,6 +7978,853 @@ msgid "Light" msgstr "SvÄ›tlo" #: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Create Shader Node" +msgstr "VytvoÅ™it uzel" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Color function." +msgstr "PÅ™ejÃt na funkci" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Color operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Grayscale function." +msgstr "VytvoÅ™it funkci" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts HSV vector to RGB equivalent." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts RGB vector to HSV equivalent." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Sepia function." +msgstr "PÅ™ejmenovat funkci" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Burn operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Darken operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Difference operator." +msgstr "Pouze rozdÃly" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Dodge operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "HardLight operator" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Lighten operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Overlay operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Screen operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "SoftLight operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Color constant." +msgstr "KonstantnÃ" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Color uniform." +msgstr "Animace: zmÄ›na transformace" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns an associated vector if the provided scalars are equal, greater or " +"less." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns an associated vector if the provided boolean value is true or false." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'camera' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'inv_camera' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'inv_projection' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'normal' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'projection' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'time' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'viewport_size' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'world' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'texture_pixel_size' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Input parameter." +msgstr "PÅ™ichytit k rodiÄovi" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'binormal' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'fragcoord' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_coord' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_uv' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'side' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'tangent' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv2' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'vertex' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'view' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'albedo' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'attenuation' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'diffuse' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_color' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'roughness' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'specular' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'transmission' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'modelview' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_size' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'tangent' input parameter for vertex and fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_pass' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_coord' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_pixel_size' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_uv' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_alpha' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_height' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_uv' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_vec' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'normal' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'shadow_color' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'extra' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'projection' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'vertex' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'world' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'active' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'custom' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'custom_alpha' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'delta' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'emission_transform' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'index' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'lifetime' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'restart' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'time' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'transform' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'velocity' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar function." +msgstr "ZmÄ›nit skalárnà funkci" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar operator." +msgstr "ZmÄ›nit skalárnà operátor" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "E constant (2.718282). Represents the base of the natural logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Epsilon constant (0.00001). Smallest possible scalar number." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Phi constant (1.618034). Golden ratio." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi/4 constant (0.785398) or 45 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi/2 constant (1.570796) or 90 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi constant (3.141593) or 180 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Tau constant (6.283185) or 360 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Sqrt2 constant (1.414214). Square root of 2." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the absolute value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-tangent of the parameters." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Finds the nearest integer that is greater than or equal to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Constrains a value to lie between two further values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts a quantity in radians to degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-e Exponential." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-2 Exponential." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Finds the nearest integer less than or equal to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Computes the fractional part of the argument." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the inverse of the square root of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Natural logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-2 logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the greater of two values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the lesser of two values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Linear interpolation between two scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the opposite value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 - scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns the value of the first parameter raised to the power of the second." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts a quantity in degrees to radians." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 / scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the nearest integer to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the nearest even integer to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Clamps the value between 0.0 and 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Extracts the sign of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the square root of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( scalar(edge0), scalar(edge1), scalar(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if x is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( scalar(edge), scalar(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the truncated value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Adds scalar to scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Divides scalar by scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies scalar by scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the remainder of the two scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Subtracts scalar from scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar constant." +msgstr "ZmÄ›nit skalárnà konstantu" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar uniform." +msgstr "Animace: zmÄ›na transformace" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Perform the cubic texture lookup." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Perform the texture lookup." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Cubic texture uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "2D texture uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Transform function." +msgstr "Transformovat polygon" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) Calculate the outer product of a pair of vectors.\n" +"\n" +"OuterProduct treats the first parameter 'c' as a column vector (matrix with " +"one column) and the second parameter 'r' as a row vector (matrix with one " +"row) and does a linear algebraic matrix multiply 'c * r', yielding a matrix " +"whose number of rows is the number of components in 'c' and whose number of " +"columns is the number of components in 'r'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Composes transform from four vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Decomposes transform to four vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the determinant of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the inverse of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the transpose of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies transform by transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies vector by transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Transform constant." +msgstr "Transformace zruÅ¡ena." + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Transform uniform." +msgstr "Transformace zruÅ¡ena." + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector function." +msgstr "PÅ™ejÃt na funkci..." + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Composes vector from three scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Decomposes vector to three scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the cross product of two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the distance between two points." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the dot product of two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns a vector that points in the same direction as a reference vector. " +"The function has three vector parameters : N, the vector to orient, I, the " +"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 "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the length of a vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Linear interpolation between two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the normalize product of vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 - vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 / vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns a vector that points in the direction of reflection ( a : incident " +"vector, b : normal vector )." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns a vector that points in the direction of refraction." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( vector(edge0), vector(edge1), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if 'x' is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( scalar(edge0), scalar(edge1), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if 'x' is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( vector(edge), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( scalar(edge), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Adds vector to vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Divides vector by vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies vector by vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the remainder of the two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Subtracts vector from vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Custom Godot Shader Language expression, with custom amount of input and " +"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 "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns falloff based on the dot product of surface normal and view " +"direction of camera (pass associated inputs to it)." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) (Fragment/Light mode only) Scalar derivative function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) (Fragment/Light mode only) Vector derivative function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Derivative in 'x' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Derivative in 'x' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Derivative in 'y' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Derivative in 'y' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Sum of absolute derivative " +"in 'x' and 'y'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Sum of absolute derivative " +"in 'x' and 'y'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "VisualShader" msgstr "VisualShader" @@ -7495,6 +9017,10 @@ msgid "Directory already contains a Godot project." msgstr "" #: editor/project_manager.cpp +msgid "New Game Project" +msgstr "" + +#: editor/project_manager.cpp msgid "Imported Project" msgstr "" @@ -7541,10 +9067,6 @@ msgid "Rename Project" msgstr "PÅ™ejmenovat projekt" #: editor/project_manager.cpp -msgid "New Game Project" -msgstr "" - -#: editor/project_manager.cpp msgid "Import Existing Project" msgstr "" @@ -7573,10 +9095,6 @@ msgid "Project Name:" msgstr "Jméno projektu:" #: editor/project_manager.cpp -msgid "Create folder" -msgstr "VytvoÅ™it složku" - -#: editor/project_manager.cpp msgid "Project Path:" msgstr "Cesta k projektu:" @@ -7586,10 +9104,6 @@ msgid "Project Installation Path:" msgstr "Cesta k projektu:" #: editor/project_manager.cpp -msgid "Browse" -msgstr "Procházet" - -#: editor/project_manager.cpp msgid "Renderer:" msgstr "" @@ -7642,8 +9156,8 @@ msgid "" "\n" "If you proceed with opening it, it will be converted to Godot's current " "configuration file format.\n" -"Warning: You will not be able to open the project with previous versions of " -"the engine anymore." +"Warning: You won't be able to open the project with previous versions of the " +"engine anymore." msgstr "" #: editor/project_manager.cpp @@ -7654,8 +9168,8 @@ msgid "" "%s\n" "\n" "Do you want to convert it?\n" -"Warning: You will not be able to open the project with previous versions of " -"the engine anymore." +"Warning: You won't be able to open the project with previous versions of the " +"engine anymore." msgstr "" #: editor/project_manager.cpp @@ -7667,7 +9181,7 @@ msgstr "" #: editor/project_manager.cpp msgid "" "Can't run project: no main scene defined.\n" -"Please edit the project and set the main scene in \"Project Settings\" under " +"Please edit the project and set the main scene in the Project Settings under " "the \"Application\" category." msgstr "" @@ -7678,23 +9192,41 @@ msgid "" msgstr "" #: editor/project_manager.cpp -msgid "Are you sure to run more than one project?" +#, fuzzy +msgid "Are you sure to run %d projects at once?" msgstr "Jste si jisti, že chcete spustit vÃce než jeden projekt?" #: editor/project_manager.cpp -msgid "Remove project from the list? (Folder contents will not be modified)" +#, fuzzy +msgid "" +"Remove %d projects from the list?\n" +"The project folders' contents won't be modified." +msgstr "Odstranit projekt ze seznamu? (Obsah složky zůstane nedotÄen)" + +#: editor/project_manager.cpp +#, fuzzy +msgid "" +"Remove this project from the list?\n" +"The project folder's contents won't be modified." +msgstr "Odstranit projekt ze seznamu? (Obsah složky zůstane nedotÄen)" + +#: editor/project_manager.cpp +#, fuzzy +msgid "" +"Remove all missing projects from the list? (Folders contents will not be " +"modified)" msgstr "Odstranit projekt ze seznamu? (Obsah složky zůstane nedotÄen)" #: editor/project_manager.cpp msgid "" "Language changed.\n" -"The UI will update next time the editor or project manager starts." +"The interface will update after restarting the editor or project manager." msgstr "" #: editor/project_manager.cpp msgid "" -"You are about the scan %s folders for existing Godot projects. Do you " -"confirm?" +"Are you sure to scan %s folders for existing Godot projects?\n" +"This could take a while." msgstr "" #: editor/project_manager.cpp @@ -7718,6 +9250,11 @@ msgid "New Project" msgstr "Nový projekt" #: editor/project_manager.cpp +#, fuzzy +msgid "Remove Missing" +msgstr "Odstranit bod" + +#: editor/project_manager.cpp msgid "Templates" msgstr "Å ablony" @@ -7734,9 +9271,10 @@ msgid "Can't run project" msgstr "Nelze spustit projekt" #: editor/project_manager.cpp +#, fuzzy msgid "" -"You don't currently have any projects.\n" -"Would you like to explore the official example projects in the Asset Library?" +"You currently don't have any projects.\n" +"Would you like to explore official example projects in the Asset Library?" msgstr "" "V této chvÃli nemáte žádný projekt.\n" "PÅ™ejete si prozkoumat oficiálnà ukázkové projekty v knihovnÄ› assetů?" @@ -7766,7 +9304,8 @@ msgstr "" "nebo '\"'" #: editor/project_settings_editor.cpp -msgid "Action '%s' already exists!" +#, fuzzy +msgid "An action with the name '%s' already exists." msgstr "Akce '%s' již existuje!" #: editor/project_settings_editor.cpp @@ -7928,10 +9467,6 @@ msgstr "" "nebo '\"'." #: editor/project_settings_editor.cpp -msgid "Already existing" -msgstr "Již existujÃcÃ" - -#: editor/project_settings_editor.cpp msgid "Add Input Action" msgstr "" @@ -7997,7 +9532,7 @@ msgid "Override For..." msgstr "" #: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp -msgid "Editor must be restarted for changes to take effect" +msgid "The editor must be restarted for changes to take effect." msgstr "" #: editor/project_settings_editor.cpp @@ -8057,12 +9592,14 @@ msgid "Locales Filter" msgstr "" #: editor/project_settings_editor.cpp -msgid "Show all locales" -msgstr "" +#, fuzzy +msgid "Show All Locales" +msgstr "Zobrazit kosti" #: editor/project_settings_editor.cpp -msgid "Show only selected locales" -msgstr "" +#, fuzzy +msgid "Show Selected Locales Only" +msgstr "Pouze výbÄ›r" #: editor/project_settings_editor.cpp msgid "Filter mode:" @@ -8077,14 +9614,6 @@ msgid "AutoLoad" msgstr "" #: editor/property_editor.cpp -msgid "Ease In" -msgstr "" - -#: editor/property_editor.cpp -msgid "Ease Out" -msgstr "" - -#: editor/property_editor.cpp msgid "Zero" msgstr "Nula" @@ -8157,7 +9686,8 @@ msgid "Suffix" msgstr "Sufix" #: editor/rename_dialog.cpp -msgid "Advanced options" +#, fuzzy +msgid "Advanced Options" msgstr "PokroÄilé možnosti" #: editor/rename_dialog.cpp @@ -8413,8 +9943,9 @@ msgid "User Interface" msgstr "Uživatelské rozhranÃ" #: editor/scene_tree_dock.cpp -msgid "Custom Node" -msgstr "Vlastnà uzel" +#, fuzzy +msgid "Other Node" +msgstr "Smazat uzel" #: editor/scene_tree_dock.cpp msgid "Can't operate on nodes from a foreign scene!" @@ -8455,7 +9986,8 @@ msgid "Clear Inheritance" msgstr "" #: editor/scene_tree_dock.cpp -msgid "Open documentation" +#, fuzzy +msgid "Open Documentation" msgstr "OtevÅ™Ãt dokumentaci" #: editor/scene_tree_dock.cpp @@ -8484,7 +10016,7 @@ msgstr "SlouÄit ze scény" msgid "Save Branch as Scene" msgstr "Uložit vÄ›tev jako scénu" -#: editor/scene_tree_dock.cpp +#: editor/scene_tree_dock.cpp editor/script_editor_debugger.cpp msgid "Copy Node Path" msgstr "KopÃrovat cestu k uzlu" @@ -8528,6 +10060,21 @@ msgid "Toggle Visible" msgstr "PÅ™epnout viditelnost" #: editor/scene_tree_editor.cpp +#, fuzzy +msgid "Unlock Node" +msgstr "Vybrat uzel" + +#: editor/scene_tree_editor.cpp +#, fuzzy +msgid "Button Group" +msgstr "TlaÄÃtko Ä. 7" + +#: editor/scene_tree_editor.cpp +#, fuzzy +msgid "(Connecting From)" +msgstr "Chyba pÅ™ipojenÃ" + +#: editor/scene_tree_editor.cpp msgid "Node configuration warning:" msgstr "Varovánà konfigurace uzlu:" @@ -8549,8 +10096,9 @@ msgid "" "Click to show groups dock." msgstr "" -#: editor/scene_tree_editor.cpp editor/script_create_dialog.cpp -msgid "Open Script" +#: editor/scene_tree_editor.cpp +#, fuzzy +msgid "Open Script:" msgstr "OtevÅ™Ãt skript" #: editor/scene_tree_editor.cpp @@ -8596,73 +10144,83 @@ msgid "Select a Node" msgstr "Vybrat uzel" #: editor/script_create_dialog.cpp -msgid "Error loading template '%s'" -msgstr "Chyba pÅ™i nahrávánà šablony '%s'" +#, fuzzy +msgid "Path is empty." +msgstr "Cesta je prázdná" #: editor/script_create_dialog.cpp -msgid "Error - Could not create script in filesystem." -msgstr "Chyba - Nelze vytvoÅ™it skript v souborovém systému." +#, fuzzy +msgid "Filename is empty." +msgstr "Název souboru je prázdný" #: editor/script_create_dialog.cpp -msgid "Error loading script from %s" -msgstr "Chyba nahrávánà skriptu z %s" +#, fuzzy +msgid "Path is not local." +msgstr "Cesta nenà mÃstnÃ" #: editor/script_create_dialog.cpp -msgid "N/A" -msgstr "N/A" +#, fuzzy +msgid "Invalid base path." +msgstr "Neplatná základnà cesta" #: editor/script_create_dialog.cpp #, fuzzy -msgid "Open Script/Choose Location" -msgstr "OtevÅ™Ãt editor skriptů" +msgid "A directory with the same name exists." +msgstr "Složka se stejným jménem již existuje" #: editor/script_create_dialog.cpp -msgid "Path is empty" -msgstr "Cesta je prázdná" +#, fuzzy +msgid "Invalid extension." +msgstr "Neplatná pÅ™Ãpona" #: editor/script_create_dialog.cpp -msgid "Filename is empty" -msgstr "Název souboru je prázdný" +#, fuzzy +msgid "Wrong extension chosen." +msgstr "Vybrána Å¡patná pÅ™Ãpona" #: editor/script_create_dialog.cpp -msgid "Path is not local" -msgstr "Cesta nenà mÃstnÃ" +msgid "Error loading template '%s'" +msgstr "Chyba pÅ™i nahrávánà šablony '%s'" #: editor/script_create_dialog.cpp -msgid "Invalid base path" -msgstr "Neplatná základnà cesta" +msgid "Error - Could not create script in filesystem." +msgstr "Chyba - Nelze vytvoÅ™it skript v souborovém systému." #: editor/script_create_dialog.cpp -msgid "Directory of the same name exists" -msgstr "Složka se stejným jménem již existuje" +msgid "Error loading script from %s" +msgstr "Chyba nahrávánà skriptu z %s" #: editor/script_create_dialog.cpp -msgid "File exists, will be reused" -msgstr "Soubor již existuje, bude znovu použit" +msgid "N/A" +msgstr "N/A" #: editor/script_create_dialog.cpp -msgid "Invalid extension" -msgstr "Neplatná pÅ™Ãpona" +#, fuzzy +msgid "Open Script / Choose Location" +msgstr "OtevÅ™Ãt editor skriptů" #: editor/script_create_dialog.cpp -msgid "Wrong extension chosen" -msgstr "Vybrána Å¡patná pÅ™Ãpona" +msgid "Open Script" +msgstr "OtevÅ™Ãt skript" #: editor/script_create_dialog.cpp -msgid "Invalid Path" -msgstr "Neplatná cesta" +#, fuzzy +msgid "File exists, it will be reused." +msgstr "Soubor již existuje, bude znovu použit" #: editor/script_create_dialog.cpp -msgid "Invalid class name" +#, fuzzy +msgid "Invalid class name." msgstr "Neplatné jméno tÅ™Ãdy" #: editor/script_create_dialog.cpp #, fuzzy -msgid "Invalid inherited parent name or path" +msgid "Invalid inherited parent name or path." msgstr "Neplatné jméno vlastnosti." #: editor/script_create_dialog.cpp -msgid "Script valid" +#, fuzzy +msgid "Script is valid." msgstr "Skript je validnÃ" #: editor/script_create_dialog.cpp @@ -8670,15 +10228,18 @@ msgid "Allowed: a-z, A-Z, 0-9 and _" msgstr "Povoleno: a-z, A-Z, 0-9 a _" #: editor/script_create_dialog.cpp -msgid "Built-in script (into scene file)" -msgstr "" +#, fuzzy +msgid "Built-in script (into scene file)." +msgstr "Možnostà scén." #: editor/script_create_dialog.cpp -msgid "Create new script file" +#, fuzzy +msgid "Will create a new script file." msgstr "VytvoÅ™it nový soubor skriptu" #: editor/script_create_dialog.cpp -msgid "Load existing script file" +#, fuzzy +msgid "Will load an existing script file." msgstr "NaÄÃst existujÃcà soubor skriptu" #: editor/script_create_dialog.cpp @@ -8809,6 +10370,10 @@ msgstr "" msgid "Set From Tree" msgstr "" +#: editor/script_editor_debugger.cpp +msgid "Export measures as CSV" +msgstr "" + #: editor/settings_config_dialog.cpp #, fuzzy msgid "Erase Shortcut" @@ -8947,6 +10512,15 @@ msgid "GDNativeLibrary" msgstr "GDNativeLibrary" #: 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 "Vypnout aktualizaÄnà koleÄko" + +#: modules/gdnative/gdnative_library_singleton_editor.cpp msgid "Library" msgstr "Knihovna" @@ -9035,8 +10609,9 @@ msgid "GridMap Fill Selection" msgstr "GridMap Smazat výbÄ›r" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "GridMap Duplicate Selection" -msgstr "GridMap Duplikovat výbÄ›r" +#, fuzzy +msgid "GridMap Paste Selection" +msgstr "GridMap Smazat výbÄ›r" #: modules/gridmap/grid_map_editor_plugin.cpp #, fuzzy @@ -9105,18 +10680,6 @@ msgid "Cursor Clear Rotation" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Create Area" -msgstr "VytvoÅ™it plochu" - -#: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Create Exterior Connector" -msgstr "" - -#: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Erase Area" -msgstr "Vymazat oblast" - -#: modules/gridmap/grid_map_editor_plugin.cpp msgid "Clear Selection" msgstr "Vymazat výbÄ›r" @@ -9484,18 +11047,11 @@ msgid "Available Nodes:" msgstr "Dostupné uzly:" #: modules/visual_script/visual_script_editor.cpp -msgid "Select or create a function to edit graph" +#, fuzzy +msgid "Select or create a function to edit its graph." msgstr "Pro úpravu grafu vyber nebo vytvoÅ™ funkci" #: modules/visual_script/visual_script_editor.cpp -msgid "Edit Signal Arguments:" -msgstr "Upravit argumenty signálu:" - -#: modules/visual_script/visual_script_editor.cpp -msgid "Edit Variable:" -msgstr "Upravit promÄ›nnou:" - -#: modules/visual_script/visual_script_editor.cpp msgid "Delete Selected" msgstr "Smazat vybraný" @@ -9626,6 +11182,19 @@ msgid "Debug keystore not configured in the Editor Settings nor in the preset." msgstr "" #: platform/android/export/export.cpp +msgid "Custom build requires a valid Android SDK path in Editor Settings." +msgstr "" + +#: platform/android/export/export.cpp +msgid "Invalid Android SDK path for custom build in Editor Settings." +msgstr "" + +#: platform/android/export/export.cpp +msgid "" +"Android project is not installed for compiling. Install from Editor menu." +msgstr "" + +#: platform/android/export/export.cpp msgid "Invalid public key for APK expansion." msgstr "" @@ -9634,6 +11203,34 @@ msgstr "" msgid "Invalid package name:" msgstr "Neplatné jméno tÅ™Ãdy" +#: platform/android/export/export.cpp +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 "" +"Android build version mismatch:\n" +" Template installed: %s\n" +" Godot Version: %s\n" +"Please reinstall Android build template from 'Project' menu." +msgstr "" + +#: platform/android/export/export.cpp +msgid "Building Android Project (gradle)" +msgstr "" + +#: 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 "" + +#: platform/android/export/export.cpp +msgid "No build apk generated at: " +msgstr "" + #: platform/iphone/export/export.cpp msgid "Identifier is missing." msgstr "" @@ -9919,27 +11516,27 @@ msgid "ARVRCamera must have an ARVROrigin node as its parent" msgstr "" #: scene/3d/arvr_nodes.cpp -msgid "ARVRController must have an ARVROrigin node as its parent" +msgid "ARVRController must have an ARVROrigin node as its parent." msgstr "" #: scene/3d/arvr_nodes.cpp msgid "" -"The controller id must not be 0 or this controller will not be bound to an " -"actual controller" +"The controller ID must not be 0 or this controller won't be bound to an " +"actual controller." msgstr "" #: scene/3d/arvr_nodes.cpp -msgid "ARVRAnchor must have an ARVROrigin node as its parent" +msgid "ARVRAnchor must have an ARVROrigin node as its parent." msgstr "" #: scene/3d/arvr_nodes.cpp msgid "" -"The anchor id must not be 0 or this anchor will not be bound to an actual " -"anchor" +"The anchor ID must not be 0 or this anchor won't be bound to an actual " +"anchor." msgstr "" #: scene/3d/arvr_nodes.cpp -msgid "ARVROrigin requires an ARVRCamera child node" +msgid "ARVROrigin requires an ARVRCamera child node." msgstr "" #: scene/3d/baked_lightmap.cpp @@ -10021,8 +11618,8 @@ msgstr "" #: scene/3d/cpu_particles.cpp msgid "" -"CPUParticles animation requires the usage of a SpatialMaterial with " -"\"Billboard Particles\" enabled." +"CPUParticles animation requires the usage of a SpatialMaterial whose " +"Billboard Mode is set to \"Particle Billboard\"." msgstr "" #: scene/3d/gi_probe.cpp @@ -10063,8 +11660,8 @@ msgstr "" #: scene/3d/particles.cpp msgid "" -"Particles animation requires the usage of a SpatialMaterial with \"Billboard " -"Particles\" enabled." +"Particles animation requires the usage of a SpatialMaterial whose Billboard " +"Mode is set to \"Particle Billboard\"." msgstr "" #: scene/3d/path.cpp @@ -10092,7 +11689,7 @@ msgstr "" "uzel Particles2D." #: scene/3d/soft_body.cpp -msgid "This body will be ignored until you set a mesh" +msgid "This body will be ignored until you set a mesh." msgstr "" #: scene/3d/soft_body.cpp @@ -10201,7 +11798,7 @@ msgstr "PÅ™idat aktuálnà barvu jako pÅ™edvolbu" msgid "" "Container by itself serves no purpose unless a script configures it's " "children placement behavior.\n" -"If you dont't intend to add a script, then please use a plain 'Control' node " +"If you don't intend to add a script, then please use a plain 'Control' node " "instead." msgstr "" @@ -10213,11 +11810,6 @@ msgstr "Pozor!" msgid "Please Confirm..." msgstr "PotvrÄte prosÃm..." -#: scene/gui/file_dialog.cpp -#, fuzzy -msgid "Go to parent folder." -msgstr "JÃt na nadÅ™azenou složku" - #: scene/gui/popup.cpp msgid "" "Popups will hide by default unless you call popup() or any of the popup*() " @@ -10300,6 +11892,68 @@ msgstr "" msgid "Varyings can only be assigned in vertex function." msgstr "" +#: servers/visual/shader_language.cpp +msgid "Constants cannot be modified." +msgstr "" + +#~ msgid "Path to Node:" +#~ msgstr "Cesta k uzlu:" + +#~ msgid "Delete selected files?" +#~ msgstr "Odstranit vybrané soubory?" + +#~ msgid "There is no 'res://default_bus_layout.tres' file." +#~ msgstr "Soubor 'res://default_bus_layout.tres' neexistuje." + +#~ 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)" + +#~ msgid "Previous Directory" +#~ msgstr "PÅ™edchozà složka" + +#~ msgid "Next Directory" +#~ msgstr "NásledujÃcà složka" + +#, fuzzy +#~ msgid "Ease in" +#~ msgstr "ZmÄ›nit měřÃtko výbÄ›ru" + +#~ msgid "CheckBox Radio1" +#~ msgstr "CheckBox Radio1" + +#~ msgid "CheckBox Radio2" +#~ msgstr "CheckBox Radio2" + +#~ msgid "Create folder" +#~ msgstr "VytvoÅ™it složku" + +#~ msgid "Already existing" +#~ msgstr "Již existujÃcÃ" + +#~ msgid "Custom Node" +#~ msgstr "Vlastnà uzel" + +#~ msgid "Invalid Path" +#~ msgstr "Neplatná cesta" + +#~ msgid "GridMap Duplicate Selection" +#~ msgstr "GridMap Duplikovat výbÄ›r" + +#~ msgid "Create Area" +#~ msgstr "VytvoÅ™it plochu" + +#~ msgid "Edit Signal Arguments:" +#~ msgstr "Upravit argumenty signálu:" + +#~ msgid "Edit Variable:" +#~ msgstr "Upravit promÄ›nnou:" + #~ msgid "Snap (s): " #~ msgstr "PÅ™ichycenà (s): " @@ -10400,9 +12054,6 @@ msgstr "" #~ msgid "Class List:" #~ msgstr "Seznam tÅ™Ãd:" -#~ msgid "Search Classes" -#~ msgstr "Hledat tÅ™Ãdy" - #~ msgid "Public Methods" #~ msgstr "VeÅ™ejné metody" @@ -10468,9 +12119,6 @@ msgstr "" #~ msgid "Error:" #~ msgstr "Chyba:" -#~ msgid "Source:" -#~ msgstr "Zdroj:" - #~ msgid "Function:" #~ msgstr "Funkce:" @@ -10483,21 +12131,12 @@ msgstr "" #~ msgid "Get" #~ msgstr "ZÃskat" -#~ msgid "Change Scalar Constant" -#~ msgstr "ZmÄ›nit skalárnà konstantu" - #~ msgid "Change RGB Constant" #~ msgstr "ZmÄ›na RGB konstanty" -#~ msgid "Change Scalar Operator" -#~ msgstr "ZmÄ›nit skalárnà operátor" - #~ msgid "Change RGB Operator" #~ msgstr "ZmÄ›nit RGB operátor" -#~ msgid "Change Scalar Function" -#~ msgstr "ZmÄ›nit skalárnà funkci" - #~ msgid "Change Vec Function" #~ msgstr "ZmÄ›nit vektorovou funkci" @@ -10510,18 +12149,12 @@ msgstr "" #~ msgid "Modify Curve Map" #~ msgstr "Upravit mapu kÅ™ivky" -#~ msgid "Change Input Name" -#~ msgstr "ZmÄ›nit název vstupu" - #~ msgid "Connect Graph Nodes" #~ msgstr "Propojit uzly grafu" #~ msgid "Disconnect Graph Nodes" #~ msgstr "Odpojit uzly grafu" -#~ msgid "Disabled" -#~ msgstr "Zakázáno" - #~ msgid "Move Anim Track Up" #~ msgstr "Posun stopy animace nahoru" @@ -10667,9 +12300,6 @@ msgstr "" #~ msgid "Export templates for this platform are missing/corrupted: " #~ msgstr "Exportnà šablony pro tuto platformu chybà nebo jsou poÅ¡kozené: " -#~ msgid "Button 7" -#~ msgstr "TlaÄÃtko Ä. 7" - #~ msgid "Button 8" #~ msgstr "TlaÄÃtko Ä. 8" @@ -10691,9 +12321,6 @@ msgstr "" #~ msgid "Call" #~ msgstr "Zavolat" -#~ msgid "Edit Variable" -#~ msgstr "Upravit promÄ›nnou" - #~ msgid "Edit Signal" #~ msgstr "Upravit signál" diff --git a/editor/translations/da.po b/editor/translations/da.po index ee8b415fe3..ec06bd6fa6 100644 --- a/editor/translations/da.po +++ b/editor/translations/da.po @@ -79,6 +79,14 @@ msgstr "Balanceret" msgid "Mirror" msgstr "Spejl" +#: editor/animation_bezier_editor.cpp editor/editor_profiler.cpp +msgid "Time:" +msgstr "Tid:" + +#: editor/animation_bezier_editor.cpp +msgid "Value:" +msgstr "" + #: editor/animation_bezier_editor.cpp msgid "Insert Key Here" msgstr "Indsæt nøgle her" @@ -164,14 +172,20 @@ msgid "Animation Playback Track" msgstr "Animation-afspilningsspor" #: editor/animation_track_editor.cpp -msgid "Add Track" -msgstr "Tilføj Spor" +#, fuzzy +msgid "Animation length (frames)" +msgstr "Animations længde (i sekunder)" #: editor/animation_track_editor.cpp -msgid "Animation Length Time (seconds)" +#, fuzzy +msgid "Animation length (seconds)" msgstr "Animations længde (i sekunder)" #: editor/animation_track_editor.cpp +msgid "Add Track" +msgstr "Tilføj Spor" + +#: editor/animation_track_editor.cpp msgid "Animation Looping" msgstr "Animationsløkke" @@ -299,11 +313,13 @@ msgid "Create %d NEW tracks and insert keys?" msgstr "Opret %d NYE spor og indsæt nøgler?" #: editor/animation_track_editor.cpp editor/create_dialog.cpp -#: editor/editor_audio_buses.cpp editor/editor_plugin_settings.cpp -#: editor/plugin_config_dialog.cpp +#: editor/editor_audio_buses.cpp editor/editor_feature_profile.cpp +#: editor/editor_plugin_settings.cpp editor/plugin_config_dialog.cpp #: editor/plugins/abstract_polygon_2d_editor.cpp #: editor/plugins/mesh_instance_editor_plugin.cpp -#: editor/plugins/particles_editor_plugin.cpp editor/script_create_dialog.cpp +#: editor/plugins/particles_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_create_dialog.cpp msgid "Create" msgstr "Opret" @@ -426,6 +442,23 @@ msgstr "" "spor." #: editor/animation_track_editor.cpp +msgid "" +"This animation belongs to an imported scene, so changes to imported tracks " +"will not be saved.\n" +"\n" +"To enable the ability to add custom tracks, navigate to the scene's import " +"settings and set\n" +"\"Animation > Storage\" to \"Files\", enable \"Animation > Keep Custom Tracks" +"\", then re-import.\n" +"Alternatively, use an import preset that imports animations to separate " +"files." +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Warning: Editing imported animation" +msgstr "" + +#: editor/animation_track_editor.cpp msgid "Only show tracks from nodes selected in tree." msgstr "Vis kun spor fra noder valgt in træ." @@ -559,7 +592,8 @@ msgstr "Skalaforhold:" msgid "Select tracks to copy:" msgstr "Vælg spor til kopiering:" -#: editor/animation_track_editor.cpp editor/editor_properties.cpp +#: editor/animation_track_editor.cpp editor/editor_log.cpp +#: editor/editor_properties.cpp #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp @@ -628,6 +662,11 @@ msgstr "Erstat Alle" msgid "Selection Only" msgstr "Kun Valgte" +#: editor/code_editor.cpp editor/plugins/script_text_editor.cpp +#: editor/plugins/text_editor.cpp +msgid "Standard" +msgstr "" + #: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/texture_region_editor_plugin.cpp #: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp @@ -653,21 +692,38 @@ msgid "Line and column numbers." msgstr "" #: editor/connections_dialog.cpp -msgid "Method in target Node must be specified!" +#, fuzzy +msgid "Method in target node must be specified." msgstr "Metode i target Node skal angives!" #: editor/connections_dialog.cpp +#, fuzzy msgid "" -"Target method not found! Specify a valid method or attach a script to target " -"Node." +"Target method not found. Specify a valid method or attach a script to the " +"target node." msgstr "" "Target metode ikke fundet! Angiv en gyldig metode eller vedhæft et script " "til target Noden." #: editor/connections_dialog.cpp -msgid "Connect To Node:" +#, fuzzy +msgid "Connect to Node:" msgstr "Forbind Til Node:" +#: editor/connections_dialog.cpp +#, fuzzy +msgid "Connect to Script:" +msgstr "Kan ikke forbinde til host:" + +#: editor/connections_dialog.cpp +#, fuzzy +msgid "From Signal:" +msgstr "Signaler:" + +#: editor/connections_dialog.cpp +msgid "Scene does not contain any script." +msgstr "" + #: editor/connections_dialog.cpp editor/editor_autoload_settings.cpp #: editor/groups_editor.cpp editor/plugins/item_list_editor_plugin.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_settings_editor.cpp @@ -675,10 +731,12 @@ msgid "Add" msgstr "Tilføj" #: editor/connections_dialog.cpp editor/dependency_editor.cpp -#: editor/groups_editor.cpp editor/plugins/animation_player_editor_plugin.cpp +#: editor/editor_feature_profile.cpp editor/groups_editor.cpp +#: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp #: editor/plugins/resource_preloader_editor_plugin.cpp -#: editor/plugins/theme_editor_plugin.cpp editor/project_manager.cpp +#: editor/plugins/theme_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_manager.cpp #: editor/project_settings_editor.cpp msgid "Remove" msgstr "Fjern" @@ -692,21 +750,32 @@ msgid "Extra Call Arguments:" msgstr "Ekstra Call Argumenter:" #: editor/connections_dialog.cpp -msgid "Path to Node:" -msgstr "Sti til Node:" - -#: editor/connections_dialog.cpp -msgid "Make Function" -msgstr "Lav Funktion" +#, fuzzy +msgid "Advanced" +msgstr "Balanceret" #: editor/connections_dialog.cpp msgid "Deferred" msgstr "Udskudt" #: editor/connections_dialog.cpp +msgid "" +"Defers the signal, storing it in a queue and only firing it at idle time." +msgstr "" + +#: editor/connections_dialog.cpp msgid "Oneshot" msgstr "OneShot" +#: editor/connections_dialog.cpp +msgid "Disconnects the signal after its first emission." +msgstr "" + +#: editor/connections_dialog.cpp +#, fuzzy +msgid "Cannot connect signal" +msgstr "Forbind Signal: " + #: editor/connections_dialog.cpp editor/dependency_editor.cpp #: editor/export_template_manager.cpp editor/groups_editor.cpp #: editor/plugins/animation_player_editor_plugin.cpp @@ -747,11 +816,13 @@ msgid "Disconnect" msgstr "Afbryd" #: editor/connections_dialog.cpp -msgid "Connect Signal: " +#, fuzzy +msgid "Connect a Signal to a Method" msgstr "Forbind Signal: " #: editor/connections_dialog.cpp -msgid "Edit Connection: " +#, fuzzy +msgid "Edit Connection:" msgstr "Redigere Forbindelse: " #: editor/connections_dialog.cpp @@ -784,7 +855,6 @@ msgid "Change %s Type" msgstr "Skift %s Type" #: editor/create_dialog.cpp editor/project_settings_editor.cpp -#: modules/visual_script/visual_script_editor.cpp msgid "Change" msgstr "Skift" @@ -815,7 +885,8 @@ msgid "Matches:" msgstr "Matches:" #: editor/create_dialog.cpp editor/plugin_config_dialog.cpp -#: editor/plugins/asset_library_editor_plugin.cpp editor/property_selector.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/property_selector.cpp #: modules/visual_script/visual_script_property_selector.cpp msgid "Description:" msgstr "Beskrivelse:" @@ -829,17 +900,19 @@ msgid "Dependencies For:" msgstr "Afhængigheder For:" #: editor/dependency_editor.cpp +#, fuzzy msgid "" "Scene '%s' is currently being edited.\n" -"Changes will not take effect unless reloaded." +"Changes will only take effect when reloaded." msgstr "" "Scene '%s' er i øjeblikket ved at blive redigeret.\n" "Ændringerne træder ikke i kraft, medmindre den genindlæses." #: editor/dependency_editor.cpp +#, fuzzy msgid "" "Resource '%s' is in use.\n" -"Changes will take effect when reloaded." +"Changes will only take effect when reloaded." msgstr "" "Ressource '%s' er i brug.\n" "Ændringerne træder i kraft nÃ¥r den genindlæses." @@ -934,21 +1007,14 @@ msgid "Permanently delete %d item(s)? (No undo!)" msgstr "Slette %d styk(s) permanent? (ej fortryd)" #: editor/dependency_editor.cpp -msgid "Owns" -msgstr "Ejer" - -#: editor/dependency_editor.cpp -msgid "Resources Without Explicit Ownership:" -msgstr "Ressourcer Uden Klart Ejerskab:" +#, fuzzy +msgid "Show Dependencies" +msgstr "Afhængigheder" #: editor/dependency_editor.cpp editor/editor_node.cpp msgid "Orphan Resource Explorer" msgstr "Forældreløs ressource udforsker" -#: editor/dependency_editor.cpp -msgid "Delete selected files?" -msgstr "Slet markerede filer?" - #: editor/dependency_editor.cpp editor/editor_audio_buses.cpp #: editor/editor_file_dialog.cpp editor/editor_node.cpp #: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp @@ -957,6 +1023,14 @@ msgstr "Slet markerede filer?" msgid "Delete" msgstr "Slet" +#: editor/dependency_editor.cpp +msgid "Owns" +msgstr "Ejer" + +#: editor/dependency_editor.cpp +msgid "Resources Without Explicit Ownership:" +msgstr "Ressourcer Uden Klart Ejerskab:" + #: editor/dictionary_property_edit.cpp msgid "Change Dictionary Key" msgstr "Ændre Dictionary Nøgle" @@ -1070,7 +1144,7 @@ msgstr "Pakke installeret med succes!" msgid "Success!" msgstr "Succes!" -#: editor/editor_asset_installer.cpp +#: editor/editor_asset_installer.cpp editor/editor_node.cpp #: editor/plugins/asset_library_editor_plugin.cpp msgid "Install" msgstr "Installér" @@ -1197,8 +1271,12 @@ msgid "Open Audio Bus Layout" msgstr "Ã…ben Audio Bus Layout" #: editor/editor_audio_buses.cpp -msgid "There is no 'res://default_bus_layout.tres' file." -msgstr "Der er ingen 'res://default_bus_layout.tres' fil." +msgid "There is no '%s' file." +msgstr "" + +#: editor/editor_audio_buses.cpp editor/plugins/canvas_item_editor_plugin.cpp +msgid "Layout" +msgstr "" #: editor/editor_audio_buses.cpp msgid "Invalid file, not an audio bus layout." @@ -1252,23 +1330,30 @@ msgid "Valid characters:" msgstr "Gyldige karakterer:" #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing engine class name." +#, fuzzy +msgid "Must not collide with an existing engine class name." msgstr "" "Ugyldigt navn. Det mÃ¥ ikke være i konflikt med eksisterende engine class " "navn." #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing buit-in type name." +#, fuzzy +msgid "Must not collide with an existing buit-in type name." msgstr "" "Ugyldigt navn. Det mÃ¥ ikke være i konflikt med eksisterende built-in type " "navn." #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing global constant name." +#, fuzzy +msgid "Must not collide with an existing global constant name." msgstr "" "Ugyldigt navn. MÃ¥ ikke være i konflikt med eksisterende global constant navn." #: editor/editor_autoload_settings.cpp +msgid "Keyword cannot be used as an autoload name." +msgstr "" + +#: editor/editor_autoload_settings.cpp msgid "Autoload '%s' already exists!" msgstr "Autoload '%s' eksisterer allerede!" @@ -1296,11 +1381,12 @@ msgstr "Aktivér" msgid "Rearrange Autoloads" msgstr "Flytte om pÃ¥ Autoloads" -#: editor/editor_autoload_settings.cpp -msgid "Invalid Path." +#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp +#, fuzzy +msgid "Invalid path." msgstr "Ugyldig Sti." -#: editor/editor_autoload_settings.cpp +#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp msgid "File does not exist." msgstr "Fil eksisterer ikke." @@ -1351,7 +1437,8 @@ msgid "[unsaved]" msgstr "[ikke gemt]" #: editor/editor_dir_dialog.cpp -msgid "Please select a base directory first" +#, fuzzy +msgid "Please select a base directory first." msgstr "Vælg en basis mappe først" #: editor/editor_dir_dialog.cpp @@ -1359,7 +1446,8 @@ msgid "Choose a Directory" msgstr "Vælg en Mappe" #: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp -#: editor/filesystem_dock.cpp scene/gui/file_dialog.cpp +#: editor/filesystem_dock.cpp editor/project_manager.cpp +#: scene/gui/file_dialog.cpp msgid "Create Folder" msgstr "Opret Mappe" @@ -1428,6 +1516,177 @@ msgstr "" msgid "Template file not found:" msgstr "Skabelonfil ikke fundet:" +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "3D Editor" +msgstr "Redaktør" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Script Editor" +msgstr "Ã…bn Script Editor" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Asset Library" +msgstr "Ã…ben Bibliotek over Aktiver" + +#: editor/editor_feature_profile.cpp +msgid "Scene Tree Editing" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Import Dock" +msgstr "Importer" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Node Dock" +msgstr "Node Navn:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Filesystem Dock" +msgstr "Fil System" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Erase profile '%s'? (no undo)" +msgstr "Erstat Alle" + +#: editor/editor_feature_profile.cpp +msgid "Profile must be a valid filename and must not contain '.'" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Profile with this name already exists." +msgstr "En fil eller mappe med dette navn findes allerede." + +#: editor/editor_feature_profile.cpp +msgid "(Editor Disabled, Properties Disabled)" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "(Properties Disabled)" +msgstr "Kun egenskaber" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "(Editor Disabled)" +msgstr "Clip Deaktiveret" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Class Options:" +msgstr "Klasse beskrivelse:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enable Contextual Editor" +msgstr "Ã…bn næste Editor" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enabled Properties:" +msgstr "Tema Egenskaber:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enabled Features:" +msgstr "Funktions Liste:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enabled Classes:" +msgstr "Søg Classes" + +#: editor/editor_feature_profile.cpp +msgid "File '%s' format is invalid, import aborted." +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "" +"Profile '%s' already exists. Remote it first before importing, import " +"aborted." +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Error saving profile to path: '%s'." +msgstr "Fejl ved indlæsning af skabelon '%s'" + +#: editor/editor_feature_profile.cpp +msgid "Unset" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Current Profile" +msgstr "Nuværende version:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Make Current" +msgstr "(Nuværende)" + +#: editor/editor_feature_profile.cpp +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "New" +msgstr "" + +#: editor/editor_feature_profile.cpp editor/editor_node.cpp +#: editor/plugins/asset_library_editor_plugin.cpp editor/project_manager.cpp +msgid "Import" +msgstr "Importer" + +#: editor/editor_feature_profile.cpp editor/editor_node.cpp +#: editor/project_export.cpp +msgid "Export" +msgstr "Eksport" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Available Profiles" +msgstr "Tilgængelige Noder:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enabled Classes" +msgstr "Søg Classes" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Class Options" +msgstr "Klasse beskrivelse" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "New profile name:" +msgstr "Node Navn:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Erase Profile" +msgstr "Slet points" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Import Profile(s)" +msgstr "%d flere filer" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Export Profile" +msgstr "Eksporter Projekt" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Manage Editor Feature Profiles" +msgstr "Organiser Eksport Skabeloner" + #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Select Current Folder" msgstr "Vælg nurværende mappe" @@ -1448,8 +1707,8 @@ msgstr "Kopier Sti" msgid "Open in File Manager" msgstr "Ã…bn i FilhÃ¥ndtering" -#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp -#: editor/project_manager.cpp +#: editor/editor_file_dialog.cpp editor/editor_node.cpp +#: editor/filesystem_dock.cpp editor/project_manager.cpp msgid "Show in File Manager" msgstr "Vis i FilhÃ¥ndtering" @@ -1508,7 +1767,7 @@ msgstr "GÃ¥ Fremad" msgid "Go Up" msgstr "GÃ¥ Op" -#: editor/editor_file_dialog.cpp +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Toggle Hidden Files" msgstr "Skifter Skjulte Filer" @@ -1542,8 +1801,9 @@ msgstr "Forrige fane" msgid "Next Folder" msgstr "Opret Mappe" -#: editor/editor_file_dialog.cpp -msgid "Go to parent folder" +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp +#, fuzzy +msgid "Go to parent folder." msgstr "GÃ¥ til overliggende mappe" #: editor/editor_file_dialog.cpp @@ -1551,6 +1811,11 @@ msgstr "GÃ¥ til overliggende mappe" msgid "(Un)favorite current folder." msgstr "Kunne ikke oprette mappe." +#: editor/editor_file_dialog.cpp +#, fuzzy +msgid "Toggle visibility of hidden files." +msgstr "Skifter Skjulte Filer" + #: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp #, fuzzy msgid "View items as a grid of thumbnails." @@ -1567,6 +1832,7 @@ msgstr "Mapper & Filer:" #: editor/editor_file_dialog.cpp editor/plugins/sprite_editor_plugin.cpp #: editor/plugins/style_box_editor_plugin.cpp +#: editor/plugins/theme_editor_plugin.cpp msgid "Preview:" msgstr "ForhÃ¥ndsvisning:" @@ -1583,6 +1849,12 @@ msgid "ScanSources" msgstr "Skan Kilder" #: editor/editor_file_system.cpp +msgid "" +"There are multiple importers for different types pointing to file %s, import " +"aborted" +msgstr "" + +#: editor/editor_file_system.cpp msgid "(Re)Importing Assets" msgstr "(Gen)Importér Aktiver" @@ -1766,6 +2038,11 @@ msgstr "" msgid "Output:" msgstr "Output:" +#: editor/editor_log.cpp editor/plugins/tile_map_editor_plugin.cpp +#, fuzzy +msgid "Copy Selection" +msgstr "Fjern Markering" + #: editor/editor_log.cpp editor/editor_profiler.cpp #: editor/editor_properties.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp @@ -1917,9 +2194,10 @@ msgstr "" "bedre at forstÃ¥ arbejdsgangen." #: editor/editor_node.cpp +#, fuzzy msgid "" "This resource belongs to a scene that was instanced or inherited.\n" -"Changes to it will not be kept when saving the current scene." +"Changes to it won't be kept when saving the current scene." msgstr "" "Denne ressource tilhører en scene, der blev instanced eller arvet.\n" "Ændringer vil ikke blive gemt, nÃ¥r denne scene gemmes." @@ -1933,8 +2211,9 @@ msgstr "" "indstillingerne i importpanelet og importér den igen." #: editor/editor_node.cpp +#, fuzzy msgid "" -"This scene was imported, so changes to it will not be kept.\n" +"This scene was imported, so changes to it won't be kept.\n" "Instancing it or inheriting will allow making changes to it.\n" "Please read the documentation relevant to importing scenes to better " "understand this workflow." @@ -1945,8 +2224,9 @@ msgstr "" "forstÃ¥ denne arbejdsgang." #: editor/editor_node.cpp +#, fuzzy msgid "" -"This is a remote object so changes to it will not be kept.\n" +"This is a remote object, so changes to it won't be kept.\n" "Please read the documentation relevant to debugging to better understand " "this workflow." msgstr "" @@ -1959,36 +2239,6 @@ msgid "There is no defined scene to run." msgstr "Der er ingen defineret scene at køre." #: editor/editor_node.cpp -msgid "" -"No main scene has ever been defined, select one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" -"Ingen hoved scene er nogen sinde blevet defineret, vælg en?\n" -"Du kan ændre det senere i \"Projekt Indstillinger\" under kategorien " -"'Applikation'." - -#: editor/editor_node.cpp -msgid "" -"Selected scene '%s' does not exist, select a valid one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" -"Den valgte scene '%s' findes ikke, vælg en gyldig?\n" -"Du kan ændre det senere i \"Projekt Indstillinger\" i kategorien " -"'applikation'." - -#: editor/editor_node.cpp -msgid "" -"Selected scene '%s' is not a scene file, select a valid one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" -"Den valgte scene '%s' er ikke en scenefil, vælg en gyldig en?\n" -"Du kan ændre det senere i \"Projektindstillinger\" under kategorien " -"'applikation'." - -#: editor/editor_node.cpp msgid "Current scene was never saved, please save it prior to running." msgstr "Den nuværende scene er aldrig gemt, venligst gem før du kører den." @@ -1996,7 +2246,7 @@ msgstr "Den nuværende scene er aldrig gemt, venligst gem før du kører den." msgid "Could not start subprocess!" msgstr "Kunne ikke starte underproces!" -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/filesystem_dock.cpp msgid "Open Scene" msgstr "Ã…bn Scene" @@ -2005,6 +2255,11 @@ msgid "Open Base Scene" msgstr "Ã…bn Grund Scene" #: editor/editor_node.cpp +#, fuzzy +msgid "Quick Open..." +msgstr "Hurtig Ã…bn Scene..." + +#: editor/editor_node.cpp msgid "Quick Open Scene..." msgstr "Hurtig Ã…bn Scene..." @@ -2180,6 +2435,36 @@ msgid "Clear Recent Scenes" msgstr "Ryd Seneste Scener" #: editor/editor_node.cpp +msgid "" +"No main scene has ever been defined, select one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" +"Ingen hoved scene er nogen sinde blevet defineret, vælg en?\n" +"Du kan ændre det senere i \"Projekt Indstillinger\" under kategorien " +"'Applikation'." + +#: editor/editor_node.cpp +msgid "" +"Selected scene '%s' does not exist, select a valid one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" +"Den valgte scene '%s' findes ikke, vælg en gyldig?\n" +"Du kan ændre det senere i \"Projekt Indstillinger\" i kategorien " +"'applikation'." + +#: editor/editor_node.cpp +msgid "" +"Selected scene '%s' is not a scene file, select a valid one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" +"Den valgte scene '%s' er ikke en scenefil, vælg en gyldig en?\n" +"Du kan ændre det senere i \"Projektindstillinger\" under kategorien " +"'applikation'." + +#: editor/editor_node.cpp msgid "Save Layout" msgstr "Gem Layout" @@ -2205,6 +2490,19 @@ msgstr "Spil denne Scene" msgid "Close Tab" msgstr "Luk faneblad" +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +msgid "Close Other Tabs" +msgstr "" + +#: editor/editor_node.cpp +msgid "Close Tabs to the Right" +msgstr "" + +#: editor/editor_node.cpp +#, fuzzy +msgid "Close All Tabs" +msgstr "Luk alt" + #: editor/editor_node.cpp msgid "Switch Scene Tab" msgstr "Skift Scene Fane" @@ -2327,10 +2625,6 @@ msgstr "Projekt" msgid "Project Settings" msgstr "Projekt Indstillinger" -#: editor/editor_node.cpp editor/project_export.cpp -msgid "Export" -msgstr "Eksport" - #: editor/editor_node.cpp editor/plugins/tile_set_editor_plugin.cpp msgid "Tools" msgstr "Værktøjer" @@ -2340,6 +2634,10 @@ msgid "Open Project Data Folder" msgstr "Ã…bn Projekt datamappe" #: editor/editor_node.cpp +msgid "Install Android Build Template" +msgstr "" + +#: editor/editor_node.cpp msgid "Quit to Project List" msgstr "Afslut til Projekt Listen" @@ -2463,6 +2761,11 @@ msgstr "" msgid "Open Editor Settings Folder" msgstr "Ã…bn redaktør Indstillinger mappe" +#: editor/editor_node.cpp +#, fuzzy +msgid "Manage Editor Features" +msgstr "Organiser Eksport Skabeloner" + #: editor/editor_node.cpp editor/project_export.cpp msgid "Manage Export Templates" msgstr "Organiser Eksport Skabeloner" @@ -2475,6 +2778,7 @@ msgstr "Hjælp" #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp #: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp #: editor/project_settings_editor.cpp editor/rename_dialog.cpp msgid "Search" msgstr "Søg" @@ -2565,11 +2869,6 @@ msgstr "Opdater Ændringer" msgid "Disable Update Spinner" msgstr "SlÃ¥ Opdaterings Snurrer Fra" -#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp -#: editor/project_manager.cpp -msgid "Import" -msgstr "Importer" - #: editor/editor_node.cpp msgid "FileSystem" msgstr "Fil System" @@ -2595,6 +2894,28 @@ msgid "Don't Save" msgstr "Gem Ikke" #: editor/editor_node.cpp +msgid "Android build template is missing, please install relevant templates." +msgstr "" + +#: editor/editor_node.cpp +#, fuzzy +msgid "Manage Templates" +msgstr "Organiser Eksport Skabeloner" + +#: editor/editor_node.cpp +msgid "" +"This will install the Android project for custom builds.\n" +"Note that, in order to use it, it needs to be enabled per export preset." +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"Android build template is already installed and it won't be overwritten.\n" +"Remove the \"build\" directory manually before attempting this operation " +"again." +msgstr "" + +#: editor/editor_node.cpp msgid "Import Templates From ZIP File" msgstr "Importér Skabeloner Fra ZIP Fil" @@ -2717,10 +3038,6 @@ msgid "Physics Frame %" msgstr "Fysik Frame %" #: editor/editor_profiler.cpp -msgid "Time:" -msgstr "Tid:" - -#: editor/editor_profiler.cpp msgid "Inclusive" msgstr "Inklusiv" @@ -2856,10 +3173,6 @@ msgid "Remove Item" msgstr "" #: editor/editor_run_native.cpp -msgid "Select device from the list" -msgstr "Vælg enhed fra listen" - -#: editor/editor_run_native.cpp msgid "" "No runnable export preset found for this platform.\n" "Please add a runnable preset in the export menu." @@ -2895,6 +3208,10 @@ msgstr "Glemte du '_run' metoden?" msgid "Select Node(s) to Import" msgstr "Vælg Noder at Importere" +#: editor/editor_sub_scene.cpp editor/project_manager.cpp +msgid "Browse" +msgstr "" + #: editor/editor_sub_scene.cpp msgid "Scene Path:" msgstr "Scene Sti:" @@ -3059,6 +3376,11 @@ msgid "SSL Handshake Error" msgstr "SSL Handshake Fejl" #: editor/export_template_manager.cpp +#, fuzzy +msgid "Uncompressing Android Build Sources" +msgstr "Udpakker Aktiver" + +#: editor/export_template_manager.cpp msgid "Current Version:" msgstr "Nuværende version:" @@ -3075,7 +3397,8 @@ msgid "Remove Template" msgstr "Fjern Template" #: editor/export_template_manager.cpp -msgid "Select template file" +#, fuzzy +msgid "Select Template File" msgstr "Vælg template fil" #: editor/export_template_manager.cpp @@ -3139,7 +3462,8 @@ msgid "No name provided." msgstr "Intet navn angivet." #: editor/filesystem_dock.cpp -msgid "Provided name contains invalid characters" +#, fuzzy +msgid "Provided name contains invalid characters." msgstr "Det angivne navn indeholder ugyldige karakterer" #: editor/filesystem_dock.cpp @@ -3170,7 +3494,12 @@ msgstr "Omdøber mappe:" #: editor/filesystem_dock.cpp #, fuzzy -msgid "Open Scene(s)" +msgid "New Inherited Scene" +msgstr "Ny Nedarvet Scene..." + +#: editor/filesystem_dock.cpp +#, fuzzy +msgid "Open Scenes" msgstr "Ã…bn Scene" #: editor/filesystem_dock.cpp @@ -3179,12 +3508,12 @@ msgstr "Instans" #: editor/filesystem_dock.cpp #, fuzzy -msgid "Add to favorites" +msgid "Add to Favorites" msgstr "Favoritter:" #: editor/filesystem_dock.cpp #, fuzzy -msgid "Remove from favorites" +msgid "Remove from Favorites" msgstr "Fjern fra Gruppe" #: editor/filesystem_dock.cpp @@ -3218,12 +3547,14 @@ msgstr "Hurtig Ã…bn Script..." msgid "New Resource..." msgstr "Gem Ressource Som..." -#: editor/filesystem_dock.cpp editor/script_editor_debugger.cpp +#: editor/filesystem_dock.cpp editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_editor_debugger.cpp #, fuzzy msgid "Expand All" msgstr "Udvid alle" -#: editor/filesystem_dock.cpp editor/script_editor_debugger.cpp +#: editor/filesystem_dock.cpp editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_editor_debugger.cpp #, fuzzy msgid "Collapse All" msgstr "Klap alle sammen" @@ -3236,12 +3567,14 @@ msgid "Rename" msgstr "Omdøb" #: editor/filesystem_dock.cpp -msgid "Previous Directory" -msgstr "Forrige Mappe" +#, fuzzy +msgid "Previous Folder/File" +msgstr "Forrige fane" #: editor/filesystem_dock.cpp -msgid "Next Directory" -msgstr "Næste Mappe" +#, fuzzy +msgid "Next Folder/File" +msgstr "Opret Mappe" #: editor/filesystem_dock.cpp msgid "Re-Scan Filesystem" @@ -3249,7 +3582,7 @@ msgstr "Gen-scan Filsystemet" #: editor/filesystem_dock.cpp #, fuzzy -msgid "Toggle split mode" +msgid "Toggle Split Mode" msgstr "Skifter Modus" #: editor/filesystem_dock.cpp @@ -3282,7 +3615,7 @@ msgstr "" msgid "Create Script" msgstr "" -#: editor/find_in_files.cpp +#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp #, fuzzy msgid "Find in Files" msgstr "%d flere filer" @@ -3302,6 +3635,12 @@ msgstr "Opret Mappe" msgid "Filters:" msgstr "Filter:" +#: editor/find_in_files.cpp +msgid "" +"Include the files with the following extensions. Add or remove them in " +"ProjectSettings." +msgstr "" + #: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp msgid "Find..." @@ -3764,7 +4103,7 @@ msgstr "Ny Animation Navn:" #: editor/plugins/animation_blend_space_2d_editor.cpp #, fuzzy -msgid "Triangle already exists" +msgid "Triangle already exists." msgstr "FEJL: Animationsnavn eksisterer allerede!" #: editor/plugins/animation_blend_space_2d_editor.cpp @@ -3846,7 +4185,6 @@ msgid "Node Moved" msgstr "Node Navn:" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Unable to connect, port may be in use or connection may be invalid." msgstr "" @@ -3922,8 +4260,9 @@ msgid "Edit Filtered Tracks:" msgstr "Rediger filtre" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -msgid "Enable filtering" -msgstr "" +#, fuzzy +msgid "Enable Filtering" +msgstr "Ændret Lokalfilter" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Toggle Autoplay" @@ -4042,10 +4381,6 @@ msgid "Animation" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "New" -msgstr "" - -#: editor/plugins/animation_player_editor_plugin.cpp #, fuzzy msgid "Edit Transitions..." msgstr "Overgange" @@ -4064,11 +4399,11 @@ msgid "Autoplay on Load" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Onion Skinning" +msgid "Enable Onion Skinning" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Enable Onion Skinning" +msgid "Onion Skinning Options" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp @@ -4625,13 +4960,19 @@ msgid "Move CanvasItem" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"Children of containers have their anchors and margins values overridden by " +"their parent." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Presets for the anchors and margins values of a Control node." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "" -"Children of containers have their anchors and margins values overridden by " -"their parent." +"When active, moving Control nodes changes their anchors instead of their " +"margins." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4647,10 +4988,52 @@ msgid "Change Anchors" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Lock Selected" +msgstr "Vælg værktøj" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Unlock Selected" +msgstr "Slet Valgte" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Group Selected" +msgstr "Fjern Markering" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Ungroup Selected" +msgstr "Fjern Markering" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Paste Pose" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Create Custom Bone(s) from Node(s)" +msgstr "Spil Brugerdefineret Scene" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Clear Bones" +msgstr "Spil Brugerdefineret Scene" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Make IK Chain" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Clear IK Chain" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "" "Warning: Children of a container get their position and size determined only " "by their parent." @@ -4725,7 +5108,7 @@ msgid "Snapping Options" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to grid" +msgid "Snap to Grid" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4746,32 +5129,35 @@ msgid "Use Pixel Snap" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Smart snapping" +msgid "Smart Snapping" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to parent" +msgid "Snap to Parent" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node anchor" +msgid "Snap to Node Anchor" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node sides" -msgstr "" +#, fuzzy +msgid "Snap to Node Sides" +msgstr "Vælg Mode (Q)\n" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node center" +msgid "Snap to Node Center" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to other nodes" -msgstr "" +#, fuzzy +msgid "Snap to Other Nodes" +msgstr "Indsæt Node" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to guides" -msgstr "" +#, fuzzy +msgid "Snap to Guides" +msgstr "Vælg Mode (Q)\n" #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp @@ -4784,10 +5170,12 @@ msgid "Unlock the selected object (can be moved)." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Makes sure the object's children are not selectable." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Restores the object's children's ability to be selected." msgstr "" @@ -4801,14 +5189,6 @@ msgid "Show Bones" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Make IK Chain" -msgstr "" - -#: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Clear IK Chain" -msgstr "" - -#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Make Custom Bone(s) from Node(s)" msgstr "" @@ -4860,7 +5240,7 @@ msgid "Frame Selection" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Layout" +msgid "Preview Canvas Scale" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4914,6 +5294,10 @@ msgid "Divide grid step by 2" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Pan View" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Add %s" msgstr "" @@ -4937,7 +5321,7 @@ msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp #, fuzzy -msgid "Change default type" +msgid "Change Default Type" msgstr "Ændre standard typen" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -5024,19 +5408,19 @@ msgid "Create Emission Points From Node" msgstr "" #: editor/plugins/curve_editor_plugin.cpp -msgid "Flat0" +msgid "Flat 0" msgstr "" #: editor/plugins/curve_editor_plugin.cpp -msgid "Flat1" +msgid "Flat 1" msgstr "" -#: editor/plugins/curve_editor_plugin.cpp -msgid "Ease in" +#: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp +msgid "Ease In" msgstr "" -#: editor/plugins/curve_editor_plugin.cpp -msgid "Ease out" +#: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp +msgid "Ease Out" msgstr "" #: editor/plugins/curve_editor_plugin.cpp @@ -5056,25 +5440,29 @@ msgid "Load Curve Preset" msgstr "" #: editor/plugins/curve_editor_plugin.cpp -msgid "Add point" +#, fuzzy +msgid "Add Point" msgstr "Tilføj punkt" #: editor/plugins/curve_editor_plugin.cpp -msgid "Remove point" +#, fuzzy +msgid "Remove Point" msgstr "Fjern punkt" #: editor/plugins/curve_editor_plugin.cpp #, fuzzy -msgid "Left linear" +msgid "Left Linear" msgstr "Lineær" #: editor/plugins/curve_editor_plugin.cpp -msgid "Right linear" -msgstr "" +#, fuzzy +msgid "Right Linear" +msgstr "Lineær" #: editor/plugins/curve_editor_plugin.cpp -msgid "Load preset" -msgstr "" +#, fuzzy +msgid "Load Preset" +msgstr "Indlæs Fejl" #: editor/plugins/curve_editor_plugin.cpp msgid "Remove Curve Point" @@ -5129,14 +5517,19 @@ msgid "This doesn't work on scene root!" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Trimesh Shape" +msgid "Create Trimesh Static Shape" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Shape" +msgid "Failed creating shapes!" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp +#, fuzzy +msgid "Create Convex Shape(s)" +msgstr "Opret Ny %s" + +#: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Navigation Mesh" msgstr "" @@ -5186,16 +5579,13 @@ msgid "Create Trimesh Static Body" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Static Body" -msgstr "" - -#: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Trimesh Collision Sibling" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Collision Sibling" -msgstr "" +#, fuzzy +msgid "Create Convex Collision Sibling(s)" +msgstr "Opret Poly" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Outline Mesh..." @@ -5350,6 +5740,12 @@ msgid "Create Navigation Polygon" msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp +#: editor/plugins/particles_editor_plugin.cpp +#, fuzzy +msgid "Convert to CPUParticles" +msgstr "Konverter Til %s" + +#: editor/plugins/particles_2d_editor_plugin.cpp msgid "Generating Visibility Rect" msgstr "" @@ -5363,12 +5759,6 @@ msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp #: editor/plugins/particles_editor_plugin.cpp -#, fuzzy -msgid "Convert to CPUParticles" -msgstr "Konverter Til %s" - -#: editor/plugins/particles_2d_editor_plugin.cpp -#: editor/plugins/particles_editor_plugin.cpp msgid "Generation Time (sec):" msgstr "" @@ -5507,7 +5897,7 @@ msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp editor/plugins/theme_editor_plugin.cpp -#: editor/project_export.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_export.cpp msgid "Options" msgstr "" @@ -5563,7 +5953,7 @@ msgstr "" #: editor/plugins/physical_bone_plugin.cpp #, fuzzy -msgid "Move joint" +msgid "Move Joint" msgstr "Fjern punkt" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5807,7 +6197,6 @@ msgid "Open in Editor" msgstr "" #: editor/plugins/resource_preloader_editor_plugin.cpp -#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Load Resource" msgstr "" @@ -5908,6 +6297,11 @@ msgid "%s Class Reference" msgstr "" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp +msgid "Find Next" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp msgid "Toggle alphabetical sorting of the method list." msgstr "" @@ -5992,10 +6386,6 @@ msgstr "" msgid "Close All" msgstr "Luk alt" -#: editor/plugins/script_editor_plugin.cpp -msgid "Close Other Tabs" -msgstr "" - #: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp msgid "Run" msgstr "" @@ -6004,11 +6394,6 @@ msgstr "" msgid "Toggle Scripts Panel" msgstr "" -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/script_text_editor.cpp -msgid "Find Next" -msgstr "" - #: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp msgid "Step Over" msgstr "" @@ -6036,15 +6421,16 @@ msgid "Debug with External Editor" msgstr "Debug med ekstern editor" #: editor/plugins/script_editor_plugin.cpp -msgid "Open Godot online documentation" -msgstr "" +#, fuzzy +msgid "Open Godot online documentation." +msgstr "Ã…ben Seneste" #: editor/plugins/script_editor_plugin.cpp msgid "Request Docs" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Help improve the Godot documentation by giving feedback" +msgid "Help improve the Godot documentation by giving feedback." msgstr "" #: editor/plugins/script_editor_plugin.cpp @@ -6070,10 +6456,12 @@ msgid "" msgstr "" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp msgid "Reload" msgstr "" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp msgid "Resave" msgstr "" @@ -6088,6 +6476,31 @@ msgstr "Søg i Hjælp" #: editor/plugins/script_text_editor.cpp #, fuzzy +msgid "Connections to method:" +msgstr "Forbind Til Node:" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Source" +msgstr "Ressource" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Signal" +msgstr "Signaler" + +#: editor/plugins/script_text_editor.cpp +msgid "Target" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "" +"Missing connected method '%s' for signal '%s' from node '%s' to node '%s'." +msgstr "Afbryd '%s' fra '%s'" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy msgid "Line" msgstr "Linje:" @@ -6100,10 +6513,6 @@ msgstr "" msgid "Go to Function" msgstr "Tilføj Funktion" -#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp -msgid "Standard" -msgstr "" - #: editor/plugins/script_text_editor.cpp msgid "Only resources from filesystem can be dropped." msgstr "" @@ -6136,6 +6545,11 @@ msgstr "" msgid "Syntax Highlighter" msgstr "" +#: editor/plugins/script_text_editor.cpp +#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp +msgid "Bookmarks" +msgstr "" + #: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" @@ -6164,6 +6578,26 @@ msgstr "" #: editor/plugins/script_text_editor.cpp #, fuzzy +msgid "Toggle Bookmark" +msgstr "Skift/Toggle Breakpoint" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Go to Next Bookmark" +msgstr "GÃ¥ Til Næste Trin" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Go to Previous Bookmark" +msgstr "Skift/Toggle Breakpoint" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Remove All Bookmarks" +msgstr "Fjern Alt" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy msgid "Fold/Unfold Line" msgstr "Fold Line" @@ -6244,6 +6678,12 @@ msgid "Contextual Help" msgstr "" #: editor/plugins/shader_editor_plugin.cpp +msgid "" +"This shader has been modified on on disk.\n" +"What action should be taken?" +msgstr "" + +#: editor/plugins/shader_editor_plugin.cpp msgid "Shader" msgstr "" @@ -6589,7 +7029,7 @@ msgid "Right View" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Switch Perspective/Orthogonal view" +msgid "Switch Perspective/Orthogonal View" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp @@ -6629,11 +7069,12 @@ msgid "Toggle Freelook" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Transform" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Snap object to floor" +msgid "Snap Object to Floor" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp @@ -6778,30 +7219,22 @@ msgid "Invalid geometry, can't replace by mesh." msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Invalid geometry, can't create polygon." -msgstr "" - -#: editor/plugins/sprite_editor_plugin.cpp -msgid "Invalid geometry, can't create collision polygon." -msgstr "" - -#: editor/plugins/sprite_editor_plugin.cpp -msgid "Invalid geometry, can't create light occluder." -msgstr "" +#, fuzzy +msgid "Convert to Mesh2D" +msgstr "Konverter Til %s" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Sprite" +msgid "Invalid geometry, can't create polygon." msgstr "" #: editor/plugins/sprite_editor_plugin.cpp #, fuzzy -msgid "Convert to Mesh2D" +msgid "Convert to Polygon2D" msgstr "Konverter Til %s" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy -msgid "Convert to Polygon2D" -msgstr "Konverter Til %s" +msgid "Invalid geometry, can't create collision polygon." +msgstr "" #: editor/plugins/sprite_editor_plugin.cpp #, fuzzy @@ -6809,10 +7242,18 @@ msgid "Create CollisionPolygon2D Sibling" msgstr "Opret Poly" #: editor/plugins/sprite_editor_plugin.cpp +msgid "Invalid geometry, can't create light occluder." +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp msgid "Create LightOccluder2D Sibling" msgstr "" #: editor/plugins/sprite_editor_plugin.cpp +msgid "Sprite" +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp msgid "Simplification: " msgstr "" @@ -6831,7 +7272,12 @@ msgid "Settings:" msgstr "Tester" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "ERROR: Couldn't load frame resource!" +#, fuzzy +msgid "No Frames Selected" +msgstr "Slet Valgte" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Add %d Frame(s)" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp @@ -6839,6 +7285,10 @@ msgid "Add Frame" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "ERROR: Couldn't load frame resource!" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Resource clipboard is empty or not a texture!" msgstr "" @@ -6882,6 +7332,15 @@ msgid "Animation Frames:" msgstr "Ny Animation Navn:" #: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Add a Texture from File" +msgstr "Tilføj Node(r) fra Tree" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Add Frames from a Sprite Sheet" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Insert Empty (Before)" msgstr "" @@ -6898,6 +7357,28 @@ msgid "Move (After)" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Select Frames" +msgstr "Vælg Node" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Horizontal:" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Vertical:" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Select/Clear All Frames" +msgstr "Vælg alle" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Create Frames from Sprite Sheet" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "SpriteFrames" msgstr "" @@ -6962,13 +7443,14 @@ msgstr "" msgid "Remove All Items" msgstr "Fjern Alt" -#: editor/plugins/theme_editor_plugin.cpp +#: editor/plugins/theme_editor_plugin.cpp editor/project_manager.cpp msgid "Remove All" msgstr "Fjern Alt" #: editor/plugins/theme_editor_plugin.cpp -msgid "Edit theme..." -msgstr "" +#, fuzzy +msgid "Edit Theme" +msgstr "Medlemmer" #: editor/plugins/theme_editor_plugin.cpp msgid "Theme editing menu." @@ -6995,18 +7477,25 @@ msgid "Create From Current Editor Theme" msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "CheckBox Radio1" -msgstr "" +#, fuzzy +msgid "Toggle Button" +msgstr "Skift Autoplay" #: editor/plugins/theme_editor_plugin.cpp -msgid "CheckBox Radio2" -msgstr "" +#, fuzzy +msgid "Disabled Button" +msgstr "Deaktiveret" #: editor/plugins/theme_editor_plugin.cpp msgid "Item" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Disabled Item" +msgstr "Deaktiveret" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Check Item" msgstr "" @@ -7023,6 +7512,22 @@ msgid "Checked Radio Item" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +msgid "Named Sep." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Submenu" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Item 1" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Item 2" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Has" msgstr "" @@ -7031,8 +7536,9 @@ msgid "Many" msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "Has,Many,Options" -msgstr "" +#, fuzzy +msgid "Disabled LineEdit" +msgstr "Deaktiveret" #: editor/plugins/theme_editor_plugin.cpp msgid "Tab 1" @@ -7047,6 +7553,19 @@ msgid "Tab 3" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Editable Item" +msgstr "Rediger Variabel" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Subtree" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Has,Many,Options" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Data Type:" msgstr "" @@ -7080,6 +7599,7 @@ msgid "Fix Invalid Tiles" msgstr "Ugyldigt navn." #: editor/plugins/tile_map_editor_plugin.cpp +#: modules/gridmap/grid_map_editor_plugin.cpp #, fuzzy msgid "Cut Selection" msgstr "Ryd Markerede" @@ -7122,37 +7642,47 @@ msgid "Mirror Y" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp +msgid "Disable Autotile" +msgstr "" + +#: editor/plugins/tile_map_editor_plugin.cpp +#, fuzzy +msgid "Enable Priority" +msgstr "Rediger filtre" + +#: editor/plugins/tile_map_editor_plugin.cpp msgid "Paint Tile" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Pick Tile" +msgid "" +"Shift+RMB: Line Draw\n" +"Shift+Ctrl+RMB: Rectangle Paint" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy -msgid "Copy Selection" -msgstr "Fjern Markering" +msgid "Pick Tile" +msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Rotate left" +msgid "Rotate Left" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Rotate right" +msgid "Rotate Right" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Flip horizontally" +msgid "Flip Horizontally" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Flip vertically" +msgid "Flip Vertically" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp #, fuzzy -msgid "Clear transform" +msgid "Clear Transform" msgstr "Anim Skift Transformering" #: editor/plugins/tile_set_editor_plugin.cpp @@ -7191,6 +7721,44 @@ msgid "Select the previous shape, subtile, or Tile." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Region Mode" +msgstr "Interpolationsmetode" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Collision Mode" +msgstr "Interpolationsmetode" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Occlusion Mode" +msgstr "Rediger Poly" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Navigation Mode" +msgstr "Rediger Poly" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Bitmask Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Priority Mode" +msgstr "Eksporter Projekt" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Icon Mode" +msgstr "Skifter Modus" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Z Index Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp msgid "Copy bitmask." msgstr "" @@ -7280,6 +7848,7 @@ msgstr "Slet points" msgid "" "LMB: Set bit on.\n" "RMB: Set bit off.\n" +"Shift+LMB: Set wildcard bit.\n" "Click on another Tile to edit it." msgstr "Gem den aktuelt redigerede ressource." @@ -7404,6 +7973,77 @@ msgid "TileSet" msgstr "TileSet..." #: 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 "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector" +msgstr "Inspektør" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Add input port" +msgstr "Tilføj punkt" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add output port" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change input port type" +msgstr "Ændre standard typen" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change output port type" +msgstr "Ændre standard typen" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change input port name" +msgstr "Ændre Input Værdi" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change output port name" +msgstr "Ændre Argument navn" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Remove input port" +msgstr "Fjern punkt" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Remove output port" +msgstr "Fjern punkt" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Set expression" +msgstr "Skift udtryk" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Resize VisualShader node" +msgstr "Fjern VisualScript Node" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Set Uniform Name" msgstr "" @@ -7444,6 +8084,849 @@ msgid "Light" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Create Shader Node" +msgstr "Opret Mappe" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Color function." +msgstr "Tilføj Funktion" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Color operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Grayscale function." +msgstr "Lav Funktion" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts HSV vector to RGB equivalent." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts RGB vector to HSV equivalent." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Sepia function." +msgstr "Omdøb Funktion" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Burn operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Darken operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Difference operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Dodge operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "HardLight operator" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Lighten operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Overlay operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Screen operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "SoftLight operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Color constant." +msgstr "Konstant" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Color uniform." +msgstr "Anim Skift Transformering" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns an associated vector if the provided scalars are equal, greater or " +"less." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns an associated vector if the provided boolean value is true or false." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'camera' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'inv_camera' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'inv_projection' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'normal' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'projection' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'time' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'viewport_size' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'world' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'texture_pixel_size' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Input parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'binormal' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'fragcoord' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_coord' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_uv' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'side' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'tangent' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv2' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'vertex' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'view' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'albedo' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'attenuation' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'diffuse' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_color' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'roughness' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'specular' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'transmission' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'modelview' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_size' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'tangent' input parameter for vertex and fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_pass' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_coord' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_pixel_size' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_uv' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_alpha' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_height' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_uv' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_vec' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'normal' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'shadow_color' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'extra' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'projection' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'vertex' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'world' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'active' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'custom' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'custom_alpha' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'delta' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'emission_transform' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'index' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'lifetime' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'restart' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'time' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'transform' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'velocity' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar function." +msgstr "Skalér Valgte" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Scalar operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "E constant (2.718282). Represents the base of the natural logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Epsilon constant (0.00001). Smallest possible scalar number." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Phi constant (1.618034). Golden ratio." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi/4 constant (0.785398) or 45 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi/2 constant (1.570796) or 90 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi constant (3.141593) or 180 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Tau constant (6.283185) or 360 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Sqrt2 constant (1.414214). Square root of 2." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the absolute value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-tangent of the parameters." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Finds the nearest integer that is greater than or equal to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Constrains a value to lie between two further values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts a quantity in radians to degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-e Exponential." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-2 Exponential." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Finds the nearest integer less than or equal to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Computes the fractional part of the argument." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the inverse of the square root of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Natural logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-2 logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the greater of two values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the lesser of two values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Linear interpolation between two scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the opposite value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 - scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns the value of the first parameter raised to the power of the second." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts a quantity in degrees to radians." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 / scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the nearest integer to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the nearest even integer to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Clamps the value between 0.0 and 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Extracts the sign of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the square root of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( scalar(edge0), scalar(edge1), scalar(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if x is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( scalar(edge), scalar(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the truncated value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Adds scalar to scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Divides scalar by scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies scalar by scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the remainder of the two scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Subtracts scalar from scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Scalar constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar uniform." +msgstr "Anim Skift Transformering" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Perform the cubic texture lookup." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Perform the texture lookup." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Cubic texture uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "2D texture uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Transform function." +msgstr "Opret Poly" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) Calculate the outer product of a pair of vectors.\n" +"\n" +"OuterProduct treats the first parameter 'c' as a column vector (matrix with " +"one column) and the second parameter 'r' as a row vector (matrix with one " +"row) and does a linear algebraic matrix multiply 'c * r', yielding a matrix " +"whose number of rows is the number of components in 'c' and whose number of " +"columns is the number of components in 'r'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Composes transform from four vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Decomposes transform to four vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the determinant of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the inverse of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the transpose of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies transform by transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies vector by transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Transform constant." +msgstr "Opret Poly" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Transform uniform." +msgstr "Opret Poly" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector function." +msgstr "Fjern Funktion" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Composes vector from three scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Decomposes vector to three scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the cross product of two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the distance between two points." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the dot product of two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns a vector that points in the same direction as a reference vector. " +"The function has three vector parameters : N, the vector to orient, I, the " +"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 "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the length of a vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Linear interpolation between two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the normalize product of vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 - vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 / vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns a vector that points in the direction of reflection ( a : incident " +"vector, b : normal vector )." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns a vector that points in the direction of refraction." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( vector(edge0), vector(edge1), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if 'x' is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( scalar(edge0), scalar(edge1), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if 'x' is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( vector(edge), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( scalar(edge), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Adds vector to vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Divides vector by vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies vector by vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the remainder of the two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Subtracts vector from vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Custom Godot Shader Language expression, with custom amount of input and " +"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 "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns falloff based on the dot product of surface normal and view " +"direction of camera (pass associated inputs to it)." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) (Fragment/Light mode only) Scalar derivative function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) (Fragment/Light mode only) Vector derivative function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Derivative in 'x' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Derivative in 'x' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Derivative in 'y' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Derivative in 'y' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Sum of absolute derivative " +"in 'x' and 'y'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Sum of absolute derivative " +"in 'x' and 'y'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "VisualShader" msgstr "" @@ -7639,6 +9122,10 @@ msgid "Directory already contains a Godot project." msgstr "" #: editor/project_manager.cpp +msgid "New Game Project" +msgstr "" + +#: editor/project_manager.cpp msgid "Imported Project" msgstr "" @@ -7687,10 +9174,6 @@ msgid "Rename Project" msgstr "Omdøb Projekt" #: editor/project_manager.cpp -msgid "New Game Project" -msgstr "" - -#: editor/project_manager.cpp msgid "Import Existing Project" msgstr "" @@ -7722,11 +9205,6 @@ msgid "Project Name:" msgstr "" #: editor/project_manager.cpp -#, fuzzy -msgid "Create folder" -msgstr "Opret mappe" - -#: editor/project_manager.cpp msgid "Project Path:" msgstr "" @@ -7735,10 +9213,6 @@ msgid "Project Installation Path:" msgstr "" #: editor/project_manager.cpp -msgid "Browse" -msgstr "" - -#: editor/project_manager.cpp msgid "Renderer:" msgstr "" @@ -7792,8 +9266,8 @@ msgid "" "\n" "If you proceed with opening it, it will be converted to Godot's current " "configuration file format.\n" -"Warning: You will not be able to open the project with previous versions of " -"the engine anymore." +"Warning: You won't be able to open the project with previous versions of the " +"engine anymore." msgstr "" #: editor/project_manager.cpp @@ -7804,8 +9278,8 @@ msgid "" "%s\n" "\n" "Do you want to convert it?\n" -"Warning: You will not be able to open the project with previous versions of " -"the engine anymore." +"Warning: You won't be able to open the project with previous versions of the " +"engine anymore." msgstr "" #: editor/project_manager.cpp @@ -7815,11 +9289,15 @@ msgid "" msgstr "" #: editor/project_manager.cpp +#, fuzzy msgid "" "Can't run project: no main scene defined.\n" -"Please edit the project and set the main scene in \"Project Settings\" under " +"Please edit the project and set the main scene in the Project Settings under " "the \"Application\" category." msgstr "" +"Ingen hoved scene er nogen sinde blevet defineret, vælg en?\n" +"Du kan ændre det senere i \"Projekt Indstillinger\" under kategorien " +"'Applikation'." #: editor/project_manager.cpp msgid "" @@ -7828,23 +9306,37 @@ msgid "" msgstr "" #: editor/project_manager.cpp -msgid "Are you sure to run more than one project?" +msgid "Are you sure to run %d projects at once?" +msgstr "" + +#: editor/project_manager.cpp +msgid "" +"Remove %d projects from the list?\n" +"The project folders' contents won't be modified." msgstr "" #: editor/project_manager.cpp -msgid "Remove project from the list? (Folder contents will not be modified)" +msgid "" +"Remove this project from the list?\n" +"The project folder's contents won't be modified." +msgstr "" + +#: editor/project_manager.cpp +msgid "" +"Remove all missing projects from the list? (Folders contents will not be " +"modified)" msgstr "" #: editor/project_manager.cpp msgid "" "Language changed.\n" -"The UI will update next time the editor or project manager starts." +"The interface will update after restarting the editor or project manager." msgstr "" #: editor/project_manager.cpp msgid "" -"You are about the scan %s folders for existing Godot projects. Do you " -"confirm?" +"Are you sure to scan %s folders for existing Godot projects?\n" +"This could take a while." msgstr "" #: editor/project_manager.cpp @@ -7868,6 +9360,11 @@ msgid "New Project" msgstr "" #: editor/project_manager.cpp +#, fuzzy +msgid "Remove Missing" +msgstr "Fjern punkt" + +#: editor/project_manager.cpp msgid "Templates" msgstr "Skabeloner" @@ -7885,8 +9382,8 @@ msgstr "Kan ikke kører projekt" #: editor/project_manager.cpp msgid "" -"You don't currently have any projects.\n" -"Would you like to explore the official example projects in the Asset Library?" +"You currently don't have any projects.\n" +"Would you like to explore official example projects in the Asset Library?" msgstr "" #: editor/project_settings_editor.cpp @@ -7912,8 +9409,9 @@ msgid "" msgstr "" #: editor/project_settings_editor.cpp -msgid "Action '%s' already exists!" -msgstr "" +#, fuzzy +msgid "An action with the name '%s' already exists." +msgstr "FEJL: Animationsnavn eksisterer allerede!" #: editor/project_settings_editor.cpp msgid "Rename Input Action Event" @@ -8073,10 +9571,6 @@ msgid "" msgstr "" #: editor/project_settings_editor.cpp -msgid "Already existing" -msgstr "" - -#: editor/project_settings_editor.cpp msgid "Add Input Action" msgstr "" @@ -8141,7 +9635,7 @@ msgid "Override For..." msgstr "" #: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp -msgid "Editor must be restarted for changes to take effect" +msgid "The editor must be restarted for changes to take effect." msgstr "" #: editor/project_settings_editor.cpp @@ -8202,12 +9696,13 @@ msgid "Locales Filter" msgstr "" #: editor/project_settings_editor.cpp -msgid "Show all locales" +msgid "Show All Locales" msgstr "" #: editor/project_settings_editor.cpp -msgid "Show only selected locales" -msgstr "" +#, fuzzy +msgid "Show Selected Locales Only" +msgstr "Kun Valgte" #: editor/project_settings_editor.cpp msgid "Filter mode:" @@ -8222,14 +9717,6 @@ msgid "AutoLoad" msgstr "" #: editor/property_editor.cpp -msgid "Ease In" -msgstr "" - -#: editor/property_editor.cpp -msgid "Ease Out" -msgstr "" - -#: editor/property_editor.cpp msgid "Zero" msgstr "" @@ -8303,7 +9790,7 @@ msgid "Suffix" msgstr "" #: editor/rename_dialog.cpp -msgid "Advanced options" +msgid "Advanced Options" msgstr "" #: editor/rename_dialog.cpp @@ -8569,8 +10056,8 @@ msgstr "" #: editor/scene_tree_dock.cpp #, fuzzy -msgid "Custom Node" -msgstr "Indsæt Node" +msgid "Other Node" +msgstr "Vælg Node" #: editor/scene_tree_dock.cpp msgid "Can't operate on nodes from a foreign scene!" @@ -8613,7 +10100,7 @@ msgstr "" #: editor/scene_tree_dock.cpp #, fuzzy -msgid "Open documentation" +msgid "Open Documentation" msgstr "Ã…ben Seneste" #: editor/scene_tree_dock.cpp @@ -8642,7 +10129,7 @@ msgstr "" msgid "Save Branch as Scene" msgstr "" -#: editor/scene_tree_dock.cpp +#: editor/scene_tree_dock.cpp editor/script_editor_debugger.cpp msgid "Copy Node Path" msgstr "" @@ -8687,6 +10174,21 @@ msgid "Toggle Visible" msgstr "Skifter Skjulte Filer" #: editor/scene_tree_editor.cpp +#, fuzzy +msgid "Unlock Node" +msgstr "Vælg Node" + +#: editor/scene_tree_editor.cpp +#, fuzzy +msgid "Button Group" +msgstr "Føj til Gruppe" + +#: editor/scene_tree_editor.cpp +#, fuzzy +msgid "(Connecting From)" +msgstr "Forbindelses fejl" + +#: editor/scene_tree_editor.cpp msgid "Node configuration warning:" msgstr "" @@ -8708,9 +10210,9 @@ msgid "" "Click to show groups dock." msgstr "" -#: editor/scene_tree_editor.cpp editor/script_create_dialog.cpp +#: editor/scene_tree_editor.cpp #, fuzzy -msgid "Open Script" +msgid "Open Script:" msgstr "Ã…ben script" #: editor/scene_tree_editor.cpp @@ -8756,72 +10258,82 @@ msgid "Select a Node" msgstr "" #: editor/script_create_dialog.cpp -msgid "Error loading template '%s'" -msgstr "Fejl ved indlæsning af skabelon '%s'" +#, fuzzy +msgid "Path is empty." +msgstr "Udklipsholder er tom" #: editor/script_create_dialog.cpp -msgid "Error - Could not create script in filesystem." -msgstr "Fejl - kunne ikke oprette script i filsystem." +#, fuzzy +msgid "Filename is empty." +msgstr "Udklipsholder er tom" #: editor/script_create_dialog.cpp -msgid "Error loading script from %s" -msgstr "Fejl ved load af script fra %s" +#, fuzzy +msgid "Path is not local." +msgstr "Stien fører ikke til Node!" #: editor/script_create_dialog.cpp -msgid "N/A" -msgstr "" +#, fuzzy +msgid "Invalid base path." +msgstr "Ugyldig Sti." #: editor/script_create_dialog.cpp #, fuzzy -msgid "Open Script/Choose Location" -msgstr "Ã…bn Script Editor" +msgid "A directory with the same name exists." +msgstr "En fil eller mappe med dette navn findes allerede." #: editor/script_create_dialog.cpp -msgid "Path is empty" -msgstr "" +#, fuzzy +msgid "Invalid extension." +msgstr "Du skal bruge en gyldig udvidelse." #: editor/script_create_dialog.cpp -msgid "Filename is empty" +msgid "Wrong extension chosen." msgstr "" #: editor/script_create_dialog.cpp -msgid "Path is not local" -msgstr "" +msgid "Error loading template '%s'" +msgstr "Fejl ved indlæsning af skabelon '%s'" #: editor/script_create_dialog.cpp -msgid "Invalid base path" -msgstr "" +msgid "Error - Could not create script in filesystem." +msgstr "Fejl - kunne ikke oprette script i filsystem." #: editor/script_create_dialog.cpp -msgid "Directory of the same name exists" -msgstr "" +msgid "Error loading script from %s" +msgstr "Fejl ved load af script fra %s" #: editor/script_create_dialog.cpp -msgid "File exists, will be reused" -msgstr "Filen findes, vil blive genbrugt" +msgid "N/A" +msgstr "" #: editor/script_create_dialog.cpp -msgid "Invalid extension" -msgstr "" +#, fuzzy +msgid "Open Script / Choose Location" +msgstr "Ã…bn Script Editor" #: editor/script_create_dialog.cpp -msgid "Wrong extension chosen" -msgstr "" +#, fuzzy +msgid "Open Script" +msgstr "Ã…ben script" #: editor/script_create_dialog.cpp -msgid "Invalid Path" -msgstr "Ugyldig sti" +#, fuzzy +msgid "File exists, it will be reused." +msgstr "Filen findes, vil blive genbrugt" #: editor/script_create_dialog.cpp -msgid "Invalid class name" -msgstr "" +#, fuzzy +msgid "Invalid class name." +msgstr "Ugyldigt navn." #: editor/script_create_dialog.cpp -msgid "Invalid inherited parent name or path" +#, fuzzy +msgid "Invalid inherited parent name or path." msgstr "Ugyldigt inherited parent navn eller sti" #: editor/script_create_dialog.cpp -msgid "Script valid" +msgid "Script is valid." msgstr "" #: editor/script_create_dialog.cpp @@ -8829,16 +10341,19 @@ msgid "Allowed: a-z, A-Z, 0-9 and _" msgstr "" #: editor/script_create_dialog.cpp -msgid "Built-in script (into scene file)" -msgstr "" +#, fuzzy +msgid "Built-in script (into scene file)." +msgstr "Handlinger med scene filer." #: editor/script_create_dialog.cpp -msgid "Create new script file" +#, fuzzy +msgid "Will create a new script file." msgstr "Opret ny script fil" #: editor/script_create_dialog.cpp -msgid "Load existing script file" -msgstr "" +#, fuzzy +msgid "Will load an existing script file." +msgstr "Indlæs et eksisterende Bus Layout." #: editor/script_create_dialog.cpp msgid "Language" @@ -8970,6 +10485,10 @@ msgstr "" msgid "Set From Tree" msgstr "" +#: editor/script_editor_debugger.cpp +msgid "Export measures as CSV" +msgstr "" + #: editor/settings_config_dialog.cpp #, fuzzy msgid "Erase Shortcut" @@ -9101,6 +10620,15 @@ msgid "GDNativeLibrary" msgstr "" #: 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 "SlÃ¥ Opdaterings Snurrer Fra" + +#: modules/gdnative/gdnative_library_singleton_editor.cpp msgid "Library" msgstr "" @@ -9190,8 +10718,9 @@ msgid "GridMap Fill Selection" msgstr "GridMap Slet Markerede" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "GridMap Duplicate Selection" -msgstr "GridMap Duplikér Markerede" +#, fuzzy +msgid "GridMap Paste Selection" +msgstr "GridMap Slet Markerede" #: modules/gridmap/grid_map_editor_plugin.cpp msgid "GridMap Paint" @@ -9258,18 +10787,6 @@ msgid "Cursor Clear Rotation" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Create Area" -msgstr "Opret Area" - -#: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Create Exterior Connector" -msgstr "" - -#: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Erase Area" -msgstr "" - -#: modules/gridmap/grid_map_editor_plugin.cpp msgid "Clear Selection" msgstr "Ryd Markerede" @@ -9636,18 +11153,11 @@ msgid "Available Nodes:" msgstr "Tilgængelige Noder:" #: modules/visual_script/visual_script_editor.cpp -msgid "Select or create a function to edit graph" +#, fuzzy +msgid "Select or create a function to edit its graph." msgstr "Vælg eller Opret en funktion til at redigere graf" #: modules/visual_script/visual_script_editor.cpp -msgid "Edit Signal Arguments:" -msgstr "Rediger Signal argumenter:" - -#: modules/visual_script/visual_script_editor.cpp -msgid "Edit Variable:" -msgstr "Rediger Variabel:" - -#: modules/visual_script/visual_script_editor.cpp msgid "Delete Selected" msgstr "Slet Valgte" @@ -9780,6 +11290,19 @@ msgid "Debug keystore not configured in the Editor Settings nor in the preset." msgstr "" #: platform/android/export/export.cpp +msgid "Custom build requires a valid Android SDK path in Editor Settings." +msgstr "" + +#: platform/android/export/export.cpp +msgid "Invalid Android SDK path for custom build in Editor Settings." +msgstr "" + +#: platform/android/export/export.cpp +msgid "" +"Android project is not installed for compiling. Install from Editor menu." +msgstr "" + +#: platform/android/export/export.cpp msgid "Invalid public key for APK expansion." msgstr "" @@ -9788,6 +11311,34 @@ msgstr "" msgid "Invalid package name:" msgstr "Ugyldigt navn." +#: platform/android/export/export.cpp +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 "" +"Android build version mismatch:\n" +" Template installed: %s\n" +" Godot Version: %s\n" +"Please reinstall Android build template from 'Project' menu." +msgstr "" + +#: platform/android/export/export.cpp +msgid "Building Android Project (gradle)" +msgstr "" + +#: 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 "" + +#: platform/android/export/export.cpp +msgid "No build apk generated at: " +msgstr "" + #: platform/iphone/export/export.cpp msgid "Identifier is missing." msgstr "" @@ -10076,27 +11627,27 @@ msgid "ARVRCamera must have an ARVROrigin node as its parent" msgstr "" #: scene/3d/arvr_nodes.cpp -msgid "ARVRController must have an ARVROrigin node as its parent" +msgid "ARVRController must have an ARVROrigin node as its parent." msgstr "" #: scene/3d/arvr_nodes.cpp msgid "" -"The controller id must not be 0 or this controller will not be bound to an " -"actual controller" +"The controller ID must not be 0 or this controller won't be bound to an " +"actual controller." msgstr "" #: scene/3d/arvr_nodes.cpp -msgid "ARVRAnchor must have an ARVROrigin node as its parent" +msgid "ARVRAnchor must have an ARVROrigin node as its parent." msgstr "" #: scene/3d/arvr_nodes.cpp msgid "" -"The anchor id must not be 0 or this anchor will not be bound to an actual " -"anchor" +"The anchor ID must not be 0 or this anchor won't be bound to an actual " +"anchor." msgstr "" #: scene/3d/arvr_nodes.cpp -msgid "ARVROrigin requires an ARVRCamera child node" +msgid "ARVROrigin requires an ARVRCamera child node." msgstr "" #: scene/3d/baked_lightmap.cpp @@ -10174,8 +11725,8 @@ msgstr "" #: scene/3d/cpu_particles.cpp msgid "" -"CPUParticles animation requires the usage of a SpatialMaterial with " -"\"Billboard Particles\" enabled." +"CPUParticles animation requires the usage of a SpatialMaterial whose " +"Billboard Mode is set to \"Particle Billboard\"." msgstr "" #: scene/3d/gi_probe.cpp @@ -10216,8 +11767,8 @@ msgstr "" #: scene/3d/particles.cpp msgid "" -"Particles animation requires the usage of a SpatialMaterial with \"Billboard " -"Particles\" enabled." +"Particles animation requires the usage of a SpatialMaterial whose Billboard " +"Mode is set to \"Particle Billboard\"." msgstr "" #: scene/3d/path.cpp @@ -10244,7 +11795,7 @@ msgid "Path property must point to a valid Spatial node to work." msgstr "Stien skal pege pÃ¥ en gyldig fysisk node for at virke." #: scene/3d/soft_body.cpp -msgid "This body will be ignored until you set a mesh" +msgid "This body will be ignored until you set a mesh." msgstr "" #: scene/3d/soft_body.cpp @@ -10350,7 +11901,7 @@ msgstr "" msgid "" "Container by itself serves no purpose unless a script configures it's " "children placement behavior.\n" -"If you dont't intend to add a script, then please use a plain 'Control' node " +"If you don't intend to add a script, then please use a plain 'Control' node " "instead." msgstr "" @@ -10362,11 +11913,6 @@ msgstr "Advarsel!" msgid "Please Confirm..." msgstr "Bekræft venligst..." -#: scene/gui/file_dialog.cpp -#, fuzzy -msgid "Go to parent folder." -msgstr "GÃ¥ til overliggende mappe" - #: scene/gui/popup.cpp msgid "" "Popups will hide by default unless you call popup() or any of the popup*() " @@ -10447,6 +11993,58 @@ msgstr "" msgid "Varyings can only be assigned in vertex function." msgstr "" +#: servers/visual/shader_language.cpp +msgid "Constants cannot be modified." +msgstr "" + +#~ msgid "Path to Node:" +#~ msgstr "Sti til Node:" + +#~ msgid "Delete selected files?" +#~ msgstr "Slet markerede filer?" + +#~ msgid "There is no 'res://default_bus_layout.tres' file." +#~ msgstr "Der er ingen 'res://default_bus_layout.tres' fil." + +#~ 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" + +#~ msgid "Previous Directory" +#~ msgstr "Forrige Mappe" + +#~ msgid "Next Directory" +#~ msgstr "Næste Mappe" + +#, fuzzy +#~ msgid "Create folder" +#~ msgstr "Opret mappe" + +#, fuzzy +#~ msgid "Custom Node" +#~ msgstr "Indsæt Node" + +#~ msgid "Invalid Path" +#~ msgstr "Ugyldig sti" + +#~ msgid "GridMap Duplicate Selection" +#~ msgstr "GridMap Duplikér Markerede" + +#~ msgid "Create Area" +#~ msgstr "Opret Area" + +#~ msgid "Edit Signal Arguments:" +#~ msgstr "Rediger Signal argumenter:" + +#~ msgid "Edit Variable:" +#~ msgstr "Rediger Variabel:" + #~ msgid "Warnings:" #~ msgstr "Advarsler:" @@ -10516,9 +12114,6 @@ msgstr "" #~ msgid "Class List:" #~ msgstr "Class Liste:" -#~ msgid "Search Classes" -#~ msgstr "Søg Classes" - #~ msgid "Public Methods" #~ msgstr "Public Methods" @@ -10558,9 +12153,6 @@ msgstr "" #~ msgid "Convert To Lowercase" #~ msgstr "Konverter til smÃ¥ bogstaver" -#~ msgid "Disabled" -#~ msgstr "Deaktiveret" - #~ msgid "Move Anim Track Up" #~ msgstr "Flyt Anim Spor Op" @@ -10673,9 +12265,6 @@ msgstr "" #~ msgid "Call" #~ msgstr "Kald" -#~ msgid "Edit Variable" -#~ msgstr "Rediger Variabel" - #~ msgid "Edit Signal" #~ msgstr "Rediger Signal" @@ -10717,12 +12306,6 @@ msgstr "" #~ msgstr "Liste:" #, fuzzy -#~ msgid "" -#~ "\n" -#~ "Source: " -#~ msgstr "Ressource" - -#, fuzzy #~ msgid "Add Point to Line2D" #~ msgstr "GÃ¥ til linje" diff --git a/editor/translations/de.po b/editor/translations/de.po index a9f174e98e..f4a51c906c 100644 --- a/editor/translations/de.po +++ b/editor/translations/de.po @@ -39,11 +39,12 @@ # Martin <martinreininger@gmx.net>, 2019. # Andreas During <anduring@web.de>, 2019. # Arthur S. Muszynski <artism90@gmail.com>, 2019. +# Andreas Binczyk <andreas.binczyk@gmail.com>, 2019. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2019-03-30 20:04+0000\n" +"PO-Revision-Date: 2019-05-27 11:00+0000\n" "Last-Translator: So Wieso <sowieso@dukun.de>\n" "Language-Team: German <https://hosted.weblate.org/projects/godot-engine/" "godot/de/>\n" @@ -52,7 +53,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.6-dev\n" +"X-Generator: Weblate 3.7-dev\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -108,6 +109,15 @@ msgstr "Ausgeglichen" msgid "Mirror" msgstr "Gespiegelt" +#: editor/animation_bezier_editor.cpp editor/editor_profiler.cpp +msgid "Time:" +msgstr "Zeit:" + +#: editor/animation_bezier_editor.cpp +#, fuzzy +msgid "Value:" +msgstr "Wert" + #: editor/animation_bezier_editor.cpp msgid "Insert Key Here" msgstr "Hier Schlüsselbild einfügen" @@ -190,14 +200,18 @@ msgid "Animation Playback Track" msgstr "Animationsspielerspur" #: editor/animation_track_editor.cpp -msgid "Add Track" -msgstr "Spur hinzufügen" +msgid "Animation length (frames)" +msgstr "Animationsdauer (in Frames)" #: editor/animation_track_editor.cpp -msgid "Animation Length Time (seconds)" +msgid "Animation length (seconds)" msgstr "Animationsdauer (in Sekunden)" #: editor/animation_track_editor.cpp +msgid "Add Track" +msgstr "Spur hinzufügen" + +#: editor/animation_track_editor.cpp msgid "Animation Looping" msgstr "Animationswiederholung" @@ -321,11 +335,13 @@ msgid "Create %d NEW tracks and insert keys?" msgstr "%d NEUE Spuren erstellen und Schlüsselbilder hinzufügen?" #: editor/animation_track_editor.cpp editor/create_dialog.cpp -#: editor/editor_audio_buses.cpp editor/editor_plugin_settings.cpp -#: editor/plugin_config_dialog.cpp +#: editor/editor_audio_buses.cpp editor/editor_feature_profile.cpp +#: editor/editor_plugin_settings.cpp editor/plugin_config_dialog.cpp #: editor/plugins/abstract_polygon_2d_editor.cpp #: editor/plugins/mesh_instance_editor_plugin.cpp -#: editor/plugins/particles_editor_plugin.cpp editor/script_create_dialog.cpp +#: editor/plugins/particles_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_create_dialog.cpp msgid "Create" msgstr "Erstellen" @@ -444,6 +460,23 @@ msgstr "" "sich nur um eine einzige Spur handelt." #: editor/animation_track_editor.cpp +msgid "" +"This animation belongs to an imported scene, so changes to imported tracks " +"will not be saved.\n" +"\n" +"To enable the ability to add custom tracks, navigate to the scene's import " +"settings and set\n" +"\"Animation > Storage\" to \"Files\", enable \"Animation > Keep Custom Tracks" +"\", then re-import.\n" +"Alternatively, use an import preset that imports animations to separate " +"files." +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Warning: Editing imported animation" +msgstr "" + +#: editor/animation_track_editor.cpp msgid "Only show tracks from nodes selected in tree." msgstr "Nur Spuren der aktuell ausgewählten Nodes anzeigen." @@ -452,9 +485,8 @@ msgid "Group tracks by node or display them as plain list." msgstr "Spuren nach Node gruppieren oder nacheinander anzeigen." #: editor/animation_track_editor.cpp -#, fuzzy msgid "Snap:" -msgstr "Einrasten" +msgstr "Einrasten:" #: editor/animation_track_editor.cpp msgid "Animation step value." @@ -462,7 +494,7 @@ msgstr "Animationsschrittwert." #: editor/animation_track_editor.cpp msgid "Seconds" -msgstr "" +msgstr "Sekunden" #: editor/animation_track_editor.cpp msgid "FPS" @@ -577,7 +609,8 @@ msgstr "Skalierungsverhältnis:" msgid "Select tracks to copy:" msgstr "Zu kopierende Spuren auswählen:" -#: editor/animation_track_editor.cpp editor/editor_properties.cpp +#: editor/animation_track_editor.cpp editor/editor_log.cpp +#: editor/editor_properties.cpp #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp @@ -645,6 +678,11 @@ msgstr "Alle ersetzen" msgid "Selection Only" msgstr "Nur Auswahl" +#: editor/code_editor.cpp editor/plugins/script_text_editor.cpp +#: editor/plugins/text_editor.cpp +msgid "Standard" +msgstr "Standard" + #: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/texture_region_editor_plugin.cpp #: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp @@ -670,21 +708,39 @@ msgid "Line and column numbers." msgstr "Zeilen- und Spaltennummern." #: editor/connections_dialog.cpp -msgid "Method in target Node must be specified!" +#, fuzzy +msgid "Method in target node must be specified." msgstr "Im Ziel-Node muss eine Methode angegeben werden!" #: editor/connections_dialog.cpp +#, fuzzy msgid "" -"Target method not found! Specify a valid method or attach a script to target " -"Node." +"Target method not found. Specify a valid method or attach a script to the " +"target node." msgstr "" "Zielmethode nicht gefunden! Bitte eine gültige Methode angeben oder ein " "Skript dem Ziel-Node anhängen." #: editor/connections_dialog.cpp -msgid "Connect To Node:" +#, fuzzy +msgid "Connect to Node:" msgstr "Mit Node verbinden:" +#: editor/connections_dialog.cpp +#, fuzzy +msgid "Connect to Script:" +msgstr "Kann nicht zu Host verbinden:" + +#: editor/connections_dialog.cpp +#, fuzzy +msgid "From Signal:" +msgstr "Signale:" + +#: editor/connections_dialog.cpp +#, fuzzy +msgid "Scene does not contain any script." +msgstr "Knoten enthält keine Geometrie." + #: editor/connections_dialog.cpp editor/editor_autoload_settings.cpp #: editor/groups_editor.cpp editor/plugins/item_list_editor_plugin.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_settings_editor.cpp @@ -692,10 +748,12 @@ msgid "Add" msgstr "Hinzufügen" #: editor/connections_dialog.cpp editor/dependency_editor.cpp -#: editor/groups_editor.cpp editor/plugins/animation_player_editor_plugin.cpp +#: editor/editor_feature_profile.cpp editor/groups_editor.cpp +#: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp #: editor/plugins/resource_preloader_editor_plugin.cpp -#: editor/plugins/theme_editor_plugin.cpp editor/project_manager.cpp +#: editor/plugins/theme_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_manager.cpp #: editor/project_settings_editor.cpp msgid "Remove" msgstr "Entfernen" @@ -709,21 +767,32 @@ msgid "Extra Call Arguments:" msgstr "Zusätzliche Aufrufparameter:" #: editor/connections_dialog.cpp -msgid "Path to Node:" -msgstr "Pfad zum Node:" - -#: editor/connections_dialog.cpp -msgid "Make Function" -msgstr "Funktion erstellen" +#, fuzzy +msgid "Advanced" +msgstr "Erweiterte Einstellungen" #: editor/connections_dialog.cpp msgid "Deferred" msgstr "Verzögert" #: editor/connections_dialog.cpp +msgid "" +"Defers the signal, storing it in a queue and only firing it at idle time." +msgstr "" + +#: editor/connections_dialog.cpp msgid "Oneshot" msgstr "Einmalig" +#: editor/connections_dialog.cpp +msgid "Disconnects the signal after its first emission." +msgstr "" + +#: editor/connections_dialog.cpp +#, fuzzy +msgid "Cannot connect signal" +msgstr "Signal verbinden: " + #: editor/connections_dialog.cpp editor/dependency_editor.cpp #: editor/export_template_manager.cpp editor/groups_editor.cpp #: editor/plugins/animation_player_editor_plugin.cpp @@ -764,11 +833,13 @@ msgid "Disconnect" msgstr "Trennen" #: editor/connections_dialog.cpp -msgid "Connect Signal: " +#, fuzzy +msgid "Connect a Signal to a Method" msgstr "Signal verbinden: " #: editor/connections_dialog.cpp -msgid "Edit Connection: " +#, fuzzy +msgid "Edit Connection:" msgstr "Verbindung bearbeiten: " #: editor/connections_dialog.cpp @@ -800,7 +871,6 @@ msgid "Change %s Type" msgstr "%s-Typ ändern" #: editor/create_dialog.cpp editor/project_settings_editor.cpp -#: modules/visual_script/visual_script_editor.cpp msgid "Change" msgstr "Ändern" @@ -831,7 +901,8 @@ msgid "Matches:" msgstr "Treffer:" #: editor/create_dialog.cpp editor/plugin_config_dialog.cpp -#: editor/plugins/asset_library_editor_plugin.cpp editor/property_selector.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/property_selector.cpp #: modules/visual_script/visual_script_property_selector.cpp msgid "Description:" msgstr "Beschreibung:" @@ -845,17 +916,19 @@ msgid "Dependencies For:" msgstr "Abhängigkeiten für:" #: editor/dependency_editor.cpp +#, fuzzy msgid "" "Scene '%s' is currently being edited.\n" -"Changes will not take effect unless reloaded." +"Changes will only take effect when reloaded." msgstr "" "Die Szene ‚%s‘ wird momentan bearbeitet.\n" "Änderungen werden erst wirksam, wenn die Szene neu geladen wird." #: editor/dependency_editor.cpp +#, fuzzy msgid "" "Resource '%s' is in use.\n" -"Changes will take effect when reloaded." +"Changes will only take effect when reloaded." msgstr "" "Die Ressource ‚%s‘ wird momentan benutzt.\n" "Änderungen werden erst durch Neuladen wirksam." @@ -954,21 +1027,14 @@ msgstr "" "%d Datei(en) dauerhaft entfernen? (Kann nicht rückgängig gemacht werden)" #: editor/dependency_editor.cpp -msgid "Owns" -msgstr "Besitzt" - -#: editor/dependency_editor.cpp -msgid "Resources Without Explicit Ownership:" -msgstr "Ressource ohne direkte Zugehörigkeit:" +#, fuzzy +msgid "Show Dependencies" +msgstr "Abhängigkeiten" #: editor/dependency_editor.cpp editor/editor_node.cpp msgid "Orphan Resource Explorer" msgstr "Unbenutzte Dateien ansehen" -#: editor/dependency_editor.cpp -msgid "Delete selected files?" -msgstr "Ausgewählte Dateien löschen?" - #: editor/dependency_editor.cpp editor/editor_audio_buses.cpp #: editor/editor_file_dialog.cpp editor/editor_node.cpp #: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp @@ -977,6 +1043,14 @@ msgstr "Ausgewählte Dateien löschen?" msgid "Delete" msgstr "Löschen" +#: editor/dependency_editor.cpp +msgid "Owns" +msgstr "Besitzt" + +#: editor/dependency_editor.cpp +msgid "Resources Without Explicit Ownership:" +msgstr "Ressource ohne direkte Zugehörigkeit:" + #: editor/dictionary_property_edit.cpp msgid "Change Dictionary Key" msgstr "Wörterbuchschlüssel ändern" @@ -1091,7 +1165,7 @@ msgstr "Paket wurde erfolgreich installiert!" msgid "Success!" msgstr "Geschafft!" -#: editor/editor_asset_installer.cpp +#: editor/editor_asset_installer.cpp editor/editor_node.cpp #: editor/plugins/asset_library_editor_plugin.cpp msgid "Install" msgstr "Installieren" @@ -1218,8 +1292,12 @@ msgid "Open Audio Bus Layout" msgstr "Öffne Audiobus-Layout" #: editor/editor_audio_buses.cpp -msgid "There is no 'res://default_bus_layout.tres' file." -msgstr "Datei ‚res://default_bus_layout.tres‘ existiert nicht." +msgid "There is no '%s' file." +msgstr "" + +#: editor/editor_audio_buses.cpp editor/plugins/canvas_item_editor_plugin.cpp +msgid "Layout" +msgstr "Layout" #: editor/editor_audio_buses.cpp msgid "Invalid file, not an audio bus layout." @@ -1272,24 +1350,31 @@ msgid "Valid characters:" msgstr "Gültige Zeichen:" #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing engine class name." +#, fuzzy +msgid "Must not collide with an existing engine class name." msgstr "" "Ungültiger Name. Darf nicht mit existierenden Klassennamen der Engine " "übereinstimmen." #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing buit-in type name." +#, fuzzy +msgid "Must not collide with an existing buit-in type name." msgstr "" "Ungültiger Name. Darf nicht mit existierenden eingebauten Typnamen " "übereinstimmen." #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing global constant name." +#, fuzzy +msgid "Must not collide with an existing global constant name." msgstr "" "Ungültiger Name. Darf nicht mit Namen existierender globaler Konstanten " "übereinstimmen." #: editor/editor_autoload_settings.cpp +msgid "Keyword cannot be used as an autoload name." +msgstr "" + +#: editor/editor_autoload_settings.cpp msgid "Autoload '%s' already exists!" msgstr "Autoload '%s' existiert bereits!" @@ -1317,11 +1402,12 @@ msgstr "Aktivieren" msgid "Rearrange Autoloads" msgstr "Autoloads neu anordnen" -#: editor/editor_autoload_settings.cpp -msgid "Invalid Path." +#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp +#, fuzzy +msgid "Invalid path." msgstr "Ungültiger Pfad." -#: editor/editor_autoload_settings.cpp +#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp msgid "File does not exist." msgstr "Datei existiert nicht." @@ -1372,7 +1458,8 @@ msgid "[unsaved]" msgstr "[ungespeichert]" #: editor/editor_dir_dialog.cpp -msgid "Please select a base directory first" +#, fuzzy +msgid "Please select a base directory first." msgstr "Zuerst ein Wurzelverzeichnis setzen" #: editor/editor_dir_dialog.cpp @@ -1380,7 +1467,8 @@ msgid "Choose a Directory" msgstr "Wähle ein Verzeichnis" #: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp -#: editor/filesystem_dock.cpp scene/gui/file_dialog.cpp +#: editor/filesystem_dock.cpp editor/project_manager.cpp +#: scene/gui/file_dialog.cpp msgid "Create Folder" msgstr "Ordner erstellen" @@ -1455,6 +1543,178 @@ msgstr "Selbst konfigurierte Release-Exportvorlage nicht gefunden." msgid "Template file not found:" msgstr "Vorlagendatei nicht gefunden:" +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "3D Editor" +msgstr "Editor" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Script Editor" +msgstr "Skripteditor öffnen" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Asset Library" +msgstr "Öffne Nutzerinhaltesammlung" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Scene Tree Editing" +msgstr "Szenenbaum (Nodes):" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Import Dock" +msgstr "Import" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Node Dock" +msgstr "Node verschoben" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Filesystem Dock" +msgstr "Dateisystem" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Erase profile '%s'? (no undo)" +msgstr "Alle ersetzen (nicht rückgängig)" + +#: editor/editor_feature_profile.cpp +msgid "Profile must be a valid filename and must not contain '.'" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Profile with this name already exists." +msgstr "Es existiert bereits eine Datei oder ein Ordner mit diesem Namen." + +#: editor/editor_feature_profile.cpp +msgid "(Editor Disabled, Properties Disabled)" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "(Properties Disabled)" +msgstr "Nur Eigenschaften" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "(Editor Disabled)" +msgstr "Einrasten deaktiviert" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Class Options:" +msgstr "Klassenbeschreibung:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enable Contextual Editor" +msgstr "Nächsten Editor öffnen" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enabled Properties:" +msgstr "Eigenschaften:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enabled Features:" +msgstr "Funktionen" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enabled Classes:" +msgstr "Klassen suchen" + +#: editor/editor_feature_profile.cpp +msgid "File '%s' format is invalid, import aborted." +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "" +"Profile '%s' already exists. Remote it first before importing, import " +"aborted." +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Error saving profile to path: '%s'." +msgstr "Fehler beim Laden der Vorlage ‚%s‘" + +#: editor/editor_feature_profile.cpp +msgid "Unset" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Current Profile" +msgstr "Aktuelle Version:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Make Current" +msgstr "Laufend:" + +#: editor/editor_feature_profile.cpp +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "New" +msgstr "Neu" + +#: editor/editor_feature_profile.cpp editor/editor_node.cpp +#: editor/plugins/asset_library_editor_plugin.cpp editor/project_manager.cpp +msgid "Import" +msgstr "Import" + +#: editor/editor_feature_profile.cpp editor/editor_node.cpp +#: editor/project_export.cpp +msgid "Export" +msgstr "Exportieren" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Available Profiles" +msgstr "Verfügbare Nodes:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enabled Classes" +msgstr "Klassen suchen" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Class Options" +msgstr "Klassenbeschreibung" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "New profile name:" +msgstr "Neuer Name:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Erase Profile" +msgstr "Bereich entfernen" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Import Profile(s)" +msgstr "Importiertes Projekt" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Export Profile" +msgstr "Projekt exportieren" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Manage Editor Feature Profiles" +msgstr "Verwalte Exportvorlagen" + #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Select Current Folder" msgstr "Gegenwärtigen Ordner auswählen" @@ -1475,8 +1735,8 @@ msgstr "Pfad kopieren" msgid "Open in File Manager" msgstr "Im Dateimanager öffnen" -#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp -#: editor/project_manager.cpp +#: editor/editor_file_dialog.cpp editor/editor_node.cpp +#: editor/filesystem_dock.cpp editor/project_manager.cpp msgid "Show in File Manager" msgstr "Im Dateimanager anzeigen" @@ -1535,7 +1795,7 @@ msgstr "Vor" msgid "Go Up" msgstr "Hoch" -#: editor/editor_file_dialog.cpp +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Toggle Hidden Files" msgstr "Versteckte Dateien ein- und ausblenden" @@ -1567,14 +1827,19 @@ msgstr "Vorheriger Ordner" msgid "Next Folder" msgstr "Nächster Ordner" -#: editor/editor_file_dialog.cpp -msgid "Go to parent folder" -msgstr "Gehe zu übergeordnetem Ordner" +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp +msgid "Go to parent folder." +msgstr "Gehe zu übergeordnetem Ordner." #: editor/editor_file_dialog.cpp msgid "(Un)favorite current folder." msgstr "Gegenwärtigen Ordner (de)favorisieren." +#: editor/editor_file_dialog.cpp +#, fuzzy +msgid "Toggle visibility of hidden files." +msgstr "Versteckte Dateien ein- und ausblenden" + #: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp msgid "View items as a grid of thumbnails." msgstr "Einträge in Vorschaugitter anzeigen." @@ -1589,6 +1854,7 @@ msgstr "Verzeichnisse & Dateien:" #: editor/editor_file_dialog.cpp editor/plugins/sprite_editor_plugin.cpp #: editor/plugins/style_box_editor_plugin.cpp +#: editor/plugins/theme_editor_plugin.cpp msgid "Preview:" msgstr "Vorschau:" @@ -1605,6 +1871,12 @@ msgid "ScanSources" msgstr "Lese Quellen" #: editor/editor_file_system.cpp +msgid "" +"There are multiple importers for different types pointing to file %s, import " +"aborted" +msgstr "" + +#: editor/editor_file_system.cpp msgid "(Re)Importing Assets" msgstr "Importiere Nutzerinhalte erneut" @@ -1787,6 +2059,10 @@ msgstr "Mehrfach einstellen:" msgid "Output:" msgstr "Ausgabe:" +#: editor/editor_log.cpp editor/plugins/tile_map_editor_plugin.cpp +msgid "Copy Selection" +msgstr "Auswahl kopieren" + #: editor/editor_log.cpp editor/editor_profiler.cpp #: editor/editor_properties.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp @@ -1944,9 +2220,10 @@ msgstr "" "Die Dokumentation zum Szenenimport beschreibt den nötigen Arbeitsablauf." #: editor/editor_node.cpp +#, fuzzy msgid "" "This resource belongs to a scene that was instanced or inherited.\n" -"Changes to it will not be kept when saving the current scene." +"Changes to it won't be kept when saving the current scene." msgstr "" "Diese Ressource gehört zu einer instantiierten oder geerbten Szene.\n" "Änderungen an der Ressource werden beim Speichern der Szene nicht " @@ -1962,8 +2239,9 @@ msgstr "" "durchgeführt werden." #: editor/editor_node.cpp +#, fuzzy msgid "" -"This scene was imported, so changes to it will not be kept.\n" +"This scene was imported, so changes to it won't be kept.\n" "Instancing it or inheriting will allow making changes to it.\n" "Please read the documentation relevant to importing scenes to better " "understand this workflow." @@ -1973,8 +2251,9 @@ msgstr "" "Die Dokumentation zum Szenenimport beschreibt den nötigen Arbeitsablauf." #: editor/editor_node.cpp +#, fuzzy msgid "" -"This is a remote object so changes to it will not be kept.\n" +"This is a remote object, so changes to it won't be kept.\n" "Please read the documentation relevant to debugging to better understand " "this workflow." msgstr "" @@ -1986,36 +2265,6 @@ msgid "There is no defined scene to run." msgstr "Es ist keine zu startende Szene definiert." #: editor/editor_node.cpp -msgid "" -"No main scene has ever been defined, select one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" -"Es wurde noch keine Hauptszene bestimmt, soll eine ausgewählt werden?\n" -"Dies kann später in den Projekteinstellungen unter der Kategorie ‚Anwendung‘ " -"geändert werden." - -#: editor/editor_node.cpp -msgid "" -"Selected scene '%s' does not exist, select a valid one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" -"Die ausgewählte Szene ‚%s‘ existiert nicht.\n" -"Wähle eine gültige Szene in den Projekteinstellungen unter der Kategorie " -"„Anwendung“." - -#: editor/editor_node.cpp -msgid "" -"Selected scene '%s' is not a scene file, select a valid one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" -"Die ausgewählte Szene ‚%s‘ ist keine gültige Datei für eine Szene.\n" -"Wähle eine gültige Szene in den Projekteinstellungen unter der Kategorie " -"„Anwendung“." - -#: editor/editor_node.cpp msgid "Current scene was never saved, please save it prior to running." msgstr "" "Die aktuelle Szene wurde noch nicht gespeichert, bitte speichere sie vor dem " @@ -2025,7 +2274,7 @@ msgstr "" msgid "Could not start subprocess!" msgstr "Unterprozess konnte nicht gestartet werden!" -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/filesystem_dock.cpp msgid "Open Scene" msgstr "Szene öffnen" @@ -2034,6 +2283,11 @@ msgid "Open Base Scene" msgstr "Basisszene öffnen" #: editor/editor_node.cpp +#, fuzzy +msgid "Quick Open..." +msgstr "Schnell Szenen öffnen..." + +#: editor/editor_node.cpp msgid "Quick Open Scene..." msgstr "Schnell Szenen öffnen..." @@ -2218,6 +2472,36 @@ msgid "Clear Recent Scenes" msgstr "Verlauf leeren" #: editor/editor_node.cpp +msgid "" +"No main scene has ever been defined, select one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" +"Es wurde noch keine Hauptszene bestimmt, soll eine ausgewählt werden?\n" +"Dies kann später in den Projekteinstellungen unter der Kategorie ‚Anwendung‘ " +"geändert werden." + +#: editor/editor_node.cpp +msgid "" +"Selected scene '%s' does not exist, select a valid one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" +"Die ausgewählte Szene ‚%s‘ existiert nicht.\n" +"Wähle eine gültige Szene in den Projekteinstellungen unter der Kategorie " +"„Anwendung“." + +#: editor/editor_node.cpp +msgid "" +"Selected scene '%s' is not a scene file, select a valid one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" +"Die ausgewählte Szene ‚%s‘ ist keine gültige Datei für eine Szene.\n" +"Wähle eine gültige Szene in den Projekteinstellungen unter der Kategorie " +"„Anwendung“." + +#: editor/editor_node.cpp msgid "Save Layout" msgstr "Layout speichern" @@ -2243,6 +2527,19 @@ msgstr "Diese Szene abspielen" msgid "Close Tab" msgstr "Tab schließen" +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +msgid "Close Other Tabs" +msgstr "Andere Tabs schließen" + +#: editor/editor_node.cpp +msgid "Close Tabs to the Right" +msgstr "" + +#: editor/editor_node.cpp +#, fuzzy +msgid "Close All Tabs" +msgstr "Alle schließen" + #: editor/editor_node.cpp msgid "Switch Scene Tab" msgstr "Szenentab wechseln" @@ -2365,10 +2662,6 @@ msgstr "Projekt" msgid "Project Settings" msgstr "Projekteinstellungen" -#: editor/editor_node.cpp editor/project_export.cpp -msgid "Export" -msgstr "Exportieren" - #: editor/editor_node.cpp editor/plugins/tile_set_editor_plugin.cpp msgid "Tools" msgstr "Werkzeuge" @@ -2378,6 +2671,10 @@ msgid "Open Project Data Folder" msgstr "Projektdatenordner öffnen" #: editor/editor_node.cpp +msgid "Install Android Build Template" +msgstr "" + +#: editor/editor_node.cpp msgid "Quit to Project List" msgstr "Verlasse zur Projektverwaltung" @@ -2502,6 +2799,11 @@ msgstr "Editor-Dateiverzeichnis öffnen" msgid "Open Editor Settings Folder" msgstr "Editoreinstellungenordner öffnen" +#: editor/editor_node.cpp +#, fuzzy +msgid "Manage Editor Features" +msgstr "Verwalte Exportvorlagen" + #: editor/editor_node.cpp editor/project_export.cpp msgid "Manage Export Templates" msgstr "Verwalte Exportvorlagen" @@ -2514,6 +2816,7 @@ msgstr "Hilfe" #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp #: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp #: editor/project_settings_editor.cpp editor/rename_dialog.cpp msgid "Search" msgstr "Suchen" @@ -2603,11 +2906,6 @@ msgstr "Änderungen aktualisieren" msgid "Disable Update Spinner" msgstr "Update-Anzeigerad deaktivieren" -#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp -#: editor/project_manager.cpp -msgid "Import" -msgstr "Import" - #: editor/editor_node.cpp msgid "FileSystem" msgstr "Dateisystem" @@ -2633,6 +2931,28 @@ msgid "Don't Save" msgstr "Nicht speichern" #: editor/editor_node.cpp +msgid "Android build template is missing, please install relevant templates." +msgstr "" + +#: editor/editor_node.cpp +#, fuzzy +msgid "Manage Templates" +msgstr "Verwalte Exportvorlagen" + +#: editor/editor_node.cpp +msgid "" +"This will install the Android project for custom builds.\n" +"Note that, in order to use it, it needs to be enabled per export preset." +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"Android build template is already installed and it won't be overwritten.\n" +"Remove the \"build\" directory manually before attempting this operation " +"again." +msgstr "" + +#: editor/editor_node.cpp msgid "Import Templates From ZIP File" msgstr "Vorlagen aus ZIP-Datei importieren" @@ -2755,10 +3075,6 @@ msgid "Physics Frame %" msgstr "Physik-relative Renderzeit %" #: editor/editor_profiler.cpp -msgid "Time:" -msgstr "Zeit:" - -#: editor/editor_profiler.cpp msgid "Inclusive" msgstr "Gesamt" @@ -2902,10 +3218,6 @@ msgid "Remove Item" msgstr "Entferne Element" #: editor/editor_run_native.cpp -msgid "Select device from the list" -msgstr "Gerät aus Liste auswählen" - -#: editor/editor_run_native.cpp msgid "" "No runnable export preset found for this platform.\n" "Please add a runnable preset in the export menu." @@ -2941,6 +3253,10 @@ msgstr "Hast du die '_run' Methode vergessen?" msgid "Select Node(s) to Import" msgstr "Selektiere Node(s) für den Import" +#: editor/editor_sub_scene.cpp editor/project_manager.cpp +msgid "Browse" +msgstr "Durchsuchen" + #: editor/editor_sub_scene.cpp msgid "Scene Path:" msgstr "Szenenpfad:" @@ -3107,6 +3423,11 @@ msgid "SSL Handshake Error" msgstr "SSL-Handshake-Fehler" #: editor/export_template_manager.cpp +#, fuzzy +msgid "Uncompressing Android Build Sources" +msgstr "Inhalte werden entpackt" + +#: editor/export_template_manager.cpp msgid "Current Version:" msgstr "Aktuelle Version:" @@ -3123,7 +3444,8 @@ msgid "Remove Template" msgstr "Entferne Vorlage" #: editor/export_template_manager.cpp -msgid "Select template file" +#, fuzzy +msgid "Select Template File" msgstr "Vorlagendatei wählen" #: editor/export_template_manager.cpp @@ -3184,7 +3506,8 @@ msgid "No name provided." msgstr "Kein Name angegeben." #: editor/filesystem_dock.cpp -msgid "Provided name contains invalid characters" +#, fuzzy +msgid "Provided name contains invalid characters." msgstr "Angegebener Name enthält ungültige Zeichen" #: editor/filesystem_dock.cpp @@ -3212,19 +3535,27 @@ msgid "Duplicating folder:" msgstr "Dupliziere Ordner:" #: editor/filesystem_dock.cpp -msgid "Open Scene(s)" -msgstr "Szene(n) öffnen" +#, fuzzy +msgid "New Inherited Scene" +msgstr "Neue geerbte Szene..." + +#: editor/filesystem_dock.cpp +#, fuzzy +msgid "Open Scenes" +msgstr "Szene öffnen" #: editor/filesystem_dock.cpp msgid "Instance" msgstr "Instanz" #: editor/filesystem_dock.cpp -msgid "Add to favorites" +#, fuzzy +msgid "Add to Favorites" msgstr "Zu Favoriten hinzufügen" #: editor/filesystem_dock.cpp -msgid "Remove from favorites" +#, fuzzy +msgid "Remove from Favorites" msgstr "Aus Favoriten entfernen" #: editor/filesystem_dock.cpp @@ -3255,11 +3586,13 @@ msgstr "Neues Skript..." msgid "New Resource..." msgstr "Neue Ressource..." -#: editor/filesystem_dock.cpp editor/script_editor_debugger.cpp +#: editor/filesystem_dock.cpp editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_editor_debugger.cpp msgid "Expand All" msgstr "Alle ausklappen" -#: editor/filesystem_dock.cpp editor/script_editor_debugger.cpp +#: editor/filesystem_dock.cpp editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_editor_debugger.cpp msgid "Collapse All" msgstr "Alle einklappen" @@ -3271,19 +3604,22 @@ msgid "Rename" msgstr "Umbenennen" #: editor/filesystem_dock.cpp -msgid "Previous Directory" -msgstr "Vorheriges Verzeichnis" +#, fuzzy +msgid "Previous Folder/File" +msgstr "Vorheriger Ordner" #: editor/filesystem_dock.cpp -msgid "Next Directory" -msgstr "Nächstes Verzeichnis" +#, fuzzy +msgid "Next Folder/File" +msgstr "Nächster Ordner" #: editor/filesystem_dock.cpp msgid "Re-Scan Filesystem" msgstr "Dateisystem erneut einlesen" #: editor/filesystem_dock.cpp -msgid "Toggle split mode" +#, fuzzy +msgid "Toggle Split Mode" msgstr "Geteilten Modus umschalten" #: editor/filesystem_dock.cpp @@ -3316,7 +3652,7 @@ msgstr "Überschreiben" msgid "Create Script" msgstr "Erstelle Skript" -#: editor/find_in_files.cpp +#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp msgid "Find in Files" msgstr "In Dateien suchen" @@ -3332,6 +3668,12 @@ msgstr "Verzeichnis:" msgid "Filters:" msgstr "Filter:" +#: editor/find_in_files.cpp +msgid "" +"Include the files with the following extensions. Add or remove them in " +"ProjectSettings." +msgstr "" + #: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp msgid "Find..." @@ -3771,7 +4113,8 @@ msgid "Open Animation Node" msgstr "Animations-Node öffnen" #: editor/plugins/animation_blend_space_2d_editor.cpp -msgid "Triangle already exists" +#, fuzzy +msgid "Triangle already exists." msgstr "Dreieck existiert bereits" #: editor/plugins/animation_blend_space_2d_editor.cpp @@ -3846,7 +4189,6 @@ msgid "Node Moved" msgstr "Node verschoben" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Unable to connect, port may be in use or connection may be invalid." msgstr "" "Verbindung nicht möglich, Port ist eventuell bereits in Benutzung oder " @@ -3919,7 +4261,8 @@ msgid "Edit Filtered Tracks:" msgstr "Gefilterte Spuren bearbeiten:" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -msgid "Enable filtering" +#, fuzzy +msgid "Enable Filtering" msgstr "Filtern aktivieren" #: editor/plugins/animation_player_editor_plugin.cpp @@ -3962,7 +4305,7 @@ msgstr "Animation umbenennen" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Blend Next Changed" -msgstr "Überblende nächste Bearbeitung" +msgstr "Überblende nächste Änderung" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Change Blend Time" @@ -4034,10 +4377,6 @@ msgid "Animation" msgstr "Animation" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "New" -msgstr "Neu" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Edit Transitions..." msgstr "Übergänge bearbeiten..." @@ -4054,14 +4393,15 @@ msgid "Autoplay on Load" msgstr "Beim Laden automatisch abspielen" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Onion Skinning" -msgstr "Zwiebelhaut" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Enable Onion Skinning" msgstr "Zwiebelhaut aktivieren" #: editor/plugins/animation_player_editor_plugin.cpp +#, fuzzy +msgid "Onion Skinning Options" +msgstr "Zwiebelhaut" + +#: editor/plugins/animation_player_editor_plugin.cpp msgid "Directions" msgstr "Richtungen" @@ -4611,10 +4951,6 @@ msgid "Move CanvasItem" msgstr "CanvasItem verschieben" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Presets for the anchors and margins values of a Control node." -msgstr "Voreinstellungen für die Anker- und Ränderwerte eines Kontroll-Nodes." - -#: editor/plugins/canvas_item_editor_plugin.cpp msgid "" "Children of containers have their anchors and margins values overridden by " "their parent." @@ -4623,6 +4959,16 @@ msgstr "" "überschrieben." #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Presets for the anchors and margins values of a Control node." +msgstr "Voreinstellungen für die Anker- und Ränderwerte eines Kontroll-Nodes." + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"When active, moving Control nodes changes their anchors instead of their " +"margins." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Anchors only" msgstr "nur Anker" @@ -4635,10 +4981,52 @@ msgid "Change Anchors" msgstr "Ankerpunkte ändern" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Lock Selected" +msgstr "Werkzeugauswahl" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Unlock Selected" +msgstr "Ausgewähltes löschen" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Group Selected" +msgstr "Auswahl kopieren" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Ungroup Selected" +msgstr "Auswahl kopieren" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Paste Pose" msgstr "Pose einfügen" #: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Create Custom Bone(s) from Node(s)" +msgstr "Erstelle eigenständige(n) Knochen aus Node(s)" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Clear Bones" +msgstr "Pose zurücksetzen" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Make IK Chain" +msgstr "IK-Kette erzeugen" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Clear IK Chain" +msgstr "IK-Kette zurücksetzen" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "" "Warning: Children of a container get their position and size determined only " "by their parent." @@ -4717,7 +5105,8 @@ msgid "Snapping Options" msgstr "Einrasteinstellungen" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to grid" +#, fuzzy +msgid "Snap to Grid" msgstr "Am Gitter einrasten" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4738,31 +5127,38 @@ msgid "Use Pixel Snap" msgstr "Pixelraster benutzen" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Smart snapping" +#, fuzzy +msgid "Smart Snapping" msgstr "Intelligentes Einrasten" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to parent" +#, fuzzy +msgid "Snap to Parent" msgstr "An Elternobjekt einrasten" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node anchor" +#, fuzzy +msgid "Snap to Node Anchor" msgstr "Am Node-Anker einrasten" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node sides" +#, fuzzy +msgid "Snap to Node Sides" msgstr "An Node-Seiten einrasten" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node center" +#, fuzzy +msgid "Snap to Node Center" msgstr "Am Node-Mittelpunkt einrasten" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to other nodes" +#, fuzzy +msgid "Snap to Other Nodes" msgstr "An anderen Nodes einrasten" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to guides" +#, fuzzy +msgid "Snap to Guides" msgstr "An Hilfslinien einrasten" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4777,10 +5173,12 @@ msgid "Unlock the selected object (can be moved)." msgstr "Das ausgewählte Objekt entsperren (kann bewegt werden)." #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Makes sure the object's children are not selectable." msgstr "Verhindert das Auswählen von Unterobjekten dieses Nodes." #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Restores the object's children's ability to be selected." msgstr "Macht Unterobjekte dieses Objekts wieder auswählbar." @@ -4793,14 +5191,6 @@ msgid "Show Bones" msgstr "Knochen anzeigen" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Make IK Chain" -msgstr "IK-Kette erzeugen" - -#: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Clear IK Chain" -msgstr "IK-Kette zurücksetzen" - -#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Make Custom Bone(s) from Node(s)" msgstr "Erstelle eigenständige(n) Knochen aus Node(s)" @@ -4851,25 +5241,25 @@ msgid "Frame Selection" msgstr "Auswahl einrahmen" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Layout" -msgstr "Layout" +#, fuzzy +msgid "Preview Canvas Scale" +msgstr "Zeige Atlas-Vorschau" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Translation mask for inserting keys." -msgstr "" +msgstr "Verschiebungsmaske für Schlüsselbildeingabe." #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Rotation mask for inserting keys." -msgstr "" +msgstr "Rotationsmaske für Schlüsselbildeingabe." #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Scale mask for inserting keys." -msgstr "" +msgstr "Skalierungsmaske für Schlüsselbildeingabe." #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Insert keys (based on mask)." -msgstr "Schlüsselbilder einfügen (Einfg)" +msgstr "Schlüsselbilder einfügen (basierend auf Maske)." #: editor/plugins/canvas_item_editor_plugin.cpp msgid "" @@ -4878,11 +5268,15 @@ msgid "" "Keys are only added to existing tracks, no new tracks will be created.\n" "Keys must be inserted manually for the first time." msgstr "" +"Füge automatisiert Schlüsselbilder ein wenn Objekte verschoben, rotiert oder " +"skaliert werden (basierend auf Maske).\n" +"Schlüsselbilder werden nur in existierende Spuren eingefügt, es werden keine " +"neuen Spuren angelegt.\n" +"Das erste mal müssen Schlüsselbilder manuell eingefügt werden." #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Auto Insert Key" -msgstr "Schlüsselbild einfügen" +msgstr "Schlüsselbild automatisch einfügen" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Insert Key (Existing Tracks)" @@ -4905,6 +5299,11 @@ msgid "Divide grid step by 2" msgstr "Gitterstufe halbieren" #: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Pan View" +msgstr "Sicht von hinten" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Add %s" msgstr "%s hinzufügen" @@ -4927,7 +5326,8 @@ msgid "Error instancing scene from %s" msgstr "Fehler beim Instanziieren von %s" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Change default type" +#, fuzzy +msgid "Change Default Type" msgstr "Standardtyp ändern" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -5015,20 +5415,22 @@ msgid "Create Emission Points From Node" msgstr "Erzeuge Emissionspunkte aus Node" #: editor/plugins/curve_editor_plugin.cpp -msgid "Flat0" +#, fuzzy +msgid "Flat 0" msgstr "Flach0" #: editor/plugins/curve_editor_plugin.cpp -msgid "Flat1" +#, fuzzy +msgid "Flat 1" msgstr "Flach1" -#: editor/plugins/curve_editor_plugin.cpp -msgid "Ease in" -msgstr "Einspannen" +#: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp +msgid "Ease In" +msgstr "Einblenden" -#: editor/plugins/curve_editor_plugin.cpp -msgid "Ease out" -msgstr "Ausspannen" +#: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp +msgid "Ease Out" +msgstr "Ausblenden" #: editor/plugins/curve_editor_plugin.cpp msgid "Smoothstep" @@ -5047,23 +5449,28 @@ msgid "Load Curve Preset" msgstr "Kurvenvorlage laden" #: editor/plugins/curve_editor_plugin.cpp -msgid "Add point" +#, fuzzy +msgid "Add Point" msgstr "Punkt hinzufügen" #: editor/plugins/curve_editor_plugin.cpp -msgid "Remove point" +#, fuzzy +msgid "Remove Point" msgstr "Punkt entfernen" #: editor/plugins/curve_editor_plugin.cpp -msgid "Left linear" +#, fuzzy +msgid "Left Linear" msgstr "Links linear" #: editor/plugins/curve_editor_plugin.cpp -msgid "Right linear" +#, fuzzy +msgid "Right Linear" msgstr "Rechts linear" #: editor/plugins/curve_editor_plugin.cpp -msgid "Load preset" +#, fuzzy +msgid "Load Preset" msgstr "Vorlage laden" #: editor/plugins/curve_editor_plugin.cpp @@ -5119,11 +5526,17 @@ msgid "This doesn't work on scene root!" msgstr "Das geht nicht an der Wurzel der Szene!" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Trimesh Shape" +#, fuzzy +msgid "Create Trimesh Static Shape" msgstr "Trimesh-Form erzeugen" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Shape" +msgid "Failed creating shapes!" +msgstr "" + +#: editor/plugins/mesh_instance_editor_plugin.cpp +#, fuzzy +msgid "Create Convex Shape(s)" msgstr "Konvexe Form erstellen" #: editor/plugins/mesh_instance_editor_plugin.cpp @@ -5177,15 +5590,12 @@ msgid "Create Trimesh Static Body" msgstr "Statischen Trimesh-Körper erzeugen" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Static Body" -msgstr "Statischen Konvex-Körper erzeugen" - -#: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Trimesh Collision Sibling" msgstr "Trimesh-Kollisionselement erzeugen" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Collision Sibling" +#, fuzzy +msgid "Create Convex Collision Sibling(s)" msgstr "Konvexes Kollisionselement erzeugen" #: editor/plugins/mesh_instance_editor_plugin.cpp @@ -5340,6 +5750,11 @@ msgid "Create Navigation Polygon" msgstr "Erzeuge Navigationspolygon" #: editor/plugins/particles_2d_editor_plugin.cpp +#: editor/plugins/particles_editor_plugin.cpp +msgid "Convert to CPUParticles" +msgstr "Zu CPU-Partikeln konvertieren" + +#: editor/plugins/particles_2d_editor_plugin.cpp msgid "Generating Visibility Rect" msgstr "Generiere Sichtbarkeits-Rechteck" @@ -5355,11 +5770,6 @@ msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp #: editor/plugins/particles_editor_plugin.cpp -msgid "Convert to CPUParticles" -msgstr "Zu CPU-Partikeln konvertieren" - -#: editor/plugins/particles_2d_editor_plugin.cpp -#: editor/plugins/particles_editor_plugin.cpp msgid "Generation Time (sec):" msgstr "Erzeugungszeit (s):" @@ -5497,7 +5907,7 @@ msgstr "Kurve schließen" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp editor/plugins/theme_editor_plugin.cpp -#: editor/project_export.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_export.cpp msgid "Options" msgstr "Optionen" @@ -5548,7 +5958,8 @@ msgid "Split Segment (in curve)" msgstr "Segment aufteilen (in Kurve)" #: editor/plugins/physical_bone_plugin.cpp -msgid "Move joint" +#, fuzzy +msgid "Move Joint" msgstr "Gelenk verschieben" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5788,7 +6199,6 @@ msgid "Open in Editor" msgstr "Im Editor öffnen" #: editor/plugins/resource_preloader_editor_plugin.cpp -#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Load Resource" msgstr "Ressource laden" @@ -5874,9 +6284,13 @@ msgid "Save Theme As..." msgstr "Motiv speichern als..." #: editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "%s Class Reference" -msgstr " Klassenreferenz" +msgstr "%s Klassenreferenz" + +#: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp +msgid "Find Next" +msgstr "Finde Nächstes" #: editor/plugins/script_editor_plugin.cpp msgid "Toggle alphabetical sorting of the method list." @@ -5959,10 +6373,6 @@ msgstr "Dokumentation schließen" msgid "Close All" msgstr "Alle schließen" -#: editor/plugins/script_editor_plugin.cpp -msgid "Close Other Tabs" -msgstr "Andere Tabs schließen" - #: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp msgid "Run" msgstr "Ausführen" @@ -5971,11 +6381,6 @@ msgstr "Ausführen" msgid "Toggle Scripts Panel" msgstr "Seitenleiste umschalten" -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/script_text_editor.cpp -msgid "Find Next" -msgstr "Finde Nächstes" - #: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp msgid "Step Over" msgstr "Überspringen" @@ -6002,7 +6407,8 @@ msgid "Debug with External Editor" msgstr "Mit externem Editor debuggen" #: editor/plugins/script_editor_plugin.cpp -msgid "Open Godot online documentation" +#, fuzzy +msgid "Open Godot online documentation." msgstr "Öffne Godot-Referenzdokumentation" #: editor/plugins/script_editor_plugin.cpp @@ -6010,7 +6416,8 @@ msgid "Request Docs" msgstr "Dokumentation anfragen" #: editor/plugins/script_editor_plugin.cpp -msgid "Help improve the Godot documentation by giving feedback" +#, fuzzy +msgid "Help improve the Godot documentation by giving feedback." msgstr "Die Godot-Dokumentation durch Meinungsäußerung verbessern" #: editor/plugins/script_editor_plugin.cpp @@ -6038,10 +6445,12 @@ msgstr "" "Wie soll weiter vorgegangen werden?:" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp msgid "Reload" msgstr "Neu laden" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp msgid "Resave" msgstr "Erneut speichern" @@ -6054,6 +6463,31 @@ msgid "Search Results" msgstr "Suchergebnisse" #: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Connections to method:" +msgstr "Mit Node verbinden:" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Source" +msgstr "Quelle:" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Signal" +msgstr "Signale" + +#: editor/plugins/script_text_editor.cpp +msgid "Target" +msgstr "Ziel" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "" +"Missing connected method '%s' for signal '%s' from node '%s' to node '%s'." +msgstr "Nichts ist mit dem Eingang ‚%s‘ von Node ‚%s‘ verbunden." + +#: editor/plugins/script_text_editor.cpp msgid "Line" msgstr "Zeile" @@ -6065,10 +6499,6 @@ msgstr "(ignorieren)" msgid "Go to Function" msgstr "Springe zu Funktion" -#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp -msgid "Standard" -msgstr "Standard" - #: editor/plugins/script_text_editor.cpp msgid "Only resources from filesystem can be dropped." msgstr "Nur Ressourcen aus dem Dateisystem können hier fallen gelassen werden." @@ -6101,6 +6531,11 @@ msgstr "Kapitalisiere" msgid "Syntax Highlighter" msgstr "Syntaxhervorhebung" +#: editor/plugins/script_text_editor.cpp +#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp +msgid "Bookmarks" +msgstr "" + #: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" @@ -6128,6 +6563,26 @@ msgid "Toggle Comment" msgstr "Kommentar umschalten" #: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Toggle Bookmark" +msgstr "Freie Kamera umschalten" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Go to Next Bookmark" +msgstr "Springe zum nächsten Haltepunkt" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Go to Previous Bookmark" +msgstr "Springe zum vorigen Haltepunkt" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Remove All Bookmarks" +msgstr "Alle Elemente entfernen" + +#: editor/plugins/script_text_editor.cpp msgid "Fold/Unfold Line" msgstr "Zeile ein/aufklappen" @@ -6201,6 +6656,15 @@ msgid "Contextual Help" msgstr "Kontexthilfe" #: editor/plugins/shader_editor_plugin.cpp +#, fuzzy +msgid "" +"This shader has been modified on on disk.\n" +"What action should be taken?" +msgstr "" +"Die folgenden Dateien wurden im Dateisystem verändert.\n" +"Wie soll weiter vorgegangen werden?:" + +#: editor/plugins/shader_editor_plugin.cpp msgid "Shader" msgstr "Shader" @@ -6546,7 +7010,8 @@ msgid "Right View" msgstr "Sicht von rechts" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Switch Perspective/Orthogonal view" +#, fuzzy +msgid "Switch Perspective/Orthogonal View" msgstr "Wechsle zwischen perspektivischer und orthogonaler Sicht" #: editor/plugins/spatial_editor_plugin.cpp @@ -6586,11 +7051,13 @@ msgid "Toggle Freelook" msgstr "Freie Kamera umschalten" #: editor/plugins/spatial_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Transform" msgstr "Transformation" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Snap object to floor" +#, fuzzy +msgid "Snap Object to Floor" msgstr "Objekt am Boden einrasten" #: editor/plugins/spatial_editor_plugin.cpp @@ -6703,24 +7170,20 @@ msgid "Nameless gizmo" msgstr "Namenloser Anfasser" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy msgid "Create Mesh2D" -msgstr "2D-Mesh erzeugen" +msgstr "Mesh2D erzeugen" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy msgid "Create Polygon2D" -msgstr "Polygon3D erstellen" +msgstr "Polygon2D erzeugen" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy msgid "Create CollisionPolygon2D" -msgstr "Kollisionspolygon erzeugen" +msgstr "CollisionPolygon2D erzeugen" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy msgid "Create LightOccluder2D" -msgstr "Occluder-Polygon erzeugen" +msgstr "LightOccluder2D erzeugen" #: editor/plugins/sprite_editor_plugin.cpp msgid "Sprite is empty!" @@ -6737,43 +7200,36 @@ msgid "Invalid geometry, can't replace by mesh." msgstr "Ungültige Geometrie, Mesh kann nicht ersetzt werden." #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy -msgid "Invalid geometry, can't create polygon." -msgstr "Ungültige Geometrie, Mesh kann nicht ersetzt werden." +msgid "Convert to Mesh2D" +msgstr "Zu Mesh2D umwandeln" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy -msgid "Invalid geometry, can't create collision polygon." -msgstr "Ungültige Geometrie, Mesh kann nicht ersetzt werden." +msgid "Invalid geometry, can't create polygon." +msgstr "Ungültige Geometrie, Polygon kann nicht erzeugt werden." #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy -msgid "Invalid geometry, can't create light occluder." -msgstr "Ungültige Geometrie, Mesh kann nicht ersetzt werden." +msgid "Convert to Polygon2D" +msgstr "Zu Polygon2D umwandeln" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Sprite" -msgstr "Sprite" +msgid "Invalid geometry, can't create collision polygon." +msgstr "Ungültige Geometrie, Kollisionspolygon kann nicht erzeugt werden." #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy -msgid "Convert to Mesh2D" -msgstr "Zu 2D-Mesh umwandeln" +msgid "Create CollisionPolygon2D Sibling" +msgstr "CollisionPolygon2D-Nachbarn erzeugen" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy -msgid "Convert to Polygon2D" -msgstr "Polygon verschieben" +msgid "Invalid geometry, can't create light occluder." +msgstr "Ungültige Geometrie, Light-Occluder kann nicht erzeugt werden." #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy -msgid "Create CollisionPolygon2D Sibling" -msgstr "Kollisionspolygon erzeugen" +msgid "Create LightOccluder2D Sibling" +msgstr "LightOccluder2D erzeugen" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy -msgid "Create LightOccluder2D Sibling" -msgstr "Occluder-Polygon erzeugen" +msgid "Sprite" +msgstr "Sprite" #: editor/plugins/sprite_editor_plugin.cpp msgid "Simplification: " @@ -6792,14 +7248,24 @@ msgid "Settings:" msgstr "Einstellungen:" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "ERROR: Couldn't load frame resource!" -msgstr "Fehler: Konnte Frame-Ressource nicht laden!" +#, fuzzy +msgid "No Frames Selected" +msgstr "Auswahl einrahmen" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Add %d Frame(s)" +msgstr "Frame hinzufügen" #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Add Frame" msgstr "Frame hinzufügen" #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "ERROR: Couldn't load frame resource!" +msgstr "Fehler: Konnte Frame-Ressource nicht laden!" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Resource clipboard is empty or not a texture!" msgstr "Zwischenablage der Ressourcen ist leer oder enthält keine Textur!" @@ -6840,6 +7306,15 @@ msgid "Animation Frames:" msgstr "Animationsbilder:" #: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Add a Texture from File" +msgstr "Textur(en) zu TileSet hinzufügen." + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Add Frames from a Sprite Sheet" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Insert Empty (Before)" msgstr "Empty einfügen (davor)" @@ -6856,6 +7331,31 @@ msgid "Move (After)" msgstr "Dahinter bewegen" #: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Select Frames" +msgstr "Aufrufsverlauf" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Horizontal:" +msgstr "Horizontal spiegeln" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Vertical:" +msgstr "Vertices" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Select/Clear All Frames" +msgstr "Alles auswählen" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Create Frames from Sprite Sheet" +msgstr "Von Szene erstellen" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "SpriteFrames" msgstr "Sprite-Einzelbilder" @@ -6920,12 +7420,13 @@ msgstr "Alle hinzufügen" msgid "Remove All Items" msgstr "Alle Elemente entfernen" -#: editor/plugins/theme_editor_plugin.cpp +#: editor/plugins/theme_editor_plugin.cpp editor/project_manager.cpp msgid "Remove All" msgstr "Alles entfernen" #: editor/plugins/theme_editor_plugin.cpp -msgid "Edit theme..." +#, fuzzy +msgid "Edit Theme" msgstr "Thema bearbeiten..." #: editor/plugins/theme_editor_plugin.cpp @@ -6953,18 +7454,25 @@ msgid "Create From Current Editor Theme" msgstr "Aus derzeitigem Editor-Thema erstellen" #: editor/plugins/theme_editor_plugin.cpp -msgid "CheckBox Radio1" -msgstr "Kontrollkasten Radio1" +#, fuzzy +msgid "Toggle Button" +msgstr "Maustaste" #: editor/plugins/theme_editor_plugin.cpp -msgid "CheckBox Radio2" -msgstr "Kontrollkasten Radio2" +#, fuzzy +msgid "Disabled Button" +msgstr "Mittlere Taste" #: editor/plugins/theme_editor_plugin.cpp msgid "Item" msgstr "Element" #: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Disabled Item" +msgstr "Deaktiviert" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Check Item" msgstr "Überprüfe Element" @@ -6981,6 +7489,24 @@ msgid "Checked Radio Item" msgstr "Markiertes Element der Auswahl" #: editor/plugins/theme_editor_plugin.cpp +msgid "Named Sep." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Submenu" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Item 1" +msgstr "Element" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Item 2" +msgstr "Element" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Has" msgstr "Enthält" @@ -6989,8 +7515,9 @@ msgid "Many" msgstr "Viele" #: editor/plugins/theme_editor_plugin.cpp -msgid "Has,Many,Options" -msgstr "Hat,Mehrere,Einstellungen" +#, fuzzy +msgid "Disabled LineEdit" +msgstr "Deaktiviert" #: editor/plugins/theme_editor_plugin.cpp msgid "Tab 1" @@ -7005,6 +7532,19 @@ msgid "Tab 3" msgstr "Tab 3" #: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Editable Item" +msgstr "bearbeitbare Unterobjekte" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Subtree" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Has,Many,Options" +msgstr "Hat,Mehrere,Einstellungen" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Data Type:" msgstr "Datentyp:" @@ -7037,6 +7577,7 @@ msgid "Fix Invalid Tiles" msgstr "Ungültige Kacheln reparieren" #: editor/plugins/tile_map_editor_plugin.cpp +#: modules/gridmap/grid_map_editor_plugin.cpp msgid "Cut Selection" msgstr "Auswahl ausschneiden" @@ -7077,35 +7618,52 @@ msgid "Mirror Y" msgstr "Y-Koordinaten spiegeln" #: editor/plugins/tile_map_editor_plugin.cpp +#, fuzzy +msgid "Disable Autotile" +msgstr "Autokacheln" + +#: editor/plugins/tile_map_editor_plugin.cpp +#, fuzzy +msgid "Enable Priority" +msgstr "Kachelpriorität bearbeiten" + +#: editor/plugins/tile_map_editor_plugin.cpp msgid "Paint Tile" msgstr "Kachel zeichnen" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Pick Tile" -msgstr "Wähle Kachel" +msgid "" +"Shift+RMB: Line Draw\n" +"Shift+Ctrl+RMB: Rectangle Paint" +msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Copy Selection" -msgstr "Auswahl kopieren" +msgid "Pick Tile" +msgstr "Wähle Kachel" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Rotate left" +#, fuzzy +msgid "Rotate Left" msgstr "Nach links rotieren" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Rotate right" +#, fuzzy +msgid "Rotate Right" msgstr "Nach rechts rotieren" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Flip horizontally" +#, fuzzy +msgid "Flip Horizontally" msgstr "Horizontal spiegeln" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Flip vertically" +#, fuzzy +msgid "Flip Vertically" msgstr "Vertikal spiegeln" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Clear transform" +#, fuzzy +msgid "Clear Transform" msgstr "Transform löschen" #: editor/plugins/tile_set_editor_plugin.cpp @@ -7141,6 +7699,46 @@ msgid "Select the previous shape, subtile, or Tile." msgstr "Die vorherige Form oder Kachel auswählen." #: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Region Mode" +msgstr "Ausführungsmodus:" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Collision Mode" +msgstr "Interpolationsmodus" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Occlusion Mode" +msgstr "Occlusion-Polygon bearbeiten" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Navigation Mode" +msgstr "Navigations-Mesh erzeugen" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Bitmask Mode" +msgstr "Rotationsmodus" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Priority Mode" +msgstr "Export-Modus:" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Icon Mode" +msgstr "Schwenkmodus" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Z Index Mode" +msgstr "Schwenkmodus" + +#: editor/plugins/tile_set_editor_plugin.cpp msgid "Copy bitmask." msgstr "Bitmaske kopieren." @@ -7225,9 +7823,11 @@ msgid "Delete polygon." msgstr "Polygon löschen." #: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy msgid "" "LMB: Set bit on.\n" "RMB: Set bit off.\n" +"Shift+LMB: Set wildcard bit.\n" "Click on another Tile to edit it." msgstr "" "LMT: Bit anstellen.\n" @@ -7345,6 +7945,79 @@ msgid "TileSet" msgstr "TileSet" #: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Add input +" +msgstr "Eingang hinzufügen" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Add output +" +msgstr "Eingang hinzufügen" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar" +msgstr "Skalierung:" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector" +msgstr "Inspektor" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Add input port" +msgstr "Eingang hinzufügen" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add output port" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change input port type" +msgstr "Standardtyp ändern" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change output port type" +msgstr "Standardtyp ändern" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change input port name" +msgstr "Ändere Eingabename" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change output port name" +msgstr "Ändere Eingabename" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Remove input port" +msgstr "Punkt entfernen" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Remove output port" +msgstr "Punkt entfernen" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Set expression" +msgstr "Ausdruck ändern" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Resize VisualShader node" +msgstr "VisualShader" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Set Uniform Name" msgstr "Uniform-Name festlegen" @@ -7361,9 +8034,8 @@ msgid "Duplicate Nodes" msgstr "Nodes duplizieren" #: editor/plugins/visual_shader_editor_plugin.cpp -#, fuzzy msgid "Delete Nodes" -msgstr "Node löschen" +msgstr "Nodes löschen" #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Visual Shader Input Type Changed" @@ -7382,6 +8054,859 @@ msgid "Light" msgstr "Licht" #: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Create Shader Node" +msgstr "Erzeuge Node" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Color function." +msgstr "Springe zu Funktion" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Color operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Grayscale function." +msgstr "Funktion erstellen" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts HSV vector to RGB equivalent." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts RGB vector to HSV equivalent." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Sepia function." +msgstr "Funktion umbenennen" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Burn operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Darken operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Difference operator." +msgstr "nur Unterschiede" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Dodge operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "HardLight operator" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Lighten operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Overlay operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Screen operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "SoftLight operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Color constant." +msgstr "Konstant" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Color uniform." +msgstr "Transform löschen" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns an associated vector if the provided scalars are equal, greater or " +"less." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns an associated vector if the provided boolean value is true or false." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Boolean constant." +msgstr "Ändere Vektorkonstante" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'camera' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'inv_camera' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'inv_projection' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'normal' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'projection' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'time' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'viewport_size' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'world' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'texture_pixel_size' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Input parameter." +msgstr "An Elternobjekt einrasten" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'binormal' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'fragcoord' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_coord' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_uv' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'side' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'tangent' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv2' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'vertex' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'view' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'albedo' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'attenuation' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'diffuse' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_color' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'roughness' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'specular' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'transmission' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'modelview' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_size' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'tangent' input parameter for vertex and fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_pass' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_coord' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_pixel_size' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_uv' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_alpha' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_height' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_uv' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_vec' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'normal' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'shadow_color' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'extra' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'projection' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'vertex' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'world' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'active' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'custom' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'custom_alpha' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'delta' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'emission_transform' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'index' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'lifetime' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'restart' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'time' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'transform' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'velocity' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar function." +msgstr "Ändere skalare Funktion" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar operator." +msgstr "Ändere skalaren Operator" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "E constant (2.718282). Represents the base of the natural logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Epsilon constant (0.00001). Smallest possible scalar number." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Phi constant (1.618034). Golden ratio." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi/4 constant (0.785398) or 45 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi/2 constant (1.570796) or 90 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi constant (3.141593) or 180 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Tau constant (6.283185) or 360 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Sqrt2 constant (1.414214). Square root of 2." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the absolute value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-tangent of the parameters." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Finds the nearest integer that is greater than or equal to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Constrains a value to lie between two further values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts a quantity in radians to degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-e Exponential." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-2 Exponential." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Finds the nearest integer less than or equal to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Computes the fractional part of the argument." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the inverse of the square root of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Natural logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-2 logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the greater of two values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the lesser of two values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Linear interpolation between two scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the opposite value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 - scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns the value of the first parameter raised to the power of the second." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts a quantity in degrees to radians." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 / scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the nearest integer to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the nearest even integer to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Clamps the value between 0.0 and 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Extracts the sign of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the square root of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( scalar(edge0), scalar(edge1), scalar(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if x is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( scalar(edge), scalar(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the truncated value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Adds scalar to scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Divides scalar by scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies scalar by scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the remainder of the two scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Subtracts scalar from scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar constant." +msgstr "Ändere skalare Konstante" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar uniform." +msgstr "Ändere Skalar-Uniform" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Perform the cubic texture lookup." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Perform the texture lookup." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Cubic texture uniform." +msgstr "Ändere Textur-Uniform" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "2D texture uniform." +msgstr "Ändere Textur-Uniform" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Transform function." +msgstr "Transformationsdialog..." + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) Calculate the outer product of a pair of vectors.\n" +"\n" +"OuterProduct treats the first parameter 'c' as a column vector (matrix with " +"one column) and the second parameter 'r' as a row vector (matrix with one " +"row) and does a linear algebraic matrix multiply 'c * r', yielding a matrix " +"whose number of rows is the number of components in 'c' and whose number of " +"columns is the number of components in 'r'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Composes transform from four vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Decomposes transform to four vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the determinant of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the inverse of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the transpose of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies transform by transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies vector by transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Transform constant." +msgstr "Transformation abgebrochen." + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Transform uniform." +msgstr "Transformation abgebrochen." + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector function." +msgstr "Zuweisung an Funktion." + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector operator." +msgstr "Ändere Vektoroperator" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Composes vector from three scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Decomposes vector to three scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the cross product of two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the distance between two points." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the dot product of two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns a vector that points in the same direction as a reference vector. " +"The function has three vector parameters : N, the vector to orient, I, the " +"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 "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the length of a vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Linear interpolation between two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the normalize product of vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 - vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 / vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns a vector that points in the direction of reflection ( a : incident " +"vector, b : normal vector )." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns a vector that points in the direction of refraction." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( vector(edge0), vector(edge1), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if 'x' is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( scalar(edge0), scalar(edge1), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if 'x' is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( vector(edge), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( scalar(edge), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Adds vector to vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Divides vector by vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies vector by vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the remainder of the two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Subtracts vector from vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector constant." +msgstr "Ändere Vektorkonstante" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector uniform." +msgstr "Zuweisung an Uniform." + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Custom Godot Shader Language expression, with custom amount of input and " +"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 "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns falloff based on the dot product of surface normal and view " +"direction of camera (pass associated inputs to it)." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) (Fragment/Light mode only) Scalar derivative function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) (Fragment/Light mode only) Vector derivative function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Derivative in 'x' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Derivative in 'x' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Derivative in 'y' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Derivative in 'y' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Sum of absolute derivative " +"in 'x' and 'y'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Sum of absolute derivative " +"in 'x' and 'y'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "VisualShader" msgstr "VisualShader" @@ -7578,6 +9103,10 @@ msgid "Directory already contains a Godot project." msgstr "Das Verzeichnis beinhaltet bereits ein Godot-Projekt." #: editor/project_manager.cpp +msgid "New Game Project" +msgstr "Neues Spiel" + +#: editor/project_manager.cpp msgid "Imported Project" msgstr "Importiertes Projekt" @@ -7627,10 +9156,6 @@ msgid "Rename Project" msgstr "Projekt umbenennen" #: editor/project_manager.cpp -msgid "New Game Project" -msgstr "Neues Spiel" - -#: editor/project_manager.cpp msgid "Import Existing Project" msgstr "Existierendes Projekt importieren" @@ -7659,10 +9184,6 @@ msgid "Project Name:" msgstr "Projektname:" #: editor/project_manager.cpp -msgid "Create folder" -msgstr "Ordner erstellen" - -#: editor/project_manager.cpp msgid "Project Path:" msgstr "Projektpfad:" @@ -7671,10 +9192,6 @@ msgid "Project Installation Path:" msgstr "Projektinstallationspfad:" #: editor/project_manager.cpp -msgid "Browse" -msgstr "Durchsuchen" - -#: editor/project_manager.cpp msgid "Renderer:" msgstr "Renderer:" @@ -7729,6 +9246,7 @@ msgid "Are you sure to open more than one project?" msgstr "Sollen wirklich mehrere Projekte geöffnet werden?" #: editor/project_manager.cpp +#, fuzzy msgid "" "The following project settings file does not specify the version of Godot " "through which it was created.\n" @@ -7737,8 +9255,8 @@ msgid "" "\n" "If you proceed with opening it, it will be converted to Godot's current " "configuration file format.\n" -"Warning: You will not be able to open the project with previous versions of " -"the engine anymore." +"Warning: You won't be able to open the project with previous versions of the " +"engine anymore." msgstr "" "Die folgenden Projekteinstellungsdatei enthält keine Information darüber, " "mit welcher Version von Godot sie erstellt wurde.\n" @@ -7751,6 +9269,7 @@ msgstr "" "älteren Version geöffnet werden." #: editor/project_manager.cpp +#, fuzzy msgid "" "The following project settings file was generated by an older engine " "version, and needs to be converted for this version:\n" @@ -7758,8 +9277,8 @@ msgid "" "%s\n" "\n" "Do you want to convert it?\n" -"Warning: You will not be able to open the project with previous versions of " -"the engine anymore." +"Warning: You won't be able to open the project with previous versions of the " +"engine anymore." msgstr "" "Die Projekteinstellungsdatei ist mit einer älteren Version erstellt worden " "und muss in die folgende Version konvertiert werden:\n" @@ -7779,9 +9298,10 @@ msgstr "" "sind nicht kompatibel mit der aktuell genutzten Version." #: editor/project_manager.cpp +#, fuzzy msgid "" "Can't run project: no main scene defined.\n" -"Please edit the project and set the main scene in \"Project Settings\" under " +"Please edit the project and set the main scene in the Project Settings under " "the \"Application\" category." msgstr "" "Projekt kann nicht ausgeführt werden: Keine Hauptszene festgelegt.\n" @@ -7798,28 +9318,52 @@ msgstr "" "Das Projekt muss eingestellt werden einen ersten Import einzuleiten." #: editor/project_manager.cpp -msgid "Are you sure to run more than one project?" +#, fuzzy +msgid "Are you sure to run %d projects at once?" msgstr "Sollen wirklich mehrere Projekte ausgeführt werden?" #: editor/project_manager.cpp -msgid "Remove project from the list? (Folder contents will not be modified)" +#, fuzzy +msgid "" +"Remove %d projects from the list?\n" +"The project folders' contents won't be modified." +msgstr "" +"Das Projekt aus der Liste entfernen? (Inhalte des Projektordners werden " +"nicht geändert)" + +#: editor/project_manager.cpp +#, fuzzy +msgid "" +"Remove this project from the list?\n" +"The project folder's contents won't be modified." msgstr "" "Das Projekt aus der Liste entfernen? (Inhalte des Projektordners werden " "nicht geändert)" #: editor/project_manager.cpp +#, fuzzy +msgid "" +"Remove all missing projects from the list? (Folders contents will not be " +"modified)" +msgstr "" +"Das Projekt aus der Liste entfernen? (Inhalte des Projektordners werden " +"nicht geändert)" + +#: editor/project_manager.cpp +#, fuzzy msgid "" "Language changed.\n" -"The UI will update next time the editor or project manager starts." +"The interface will update after restarting the editor or project manager." msgstr "" "Sprache geändert.\n" "Die Benutzeroberfläche wird beim nächsten Start des Editors oder der " "Projektverwaltung aktualisiert." #: editor/project_manager.cpp +#, fuzzy msgid "" -"You are about the scan %s folders for existing Godot projects. Do you " -"confirm?" +"Are you sure to scan %s folders for existing Godot projects?\n" +"This could take a while." msgstr "Sollen wirklich %s Ordner nach Godot-Projekten durchsucht werden?" #: editor/project_manager.cpp @@ -7843,6 +9387,11 @@ msgid "New Project" msgstr "Neues Projekt" #: editor/project_manager.cpp +#, fuzzy +msgid "Remove Missing" +msgstr "Punkt entfernen" + +#: editor/project_manager.cpp msgid "Templates" msgstr "Vorlagen" @@ -7859,9 +9408,10 @@ msgid "Can't run project" msgstr "Projekt kann nicht ausgeführt werden" #: editor/project_manager.cpp +#, fuzzy msgid "" -"You don't currently have any projects.\n" -"Would you like to explore the official example projects in the Asset Library?" +"You currently don't have any projects.\n" +"Would you like to explore official example projects in the Asset Library?" msgstr "" "Zur Zeit sind keine Projekte vorhanden.\n" "Sollen Beispielprojekte aus der Nutzerinhaltesammlung angezeigt werden?" @@ -7891,7 +9441,8 @@ msgstr "" "oder ‚\"‘ enthalten" #: editor/project_settings_editor.cpp -msgid "Action '%s' already exists!" +#, fuzzy +msgid "An action with the name '%s' already exists." msgstr "Aktion ‚%s‘ existiert bereits!" #: editor/project_settings_editor.cpp @@ -8047,10 +9598,6 @@ msgstr "" "oder ‚\"‘ enthalten." #: editor/project_settings_editor.cpp -msgid "Already existing" -msgstr "Existiert bereits" - -#: editor/project_settings_editor.cpp msgid "Add Input Action" msgstr "Füge Eingabeaktion hinzu" @@ -8115,7 +9662,8 @@ msgid "Override For..." msgstr "Überschreiben für..." #: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp -msgid "Editor must be restarted for changes to take effect" +#, fuzzy +msgid "The editor must be restarted for changes to take effect." msgstr "Damit Änderungen Wirkung zeigen muss der Editor neu gestartet werden" #: editor/project_settings_editor.cpp @@ -8175,11 +9723,13 @@ msgid "Locales Filter" msgstr "Sprachfilter" #: editor/project_settings_editor.cpp -msgid "Show all locales" +#, fuzzy +msgid "Show All Locales" msgstr "Alle Sprachen anzeigen" #: editor/project_settings_editor.cpp -msgid "Show only selected locales" +#, fuzzy +msgid "Show Selected Locales Only" msgstr "Nur ausgewählte Sprachen anzeigen" #: editor/project_settings_editor.cpp @@ -8195,14 +9745,6 @@ msgid "AutoLoad" msgstr "Autoload" #: editor/property_editor.cpp -msgid "Ease In" -msgstr "Einblenden" - -#: editor/property_editor.cpp -msgid "Ease Out" -msgstr "Ausblenden" - -#: editor/property_editor.cpp msgid "Zero" msgstr "Null" @@ -8276,7 +9818,8 @@ msgid "Suffix" msgstr "Suffix" #: editor/rename_dialog.cpp -msgid "Advanced options" +#, fuzzy +msgid "Advanced Options" msgstr "Erweiterte Einstellungen" #: editor/rename_dialog.cpp @@ -8540,8 +10083,9 @@ msgid "User Interface" msgstr "Benutzerschnittstelle" #: editor/scene_tree_dock.cpp -msgid "Custom Node" -msgstr "Selbst-erstelltes Node" +#, fuzzy +msgid "Other Node" +msgstr "Node löschen" #: editor/scene_tree_dock.cpp msgid "Can't operate on nodes from a foreign scene!" @@ -8584,7 +10128,8 @@ msgid "Clear Inheritance" msgstr "Leere Vererbung" #: editor/scene_tree_dock.cpp -msgid "Open documentation" +#, fuzzy +msgid "Open Documentation" msgstr "Dokumentation öffnen" #: editor/scene_tree_dock.cpp @@ -8611,7 +10156,7 @@ msgstr "Aus Szene zusammenführen" msgid "Save Branch as Scene" msgstr "Speichere Verzweigung als Szene" -#: editor/scene_tree_dock.cpp +#: editor/scene_tree_dock.cpp editor/script_editor_debugger.cpp msgid "Copy Node Path" msgstr "Node-Pfad kopieren" @@ -8656,6 +10201,21 @@ msgid "Toggle Visible" msgstr "Sichtbarkeit umschalten" #: editor/scene_tree_editor.cpp +#, fuzzy +msgid "Unlock Node" +msgstr "Node auswählen" + +#: editor/scene_tree_editor.cpp +#, fuzzy +msgid "Button Group" +msgstr "Taste 7" + +#: editor/scene_tree_editor.cpp +#, fuzzy +msgid "(Connecting From)" +msgstr "Verbindungsfehler" + +#: editor/scene_tree_editor.cpp msgid "Node configuration warning:" msgstr "Node-Konfigurationswarnung:" @@ -8683,8 +10243,9 @@ msgstr "" "Node ist in Gruppe(n).\n" "Hier klicken zur Gruppenverwaltung." -#: editor/scene_tree_editor.cpp editor/script_create_dialog.cpp -msgid "Open Script" +#: editor/scene_tree_editor.cpp +#, fuzzy +msgid "Open Script:" msgstr "Skript öffnen" #: editor/scene_tree_editor.cpp @@ -8737,71 +10298,83 @@ msgid "Select a Node" msgstr "Node auswählen" #: editor/script_create_dialog.cpp -msgid "Error loading template '%s'" -msgstr "Fehler beim Laden der Vorlage ‚%s‘" +#, fuzzy +msgid "Path is empty." +msgstr "Pfad ist leer" #: editor/script_create_dialog.cpp -msgid "Error - Could not create script in filesystem." -msgstr "Fehler - Skript konnte nicht im Dateisystem erstellt werden." +#, fuzzy +msgid "Filename is empty." +msgstr "Dateiname ist leer" #: editor/script_create_dialog.cpp -msgid "Error loading script from %s" -msgstr "Fehler beim Laden des Skripts von %s" +#, fuzzy +msgid "Path is not local." +msgstr "Pfad ist nicht lokal" #: editor/script_create_dialog.cpp -msgid "N/A" -msgstr "Nicht verfügbar" +#, fuzzy +msgid "Invalid base path." +msgstr "Ungültiger Pfad" #: editor/script_create_dialog.cpp -msgid "Open Script/Choose Location" -msgstr "Skript öffnen / Ort wählen" +#, fuzzy +msgid "A directory with the same name exists." +msgstr "Ein Verzeichnis mit gleichem Namen existiert bereits" #: editor/script_create_dialog.cpp -msgid "Path is empty" -msgstr "Pfad ist leer" +#, fuzzy +msgid "Invalid extension." +msgstr "Ungültige Erweiterung" #: editor/script_create_dialog.cpp -msgid "Filename is empty" -msgstr "Dateiname ist leer" +#, fuzzy +msgid "Wrong extension chosen." +msgstr "Falsche Erweiterung gewählt" #: editor/script_create_dialog.cpp -msgid "Path is not local" -msgstr "Pfad ist nicht lokal" +msgid "Error loading template '%s'" +msgstr "Fehler beim Laden der Vorlage ‚%s‘" #: editor/script_create_dialog.cpp -msgid "Invalid base path" -msgstr "Ungültiger Pfad" +msgid "Error - Could not create script in filesystem." +msgstr "Fehler - Skript konnte nicht im Dateisystem erstellt werden." #: editor/script_create_dialog.cpp -msgid "Directory of the same name exists" -msgstr "Ein Verzeichnis mit gleichem Namen existiert bereits" +msgid "Error loading script from %s" +msgstr "Fehler beim Laden des Skripts von %s" #: editor/script_create_dialog.cpp -msgid "File exists, will be reused" -msgstr "Datei existiert bereits, wird erneut verwendet" +msgid "N/A" +msgstr "Nicht verfügbar" #: editor/script_create_dialog.cpp -msgid "Invalid extension" -msgstr "Ungültige Erweiterung" +#, fuzzy +msgid "Open Script / Choose Location" +msgstr "Skript öffnen / Ort wählen" #: editor/script_create_dialog.cpp -msgid "Wrong extension chosen" -msgstr "Falsche Erweiterung gewählt" +msgid "Open Script" +msgstr "Skript öffnen" #: editor/script_create_dialog.cpp -msgid "Invalid Path" -msgstr "Ungültiger Pfad" +#, fuzzy +msgid "File exists, it will be reused." +msgstr "Datei existiert bereits, wird erneut verwendet" #: editor/script_create_dialog.cpp -msgid "Invalid class name" +#, fuzzy +msgid "Invalid class name." msgstr "Ungültiger Klassenname" #: editor/script_create_dialog.cpp -msgid "Invalid inherited parent name or path" +#, fuzzy +msgid "Invalid inherited parent name or path." msgstr "Ungültiger geerbter Name oder Pfad" #: editor/script_create_dialog.cpp -msgid "Script valid" +#, fuzzy +msgid "Script is valid." msgstr "Skript gültig" #: editor/script_create_dialog.cpp @@ -8809,15 +10382,18 @@ msgid "Allowed: a-z, A-Z, 0-9 and _" msgstr "Erlaubt: a-z, A-Z, 0-9 und _" #: editor/script_create_dialog.cpp -msgid "Built-in script (into scene file)" +#, fuzzy +msgid "Built-in script (into scene file)." msgstr "Eingebettetes Skript (in Szenedatei)" #: editor/script_create_dialog.cpp -msgid "Create new script file" +#, fuzzy +msgid "Will create a new script file." msgstr "Neue Skriptdatei erstellen" #: editor/script_create_dialog.cpp -msgid "Load existing script file" +#, fuzzy +msgid "Will load an existing script file." msgstr "Lade bestehende Skriptdatei" #: editor/script_create_dialog.cpp @@ -8948,6 +10524,10 @@ msgstr "Wurzel der Echtzeitbearbeitung:" msgid "Set From Tree" msgstr "Nach Szenenbaum einstellen" +#: editor/script_editor_debugger.cpp +msgid "Export measures as CSV" +msgstr "" + #: editor/settings_config_dialog.cpp msgid "Erase Shortcut" msgstr "Tastenkürzel entfernen" @@ -9077,6 +10657,15 @@ msgid "GDNativeLibrary" msgstr "GDNative-Bibliothek" #: 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 "Update-Anzeigerad deaktivieren" + +#: modules/gdnative/gdnative_library_singleton_editor.cpp msgid "Library" msgstr "Bibliothek" @@ -9163,8 +10752,9 @@ msgid "GridMap Fill Selection" msgstr "GridMap-Auswahl füllen" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "GridMap Duplicate Selection" -msgstr "GridMap-Auswahl duplizieren" +#, fuzzy +msgid "GridMap Paste Selection" +msgstr "GridMap-Auswahl löschen" #: modules/gridmap/grid_map_editor_plugin.cpp msgid "GridMap Paint" @@ -9231,18 +10821,6 @@ msgid "Cursor Clear Rotation" msgstr "Rotation am Mauszeiger zurücksetzen" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Create Area" -msgstr "Bereich erzeugen" - -#: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Create Exterior Connector" -msgstr "Exterior-Connector erstellen" - -#: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Erase Area" -msgstr "Bereich entfernen" - -#: modules/gridmap/grid_map_editor_plugin.cpp msgid "Clear Selection" msgstr "Auswahl leeren" @@ -9605,19 +11183,12 @@ msgid "Available Nodes:" msgstr "Verfügbare Nodes:" #: modules/visual_script/visual_script_editor.cpp -msgid "Select or create a function to edit graph" +#, fuzzy +msgid "Select or create a function to edit its graph." msgstr "" "Zum bearbeiten des Graphen muss eine Funktion ausgewählt oder erstellt weden" #: modules/visual_script/visual_script_editor.cpp -msgid "Edit Signal Arguments:" -msgstr "Signalparameter bearbeiten:" - -#: modules/visual_script/visual_script_editor.cpp -msgid "Edit Variable:" -msgstr "Variable bearbeiten:" - -#: modules/visual_script/visual_script_editor.cpp msgid "Delete Selected" msgstr "Ausgewähltes löschen" @@ -9751,6 +11322,19 @@ msgstr "" "konfiguriert." #: platform/android/export/export.cpp +msgid "Custom build requires a valid Android SDK path in Editor Settings." +msgstr "" + +#: platform/android/export/export.cpp +msgid "Invalid Android SDK path for custom build in Editor Settings." +msgstr "" + +#: platform/android/export/export.cpp +msgid "" +"Android project is not installed for compiling. Install from Editor menu." +msgstr "" + +#: platform/android/export/export.cpp msgid "Invalid public key for APK expansion." msgstr "Ungültiger öffentlicher Schlüssel für APK-Erweiterung." @@ -9758,6 +11342,34 @@ msgstr "Ungültiger öffentlicher Schlüssel für APK-Erweiterung." msgid "Invalid package name:" msgstr "Ungültiger Paketname:" +#: platform/android/export/export.cpp +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 "" +"Android build version mismatch:\n" +" Template installed: %s\n" +" Godot Version: %s\n" +"Please reinstall Android build template from 'Project' menu." +msgstr "" + +#: platform/android/export/export.cpp +msgid "Building Android Project (gradle)" +msgstr "" + +#: 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 "" + +#: platform/android/export/export.cpp +msgid "No build apk generated at: " +msgstr "" + #: platform/iphone/export/export.cpp msgid "Identifier is missing." msgstr "Bezeichner fehlt." @@ -10069,31 +11681,36 @@ msgid "ARVRCamera must have an ARVROrigin node as its parent" msgstr "ARVRCamera braucht ein ARVROrigin-Node als Überobjekt" #: scene/3d/arvr_nodes.cpp -msgid "ARVRController must have an ARVROrigin node as its parent" +#, fuzzy +msgid "ARVRController must have an ARVROrigin node as its parent." msgstr "ARVRController braucht ein ARVROrigin-Node als Überobjekt" #: scene/3d/arvr_nodes.cpp +#, fuzzy msgid "" -"The controller id must not be 0 or this controller will not be bound to an " -"actual controller" +"The controller ID must not be 0 or this controller won't be bound to an " +"actual controller." msgstr "" "Die Controller-ID sollte nicht null sein, sonst wird der Controller nicht an " "einen echten Controller gebunden" #: scene/3d/arvr_nodes.cpp -msgid "ARVRAnchor must have an ARVROrigin node as its parent" +#, fuzzy +msgid "ARVRAnchor must have an ARVROrigin node as its parent." msgstr "ARVRAnchor braucht ein ARVROrigin-Node als Überobjekt" #: scene/3d/arvr_nodes.cpp +#, fuzzy msgid "" -"The anchor id must not be 0 or this anchor will not be bound to an actual " -"anchor" +"The anchor ID must not be 0 or this anchor won't be bound to an actual " +"anchor." msgstr "" "Die Anker-ID darf nicht null sein, sonst wird der Anker nicht an einen " "echten Anker gebunden" #: scene/3d/arvr_nodes.cpp -msgid "ARVROrigin requires an ARVRCamera child node" +#, fuzzy +msgid "ARVROrigin requires an ARVRCamera child node." msgstr "ARVROrigin benötigt ein ARVRCamera-Unterobjekt" #: scene/3d/baked_lightmap.cpp @@ -10176,9 +11793,10 @@ msgid "Nothing is visible because no mesh has been assigned." msgstr "Nichts ist sichtbar da kein Mesh zugewiesen wurden." #: scene/3d/cpu_particles.cpp +#, fuzzy msgid "" -"CPUParticles animation requires the usage of a SpatialMaterial with " -"\"Billboard Particles\" enabled." +"CPUParticles animation requires the usage of a SpatialMaterial whose " +"Billboard Mode is set to \"Particle Billboard\"." msgstr "" "CPUParticles-Animationen benötigen ein SpatialMaterial mit der Eigenschaft " "„Billboard Particles“ aktiviert." @@ -10226,9 +11844,10 @@ msgstr "" "Nichts ist sichtbar da keine Meshe den Zeichendurchläufen zugewiesen wurden." #: scene/3d/particles.cpp +#, fuzzy msgid "" -"Particles animation requires the usage of a SpatialMaterial with \"Billboard " -"Particles\" enabled." +"Particles animation requires the usage of a SpatialMaterial whose Billboard " +"Mode is set to \"Particle Billboard\"." msgstr "" "Particles-Animationen benötigen ein SpatialMaterial mit der Eigenschaft " "„Billboard Particles“ aktiviert." @@ -10263,7 +11882,8 @@ msgid "Path property must point to a valid Spatial node to work." msgstr "Die Pfad-Eigenschaft muss auf ein gültiges Spatial-Node verweisen." #: scene/3d/soft_body.cpp -msgid "This body will be ignored until you set a mesh" +#, fuzzy +msgid "This body will be ignored until you set a mesh." msgstr "Diese Körper wird ignoriert werden bis ein Mesh gesetzt wurde" #: scene/3d/soft_body.cpp @@ -10377,10 +11997,11 @@ msgid "Add current color as a preset." msgstr "Aktuelle Farbe als Vorlage hinzufügen." #: scene/gui/container.cpp +#, fuzzy msgid "" "Container by itself serves no purpose unless a script configures it's " "children placement behavior.\n" -"If you dont't intend to add a script, then please use a plain 'Control' node " +"If you don't intend to add a script, then please use a plain 'Control' node " "instead." msgstr "" "Einfache Container sind unnötig solange ihnen kein Skript angehängt ist das " @@ -10396,10 +12017,6 @@ msgstr "Warnung!" msgid "Please Confirm..." msgstr "Bitte bestätigen..." -#: scene/gui/file_dialog.cpp -msgid "Go to parent folder." -msgstr "Gehe zu übergeordnetem Ordner." - #: scene/gui/popup.cpp msgid "" "Popups will hide by default unless you call popup() or any of the popup*() " @@ -10488,6 +12105,76 @@ msgstr "Zuweisung an Uniform." msgid "Varyings can only be assigned in vertex function." msgstr "Varyings können nur in Vertex-Funktion zugewiesen werden." +#: servers/visual/shader_language.cpp +msgid "Constants cannot be modified." +msgstr "" + +#~ msgid "Path to Node:" +#~ msgstr "Pfad zum Node:" + +#~ msgid "Delete selected files?" +#~ msgstr "Ausgewählte Dateien löschen?" + +#~ msgid "There is no 'res://default_bus_layout.tres' file." +#~ msgstr "Datei ‚res://default_bus_layout.tres‘ existiert nicht." + +#~ 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" + +#~ msgid "Previous Directory" +#~ msgstr "Vorheriges Verzeichnis" + +#~ msgid "Next Directory" +#~ msgstr "Nächstes Verzeichnis" + +#~ msgid "Ease in" +#~ msgstr "Einspannen" + +#~ msgid "Ease out" +#~ msgstr "Ausspannen" + +#~ msgid "Create Convex Static Body" +#~ msgstr "Statischen Konvex-Körper erzeugen" + +#~ msgid "CheckBox Radio1" +#~ msgstr "Kontrollkasten Radio1" + +#~ msgid "CheckBox Radio2" +#~ msgstr "Kontrollkasten Radio2" + +#~ msgid "Create folder" +#~ msgstr "Ordner erstellen" + +#~ msgid "Already existing" +#~ msgstr "Existiert bereits" + +#~ msgid "Custom Node" +#~ msgstr "Selbst-erstelltes Node" + +#~ msgid "Invalid Path" +#~ msgstr "Ungültiger Pfad" + +#~ msgid "GridMap Duplicate Selection" +#~ msgstr "GridMap-Auswahl duplizieren" + +#~ msgid "Create Area" +#~ msgstr "Bereich erzeugen" + +#~ msgid "Create Exterior Connector" +#~ msgstr "Exterior-Connector erstellen" + +#~ msgid "Edit Signal Arguments:" +#~ msgstr "Signalparameter bearbeiten:" + +#~ msgid "Edit Variable:" +#~ msgstr "Variable bearbeiten:" + #~ msgid "Snap (s): " #~ msgstr "Einrasten (s): " @@ -10610,9 +12297,6 @@ msgstr "Varyings können nur in Vertex-Funktion zugewiesen werden." #~ msgid "Class List:" #~ msgstr "Klassenliste:" -#~ msgid "Search Classes" -#~ msgstr "Klassen suchen" - #~ msgid "Public Methods" #~ msgstr "Öffentliche Methoden" @@ -10689,9 +12373,6 @@ msgstr "Varyings können nur in Vertex-Funktion zugewiesen werden." #~ msgid "Error:" #~ msgstr "Fehler:" -#~ msgid "Source:" -#~ msgstr "Quelle:" - #~ msgid "Function:" #~ msgstr "Funktion:" @@ -10713,21 +12394,9 @@ msgstr "Varyings können nur in Vertex-Funktion zugewiesen werden." #~ msgid "Get" #~ msgstr "Abfragen" -#~ msgid "Change Scalar Constant" -#~ msgstr "Ändere skalare Konstante" - -#~ msgid "Change Vec Constant" -#~ msgstr "Ändere Vektorkonstante" - #~ msgid "Change RGB Constant" #~ msgstr "Ändere RGB-Konstante" -#~ msgid "Change Scalar Operator" -#~ msgstr "Ändere skalaren Operator" - -#~ msgid "Change Vec Operator" -#~ msgstr "Ändere Vektoroperator" - #~ msgid "Change Vec Scalar Operator" #~ msgstr "Ändere Vektor-Skalar-Operator" @@ -10737,15 +12406,9 @@ msgstr "Varyings können nur in Vertex-Funktion zugewiesen werden." #~ msgid "Toggle Rot Only" #~ msgstr "schalte exklusive Rotation um" -#~ msgid "Change Scalar Function" -#~ msgstr "Ändere skalare Funktion" - #~ msgid "Change Vec Function" #~ msgstr "Ändere Vektorfunktion" -#~ msgid "Change Scalar Uniform" -#~ msgstr "Ändere Skalar-Uniform" - #~ msgid "Change Vec Uniform" #~ msgstr "Ändere Vektor-Uniform" @@ -10758,9 +12421,6 @@ msgstr "Varyings können nur in Vertex-Funktion zugewiesen werden." #~ msgid "Change XForm Uniform" #~ msgstr "Ändere XForm-Uniform" -#~ msgid "Change Texture Uniform" -#~ msgstr "Ändere Textur-Uniform" - #~ msgid "Change Cubemap Uniform" #~ msgstr "Ändere Cubemap-Uniform" @@ -10779,9 +12439,6 @@ msgstr "Varyings können nur in Vertex-Funktion zugewiesen werden." #~ msgid "Modify Curve Map" #~ msgstr "Verändere Curve-Map" -#~ msgid "Change Input Name" -#~ msgstr "Ändere Eingabename" - #~ msgid "Connect Graph Nodes" #~ msgstr "Verbinde Graph-Nodes" @@ -10809,9 +12466,6 @@ msgstr "Varyings können nur in Vertex-Funktion zugewiesen werden." #~ msgid "Add Shader Graph Node" #~ msgstr "Shader-Graph-Node hinzufügen" -#~ msgid "Disabled" -#~ msgstr "Deaktiviert" - #~ msgid "Move Anim Track Up" #~ msgstr "Spur nach oben verschieben" @@ -10995,15 +12649,9 @@ msgstr "Varyings können nur in Vertex-Funktion zugewiesen werden." #~ msgid "Item name or ID:" #~ msgstr "Elementname oder ID:" -#~ msgid "Autotiles" -#~ msgstr "Autokacheln" - #~ msgid "Export templates for this platform are missing/corrupted: " #~ msgstr "Export-Vorlagen für dieses Systeme fehlen / sind fehlerhaft: " -#~ msgid "Button 7" -#~ msgstr "Taste 7" - #~ msgid "Button 8" #~ msgstr "Taste 8" @@ -11901,9 +13549,6 @@ msgstr "Varyings können nur in Vertex-Funktion zugewiesen werden." #~ msgid "Project Export Settings" #~ msgstr "Projektexporteinstellungen" -#~ msgid "Target" -#~ msgstr "Ziel" - #~ msgid "Export to Platform" #~ msgstr "Export zu Plattform" @@ -11959,9 +13604,6 @@ msgstr "Varyings können nur in Vertex-Funktion zugewiesen werden." #~ msgid "Shrink By:" #~ msgstr "Verkleinern nach:" -#~ msgid "Preview Atlas" -#~ msgstr "Zeige Atlas-Vorschau" - #~ msgid "Images:" #~ msgstr "Bilder:" diff --git a/editor/translations/de_CH.po b/editor/translations/de_CH.po index cf2e88000d..464238349c 100644 --- a/editor/translations/de_CH.po +++ b/editor/translations/de_CH.po @@ -72,6 +72,14 @@ msgstr "" msgid "Mirror" msgstr "" +#: editor/animation_bezier_editor.cpp editor/editor_profiler.cpp +msgid "Time:" +msgstr "" + +#: editor/animation_bezier_editor.cpp +msgid "Value:" +msgstr "" + #: editor/animation_bezier_editor.cpp #, fuzzy msgid "Insert Key Here" @@ -162,11 +170,17 @@ msgid "Animation Playback Track" msgstr "Stoppe Animations-Wiedergabe. (S)" #: editor/animation_track_editor.cpp -msgid "Add Track" -msgstr "" +#, fuzzy +msgid "Animation length (frames)" +msgstr "Animations-Node" + +#: editor/animation_track_editor.cpp +#, fuzzy +msgid "Animation length (seconds)" +msgstr "Animations-Node" #: editor/animation_track_editor.cpp -msgid "Animation Length Time (seconds)" +msgid "Add Track" msgstr "" #: editor/animation_track_editor.cpp @@ -301,11 +315,13 @@ msgid "Create %d NEW tracks and insert keys?" msgstr "Erstelle %d in neuer Ebene inklusiv Bild?" #: editor/animation_track_editor.cpp editor/create_dialog.cpp -#: editor/editor_audio_buses.cpp editor/editor_plugin_settings.cpp -#: editor/plugin_config_dialog.cpp +#: editor/editor_audio_buses.cpp editor/editor_feature_profile.cpp +#: editor/editor_plugin_settings.cpp editor/plugin_config_dialog.cpp #: editor/plugins/abstract_polygon_2d_editor.cpp #: editor/plugins/mesh_instance_editor_plugin.cpp -#: editor/plugins/particles_editor_plugin.cpp editor/script_create_dialog.cpp +#: editor/plugins/particles_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_create_dialog.cpp msgid "Create" msgstr "" @@ -421,6 +437,23 @@ msgid "" msgstr "" #: editor/animation_track_editor.cpp +msgid "" +"This animation belongs to an imported scene, so changes to imported tracks " +"will not be saved.\n" +"\n" +"To enable the ability to add custom tracks, navigate to the scene's import " +"settings and set\n" +"\"Animation > Storage\" to \"Files\", enable \"Animation > Keep Custom Tracks" +"\", then re-import.\n" +"Alternatively, use an import preset that imports animations to separate " +"files." +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Warning: Editing imported animation" +msgstr "" + +#: editor/animation_track_editor.cpp msgid "Only show tracks from nodes selected in tree." msgstr "" @@ -557,7 +590,8 @@ msgstr "" msgid "Select tracks to copy:" msgstr "" -#: editor/animation_track_editor.cpp editor/editor_properties.cpp +#: editor/animation_track_editor.cpp editor/editor_log.cpp +#: editor/editor_properties.cpp #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp @@ -625,6 +659,11 @@ msgstr "" msgid "Selection Only" msgstr "" +#: editor/code_editor.cpp editor/plugins/script_text_editor.cpp +#: editor/plugins/text_editor.cpp +msgid "Standard" +msgstr "" + #: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/texture_region_editor_plugin.cpp #: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp @@ -650,20 +689,36 @@ msgid "Line and column numbers." msgstr "" #: editor/connections_dialog.cpp -msgid "Method in target Node must be specified!" +#, fuzzy +msgid "Method in target node must be specified." msgstr "Die Methode muss im Ziel Node definiert werden!" #: editor/connections_dialog.cpp msgid "" -"Target method not found! Specify a valid method or attach a script to target " -"Node." +"Target method not found. Specify a valid method or attach a script to the " +"target node." msgstr "" #: editor/connections_dialog.cpp #, fuzzy -msgid "Connect To Node:" +msgid "Connect to Node:" msgstr "Verbindung zu Node:" +#: editor/connections_dialog.cpp +#, fuzzy +msgid "Connect to Script:" +msgstr "Verbindung zu Node:" + +#: editor/connections_dialog.cpp +#, fuzzy +msgid "From Signal:" +msgstr "Connections editieren" + +#: editor/connections_dialog.cpp +#, fuzzy +msgid "Scene does not contain any script." +msgstr "Node enthält keine Geometrie (Flächen)." + #: editor/connections_dialog.cpp editor/editor_autoload_settings.cpp #: editor/groups_editor.cpp editor/plugins/item_list_editor_plugin.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_settings_editor.cpp @@ -671,10 +726,12 @@ msgid "Add" msgstr "" #: editor/connections_dialog.cpp editor/dependency_editor.cpp -#: editor/groups_editor.cpp editor/plugins/animation_player_editor_plugin.cpp +#: editor/editor_feature_profile.cpp editor/groups_editor.cpp +#: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp #: editor/plugins/resource_preloader_editor_plugin.cpp -#: editor/plugins/theme_editor_plugin.cpp editor/project_manager.cpp +#: editor/plugins/theme_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_manager.cpp #: editor/project_settings_editor.cpp msgid "Remove" msgstr "" @@ -688,21 +745,31 @@ msgid "Extra Call Arguments:" msgstr "" #: editor/connections_dialog.cpp -msgid "Path to Node:" -msgstr "Pfad zum Node:" +msgid "Advanced" +msgstr "" #: editor/connections_dialog.cpp -msgid "Make Function" +msgid "Deferred" msgstr "" #: editor/connections_dialog.cpp -msgid "Deferred" +msgid "" +"Defers the signal, storing it in a queue and only firing it at idle time." msgstr "" #: editor/connections_dialog.cpp msgid "Oneshot" msgstr "" +#: editor/connections_dialog.cpp +msgid "Disconnects the signal after its first emission." +msgstr "" + +#: editor/connections_dialog.cpp +#, fuzzy +msgid "Cannot connect signal" +msgstr "Connections editieren" + #: editor/connections_dialog.cpp editor/dependency_editor.cpp #: editor/export_template_manager.cpp editor/groups_editor.cpp #: editor/plugins/animation_player_editor_plugin.cpp @@ -744,12 +811,12 @@ msgstr "" #: editor/connections_dialog.cpp #, fuzzy -msgid "Connect Signal: " +msgid "Connect a Signal to a Method" msgstr "Connections editieren" #: editor/connections_dialog.cpp #, fuzzy -msgid "Edit Connection: " +msgid "Edit Connection:" msgstr "Connections editieren" #: editor/connections_dialog.cpp @@ -782,7 +849,6 @@ msgid "Change %s Type" msgstr "Typ ändern" #: editor/create_dialog.cpp editor/project_settings_editor.cpp -#: modules/visual_script/visual_script_editor.cpp #, fuzzy msgid "Change" msgstr "Typ ändern" @@ -815,7 +881,8 @@ msgid "Matches:" msgstr "" #: editor/create_dialog.cpp editor/plugin_config_dialog.cpp -#: editor/plugins/asset_library_editor_plugin.cpp editor/property_selector.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/property_selector.cpp #: modules/visual_script/visual_script_property_selector.cpp msgid "Description:" msgstr "" @@ -831,13 +898,13 @@ msgstr "" #: editor/dependency_editor.cpp msgid "" "Scene '%s' is currently being edited.\n" -"Changes will not take effect unless reloaded." +"Changes will only take effect when reloaded." msgstr "" #: editor/dependency_editor.cpp msgid "" "Resource '%s' is in use.\n" -"Changes will take effect when reloaded." +"Changes will only take effect when reloaded." msgstr "" #: editor/dependency_editor.cpp @@ -929,21 +996,13 @@ msgid "Permanently delete %d item(s)? (No undo!)" msgstr "" #: editor/dependency_editor.cpp -msgid "Owns" -msgstr "" - -#: editor/dependency_editor.cpp -msgid "Resources Without Explicit Ownership:" +msgid "Show Dependencies" msgstr "" #: editor/dependency_editor.cpp editor/editor_node.cpp msgid "Orphan Resource Explorer" msgstr "" -#: editor/dependency_editor.cpp -msgid "Delete selected files?" -msgstr "" - #: editor/dependency_editor.cpp editor/editor_audio_buses.cpp #: editor/editor_file_dialog.cpp editor/editor_node.cpp #: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp @@ -952,6 +1011,14 @@ msgstr "" msgid "Delete" msgstr "" +#: editor/dependency_editor.cpp +msgid "Owns" +msgstr "" + +#: editor/dependency_editor.cpp +msgid "Resources Without Explicit Ownership:" +msgstr "" + #: editor/dictionary_property_edit.cpp msgid "Change Dictionary Key" msgstr "" @@ -1064,7 +1131,7 @@ msgstr "" msgid "Success!" msgstr "" -#: editor/editor_asset_installer.cpp +#: editor/editor_asset_installer.cpp editor/editor_node.cpp #: editor/plugins/asset_library_editor_plugin.cpp msgid "Install" msgstr "" @@ -1196,7 +1263,11 @@ msgid "Open Audio Bus Layout" msgstr "" #: editor/editor_audio_buses.cpp -msgid "There is no 'res://default_bus_layout.tres' file." +msgid "There is no '%s' file." +msgstr "" + +#: editor/editor_audio_buses.cpp editor/plugins/canvas_item_editor_plugin.cpp +msgid "Layout" msgstr "" #: editor/editor_audio_buses.cpp @@ -1250,15 +1321,19 @@ msgid "Valid characters:" msgstr "" #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing engine class name." +msgid "Must not collide with an existing engine class name." msgstr "" #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing buit-in type name." +msgid "Must not collide with an existing buit-in type name." msgstr "" #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing global constant name." +msgid "Must not collide with an existing global constant name." +msgstr "" + +#: editor/editor_autoload_settings.cpp +msgid "Keyword cannot be used as an autoload name." msgstr "" #: editor/editor_autoload_settings.cpp @@ -1289,11 +1364,12 @@ msgstr "" msgid "Rearrange Autoloads" msgstr "" -#: editor/editor_autoload_settings.cpp -msgid "Invalid Path." -msgstr "" +#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp +#, fuzzy +msgid "Invalid path." +msgstr "Projektname:" -#: editor/editor_autoload_settings.cpp +#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp msgid "File does not exist." msgstr "" @@ -1344,7 +1420,7 @@ msgid "[unsaved]" msgstr "" #: editor/editor_dir_dialog.cpp -msgid "Please select a base directory first" +msgid "Please select a base directory first." msgstr "" #: editor/editor_dir_dialog.cpp @@ -1352,7 +1428,8 @@ msgid "Choose a Directory" msgstr "" #: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp -#: editor/filesystem_dock.cpp scene/gui/file_dialog.cpp +#: editor/filesystem_dock.cpp editor/project_manager.cpp +#: scene/gui/file_dialog.cpp msgid "Create Folder" msgstr "" @@ -1420,6 +1497,166 @@ msgstr "" msgid "Template file not found:" msgstr "" +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "3D Editor" +msgstr "Verzeichnis öffnen" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Script Editor" +msgstr "Verzeichnis öffnen" + +#: editor/editor_feature_profile.cpp +msgid "Asset Library" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Scene Tree Editing" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Import Dock" +msgstr "Importierte Projekte" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Node Dock" +msgstr "Bild bewegen/einfügen" + +#: editor/editor_feature_profile.cpp +msgid "Filesystem Dock" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Erase profile '%s'? (no undo)" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Profile must be a valid filename and must not contain '.'" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Profile with this name already exists." +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "(Editor Disabled, Properties Disabled)" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "(Properties Disabled)" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "(Editor Disabled)" +msgstr "Ungültige Bilder löschen" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Class Options:" +msgstr "Script hinzufügen" + +#: editor/editor_feature_profile.cpp +msgid "Enable Contextual Editor" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enabled Properties:" +msgstr "Node erstellen" + +#: editor/editor_feature_profile.cpp +msgid "Enabled Features:" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Enabled Classes:" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "File '%s' format is invalid, import aborted." +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "" +"Profile '%s' already exists. Remote it first before importing, import " +"aborted." +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Error saving profile to path: '%s'." +msgstr "Fehler beim Instanzieren der %s Szene" + +#: editor/editor_feature_profile.cpp +msgid "Unset" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Current Profile" +msgstr "Node(s) löschen" + +#: editor/editor_feature_profile.cpp +msgid "Make Current" +msgstr "" + +#: editor/editor_feature_profile.cpp +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "New" +msgstr "" + +#: editor/editor_feature_profile.cpp editor/editor_node.cpp +#: editor/plugins/asset_library_editor_plugin.cpp editor/project_manager.cpp +msgid "Import" +msgstr "" + +#: editor/editor_feature_profile.cpp editor/editor_node.cpp +#: editor/project_export.cpp +msgid "Export" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Available Profiles" +msgstr "TimeScale-Node" + +#: editor/editor_feature_profile.cpp +msgid "Enabled Classes" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Class Options" +msgstr "Script hinzufügen" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "New profile name:" +msgstr "Node" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Erase Profile" +msgstr "Oberfläche %d" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Import Profile(s)" +msgstr "Importierte Projekte" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Export Profile" +msgstr "Projekt exportieren" + +#: editor/editor_feature_profile.cpp +msgid "Manage Editor Feature Profiles" +msgstr "" + #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp #, fuzzy msgid "Select Current Folder" @@ -1443,8 +1680,8 @@ msgstr "" msgid "Open in File Manager" msgstr "Datei öffnen" -#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp -#: editor/project_manager.cpp +#: editor/editor_file_dialog.cpp editor/editor_node.cpp +#: editor/filesystem_dock.cpp editor/project_manager.cpp #, fuzzy msgid "Show in File Manager" msgstr "Datei öffnen" @@ -1504,7 +1741,7 @@ msgstr "" msgid "Go Up" msgstr "" -#: editor/editor_file_dialog.cpp +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Toggle Hidden Files" msgstr "" @@ -1538,12 +1775,17 @@ msgstr "Node(s) löschen" msgid "Next Folder" msgstr "Node erstellen" +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp +#, fuzzy +msgid "Go to parent folder." +msgstr "Node erstellen" + #: editor/editor_file_dialog.cpp -msgid "Go to parent folder" +msgid "(Un)favorite current folder." msgstr "" #: editor/editor_file_dialog.cpp -msgid "(Un)favorite current folder." +msgid "Toggle visibility of hidden files." msgstr "" #: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp @@ -1560,6 +1802,7 @@ msgstr "" #: editor/editor_file_dialog.cpp editor/plugins/sprite_editor_plugin.cpp #: editor/plugins/style_box_editor_plugin.cpp +#: editor/plugins/theme_editor_plugin.cpp msgid "Preview:" msgstr "" @@ -1576,6 +1819,12 @@ msgid "ScanSources" msgstr "" #: editor/editor_file_system.cpp +msgid "" +"There are multiple importers for different types pointing to file %s, import " +"aborted" +msgstr "" + +#: editor/editor_file_system.cpp msgid "(Re)Importing Assets" msgstr "" @@ -1759,6 +2008,11 @@ msgstr "" msgid "Output:" msgstr "" +#: editor/editor_log.cpp editor/plugins/tile_map_editor_plugin.cpp +#, fuzzy +msgid "Copy Selection" +msgstr "Script hinzufügen" + #: editor/editor_log.cpp editor/editor_profiler.cpp #: editor/editor_properties.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp @@ -1911,7 +2165,7 @@ msgstr "" #: editor/editor_node.cpp msgid "" "This resource belongs to a scene that was instanced or inherited.\n" -"Changes to it will not be kept when saving the current scene." +"Changes to it won't be kept when saving the current scene." msgstr "" #: editor/editor_node.cpp @@ -1922,7 +2176,7 @@ msgstr "" #: editor/editor_node.cpp msgid "" -"This scene was imported, so changes to it will not be kept.\n" +"This scene was imported, so changes to it won't be kept.\n" "Instancing it or inheriting will allow making changes to it.\n" "Please read the documentation relevant to importing scenes to better " "understand this workflow." @@ -1930,7 +2184,7 @@ msgstr "" #: editor/editor_node.cpp msgid "" -"This is a remote object so changes to it will not be kept.\n" +"This is a remote object, so changes to it won't be kept.\n" "Please read the documentation relevant to debugging to better understand " "this workflow." msgstr "" @@ -1940,27 +2194,6 @@ msgid "There is no defined scene to run." msgstr "" #: editor/editor_node.cpp -msgid "" -"No main scene has ever been defined, select one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" - -#: editor/editor_node.cpp -msgid "" -"Selected scene '%s' does not exist, select a valid one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" - -#: editor/editor_node.cpp -msgid "" -"Selected scene '%s' is not a scene file, select a valid one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" - -#: editor/editor_node.cpp msgid "Current scene was never saved, please save it prior to running." msgstr "" @@ -1968,7 +2201,7 @@ msgstr "" msgid "Could not start subprocess!" msgstr "" -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/filesystem_dock.cpp msgid "Open Scene" msgstr "" @@ -1977,6 +2210,11 @@ msgid "Open Base Scene" msgstr "" #: editor/editor_node.cpp +#, fuzzy +msgid "Quick Open..." +msgstr "Öffnen" + +#: editor/editor_node.cpp msgid "Quick Open Scene..." msgstr "" @@ -2144,6 +2382,27 @@ msgid "Clear Recent Scenes" msgstr "" #: editor/editor_node.cpp +msgid "" +"No main scene has ever been defined, select one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"Selected scene '%s' does not exist, select a valid one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"Selected scene '%s' is not a scene file, select a valid one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" + +#: editor/editor_node.cpp msgid "Save Layout" msgstr "" @@ -2171,6 +2430,18 @@ msgstr "Szene starten" msgid "Close Tab" msgstr "" +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +msgid "Close Other Tabs" +msgstr "" + +#: editor/editor_node.cpp +msgid "Close Tabs to the Right" +msgstr "" + +#: editor/editor_node.cpp +msgid "Close All Tabs" +msgstr "" + #: editor/editor_node.cpp msgid "Switch Scene Tab" msgstr "" @@ -2296,10 +2567,6 @@ msgstr "Projektname:" msgid "Project Settings" msgstr "Projekteinstellungen" -#: editor/editor_node.cpp editor/project_export.cpp -msgid "Export" -msgstr "" - #: editor/editor_node.cpp editor/plugins/tile_set_editor_plugin.cpp msgid "Tools" msgstr "" @@ -2310,6 +2577,10 @@ msgid "Open Project Data Folder" msgstr "Projekt exportieren" #: editor/editor_node.cpp +msgid "Install Android Build Template" +msgstr "" + +#: editor/editor_node.cpp msgid "Quit to Project List" msgstr "Zurück zur Projektliste" @@ -2417,6 +2688,10 @@ msgstr "" msgid "Open Editor Settings Folder" msgstr "" +#: editor/editor_node.cpp +msgid "Manage Editor Features" +msgstr "" + #: editor/editor_node.cpp editor/project_export.cpp msgid "Manage Export Templates" msgstr "" @@ -2429,6 +2704,7 @@ msgstr "" #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp #: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp #: editor/project_settings_editor.cpp editor/rename_dialog.cpp msgid "Search" msgstr "" @@ -2520,11 +2796,6 @@ msgstr "" msgid "Disable Update Spinner" msgstr "" -#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp -#: editor/project_manager.cpp -msgid "Import" -msgstr "" - #: editor/editor_node.cpp msgid "FileSystem" msgstr "" @@ -2550,6 +2821,28 @@ msgid "Don't Save" msgstr "" #: editor/editor_node.cpp +msgid "Android build template is missing, please install relevant templates." +msgstr "" + +#: editor/editor_node.cpp +#, fuzzy +msgid "Manage Templates" +msgstr "Ungültige Bilder löschen" + +#: editor/editor_node.cpp +msgid "" +"This will install the Android project for custom builds.\n" +"Note that, in order to use it, it needs to be enabled per export preset." +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"Android build template is already installed and it won't be overwritten.\n" +"Remove the \"build\" directory manually before attempting this operation " +"again." +msgstr "" + +#: editor/editor_node.cpp msgid "Import Templates From ZIP File" msgstr "" @@ -2676,10 +2969,6 @@ msgid "Physics Frame %" msgstr "" #: editor/editor_profiler.cpp -msgid "Time:" -msgstr "" - -#: editor/editor_profiler.cpp msgid "Inclusive" msgstr "" @@ -2818,10 +3107,6 @@ msgid "Remove Item" msgstr "" #: editor/editor_run_native.cpp -msgid "Select device from the list" -msgstr "" - -#: editor/editor_run_native.cpp msgid "" "No runnable export preset found for this platform.\n" "Please add a runnable preset in the export menu." @@ -2855,6 +3140,10 @@ msgstr "" msgid "Select Node(s) to Import" msgstr "Selektiere Node(s) zum Importieren aus" +#: editor/editor_sub_scene.cpp editor/project_manager.cpp +msgid "Browse" +msgstr "" + #: editor/editor_sub_scene.cpp msgid "Scene Path:" msgstr "" @@ -3024,6 +3313,10 @@ msgid "SSL Handshake Error" msgstr "" #: editor/export_template_manager.cpp +msgid "Uncompressing Android Build Sources" +msgstr "" + +#: editor/export_template_manager.cpp msgid "Current Version:" msgstr "" @@ -3041,8 +3334,9 @@ msgid "Remove Template" msgstr "Ungültige Bilder löschen" #: editor/export_template_manager.cpp -msgid "Select template file" -msgstr "" +#, fuzzy +msgid "Select Template File" +msgstr "Node(s) löschen" #: editor/export_template_manager.cpp msgid "Export Template Manager" @@ -3101,7 +3395,7 @@ msgid "No name provided." msgstr "" #: editor/filesystem_dock.cpp -msgid "Provided name contains invalid characters" +msgid "Provided name contains invalid characters." msgstr "" #: editor/filesystem_dock.cpp @@ -3133,7 +3427,12 @@ msgstr "Node(s) duplizieren" #: editor/filesystem_dock.cpp #, fuzzy -msgid "Open Scene(s)" +msgid "New Inherited Scene" +msgstr "Script hinzufügen" + +#: editor/filesystem_dock.cpp +#, fuzzy +msgid "Open Scenes" msgstr "Datei(en) öffnen" #: editor/filesystem_dock.cpp @@ -3141,12 +3440,13 @@ msgid "Instance" msgstr "" #: editor/filesystem_dock.cpp -msgid "Add to favorites" -msgstr "" +#, fuzzy +msgid "Add to Favorites" +msgstr "Node" #: editor/filesystem_dock.cpp #, fuzzy -msgid "Remove from favorites" +msgid "Remove from Favorites" msgstr "Ungültige Bilder löschen" #: editor/filesystem_dock.cpp @@ -3179,11 +3479,13 @@ msgstr "Script hinzufügen" msgid "New Resource..." msgstr "" -#: editor/filesystem_dock.cpp editor/script_editor_debugger.cpp +#: editor/filesystem_dock.cpp editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_editor_debugger.cpp msgid "Expand All" msgstr "" -#: editor/filesystem_dock.cpp editor/script_editor_debugger.cpp +#: editor/filesystem_dock.cpp editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_editor_debugger.cpp msgid "Collapse All" msgstr "" @@ -3195,19 +3497,21 @@ msgid "Rename" msgstr "" #: editor/filesystem_dock.cpp -msgid "Previous Directory" -msgstr "" +#, fuzzy +msgid "Previous Folder/File" +msgstr "Node(s) löschen" #: editor/filesystem_dock.cpp -msgid "Next Directory" -msgstr "" +#, fuzzy +msgid "Next Folder/File" +msgstr "Node erstellen" #: editor/filesystem_dock.cpp msgid "Re-Scan Filesystem" msgstr "" #: editor/filesystem_dock.cpp -msgid "Toggle split mode" +msgid "Toggle Split Mode" msgstr "" #: editor/filesystem_dock.cpp @@ -3236,7 +3540,7 @@ msgstr "" msgid "Create Script" msgstr "" -#: editor/find_in_files.cpp +#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp #, fuzzy msgid "Find in Files" msgstr "Node Filter editieren" @@ -3254,6 +3558,12 @@ msgstr "" msgid "Filters:" msgstr "Node erstellen" +#: editor/find_in_files.cpp +msgid "" +"Include the files with the following extensions. Add or remove them in " +"ProjectSettings." +msgstr "" + #: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp msgid "Find..." @@ -3703,7 +4013,7 @@ msgid "Open Animation Node" msgstr "Animations-Node" #: editor/plugins/animation_blend_space_2d_editor.cpp -msgid "Triangle already exists" +msgid "Triangle already exists." msgstr "" #: editor/plugins/animation_blend_space_2d_editor.cpp @@ -3786,7 +4096,6 @@ msgid "Node Moved" msgstr "Bild bewegen/einfügen" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Unable to connect, port may be in use or connection may be invalid." msgstr "" @@ -3860,8 +4169,9 @@ msgid "Edit Filtered Tracks:" msgstr "Node Filter editieren" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -msgid "Enable filtering" -msgstr "" +#, fuzzy +msgid "Enable Filtering" +msgstr "Typ ändern" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Toggle Autoplay" @@ -3982,10 +4292,6 @@ msgid "Animation" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "New" -msgstr "" - -#: editor/plugins/animation_player_editor_plugin.cpp #, fuzzy msgid "Edit Transitions..." msgstr "Connections editieren" @@ -4004,11 +4310,11 @@ msgid "Autoplay on Load" msgstr "Beim Laden automatisch abpielen" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Onion Skinning" +msgid "Enable Onion Skinning" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Enable Onion Skinning" +msgid "Onion Skinning Options" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp @@ -4569,13 +4875,19 @@ msgid "Move CanvasItem" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"Children of containers have their anchors and margins values overridden by " +"their parent." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Presets for the anchors and margins values of a Control node." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "" -"Children of containers have their anchors and margins values overridden by " -"their parent." +"When active, moving Control nodes changes their anchors instead of their " +"margins." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4591,10 +4903,50 @@ msgid "Change Anchors" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Lock Selected" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Unlock Selected" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Group Selected" +msgstr "Script hinzufügen" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Ungroup Selected" +msgstr "Script hinzufügen" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Paste Pose" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Create Custom Bone(s) from Node(s)" +msgstr "Spiele angepasste Szene" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Clear Bones" +msgstr "Spiele angepasste Szene" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Make IK Chain" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Clear IK Chain" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "" "Warning: Children of a container get their position and size determined only " "by their parent." @@ -4669,7 +5021,7 @@ msgid "Snapping Options" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to grid" +msgid "Snap to Grid" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4690,32 +5042,35 @@ msgid "Use Pixel Snap" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Smart snapping" +msgid "Smart Snapping" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to parent" +msgid "Snap to Parent" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node anchor" +msgid "Snap to Node Anchor" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node sides" -msgstr "" +#, fuzzy +msgid "Snap to Node Sides" +msgstr "Selektiere Node(s) zum Importieren aus" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node center" +msgid "Snap to Node Center" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to other nodes" -msgstr "" +#, fuzzy +msgid "Snap to Other Nodes" +msgstr "Node erstellen" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to guides" -msgstr "" +#, fuzzy +msgid "Snap to Guides" +msgstr "Selektiere Node(s) zum Importieren aus" #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp @@ -4728,10 +5083,12 @@ msgid "Unlock the selected object (can be moved)." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Makes sure the object's children are not selectable." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Restores the object's children's ability to be selected." msgstr "" @@ -4745,14 +5102,6 @@ msgid "Show Bones" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Make IK Chain" -msgstr "" - -#: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Clear IK Chain" -msgstr "" - -#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Make Custom Bone(s) from Node(s)" msgstr "" @@ -4804,7 +5153,7 @@ msgid "Frame Selection" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Layout" +msgid "Preview Canvas Scale" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4858,6 +5207,10 @@ msgid "Divide grid step by 2" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Pan View" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Add %s" msgstr "" @@ -4881,7 +5234,7 @@ msgstr "Fehler beim Instanzieren der %s Szene" #: editor/plugins/canvas_item_editor_plugin.cpp #, fuzzy -msgid "Change default type" +msgid "Change Default Type" msgstr "Typ ändern" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4971,19 +5324,19 @@ msgid "Create Emission Points From Node" msgstr "" #: editor/plugins/curve_editor_plugin.cpp -msgid "Flat0" +msgid "Flat 0" msgstr "" #: editor/plugins/curve_editor_plugin.cpp -msgid "Flat1" +msgid "Flat 1" msgstr "" -#: editor/plugins/curve_editor_plugin.cpp -msgid "Ease in" +#: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp +msgid "Ease In" msgstr "" -#: editor/plugins/curve_editor_plugin.cpp -msgid "Ease out" +#: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp +msgid "Ease Out" msgstr "" #: editor/plugins/curve_editor_plugin.cpp @@ -5004,24 +5357,25 @@ msgstr "" #: editor/plugins/curve_editor_plugin.cpp #, fuzzy -msgid "Add point" +msgid "Add Point" msgstr "Script hinzufügen" #: editor/plugins/curve_editor_plugin.cpp #, fuzzy -msgid "Remove point" +msgid "Remove Point" msgstr "Ungültige Bilder löschen" #: editor/plugins/curve_editor_plugin.cpp -msgid "Left linear" -msgstr "" +#, fuzzy +msgid "Left Linear" +msgstr "Bild einfügen" #: editor/plugins/curve_editor_plugin.cpp -msgid "Right linear" +msgid "Right Linear" msgstr "" #: editor/plugins/curve_editor_plugin.cpp -msgid "Load preset" +msgid "Load Preset" msgstr "" #: editor/plugins/curve_editor_plugin.cpp @@ -5078,14 +5432,19 @@ msgid "This doesn't work on scene root!" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Trimesh Shape" +msgid "Create Trimesh Static Shape" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Shape" +msgid "Failed creating shapes!" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp +#, fuzzy +msgid "Create Convex Shape(s)" +msgstr "Node erstellen" + +#: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Navigation Mesh" msgstr "" @@ -5135,16 +5494,13 @@ msgid "Create Trimesh Static Body" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Static Body" -msgstr "" - -#: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Trimesh Collision Sibling" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Collision Sibling" -msgstr "" +#, fuzzy +msgid "Create Convex Collision Sibling(s)" +msgstr "Node erstellen" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Outline Mesh..." @@ -5300,6 +5656,12 @@ msgid "Create Navigation Polygon" msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp +#: editor/plugins/particles_editor_plugin.cpp +#, fuzzy +msgid "Convert to CPUParticles" +msgstr "Verbindung zu Node:" + +#: editor/plugins/particles_2d_editor_plugin.cpp msgid "Generating Visibility Rect" msgstr "" @@ -5313,12 +5675,6 @@ msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp #: editor/plugins/particles_editor_plugin.cpp -#, fuzzy -msgid "Convert to CPUParticles" -msgstr "Verbindung zu Node:" - -#: editor/plugins/particles_2d_editor_plugin.cpp -#: editor/plugins/particles_editor_plugin.cpp msgid "Generation Time (sec):" msgstr "" @@ -5459,7 +5815,7 @@ msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp editor/plugins/theme_editor_plugin.cpp -#: editor/project_export.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_export.cpp msgid "Options" msgstr "" @@ -5514,7 +5870,7 @@ msgstr "" #: editor/plugins/physical_bone_plugin.cpp #, fuzzy -msgid "Move joint" +msgid "Move Joint" msgstr "Ungültige Bilder löschen" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5757,7 +6113,6 @@ msgid "Open in Editor" msgstr "" #: editor/plugins/resource_preloader_editor_plugin.cpp -#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Load Resource" msgstr "" @@ -5854,6 +6209,11 @@ msgid "%s Class Reference" msgstr "" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp +msgid "Find Next" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp msgid "Toggle alphabetical sorting of the method list." msgstr "" @@ -5935,10 +6295,6 @@ msgstr "" msgid "Close All" msgstr "" -#: editor/plugins/script_editor_plugin.cpp -msgid "Close Other Tabs" -msgstr "" - #: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp msgid "Run" msgstr "" @@ -5947,11 +6303,6 @@ msgstr "" msgid "Toggle Scripts Panel" msgstr "" -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/script_text_editor.cpp -msgid "Find Next" -msgstr "" - #: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp msgid "Step Over" msgstr "" @@ -5978,7 +6329,7 @@ msgid "Debug with External Editor" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Open Godot online documentation" +msgid "Open Godot online documentation." msgstr "" #: editor/plugins/script_editor_plugin.cpp @@ -5986,7 +6337,7 @@ msgid "Request Docs" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Help improve the Godot documentation by giving feedback" +msgid "Help improve the Godot documentation by giving feedback." msgstr "" #: editor/plugins/script_editor_plugin.cpp @@ -6012,10 +6363,12 @@ msgid "" msgstr "" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp msgid "Reload" msgstr "" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp msgid "Resave" msgstr "" @@ -6029,6 +6382,29 @@ msgid "Search Results" msgstr "Ungültige Bilder löschen" #: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Connections to method:" +msgstr "Verbindung zu Node:" + +#: editor/plugins/script_text_editor.cpp +msgid "Source" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Signal" +msgstr "Script hinzufügen" + +#: editor/plugins/script_text_editor.cpp +msgid "Target" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "" +"Missing connected method '%s' for signal '%s' from node '%s' to node '%s'." +msgstr "" + +#: editor/plugins/script_text_editor.cpp msgid "Line" msgstr "" @@ -6040,10 +6416,6 @@ msgstr "" msgid "Go to Function" msgstr "" -#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp -msgid "Standard" -msgstr "" - #: editor/plugins/script_text_editor.cpp msgid "Only resources from filesystem can be dropped." msgstr "" @@ -6076,6 +6448,11 @@ msgstr "" msgid "Syntax Highlighter" msgstr "" +#: editor/plugins/script_text_editor.cpp +#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp +msgid "Bookmarks" +msgstr "" + #: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" @@ -6105,6 +6482,24 @@ msgstr "" #: editor/plugins/script_text_editor.cpp #, fuzzy +msgid "Toggle Bookmark" +msgstr "Autoplay Umschalten" + +#: editor/plugins/script_text_editor.cpp +msgid "Go to Next Bookmark" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Go to Previous Bookmark" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Remove All Bookmarks" +msgstr "Ungültige Bilder löschen" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy msgid "Fold/Unfold Line" msgstr "Bild einfügen" @@ -6180,6 +6575,12 @@ msgid "Contextual Help" msgstr "" #: editor/plugins/shader_editor_plugin.cpp +msgid "" +"This shader has been modified on on disk.\n" +"What action should be taken?" +msgstr "" + +#: editor/plugins/shader_editor_plugin.cpp msgid "Shader" msgstr "" @@ -6525,7 +6926,7 @@ msgid "Right View" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Switch Perspective/Orthogonal view" +msgid "Switch Perspective/Orthogonal View" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp @@ -6566,11 +6967,12 @@ msgid "Toggle Freelook" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Transform" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Snap object to floor" +msgid "Snap Object to Floor" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp @@ -6715,30 +7117,22 @@ msgid "Invalid geometry, can't replace by mesh." msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Invalid geometry, can't create polygon." -msgstr "" - -#: editor/plugins/sprite_editor_plugin.cpp -msgid "Invalid geometry, can't create collision polygon." -msgstr "" - -#: editor/plugins/sprite_editor_plugin.cpp -msgid "Invalid geometry, can't create light occluder." -msgstr "" +#, fuzzy +msgid "Convert to Mesh2D" +msgstr "Verbindung zu Node:" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Sprite" +msgid "Invalid geometry, can't create polygon." msgstr "" #: editor/plugins/sprite_editor_plugin.cpp #, fuzzy -msgid "Convert to Mesh2D" +msgid "Convert to Polygon2D" msgstr "Verbindung zu Node:" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy -msgid "Convert to Polygon2D" -msgstr "Verbindung zu Node:" +msgid "Invalid geometry, can't create collision polygon." +msgstr "" #: editor/plugins/sprite_editor_plugin.cpp #, fuzzy @@ -6746,10 +7140,18 @@ msgid "Create CollisionPolygon2D Sibling" msgstr "Node erstellen" #: editor/plugins/sprite_editor_plugin.cpp +msgid "Invalid geometry, can't create light occluder." +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp msgid "Create LightOccluder2D Sibling" msgstr "" #: editor/plugins/sprite_editor_plugin.cpp +msgid "Sprite" +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp msgid "Simplification: " msgstr "" @@ -6767,7 +7169,12 @@ msgid "Settings:" msgstr "Projekteinstellungen" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "ERROR: Couldn't load frame resource!" +#, fuzzy +msgid "No Frames Selected" +msgstr "Verbindung zu Node:" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Add %d Frame(s)" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp @@ -6775,6 +7182,10 @@ msgid "Add Frame" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "ERROR: Couldn't load frame resource!" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Resource clipboard is empty or not a texture!" msgstr "" @@ -6818,6 +7229,15 @@ msgid "Animation Frames:" msgstr "Animations-Node" #: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Add a Texture from File" +msgstr "Node von Szene" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Add Frames from a Sprite Sheet" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Insert Empty (Before)" msgstr "" @@ -6835,6 +7255,27 @@ msgid "Move (After)" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Select Frames" +msgstr "Node(s) löschen" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Horizontal:" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Vertical:" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Select/Clear All Frames" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Create Frames from Sprite Sheet" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "SpriteFrames" msgstr "" @@ -6901,14 +7342,15 @@ msgstr "" msgid "Remove All Items" msgstr "Ungültige Bilder löschen" -#: editor/plugins/theme_editor_plugin.cpp +#: editor/plugins/theme_editor_plugin.cpp editor/project_manager.cpp #, fuzzy msgid "Remove All" msgstr "Ungültige Bilder löschen" #: editor/plugins/theme_editor_plugin.cpp -msgid "Edit theme..." -msgstr "" +#, fuzzy +msgid "Edit Theme" +msgstr "Node Filter editieren" #: editor/plugins/theme_editor_plugin.cpp msgid "Theme editing menu." @@ -6935,11 +7377,12 @@ msgid "Create From Current Editor Theme" msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "CheckBox Radio1" -msgstr "" +#, fuzzy +msgid "Toggle Button" +msgstr "Autoplay Umschalten" #: editor/plugins/theme_editor_plugin.cpp -msgid "CheckBox Radio2" +msgid "Disabled Button" msgstr "" #: editor/plugins/theme_editor_plugin.cpp @@ -6947,6 +7390,11 @@ msgid "Item" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Disabled Item" +msgstr "Node(s) löschen" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Check Item" msgstr "" @@ -6963,6 +7411,22 @@ msgid "Checked Radio Item" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +msgid "Named Sep." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Submenu" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Item 1" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Item 2" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Has" msgstr "" @@ -6971,7 +7435,7 @@ msgid "Many" msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "Has,Many,Options" +msgid "Disabled LineEdit" msgstr "" #: editor/plugins/theme_editor_plugin.cpp @@ -6987,6 +7451,19 @@ msgid "Tab 3" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Editable Item" +msgstr "Ungültige Bilder löschen" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Subtree" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Has,Many,Options" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Data Type:" msgstr "" @@ -7019,6 +7496,7 @@ msgid "Fix Invalid Tiles" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp +#: modules/gridmap/grid_map_editor_plugin.cpp #, fuzzy msgid "Cut Selection" msgstr "Script hinzufügen" @@ -7060,39 +7538,50 @@ msgid "Mirror Y" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp +msgid "Disable Autotile" +msgstr "" + +#: editor/plugins/tile_map_editor_plugin.cpp +#, fuzzy +msgid "Enable Priority" +msgstr "Node Filter editieren" + +#: editor/plugins/tile_map_editor_plugin.cpp msgid "Paint Tile" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Pick Tile" +msgid "" +"Shift+RMB: Line Draw\n" +"Shift+Ctrl+RMB: Rectangle Paint" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy -msgid "Copy Selection" -msgstr "Script hinzufügen" +msgid "Pick Tile" +msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp #, fuzzy -msgid "Rotate left" +msgid "Rotate Left" msgstr "Node erstellen" #: editor/plugins/tile_map_editor_plugin.cpp #, fuzzy -msgid "Rotate right" +msgid "Rotate Right" msgstr "Node erstellen" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Flip horizontally" +msgid "Flip Horizontally" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Flip vertically" +msgid "Flip Vertically" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Clear transform" -msgstr "" +#, fuzzy +msgid "Clear Transform" +msgstr "Transformationstyp" #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy @@ -7129,6 +7618,45 @@ msgid "Select the previous shape, subtile, or Tile." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Region Mode" +msgstr "Node erstellen" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Collision Mode" +msgstr "Animations-Node" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Occlusion Mode" +msgstr "Script hinzufügen" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Navigation Mode" +msgstr "Animations-Node" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Bitmask Mode" +msgstr "Node erstellen" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Priority Mode" +msgstr "Projekt exportieren" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Icon Mode" +msgstr "Bild bewegen/einfügen" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Z Index Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp msgid "Copy bitmask." msgstr "" @@ -7218,6 +7746,7 @@ msgstr "Bild einfügen" msgid "" "LMB: Set bit on.\n" "RMB: Set bit off.\n" +"Shift+LMB: Set wildcard bit.\n" "Click on another Tile to edit it." msgstr "Node(s) löschen" @@ -7341,6 +7870,76 @@ msgid "TileSet" msgstr "Datei(en) öffnen" #: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Add input +" +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 "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Add input port" +msgstr "Script hinzufügen" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add output port" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change input port type" +msgstr "Typ ändern" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change output port type" +msgstr "Typ ändern" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change input port name" +msgstr "Typ ändern" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change output port name" +msgstr "Typ ändern" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Remove input port" +msgstr "Ungültige Bilder löschen" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Remove output port" +msgstr "Ungültige Bilder löschen" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Set expression" +msgstr "Typ ändern" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Resize VisualShader node" +msgstr "Ungültige Bilder löschen" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Set Uniform Name" msgstr "" @@ -7379,6 +7978,842 @@ msgid "Light" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Create Shader Node" +msgstr "Node erstellen" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Color function." +msgstr "Script hinzufügen" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Color operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Grayscale function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts HSV vector to RGB equivalent." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts RGB vector to HSV equivalent." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Sepia function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Burn operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Darken operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Difference operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Dodge operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "HardLight operator" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Lighten operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Overlay operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Screen operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "SoftLight operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Color constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Color uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns an associated vector if the provided scalars are equal, greater or " +"less." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns an associated vector if the provided boolean value is true or false." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'camera' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'inv_camera' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'inv_projection' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'normal' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'projection' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'time' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'viewport_size' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'world' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'texture_pixel_size' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Input parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'binormal' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'fragcoord' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_coord' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_uv' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'side' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'tangent' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv2' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'vertex' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'view' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'albedo' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'attenuation' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'diffuse' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_color' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'roughness' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'specular' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'transmission' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'modelview' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_size' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'tangent' input parameter for vertex and fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_pass' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_coord' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_pixel_size' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_uv' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_alpha' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_height' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_uv' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_vec' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'normal' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'shadow_color' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'extra' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'projection' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'vertex' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'world' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'active' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'custom' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'custom_alpha' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'delta' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'emission_transform' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'index' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'lifetime' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'restart' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'time' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'transform' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'velocity' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Scalar function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Scalar operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "E constant (2.718282). Represents the base of the natural logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Epsilon constant (0.00001). Smallest possible scalar number." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Phi constant (1.618034). Golden ratio." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi/4 constant (0.785398) or 45 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi/2 constant (1.570796) or 90 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi constant (3.141593) or 180 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Tau constant (6.283185) or 360 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Sqrt2 constant (1.414214). Square root of 2." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the absolute value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-tangent of the parameters." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Finds the nearest integer that is greater than or equal to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Constrains a value to lie between two further values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts a quantity in radians to degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-e Exponential." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-2 Exponential." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Finds the nearest integer less than or equal to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Computes the fractional part of the argument." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the inverse of the square root of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Natural logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-2 logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the greater of two values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the lesser of two values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Linear interpolation between two scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the opposite value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 - scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns the value of the first parameter raised to the power of the second." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts a quantity in degrees to radians." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 / scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the nearest integer to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the nearest even integer to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Clamps the value between 0.0 and 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Extracts the sign of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the square root of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( scalar(edge0), scalar(edge1), scalar(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if x is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( scalar(edge), scalar(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the truncated value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Adds scalar to scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Divides scalar by scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies scalar by scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the remainder of the two scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Subtracts scalar from scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Scalar constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Scalar uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Perform the cubic texture lookup." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Perform the texture lookup." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Cubic texture uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "2D texture uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Transform function." +msgstr "Transformationstyp" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) Calculate the outer product of a pair of vectors.\n" +"\n" +"OuterProduct treats the first parameter 'c' as a column vector (matrix with " +"one column) and the second parameter 'r' as a row vector (matrix with one " +"row) and does a linear algebraic matrix multiply 'c * r', yielding a matrix " +"whose number of rows is the number of components in 'c' and whose number of " +"columns is the number of components in 'r'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Composes transform from four vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Decomposes transform to four vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the determinant of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the inverse of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the transpose of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies transform by transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies vector by transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Transform constant." +msgstr "Transformationstyp" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Transform uniform." +msgstr "Transformationstyp" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Composes vector from three scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Decomposes vector to three scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the cross product of two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the distance between two points." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the dot product of two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns a vector that points in the same direction as a reference vector. " +"The function has three vector parameters : N, the vector to orient, I, the " +"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 "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the length of a vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Linear interpolation between two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the normalize product of vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 - vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 / vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns a vector that points in the direction of reflection ( a : incident " +"vector, b : normal vector )." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns a vector that points in the direction of refraction." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( vector(edge0), vector(edge1), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if 'x' is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( scalar(edge0), scalar(edge1), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if 'x' is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( vector(edge), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( scalar(edge), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Adds vector to vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Divides vector by vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies vector by vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the remainder of the two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Subtracts vector from vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Custom Godot Shader Language expression, with custom amount of input and " +"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 "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns falloff based on the dot product of surface normal and view " +"direction of camera (pass associated inputs to it)." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) (Fragment/Light mode only) Scalar derivative function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) (Fragment/Light mode only) Vector derivative function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Derivative in 'x' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Derivative in 'x' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Derivative in 'y' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Derivative in 'y' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Sum of absolute derivative " +"in 'x' and 'y'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Sum of absolute derivative " +"in 'x' and 'y'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "VisualShader" msgstr "" @@ -7577,6 +9012,10 @@ msgid "Directory already contains a Godot project." msgstr "" #: editor/project_manager.cpp +msgid "New Game Project" +msgstr "" + +#: editor/project_manager.cpp msgid "Imported Project" msgstr "Importierte Projekte" @@ -7629,10 +9068,6 @@ msgid "Rename Project" msgstr "Neues Projekt erstellen" #: editor/project_manager.cpp -msgid "New Game Project" -msgstr "" - -#: editor/project_manager.cpp msgid "Import Existing Project" msgstr "Existierendes Projekt importieren" @@ -7663,11 +9098,6 @@ msgid "Project Name:" msgstr "Projektname:" #: editor/project_manager.cpp -#, fuzzy -msgid "Create folder" -msgstr "Node erstellen" - -#: editor/project_manager.cpp msgid "Project Path:" msgstr "" @@ -7676,10 +9106,6 @@ msgid "Project Installation Path:" msgstr "" #: editor/project_manager.cpp -msgid "Browse" -msgstr "" - -#: editor/project_manager.cpp msgid "Renderer:" msgstr "" @@ -7733,8 +9159,8 @@ msgid "" "\n" "If you proceed with opening it, it will be converted to Godot's current " "configuration file format.\n" -"Warning: You will not be able to open the project with previous versions of " -"the engine anymore." +"Warning: You won't be able to open the project with previous versions of the " +"engine anymore." msgstr "" #: editor/project_manager.cpp @@ -7745,8 +9171,8 @@ msgid "" "%s\n" "\n" "Do you want to convert it?\n" -"Warning: You will not be able to open the project with previous versions of " -"the engine anymore." +"Warning: You won't be able to open the project with previous versions of the " +"engine anymore." msgstr "" #: editor/project_manager.cpp @@ -7758,7 +9184,7 @@ msgstr "" #: editor/project_manager.cpp msgid "" "Can't run project: no main scene defined.\n" -"Please edit the project and set the main scene in \"Project Settings\" under " +"Please edit the project and set the main scene in the Project Settings under " "the \"Application\" category." msgstr "" @@ -7769,23 +9195,37 @@ msgid "" msgstr "" #: editor/project_manager.cpp -msgid "Are you sure to run more than one project?" +msgid "Are you sure to run %d projects at once?" +msgstr "" + +#: editor/project_manager.cpp +msgid "" +"Remove %d projects from the list?\n" +"The project folders' contents won't be modified." msgstr "" #: editor/project_manager.cpp -msgid "Remove project from the list? (Folder contents will not be modified)" +msgid "" +"Remove this project from the list?\n" +"The project folder's contents won't be modified." +msgstr "" + +#: editor/project_manager.cpp +msgid "" +"Remove all missing projects from the list? (Folders contents will not be " +"modified)" msgstr "" #: editor/project_manager.cpp msgid "" "Language changed.\n" -"The UI will update next time the editor or project manager starts." +"The interface will update after restarting the editor or project manager." msgstr "" #: editor/project_manager.cpp msgid "" -"You are about the scan %s folders for existing Godot projects. Do you " -"confirm?" +"Are you sure to scan %s folders for existing Godot projects?\n" +"This could take a while." msgstr "" #: editor/project_manager.cpp @@ -7810,6 +9250,11 @@ msgstr "" #: editor/project_manager.cpp #, fuzzy +msgid "Remove Missing" +msgstr "Ungültige Bilder löschen" + +#: editor/project_manager.cpp +#, fuzzy msgid "Templates" msgstr "Ungültige Bilder löschen" @@ -7828,8 +9273,8 @@ msgstr "Neues Projekt erstellen" #: editor/project_manager.cpp msgid "" -"You don't currently have any projects.\n" -"Would you like to explore the official example projects in the Asset Library?" +"You currently don't have any projects.\n" +"Would you like to explore official example projects in the Asset Library?" msgstr "" #: editor/project_settings_editor.cpp @@ -7855,7 +9300,7 @@ msgid "" msgstr "" #: editor/project_settings_editor.cpp -msgid "Action '%s' already exists!" +msgid "An action with the name '%s' already exists." msgstr "" #: editor/project_settings_editor.cpp @@ -8011,10 +9456,6 @@ msgid "" msgstr "" #: editor/project_settings_editor.cpp -msgid "Already existing" -msgstr "" - -#: editor/project_settings_editor.cpp msgid "Add Input Action" msgstr "" @@ -8081,7 +9522,7 @@ msgid "Override For..." msgstr "" #: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp -msgid "Editor must be restarted for changes to take effect" +msgid "The editor must be restarted for changes to take effect." msgstr "" #: editor/project_settings_editor.cpp @@ -8142,11 +9583,11 @@ msgid "Locales Filter" msgstr "" #: editor/project_settings_editor.cpp -msgid "Show all locales" +msgid "Show All Locales" msgstr "" #: editor/project_settings_editor.cpp -msgid "Show only selected locales" +msgid "Show Selected Locales Only" msgstr "" #: editor/project_settings_editor.cpp @@ -8163,14 +9604,6 @@ msgid "AutoLoad" msgstr "" #: editor/property_editor.cpp -msgid "Ease In" -msgstr "" - -#: editor/property_editor.cpp -msgid "Ease Out" -msgstr "" - -#: editor/property_editor.cpp msgid "Zero" msgstr "" @@ -8245,7 +9678,7 @@ msgid "Suffix" msgstr "" #: editor/rename_dialog.cpp -msgid "Advanced options" +msgid "Advanced Options" msgstr "" #: editor/rename_dialog.cpp @@ -8507,8 +9940,8 @@ msgstr "" #: editor/scene_tree_dock.cpp #, fuzzy -msgid "Custom Node" -msgstr "Node erstellen" +msgid "Other Node" +msgstr "Node(s) löschen" #: editor/scene_tree_dock.cpp msgid "Can't operate on nodes from a foreign scene!" @@ -8550,7 +9983,7 @@ msgid "Clear Inheritance" msgstr "" #: editor/scene_tree_dock.cpp -msgid "Open documentation" +msgid "Open Documentation" msgstr "" #: editor/scene_tree_dock.cpp @@ -8578,7 +10011,7 @@ msgstr "" msgid "Save Branch as Scene" msgstr "" -#: editor/scene_tree_dock.cpp +#: editor/scene_tree_dock.cpp editor/script_editor_debugger.cpp msgid "Copy Node Path" msgstr "" @@ -8623,6 +10056,20 @@ msgid "Toggle Visible" msgstr "" #: editor/scene_tree_editor.cpp +#, fuzzy +msgid "Unlock Node" +msgstr "Node(s) löschen" + +#: editor/scene_tree_editor.cpp +msgid "Button Group" +msgstr "" + +#: editor/scene_tree_editor.cpp +#, fuzzy +msgid "(Connecting From)" +msgstr "Connections editieren" + +#: editor/scene_tree_editor.cpp msgid "Node configuration warning:" msgstr "" @@ -8644,9 +10091,9 @@ msgid "" "Click to show groups dock." msgstr "" -#: editor/scene_tree_editor.cpp editor/script_create_dialog.cpp +#: editor/scene_tree_editor.cpp #, fuzzy -msgid "Open Script" +msgid "Open Script:" msgstr "Script hinzufügen" #: editor/scene_tree_editor.cpp @@ -8692,74 +10139,78 @@ msgid "Select a Node" msgstr "" #: editor/script_create_dialog.cpp -#, fuzzy -msgid "Error loading template '%s'" -msgstr "Fehler beim Instanzieren der %s Szene" - -#: editor/script_create_dialog.cpp -msgid "Error - Could not create script in filesystem." +msgid "Path is empty." msgstr "" #: editor/script_create_dialog.cpp -#, fuzzy -msgid "Error loading script from %s" -msgstr "Fehler beim Instanzieren der %s Szene" +msgid "Filename is empty." +msgstr "" #: editor/script_create_dialog.cpp -msgid "N/A" +msgid "Path is not local." msgstr "" #: editor/script_create_dialog.cpp -msgid "Open Script/Choose Location" -msgstr "" +#, fuzzy +msgid "Invalid base path." +msgstr "Projektname:" #: editor/script_create_dialog.cpp -msgid "Path is empty" +msgid "A directory with the same name exists." msgstr "" #: editor/script_create_dialog.cpp -msgid "Filename is empty" -msgstr "" +#, fuzzy +msgid "Invalid extension." +msgstr "Projektname:" #: editor/script_create_dialog.cpp -msgid "Path is not local" +msgid "Wrong extension chosen." msgstr "" #: editor/script_create_dialog.cpp -msgid "Invalid base path" -msgstr "" +#, fuzzy +msgid "Error loading template '%s'" +msgstr "Fehler beim Instanzieren der %s Szene" #: editor/script_create_dialog.cpp -msgid "Directory of the same name exists" +msgid "Error - Could not create script in filesystem." msgstr "" #: editor/script_create_dialog.cpp #, fuzzy -msgid "File exists, will be reused" -msgstr "Datei existiert, Überschreiben?" +msgid "Error loading script from %s" +msgstr "Fehler beim Instanzieren der %s Szene" #: editor/script_create_dialog.cpp -msgid "Invalid extension" +msgid "N/A" msgstr "" #: editor/script_create_dialog.cpp -msgid "Wrong extension chosen" +msgid "Open Script / Choose Location" msgstr "" #: editor/script_create_dialog.cpp -msgid "Invalid Path" -msgstr "" +#, fuzzy +msgid "Open Script" +msgstr "Script hinzufügen" #: editor/script_create_dialog.cpp -msgid "Invalid class name" -msgstr "" +#, fuzzy +msgid "File exists, it will be reused." +msgstr "Datei existiert, Überschreiben?" #: editor/script_create_dialog.cpp -msgid "Invalid inherited parent name or path" +#, fuzzy +msgid "Invalid class name." +msgstr "Projektname:" + +#: editor/script_create_dialog.cpp +msgid "Invalid inherited parent name or path." msgstr "" #: editor/script_create_dialog.cpp -msgid "Script valid" +msgid "Script is valid." msgstr "" #: editor/script_create_dialog.cpp @@ -8767,16 +10218,16 @@ msgid "Allowed: a-z, A-Z, 0-9 and _" msgstr "" #: editor/script_create_dialog.cpp -msgid "Built-in script (into scene file)" +msgid "Built-in script (into scene file)." msgstr "" #: editor/script_create_dialog.cpp #, fuzzy -msgid "Create new script file" +msgid "Will create a new script file." msgstr "Neues Projekt erstellen" #: editor/script_create_dialog.cpp -msgid "Load existing script file" +msgid "Will load an existing script file." msgstr "" #: editor/script_create_dialog.cpp @@ -8911,6 +10362,10 @@ msgstr "" msgid "Set From Tree" msgstr "" +#: editor/script_editor_debugger.cpp +msgid "Export measures as CSV" +msgstr "" + #: editor/settings_config_dialog.cpp msgid "Erase Shortcut" msgstr "" @@ -9041,6 +10496,14 @@ msgid "GDNativeLibrary" msgstr "" #: modules/gdnative/gdnative_library_singleton_editor.cpp +msgid "Enabled GDNative Singleton" +msgstr "" + +#: modules/gdnative/gdnative_library_singleton_editor.cpp +msgid "Disabled GDNative Singleton" +msgstr "" + +#: modules/gdnative/gdnative_library_singleton_editor.cpp msgid "Library" msgstr "" @@ -9126,8 +10589,9 @@ msgid "GridMap Fill Selection" msgstr "Projekteinstellungen" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "GridMap Duplicate Selection" -msgstr "" +#, fuzzy +msgid "GridMap Paste Selection" +msgstr "Projekteinstellungen" #: modules/gridmap/grid_map_editor_plugin.cpp #, fuzzy @@ -9196,20 +10660,6 @@ msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp #, fuzzy -msgid "Create Area" -msgstr "Node erstellen" - -#: modules/gridmap/grid_map_editor_plugin.cpp -#, fuzzy -msgid "Create Exterior Connector" -msgstr "Neues Projekt erstellen" - -#: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Erase Area" -msgstr "" - -#: modules/gridmap/grid_map_editor_plugin.cpp -#, fuzzy msgid "Clear Selection" msgstr "Script hinzufügen" @@ -9584,15 +11034,7 @@ msgid "Available Nodes:" msgstr "TimeScale-Node" #: modules/visual_script/visual_script_editor.cpp -msgid "Select or create a function to edit graph" -msgstr "" - -#: modules/visual_script/visual_script_editor.cpp -msgid "Edit Signal Arguments:" -msgstr "" - -#: modules/visual_script/visual_script_editor.cpp -msgid "Edit Variable:" +msgid "Select or create a function to edit its graph." msgstr "" #: modules/visual_script/visual_script_editor.cpp @@ -9726,6 +11168,19 @@ msgid "Debug keystore not configured in the Editor Settings nor in the preset." msgstr "" #: platform/android/export/export.cpp +msgid "Custom build requires a valid Android SDK path in Editor Settings." +msgstr "" + +#: platform/android/export/export.cpp +msgid "Invalid Android SDK path for custom build in Editor Settings." +msgstr "" + +#: platform/android/export/export.cpp +msgid "" +"Android project is not installed for compiling. Install from Editor menu." +msgstr "" + +#: platform/android/export/export.cpp msgid "Invalid public key for APK expansion." msgstr "" @@ -9734,6 +11189,34 @@ msgstr "" msgid "Invalid package name:" msgstr "Projektname:" +#: platform/android/export/export.cpp +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 "" +"Android build version mismatch:\n" +" Template installed: %s\n" +" Godot Version: %s\n" +"Please reinstall Android build template from 'Project' menu." +msgstr "" + +#: platform/android/export/export.cpp +msgid "Building Android Project (gradle)" +msgstr "" + +#: 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 "" + +#: platform/android/export/export.cpp +msgid "No build apk generated at: " +msgstr "" + #: platform/iphone/export/export.cpp msgid "Identifier is missing." msgstr "" @@ -10011,27 +11494,27 @@ msgid "ARVRCamera must have an ARVROrigin node as its parent" msgstr "" #: scene/3d/arvr_nodes.cpp -msgid "ARVRController must have an ARVROrigin node as its parent" +msgid "ARVRController must have an ARVROrigin node as its parent." msgstr "" #: scene/3d/arvr_nodes.cpp msgid "" -"The controller id must not be 0 or this controller will not be bound to an " -"actual controller" +"The controller ID must not be 0 or this controller won't be bound to an " +"actual controller." msgstr "" #: scene/3d/arvr_nodes.cpp -msgid "ARVRAnchor must have an ARVROrigin node as its parent" +msgid "ARVRAnchor must have an ARVROrigin node as its parent." msgstr "" #: scene/3d/arvr_nodes.cpp msgid "" -"The anchor id must not be 0 or this anchor will not be bound to an actual " -"anchor" +"The anchor ID must not be 0 or this anchor won't be bound to an actual " +"anchor." msgstr "" #: scene/3d/arvr_nodes.cpp -msgid "ARVROrigin requires an ARVRCamera child node" +msgid "ARVROrigin requires an ARVRCamera child node." msgstr "" #: scene/3d/baked_lightmap.cpp @@ -10101,8 +11584,8 @@ msgstr "" #: scene/3d/cpu_particles.cpp msgid "" -"CPUParticles animation requires the usage of a SpatialMaterial with " -"\"Billboard Particles\" enabled." +"CPUParticles animation requires the usage of a SpatialMaterial whose " +"Billboard Mode is set to \"Particle Billboard\"." msgstr "" #: scene/3d/gi_probe.cpp @@ -10139,8 +11622,8 @@ msgstr "" #: scene/3d/particles.cpp msgid "" -"Particles animation requires the usage of a SpatialMaterial with \"Billboard " -"Particles\" enabled." +"Particles animation requires the usage of a SpatialMaterial whose Billboard " +"Mode is set to \"Particle Billboard\"." msgstr "" #: scene/3d/path.cpp @@ -10169,7 +11652,7 @@ msgid "Path property must point to a valid Spatial node to work." msgstr "Die Pfad-Variable muss auf einen gültigen Particles2D Node verweisen." #: scene/3d/soft_body.cpp -msgid "This body will be ignored until you set a mesh" +msgid "This body will be ignored until you set a mesh." msgstr "" #: scene/3d/soft_body.cpp @@ -10268,7 +11751,7 @@ msgstr "" msgid "" "Container by itself serves no purpose unless a script configures it's " "children placement behavior.\n" -"If you dont't intend to add a script, then please use a plain 'Control' node " +"If you don't intend to add a script, then please use a plain 'Control' node " "instead." msgstr "" @@ -10280,11 +11763,6 @@ msgstr "Alert!" msgid "Please Confirm..." msgstr "Bitte bestätigen..." -#: scene/gui/file_dialog.cpp -#, fuzzy -msgid "Go to parent folder." -msgstr "Node erstellen" - #: scene/gui/popup.cpp msgid "" "Popups will hide by default unless you call popup() or any of the popup*() " @@ -10358,6 +11836,29 @@ msgstr "" msgid "Varyings can only be assigned in vertex function." msgstr "" +#: servers/visual/shader_language.cpp +msgid "Constants cannot be modified." +msgstr "" + +#~ msgid "Path to Node:" +#~ msgstr "Pfad zum Node:" + +#, fuzzy +#~ msgid "Create folder" +#~ msgstr "Node erstellen" + +#, fuzzy +#~ msgid "Custom Node" +#~ msgstr "Node erstellen" + +#, fuzzy +#~ msgid "Create Area" +#~ msgstr "Node erstellen" + +#, fuzzy +#~ msgid "Create Exterior Connector" +#~ msgstr "Neues Projekt erstellen" + #, fuzzy #~ msgid "Insert keys." #~ msgstr "Bild einfügen" @@ -10418,10 +11919,6 @@ msgstr "" #~ msgstr "Okay :(" #, fuzzy -#~ msgid "Edit Variable" -#~ msgstr "Ungültige Bilder löschen" - -#, fuzzy #~ msgid "Can't contain '/' or ':'" #~ msgstr "Verbindung zu Node:" diff --git a/editor/translations/editor.pot b/editor/translations/editor.pot index 218eef4fc1..9ea76e8d29 100644 --- a/editor/translations/editor.pot +++ b/editor/translations/editor.pot @@ -64,6 +64,14 @@ msgstr "" msgid "Mirror" msgstr "" +#: editor/animation_bezier_editor.cpp editor/editor_profiler.cpp +msgid "Time:" +msgstr "" + +#: editor/animation_bezier_editor.cpp +msgid "Value:" +msgstr "" + #: editor/animation_bezier_editor.cpp msgid "Insert Key Here" msgstr "" @@ -146,11 +154,15 @@ msgid "Animation Playback Track" msgstr "" #: editor/animation_track_editor.cpp -msgid "Add Track" +msgid "Animation length (frames)" msgstr "" #: editor/animation_track_editor.cpp -msgid "Animation Length Time (seconds)" +msgid "Animation length (seconds)" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Add Track" msgstr "" #: editor/animation_track_editor.cpp @@ -277,11 +289,13 @@ msgid "Create %d NEW tracks and insert keys?" msgstr "" #: editor/animation_track_editor.cpp editor/create_dialog.cpp -#: editor/editor_audio_buses.cpp editor/editor_plugin_settings.cpp -#: editor/plugin_config_dialog.cpp +#: editor/editor_audio_buses.cpp editor/editor_feature_profile.cpp +#: editor/editor_plugin_settings.cpp editor/plugin_config_dialog.cpp #: editor/plugins/abstract_polygon_2d_editor.cpp #: editor/plugins/mesh_instance_editor_plugin.cpp -#: editor/plugins/particles_editor_plugin.cpp editor/script_create_dialog.cpp +#: editor/plugins/particles_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_create_dialog.cpp msgid "Create" msgstr "" @@ -391,6 +405,23 @@ msgid "" msgstr "" #: editor/animation_track_editor.cpp +msgid "" +"This animation belongs to an imported scene, so changes to imported tracks " +"will not be saved.\n" +"\n" +"To enable the ability to add custom tracks, navigate to the scene's import " +"settings and set\n" +"\"Animation > Storage\" to \"Files\", enable \"Animation > Keep Custom Tracks" +"\", then re-import.\n" +"Alternatively, use an import preset that imports animations to separate " +"files." +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Warning: Editing imported animation" +msgstr "" + +#: editor/animation_track_editor.cpp msgid "Only show tracks from nodes selected in tree." msgstr "" @@ -523,7 +554,8 @@ msgstr "" msgid "Select tracks to copy:" msgstr "" -#: editor/animation_track_editor.cpp editor/editor_properties.cpp +#: editor/animation_track_editor.cpp editor/editor_log.cpp +#: editor/editor_properties.cpp #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp @@ -591,6 +623,11 @@ msgstr "" msgid "Selection Only" msgstr "" +#: editor/code_editor.cpp editor/plugins/script_text_editor.cpp +#: editor/plugins/text_editor.cpp +msgid "Standard" +msgstr "" + #: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/texture_region_editor_plugin.cpp #: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp @@ -616,17 +653,29 @@ msgid "Line and column numbers." msgstr "" #: editor/connections_dialog.cpp -msgid "Method in target Node must be specified!" +msgid "Method in target node must be specified." msgstr "" #: editor/connections_dialog.cpp msgid "" -"Target method not found! Specify a valid method or attach a script to target " -"Node." +"Target method not found. Specify a valid method or attach a script to the " +"target node." +msgstr "" + +#: editor/connections_dialog.cpp +msgid "Connect to Node:" +msgstr "" + +#: editor/connections_dialog.cpp +msgid "Connect to Script:" +msgstr "" + +#: editor/connections_dialog.cpp +msgid "From Signal:" msgstr "" #: editor/connections_dialog.cpp -msgid "Connect To Node:" +msgid "Scene does not contain any script." msgstr "" #: editor/connections_dialog.cpp editor/editor_autoload_settings.cpp @@ -636,10 +685,12 @@ msgid "Add" msgstr "" #: editor/connections_dialog.cpp editor/dependency_editor.cpp -#: editor/groups_editor.cpp editor/plugins/animation_player_editor_plugin.cpp +#: editor/editor_feature_profile.cpp editor/groups_editor.cpp +#: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp #: editor/plugins/resource_preloader_editor_plugin.cpp -#: editor/plugins/theme_editor_plugin.cpp editor/project_manager.cpp +#: editor/plugins/theme_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_manager.cpp #: editor/project_settings_editor.cpp msgid "Remove" msgstr "" @@ -653,21 +704,30 @@ msgid "Extra Call Arguments:" msgstr "" #: editor/connections_dialog.cpp -msgid "Path to Node:" +msgid "Advanced" msgstr "" #: editor/connections_dialog.cpp -msgid "Make Function" +msgid "Deferred" msgstr "" #: editor/connections_dialog.cpp -msgid "Deferred" +msgid "" +"Defers the signal, storing it in a queue and only firing it at idle time." msgstr "" #: editor/connections_dialog.cpp msgid "Oneshot" msgstr "" +#: editor/connections_dialog.cpp +msgid "Disconnects the signal after its first emission." +msgstr "" + +#: editor/connections_dialog.cpp +msgid "Cannot connect signal" +msgstr "" + #: editor/connections_dialog.cpp editor/dependency_editor.cpp #: editor/export_template_manager.cpp editor/groups_editor.cpp #: editor/plugins/animation_player_editor_plugin.cpp @@ -708,11 +768,11 @@ msgid "Disconnect" msgstr "" #: editor/connections_dialog.cpp -msgid "Connect Signal: " +msgid "Connect a Signal to a Method" msgstr "" #: editor/connections_dialog.cpp -msgid "Edit Connection: " +msgid "Edit Connection:" msgstr "" #: editor/connections_dialog.cpp @@ -744,7 +804,6 @@ msgid "Change %s Type" msgstr "" #: editor/create_dialog.cpp editor/project_settings_editor.cpp -#: modules/visual_script/visual_script_editor.cpp msgid "Change" msgstr "" @@ -775,7 +834,8 @@ msgid "Matches:" msgstr "" #: editor/create_dialog.cpp editor/plugin_config_dialog.cpp -#: editor/plugins/asset_library_editor_plugin.cpp editor/property_selector.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/property_selector.cpp #: modules/visual_script/visual_script_property_selector.cpp msgid "Description:" msgstr "" @@ -791,13 +851,13 @@ msgstr "" #: editor/dependency_editor.cpp msgid "" "Scene '%s' is currently being edited.\n" -"Changes will not take effect unless reloaded." +"Changes will only take effect when reloaded." msgstr "" #: editor/dependency_editor.cpp msgid "" "Resource '%s' is in use.\n" -"Changes will take effect when reloaded." +"Changes will only take effect when reloaded." msgstr "" #: editor/dependency_editor.cpp @@ -888,21 +948,13 @@ msgid "Permanently delete %d item(s)? (No undo!)" msgstr "" #: editor/dependency_editor.cpp -msgid "Owns" -msgstr "" - -#: editor/dependency_editor.cpp -msgid "Resources Without Explicit Ownership:" +msgid "Show Dependencies" msgstr "" #: editor/dependency_editor.cpp editor/editor_node.cpp msgid "Orphan Resource Explorer" msgstr "" -#: editor/dependency_editor.cpp -msgid "Delete selected files?" -msgstr "" - #: editor/dependency_editor.cpp editor/editor_audio_buses.cpp #: editor/editor_file_dialog.cpp editor/editor_node.cpp #: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp @@ -911,6 +963,14 @@ msgstr "" msgid "Delete" msgstr "" +#: editor/dependency_editor.cpp +msgid "Owns" +msgstr "" + +#: editor/dependency_editor.cpp +msgid "Resources Without Explicit Ownership:" +msgstr "" + #: editor/dictionary_property_edit.cpp msgid "Change Dictionary Key" msgstr "" @@ -1020,7 +1080,7 @@ msgstr "" msgid "Success!" msgstr "" -#: editor/editor_asset_installer.cpp +#: editor/editor_asset_installer.cpp editor/editor_node.cpp #: editor/plugins/asset_library_editor_plugin.cpp msgid "Install" msgstr "" @@ -1147,7 +1207,11 @@ msgid "Open Audio Bus Layout" msgstr "" #: editor/editor_audio_buses.cpp -msgid "There is no 'res://default_bus_layout.tres' file." +msgid "There is no '%s' file." +msgstr "" + +#: editor/editor_audio_buses.cpp editor/plugins/canvas_item_editor_plugin.cpp +msgid "Layout" msgstr "" #: editor/editor_audio_buses.cpp @@ -1201,15 +1265,19 @@ msgid "Valid characters:" msgstr "" #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing engine class name." +msgid "Must not collide with an existing engine class name." msgstr "" #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing buit-in type name." +msgid "Must not collide with an existing buit-in type name." msgstr "" #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing global constant name." +msgid "Must not collide with an existing global constant name." +msgstr "" + +#: editor/editor_autoload_settings.cpp +msgid "Keyword cannot be used as an autoload name." msgstr "" #: editor/editor_autoload_settings.cpp @@ -1240,11 +1308,11 @@ msgstr "" msgid "Rearrange Autoloads" msgstr "" -#: editor/editor_autoload_settings.cpp -msgid "Invalid Path." +#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp +msgid "Invalid path." msgstr "" -#: editor/editor_autoload_settings.cpp +#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp msgid "File does not exist." msgstr "" @@ -1295,7 +1363,7 @@ msgid "[unsaved]" msgstr "" #: editor/editor_dir_dialog.cpp -msgid "Please select a base directory first" +msgid "Please select a base directory first." msgstr "" #: editor/editor_dir_dialog.cpp @@ -1303,7 +1371,8 @@ msgid "Choose a Directory" msgstr "" #: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp -#: editor/filesystem_dock.cpp scene/gui/file_dialog.cpp +#: editor/filesystem_dock.cpp editor/project_manager.cpp +#: scene/gui/file_dialog.cpp msgid "Create Folder" msgstr "" @@ -1371,6 +1440,151 @@ msgstr "" msgid "Template file not found:" msgstr "" +#: editor/editor_feature_profile.cpp +msgid "3D Editor" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Script Editor" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Asset Library" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Scene Tree Editing" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Import Dock" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Node Dock" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Filesystem Dock" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Erase profile '%s'? (no undo)" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Profile must be a valid filename and must not contain '.'" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Profile with this name already exists." +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "(Editor Disabled, Properties Disabled)" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "(Properties Disabled)" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "(Editor Disabled)" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Class Options:" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Enable Contextual Editor" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Enabled Properties:" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Enabled Features:" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Enabled Classes:" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "File '%s' format is invalid, import aborted." +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "" +"Profile '%s' already exists. Remote it first before importing, import " +"aborted." +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Error saving profile to path: '%s'." +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Unset" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Current Profile" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Make Current" +msgstr "" + +#: editor/editor_feature_profile.cpp +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "New" +msgstr "" + +#: editor/editor_feature_profile.cpp editor/editor_node.cpp +#: editor/plugins/asset_library_editor_plugin.cpp editor/project_manager.cpp +msgid "Import" +msgstr "" + +#: editor/editor_feature_profile.cpp editor/editor_node.cpp +#: editor/project_export.cpp +msgid "Export" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Available Profiles" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Enabled Classes" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Class Options" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "New profile name:" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Erase Profile" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Import Profile(s)" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Export Profile" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Manage Editor Feature Profiles" +msgstr "" + #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Select Current Folder" msgstr "" @@ -1391,8 +1605,8 @@ msgstr "" msgid "Open in File Manager" msgstr "" -#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp -#: editor/project_manager.cpp +#: editor/editor_file_dialog.cpp editor/editor_node.cpp +#: editor/filesystem_dock.cpp editor/project_manager.cpp msgid "Show in File Manager" msgstr "" @@ -1451,7 +1665,7 @@ msgstr "" msgid "Go Up" msgstr "" -#: editor/editor_file_dialog.cpp +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Toggle Hidden Files" msgstr "" @@ -1483,14 +1697,18 @@ msgstr "" msgid "Next Folder" msgstr "" -#: editor/editor_file_dialog.cpp -msgid "Go to parent folder" +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp +msgid "Go to parent folder." msgstr "" #: editor/editor_file_dialog.cpp msgid "(Un)favorite current folder." msgstr "" +#: editor/editor_file_dialog.cpp +msgid "Toggle visibility of hidden files." +msgstr "" + #: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp msgid "View items as a grid of thumbnails." msgstr "" @@ -1505,6 +1723,7 @@ msgstr "" #: editor/editor_file_dialog.cpp editor/plugins/sprite_editor_plugin.cpp #: editor/plugins/style_box_editor_plugin.cpp +#: editor/plugins/theme_editor_plugin.cpp msgid "Preview:" msgstr "" @@ -1521,6 +1740,12 @@ msgid "ScanSources" msgstr "" #: editor/editor_file_system.cpp +msgid "" +"There are multiple importers for different types pointing to file %s, import " +"aborted" +msgstr "" + +#: editor/editor_file_system.cpp msgid "(Re)Importing Assets" msgstr "" @@ -1696,6 +1921,10 @@ msgstr "" msgid "Output:" msgstr "" +#: editor/editor_log.cpp editor/plugins/tile_map_editor_plugin.cpp +msgid "Copy Selection" +msgstr "" + #: editor/editor_log.cpp editor/editor_profiler.cpp #: editor/editor_properties.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp @@ -1843,7 +2072,7 @@ msgstr "" #: editor/editor_node.cpp msgid "" "This resource belongs to a scene that was instanced or inherited.\n" -"Changes to it will not be kept when saving the current scene." +"Changes to it won't be kept when saving the current scene." msgstr "" #: editor/editor_node.cpp @@ -1854,7 +2083,7 @@ msgstr "" #: editor/editor_node.cpp msgid "" -"This scene was imported, so changes to it will not be kept.\n" +"This scene was imported, so changes to it won't be kept.\n" "Instancing it or inheriting will allow making changes to it.\n" "Please read the documentation relevant to importing scenes to better " "understand this workflow." @@ -1862,7 +2091,7 @@ msgstr "" #: editor/editor_node.cpp msgid "" -"This is a remote object so changes to it will not be kept.\n" +"This is a remote object, so changes to it won't be kept.\n" "Please read the documentation relevant to debugging to better understand " "this workflow." msgstr "" @@ -1872,27 +2101,6 @@ msgid "There is no defined scene to run." msgstr "" #: editor/editor_node.cpp -msgid "" -"No main scene has ever been defined, select one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" - -#: editor/editor_node.cpp -msgid "" -"Selected scene '%s' does not exist, select a valid one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" - -#: editor/editor_node.cpp -msgid "" -"Selected scene '%s' is not a scene file, select a valid one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" - -#: editor/editor_node.cpp msgid "Current scene was never saved, please save it prior to running." msgstr "" @@ -1900,7 +2108,7 @@ msgstr "" msgid "Could not start subprocess!" msgstr "" -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/filesystem_dock.cpp msgid "Open Scene" msgstr "" @@ -1909,6 +2117,10 @@ msgid "Open Base Scene" msgstr "" #: editor/editor_node.cpp +msgid "Quick Open..." +msgstr "" + +#: editor/editor_node.cpp msgid "Quick Open Scene..." msgstr "" @@ -2070,6 +2282,27 @@ msgid "Clear Recent Scenes" msgstr "" #: editor/editor_node.cpp +msgid "" +"No main scene has ever been defined, select one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"Selected scene '%s' does not exist, select a valid one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"Selected scene '%s' is not a scene file, select a valid one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" + +#: editor/editor_node.cpp msgid "Save Layout" msgstr "" @@ -2095,6 +2328,18 @@ msgstr "" msgid "Close Tab" msgstr "" +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +msgid "Close Other Tabs" +msgstr "" + +#: editor/editor_node.cpp +msgid "Close Tabs to the Right" +msgstr "" + +#: editor/editor_node.cpp +msgid "Close All Tabs" +msgstr "" + #: editor/editor_node.cpp msgid "Switch Scene Tab" msgstr "" @@ -2217,10 +2462,6 @@ msgstr "" msgid "Project Settings" msgstr "" -#: editor/editor_node.cpp editor/project_export.cpp -msgid "Export" -msgstr "" - #: editor/editor_node.cpp editor/plugins/tile_set_editor_plugin.cpp msgid "Tools" msgstr "" @@ -2230,6 +2471,10 @@ msgid "Open Project Data Folder" msgstr "" #: editor/editor_node.cpp +msgid "Install Android Build Template" +msgstr "" + +#: editor/editor_node.cpp msgid "Quit to Project List" msgstr "" @@ -2334,6 +2579,10 @@ msgstr "" msgid "Open Editor Settings Folder" msgstr "" +#: editor/editor_node.cpp +msgid "Manage Editor Features" +msgstr "" + #: editor/editor_node.cpp editor/project_export.cpp msgid "Manage Export Templates" msgstr "" @@ -2346,6 +2595,7 @@ msgstr "" #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp #: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp #: editor/project_settings_editor.cpp editor/rename_dialog.cpp msgid "Search" msgstr "" @@ -2435,11 +2685,6 @@ msgstr "" msgid "Disable Update Spinner" msgstr "" -#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp -#: editor/project_manager.cpp -msgid "Import" -msgstr "" - #: editor/editor_node.cpp msgid "FileSystem" msgstr "" @@ -2465,6 +2710,27 @@ msgid "Don't Save" msgstr "" #: editor/editor_node.cpp +msgid "Android build template is missing, please install relevant templates." +msgstr "" + +#: editor/editor_node.cpp +msgid "Manage Templates" +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"This will install the Android project for custom builds.\n" +"Note that, in order to use it, it needs to be enabled per export preset." +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"Android build template is already installed and it won't be overwritten.\n" +"Remove the \"build\" directory manually before attempting this operation " +"again." +msgstr "" + +#: editor/editor_node.cpp msgid "Import Templates From ZIP File" msgstr "" @@ -2587,10 +2853,6 @@ msgid "Physics Frame %" msgstr "" #: editor/editor_profiler.cpp -msgid "Time:" -msgstr "" - -#: editor/editor_profiler.cpp msgid "Inclusive" msgstr "" @@ -2725,10 +2987,6 @@ msgid "Remove Item" msgstr "" #: editor/editor_run_native.cpp -msgid "Select device from the list" -msgstr "" - -#: editor/editor_run_native.cpp msgid "" "No runnable export preset found for this platform.\n" "Please add a runnable preset in the export menu." @@ -2762,6 +3020,10 @@ msgstr "" msgid "Select Node(s) to Import" msgstr "" +#: editor/editor_sub_scene.cpp editor/project_manager.cpp +msgid "Browse" +msgstr "" + #: editor/editor_sub_scene.cpp msgid "Scene Path:" msgstr "" @@ -2924,6 +3186,10 @@ msgid "SSL Handshake Error" msgstr "" #: editor/export_template_manager.cpp +msgid "Uncompressing Android Build Sources" +msgstr "" + +#: editor/export_template_manager.cpp msgid "Current Version:" msgstr "" @@ -2940,7 +3206,7 @@ msgid "Remove Template" msgstr "" #: editor/export_template_manager.cpp -msgid "Select template file" +msgid "Select Template File" msgstr "" #: editor/export_template_manager.cpp @@ -2996,7 +3262,7 @@ msgid "No name provided." msgstr "" #: editor/filesystem_dock.cpp -msgid "Provided name contains invalid characters" +msgid "Provided name contains invalid characters." msgstr "" #: editor/filesystem_dock.cpp @@ -3024,7 +3290,11 @@ msgid "Duplicating folder:" msgstr "" #: editor/filesystem_dock.cpp -msgid "Open Scene(s)" +msgid "New Inherited Scene" +msgstr "" + +#: editor/filesystem_dock.cpp +msgid "Open Scenes" msgstr "" #: editor/filesystem_dock.cpp @@ -3032,11 +3302,11 @@ msgid "Instance" msgstr "" #: editor/filesystem_dock.cpp -msgid "Add to favorites" +msgid "Add to Favorites" msgstr "" #: editor/filesystem_dock.cpp -msgid "Remove from favorites" +msgid "Remove from Favorites" msgstr "" #: editor/filesystem_dock.cpp @@ -3067,11 +3337,13 @@ msgstr "" msgid "New Resource..." msgstr "" -#: editor/filesystem_dock.cpp editor/script_editor_debugger.cpp +#: editor/filesystem_dock.cpp editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_editor_debugger.cpp msgid "Expand All" msgstr "" -#: editor/filesystem_dock.cpp editor/script_editor_debugger.cpp +#: editor/filesystem_dock.cpp editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_editor_debugger.cpp msgid "Collapse All" msgstr "" @@ -3083,11 +3355,11 @@ msgid "Rename" msgstr "" #: editor/filesystem_dock.cpp -msgid "Previous Directory" +msgid "Previous Folder/File" msgstr "" #: editor/filesystem_dock.cpp -msgid "Next Directory" +msgid "Next Folder/File" msgstr "" #: editor/filesystem_dock.cpp @@ -3095,7 +3367,7 @@ msgid "Re-Scan Filesystem" msgstr "" #: editor/filesystem_dock.cpp -msgid "Toggle split mode" +msgid "Toggle Split Mode" msgstr "" #: editor/filesystem_dock.cpp @@ -3124,7 +3396,7 @@ msgstr "" msgid "Create Script" msgstr "" -#: editor/find_in_files.cpp +#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp msgid "Find in Files" msgstr "" @@ -3140,6 +3412,12 @@ msgstr "" msgid "Filters:" msgstr "" +#: editor/find_in_files.cpp +msgid "" +"Include the files with the following extensions. Add or remove them in " +"ProjectSettings." +msgstr "" + #: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp msgid "Find..." @@ -3568,7 +3846,7 @@ msgid "Open Animation Node" msgstr "" #: editor/plugins/animation_blend_space_2d_editor.cpp -msgid "Triangle already exists" +msgid "Triangle already exists." msgstr "" #: editor/plugins/animation_blend_space_2d_editor.cpp @@ -3643,7 +3921,6 @@ msgid "Node Moved" msgstr "" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Unable to connect, port may be in use or connection may be invalid." msgstr "" @@ -3710,7 +3987,7 @@ msgid "Edit Filtered Tracks:" msgstr "" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -msgid "Enable filtering" +msgid "Enable Filtering" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp @@ -3825,10 +4102,6 @@ msgid "Animation" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "New" -msgstr "" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Edit Transitions..." msgstr "" @@ -3845,11 +4118,11 @@ msgid "Autoplay on Load" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Onion Skinning" +msgid "Enable Onion Skinning" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Enable Onion Skinning" +msgid "Onion Skinning Options" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp @@ -4389,13 +4662,19 @@ msgid "Move CanvasItem" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"Children of containers have their anchors and margins values overridden by " +"their parent." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Presets for the anchors and margins values of a Control node." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "" -"Children of containers have their anchors and margins values overridden by " -"their parent." +"When active, moving Control nodes changes their anchors instead of their " +"margins." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4411,10 +4690,46 @@ msgid "Change Anchors" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Lock Selected" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Unlock Selected" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Group Selected" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Ungroup Selected" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Paste Pose" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Create Custom Bone(s) from Node(s)" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Clear Bones" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Make IK Chain" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Clear IK Chain" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "" "Warning: Children of a container get their position and size determined only " "by their parent." @@ -4486,7 +4801,7 @@ msgid "Snapping Options" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to grid" +msgid "Snap to Grid" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4507,31 +4822,31 @@ msgid "Use Pixel Snap" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Smart snapping" +msgid "Smart Snapping" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to parent" +msgid "Snap to Parent" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node anchor" +msgid "Snap to Node Anchor" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node sides" +msgid "Snap to Node Sides" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node center" +msgid "Snap to Node Center" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to other nodes" +msgid "Snap to Other Nodes" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to guides" +msgid "Snap to Guides" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4545,10 +4860,12 @@ msgid "Unlock the selected object (can be moved)." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Makes sure the object's children are not selectable." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Restores the object's children's ability to be selected." msgstr "" @@ -4561,14 +4878,6 @@ msgid "Show Bones" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Make IK Chain" -msgstr "" - -#: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Clear IK Chain" -msgstr "" - -#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Make Custom Bone(s) from Node(s)" msgstr "" @@ -4619,7 +4928,7 @@ msgid "Frame Selection" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Layout" +msgid "Preview Canvas Scale" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4671,6 +4980,10 @@ msgid "Divide grid step by 2" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Pan View" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Add %s" msgstr "" @@ -4693,7 +5006,7 @@ msgid "Error instancing scene from %s" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Change default type" +msgid "Change Default Type" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4779,19 +5092,19 @@ msgid "Create Emission Points From Node" msgstr "" #: editor/plugins/curve_editor_plugin.cpp -msgid "Flat0" +msgid "Flat 0" msgstr "" #: editor/plugins/curve_editor_plugin.cpp -msgid "Flat1" +msgid "Flat 1" msgstr "" -#: editor/plugins/curve_editor_plugin.cpp -msgid "Ease in" +#: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp +msgid "Ease In" msgstr "" -#: editor/plugins/curve_editor_plugin.cpp -msgid "Ease out" +#: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp +msgid "Ease Out" msgstr "" #: editor/plugins/curve_editor_plugin.cpp @@ -4811,23 +5124,23 @@ msgid "Load Curve Preset" msgstr "" #: editor/plugins/curve_editor_plugin.cpp -msgid "Add point" +msgid "Add Point" msgstr "" #: editor/plugins/curve_editor_plugin.cpp -msgid "Remove point" +msgid "Remove Point" msgstr "" #: editor/plugins/curve_editor_plugin.cpp -msgid "Left linear" +msgid "Left Linear" msgstr "" #: editor/plugins/curve_editor_plugin.cpp -msgid "Right linear" +msgid "Right Linear" msgstr "" #: editor/plugins/curve_editor_plugin.cpp -msgid "Load preset" +msgid "Load Preset" msgstr "" #: editor/plugins/curve_editor_plugin.cpp @@ -4883,11 +5196,15 @@ msgid "This doesn't work on scene root!" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Trimesh Shape" +msgid "Create Trimesh Static Shape" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Shape" +msgid "Failed creating shapes!" +msgstr "" + +#: editor/plugins/mesh_instance_editor_plugin.cpp +msgid "Create Convex Shape(s)" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp @@ -4940,15 +5257,11 @@ msgid "Create Trimesh Static Body" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Static Body" -msgstr "" - -#: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Trimesh Collision Sibling" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Collision Sibling" +msgid "Create Convex Collision Sibling(s)" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp @@ -5102,20 +5415,20 @@ msgid "Create Navigation Polygon" msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp -msgid "Generating Visibility Rect" +#: editor/plugins/particles_editor_plugin.cpp +msgid "Convert to CPUParticles" msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp -msgid "Generate Visibility Rect" +msgid "Generating Visibility Rect" msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp -msgid "Can only set point into a ParticlesMaterial process material" +msgid "Generate Visibility Rect" msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp -#: editor/plugins/particles_editor_plugin.cpp -msgid "Convert to CPUParticles" +msgid "Can only set point into a ParticlesMaterial process material" msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp @@ -5257,7 +5570,7 @@ msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp editor/plugins/theme_editor_plugin.cpp -#: editor/project_export.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_export.cpp msgid "Options" msgstr "" @@ -5308,7 +5621,7 @@ msgid "Split Segment (in curve)" msgstr "" #: editor/plugins/physical_bone_plugin.cpp -msgid "Move joint" +msgid "Move Joint" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5541,7 +5854,6 @@ msgid "Open in Editor" msgstr "" #: editor/plugins/resource_preloader_editor_plugin.cpp -#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Load Resource" msgstr "" @@ -5630,6 +5942,11 @@ msgid "%s Class Reference" msgstr "" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp +msgid "Find Next" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp msgid "Toggle alphabetical sorting of the method list." msgstr "" @@ -5710,10 +6027,6 @@ msgstr "" msgid "Close All" msgstr "" -#: editor/plugins/script_editor_plugin.cpp -msgid "Close Other Tabs" -msgstr "" - #: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp msgid "Run" msgstr "" @@ -5722,11 +6035,6 @@ msgstr "" msgid "Toggle Scripts Panel" msgstr "" -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/script_text_editor.cpp -msgid "Find Next" -msgstr "" - #: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp msgid "Step Over" msgstr "" @@ -5753,7 +6061,7 @@ msgid "Debug with External Editor" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Open Godot online documentation" +msgid "Open Godot online documentation." msgstr "" #: editor/plugins/script_editor_plugin.cpp @@ -5761,7 +6069,7 @@ msgid "Request Docs" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Help improve the Godot documentation by giving feedback" +msgid "Help improve the Godot documentation by giving feedback." msgstr "" #: editor/plugins/script_editor_plugin.cpp @@ -5787,10 +6095,12 @@ msgid "" msgstr "" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp msgid "Reload" msgstr "" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp msgid "Resave" msgstr "" @@ -5803,6 +6113,27 @@ msgid "Search Results" msgstr "" #: editor/plugins/script_text_editor.cpp +msgid "Connections to method:" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Source" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Signal" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Target" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "" +"Missing connected method '%s' for signal '%s' from node '%s' to node '%s'." +msgstr "" + +#: editor/plugins/script_text_editor.cpp msgid "Line" msgstr "" @@ -5814,10 +6145,6 @@ msgstr "" msgid "Go to Function" msgstr "" -#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp -msgid "Standard" -msgstr "" - #: editor/plugins/script_text_editor.cpp msgid "Only resources from filesystem can be dropped." msgstr "" @@ -5850,6 +6177,11 @@ msgstr "" msgid "Syntax Highlighter" msgstr "" +#: editor/plugins/script_text_editor.cpp +#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp +msgid "Bookmarks" +msgstr "" + #: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" @@ -5877,6 +6209,22 @@ msgid "Toggle Comment" msgstr "" #: editor/plugins/script_text_editor.cpp +msgid "Toggle Bookmark" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Go to Next Bookmark" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Go to Previous Bookmark" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Remove All Bookmarks" +msgstr "" + +#: editor/plugins/script_text_editor.cpp msgid "Fold/Unfold Line" msgstr "" @@ -5950,6 +6298,12 @@ msgid "Contextual Help" msgstr "" #: editor/plugins/shader_editor_plugin.cpp +msgid "" +"This shader has been modified on on disk.\n" +"What action should be taken?" +msgstr "" + +#: editor/plugins/shader_editor_plugin.cpp msgid "Shader" msgstr "" @@ -6287,7 +6641,7 @@ msgid "Right View" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Switch Perspective/Orthogonal view" +msgid "Switch Perspective/Orthogonal View" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp @@ -6327,11 +6681,12 @@ msgid "Toggle Freelook" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Transform" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Snap object to floor" +msgid "Snap Object to Floor" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp @@ -6472,35 +6827,35 @@ msgid "Invalid geometry, can't replace by mesh." msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Invalid geometry, can't create polygon." +msgid "Convert to Mesh2D" msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Invalid geometry, can't create collision polygon." +msgid "Invalid geometry, can't create polygon." msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Invalid geometry, can't create light occluder." +msgid "Convert to Polygon2D" msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Sprite" +msgid "Invalid geometry, can't create collision polygon." msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Convert to Mesh2D" +msgid "Create CollisionPolygon2D Sibling" msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Convert to Polygon2D" +msgid "Invalid geometry, can't create light occluder." msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Create CollisionPolygon2D Sibling" +msgid "Create LightOccluder2D Sibling" msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Create LightOccluder2D Sibling" +msgid "Sprite" msgstr "" #: editor/plugins/sprite_editor_plugin.cpp @@ -6520,7 +6875,11 @@ msgid "Settings:" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "ERROR: Couldn't load frame resource!" +msgid "No Frames Selected" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Add %d Frame(s)" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp @@ -6528,6 +6887,10 @@ msgid "Add Frame" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "ERROR: Couldn't load frame resource!" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Resource clipboard is empty or not a texture!" msgstr "" @@ -6568,6 +6931,14 @@ msgid "Animation Frames:" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Add a Texture from File" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Add Frames from a Sprite Sheet" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Insert Empty (Before)" msgstr "" @@ -6584,6 +6955,26 @@ msgid "Move (After)" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Select Frames" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Horizontal:" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Vertical:" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Select/Clear All Frames" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Create Frames from Sprite Sheet" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "SpriteFrames" msgstr "" @@ -6648,12 +7039,12 @@ msgstr "" msgid "Remove All Items" msgstr "" -#: editor/plugins/theme_editor_plugin.cpp +#: editor/plugins/theme_editor_plugin.cpp editor/project_manager.cpp msgid "Remove All" msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "Edit theme..." +msgid "Edit Theme" msgstr "" #: editor/plugins/theme_editor_plugin.cpp @@ -6681,11 +7072,11 @@ msgid "Create From Current Editor Theme" msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "CheckBox Radio1" +msgid "Toggle Button" msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "CheckBox Radio2" +msgid "Disabled Button" msgstr "" #: editor/plugins/theme_editor_plugin.cpp @@ -6693,6 +7084,10 @@ msgid "Item" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +msgid "Disabled Item" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Check Item" msgstr "" @@ -6709,6 +7104,22 @@ msgid "Checked Radio Item" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +msgid "Named Sep." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Submenu" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Item 1" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Item 2" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Has" msgstr "" @@ -6717,7 +7128,7 @@ msgid "Many" msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "Has,Many,Options" +msgid "Disabled LineEdit" msgstr "" #: editor/plugins/theme_editor_plugin.cpp @@ -6733,6 +7144,18 @@ msgid "Tab 3" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +msgid "Editable Item" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Subtree" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Has,Many,Options" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Data Type:" msgstr "" @@ -6765,6 +7188,7 @@ msgid "Fix Invalid Tiles" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp +#: modules/gridmap/grid_map_editor_plugin.cpp msgid "Cut Selection" msgstr "" @@ -6805,35 +7229,45 @@ msgid "Mirror Y" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp +msgid "Disable Autotile" +msgstr "" + +#: editor/plugins/tile_map_editor_plugin.cpp +msgid "Enable Priority" +msgstr "" + +#: editor/plugins/tile_map_editor_plugin.cpp msgid "Paint Tile" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Pick Tile" +msgid "" +"Shift+RMB: Line Draw\n" +"Shift+Ctrl+RMB: Rectangle Paint" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Copy Selection" +msgid "Pick Tile" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Rotate left" +msgid "Rotate Left" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Rotate right" +msgid "Rotate Right" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Flip horizontally" +msgid "Flip Horizontally" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Flip vertically" +msgid "Flip Vertically" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Clear transform" +msgid "Clear Transform" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp @@ -6869,6 +7303,38 @@ msgid "Select the previous shape, subtile, or Tile." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp +msgid "Region Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Collision Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Occlusion Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Navigation Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Bitmask Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Priority Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Icon Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Z Index Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp msgid "Copy bitmask." msgstr "" @@ -6948,6 +7414,7 @@ msgstr "" msgid "" "LMB: Set bit on.\n" "RMB: Set bit off.\n" +"Shift+LMB: Set wildcard bit.\n" "Click on another Tile to edit it." msgstr "" @@ -7055,6 +7522,66 @@ msgid "TileSet" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add input +" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add output +" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add input port" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add output port" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Change input port type" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Change output port type" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Change input port name" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Change output port name" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Remove input port" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Remove output port" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Set expression" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Resize VisualShader node" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Set Uniform Name" msgstr "" @@ -7091,6 +7618,837 @@ msgid "Light" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Create Shader Node" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Color function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Color operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Grayscale function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts HSV vector to RGB equivalent." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts RGB vector to HSV equivalent." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Sepia function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Burn operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Darken operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Difference operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Dodge operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "HardLight operator" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Lighten operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Overlay operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Screen operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "SoftLight operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Color constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Color uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns an associated vector if the provided scalars are equal, greater or " +"less." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns an associated vector if the provided boolean value is true or false." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'camera' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'inv_camera' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'inv_projection' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'normal' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'projection' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'time' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'viewport_size' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'world' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'texture_pixel_size' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Input parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'binormal' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'fragcoord' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_coord' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_uv' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'side' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'tangent' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv2' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'vertex' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'view' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'albedo' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'attenuation' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'diffuse' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_color' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'roughness' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'specular' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'transmission' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'modelview' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_size' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'tangent' input parameter for vertex and fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_pass' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_coord' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_pixel_size' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_uv' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_alpha' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_height' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_uv' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_vec' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'normal' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'shadow_color' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'extra' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'projection' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'vertex' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'world' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'active' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'custom' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'custom_alpha' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'delta' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'emission_transform' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'index' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'lifetime' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'restart' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'time' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'transform' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'velocity' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Scalar function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Scalar operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "E constant (2.718282). Represents the base of the natural logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Epsilon constant (0.00001). Smallest possible scalar number." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Phi constant (1.618034). Golden ratio." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi/4 constant (0.785398) or 45 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi/2 constant (1.570796) or 90 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi constant (3.141593) or 180 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Tau constant (6.283185) or 360 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Sqrt2 constant (1.414214). Square root of 2." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the absolute value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-tangent of the parameters." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Finds the nearest integer that is greater than or equal to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Constrains a value to lie between two further values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts a quantity in radians to degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-e Exponential." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-2 Exponential." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Finds the nearest integer less than or equal to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Computes the fractional part of the argument." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the inverse of the square root of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Natural logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-2 logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the greater of two values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the lesser of two values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Linear interpolation between two scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the opposite value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 - scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns the value of the first parameter raised to the power of the second." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts a quantity in degrees to radians." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 / scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the nearest integer to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the nearest even integer to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Clamps the value between 0.0 and 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Extracts the sign of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the square root of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( scalar(edge0), scalar(edge1), scalar(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if x is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( scalar(edge), scalar(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the truncated value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Adds scalar to scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Divides scalar by scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies scalar by scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the remainder of the two scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Subtracts scalar from scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Scalar constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Scalar uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Perform the cubic texture lookup." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Perform the texture lookup." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Cubic texture uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "2D texture uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Transform function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) Calculate the outer product of a pair of vectors.\n" +"\n" +"OuterProduct treats the first parameter 'c' as a column vector (matrix with " +"one column) and the second parameter 'r' as a row vector (matrix with one " +"row) and does a linear algebraic matrix multiply 'c * r', yielding a matrix " +"whose number of rows is the number of components in 'c' and whose number of " +"columns is the number of components in 'r'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Composes transform from four vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Decomposes transform to four vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the determinant of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the inverse of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the transpose of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies transform by transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies vector by transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Transform constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Transform uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Composes vector from three scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Decomposes vector to three scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the cross product of two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the distance between two points." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the dot product of two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns a vector that points in the same direction as a reference vector. " +"The function has three vector parameters : N, the vector to orient, I, the " +"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 "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the length of a vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Linear interpolation between two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the normalize product of vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 - vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 / vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns a vector that points in the direction of reflection ( a : incident " +"vector, b : normal vector )." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns a vector that points in the direction of refraction." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( vector(edge0), vector(edge1), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if 'x' is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( scalar(edge0), scalar(edge1), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if 'x' is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( vector(edge), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( scalar(edge), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Adds vector to vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Divides vector by vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies vector by vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the remainder of the two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Subtracts vector from vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Custom Godot Shader Language expression, with custom amount of input and " +"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 "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns falloff based on the dot product of surface normal and view " +"direction of camera (pass associated inputs to it)." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) (Fragment/Light mode only) Scalar derivative function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) (Fragment/Light mode only) Vector derivative function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Derivative in 'x' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Derivative in 'x' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Derivative in 'y' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Derivative in 'y' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Sum of absolute derivative " +"in 'x' and 'y'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Sum of absolute derivative " +"in 'x' and 'y'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "VisualShader" msgstr "" @@ -7278,6 +8636,10 @@ msgid "Directory already contains a Godot project." msgstr "" #: editor/project_manager.cpp +msgid "New Game Project" +msgstr "" + +#: editor/project_manager.cpp msgid "Imported Project" msgstr "" @@ -7324,10 +8686,6 @@ msgid "Rename Project" msgstr "" #: editor/project_manager.cpp -msgid "New Game Project" -msgstr "" - -#: editor/project_manager.cpp msgid "Import Existing Project" msgstr "" @@ -7356,10 +8714,6 @@ msgid "Project Name:" msgstr "" #: editor/project_manager.cpp -msgid "Create folder" -msgstr "" - -#: editor/project_manager.cpp msgid "Project Path:" msgstr "" @@ -7368,10 +8722,6 @@ msgid "Project Installation Path:" msgstr "" #: editor/project_manager.cpp -msgid "Browse" -msgstr "" - -#: editor/project_manager.cpp msgid "Renderer:" msgstr "" @@ -7424,8 +8774,8 @@ msgid "" "\n" "If you proceed with opening it, it will be converted to Godot's current " "configuration file format.\n" -"Warning: You will not be able to open the project with previous versions of " -"the engine anymore." +"Warning: You won't be able to open the project with previous versions of the " +"engine anymore." msgstr "" #: editor/project_manager.cpp @@ -7436,8 +8786,8 @@ msgid "" "%s\n" "\n" "Do you want to convert it?\n" -"Warning: You will not be able to open the project with previous versions of " -"the engine anymore." +"Warning: You won't be able to open the project with previous versions of the " +"engine anymore." msgstr "" #: editor/project_manager.cpp @@ -7449,7 +8799,7 @@ msgstr "" #: editor/project_manager.cpp msgid "" "Can't run project: no main scene defined.\n" -"Please edit the project and set the main scene in \"Project Settings\" under " +"Please edit the project and set the main scene in the Project Settings under " "the \"Application\" category." msgstr "" @@ -7460,23 +8810,37 @@ msgid "" msgstr "" #: editor/project_manager.cpp -msgid "Are you sure to run more than one project?" +msgid "Are you sure to run %d projects at once?" +msgstr "" + +#: editor/project_manager.cpp +msgid "" +"Remove %d projects from the list?\n" +"The project folders' contents won't be modified." +msgstr "" + +#: editor/project_manager.cpp +msgid "" +"Remove this project from the list?\n" +"The project folder's contents won't be modified." msgstr "" #: editor/project_manager.cpp -msgid "Remove project from the list? (Folder contents will not be modified)" +msgid "" +"Remove all missing projects from the list? (Folders contents will not be " +"modified)" msgstr "" #: editor/project_manager.cpp msgid "" "Language changed.\n" -"The UI will update next time the editor or project manager starts." +"The interface will update after restarting the editor or project manager." msgstr "" #: editor/project_manager.cpp msgid "" -"You are about the scan %s folders for existing Godot projects. Do you " -"confirm?" +"Are you sure to scan %s folders for existing Godot projects?\n" +"This could take a while." msgstr "" #: editor/project_manager.cpp @@ -7500,6 +8864,10 @@ msgid "New Project" msgstr "" #: editor/project_manager.cpp +msgid "Remove Missing" +msgstr "" + +#: editor/project_manager.cpp msgid "Templates" msgstr "" @@ -7517,8 +8885,8 @@ msgstr "" #: editor/project_manager.cpp msgid "" -"You don't currently have any projects.\n" -"Would you like to explore the official example projects in the Asset Library?" +"You currently don't have any projects.\n" +"Would you like to explore official example projects in the Asset Library?" msgstr "" #: editor/project_settings_editor.cpp @@ -7544,7 +8912,7 @@ msgid "" msgstr "" #: editor/project_settings_editor.cpp -msgid "Action '%s' already exists!" +msgid "An action with the name '%s' already exists." msgstr "" #: editor/project_settings_editor.cpp @@ -7698,10 +9066,6 @@ msgid "" msgstr "" #: editor/project_settings_editor.cpp -msgid "Already existing" -msgstr "" - -#: editor/project_settings_editor.cpp msgid "Add Input Action" msgstr "" @@ -7766,7 +9130,7 @@ msgid "Override For..." msgstr "" #: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp -msgid "Editor must be restarted for changes to take effect" +msgid "The editor must be restarted for changes to take effect." msgstr "" #: editor/project_settings_editor.cpp @@ -7826,11 +9190,11 @@ msgid "Locales Filter" msgstr "" #: editor/project_settings_editor.cpp -msgid "Show all locales" +msgid "Show All Locales" msgstr "" #: editor/project_settings_editor.cpp -msgid "Show only selected locales" +msgid "Show Selected Locales Only" msgstr "" #: editor/project_settings_editor.cpp @@ -7846,14 +9210,6 @@ msgid "AutoLoad" msgstr "" #: editor/property_editor.cpp -msgid "Ease In" -msgstr "" - -#: editor/property_editor.cpp -msgid "Ease Out" -msgstr "" - -#: editor/property_editor.cpp msgid "Zero" msgstr "" @@ -7926,7 +9282,7 @@ msgid "Suffix" msgstr "" #: editor/rename_dialog.cpp -msgid "Advanced options" +msgid "Advanced Options" msgstr "" #: editor/rename_dialog.cpp @@ -8178,7 +9534,7 @@ msgid "User Interface" msgstr "" #: editor/scene_tree_dock.cpp -msgid "Custom Node" +msgid "Other Node" msgstr "" #: editor/scene_tree_dock.cpp @@ -8220,7 +9576,7 @@ msgid "Clear Inheritance" msgstr "" #: editor/scene_tree_dock.cpp -msgid "Open documentation" +msgid "Open Documentation" msgstr "" #: editor/scene_tree_dock.cpp @@ -8247,7 +9603,7 @@ msgstr "" msgid "Save Branch as Scene" msgstr "" -#: editor/scene_tree_dock.cpp +#: editor/scene_tree_dock.cpp editor/script_editor_debugger.cpp msgid "Copy Node Path" msgstr "" @@ -8290,6 +9646,18 @@ msgid "Toggle Visible" msgstr "" #: editor/scene_tree_editor.cpp +msgid "Unlock Node" +msgstr "" + +#: editor/scene_tree_editor.cpp +msgid "Button Group" +msgstr "" + +#: editor/scene_tree_editor.cpp +msgid "(Connecting From)" +msgstr "" + +#: editor/scene_tree_editor.cpp msgid "Node configuration warning:" msgstr "" @@ -8311,8 +9679,8 @@ msgid "" "Click to show groups dock." msgstr "" -#: editor/scene_tree_editor.cpp editor/script_create_dialog.cpp -msgid "Open Script" +#: editor/scene_tree_editor.cpp +msgid "Open Script:" msgstr "" #: editor/scene_tree_editor.cpp @@ -8358,71 +9726,71 @@ msgid "Select a Node" msgstr "" #: editor/script_create_dialog.cpp -msgid "Error loading template '%s'" +msgid "Path is empty." msgstr "" #: editor/script_create_dialog.cpp -msgid "Error - Could not create script in filesystem." +msgid "Filename is empty." msgstr "" #: editor/script_create_dialog.cpp -msgid "Error loading script from %s" +msgid "Path is not local." msgstr "" #: editor/script_create_dialog.cpp -msgid "N/A" +msgid "Invalid base path." msgstr "" #: editor/script_create_dialog.cpp -msgid "Open Script/Choose Location" +msgid "A directory with the same name exists." msgstr "" #: editor/script_create_dialog.cpp -msgid "Path is empty" +msgid "Invalid extension." msgstr "" #: editor/script_create_dialog.cpp -msgid "Filename is empty" +msgid "Wrong extension chosen." msgstr "" #: editor/script_create_dialog.cpp -msgid "Path is not local" +msgid "Error loading template '%s'" msgstr "" #: editor/script_create_dialog.cpp -msgid "Invalid base path" +msgid "Error - Could not create script in filesystem." msgstr "" #: editor/script_create_dialog.cpp -msgid "Directory of the same name exists" +msgid "Error loading script from %s" msgstr "" #: editor/script_create_dialog.cpp -msgid "File exists, will be reused" +msgid "N/A" msgstr "" #: editor/script_create_dialog.cpp -msgid "Invalid extension" +msgid "Open Script / Choose Location" msgstr "" #: editor/script_create_dialog.cpp -msgid "Wrong extension chosen" +msgid "Open Script" msgstr "" #: editor/script_create_dialog.cpp -msgid "Invalid Path" +msgid "File exists, it will be reused." msgstr "" #: editor/script_create_dialog.cpp -msgid "Invalid class name" +msgid "Invalid class name." msgstr "" #: editor/script_create_dialog.cpp -msgid "Invalid inherited parent name or path" +msgid "Invalid inherited parent name or path." msgstr "" #: editor/script_create_dialog.cpp -msgid "Script valid" +msgid "Script is valid." msgstr "" #: editor/script_create_dialog.cpp @@ -8430,15 +9798,15 @@ msgid "Allowed: a-z, A-Z, 0-9 and _" msgstr "" #: editor/script_create_dialog.cpp -msgid "Built-in script (into scene file)" +msgid "Built-in script (into scene file)." msgstr "" #: editor/script_create_dialog.cpp -msgid "Create new script file" +msgid "Will create a new script file." msgstr "" #: editor/script_create_dialog.cpp -msgid "Load existing script file" +msgid "Will load an existing script file." msgstr "" #: editor/script_create_dialog.cpp @@ -8569,6 +9937,10 @@ msgstr "" msgid "Set From Tree" msgstr "" +#: editor/script_editor_debugger.cpp +msgid "Export measures as CSV" +msgstr "" + #: editor/settings_config_dialog.cpp msgid "Erase Shortcut" msgstr "" @@ -8698,6 +10070,14 @@ msgid "GDNativeLibrary" msgstr "" #: modules/gdnative/gdnative_library_singleton_editor.cpp +msgid "Enabled GDNative Singleton" +msgstr "" + +#: modules/gdnative/gdnative_library_singleton_editor.cpp +msgid "Disabled GDNative Singleton" +msgstr "" + +#: modules/gdnative/gdnative_library_singleton_editor.cpp msgid "Library" msgstr "" @@ -8782,7 +10162,7 @@ msgid "GridMap Fill Selection" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "GridMap Duplicate Selection" +msgid "GridMap Paste Selection" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp @@ -8850,18 +10230,6 @@ msgid "Cursor Clear Rotation" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Create Area" -msgstr "" - -#: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Create Exterior Connector" -msgstr "" - -#: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Erase Area" -msgstr "" - -#: modules/gridmap/grid_map_editor_plugin.cpp msgid "Clear Selection" msgstr "" @@ -9212,15 +10580,7 @@ msgid "Available Nodes:" msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Select or create a function to edit graph" -msgstr "" - -#: modules/visual_script/visual_script_editor.cpp -msgid "Edit Signal Arguments:" -msgstr "" - -#: modules/visual_script/visual_script_editor.cpp -msgid "Edit Variable:" +msgid "Select or create a function to edit its graph." msgstr "" #: modules/visual_script/visual_script_editor.cpp @@ -9350,6 +10710,19 @@ msgid "Debug keystore not configured in the Editor Settings nor in the preset." msgstr "" #: platform/android/export/export.cpp +msgid "Custom build requires a valid Android SDK path in Editor Settings." +msgstr "" + +#: platform/android/export/export.cpp +msgid "Invalid Android SDK path for custom build in Editor Settings." +msgstr "" + +#: platform/android/export/export.cpp +msgid "" +"Android project is not installed for compiling. Install from Editor menu." +msgstr "" + +#: platform/android/export/export.cpp msgid "Invalid public key for APK expansion." msgstr "" @@ -9357,6 +10730,34 @@ msgstr "" msgid "Invalid package name:" msgstr "" +#: platform/android/export/export.cpp +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 "" +"Android build version mismatch:\n" +" Template installed: %s\n" +" Godot Version: %s\n" +"Please reinstall Android build template from 'Project' menu." +msgstr "" + +#: platform/android/export/export.cpp +msgid "Building Android Project (gradle)" +msgstr "" + +#: 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 "" + +#: platform/android/export/export.cpp +msgid "No build apk generated at: " +msgstr "" + #: platform/iphone/export/export.cpp msgid "Identifier is missing." msgstr "" @@ -9609,27 +11010,27 @@ msgid "ARVRCamera must have an ARVROrigin node as its parent" msgstr "" #: scene/3d/arvr_nodes.cpp -msgid "ARVRController must have an ARVROrigin node as its parent" +msgid "ARVRController must have an ARVROrigin node as its parent." msgstr "" #: scene/3d/arvr_nodes.cpp msgid "" -"The controller id must not be 0 or this controller will not be bound to an " -"actual controller" +"The controller ID must not be 0 or this controller won't be bound to an " +"actual controller." msgstr "" #: scene/3d/arvr_nodes.cpp -msgid "ARVRAnchor must have an ARVROrigin node as its parent" +msgid "ARVRAnchor must have an ARVROrigin node as its parent." msgstr "" #: scene/3d/arvr_nodes.cpp msgid "" -"The anchor id must not be 0 or this anchor will not be bound to an actual " -"anchor" +"The anchor ID must not be 0 or this anchor won't be bound to an actual " +"anchor." msgstr "" #: scene/3d/arvr_nodes.cpp -msgid "ARVROrigin requires an ARVRCamera child node" +msgid "ARVROrigin requires an ARVRCamera child node." msgstr "" #: scene/3d/baked_lightmap.cpp @@ -9699,8 +11100,8 @@ msgstr "" #: scene/3d/cpu_particles.cpp msgid "" -"CPUParticles animation requires the usage of a SpatialMaterial with " -"\"Billboard Particles\" enabled." +"CPUParticles animation requires the usage of a SpatialMaterial whose " +"Billboard Mode is set to \"Particle Billboard\"." msgstr "" #: scene/3d/gi_probe.cpp @@ -9737,8 +11138,8 @@ msgstr "" #: scene/3d/particles.cpp msgid "" -"Particles animation requires the usage of a SpatialMaterial with \"Billboard " -"Particles\" enabled." +"Particles animation requires the usage of a SpatialMaterial whose Billboard " +"Mode is set to \"Particle Billboard\"." msgstr "" #: scene/3d/path.cpp @@ -9763,7 +11164,7 @@ msgid "Path property must point to a valid Spatial node to work." msgstr "" #: scene/3d/soft_body.cpp -msgid "This body will be ignored until you set a mesh" +msgid "This body will be ignored until you set a mesh." msgstr "" #: scene/3d/soft_body.cpp @@ -9872,10 +11273,6 @@ msgstr "" msgid "Please Confirm..." msgstr "" -#: scene/gui/file_dialog.cpp -msgid "Go to parent folder." -msgstr "" - #: scene/gui/popup.cpp msgid "" "Popups will hide by default unless you call popup() or any of the popup*() " @@ -9947,3 +11344,7 @@ msgstr "" #: servers/visual/shader_language.cpp msgid "Varyings can only be assigned in vertex function." msgstr "" + +#: servers/visual/shader_language.cpp +msgid "Constants cannot be modified." +msgstr "" diff --git a/editor/translations/el.po b/editor/translations/el.po index b6cf0f79dc..5a50cf69ae 100644 --- a/editor/translations/el.po +++ b/editor/translations/el.po @@ -2,14 +2,14 @@ # Copyright (c) 2007-2019 Juan Linietsky, Ariel Manzur. # Copyright (c) 2014-2019 Godot Engine contributors (cf. AUTHORS.md) # This file is distributed under the same license as the Godot source code. -# George Tsiamasiotis <gtsiam@windowslive.com>, 2017-2018. +# George Tsiamasiotis <gtsiam@windowslive.com>, 2017-2018, 2019. # Georgios Katsanakis <geo.elgeo@gmail.com>, 2019. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2019-03-12 15:26+0000\n" -"Last-Translator: Georgios Katsanakis <geo.elgeo@gmail.com>\n" +"PO-Revision-Date: 2019-06-16 19:42+0000\n" +"Last-Translator: George Tsiamasiotis <gtsiam@windowslive.com>\n" "Language-Team: Greek <https://hosted.weblate.org/projects/godot-engine/godot/" "el/>\n" "Language: el\n" @@ -17,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: Weblate 3.5.1\n" +"X-Generator: Weblate 3.7-dev\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -74,6 +74,15 @@ msgstr "ΙσοÏÏοπημÎνο" msgid "Mirror" msgstr "ΚατοπτÏισμός" +#: editor/animation_bezier_editor.cpp editor/editor_profiler.cpp +msgid "Time:" +msgstr "ΧÏόνος:" + +#: editor/animation_bezier_editor.cpp +#, fuzzy +msgid "Value:" +msgstr "Τιμή" + #: editor/animation_bezier_editor.cpp msgid "Insert Key Here" msgstr "Εισαγωγή ÎºÎ»ÎµÎ¹Î´Î¹Î¿Ï ÎµÎ´ÏŽ" @@ -123,9 +132,8 @@ msgid "Anim Change Call" msgstr "Anim Αλλαγή κλήσης" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Change Animation Length" -msgstr "Αλλαγή βÏόχου κίνησης" +msgstr "Αλλαγή μήκους κίνησης" #: editor/animation_track_editor.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp @@ -157,14 +165,18 @@ msgid "Animation Playback Track" msgstr "Κομμάτι αναπαÏαγωγής κίνησης" #: editor/animation_track_editor.cpp -msgid "Add Track" -msgstr "Î Ïοσθήκη κομματιοÏ" +msgid "Animation length (frames)" +msgstr "Μήκος κίνησης (καÏÎ)" #: editor/animation_track_editor.cpp -msgid "Animation Length Time (seconds)" +msgid "Animation length (seconds)" msgstr "Μήκος κίνησης (δευτεÏόλεπτα)" #: editor/animation_track_editor.cpp +msgid "Add Track" +msgstr "Î Ïοσθήκη κομματιοÏ" + +#: editor/animation_track_editor.cpp msgid "Animation Looping" msgstr "Επανάληψη κίνησης" @@ -182,9 +194,8 @@ msgid "Anim Clips:" msgstr "Αποσπάσματα κίνησης:" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Change Track Path" -msgstr "Αλλαγή τιμής πίνακα" +msgstr "Αλλαγή διαδÏομής κομματιοÏ" #: editor/animation_track_editor.cpp msgid "Toggle this track on/off." @@ -211,9 +222,8 @@ msgid "Time (s): " msgstr "ΧÏόνος (s): " #: editor/animation_track_editor.cpp -#, fuzzy msgid "Toggle Track Enabled" -msgstr "Φαινόμενο ÎτόπλεÏ" +msgstr "(Απ)ενεÏοποίηση κομματιοÏ" #: editor/animation_track_editor.cpp msgid "Continuous" @@ -266,19 +276,16 @@ msgid "Delete Key(s)" msgstr "ΔιαγÏαφή κλειδιών" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Change Animation Update Mode" -msgstr "Αλλαγή ονόματος κίνησης:" +msgstr "Αλλαγή λειτουÏγίας ενημÎÏωσης κίνησης" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Change Animation Interpolation Mode" -msgstr "ΜÎθοδος παÏεμβολής" +msgstr "Αλλαγή λειτουÏγίας παÏεμβολής κίνησης" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Change Animation Loop Mode" -msgstr "Αλλαγή βÏόχου κίνησης" +msgstr "Αλλαγή λειτουÏγίας επανάληψης κίνησης" #: editor/animation_track_editor.cpp msgid "Remove Anim Track" @@ -293,11 +300,13 @@ msgid "Create %d NEW tracks and insert keys?" msgstr "ΔημιουÏγία %d νÎων κομματιών και εισαγωγή κλειδιών;" #: editor/animation_track_editor.cpp editor/create_dialog.cpp -#: editor/editor_audio_buses.cpp editor/editor_plugin_settings.cpp -#: editor/plugin_config_dialog.cpp +#: editor/editor_audio_buses.cpp editor/editor_feature_profile.cpp +#: editor/editor_plugin_settings.cpp editor/plugin_config_dialog.cpp #: editor/plugins/abstract_polygon_2d_editor.cpp #: editor/plugins/mesh_instance_editor_plugin.cpp -#: editor/plugins/particles_editor_plugin.cpp editor/script_create_dialog.cpp +#: editor/plugins/particles_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_create_dialog.cpp msgid "Create" msgstr "ΔημιουÏγία" @@ -322,14 +331,12 @@ msgid "Anim Insert Key" msgstr "Anim εισαγωγή κλειδιοÏ" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Change Animation Step" -msgstr "Αλλαγή FPS κίνησης" +msgstr "Αλλαγή βήματος κίνησης" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Rearrange Tracks" -msgstr "Αναδιάταξη των AutoLoad" +msgstr "Αναδιάταξη κομματιών" #: editor/animation_track_editor.cpp msgid "Transform tracks only apply to Spatial-based nodes." @@ -363,9 +370,8 @@ msgid "Not possible to add a new track without a root" msgstr "ΑδÏνατη η Ï€Ïοσθήκη ÎºÎ¿Î¼Î¼Î±Ï„Î¹Î¿Ï Ï‡Ï‰Ïίς Ïίζα" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Add Bezier Track" -msgstr "Î Ïοσθήκη κομματιοÏ" +msgstr "Î Ïοσθήκη ÎºÎ¿Î¼Î¼Î±Ï„Î¹Î¿Ï Bezier" #: editor/animation_track_editor.cpp msgid "Track path is invalid, so can't add a key." @@ -376,23 +382,20 @@ msgid "Track is not of type Spatial, can't insert key" msgstr "ΑδÏνατη η Ï€Ïοσθήκη κλειδιοÏ, το κομμάτι δεν είναι Ï„Ïπου Spatial" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Add Transform Track Key" -msgstr "Κομμάτι 3D μετασχηματισμοÏ" +msgstr "Î Ïοσθήκη ÎºÎ»ÎµÎ¹Î´Î¹Î¿Ï Î¼ÎµÏ„Î±ÏƒÏ‡Î·Î¼Î±Ï„Î¹ÏƒÎ¼Î¿Ï" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Add Track Key" -msgstr "Î Ïοσθήκη κομματιοÏ" +msgstr "Î Ïοσθήκη κλειδιοÏ" #: editor/animation_track_editor.cpp msgid "Track path is invalid, so can't add a method key." msgstr "ΑδÏνατη η Ï€Ïοσθήκη ÎºÎ»ÎµÎ¹Î´Î¹Î¿Ï Î¼ÎµÎ¸ÏŒÎ´Î¿Ï…, λόγω άκυÏης διαδÏομής κομματιοÏ." #: editor/animation_track_editor.cpp -#, fuzzy msgid "Add Method Track Key" -msgstr "Κομμάτι κλήσης μεθόδου" +msgstr "Î Ïοσθήκη ÎºÎ»ÎµÎ¹Î´Î¹Î¿Ï Î¼ÎµÎ¸ÏŒÎ´Î¿Ï…" #: editor/animation_track_editor.cpp msgid "Method not found in object: " @@ -422,6 +425,23 @@ msgstr "" "κομμάτι." #: editor/animation_track_editor.cpp +msgid "" +"This animation belongs to an imported scene, so changes to imported tracks " +"will not be saved.\n" +"\n" +"To enable the ability to add custom tracks, navigate to the scene's import " +"settings and set\n" +"\"Animation > Storage\" to \"Files\", enable \"Animation > Keep Custom Tracks" +"\", then re-import.\n" +"Alternatively, use an import preset that imports animations to separate " +"files." +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Warning: Editing imported animation" +msgstr "" + +#: editor/animation_track_editor.cpp msgid "Only show tracks from nodes selected in tree." msgstr "Δείξε μόνο κομμάτια απο επιλεγμÎνους κόμβους στο δÎντÏο." @@ -430,9 +450,8 @@ msgid "Group tracks by node or display them as plain list." msgstr "Ομαδοποίηση κομματιών ανα κόμβο, ή εμφάνιση σε λίστα." #: editor/animation_track_editor.cpp -#, fuzzy msgid "Snap:" -msgstr "ΚοÏμπωμα" +msgstr "ΚοÏμπωμα:" #: editor/animation_track_editor.cpp msgid "Animation step value." @@ -440,7 +459,7 @@ msgstr "Τιμή βήματος κίνησης." #: editor/animation_track_editor.cpp msgid "Seconds" -msgstr "" +msgstr "ΔευτεÏόλεπτα" #: editor/animation_track_editor.cpp msgid "FPS" @@ -484,14 +503,12 @@ msgid "Delete Selection" msgstr "ΔιαγÏαφή επιλογής" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Go to Next Step" -msgstr "Πήγαινε στο επόμενο βήμα" +msgstr "Επόμενο βήμα" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Go to Previous Step" -msgstr "Πήγαινε στο Ï€ÏοηγοÏμενο βήμα" +msgstr "Î ÏοηγοÏμενο βήμα" #: editor/animation_track_editor.cpp msgid "Optimize Animation" @@ -557,7 +574,8 @@ msgstr "Λόγος μεγÎθυνσης:" msgid "Select tracks to copy:" msgstr "Επιλογή κομματιών για αντιγÏαφή:" -#: editor/animation_track_editor.cpp editor/editor_properties.cpp +#: editor/animation_track_editor.cpp editor/editor_log.cpp +#: editor/editor_properties.cpp #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp @@ -566,17 +584,16 @@ msgid "Copy" msgstr "ΑντιγÏαφή" #: editor/animation_track_editor_plugins.cpp -#, fuzzy msgid "Add Audio Track Clip" -msgstr "Αποσπάσματα ήχου:" +msgstr "Î Ïοσθήκη αποσπάσματος ήχου" #: editor/animation_track_editor_plugins.cpp msgid "Change Audio Track Clip Start Offset" -msgstr "" +msgstr "Μετατόπιση εκκίνησης ÎºÎ¿Î¼Î¼Î±Ï„Î¹Î¿Ï Î®Ï‡Î¿Ï…" #: editor/animation_track_editor_plugins.cpp msgid "Change Audio Track Clip End Offset" -msgstr "" +msgstr "Μετατόπιση Ï„Îλους ÎºÎ¿Î¼Î¼Î±Ï„Î¹Î¿Ï Î®Ï‡Î¿Ï…" #: editor/array_property_edit.cpp msgid "Resize Array" @@ -592,7 +609,7 @@ msgstr "Αλλαγή τιμής πίνακα" #: editor/code_editor.cpp msgid "Go to Line" -msgstr "Πήγαινε στη γÏαμμή" +msgstr "Πήγαινε σε γÏαμμή" #: editor/code_editor.cpp msgid "Line Number:" @@ -626,6 +643,11 @@ msgstr "Αντικατάσταση όλων" msgid "Selection Only" msgstr "Μόνο στην επιλογή" +#: editor/code_editor.cpp editor/plugins/script_text_editor.cpp +#: editor/plugins/text_editor.cpp +msgid "Standard" +msgstr "" + #: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/texture_region_editor_plugin.cpp #: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp @@ -648,24 +670,42 @@ msgstr "Î Ïοειδοποιήσεις" #: editor/code_editor.cpp msgid "Line and column numbers." -msgstr "" +msgstr "ΑÏιθμοί γÏαμμής και στήλης." #: editor/connections_dialog.cpp -msgid "Method in target Node must be specified!" +#, fuzzy +msgid "Method in target node must be specified." msgstr "Î ÏÎπει να οÏισθεί συνάÏτηση για τον στοχευμÎνο κόμβο!" #: editor/connections_dialog.cpp +#, fuzzy msgid "" -"Target method not found! Specify a valid method or attach a script to target " -"Node." +"Target method not found. Specify a valid method or attach a script to the " +"target node." msgstr "" "Η στοχευμÎνη συνάÏτηση δεν βÏÎθηκε! ΟÏίστε μία ÎγκυÏη μÎθοδο ή συνδÎστε μία " "δεσμή ενεÏγειών στον στοχευμÎνο κόμβο." #: editor/connections_dialog.cpp -msgid "Connect To Node:" +#, fuzzy +msgid "Connect to Node:" msgstr "ΣÏνδεση στον κόμβο:" +#: editor/connections_dialog.cpp +#, fuzzy +msgid "Connect to Script:" +msgstr "Δεν ήταν δυνατή η σÏνδεση στον κεντÏικό υπολογιστή:" + +#: editor/connections_dialog.cpp +#, fuzzy +msgid "From Signal:" +msgstr "Σήματα:" + +#: editor/connections_dialog.cpp +#, fuzzy +msgid "Scene does not contain any script." +msgstr "Ο κόμβος δεν πεÏιÎχει γεωμετÏία." + #: editor/connections_dialog.cpp editor/editor_autoload_settings.cpp #: editor/groups_editor.cpp editor/plugins/item_list_editor_plugin.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_settings_editor.cpp @@ -673,10 +713,12 @@ msgid "Add" msgstr "Î Ïοσθήκη" #: editor/connections_dialog.cpp editor/dependency_editor.cpp -#: editor/groups_editor.cpp editor/plugins/animation_player_editor_plugin.cpp +#: editor/editor_feature_profile.cpp editor/groups_editor.cpp +#: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp #: editor/plugins/resource_preloader_editor_plugin.cpp -#: editor/plugins/theme_editor_plugin.cpp editor/project_manager.cpp +#: editor/plugins/theme_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_manager.cpp #: editor/project_settings_editor.cpp msgid "Remove" msgstr "ΑφαίÏεση" @@ -690,21 +732,32 @@ msgid "Extra Call Arguments:" msgstr "ΕπιπλÎον παÏάμετÏοι κλήσης:" #: editor/connections_dialog.cpp -msgid "Path to Node:" -msgstr "ΔιαδÏομή για τον κόμβο:" - -#: editor/connections_dialog.cpp -msgid "Make Function" -msgstr "ΔημιουÏγήστε μία συνάÏτηση" +#, fuzzy +msgid "Advanced" +msgstr "ΕπιλογÎÏ‚ κουμπώματος" #: editor/connections_dialog.cpp msgid "Deferred" msgstr "ΑναβλημÎνη" #: editor/connections_dialog.cpp +msgid "" +"Defers the signal, storing it in a queue and only firing it at idle time." +msgstr "" + +#: editor/connections_dialog.cpp msgid "Oneshot" msgstr "Μία κλήση" +#: editor/connections_dialog.cpp +msgid "Disconnects the signal after its first emission." +msgstr "" + +#: editor/connections_dialog.cpp +#, fuzzy +msgid "Cannot connect signal" +msgstr "ΣÏνδεση σήματος: " + #: editor/connections_dialog.cpp editor/dependency_editor.cpp #: editor/export_template_manager.cpp editor/groups_editor.cpp #: editor/plugins/animation_player_editor_plugin.cpp @@ -745,18 +798,19 @@ msgid "Disconnect" msgstr "ΑποσÏνδεση" #: editor/connections_dialog.cpp -msgid "Connect Signal: " +#, fuzzy +msgid "Connect a Signal to a Method" msgstr "ΣÏνδεση σήματος: " #: editor/connections_dialog.cpp -msgid "Edit Connection: " +#, fuzzy +msgid "Edit Connection:" msgstr "ΕπεξεÏγασία σÏνδεσης: " #: editor/connections_dialog.cpp -#, fuzzy msgid "Are you sure you want to remove all connections from the \"%s\" signal?" msgstr "" -"Είστε σίγουÏοι πως θÎλετε να αφαιÏÎσετε όλες της συνδÎσεις απο αυτό το σήμα;" +"Είστε σίγουÏοι πως θÎλετε να αφαιÏÎσετε όλες της συνδÎσεις απο το σήμα «%s»;" #: editor/connections_dialog.cpp editor/editor_help.cpp editor/node_dock.cpp msgid "Signals" @@ -784,7 +838,6 @@ msgid "Change %s Type" msgstr "Αλλαγή Ï„Ïπου %s" #: editor/create_dialog.cpp editor/project_settings_editor.cpp -#: modules/visual_script/visual_script_editor.cpp msgid "Change" msgstr "Αλλαγή" @@ -815,7 +868,8 @@ msgid "Matches:" msgstr "Αντιστοιχίες:" #: editor/create_dialog.cpp editor/plugin_config_dialog.cpp -#: editor/plugins/asset_library_editor_plugin.cpp editor/property_selector.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/property_selector.cpp #: modules/visual_script/visual_script_property_selector.cpp msgid "Description:" msgstr "ΠεÏιγÏαφή:" @@ -829,17 +883,19 @@ msgid "Dependencies For:" msgstr "ΕξαÏτήσεις για:" #: editor/dependency_editor.cpp +#, fuzzy msgid "" "Scene '%s' is currently being edited.\n" -"Changes will not take effect unless reloaded." +"Changes will only take effect when reloaded." msgstr "" "Γίνεται επεξεÏγασία στη σκηνή '%s'\n" "Οι αλλαγÎÏ‚ δεν θα δÏάσουν, εκτός κι αν γίνει επαναφόÏτωση." #: editor/dependency_editor.cpp +#, fuzzy msgid "" "Resource '%s' is in use.\n" -"Changes will take effect when reloaded." +"Changes will only take effect when reloaded." msgstr "" "Ο πόÏος '%s' χÏησιμοποιείται.\n" "Οι αλλαγÎÏ‚ θα δÏάσουν όταν γίνει επαναφόÏτωση." @@ -910,9 +966,8 @@ msgid "Error loading:" msgstr "Σφάλμα κατά την φόÏτωση:" #: editor/dependency_editor.cpp -#, fuzzy msgid "Load failed due to missing dependencies:" -msgstr "Η φόÏτωση της σκηνής απÎτυχε, λόγω απόντων εξαÏτήσεων:" +msgstr "Αποτυχία φόÏτωσης λόγω απόντων εξαÏτήσεων:" #: editor/dependency_editor.cpp editor/editor_node.cpp msgid "Open Anyway" @@ -935,21 +990,14 @@ msgid "Permanently delete %d item(s)? (No undo!)" msgstr "Μόνιμη διαγÏαφή %d αντικειμÎνων; (ΑδÏνατη η αναίÏεση)" #: editor/dependency_editor.cpp -msgid "Owns" -msgstr "ΚατÎχει" - -#: editor/dependency_editor.cpp -msgid "Resources Without Explicit Ownership:" -msgstr "Î ÏŒÏοι χωÏίς Ïητή ιδιοκτησία:" +#, fuzzy +msgid "Show Dependencies" +msgstr "ΕξαÏτήσεις" #: editor/dependency_editor.cpp editor/editor_node.cpp msgid "Orphan Resource Explorer" msgstr "ΕξεÏευνητής αχÏησιμοποίητων πόÏων" -#: editor/dependency_editor.cpp -msgid "Delete selected files?" -msgstr "ΔιαγÏαφή επιλεγμÎνων αÏχείων;" - #: editor/dependency_editor.cpp editor/editor_audio_buses.cpp #: editor/editor_file_dialog.cpp editor/editor_node.cpp #: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp @@ -958,6 +1006,14 @@ msgstr "ΔιαγÏαφή επιλεγμÎνων αÏχείων;" msgid "Delete" msgstr "ΔιαγÏαφή" +#: editor/dependency_editor.cpp +msgid "Owns" +msgstr "ΚατÎχει" + +#: editor/dependency_editor.cpp +msgid "Resources Without Explicit Ownership:" +msgstr "Î ÏŒÏοι χωÏίς Ïητή ιδιοκτησία:" + #: editor/dictionary_property_edit.cpp msgid "Change Dictionary Key" msgstr "Αλλαγή ÎºÎ»ÎµÎ¹Î´Î¹Î¿Ï Î»ÎµÎ¾Î¹ÎºÏŒÏ…" @@ -1064,7 +1120,6 @@ msgid "Uncompressing Assets" msgstr "Αποσυμπίεση asset" #: editor/editor_asset_installer.cpp editor/project_manager.cpp -#, fuzzy msgid "Package installed successfully!" msgstr "Το πακÎτο εγκαταστάθηκε επιτυχώς!" @@ -1073,7 +1128,7 @@ msgstr "Το πακÎτο εγκαταστάθηκε επιτυχώς!" msgid "Success!" msgstr "Επιτυχία!" -#: editor/editor_asset_installer.cpp +#: editor/editor_asset_installer.cpp editor/editor_node.cpp #: editor/plugins/asset_library_editor_plugin.cpp msgid "Install" msgstr "Εγκατάσταση" @@ -1200,8 +1255,12 @@ msgid "Open Audio Bus Layout" msgstr "Άνοιγμα διάταξης διαÏλων ήχου" #: editor/editor_audio_buses.cpp -msgid "There is no 'res://default_bus_layout.tres' file." -msgstr "Δεν υπάÏχει αÏχείο 'res://default_bus_layout.tres'." +msgid "There is no '%s' file." +msgstr "" + +#: editor/editor_audio_buses.cpp editor/plugins/canvas_item_editor_plugin.cpp +msgid "Layout" +msgstr "Διάταξη" #: editor/editor_audio_buses.cpp msgid "Invalid file, not an audio bus layout." @@ -1212,9 +1271,8 @@ msgid "Add Bus" msgstr "Î Ïοσθήκη διαÏλου" #: editor/editor_audio_buses.cpp -#, fuzzy msgid "Add a new Audio Bus to this layout." -msgstr "Αποθήκευση διάταξης διαÏλων ήχου ÏŽÏ‚..." +msgstr "Î Ïοσθήκη νÎου διαÏλου ήχου στην διάταξη." #: editor/editor_audio_buses.cpp editor/editor_properties.cpp #: editor/plugins/animation_player_editor_plugin.cpp editor/property_editor.cpp @@ -1255,20 +1313,27 @@ msgid "Valid characters:" msgstr "ΈγκυÏοι χαÏακτήÏες:" #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing engine class name." +#, fuzzy +msgid "Must not collide with an existing engine class name." msgstr "" "ΆκυÏο όνομα. Δεν Ï€ÏÎπει να συγχÎεται με υπαÏκτό όνομα κλάσης της godot." #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing buit-in type name." +#, fuzzy +msgid "Must not collide with an existing buit-in type name." msgstr "" "ΆκυÏο όνομα. Δεν Ï€ÏÎπει να συγχÎεται με υπαÏκτό ενσωματωμÎνο όνομα Ï„Ïπου." #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing global constant name." +#, fuzzy +msgid "Must not collide with an existing global constant name." msgstr "ΆκυÏο όνομα. Δεν Ï€ÏÎπει να συγχÎεται με υπαÏκτό καθολικό όνομα." #: editor/editor_autoload_settings.cpp +msgid "Keyword cannot be used as an autoload name." +msgstr "" + +#: editor/editor_autoload_settings.cpp msgid "Autoload '%s' already exists!" msgstr "AutoLoad '%s' υπάÏχει ήδη!" @@ -1296,11 +1361,12 @@ msgstr "ΕνεÏγοποίηση" msgid "Rearrange Autoloads" msgstr "Αναδιάταξη των AutoLoad" -#: editor/editor_autoload_settings.cpp -msgid "Invalid Path." +#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp +#, fuzzy +msgid "Invalid path." msgstr "ΆκυÏη διαδÏομή." -#: editor/editor_autoload_settings.cpp +#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp msgid "File does not exist." msgstr "Το αÏχείο δεν υπάÏχει." @@ -1351,7 +1417,8 @@ msgid "[unsaved]" msgstr "[μη αποθηκευμÎνο]" #: editor/editor_dir_dialog.cpp -msgid "Please select a base directory first" +#, fuzzy +msgid "Please select a base directory first." msgstr "ΠαÏακαλοÏμε επιλÎξτε Ï€Ïώτα Îναν βασικό κατάλογο" #: editor/editor_dir_dialog.cpp @@ -1359,7 +1426,8 @@ msgid "Choose a Directory" msgstr "ΕπιλÎξτε Îνα λεξικό" #: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp -#: editor/filesystem_dock.cpp scene/gui/file_dialog.cpp +#: editor/filesystem_dock.cpp editor/project_manager.cpp +#: scene/gui/file_dialog.cpp msgid "Create Folder" msgstr "ΔημιουÏγία φακÎλου" @@ -1384,11 +1452,8 @@ msgid "Storing File:" msgstr "ΑÏχείο αποθήκευσης:" #: editor/editor_export.cpp -#, fuzzy msgid "No export template found at the expected path:" -msgstr "" -"Δεν βÏÎθηκαν Ï€Ïότυπα εξαγωγής.\n" -"Κατεβάστε και εγκαταστήστε τα Ï€Ïότυπα εξαγωγής." +msgstr "ΚανÎνα Ï€Ïότυπο εξαγωγής στην αναμενόμενη διαδÏομή:" #: editor/editor_export.cpp msgid "Packing" @@ -1399,12 +1464,16 @@ msgid "" "Target platform requires 'ETC' texture compression for GLES2. Enable 'Import " "Etc' in Project Settings." msgstr "" +"Η πλατφόÏμα Ï€ÏοοÏÎ¹ÏƒÎ¼Î¿Ï Î±Ï€Î±Î¹Ï„ÎµÎ¯ «ETC» συμπίεση υφών για το GLES2. " +"ΕνεÏγοποιήστε το «Import Etc» στις Ρυθμίσεις ΈÏγου." #: editor/editor_export.cpp msgid "" "Target platform requires 'ETC2' texture compression for GLES3. Enable " "'Import Etc 2' in Project Settings." msgstr "" +"Η πλατφόÏμα Ï€ÏοοÏÎ¹ÏƒÎ¼Î¿Ï Î±Ï€Î±Î¹Ï„ÎµÎ¯ «ETC2» συμπίεση υφών για το GLES3. " +"ΕνεÏγοποιήστε το «Import Etc 2» στις Ρυθμίσεις ΈÏγου." #: editor/editor_export.cpp msgid "" @@ -1413,25 +1482,199 @@ msgid "" "Enable 'Import Etc' in Project Settings, or disable 'Driver Fallback " "Enabled'." msgstr "" +"Η πλατφόÏμα Ï€ÏοοÏÎ¹ÏƒÎ¼Î¿Ï Î±Ï€Î±Î¹Ï„ÎµÎ¯ «ETC» συμπίεση υφών για εναλλαγή Î¿Î´Î·Î³Î¿Ï ÏƒÏ„Î¿ " +"GLES2.\n" +"ΕνεÏγοποιήστε το «Import Etc» στις Ρυθμίσεις ΈÏγου, ή απενεÏγοποιήστε το " +"«Driver Fallback Enabled»." #: 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 -#, fuzzy msgid "Custom debug template not found." -msgstr "Το Ï€ÏοσαÏμοσμÎνο πακÎτο αποσφαλμάτωσης δεν βÏÎθηκε." +msgstr "Δεν βÏÎθηκε Ï€ÏοσαÏμοσμÎνο πακÎτο αποσφαλμάτωσης." #: 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 -#, fuzzy msgid "Custom release template not found." -msgstr "Το Ï€ÏοσαÏμοσμÎνο πακÎτο παÏαγωγής δεν βÏÎθηκε." +msgstr "Δεν βÏÎθηκε Ï€ÏοσαÏμοσμÎνο πακÎτο παÏαγωγής." #: editor/editor_export.cpp platform/javascript/export/export.cpp msgid "Template file not found:" msgstr "Δεν βÏÎθηκε αÏχείο Ï€ÏοτÏπου:" +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "3D Editor" +msgstr "ΕπεξεÏγαστής" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Script Editor" +msgstr "Άνοιγμα επεξεÏγαστή δεσμής ενεÏγειών" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Asset Library" +msgstr "Άνοιγμα βιβλιοθήκης" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Scene Tree Editing" +msgstr "ΔÎντÏο σκηνής (Κόμβοι):" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Import Dock" +msgstr "Εισαγωγή" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Node Dock" +msgstr "Μετακίνηση Κόμβου" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Filesystem Dock" +msgstr "ΣÏστημα αÏχείων" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Erase profile '%s'? (no undo)" +msgstr "Αντικατάσταση όλων (χωÏίς ανÎÏαιση)" + +#: editor/editor_feature_profile.cpp +msgid "Profile must be a valid filename and must not contain '.'" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Profile with this name already exists." +msgstr "ΥπάÏχει ήδη Îνα αÏχείο ή φάκελος με αυτό το όνομα." + +#: editor/editor_feature_profile.cpp +msgid "(Editor Disabled, Properties Disabled)" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "(Properties Disabled)" +msgstr "Μόνο ιδιότητες" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "(Editor Disabled)" +msgstr "Η πεÏικοπή είναι απενεÏγοποιημÎνη" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Class Options:" +msgstr "ΠεÏιγÏαφή κλάσης:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enable Contextual Editor" +msgstr "Άνοιγμα του επόμενου επεξεÏγαστή" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enabled Properties:" +msgstr "Ιδιότητες:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enabled Features:" +msgstr "Δυνατότητες" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enabled Classes:" +msgstr "Αναζήτηση κλάσεων" + +#: editor/editor_feature_profile.cpp +msgid "File '%s' format is invalid, import aborted." +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "" +"Profile '%s' already exists. Remote it first before importing, import " +"aborted." +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Error saving profile to path: '%s'." +msgstr "Σφάλμα κατά την φόÏτωση Ï€ÏοτÏπου '%s'" + +#: editor/editor_feature_profile.cpp +msgid "Unset" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Current Profile" +msgstr "ΤÏÎχουσα Îκδοση:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Make Current" +msgstr "ΤÏÎχων:" + +#: editor/editor_feature_profile.cpp +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "New" +msgstr "ÎÎο" + +#: editor/editor_feature_profile.cpp editor/editor_node.cpp +#: editor/plugins/asset_library_editor_plugin.cpp editor/project_manager.cpp +msgid "Import" +msgstr "Εισαγωγή" + +#: editor/editor_feature_profile.cpp editor/editor_node.cpp +#: editor/project_export.cpp +msgid "Export" +msgstr "Εξαγωγή" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Available Profiles" +msgstr "ΔιαθÎσιμοι κόμβοι:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enabled Classes" +msgstr "Αναζήτηση κλάσεων" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Class Options" +msgstr "ΠεÏιγÏαφή κλάσης" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "New profile name:" +msgstr "ÎÎο όνομα:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Erase Profile" +msgstr "ΔιαγÏαφή πεÏσιοχής" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Import Profile(s)" +msgstr "ΕισαγμÎνο ÎÏγο" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Export Profile" +msgstr "Εξαγωγή ÎÏγου" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Manage Editor Feature Profiles" +msgstr "ΔιαχείÏιση Ï€ÏοτÏπων εξαγωγής" + #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Select Current Folder" msgstr "Επιλογή Ï„ÏÎχοντα φακÎλου" @@ -1441,7 +1684,6 @@ msgid "File Exists, Overwrite?" msgstr "Το αÏχείο υπάÏχει. ΘÎλετε να το αντικαταστήσετε;" #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp -#, fuzzy msgid "Select This Folder" msgstr "Επιλογή Î±Ï…Ï„Î¿Ï Ï„Î¿Ï… φακÎλου" @@ -1450,13 +1692,11 @@ msgid "Copy Path" msgstr "ΑντιγÏαφή διαδÏομής" #: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp -#, fuzzy msgid "Open in File Manager" msgstr "Άνοιγμα στη διαχείÏιση αÏχείων" -#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp -#: editor/project_manager.cpp -#, fuzzy +#: editor/editor_file_dialog.cpp editor/editor_node.cpp +#: editor/filesystem_dock.cpp editor/project_manager.cpp msgid "Show in File Manager" msgstr "Εμφάνιση στη διαχείÏιση αÏχείων" @@ -1515,7 +1755,7 @@ msgstr "Πήγαινε μπÏοστά" msgid "Go Up" msgstr "Πήγαινε πάνω" -#: editor/editor_file_dialog.cpp +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Toggle Hidden Files" msgstr "Εναλλαγή κÏυμμÎνων αÏχείων" @@ -1540,23 +1780,25 @@ msgid "Move Favorite Down" msgstr "Μετακίνηση αγαπημÎνου κάτω" #: editor/editor_file_dialog.cpp -#, fuzzy msgid "Previous Folder" -msgstr "Î ÏοηγοÏμενο πάτωμα" +msgstr "Î ÏοηγοÏμενος φάκελος" #: editor/editor_file_dialog.cpp -#, fuzzy msgid "Next Folder" -msgstr "Επόμενο πάτωμα" +msgstr "Επόμενος φάκελος" + +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp +msgid "Go to parent folder." +msgstr "Πήγαινε στον γονικό φάκελο." #: editor/editor_file_dialog.cpp -msgid "Go to parent folder" -msgstr "Πήγαινε στον γονικό φάκελο" +msgid "(Un)favorite current folder." +msgstr "Εναλλαγή αγαπημÎνου Ï„ÏÎχοντος φακÎλου." #: editor/editor_file_dialog.cpp #, fuzzy -msgid "(Un)favorite current folder." -msgstr "ΑδÏνατη η δημιουÏγία φακÎλου." +msgid "Toggle visibility of hidden files." +msgstr "Εναλλαγή κÏυμμÎνων αÏχείων" #: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp msgid "View items as a grid of thumbnails." @@ -1572,6 +1814,7 @@ msgstr "Φάκελοι & ΑÏχεία:" #: editor/editor_file_dialog.cpp editor/plugins/sprite_editor_plugin.cpp #: editor/plugins/style_box_editor_plugin.cpp +#: editor/plugins/theme_editor_plugin.cpp msgid "Preview:" msgstr "Î Ïοεπισκόπηση:" @@ -1588,6 +1831,12 @@ msgid "ScanSources" msgstr "ΣάÏωση πηγών" #: editor/editor_file_system.cpp +msgid "" +"There are multiple importers for different types pointing to file %s, import " +"aborted" +msgstr "" + +#: editor/editor_file_system.cpp msgid "(Re)Importing Assets" msgstr "(Επαν)εισαγωγή" @@ -1624,19 +1873,16 @@ msgid "Methods" msgstr "ΣυναÏτήσεις" #: editor/editor_help.cpp -#, fuzzy msgid "Methods:" -msgstr "ΣυναÏτήσεις" +msgstr "Μεθόδοι:" #: editor/editor_help.cpp -#, fuzzy msgid "Theme Properties" -msgstr "Ιδιότητες" +msgstr "Ιδιότητες θÎματος" #: editor/editor_help.cpp -#, fuzzy msgid "Theme Properties:" -msgstr "Ιδιότητες:" +msgstr "Ιδιότητες θÎματος:" #: editor/editor_help.cpp modules/visual_script/visual_script_editor.cpp msgid "Signals:" @@ -1663,14 +1909,12 @@ msgid "Constants:" msgstr "ΣταθεÏÎÏ‚:" #: editor/editor_help.cpp -#, fuzzy msgid "Class Description" -msgstr "ΠεÏιγÏαφή" +msgstr "ΠεÏιγÏαφή κλάσης" #: editor/editor_help.cpp -#, fuzzy msgid "Class Description:" -msgstr "ΠεÏιγÏαφή:" +msgstr "ΠεÏιγÏαφή κλάσης:" #: editor/editor_help.cpp msgid "Online Tutorials:" @@ -1687,14 +1931,12 @@ msgstr "" "url][/color]." #: editor/editor_help.cpp -#, fuzzy msgid "Property Descriptions" -msgstr "ΠεÏιγÏαφή ιδιότητας:" +msgstr "ΠεÏιγÏαφÎÏ‚ ιδιοτήτων" #: editor/editor_help.cpp -#, fuzzy msgid "Property Descriptions:" -msgstr "ΠεÏιγÏαφή ιδιότητας:" +msgstr "ΠεÏιγÏαφÎÏ‚ ιδιοτήτων:" #: editor/editor_help.cpp msgid "" @@ -1705,14 +1947,12 @@ msgstr "" "[color=$color][url=$url]γÏάφοντας μία[/url][/color]!" #: editor/editor_help.cpp -#, fuzzy msgid "Method Descriptions" -msgstr "ΠεÏιγÏαφή μεθόδου:" +msgstr "ΠεÏιγÏαφÎÏ‚ μεθόδων" #: editor/editor_help.cpp -#, fuzzy msgid "Method Descriptions:" -msgstr "ΠεÏιγÏαφή μεθόδου:" +msgstr "ΠεÏιγÏαφÎÏ‚ μεθόδων:" #: editor/editor_help.cpp msgid "" @@ -1728,49 +1968,40 @@ msgid "Search Help" msgstr "Αναζήτηση βοήθειας" #: editor/editor_help_search.cpp -#, fuzzy msgid "Display All" -msgstr "Κανονική εμφάνιση" +msgstr "Εμφάνιση όλων" #: editor/editor_help_search.cpp -#, fuzzy msgid "Classes Only" -msgstr "Κλάσεις" +msgstr "Μόνο κλάσεις" #: editor/editor_help_search.cpp -#, fuzzy msgid "Methods Only" -msgstr "ΣυναÏτήσεις" +msgstr "Μόνο μεθόδοι" #: editor/editor_help_search.cpp -#, fuzzy msgid "Signals Only" -msgstr "Σήματα" +msgstr "Μόνο σήματα" #: editor/editor_help_search.cpp -#, fuzzy msgid "Constants Only" -msgstr "ΣταθεÏÎÏ‚" +msgstr "Μόνο σταθεÏÎÏ‚" #: editor/editor_help_search.cpp -#, fuzzy msgid "Properties Only" -msgstr "Ιδιότητες" +msgstr "Μόνο ιδιότητες" #: editor/editor_help_search.cpp -#, fuzzy msgid "Theme Properties Only" -msgstr "Ιδιότητες" +msgstr "Μόνο ιδιότητες θÎματος" #: editor/editor_help_search.cpp -#, fuzzy msgid "Member Type" -msgstr "ΜÎλη" +msgstr "Είδος μÎλους" #: editor/editor_help_search.cpp -#, fuzzy msgid "Class" -msgstr "Κλάση:" +msgstr "Κλάση" #: editor/editor_inspector.cpp editor/project_settings_editor.cpp msgid "Property:" @@ -1788,6 +2019,11 @@ msgstr "ΟÏισμός πολλών:" msgid "Output:" msgstr "Έξοδος:" +#: editor/editor_log.cpp editor/plugins/tile_map_editor_plugin.cpp +#, fuzzy +msgid "Copy Selection" +msgstr "ΑφαίÏεση επιλογής" + #: editor/editor_log.cpp editor/editor_profiler.cpp #: editor/editor_properties.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp @@ -1808,7 +2044,7 @@ msgstr "Η εξαγωγή του ÎÏγου απÎτυχε με κωδικό %d. #: editor/editor_node.cpp msgid "Imported resources can't be saved." -msgstr "" +msgstr "Οι εισαγμÎνοι πόÏοι δεν μποÏοÏν να αποθηκευτοÏν." #: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp #: scene/gui/dialogs.cpp @@ -1824,6 +2060,8 @@ msgid "" "This resource can't be saved because it does not belong to the edited scene. " "Make it unique first." msgstr "" +"Αυτός ο πόÏος δεν μποÏεί να αποθηκευτεί επειδή δεν ανήκει στην Ï„ÏÎχουσα " +"σκηνή. Κάντε τον μοναδικό Ï€Ïώτα." #: editor/editor_node.cpp editor/plugins/animation_player_editor_plugin.cpp msgid "Save Resource As..." @@ -1883,6 +2121,8 @@ msgid "" "This scene can't be saved because there is a cyclic instancing inclusion.\n" "Please resolve it and then attempt to save again." msgstr "" +"Αυτή η σκηνή δεν μποÏεί να αποθηκευτεί λόγω κυκλικών στιγμιοτÏπων.\n" +"ΕπιλÏστε το Ï€Ïόβλημα και ξαναπÏοσπαθήστε την αποθήκευση." #: editor/editor_node.cpp msgid "" @@ -1894,7 +2134,7 @@ msgstr "" #: editor/editor_node.cpp editor/scene_tree_dock.cpp msgid "Can't overwrite scene that is still open!" -msgstr "" +msgstr "ΑδÏνατη η αντικατάσταση σκηνής που είναι ακόμα ανοιχτή!" #: editor/editor_node.cpp msgid "Can't load MeshLibrary for merging!" @@ -1940,9 +2180,10 @@ msgstr "" "καταλάβετε καλÏτεÏα την διαδικασία." #: editor/editor_node.cpp +#, fuzzy msgid "" "This resource belongs to a scene that was instanced or inherited.\n" -"Changes to it will not be kept when saving the current scene." +"Changes to it won't be kept when saving the current scene." msgstr "" "Αυτός ο πόÏος ανήκει σε μία σκηνή που Îχει κλωνοποιηθεί ή κληÏονομηθεί.\n" "Οι αλλαγÎÏ‚ δεν θα διατηÏηθοÏν κατά την αποθήκευση της Ï„ÏÎχουσας σκηνής." @@ -1956,8 +2197,9 @@ msgstr "" "Ïυθμίσεις στο πλαίσιο εισαγωγής και μετά επαν-εισάγετε." #: editor/editor_node.cpp +#, fuzzy msgid "" -"This scene was imported, so changes to it will not be kept.\n" +"This scene was imported, so changes to it won't be kept.\n" "Instancing it or inheriting will allow making changes to it.\n" "Please read the documentation relevant to importing scenes to better " "understand this workflow." @@ -1968,8 +2210,9 @@ msgstr "" "καταλάβετε καλÏτεÏα την διαδικασία." #: editor/editor_node.cpp +#, fuzzy msgid "" -"This is a remote object so changes to it will not be kept.\n" +"This is a remote object, so changes to it won't be kept.\n" "Please read the documentation relevant to debugging to better understand " "this workflow." msgstr "" @@ -1983,37 +2226,6 @@ msgid "There is no defined scene to run." msgstr "Δεν υπάÏχει καθοÏισμÎνη σκηνή για εκτελÎση." #: editor/editor_node.cpp -msgid "" -"No main scene has ever been defined, select one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" -"Δεν Îχει καθοÏιστεί κÏÏια σκηνή, θÎλετε να επιλÎξετε μία;\n" -"ΜποÏείτε να την αλλάξετε αÏγότεÏα στις «Ρυθμίσεις ÎÏγου» κάτω από την " -"κατηγοÏία «ΕφαÏμογή»." - -#: editor/editor_node.cpp -msgid "" -"Selected scene '%s' does not exist, select a valid one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" -"Η επιλεγμÎνη σκηνή '%s' δεν υπάÏχει, θÎλετε να επιλÎξετε μία ÎγκυÏη;\n" -"ΜποÏείτε να την αλλάξετε αÏγότεÏα στις «Ρυθμίσεις ÎÏγου» κάτω από την " -"κατηγοÏία «εφαÏμογή»." - -#: editor/editor_node.cpp -msgid "" -"Selected scene '%s' is not a scene file, select a valid one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" -"Η επιλεγμÎνη σκηνή '%s' δεν είναι αÏχείο σκηνής, θÎλετε να επιλÎξετε μία " -"ÎγκυÏη;\n" -"ΜποÏείτε να την αλλάξετε αÏγότεÏα στις «Ρυθμίσεις ÎÏγου» κάτω από την " -"κατηγοÏία «εφαÏμογή»." - -#: editor/editor_node.cpp msgid "Current scene was never saved, please save it prior to running." msgstr "" "Η Ï„ÏÎχουσα σκηνή δεν Îχει αποθηκευτεί, αποθηκεÏστε Ï€Ïιν να Ï„ÏÎξετε το " @@ -2023,7 +2235,7 @@ msgstr "" msgid "Could not start subprocess!" msgstr "ΑδÏνατη η εκκίνηση της υπό-εÏγασίας!" -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/filesystem_dock.cpp msgid "Open Scene" msgstr "Άνοιγμα σκηνής" @@ -2032,6 +2244,11 @@ msgid "Open Base Scene" msgstr "Άνοιγμα σκηνής βάσης" #: editor/editor_node.cpp +#, fuzzy +msgid "Quick Open..." +msgstr "ΓÏήγοÏο άνοιγμα σκηνής..." + +#: editor/editor_node.cpp msgid "Quick Open Scene..." msgstr "ΓÏήγοÏο άνοιγμα σκηνής..." @@ -2048,14 +2265,12 @@ msgid "Save changes to '%s' before closing?" msgstr "Αποθήκευση αλλαγών στο '%s' Ï€Ïιν το κλείσιμο;" #: editor/editor_node.cpp -#, fuzzy msgid "Saved %s modified resource(s)." -msgstr "ΑπÎτυχε η φόÏτωση πόÏου." +msgstr "ΑποθηκεÏτηκαν %s αλλαγμÎνοι πόÏοι." #: editor/editor_node.cpp -#, fuzzy msgid "A root node is required to save the scene." -msgstr "Μόνο Îνα αÏχείο είναι απαÏαίτητη για μεγάλη υφή." +msgstr "Απαιτείται Ïιζικός κόμβος για την αποθήκευση της σκηνής." #: editor/editor_node.cpp msgid "Save Scene As..." @@ -2171,13 +2386,12 @@ msgid "Unable to load addon script from path: '%s'." msgstr "ΑδÏνατη η φόÏτωση δεσμής ενεÏγειών Ï€ÏοσθÎτου από τη διαδÏομή: '%s'." #: editor/editor_node.cpp -#, fuzzy msgid "" "Unable to load addon script from path: '%s' There seems to be an error in " "the code, please check the syntax." msgstr "" -"ΑδÏνατη η φόÏτωση δεσμής ενεÏγειών Ï€ÏοσθÎτου από τη διαδÏομή: '%s'. Δεν " -"είναι σε λειτουÏγία tool." +"Αποτυχία φόÏτωσης δÎσμης ενεÏγειών Ï€ÏοσθÎτου από τη διαδÏομή: '%s'. Φαίνεται " +"πως υπάÏχει λάθος στον κώδικα." #: editor/editor_node.cpp msgid "" @@ -2219,6 +2433,37 @@ msgid "Clear Recent Scenes" msgstr "ΕκκαθάÏιση Ï€Ïόσφατων σκηνών" #: editor/editor_node.cpp +msgid "" +"No main scene has ever been defined, select one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" +"Δεν Îχει καθοÏιστεί κÏÏια σκηνή, θÎλετε να επιλÎξετε μία;\n" +"ΜποÏείτε να την αλλάξετε αÏγότεÏα στις «Ρυθμίσεις ÎÏγου» κάτω από την " +"κατηγοÏία «ΕφαÏμογή»." + +#: editor/editor_node.cpp +msgid "" +"Selected scene '%s' does not exist, select a valid one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" +"Η επιλεγμÎνη σκηνή '%s' δεν υπάÏχει, θÎλετε να επιλÎξετε μία ÎγκυÏη;\n" +"ΜποÏείτε να την αλλάξετε αÏγότεÏα στις «Ρυθμίσεις ÎÏγου» κάτω από την " +"κατηγοÏία «εφαÏμογή»." + +#: editor/editor_node.cpp +msgid "" +"Selected scene '%s' is not a scene file, select a valid one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" +"Η επιλεγμÎνη σκηνή '%s' δεν είναι αÏχείο σκηνής, θÎλετε να επιλÎξετε μία " +"ÎγκυÏη;\n" +"ΜποÏείτε να την αλλάξετε αÏγότεÏα στις «Ρυθμίσεις ÎÏγου» κάτω από την " +"κατηγοÏία «εφαÏμογή»." + +#: editor/editor_node.cpp msgid "Save Layout" msgstr "Αποθήκευση διάταξης" @@ -2233,9 +2478,8 @@ msgstr "Î Ïοεπιλογή" #: editor/editor_node.cpp editor/editor_properties.cpp #: editor/plugins/script_editor_plugin.cpp editor/property_editor.cpp -#, fuzzy msgid "Show in FileSystem" -msgstr "Εμφάνιση στο σÏστημα αÏχείων" +msgstr "Εμφάνιση στο ΣÏστημα ΑÏχείων" #: editor/editor_node.cpp msgid "Play This Scene" @@ -2245,6 +2489,19 @@ msgstr "ΑναπαÏαγωγή σκηνής" msgid "Close Tab" msgstr "Κλείσιμο καÏÏ„Îλας" +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +msgid "Close Other Tabs" +msgstr "Κλείσιμο άλλον καÏτελών" + +#: editor/editor_node.cpp +msgid "Close Tabs to the Right" +msgstr "" + +#: editor/editor_node.cpp +#, fuzzy +msgid "Close All Tabs" +msgstr "Κλείσιμο όλων" + #: editor/editor_node.cpp msgid "Switch Scene Tab" msgstr "Εναλλαγή καÏÏ„Îλας σκηνής" @@ -2283,7 +2540,7 @@ msgstr "Σκηνή" #: editor/editor_node.cpp msgid "Go to previously opened scene." -msgstr "Πηγαίνετε στη σκηνή ανοίξατε Ï€ÏοηγουμÎνως." +msgstr "ΕπιστÏοφή στην Ï€ÏοηγουμÎνως ανοιγμÎνη σκηνή." #: editor/editor_node.cpp msgid "Next tab" @@ -2318,9 +2575,8 @@ msgid "Save Scene" msgstr "ΑποθηκεÏσετε σκηνής" #: editor/editor_node.cpp -#, fuzzy msgid "Save All Scenes" -msgstr "Αποθήκευση όλων των σκηνών" +msgstr "Αποθήκευση Ολων των Σκηνών" #: editor/editor_node.cpp msgid "Close Scene" @@ -2368,10 +2624,6 @@ msgstr "ΈÏγο" msgid "Project Settings" msgstr "Ρυθμίσεις ÎÏγου" -#: editor/editor_node.cpp editor/project_export.cpp -msgid "Export" -msgstr "Εξαγωγή" - #: editor/editor_node.cpp editor/plugins/tile_set_editor_plugin.cpp msgid "Tools" msgstr "ΕÏγαλεία" @@ -2381,6 +2633,10 @@ msgid "Open Project Data Folder" msgstr "Άνοιγμα φακÎλου δεδομÎνων ÎÏγου" #: editor/editor_node.cpp +msgid "Install Android Build Template" +msgstr "" + +#: editor/editor_node.cpp msgid "Quit to Project List" msgstr "Έξοδος στη λίστα ÎÏγων" @@ -2505,6 +2761,11 @@ msgstr "Άνοιγμα φακÎλου δεδομÎνων επεξεÏγαστή" msgid "Open Editor Settings Folder" msgstr "Άνοιγμα φακÎλου Ïυθμίσεων επεξεÏγαστή" +#: editor/editor_node.cpp +#, fuzzy +msgid "Manage Editor Features" +msgstr "ΔιαχείÏιση Ï€ÏοτÏπων εξαγωγής" + #: editor/editor_node.cpp editor/project_export.cpp msgid "Manage Export Templates" msgstr "ΔιαχείÏιση Ï€ÏοτÏπων εξαγωγής" @@ -2517,6 +2778,7 @@ msgstr "Βοήθεια" #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp #: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp #: editor/project_settings_editor.cpp editor/rename_dialog.cpp msgid "Search" msgstr "Αναζήτηση" @@ -2591,9 +2853,8 @@ msgid "Save & Restart" msgstr "Αποθήκευση & Επανεκκίνηση" #: editor/editor_node.cpp -#, fuzzy msgid "Spins when the editor window redraws." -msgstr "ΠεÏιστÏÎφεται όταν το παÏάθυÏο του επεξεÏγαστή επαναχÏωματίζεται!" +msgstr "ΠεÏιστÏÎφεται όταν το παÏάθυÏο του επεξεÏγαστή επαναχÏωματίζεται." #: editor/editor_node.cpp msgid "Update Always" @@ -2607,11 +2868,6 @@ msgstr "ΕνημÎÏωση αλλαγών" msgid "Disable Update Spinner" msgstr "ΑπενεÏγοποίηση δείκτη ενημÎÏωσης" -#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp -#: editor/project_manager.cpp -msgid "Import" -msgstr "Εισαγωγή" - #: editor/editor_node.cpp msgid "FileSystem" msgstr "ΣÏστημα αÏχείων" @@ -2637,6 +2893,28 @@ msgid "Don't Save" msgstr "ΧωÏις αποθήκευση" #: editor/editor_node.cpp +msgid "Android build template is missing, please install relevant templates." +msgstr "" + +#: editor/editor_node.cpp +#, fuzzy +msgid "Manage Templates" +msgstr "ΔιαχείÏιση Ï€ÏοτÏπων εξαγωγής" + +#: editor/editor_node.cpp +msgid "" +"This will install the Android project for custom builds.\n" +"Note that, in order to use it, it needs to be enabled per export preset." +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"Android build template is already installed and it won't be overwritten.\n" +"Remove the \"build\" directory manually before attempting this operation " +"again." +msgstr "" + +#: editor/editor_node.cpp msgid "Import Templates From ZIP File" msgstr "Εισαγωγή Ï€ÏοτÏπων από αÏχείο ZIP" @@ -2759,10 +3037,6 @@ msgid "Physics Frame %" msgstr "KαÏΠφυσικής %" #: editor/editor_profiler.cpp -msgid "Time:" -msgstr "ΧÏόνος:" - -#: editor/editor_profiler.cpp msgid "Inclusive" msgstr "ΠεÏιοκτικός" @@ -2799,26 +3073,28 @@ msgid "[Empty]" msgstr "[Άδειο]" #: editor/editor_properties.cpp editor/plugins/root_motion_editor_plugin.cpp -#, fuzzy msgid "Assign..." -msgstr "ΕκχώÏηση.." +msgstr "ΕκχώÏηση..." #: editor/editor_properties.cpp -#, fuzzy msgid "Invalid RID" -msgstr "Μη ÎγκυÏη διαδÏομή" +msgstr "ΆκυÏο RID" #: editor/editor_properties.cpp msgid "" "The selected resource (%s) does not match any type expected for this " "property (%s)." msgstr "" +"Ο επιλεγμÎνος πόÏος (%s) δεν ταιÏιάζει σε κανÎναν αναμενόμενο Ï„Ïπο γι'αυτήν " +"την ιδιότητα (%s)." #: editor/editor_properties.cpp msgid "" "Can't create a ViewportTexture on resources saved as a file.\n" "Resource needs to belong to a scene." msgstr "" +"ΑδÏνατη η δημιουÏγία ViewportTexture σε πόÏους αποθηκευμÎνους ως αÏχεία.\n" +"Ο πόÏος Ï€ÏÎπει να ανήκει σε σκηνή." #: editor/editor_properties.cpp msgid "" @@ -2827,6 +3103,10 @@ msgid "" "Please switch on the 'local to scene' property on it (and all resources " "containing it up to a node)." msgstr "" +"ΑδÏνατη η δημιουÏγία ViewportTexture σε αυτόν τον πόÏο καθώς δεν είναι " +"τοπικό στην σκηνή.\n" +"ΕνεÏγοποιήστε την ιδιότητα 'local to scene' σε αυτό (και σε όλους τους " +"πόÏους που το πεÏιÎχουν μÎχÏι Îναν κόμβο)." #: editor/editor_properties.cpp editor/property_editor.cpp msgid "Pick a Viewport" @@ -2899,10 +3179,6 @@ msgid "Remove Item" msgstr "ΑφαίÏεση στοιχείου" #: editor/editor_run_native.cpp -msgid "Select device from the list" -msgstr "ΕπιλÎξτε συσκευή από την λίστα" - -#: editor/editor_run_native.cpp msgid "" "No runnable export preset found for this platform.\n" "Please add a runnable preset in the export menu." @@ -2938,6 +3214,10 @@ msgstr "Μήπως ξεχάσατε τη μÎθοδο '_run';" msgid "Select Node(s) to Import" msgstr "ΕπιλÎξτε κόμβους για εισαγωγή" +#: editor/editor_sub_scene.cpp editor/project_manager.cpp +msgid "Browse" +msgstr "ΠεÏιήγηση" + #: editor/editor_sub_scene.cpp msgid "Scene Path:" msgstr "ΔιαδÏομή σκηνής:" @@ -3104,6 +3384,11 @@ msgid "SSL Handshake Error" msgstr "Σφάλμα χαιÏÎµÏ„Î¹ÏƒÎ¼Î¿Ï SSL" #: editor/export_template_manager.cpp +#, fuzzy +msgid "Uncompressing Android Build Sources" +msgstr "Αποσυμπίεση asset" + +#: editor/export_template_manager.cpp msgid "Current Version:" msgstr "ΤÏÎχουσα Îκδοση:" @@ -3120,7 +3405,8 @@ msgid "Remove Template" msgstr "ΑφαίÏεση Ï€ÏοτÏπου" #: editor/export_template_manager.cpp -msgid "Select template file" +#, fuzzy +msgid "Select Template File" msgstr "ΕπιλÎξτε Îνα αÏχείο Ï€ÏοτÏπων" #: editor/export_template_manager.cpp @@ -3144,9 +3430,8 @@ msgstr "" "αποθήκευσης cache Ï„Ïπου αÏχείου!" #: editor/filesystem_dock.cpp -#, fuzzy msgid "Favorites" -msgstr "ΑγαπημÎνα:" +msgstr "ΑγαπημÎνα" #: editor/filesystem_dock.cpp msgid "Cannot navigate to '%s' as it has not been found in the file system!" @@ -3184,7 +3469,8 @@ msgid "No name provided." msgstr "Δεν δόθηκε όνομα." #: editor/filesystem_dock.cpp -msgid "Provided name contains invalid characters" +#, fuzzy +msgid "Provided name contains invalid characters." msgstr "Το δοσμÎνο όνομα πεÏιÎχει άκυÏους χαÏακτήÏες" #: editor/filesystem_dock.cpp @@ -3212,7 +3498,13 @@ msgid "Duplicating folder:" msgstr "Διπλασιασμός καταλόγου:" #: editor/filesystem_dock.cpp -msgid "Open Scene(s)" +#, fuzzy +msgid "New Inherited Scene" +msgstr "ÎÎα κληÏονομημÎνη σκηνή..." + +#: editor/filesystem_dock.cpp +#, fuzzy +msgid "Open Scenes" msgstr "Άνοιγμα σκηνής" #: editor/filesystem_dock.cpp @@ -3221,13 +3513,13 @@ msgstr "Στιγμιότυπο" #: editor/filesystem_dock.cpp #, fuzzy -msgid "Add to favorites" -msgstr "ΑγαπημÎνα:" +msgid "Add to Favorites" +msgstr "Î Ïοσθήκη στα αγαπημÎνα" #: editor/filesystem_dock.cpp #, fuzzy -msgid "Remove from favorites" -msgstr "ΚατάÏγηση από την ομάδα" +msgid "Remove from Favorites" +msgstr "ΚατάÏγηση από τα αγαπημÎνα" #: editor/filesystem_dock.cpp msgid "Edit Dependencies..." @@ -3257,15 +3549,15 @@ msgstr "Îεα δεσμή ενεÏγειών..." msgid "New Resource..." msgstr "ÎÎος πόÏος..." -#: editor/filesystem_dock.cpp editor/script_editor_debugger.cpp -#, fuzzy +#: editor/filesystem_dock.cpp editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_editor_debugger.cpp msgid "Expand All" -msgstr "Ανάπτυξη όλων" +msgstr "Ανάπτυξη Όλων" -#: editor/filesystem_dock.cpp editor/script_editor_debugger.cpp -#, fuzzy +#: editor/filesystem_dock.cpp editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_editor_debugger.cpp msgid "Collapse All" -msgstr "ΣÏμπτηξη όλων" +msgstr "ΣÏμπτηξη Όλων" #: editor/filesystem_dock.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp @@ -3275,12 +3567,14 @@ msgid "Rename" msgstr "Μετονομασία" #: editor/filesystem_dock.cpp -msgid "Previous Directory" -msgstr "Î ÏοηγοÏμενος κατάλογος" +#, fuzzy +msgid "Previous Folder/File" +msgstr "Î ÏοηγοÏμενος φάκελος" #: editor/filesystem_dock.cpp -msgid "Next Directory" -msgstr "Επόμενος κατάλογος" +#, fuzzy +msgid "Next Folder/File" +msgstr "Επόμενος φάκελος" #: editor/filesystem_dock.cpp msgid "Re-Scan Filesystem" @@ -3288,8 +3582,8 @@ msgstr "Εκ νÎου σάÏωση το συστήματος αÏχείων" #: editor/filesystem_dock.cpp #, fuzzy -msgid "Toggle split mode" -msgstr "Εναλλαγή λειτουÏγίας" +msgid "Toggle Split Mode" +msgstr "Εναλλαγή λειτουÏγίας διαχωÏισμοÏ" #: editor/filesystem_dock.cpp msgid "Search files" @@ -3319,10 +3613,9 @@ msgstr "Αντικατάσταση" msgid "Create Script" msgstr "ΔημιουÏγία δεσμής ενεÏγειών" -#: editor/find_in_files.cpp -#, fuzzy +#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp msgid "Find in Files" -msgstr "ΕÏÏεση στα αÏχεία" +msgstr "ΕÏÏεση στα ΑÏχεία" #: editor/find_in_files.cpp #, fuzzy @@ -3335,9 +3628,14 @@ msgid "Folder:" msgstr "Φάκελος: " #: editor/find_in_files.cpp -#, fuzzy msgid "Filters:" -msgstr "ΦίλτÏα" +msgstr "ΦίλτÏα:" + +#: editor/find_in_files.cpp +msgid "" +"Include the files with the following extensions. Add or remove them in " +"ProjectSettings." +msgstr "" #: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp @@ -3514,31 +3812,29 @@ msgstr "Επανεισαγωγή" #: editor/import_dock.cpp msgid "Save scenes, re-import and restart" -msgstr "" +msgstr "Αποθήκευση σκηνών, επανεισαγωγή και επανεκκίνηση" #: editor/import_dock.cpp -#, fuzzy msgid "Changing the type of an imported file requires editor restart." -msgstr "Η αλλαγή του Î¿Î´Î·Î³Î¿Ï Î²Î¯Î½Ï„ÎµÎ¿ απαιτεί επανεκκίνηση του επεξεÏγαστή." +msgstr "" +"Η αλλαγή του Ï„Ïπου εισαγμÎνου αÏχείου απαιτεί επανεκκίνηση του επεξεÏγαστή." #: editor/import_dock.cpp msgid "" "WARNING: Assets exist that use this resource, they may stop loading properly." -msgstr "" +msgstr "ΠΡΟΕΙΔΟΠΟΙΗΣΗ: Αυτός ο πόÏος χÏησιμοποιείται απο άλλους πόÏους." #: editor/inspector_dock.cpp msgid "Failed to load resource." msgstr "ΑπÎτυχε η φόÏτωση πόÏου." #: editor/inspector_dock.cpp -#, fuzzy msgid "Expand All Properties" -msgstr "Ανάπτυξη όλων των ιδιοτήτων" +msgstr "Ανάπτυξη Όλων των Ιδιοτήτων" #: editor/inspector_dock.cpp -#, fuzzy msgid "Collapse All Properties" -msgstr "ΣÏμπτηξη όλων των ιδιοτήτων" +msgstr "ΣÏμπτηξη Όλων των Ιδιοτήτων" #: editor/inspector_dock.cpp editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/script_editor_plugin.cpp @@ -3647,9 +3943,8 @@ msgstr "ΕνεÏγοποίηση τώÏα;" #: editor/plugins/abstract_polygon_2d_editor.cpp #: editor/plugins/polygon_2d_editor_plugin.cpp -#, fuzzy msgid "Create Polygon" -msgstr "Δημιουγία πολυγώνου" +msgstr "Δημιουγία Πολυγώνου" #: editor/plugins/abstract_polygon_2d_editor.cpp #: editor/plugins/animation_blend_space_1d_editor.cpp @@ -3658,16 +3953,14 @@ msgid "Create points." msgstr "ΔημιουÏγία σημείων." #: editor/plugins/abstract_polygon_2d_editor.cpp -#, fuzzy msgid "" "Edit points.\n" "LMB: Move Point\n" "RMB: Erase Point" msgstr "" -"ΕπεξεÏγασία υπαÏÎºÏ„Î¿Ï Ï€Î¿Î»Ï…Î³ÏŒÎ½Î¿Ï…:\n" -"ΑÏιστεÏÏŒ κλικ: Μετακίνηση σημείου.\n" -"Ctrl + ΑÏιστεÏÏŒ κλικ: ΔιαίÏεση τμήματος.\n" -"Δεξί κλικ: ΔιαγÏαφή σημείου." +"ΕπεξεÏγασία σημείων.\n" +"ΑÏιστεÏÏŒ κλικ: Μετακίνηση σημείου\n" +"Δεξί κλικ: ΔιαγÏαφή σημείου" #: editor/plugins/abstract_polygon_2d_editor.cpp #: editor/plugins/animation_blend_space_1d_editor.cpp @@ -3675,23 +3968,20 @@ msgid "Erase points." msgstr "ΔιαγÏαφή σημείων." #: editor/plugins/abstract_polygon_2d_editor.cpp -#, fuzzy msgid "Edit Polygon" -msgstr "ΕπεγεÏγασία πολυγώνου" +msgstr "ΕπεγεÏγασία Πολυγώνου" #: editor/plugins/abstract_polygon_2d_editor.cpp msgid "Insert Point" msgstr "Εισαγωγή σημείου" #: editor/plugins/abstract_polygon_2d_editor.cpp -#, fuzzy msgid "Edit Polygon (Remove Point)" -msgstr "ΕπεγεÏγασία πολυγώνου (ΑφαίÏεση σημείου)" +msgstr "ΕπεγεÏγασία Πολυγώνου (ΑφαίÏεση σημείου)" #: editor/plugins/abstract_polygon_2d_editor.cpp -#, fuzzy msgid "Remove Polygon And Point" -msgstr "ΑφαίÏεση πολυγώνου και σημείου" +msgstr "ΑφαίÏεση Πολυγώνου και Σημείου" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp @@ -3705,25 +3995,21 @@ msgstr "Î Ïοσθήκη κίνησης" #: 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 "Load..." -msgstr "ΦόÏτωσε.." +msgstr "ΦόÏτωσε..." #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp -#, fuzzy msgid "Move Node Point" -msgstr "Μετακίνηση σημείου" +msgstr "Μετακίνηση Σημείου Κόμβου" #: editor/plugins/animation_blend_space_1d_editor.cpp -#, fuzzy msgid "Change BlendSpace1D Limits" -msgstr "Αλλαγή χÏόνου ανάμειξης" +msgstr "Αλλαγή ΟÏίων BlendSpace1D" #: editor/plugins/animation_blend_space_1d_editor.cpp -#, fuzzy msgid "Change BlendSpace1D Labels" -msgstr "Αλλαγή χÏόνου ανάμειξης" +msgstr "Αλλαγή ΤαμπÎλων BlendSpace1D" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp @@ -3733,24 +4019,21 @@ msgstr "ΆκυÏος Ï„Ïπος κόμβου. ΕπιτÏÎπονται μόνο #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp -#, fuzzy msgid "Add Node Point" -msgstr "Î Ïοσθήκη κόμβου" +msgstr "Î Ïοσθήκη Σημείου Κόμβου" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp -#, fuzzy msgid "Add Animation Point" -msgstr "Î Ïοσθήκη κίνησης" +msgstr "Î Ïοσθήκη Σημείου Κίνησης" #: editor/plugins/animation_blend_space_1d_editor.cpp -#, fuzzy msgid "Remove BlendSpace1D Point" -msgstr "ΑφαίÏεση σημείου διαδÏομής" +msgstr "ΑφαίÏεση Σημείου BlendSpace1D" #: editor/plugins/animation_blend_space_1d_editor.cpp msgid "Move BlendSpace1D Node Point" -msgstr "" +msgstr "Μετακίνηση Σημείου Κόμβου BlendSpace1D" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp @@ -3777,7 +4060,7 @@ msgstr "Επιλογή και μετακίνηση σημείων, Î´Î·Î¼Î¹Î¿Ï…Ï #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp scene/gui/graph_edit.cpp msgid "Enable snap and show grid." -msgstr "" +msgstr "ΕνεÏγοποίηση κουμπώματος και εμφάνιση πλÎγματος." #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp @@ -3792,33 +4075,29 @@ msgid "Open Animation Node" msgstr "Άνοιγμα κόμβου κίνησης" #: editor/plugins/animation_blend_space_2d_editor.cpp -msgid "Triangle already exists" +#, fuzzy +msgid "Triangle already exists." msgstr "Το Ï„Ïίγωνο υπάÏχει ήδη" #: editor/plugins/animation_blend_space_2d_editor.cpp -#, fuzzy msgid "Add Triangle" -msgstr "Î Ïοσθήκη μεταβλητής" +msgstr "Î Ïοσθήκη ΤÏιγώνου" #: editor/plugins/animation_blend_space_2d_editor.cpp -#, fuzzy msgid "Change BlendSpace2D Limits" -msgstr "Αλλαγή χÏόνου ανάμειξης" +msgstr "Αλλαγή ΟÏίων BlendSpace2D" #: editor/plugins/animation_blend_space_2d_editor.cpp -#, fuzzy msgid "Change BlendSpace2D Labels" -msgstr "Αλλαγή χÏόνου ανάμειξης" +msgstr "Αλλαγή ΤαμπÎλων BlendSpace2D" #: editor/plugins/animation_blend_space_2d_editor.cpp -#, fuzzy msgid "Remove BlendSpace2D Point" -msgstr "ΑφαίÏεση σημείου διαδÏομής" +msgstr "ΑφαίÏεση Σημείου BlendSpace2D" #: editor/plugins/animation_blend_space_2d_editor.cpp -#, fuzzy msgid "Remove BlendSpace2D Triangle" -msgstr "ΑφαίÏεση μεταβλητής" +msgstr "ΑφαίÏεση ΤÏιγώνου BlendSpace2D" #: editor/plugins/animation_blend_space_2d_editor.cpp msgid "BlendSpace2D does not belong to an AnimationTree node." @@ -3829,9 +4108,8 @@ msgid "No triangles exist, so no blending can take place." msgstr "Δεν υπάÏχουν Ï„Ïίγωνα, οπότε είναι αδÏνατη η μίξη." #: editor/plugins/animation_blend_space_2d_editor.cpp -#, fuzzy msgid "Toggle Auto Triangles" -msgstr "Εναλλαγή καθολικών υπογÏαφών AutoLoad" +msgstr "Εναλλαγή Αυτόματων ΤÏιγώνων" #: editor/plugins/animation_blend_space_2d_editor.cpp msgid "Create triangles by connecting points." @@ -3851,9 +4129,8 @@ msgid "Blend:" msgstr "Ανάμειξη:" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#, fuzzy msgid "Parameter Changed" -msgstr "ΑλλαγÎÏ‚ υλικοÏ" +msgstr "Αλλαγη ΠαÏαμÎÏ„Ïου" #: editor/plugins/animation_blend_tree_editor_plugin.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp @@ -3865,18 +4142,15 @@ msgid "Output node can't be added to the blend tree." msgstr "Ο κόμβος εξόδου δεν μποÏεί να Ï€Ïοστεθεί στο δÎντÏο μίξης." #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#, fuzzy msgid "Add Node to BlendTree" -msgstr "Î ÏοσθÎστε κόμβο/-ους από δÎντÏο" +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 -#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Unable to connect, port may be in use or connection may be invalid." msgstr "" "ΑδÏνατη η σÏνδεση, η θÏÏα μποÏεί να χÏησιμοποιείται ή η σÏνδεση να είναι " @@ -3884,26 +4158,22 @@ 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 -#, fuzzy msgid "Set Animation" -msgstr "Κίνηση" +msgstr "ΟÏισμός Κίνησης" #: editor/plugins/animation_blend_tree_editor_plugin.cpp #: editor/plugins/visual_shader_editor_plugin.cpp -#, fuzzy msgid "Delete Node" -msgstr "ΔιαγÏαφή Κόμβων" +msgstr "ΔιαγÏαφή Κόμβου" #: editor/plugins/animation_blend_tree_editor_plugin.cpp #: editor/scene_tree_dock.cpp @@ -3911,14 +4181,12 @@ msgid "Delete Node(s)" msgstr "ΔιαγÏαφή Κόμβων" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#, fuzzy msgid "Toggle Filter On/Off" -msgstr "Εναλλαγή ÎºÎ¿Î¼Î¼Î±Ï„Î¹Î¿Ï on/off." +msgstr "Εναλλαγή ΦίλτÏου On/Off" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#, fuzzy msgid "Change Filter" -msgstr "Αλλαγή φίλτÏου τοπικών Ïυθμίσεων" +msgstr "Αλλαγή ΦίλτÏου" #: editor/plugins/animation_blend_tree_editor_plugin.cpp msgid "No animation player set, so unable to retrieve track names." @@ -3943,15 +4211,13 @@ msgstr "" #: editor/plugins/animation_blend_tree_editor_plugin.cpp #: editor/plugins/animation_state_machine_editor.cpp -#, fuzzy msgid "Node Renamed" -msgstr "Όνομα κόμβου:" +msgstr "Μετονομασία Κόμβου" #: editor/plugins/animation_blend_tree_editor_plugin.cpp #: editor/plugins/visual_shader_editor_plugin.cpp -#, fuzzy msgid "Add Node..." -msgstr "Î Ïοσθήκη κόμβου.." +msgstr "Î Ïοσθήκη Κόμβου..." #: editor/plugins/animation_blend_tree_editor_plugin.cpp #: editor/plugins/root_motion_editor_plugin.cpp @@ -3959,7 +4225,8 @@ msgid "Edit Filtered Tracks:" msgstr "ΕπεξεÏγασία φιλτÏαÏισμÎνων κομματιών:" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -msgid "Enable filtering" +#, fuzzy +msgid "Enable Filtering" msgstr "ΕνεÏγοποίηση φιλτÏαÏίσματος" #: editor/plugins/animation_player_editor_plugin.cpp @@ -4074,10 +4341,6 @@ msgid "Animation" msgstr "Κίνηση" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "New" -msgstr "ÎÎο" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Edit Transitions..." msgstr "ΕπεξεÏγασία μεταβάσεων..." @@ -4094,14 +4357,15 @@ msgid "Autoplay on Load" msgstr "Αυτόματη αναπαÏαγωγή" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Onion Skinning" -msgstr "ΞεφλοÏδισμα κÏεμμυδιοÏ" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Enable Onion Skinning" msgstr "ΕνεÏγοποίηση ξεφλουδίσματος κÏεμμυδιοÏ" #: editor/plugins/animation_player_editor_plugin.cpp +#, fuzzy +msgid "Onion Skinning Options" +msgstr "ΞεφλοÏδισμα κÏεμμυδιοÏ" + +#: editor/plugins/animation_player_editor_plugin.cpp msgid "Directions" msgstr "Κατευθήνσεις" @@ -4174,14 +4438,12 @@ msgid "Cross-Animation Blend Times" msgstr "ΧÏόνοι ανάμειξης κινήσεων" #: editor/plugins/animation_state_machine_editor.cpp -#, fuzzy msgid "Move Node" -msgstr "ΛειτουÏγία μετακίνησης" +msgstr "Μετακίνηση Κόμβου" #: editor/plugins/animation_state_machine_editor.cpp -#, fuzzy msgid "Add Transition" -msgstr "Î Ïοσθήκη μετάφÏασης" +msgstr "Î Ïοσθήκη Μετάβασης" #: editor/plugins/animation_state_machine_editor.cpp #: modules/visual_script/visual_script_editor.cpp @@ -4217,18 +4479,16 @@ msgid "No playback resource set at path: %s." msgstr "ΚανÎνας πόÏος αναπαÏαγωγής στη διαδÏομή: %s." #: editor/plugins/animation_state_machine_editor.cpp -#, fuzzy msgid "Node Removed" -msgstr "ΑφαιÏÎθηκαν:" +msgstr "Μετονομασία κόμβου" #: editor/plugins/animation_state_machine_editor.cpp -#, fuzzy msgid "Transition Removed" -msgstr "Κόμβος μετάβασης" +msgstr "ΑφαίÏεση Μετάβασης" #: editor/plugins/animation_state_machine_editor.cpp msgid "Set Start Node (Autoplay)" -msgstr "" +msgstr "ΟÏισμός Κόμβου Εκκίνησης (Αυτόματη ΈναÏξη)" #: editor/plugins/animation_state_machine_editor.cpp msgid "" @@ -4249,9 +4509,8 @@ msgid "Connect nodes." msgstr "ΣÏνδεση κόμβων." #: editor/plugins/animation_state_machine_editor.cpp -#, fuzzy msgid "Remove selected node or transition." -msgstr "ΑφαίÏεση επιλεγμÎνου κόμβου ή μετάβασης" +msgstr "ΑφαίÏεση επιλεγμÎνου κόμβου ή μετάβασης." #: editor/plugins/animation_state_machine_editor.cpp msgid "Toggle autoplay this animation on start, restart or seek to zero." @@ -4649,22 +4908,27 @@ msgid "Resize CanvasItem" msgstr "Αλλαγή μεγÎθους CanvasItem" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Scale CanvasItem" -msgstr "ΠεÏιστÏοφή CanvasItem" +msgstr "Κλιμάκωση CanvasItem" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Move CanvasItem" msgstr "Μετακίνηση CanvasItem" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"Children of containers have their anchors and margins values overridden by " +"their parent." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Presets for the anchors and margins values of a Control node." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "" -"Children of containers have their anchors and margins values overridden by " -"their parent." +"When active, moving Control nodes changes their anchors instead of their " +"margins." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4680,10 +4944,52 @@ msgid "Change Anchors" msgstr "Αλλαγή αγκυÏών" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Lock Selected" +msgstr "ΕÏγαλείο επιλογής" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Unlock Selected" +msgstr "ΔιαγÏαφή επιλεγμÎνου" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Group Selected" +msgstr "ΑφαίÏεση επιλογής" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Ungroup Selected" +msgstr "ΑφαίÏεση επιλογής" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Paste Pose" msgstr "Επικόληση στάσης" #: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Create Custom Bone(s) from Node(s)" +msgstr "ΔημιουÏγία Ï€ÏοσαÏμοσμÎνων οστών απο κόμβους" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Clear Bones" +msgstr "ΕκκαθάÏιση στάσης" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Make IK Chain" +msgstr "ΔημιουÏγία αλυσίδας IK" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Clear IK Chain" +msgstr "ΕκκαθάÏιση αλυσίδας IK" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "" "Warning: Children of a container get their position and size determined only " "by their parent." @@ -4761,7 +5067,8 @@ msgid "Snapping Options" msgstr "ΕπιλογÎÏ‚ κουμπώματος" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to grid" +#, fuzzy +msgid "Snap to Grid" msgstr "κουμπώματος στο πλÎγμα" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4782,31 +5089,38 @@ msgid "Use Pixel Snap" msgstr "ΧÏήση κουμπώματος εικονοστοιχείου" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Smart snapping" +#, fuzzy +msgid "Smart Snapping" msgstr "Έξυπνο κοÏμπωμα" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to parent" +#, fuzzy +msgid "Snap to Parent" msgstr "ΚοÏμπωμα στον γονÎα" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node anchor" +#, fuzzy +msgid "Snap to Node Anchor" msgstr "ΚοÏμπωμα στην άγκυÏα του κόμβου" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node sides" +#, fuzzy +msgid "Snap to Node Sides" msgstr "ΚοÏμπωμα στις πλευÏÎÏ‚ του κόμβου" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node center" +#, fuzzy +msgid "Snap to Node Center" msgstr "ΚοÏμπωμα στο κÎντÏο του κόμβου" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to other nodes" +#, fuzzy +msgid "Snap to Other Nodes" msgstr "ΚοÏμπωμα σε άλλους κόμβους" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to guides" +#, fuzzy +msgid "Snap to Guides" msgstr "ΚοÏμπωμα στους οδηγοÏÏ‚" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4820,10 +5134,12 @@ msgid "Unlock the selected object (can be moved)." msgstr "Ξεκλείδωμα του επιλεγμÎνου αντικείμÎνου (ΜποÏεί να μετακινηθεί)." #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Makes sure the object's children are not selectable." msgstr "ΣιγουÏεÏεται ότι τα παιδιά του αντικειμÎνου δεν μποÏοÏν να επιλεχθοÏν." #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Restores the object's children's ability to be selected." msgstr "ΕπαναφÎÏει την δυνατότητα των παιδιών του αντικειμÎνου να επιλεγοÏν." @@ -4837,14 +5153,6 @@ msgid "Show Bones" msgstr "Εμφάνιση οστών" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Make IK Chain" -msgstr "ΔημιουÏγία αλυσίδας IK" - -#: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Clear IK Chain" -msgstr "ΕκκαθάÏιση αλυσίδας IK" - -#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Make Custom Bone(s) from Node(s)" msgstr "ΔημιουÏγία Ï€ÏοσαÏμοσμÎνων οστών απο κόμβους" @@ -4895,8 +5203,8 @@ msgid "Frame Selection" msgstr "Πλαισίωμα επιλογής" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Layout" -msgstr "Διάταξη" +msgid "Preview Canvas Scale" +msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Translation mask for inserting keys." @@ -4949,6 +5257,11 @@ msgid "Divide grid step by 2" msgstr "ΔιαίÏεση βήματος πλÎγματος με 2" #: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Pan View" +msgstr "Πίσω όψη" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Add %s" msgstr "Î Ïόσθεσε %s" @@ -4971,7 +5284,8 @@ msgid "Error instancing scene from %s" msgstr "Σφάλμα κατά την αÏχικοποίηση σκηνής από %s" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Change default type" +#, fuzzy +msgid "Change Default Type" msgstr "Αλλαγή Ï€ÏοεπιλεγμÎνου Ï„Ïπου" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -5060,20 +5374,22 @@ msgid "Create Emission Points From Node" msgstr "ΔημιουÏγία σημείων εκπομπής από κόμβο" #: editor/plugins/curve_editor_plugin.cpp -msgid "Flat0" +#, fuzzy +msgid "Flat 0" msgstr "Επίπεδο 0" #: editor/plugins/curve_editor_plugin.cpp -msgid "Flat1" +#, fuzzy +msgid "Flat 1" msgstr "Επίπεδο 1" -#: editor/plugins/curve_editor_plugin.cpp -msgid "Ease in" -msgstr "Ομαλά μÎσα" +#: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp +msgid "Ease In" +msgstr "Ομαλή κίνηση Ï€Ïος τα μÎσα" -#: editor/plugins/curve_editor_plugin.cpp -msgid "Ease out" -msgstr "Ομαλά Îξω" +#: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp +msgid "Ease Out" +msgstr "Ομαλή κίνηση Ï€Ïος τα Îξω" #: editor/plugins/curve_editor_plugin.cpp msgid "Smoothstep" @@ -5092,23 +5408,28 @@ msgid "Load Curve Preset" msgstr "ΦόÏτωση Ï€ÏοκαθοÏισμÎνης καμπÏλης" #: editor/plugins/curve_editor_plugin.cpp -msgid "Add point" +#, fuzzy +msgid "Add Point" msgstr "Î Ïοσθήκη σημείου" #: editor/plugins/curve_editor_plugin.cpp -msgid "Remove point" +#, fuzzy +msgid "Remove Point" msgstr "ΑφαίÏεση σημείου" #: editor/plugins/curve_editor_plugin.cpp -msgid "Left linear" +#, fuzzy +msgid "Left Linear" msgstr "ΑÏιστεÏή γÏαμμική" #: editor/plugins/curve_editor_plugin.cpp -msgid "Right linear" +#, fuzzy +msgid "Right Linear" msgstr "Δεξιά γÏαμμική" #: editor/plugins/curve_editor_plugin.cpp -msgid "Load preset" +#, fuzzy +msgid "Load Preset" msgstr "ΦόÏτωση διαμόÏφωσης" #: editor/plugins/curve_editor_plugin.cpp @@ -5164,11 +5485,17 @@ msgid "This doesn't work on scene root!" msgstr "Αυτό δεν δουλεÏει στη Ïίζα της σκηνής!" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Trimesh Shape" +#, fuzzy +msgid "Create Trimesh Static Shape" msgstr "ΔημιουÏγία σχήματος πλÎγματος Ï„Ïιγώνων" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Shape" +msgid "Failed creating shapes!" +msgstr "" + +#: editor/plugins/mesh_instance_editor_plugin.cpp +#, fuzzy +msgid "Create Convex Shape(s)" msgstr "ΔημιουÏγία κυÏÏ„Î¿Ï ÏƒÏ‡Î®Î¼Î±Ï„Î¿Ï‚" #: editor/plugins/mesh_instance_editor_plugin.cpp @@ -5221,15 +5548,12 @@ msgid "Create Trimesh Static Body" msgstr "ΔημιουÏγία ÏƒÏ„Î±Ï„Î¹ÎºÎ¿Ï ÏƒÏŽÎ¼Î±Ï„Î¿Ï‚ πλÎγματος Ï„Ïιγώνων" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Static Body" -msgstr "ΔημιουÏγία ÏƒÏ„Î±Ï„Î¹ÎºÎ¿Ï ÎºÏ…ÏÏ„Î¿Ï ÏƒÏŽÎ¼Î±Ï„Î¿Ï‚" - -#: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Trimesh Collision Sibling" msgstr "ΔημιουÏγία Î±Î´ÎµÎ»Ï†Î¿Ï ÏƒÏγκÏουσης πλÎγατος Ï„Ïιγώνων" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Collision Sibling" +#, fuzzy +msgid "Create Convex Collision Sibling(s)" msgstr "ΔημιουÏγία Î±Î´ÎµÎ»Ï†Î¿Ï ÏƒÏγκÏουσης κυÏÏ„Î¿Ï ÏƒÏŽÎ¼Î±Ï„Î¿Ï‚" #: editor/plugins/mesh_instance_editor_plugin.cpp @@ -5385,6 +5709,11 @@ msgid "Create Navigation Polygon" msgstr "ΔημιουÏγία πολυγώνου πλοήγησης" #: editor/plugins/particles_2d_editor_plugin.cpp +#: editor/plugins/particles_editor_plugin.cpp +msgid "Convert to CPUParticles" +msgstr "ΜετατÏοπή σε σωματίδια CPU" + +#: editor/plugins/particles_2d_editor_plugin.cpp #, fuzzy msgid "Generating Visibility Rect" msgstr "ΔημιουÏγία οÏθογωνίου οÏατότητας" @@ -5401,11 +5730,6 @@ msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp #: editor/plugins/particles_editor_plugin.cpp -msgid "Convert to CPUParticles" -msgstr "ΜετατÏοπή σε σωματίδια CPU" - -#: editor/plugins/particles_2d_editor_plugin.cpp -#: editor/plugins/particles_editor_plugin.cpp msgid "Generation Time (sec):" msgstr "ΧÏόνος παÏαγωγής (sec):" @@ -5545,7 +5869,7 @@ msgstr "κλείσιμο καμπÏλης" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp editor/plugins/theme_editor_plugin.cpp -#: editor/project_export.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_export.cpp msgid "Options" msgstr "ΕπιλογÎÏ‚" @@ -5597,7 +5921,7 @@ msgstr "ΔιαχωÏισμός τμήματος (στην καμπÏλη)" #: editor/plugins/physical_bone_plugin.cpp #, fuzzy -msgid "Move joint" +msgid "Move Joint" msgstr "Μετακίνηση σημείου" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5849,7 +6173,6 @@ msgid "Open in Editor" msgstr "Άνοιγμα στον επεξεÏγαστή" #: editor/plugins/resource_preloader_editor_plugin.cpp -#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Load Resource" msgstr "ΦόÏτωση πόÏου" @@ -5951,6 +6274,11 @@ msgid "%s Class Reference" msgstr " ΑναφοÏά κλασεων" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp +msgid "Find Next" +msgstr "ΕÏÏεση επόμενου" + +#: editor/plugins/script_editor_plugin.cpp msgid "Toggle alphabetical sorting of the method list." msgstr "" @@ -6034,10 +6362,6 @@ msgstr "Κλείσιμο τεκμηÏίωσης" msgid "Close All" msgstr "Κλείσιμο όλων" -#: editor/plugins/script_editor_plugin.cpp -msgid "Close Other Tabs" -msgstr "Κλείσιμο άλλον καÏτελών" - #: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp msgid "Run" msgstr "ΕκτÎλεση" @@ -6046,11 +6370,6 @@ msgstr "ΕκτÎλεση" msgid "Toggle Scripts Panel" msgstr "Εναλλαγή πλαισίου δεσμών ενεÏγειών" -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/script_text_editor.cpp -msgid "Find Next" -msgstr "ΕÏÏεση επόμενου" - #: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp msgid "Step Over" msgstr "Βήμα πάνω" @@ -6078,7 +6397,8 @@ msgid "Debug with External Editor" msgstr "Αποσφαλμάτωση με εξωτεÏικό επεξεÏγαστή" #: editor/plugins/script_editor_plugin.cpp -msgid "Open Godot online documentation" +#, fuzzy +msgid "Open Godot online documentation." msgstr "Άνοιγμα ηλεκτÏονικής τεκμηÏίωσης της Godot" #: editor/plugins/script_editor_plugin.cpp @@ -6086,7 +6406,7 @@ msgid "Request Docs" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Help improve the Godot documentation by giving feedback" +msgid "Help improve the Godot documentation by giving feedback." msgstr "" #: editor/plugins/script_editor_plugin.cpp @@ -6095,7 +6415,7 @@ msgstr "Αναζήτηση στην τεκμηÏίωση αναφοÏάς." #: editor/plugins/script_editor_plugin.cpp msgid "Go to previous edited document." -msgstr "Πήγαινε στο Ï€ÏοηγοÏμενo ÎγγÏαφο." +msgstr "ΕπιστÏοφή στο Ï€ÏοηγοÏμενo ÎγγÏαφο." #: editor/plugins/script_editor_plugin.cpp msgid "Go to next edited document." @@ -6114,10 +6434,12 @@ msgstr "" "Τι δÏάση να ληφθεί;:" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp msgid "Reload" msgstr "ΕπαναφόÏτωση" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp msgid "Resave" msgstr "Επαναποθήκευση" @@ -6132,6 +6454,32 @@ msgstr "Αναζήτηση βοήθειας" #: editor/plugins/script_text_editor.cpp #, fuzzy +msgid "Connections to method:" +msgstr "ΣÏνδεση στον κόμβο:" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Source" +msgstr "Πηγή:" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Signal" +msgstr "Σήματα" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Target" +msgstr "ΔιαδÏομή Ï€ÏοοÏισμοÏ:" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "" +"Missing connected method '%s' for signal '%s' from node '%s' to node '%s'." +msgstr "ΑποσÏνδεση του '%s' απο το '%s'" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy msgid "Line" msgstr "ΓÏαμμή:" @@ -6140,13 +6488,8 @@ msgid "(ignore)" msgstr "" #: editor/plugins/script_text_editor.cpp -#, fuzzy msgid "Go to Function" -msgstr "Πήγαινε σε συνάÏτηση..." - -#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp -msgid "Standard" -msgstr "" +msgstr "Πήγαινε σε συνάÏτηση" #: editor/plugins/script_text_editor.cpp msgid "Only resources from filesystem can be dropped." @@ -6181,6 +6524,11 @@ msgstr "Κεφαλαιοποίηση" msgid "Syntax Highlighter" msgstr "" +#: editor/plugins/script_text_editor.cpp +#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp +msgid "Bookmarks" +msgstr "" + #: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" @@ -6208,6 +6556,26 @@ msgid "Toggle Comment" msgstr "Εναλλαγή σχολιασμοÏ" #: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Toggle Bookmark" +msgstr "Εναλλαγή ελεÏθεÏης κάμεÏας" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Go to Next Bookmark" +msgstr "Πήγαινε στο επόμενο σημείο διακοπής" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Go to Previous Bookmark" +msgstr "ΕπιστÏοφή στο Ï€ÏοηγοÏμενο σημείο διακοπής" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Remove All Bookmarks" +msgstr "ΑφαίÏεση όλων των στοιχείων" + +#: editor/plugins/script_text_editor.cpp msgid "Fold/Unfold Line" msgstr "Δίπλωμα/Ξεδίπλωμα γÏαμμής" @@ -6255,14 +6623,12 @@ msgid "Remove All Breakpoints" msgstr "ΑφαίÏεση όλων των σημείων διακοπής" #: editor/plugins/script_text_editor.cpp -#, fuzzy msgid "Go to Next Breakpoint" msgstr "Πήγαινε στο επόμενο σημείο διακοπής" #: editor/plugins/script_text_editor.cpp -#, fuzzy msgid "Go to Previous Breakpoint" -msgstr "Πήγαινε στο Ï€ÏοηγοÏμενο σημείο διακοπής" +msgstr "ΕπιστÏοφή στο Ï€ÏοηγοÏμενο σημείο διακοπής" #: editor/plugins/script_text_editor.cpp msgid "Find Previous" @@ -6274,12 +6640,10 @@ msgid "Find in Files..." msgstr "ΦιλτÏάÏισμα αÏχείων..." #: editor/plugins/script_text_editor.cpp -#, fuzzy msgid "Go to Function..." msgstr "Πήγαινε σε συνάÏτηση..." #: editor/plugins/script_text_editor.cpp -#, fuzzy msgid "Go to Line..." msgstr "Πήγαινε σε γÏαμμή..." @@ -6288,6 +6652,15 @@ msgid "Contextual Help" msgstr "Βοήθεια ανάλογα με τα συμφÏαζόμενα" #: editor/plugins/shader_editor_plugin.cpp +#, fuzzy +msgid "" +"This shader has been modified on on disk.\n" +"What action should be taken?" +msgstr "" +"Τα ακόλουθα αÏχεία είναι νεότεÏα στον δίσκο.\n" +"Τι δÏάση να ληφθεί;:" + +#: editor/plugins/shader_editor_plugin.cpp msgid "Shader" msgstr "Î ÏόγÏαμμα σκίασης" @@ -6641,7 +7014,8 @@ msgid "Right View" msgstr "Δεξιά όψη" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Switch Perspective/Orthogonal view" +#, fuzzy +msgid "Switch Perspective/Orthogonal View" msgstr "Εναλλαγή Î Ïοοπτικής / ΑξονομετÏικής Ï€Ïοβολής" #: editor/plugins/spatial_editor_plugin.cpp @@ -6681,12 +7055,14 @@ msgid "Toggle Freelook" msgstr "Εναλλαγή ελεÏθεÏης κάμεÏας" #: editor/plugins/spatial_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Transform" msgstr "Μετασχηματισμός" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Snap object to floor" -msgstr "" +#, fuzzy +msgid "Snap Object to Floor" +msgstr "κουμπώματος στο πλÎγμα" #: editor/plugins/spatial_editor_plugin.cpp msgid "Transform Dialog..." @@ -6832,43 +7208,43 @@ msgid "Invalid geometry, can't replace by mesh." msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Invalid geometry, can't create polygon." -msgstr "" - -#: editor/plugins/sprite_editor_plugin.cpp -msgid "Invalid geometry, can't create collision polygon." -msgstr "" - -#: editor/plugins/sprite_editor_plugin.cpp -msgid "Invalid geometry, can't create light occluder." -msgstr "" - -#: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy -msgid "Sprite" -msgstr "KαÏÎ Sprite" - -#: editor/plugins/sprite_editor_plugin.cpp #, fuzzy msgid "Convert to Mesh2D" msgstr "ΜετατÏοπή σε %s" #: editor/plugins/sprite_editor_plugin.cpp +msgid "Invalid geometry, can't create polygon." +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp #, fuzzy msgid "Convert to Polygon2D" msgstr "Μετακίνηση πολυγώνου" #: editor/plugins/sprite_editor_plugin.cpp +msgid "Invalid geometry, can't create collision polygon." +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp #, fuzzy msgid "Create CollisionPolygon2D Sibling" msgstr "ΔημιουÏγία πολυγώνου πλοήγησης" #: editor/plugins/sprite_editor_plugin.cpp +msgid "Invalid geometry, can't create light occluder." +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp #, fuzzy msgid "Create LightOccluder2D Sibling" msgstr "ΔημιουÏγία πολυγώνου εμποδίου" #: editor/plugins/sprite_editor_plugin.cpp +#, fuzzy +msgid "Sprite" +msgstr "KαÏÎ Sprite" + +#: editor/plugins/sprite_editor_plugin.cpp msgid "Simplification: " msgstr "" @@ -6888,14 +7264,24 @@ msgid "Settings:" msgstr "Ρυθμίσεις" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "ERROR: Couldn't load frame resource!" -msgstr "ΣΦΑΛΜΑ: Δεν ήταν δυνατή η φόÏτωση πόÏου Ï„Ïπου καÏÎ!" +#, fuzzy +msgid "No Frames Selected" +msgstr "Πλαισίωμα επιλογής" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Add %d Frame(s)" +msgstr "Î Ïοσθήκη καÏÎ" #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Add Frame" msgstr "Î Ïοσθήκη καÏÎ" #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "ERROR: Couldn't load frame resource!" +msgstr "ΣΦΑΛΜΑ: Δεν ήταν δυνατή η φόÏτωση πόÏου Ï„Ïπου καÏÎ!" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Resource clipboard is empty or not a texture!" msgstr "Το Ï€ÏόχειÏο πόÏων είναι άδειο ή δεν είναι υφή!" @@ -6939,6 +7325,15 @@ msgid "Animation Frames:" msgstr "ΚαÏΠκίνησης" #: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Add a Texture from File" +msgstr "Î ÏοσθÎστε κόμβο/-ους από δÎντÏο" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Add Frames from a Sprite Sheet" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Insert Empty (Before)" msgstr "Εισαγωγή άδειου (Î Ïιν)" @@ -6955,6 +7350,30 @@ msgid "Move (After)" msgstr "Μετκίνιση (Μετά)" #: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Select Frames" +msgstr "Στοίβαξη καÏÎ" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Horizontal:" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Vertical:" +msgstr "ΚοÏυφÎÏ‚" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Select/Clear All Frames" +msgstr "Επιλογή όλων" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Create Frames from Sprite Sheet" +msgstr "ΔημιουÏγία από σκηνή" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "SpriteFrames" msgstr "KαÏÎ Sprite" @@ -7022,12 +7441,13 @@ msgstr "Î Ïοσθήκη όλων" msgid "Remove All Items" msgstr "ΑφαίÏεση όλων των στοιχείων" -#: editor/plugins/theme_editor_plugin.cpp +#: editor/plugins/theme_editor_plugin.cpp editor/project_manager.cpp msgid "Remove All" msgstr "ΑφαίÏεση όλων" #: editor/plugins/theme_editor_plugin.cpp -msgid "Edit theme..." +#, fuzzy +msgid "Edit Theme" msgstr "ΕπεξεÏγασία θÎματος..." #: editor/plugins/theme_editor_plugin.cpp @@ -7055,18 +7475,25 @@ msgid "Create From Current Editor Theme" msgstr "ΔημιουÏγία από το Ï„ÏÎχων θÎμα του επεξεÏγαστή" #: editor/plugins/theme_editor_plugin.cpp -msgid "CheckBox Radio1" -msgstr "Κουμπί επιλογής1" +#, fuzzy +msgid "Toggle Button" +msgstr "Κουμπί ποντικιοÏ" #: editor/plugins/theme_editor_plugin.cpp -msgid "CheckBox Radio2" -msgstr "Κουμπί επιλογής 2" +#, fuzzy +msgid "Disabled Button" +msgstr "Μεσαίο κουμπί" #: editor/plugins/theme_editor_plugin.cpp msgid "Item" msgstr "Στοιχείο" #: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Disabled Item" +msgstr "ΑπενεÏγοποιημÎνο" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Check Item" msgstr "Επιλογή στοιχείου" @@ -7083,6 +7510,24 @@ msgid "Checked Radio Item" msgstr "ΕπιλεγμÎνο στοιχείο επιλογής" #: editor/plugins/theme_editor_plugin.cpp +msgid "Named Sep." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Submenu" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Item 1" +msgstr "Στοιχείο" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Item 2" +msgstr "Στοιχείο" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Has" msgstr "Έχει" @@ -7091,8 +7536,9 @@ msgid "Many" msgstr "ΠολλÎÏ‚" #: editor/plugins/theme_editor_plugin.cpp -msgid "Has,Many,Options" -msgstr "Έχει,ΠολλÎÏ‚,ΕπιλογÎÏ‚" +#, fuzzy +msgid "Disabled LineEdit" +msgstr "ΑπενεÏγοποιημÎνο" #: editor/plugins/theme_editor_plugin.cpp msgid "Tab 1" @@ -7107,6 +7553,19 @@ msgid "Tab 3" msgstr "ΚαÏÏ„Îλα 3" #: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Editable Item" +msgstr "ΕπεξεÏγάσιμα παιδιά" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Subtree" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Has,Many,Options" +msgstr "Έχει,ΠολλÎÏ‚,ΕπιλογÎÏ‚" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Data Type:" msgstr "ΤÏπος δεδομÎνων:" @@ -7140,6 +7599,7 @@ msgid "Fix Invalid Tiles" msgstr "Μη ÎγκυÏο όνομα." #: editor/plugins/tile_map_editor_plugin.cpp +#: modules/gridmap/grid_map_editor_plugin.cpp #, fuzzy msgid "Cut Selection" msgstr "ΚεντÏάÏισμα επιλογής" @@ -7182,39 +7642,50 @@ msgid "Mirror Y" msgstr "ΣυμμετÏία στον άξονα Î¥" #: editor/plugins/tile_map_editor_plugin.cpp +#, fuzzy +msgid "Disable Autotile" +msgstr "Αυτόματο πλακίδια" + +#: editor/plugins/tile_map_editor_plugin.cpp +#, fuzzy +msgid "Enable Priority" +msgstr "ΕπεξεÏγασία φίλτÏων" + +#: editor/plugins/tile_map_editor_plugin.cpp msgid "Paint Tile" msgstr "Βάψιμο πλακιδίου" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Pick Tile" -msgstr "Επιλογή πλακιδίου" +msgid "" +"Shift+RMB: Line Draw\n" +"Shift+Ctrl+RMB: Rectangle Paint" +msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy -msgid "Copy Selection" -msgstr "ΑφαίÏεση επιλογής" +msgid "Pick Tile" +msgstr "Επιλογή πλακιδίου" #: editor/plugins/tile_map_editor_plugin.cpp #, fuzzy -msgid "Rotate left" +msgid "Rotate Left" msgstr "ΛειτουÏγία πεÏιστÏοφής" #: editor/plugins/tile_map_editor_plugin.cpp #, fuzzy -msgid "Rotate right" +msgid "Rotate Right" msgstr "Μετακίνηση δεξιά" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Flip horizontally" +msgid "Flip Horizontally" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Flip vertically" +msgid "Flip Vertically" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp #, fuzzy -msgid "Clear transform" +msgid "Clear Transform" msgstr "Μετασχηματισμός" #: editor/plugins/tile_set_editor_plugin.cpp @@ -7254,6 +7725,46 @@ msgid "Select the previous shape, subtile, or Tile." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Region Mode" +msgstr "ΛειτουÏγία εκτÎλεσης:" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Collision Mode" +msgstr "ΜÎθοδος παÏεμβολής" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Occlusion Mode" +msgstr "ΕπεγεÏγασία πολυγώνου" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Navigation Mode" +msgstr "ΔημιουÏγία πλÎγματος πλοήγησης" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Bitmask Mode" +msgstr "ΛειτουÏγία πεÏιστÏοφής" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Priority Mode" +msgstr "ΛειτουÏγία εξαγωγής:" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Icon Mode" +msgstr "ΛειτουÏγία Μετακίνησης κάμεÏας" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Z Index Mode" +msgstr "ΛειτουÏγία Μετακίνησης κάμεÏας" + +#: editor/plugins/tile_set_editor_plugin.cpp msgid "Copy bitmask." msgstr "" @@ -7343,6 +7854,7 @@ msgstr "ΔιαγÏαφή σημείων" msgid "" "LMB: Set bit on.\n" "RMB: Set bit off.\n" +"Shift+LMB: Set wildcard bit.\n" "Click on another Tile to edit it." msgstr "" "ΑÏιστεÏÏŒ κλικ: ενεÏγοποίησε το bit.\n" @@ -7475,6 +7987,79 @@ msgid "TileSet" msgstr "ΣÏνολο πλακιδίων" #: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Add input +" +msgstr "Î Ïοσθήκη εισόδου" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Add output +" +msgstr "Î Ïοσθήκη εισόδου" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar" +msgstr "Κλιμάκωση:" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector" +msgstr "ΕπιθεωÏητής" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Add input port" +msgstr "Î Ïοσθήκη εισόδου" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add output port" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change input port type" +msgstr "Αλλαγή Ï€ÏοεπιλεγμÎνου Ï„Ïπου" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change output port type" +msgstr "Αλλαγή Ï€ÏοεπιλεγμÎνου Ï„Ïπου" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change input port name" +msgstr "Αλλαγή ονόματος εισόδου" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change output port name" +msgstr "Αλλαγή ονόματος εισόδου" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Remove input port" +msgstr "ΑφαίÏεση σημείου" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Remove output port" +msgstr "ΑφαίÏεση σημείου" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Set expression" +msgstr "Αλλαγή ÎκφÏασης" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Resize VisualShader node" +msgstr "Î ÏόγÏαμμα σκίασης" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Set Uniform Name" msgstr "" @@ -7519,6 +8104,859 @@ msgstr "Δεξιά" #: editor/plugins/visual_shader_editor_plugin.cpp #, fuzzy +msgid "Create Shader Node" +msgstr "ΔημιουÏγία κόμβου" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Color function." +msgstr "Πήγαινε σε συνάÏτηση" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Color operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Grayscale function." +msgstr "ΔημιουÏγήστε μία συνάÏτηση" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts HSV vector to RGB equivalent." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts RGB vector to HSV equivalent." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Sepia function." +msgstr "Μετονομασία συνάÏτησης" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Burn operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Darken operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Difference operator." +msgstr "Μόνο διαφοÏÎÏ‚" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Dodge operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "HardLight operator" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Lighten operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Overlay operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Screen operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "SoftLight operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Color constant." +msgstr "ΣταθεÏή" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Color uniform." +msgstr "Μετασχηματισμός" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns an associated vector if the provided scalars are equal, greater or " +"less." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns an associated vector if the provided boolean value is true or false." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Boolean constant." +msgstr "Αλλαγή διανυσματικής σταθεÏάς" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'camera' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'inv_camera' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'inv_projection' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'normal' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'projection' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'time' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'viewport_size' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'world' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'texture_pixel_size' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Input parameter." +msgstr "ΚοÏμπωμα στον γονÎα" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'binormal' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'fragcoord' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_coord' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_uv' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'side' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'tangent' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv2' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'vertex' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'view' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'albedo' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'attenuation' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'diffuse' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_color' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'roughness' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'specular' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'transmission' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'modelview' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_size' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'tangent' input parameter for vertex and fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_pass' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_coord' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_pixel_size' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_uv' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_alpha' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_height' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_uv' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_vec' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'normal' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'shadow_color' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'extra' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'projection' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'vertex' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'world' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'active' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'custom' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'custom_alpha' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'delta' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'emission_transform' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'index' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'lifetime' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'restart' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'time' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'transform' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'velocity' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar function." +msgstr "Αλλαγή μονόμετÏης συνάÏτησης" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar operator." +msgstr "Αλλαγή μονόμετÏου τελεστή" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "E constant (2.718282). Represents the base of the natural logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Epsilon constant (0.00001). Smallest possible scalar number." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Phi constant (1.618034). Golden ratio." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi/4 constant (0.785398) or 45 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi/2 constant (1.570796) or 90 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi constant (3.141593) or 180 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Tau constant (6.283185) or 360 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Sqrt2 constant (1.414214). Square root of 2." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the absolute value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-tangent of the parameters." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Finds the nearest integer that is greater than or equal to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Constrains a value to lie between two further values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts a quantity in radians to degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-e Exponential." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-2 Exponential." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Finds the nearest integer less than or equal to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Computes the fractional part of the argument." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the inverse of the square root of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Natural logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-2 logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the greater of two values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the lesser of two values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Linear interpolation between two scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the opposite value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 - scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns the value of the first parameter raised to the power of the second." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts a quantity in degrees to radians." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 / scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the nearest integer to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the nearest even integer to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Clamps the value between 0.0 and 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Extracts the sign of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the square root of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( scalar(edge0), scalar(edge1), scalar(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if x is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( scalar(edge), scalar(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the truncated value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Adds scalar to scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Divides scalar by scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies scalar by scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the remainder of the two scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Subtracts scalar from scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar constant." +msgstr "Αλλαγή μονόμετÏης σταθεÏάς" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar uniform." +msgstr "Αλλαγή μονόμετÏης ομοιόμοÏφης μεταβλητής" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Perform the cubic texture lookup." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Perform the texture lookup." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Cubic texture uniform." +msgstr "Αλλαγή ομοιόμοÏφης μεταβλητής υφής" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "2D texture uniform." +msgstr "Αλλαγή ομοιόμοÏφης μεταβλητής υφής" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Transform function." +msgstr "Διάλογος μετασχηματισμοÏ..." + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) Calculate the outer product of a pair of vectors.\n" +"\n" +"OuterProduct treats the first parameter 'c' as a column vector (matrix with " +"one column) and the second parameter 'r' as a row vector (matrix with one " +"row) and does a linear algebraic matrix multiply 'c * r', yielding a matrix " +"whose number of rows is the number of components in 'c' and whose number of " +"columns is the number of components in 'r'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Composes transform from four vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Decomposes transform to four vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the determinant of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the inverse of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the transpose of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies transform by transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies vector by transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Transform constant." +msgstr "Ο μετασχηματισμός ματαιώθηκε." + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Transform uniform." +msgstr "Ο μετασχηματισμός ματαιώθηκε." + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector function." +msgstr "Πήγαινε σε συνάÏτηση..." + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector operator." +msgstr "Αλλαγή Î´Î¹Î±Î½Ï…ÏƒÎ¼Î±Ï„Î¹ÎºÎ¿Ï Ï„ÎµÎ»ÎµÏƒÏ„Î®" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Composes vector from three scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Decomposes vector to three scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the cross product of two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the distance between two points." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the dot product of two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns a vector that points in the same direction as a reference vector. " +"The function has three vector parameters : N, the vector to orient, I, the " +"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 "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the length of a vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Linear interpolation between two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the normalize product of vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 - vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 / vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns a vector that points in the direction of reflection ( a : incident " +"vector, b : normal vector )." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns a vector that points in the direction of refraction." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( vector(edge0), vector(edge1), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if 'x' is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( scalar(edge0), scalar(edge1), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if 'x' is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( vector(edge), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( scalar(edge), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Adds vector to vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Divides vector by vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies vector by vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the remainder of the two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Subtracts vector from vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector constant." +msgstr "Αλλαγή διανυσματικής σταθεÏάς" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector uniform." +msgstr "Αλλαγή διανυσματικής ομοιόμοÏφης μεταβλητής" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Custom Godot Shader Language expression, with custom amount of input and " +"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 "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns falloff based on the dot product of surface normal and view " +"direction of camera (pass associated inputs to it)." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) (Fragment/Light mode only) Scalar derivative function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) (Fragment/Light mode only) Vector derivative function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Derivative in 'x' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Derivative in 'x' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Derivative in 'y' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Derivative in 'y' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Sum of absolute derivative " +"in 'x' and 'y'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Sum of absolute derivative " +"in 'x' and 'y'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy msgid "VisualShader" msgstr "Î ÏόγÏαμμα σκίασης" @@ -7726,6 +9164,10 @@ msgid "Directory already contains a Godot project." msgstr "" #: editor/project_manager.cpp +msgid "New Game Project" +msgstr "ÎÎο ÎÏγο παιχνιδιοÏ" + +#: editor/project_manager.cpp msgid "Imported Project" msgstr "ΕισαγμÎνο ÎÏγο" @@ -7775,10 +9217,6 @@ msgid "Rename Project" msgstr "Μετονομασία ÎÏγου" #: editor/project_manager.cpp -msgid "New Game Project" -msgstr "ÎÎο ÎÏγο παιχνιδιοÏ" - -#: editor/project_manager.cpp msgid "Import Existing Project" msgstr "Εισαγωγή υπαÏÎºÏ„Î¿Ï ÎÏγου" @@ -7807,10 +9245,6 @@ msgid "Project Name:" msgstr "Όνομα ÎÏγου:" #: editor/project_manager.cpp -msgid "Create folder" -msgstr "ΔημιουÏγία φακÎλου" - -#: editor/project_manager.cpp msgid "Project Path:" msgstr "ΔιαδÏομή ÎÏγου:" @@ -7820,10 +9254,6 @@ msgid "Project Installation Path:" msgstr "ΔιαδÏομή ÎÏγου:" #: editor/project_manager.cpp -msgid "Browse" -msgstr "ΠεÏιήγηση" - -#: editor/project_manager.cpp msgid "Renderer:" msgstr "" @@ -7877,8 +9307,8 @@ msgid "" "\n" "If you proceed with opening it, it will be converted to Godot's current " "configuration file format.\n" -"Warning: You will not be able to open the project with previous versions of " -"the engine anymore." +"Warning: You won't be able to open the project with previous versions of the " +"engine anymore." msgstr "" #: editor/project_manager.cpp @@ -7889,8 +9319,8 @@ msgid "" "%s\n" "\n" "Do you want to convert it?\n" -"Warning: You will not be able to open the project with previous versions of " -"the engine anymore." +"Warning: You won't be able to open the project with previous versions of the " +"engine anymore." msgstr "" #: editor/project_manager.cpp @@ -7900,9 +9330,10 @@ msgid "" msgstr "" #: editor/project_manager.cpp +#, fuzzy msgid "" "Can't run project: no main scene defined.\n" -"Please edit the project and set the main scene in \"Project Settings\" under " +"Please edit the project and set the main scene in the Project Settings under " "the \"Application\" category." msgstr "" "Δεν είναι δυνατή η εκτÎλεση του ÎÏγου: Δεν Îχει καθοÏιστεί κÏÏια σκηνή.\n" @@ -7918,28 +9349,52 @@ msgstr "" "ΠαÏακαλώ επεξεÏγαστείτε το ÎÏγο για να γίνει η αÏχική εισαγωγή." #: editor/project_manager.cpp -msgid "Are you sure to run more than one project?" +#, fuzzy +msgid "Are you sure to run %d projects at once?" msgstr "Είστε σίγουÏοι πως θÎλετε να Ï„ÏÎξετε πεÏισσότεÏα από Îνα ÎÏγα;" #: editor/project_manager.cpp -msgid "Remove project from the list? (Folder contents will not be modified)" +#, fuzzy +msgid "" +"Remove %d projects from the list?\n" +"The project folders' contents won't be modified." +msgstr "" +"ΑφαίÏεση ÎÏγου από την λίστα; (Τα πεÏιεχόμενα το φακÎλου δεν θα " +"Ï„ÏοποποιηθοÏν)" + +#: editor/project_manager.cpp +#, fuzzy +msgid "" +"Remove this project from the list?\n" +"The project folder's contents won't be modified." msgstr "" "ΑφαίÏεση ÎÏγου από την λίστα; (Τα πεÏιεχόμενα το φακÎλου δεν θα " "Ï„ÏοποποιηθοÏν)" #: editor/project_manager.cpp +#, fuzzy +msgid "" +"Remove all missing projects from the list? (Folders contents will not be " +"modified)" +msgstr "" +"ΑφαίÏεση ÎÏγου από την λίστα; (Τα πεÏιεχόμενα το φακÎλου δεν θα " +"Ï„ÏοποποιηθοÏν)" + +#: editor/project_manager.cpp +#, fuzzy msgid "" "Language changed.\n" -"The UI will update next time the editor or project manager starts." +"The interface will update after restarting the editor or project manager." msgstr "" "Η γλώσσα άλλαξε.\n" "Το πεÏιβάλλον θα αλλάξει την επόμενη φοÏά που θα ξεκινήσει ο επεξεÏγαστής ή " "ο διαχειÏιστής ÎÏγων." #: editor/project_manager.cpp +#, fuzzy msgid "" -"You are about the scan %s folders for existing Godot projects. Do you " -"confirm?" +"Are you sure to scan %s folders for existing Godot projects?\n" +"This could take a while." msgstr "" "Είστε Îτοιμοι να σαÏώσετε %s φακÎλους για υπαÏκτά ÎÏγα Godot. Είστε σίγουÏοι;" @@ -7964,6 +9419,11 @@ msgid "New Project" msgstr "ÎÎο ÎÏγο" #: editor/project_manager.cpp +#, fuzzy +msgid "Remove Missing" +msgstr "ΑφαίÏεση σημείου" + +#: editor/project_manager.cpp msgid "Templates" msgstr "Î Ïότυπα" @@ -7980,9 +9440,10 @@ msgid "Can't run project" msgstr "Δεν είναι δυνατή η εκτÎλεση του ÎÏγου" #: editor/project_manager.cpp +#, fuzzy msgid "" -"You don't currently have any projects.\n" -"Would you like to explore the official example projects in the Asset Library?" +"You currently don't have any projects.\n" +"Would you like to explore official example projects in the Asset Library?" msgstr "" "Δεν Îχετε κανÎνα ÎÏγο.\n" "ΘÎλετε να εξεÏευνήσετε μεÏικά παÏαδείγματα στην βιβλιοθήκη πόÏων;" @@ -8013,7 +9474,8 @@ msgstr "" "'=', '\\' ή '\"'." #: editor/project_settings_editor.cpp -msgid "Action '%s' already exists!" +#, fuzzy +msgid "An action with the name '%s' already exists." msgstr "Η ενÎÏγεια '%s' υπάÏχει ήδη!" #: editor/project_settings_editor.cpp @@ -8175,10 +9637,6 @@ msgstr "" "'=', '\\' ή '\"'." #: editor/project_settings_editor.cpp -msgid "Already existing" -msgstr "ΥπάÏχει ήδη" - -#: editor/project_settings_editor.cpp msgid "Add Input Action" msgstr "Î Ïοσθήκη συμβάντος ενÎÏγειας εισόδου" @@ -8243,7 +9701,7 @@ msgid "Override For..." msgstr "ΠαÏάκαμψη για..." #: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp -msgid "Editor must be restarted for changes to take effect" +msgid "The editor must be restarted for changes to take effect." msgstr "" #: editor/project_settings_editor.cpp @@ -8304,11 +9762,13 @@ msgid "Locales Filter" msgstr "ΦίλτÏο τοπικών Ïυθμίσεων" #: editor/project_settings_editor.cpp -msgid "Show all locales" +#, fuzzy +msgid "Show All Locales" msgstr "Εμφάνιση όλων των τοπικών Ïυθμίσεων" #: editor/project_settings_editor.cpp -msgid "Show only selected locales" +#, fuzzy +msgid "Show Selected Locales Only" msgstr "Εμφάνιση μόνο επιλεγμÎνων τοπικών Ïυθμίσεων" #: editor/project_settings_editor.cpp @@ -8324,14 +9784,6 @@ msgid "AutoLoad" msgstr "Αυτόματη φόÏτωση" #: editor/property_editor.cpp -msgid "Ease In" -msgstr "Ομαλή κίνηση Ï€Ïος τα μÎσα" - -#: editor/property_editor.cpp -msgid "Ease Out" -msgstr "Ομαλή κίνηση Ï€Ïος τα Îξω" - -#: editor/property_editor.cpp msgid "Zero" msgstr "ΜηδÎν" @@ -8408,7 +9860,7 @@ msgstr "" #: editor/rename_dialog.cpp #, fuzzy -msgid "Advanced options" +msgid "Advanced Options" msgstr "ΕπιλογÎÏ‚ κουμπώματος" #: editor/rename_dialog.cpp @@ -8681,8 +10133,8 @@ msgstr "ΕκκαθάÏιση κληÏονομικότητας" #: editor/scene_tree_dock.cpp #, fuzzy -msgid "Custom Node" -msgstr "Αποκοπή κόμβων" +msgid "Other Node" +msgstr "ΔιαγÏαφή Κόμβου" #: editor/scene_tree_dock.cpp msgid "Can't operate on nodes from a foreign scene!" @@ -8728,7 +10180,7 @@ msgstr "ΕκκαθάÏιση κληÏονομικότητας" #: editor/scene_tree_dock.cpp #, fuzzy -msgid "Open documentation" +msgid "Open Documentation" msgstr "Άνοιγμα ηλεκτÏονικής τεκμηÏίωσης της Godot" #: editor/scene_tree_dock.cpp @@ -8757,7 +10209,7 @@ msgstr "Συγχώνευση από σκηνή" msgid "Save Branch as Scene" msgstr "Αποθήκευσι ÎºÎ»Î±Î´Î¹Î¿Ï Ï‰Ï‚ σκηνή" -#: editor/scene_tree_dock.cpp +#: editor/scene_tree_dock.cpp editor/script_editor_debugger.cpp msgid "Copy Node Path" msgstr "ΑντιγÏαφή διαδÏομής κόμβου" @@ -8803,6 +10255,21 @@ msgid "Toggle Visible" msgstr "Εναλλαγή οÏατότητας" #: editor/scene_tree_editor.cpp +#, fuzzy +msgid "Unlock Node" +msgstr "Επιλογή κόμβου" + +#: editor/scene_tree_editor.cpp +#, fuzzy +msgid "Button Group" +msgstr "Κουμπί 7" + +#: editor/scene_tree_editor.cpp +#, fuzzy +msgid "(Connecting From)" +msgstr "Σφάλμα σÏνδεσης" + +#: editor/scene_tree_editor.cpp msgid "Node configuration warning:" msgstr "Î Ïοειδοποίηση διαμόÏφωσης κόμβου:" @@ -8831,9 +10298,9 @@ msgstr "" "Ο κόμβος Îχει και ομάδες\n" "Πατήστε για να δείξετε την πλατφόÏμα σημάτων." -#: editor/scene_tree_editor.cpp editor/script_create_dialog.cpp +#: editor/scene_tree_editor.cpp #, fuzzy -msgid "Open Script" +msgid "Open Script:" msgstr "Άνοιγμα δεσμής ενεÏγειών" #: editor/scene_tree_editor.cpp @@ -8885,74 +10352,85 @@ msgid "Select a Node" msgstr "ΕπιλÎξτε Îναν κόμβο" #: editor/script_create_dialog.cpp -msgid "Error loading template '%s'" -msgstr "Σφάλμα κατά την φόÏτωση Ï€ÏοτÏπου '%s'" +#, fuzzy +msgid "Path is empty." +msgstr "Η διαδÏομή είναι άδεια" #: editor/script_create_dialog.cpp -msgid "Error - Could not create script in filesystem." -msgstr "" -"Σφάλμα - Δεν ήταν δυνατή η δημιουÏγία δεσμής ενεÏγειών στο σÏστημα αÏχείων." +#, fuzzy +msgid "Filename is empty." +msgstr "Η διαδÏομή αποθήκευσης είναι άδεια!" #: editor/script_create_dialog.cpp -msgid "Error loading script from %s" -msgstr "Σφάλμα κατά την φόÏτωση δεσμής ενεÏγειών από %s" +#, fuzzy +msgid "Path is not local." +msgstr "Η διαδÏομή δεν είναι τοπική" #: editor/script_create_dialog.cpp -msgid "N/A" -msgstr "Δ/Î¥" +#, fuzzy +msgid "Invalid base path." +msgstr "Μη ÎγκυÏη βασική διαδÏομή" #: editor/script_create_dialog.cpp #, fuzzy -msgid "Open Script/Choose Location" -msgstr "Άνοιγμα επεξεÏγαστή δεσμής ενεÏγειών" +msgid "A directory with the same name exists." +msgstr "ΥπάÏχει ήδη Îνας κατάλογος με το ίδιο όνομα" #: editor/script_create_dialog.cpp -msgid "Path is empty" -msgstr "Η διαδÏομή είναι άδεια" +#, fuzzy +msgid "Invalid extension." +msgstr "Μη ÎγκυÏη επÎκταση" #: editor/script_create_dialog.cpp #, fuzzy -msgid "Filename is empty" -msgstr "Η διαδÏομή αποθήκευσης είναι άδεια!" +msgid "Wrong extension chosen." +msgstr "ΕπιλÎχθηκε εσφαλμÎνη επÎκταση" #: editor/script_create_dialog.cpp -msgid "Path is not local" -msgstr "Η διαδÏομή δεν είναι τοπική" +msgid "Error loading template '%s'" +msgstr "Σφάλμα κατά την φόÏτωση Ï€ÏοτÏπου '%s'" #: editor/script_create_dialog.cpp -msgid "Invalid base path" -msgstr "Μη ÎγκυÏη βασική διαδÏομή" +msgid "Error - Could not create script in filesystem." +msgstr "" +"Σφάλμα - Δεν ήταν δυνατή η δημιουÏγία δεσμής ενεÏγειών στο σÏστημα αÏχείων." #: editor/script_create_dialog.cpp -msgid "Directory of the same name exists" -msgstr "ΥπάÏχει ήδη Îνας κατάλογος με το ίδιο όνομα" +msgid "Error loading script from %s" +msgstr "Σφάλμα κατά την φόÏτωση δεσμής ενεÏγειών από %s" #: editor/script_create_dialog.cpp -msgid "File exists, will be reused" -msgstr "Το αÏχείο υπάÏχει, θα επαναχÏησιμοποιηθεί" +msgid "N/A" +msgstr "Δ/Î¥" #: editor/script_create_dialog.cpp -msgid "Invalid extension" -msgstr "Μη ÎγκυÏη επÎκταση" +#, fuzzy +msgid "Open Script / Choose Location" +msgstr "Άνοιγμα επεξεÏγαστή δεσμής ενεÏγειών" #: editor/script_create_dialog.cpp -msgid "Wrong extension chosen" -msgstr "ΕπιλÎχθηκε εσφαλμÎνη επÎκταση" +#, fuzzy +msgid "Open Script" +msgstr "Άνοιγμα δεσμής ενεÏγειών" #: editor/script_create_dialog.cpp -msgid "Invalid Path" -msgstr "Μη ÎγκυÏη διαδÏομή" +#, fuzzy +msgid "File exists, it will be reused." +msgstr "Το αÏχείο υπάÏχει, θα επαναχÏησιμοποιηθεί" #: editor/script_create_dialog.cpp -msgid "Invalid class name" +#, fuzzy +msgid "Invalid class name." msgstr "Μη ÎγκυÏο όνομα κλάσης" #: editor/script_create_dialog.cpp -msgid "Invalid inherited parent name or path" +#, fuzzy +msgid "Invalid inherited parent name or path." msgstr "Μη ÎγκυÏο κληÏονομημÎνο όνομα ή διαδÏομή γονÎα" #: editor/script_create_dialog.cpp -msgid "Script valid" +#, fuzzy +msgid "Script is valid." msgstr "ΈγκυÏη δεσμή ενεÏγειών" #: editor/script_create_dialog.cpp @@ -8960,15 +10438,18 @@ msgid "Allowed: a-z, A-Z, 0-9 and _" msgstr "ΕπιτÏεπόμενα: a-z, A-Z, 0-9 και _" #: editor/script_create_dialog.cpp -msgid "Built-in script (into scene file)" +#, fuzzy +msgid "Built-in script (into scene file)." msgstr "Ενσωμάτωση (στο αÏχείο σκηνής)" #: editor/script_create_dialog.cpp -msgid "Create new script file" +#, fuzzy +msgid "Will create a new script file." msgstr "ΔημιουÏγία νÎου αÏχείου δεσμής ενεÏγειών" #: editor/script_create_dialog.cpp -msgid "Load existing script file" +#, fuzzy +msgid "Will load an existing script file." msgstr "ΦόÏτωση υπαÏÎºÏ„Î¿Ï Î±Ïχείου δεσμής ενεÏγειών" #: editor/script_create_dialog.cpp @@ -9102,6 +10583,10 @@ msgstr "Ρίζα ζωντανής επεξεÏγασίας:" msgid "Set From Tree" msgstr "ΟÏισμός από το δÎντÏο" +#: editor/script_editor_debugger.cpp +msgid "Export measures as CSV" +msgstr "" + #: editor/settings_config_dialog.cpp #, fuzzy msgid "Erase Shortcut" @@ -9241,6 +10726,15 @@ msgid "GDNativeLibrary" msgstr "Βιβλιοθήκη 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 "ΑπενεÏγοποίηση δείκτη ενημÎÏωσης" + +#: modules/gdnative/gdnative_library_singleton_editor.cpp msgid "Library" msgstr "Βιβλιοθήκη" @@ -9329,8 +10823,9 @@ msgid "GridMap Fill Selection" msgstr "GridMap ΔιαγÏαφή επιλογής" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "GridMap Duplicate Selection" -msgstr "GridMap Διπλασιασμός επιλογής" +#, fuzzy +msgid "GridMap Paste Selection" +msgstr "GridMap ΔιαγÏαφή επιλογής" #: modules/gridmap/grid_map_editor_plugin.cpp msgid "GridMap Paint" @@ -9397,18 +10892,6 @@ msgid "Cursor Clear Rotation" msgstr "ΕκκαθάÏιση πεÏιστÏοφής δÏομÎα" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Create Area" -msgstr "ΔημιουÏγία πεÏιοχής" - -#: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Create Exterior Connector" -msgstr "ΔημιουÏγία εξωτεÏικής σÏνδεσης" - -#: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Erase Area" -msgstr "ΔιαγÏαφή πεÏσιοχής" - -#: modules/gridmap/grid_map_editor_plugin.cpp msgid "Clear Selection" msgstr "ΕκκαθάÏιση επιλογής" @@ -9777,18 +11260,11 @@ msgid "Available Nodes:" msgstr "ΔιαθÎσιμοι κόμβοι:" #: modules/visual_script/visual_script_editor.cpp -msgid "Select or create a function to edit graph" +#, fuzzy +msgid "Select or create a function to edit its graph." msgstr "ΕπιλÎξτε ή δημιουÏγήστε μία συνάÏτηση για να επεξεÏγαστείτε το γÏάφημα" #: modules/visual_script/visual_script_editor.cpp -msgid "Edit Signal Arguments:" -msgstr "ΕπεξεÏγασία παÏαμÎÏ„Ïων σήματος:" - -#: modules/visual_script/visual_script_editor.cpp -msgid "Edit Variable:" -msgstr "ΕπεξεÏγασία μεταβλητής:" - -#: modules/visual_script/visual_script_editor.cpp msgid "Delete Selected" msgstr "ΔιαγÏαφή επιλεγμÎνου" @@ -9920,6 +11396,19 @@ msgid "Debug keystore not configured in the Editor Settings nor in the preset." msgstr "" #: platform/android/export/export.cpp +msgid "Custom build requires a valid Android SDK path in Editor Settings." +msgstr "" + +#: platform/android/export/export.cpp +msgid "Invalid Android SDK path for custom build in Editor Settings." +msgstr "" + +#: platform/android/export/export.cpp +msgid "" +"Android project is not installed for compiling. Install from Editor menu." +msgstr "" + +#: platform/android/export/export.cpp msgid "Invalid public key for APK expansion." msgstr "" @@ -9928,6 +11417,34 @@ msgstr "" msgid "Invalid package name:" msgstr "Μη ÎγκυÏο όνομα κλάσης" +#: platform/android/export/export.cpp +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 "" +"Android build version mismatch:\n" +" Template installed: %s\n" +" Godot Version: %s\n" +"Please reinstall Android build template from 'Project' menu." +msgstr "" + +#: platform/android/export/export.cpp +msgid "Building Android Project (gradle)" +msgstr "" + +#: 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 "" + +#: platform/android/export/export.cpp +msgid "No build apk generated at: " +msgstr "" + #: platform/iphone/export/export.cpp msgid "Identifier is missing." msgstr "" @@ -10222,31 +11739,36 @@ msgid "ARVRCamera must have an ARVROrigin node as its parent" msgstr "Η ARVRCamera Ï€ÏÎπει να Îχει Îναν κόμβο ARVROrigin ως γονÎα" #: scene/3d/arvr_nodes.cpp -msgid "ARVRController must have an ARVROrigin node as its parent" +#, fuzzy +msgid "ARVRController must have an ARVROrigin node as its parent." msgstr "Ο ARVRController Ï€ÏÎπει να Îχει Îναν κόμβο ARVROrigin ως γονÎα" #: scene/3d/arvr_nodes.cpp +#, fuzzy msgid "" -"The controller id must not be 0 or this controller will not be bound to an " -"actual controller" +"The controller ID must not be 0 or this controller won't be bound to an " +"actual controller." msgstr "" "Ο δείκτης χειÏιστή δεν Ï€ÏÎπει να είναι 0 για να είναι συνδεδεμÎνος αυτός ο " "χειÏιστής με Îναν υπαÏκτό χειÏιστή" #: scene/3d/arvr_nodes.cpp -msgid "ARVRAnchor must have an ARVROrigin node as its parent" +#, fuzzy +msgid "ARVRAnchor must have an ARVROrigin node as its parent." msgstr "Ο ARVRAnchor Ï€ÏÎπει να Îχει Îναν κόμβο ARVROrigin ως γονÎα" #: scene/3d/arvr_nodes.cpp +#, fuzzy msgid "" -"The anchor id must not be 0 or this anchor will not be bound to an actual " -"anchor" +"The anchor ID must not be 0 or this anchor won't be bound to an actual " +"anchor." msgstr "" "Ο δείκτης άγκυÏας δεν Ï€ÏÎπει να είναι 0 για να είναι συνδεδεμÎνη αυτή η " "άγκυÏα με μία υπαÏκτή άγκυÏα" #: scene/3d/arvr_nodes.cpp -msgid "ARVROrigin requires an ARVRCamera child node" +#, fuzzy +msgid "ARVROrigin requires an ARVRCamera child node." msgstr "Το ARVROrigin απαιτεί Îναν κόμβο ARVRCamera ως παιδί" #: scene/3d/baked_lightmap.cpp @@ -10333,8 +11855,8 @@ msgstr "" #: scene/3d/cpu_particles.cpp msgid "" -"CPUParticles animation requires the usage of a SpatialMaterial with " -"\"Billboard Particles\" enabled." +"CPUParticles animation requires the usage of a SpatialMaterial whose " +"Billboard Mode is set to \"Particle Billboard\"." msgstr "" #: scene/3d/gi_probe.cpp @@ -10376,8 +11898,8 @@ msgstr "" #: scene/3d/particles.cpp msgid "" -"Particles animation requires the usage of a SpatialMaterial with \"Billboard " -"Particles\" enabled." +"Particles animation requires the usage of a SpatialMaterial whose Billboard " +"Mode is set to \"Particle Billboard\"." msgstr "" #: scene/3d/path.cpp @@ -10408,7 +11930,7 @@ msgstr "" "δουλÎψει αυτός ο κόμβος." #: scene/3d/soft_body.cpp -msgid "This body will be ignored until you set a mesh" +msgid "This body will be ignored until you set a mesh." msgstr "" #: scene/3d/soft_body.cpp @@ -10525,7 +12047,7 @@ msgstr "Î Ïοσθήκη του Ï„ÏÎχοντος χÏώματος ως Ï€ÏοΠmsgid "" "Container by itself serves no purpose unless a script configures it's " "children placement behavior.\n" -"If you dont't intend to add a script, then please use a plain 'Control' node " +"If you don't intend to add a script, then please use a plain 'Control' node " "instead." msgstr "" @@ -10537,11 +12059,6 @@ msgstr "Ειδοποίηση!" msgid "Please Confirm..." msgstr "ΠαÏακαλώ επιβεβαιώστε..." -#: scene/gui/file_dialog.cpp -#, fuzzy -msgid "Go to parent folder." -msgstr "Πήγαινε στον γονικό φάκελο" - #: scene/gui/popup.cpp msgid "" "Popups will hide by default unless you call popup() or any of the popup*() " @@ -10629,6 +12146,77 @@ msgstr "" msgid "Varyings can only be assigned in vertex function." msgstr "" +#: servers/visual/shader_language.cpp +msgid "Constants cannot be modified." +msgstr "" + +#~ msgid "Path to Node:" +#~ msgstr "ΔιαδÏομή για τον κόμβο:" + +#~ msgid "Delete selected files?" +#~ msgstr "ΔιαγÏαφή επιλεγμÎνων αÏχείων;" + +#~ msgid "There is no 'res://default_bus_layout.tres' file." +#~ msgstr "Δεν υπάÏχει αÏχείο 'res://default_bus_layout.tres'." + +#~ msgid "Go to parent folder" +#~ msgstr "Πήγαινε στον γονικό φάκελο" + +#~ msgid "Select device from the list" +#~ msgstr "ΕπιλÎξτε συσκευή από την λίστα" + +#~ msgid "Open Scene(s)" +#~ msgstr "Άνοιγμα σκηνής" + +#~ msgid "Previous Directory" +#~ msgstr "Î ÏοηγοÏμενος κατάλογος" + +#~ msgid "Next Directory" +#~ msgstr "Επόμενος κατάλογος" + +#~ msgid "Ease in" +#~ msgstr "Ομαλά μÎσα" + +#~ msgid "Ease out" +#~ msgstr "Ομαλά Îξω" + +#~ msgid "Create Convex Static Body" +#~ msgstr "ΔημιουÏγία ÏƒÏ„Î±Ï„Î¹ÎºÎ¿Ï ÎºÏ…ÏÏ„Î¿Ï ÏƒÏŽÎ¼Î±Ï„Î¿Ï‚" + +#~ msgid "CheckBox Radio1" +#~ msgstr "Κουμπί επιλογής1" + +#~ msgid "CheckBox Radio2" +#~ msgstr "Κουμπί επιλογής 2" + +#~ msgid "Create folder" +#~ msgstr "ΔημιουÏγία φακÎλου" + +#~ msgid "Already existing" +#~ msgstr "ΥπάÏχει ήδη" + +#, fuzzy +#~ msgid "Custom Node" +#~ msgstr "Αποκοπή κόμβων" + +#~ msgid "Invalid Path" +#~ msgstr "Μη ÎγκυÏη διαδÏομή" + +#~ msgid "GridMap Duplicate Selection" +#~ msgstr "GridMap Διπλασιασμός επιλογής" + +#~ msgid "Create Area" +#~ msgstr "ΔημιουÏγία πεÏιοχής" + +#~ msgid "Create Exterior Connector" +#~ msgstr "ΔημιουÏγία εξωτεÏικής σÏνδεσης" + +#~ msgid "Edit Signal Arguments:" +#~ msgstr "ΕπεξεÏγασία παÏαμÎÏ„Ïων σήματος:" + +#~ msgid "Edit Variable:" +#~ msgstr "ΕπεξεÏγασία μεταβλητής:" + #~ msgid "Snap (s): " #~ msgstr "ΚοÏμπωμα (s): " @@ -10752,9 +12340,6 @@ msgstr "" #~ msgid "Class List:" #~ msgstr "Λίστα κλάσεων:" -#~ msgid "Search Classes" -#~ msgstr "Αναζήτηση κλάσεων" - #~ msgid "Public Methods" #~ msgstr "Δημόσιες συναÏτήσεις" @@ -10832,9 +12417,6 @@ msgstr "" #~ msgid "Error:" #~ msgstr "Σφάλμα:" -#~ msgid "Source:" -#~ msgstr "Πηγή:" - #~ msgid "Function:" #~ msgstr "ΣυνάÏτηση:" @@ -10856,21 +12438,9 @@ msgstr "" #~ msgid "Get" #~ msgstr "ΠάÏε" -#~ msgid "Change Scalar Constant" -#~ msgstr "Αλλαγή μονόμετÏης σταθεÏάς" - -#~ msgid "Change Vec Constant" -#~ msgstr "Αλλαγή διανυσματικής σταθεÏάς" - #~ msgid "Change RGB Constant" #~ msgstr "Αλλαγή χÏωματικής σταθεÏάς" -#~ msgid "Change Scalar Operator" -#~ msgstr "Αλλαγή μονόμετÏου τελεστή" - -#~ msgid "Change Vec Operator" -#~ msgstr "Αλλαγή Î´Î¹Î±Î½Ï…ÏƒÎ¼Î±Ï„Î¹ÎºÎ¿Ï Ï„ÎµÎ»ÎµÏƒÏ„Î®" - #~ msgid "Change Vec Scalar Operator" #~ msgstr "Αλλαγή Î´Î¹Î±Î½Ï…ÏƒÎ¼Î±Ï„Î¹ÎºÎ¿Ï - μονόμετÏου τελεστή" @@ -10880,18 +12450,9 @@ msgstr "" #~ msgid "Toggle Rot Only" #~ msgstr "Εναλλαγή μόνο πεÏιστÏοφή" -#~ msgid "Change Scalar Function" -#~ msgstr "Αλλαγή μονόμετÏης συνάÏτησης" - #~ msgid "Change Vec Function" #~ msgstr "Αλλαγή διανυσματικής συνάÏτησης" -#~ msgid "Change Scalar Uniform" -#~ msgstr "Αλλαγή μονόμετÏης ομοιόμοÏφης μεταβλητής" - -#~ msgid "Change Vec Uniform" -#~ msgstr "Αλλαγή διανυσματικής ομοιόμοÏφης μεταβλητής" - #~ msgid "Change RGB Uniform" #~ msgstr "Αλλαγή χÏωματικής ομοιόμοÏφης μεταβλητής" @@ -10901,9 +12462,6 @@ msgstr "" #~ msgid "Change XForm Uniform" #~ msgstr "Αλλαγή ομοιόμοÏφης μεταβλητής XForm" -#~ msgid "Change Texture Uniform" -#~ msgstr "Αλλαγή ομοιόμοÏφης μεταβλητής υφής" - #~ msgid "Change Cubemap Uniform" #~ msgstr "Αλλαγή ομοιόμοÏφης μεταβλητής χάÏτη κÏβου" @@ -10922,9 +12480,6 @@ msgstr "" #~ msgid "Modify Curve Map" #~ msgstr "ΤÏοποποίηση χάÏτη καμπÏλης" -#~ msgid "Change Input Name" -#~ msgstr "Αλλαγή ονόματος εισόδου" - #~ msgid "Connect Graph Nodes" #~ msgstr "ΣÏνδεση κόμβων γÏαφήματος" @@ -10952,9 +12507,6 @@ msgstr "" #~ msgid "Add Shader Graph Node" #~ msgstr "Î Ïοσθήκη κόμβου γÏαφήματος" -#~ msgid "Disabled" -#~ msgstr "ΑπενεÏγοποιημÎνο" - #~ msgid "Move Anim Track Up" #~ msgstr "Μετακίνηση ÎºÎ¿Î¼Î¼Î±Ï„Î¹Î¿Ï animation πάνω" @@ -11135,17 +12687,11 @@ msgstr "" #~ msgid "Item name or ID:" #~ msgstr "Όνομα στοιχείου ή αναγνωÏιστικοÏ:" -#~ msgid "Autotiles" -#~ msgstr "Αυτόματο πλακίδια" - #~ msgid "Export templates for this platform are missing/corrupted: " #~ msgstr "" #~ "Τα Ï€Ïότυπα εξαγωγής για αυτή την πλατφόÏτμα λείπουν ή είναι " #~ "κατεστÏαμμÎνα: " -#~ msgid "Button 7" -#~ msgstr "Κουμπί 7" - #~ msgid "Button 8" #~ msgstr "Κουμπί 8" @@ -11424,9 +12970,6 @@ msgstr "" #~ msgid "Source Texture(s):" #~ msgstr "Πηγαίες υφÎÏ‚:" -#~ msgid "Target Path:" -#~ msgstr "ΔιαδÏομή Ï€ÏοοÏισμοÏ:" - #~ msgid "Accept" #~ msgstr "Αποδοχή" diff --git a/editor/translations/eo.po b/editor/translations/eo.po new file mode 100644 index 0000000000..12de01ffd7 --- /dev/null +++ b/editor/translations/eo.po @@ -0,0 +1,11358 @@ +# Esperanto translation of the Godot Engine editor +# Copyright (c) 2007-2019 Juan Linietsky, Ariel Manzur. +# Copyright (c) 2014-2019 Godot Engine contributors (cf. AUTHORS.md) +# This file is distributed under the same license as the Godot source code. +# Scott Starkey <yekrats@gmail.com>, 2019. +msgid "" +msgstr "" +"Project-Id-Version: Godot Engine editor\n" +"PO-Revision-Date: 2019-06-16 19:42+0000\n" +"Last-Translator: Scott Starkey <yekrats@gmail.com>\n" +"Language-Team: Esperanto <https://hosted.weblate.org/projects/godot-engine/" +"godot/eo/>\n" +"Language: eo\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8-bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 3.7-dev\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 "Nevalida tip-argumento por funkcio convert(). Uzu konstantojn TYPE_*." + +#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp +#: 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 "Ne sufiĉas bitokoj por malĉifri bitokojn, aÅ nevalida formo." + +#: core/math/expression.cpp +msgid "Invalid input %i (not passed) in expression" +msgstr "Nevalida enigo %i (ne pasita) en esprimo" + +#: core/math/expression.cpp +msgid "self can't be used because instance is null (not passed)" +msgstr "self ne povas esti uzata, ĉar ekzemplo estas senvalora (ne pasita)" + +#: core/math/expression.cpp +msgid "Invalid operands to operator %s, %s and %s." +msgstr "Nevalidaj operandoj por operacio %s, %s, kaj %s." + +#: core/math/expression.cpp +msgid "Invalid index of type %s for base type %s" +msgstr "Nevalida indekso de tipo %s por baztipo %s" + +#: core/math/expression.cpp +msgid "Invalid named index '%s' for base type %s" +msgstr "Nevalida nomata indekso '%s' por baztipo %s" + +#: core/math/expression.cpp +msgid "Invalid arguments to construct '%s'" +msgstr "Malvalidaj argumentoj por konstrui '%s'" + +#: core/math/expression.cpp +msgid "On call to '%s':" +msgstr "" + +#: editor/animation_bezier_editor.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Free" +msgstr "Libera" + +#: editor/animation_bezier_editor.cpp +msgid "Balanced" +msgstr "Ekvilibra" + +#: editor/animation_bezier_editor.cpp +msgid "Mirror" +msgstr "Spegulo" + +#: editor/animation_bezier_editor.cpp editor/editor_profiler.cpp +msgid "Time:" +msgstr "" + +#: editor/animation_bezier_editor.cpp +msgid "Value:" +msgstr "" + +#: editor/animation_bezier_editor.cpp +msgid "Insert Key Here" +msgstr "Enmetu Ålosilon ĉi tien" + +#: editor/animation_bezier_editor.cpp +msgid "Duplicate Selected Key(s)" +msgstr "" + +#: editor/animation_bezier_editor.cpp +msgid "Delete Selected Key(s)" +msgstr "" + +#: editor/animation_bezier_editor.cpp +msgid "Add Bezier Point" +msgstr "" + +#: editor/animation_bezier_editor.cpp +msgid "Move Bezier Points" +msgstr "" + +#: editor/animation_bezier_editor.cpp editor/animation_track_editor.cpp +msgid "Anim Duplicate Keys" +msgstr "" + +#: editor/animation_bezier_editor.cpp editor/animation_track_editor.cpp +msgid "Anim Delete Keys" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Anim Change Keyframe Time" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Anim Change Transition" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Anim Change Transform" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Anim Change Keyframe Value" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Anim Change Call" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Change Animation Length" +msgstr "" + +#: editor/animation_track_editor.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Change Animation Loop" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Property Track" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "3D Transform Track" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Call Method Track" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Bezier Curve Track" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Audio Playback Track" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Animation Playback Track" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Animation length (frames)" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Animation length (seconds)" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Add Track" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Animation Looping" +msgstr "" + +#: editor/animation_track_editor.cpp +#: modules/visual_script/visual_script_editor.cpp +msgid "Functions:" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Audio Clips:" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Anim Clips:" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Change Track Path" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Toggle this track on/off." +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Update Mode (How this property is set)" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Interpolation Mode" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Loop Wrap Mode (Interpolate end with beginning on loop)" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Remove this track." +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Time (s): " +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Toggle Track Enabled" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Continuous" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Discrete" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Trigger" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Capture" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Nearest" +msgstr "" + +#: editor/animation_track_editor.cpp editor/plugins/curve_editor_plugin.cpp +#: editor/property_editor.cpp +msgid "Linear" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Cubic" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Clamp Loop Interp" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Wrap Loop Interp" +msgstr "" + +#: editor/animation_track_editor.cpp +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Insert Key" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Duplicate Key(s)" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Delete Key(s)" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Change Animation Update Mode" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Change Animation Interpolation Mode" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Change Animation Loop Mode" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Remove Anim Track" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Create NEW track for %s and insert key?" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Create %d NEW tracks and insert keys?" +msgstr "" + +#: editor/animation_track_editor.cpp editor/create_dialog.cpp +#: editor/editor_audio_buses.cpp editor/editor_feature_profile.cpp +#: editor/editor_plugin_settings.cpp editor/plugin_config_dialog.cpp +#: editor/plugins/abstract_polygon_2d_editor.cpp +#: editor/plugins/mesh_instance_editor_plugin.cpp +#: editor/plugins/particles_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_create_dialog.cpp +msgid "Create" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Anim Insert" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "AnimationPlayer can't animate itself, only other players." +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Anim Create & Insert" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Anim Insert Track & Key" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Anim Insert Key" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Change Animation Step" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Rearrange Tracks" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Transform tracks only apply to Spatial-based nodes." +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "" +"Audio tracks can only point to nodes of type:\n" +"-AudioStreamPlayer\n" +"-AudioStreamPlayer2D\n" +"-AudioStreamPlayer3D" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Animation tracks can only point to AnimationPlayer nodes." +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "An animation player can't animate itself, only other players." +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Not possible to add a new track without a root" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Add Bezier Track" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Track path is invalid, so can't add a key." +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Track is not of type Spatial, can't insert key" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Add Transform Track Key" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Add Track Key" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Track path is invalid, so can't add a method key." +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Add Method Track Key" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Method not found in object: " +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Anim Move Keys" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Clipboard is empty" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Paste Tracks" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Anim Scale Keys" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "" +"This option does not work for Bezier editing, as it's only a single track." +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "" +"This animation belongs to an imported scene, so changes to imported tracks " +"will not be saved.\n" +"\n" +"To enable the ability to add custom tracks, navigate to the scene's import " +"settings and set\n" +"\"Animation > Storage\" to \"Files\", enable \"Animation > Keep Custom Tracks" +"\", then re-import.\n" +"Alternatively, use an import preset that imports animations to separate " +"files." +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Warning: Editing imported animation" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Only show tracks from nodes selected in tree." +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Group tracks by node or display them as plain list." +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Snap:" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Animation step value." +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Seconds" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "FPS" +msgstr "" + +#: editor/animation_track_editor.cpp editor/editor_properties.cpp +#: editor/plugins/polygon_2d_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp +#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp +#: editor/project_manager.cpp editor/project_settings_editor.cpp +#: editor/property_editor.cpp modules/visual_script/visual_script_editor.cpp +msgid "Edit" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Animation properties." +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Copy Tracks" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Scale Selection" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Scale From Cursor" +msgstr "" + +#: editor/animation_track_editor.cpp modules/gridmap/grid_map_editor_plugin.cpp +msgid "Duplicate Selection" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Duplicate Transposed" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Delete Selection" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Go to Next Step" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Go to Previous Step" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Optimize Animation" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Clean-Up Animation" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Pick the node that will be animated:" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Use Bezier Curves" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Anim. Optimizer" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Max. Linear Error:" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Max. Angular Error:" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Max Optimizable Angle:" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Optimize" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Remove invalid keys" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Remove unresolved and empty tracks" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Clean-up all animations" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Clean-Up Animation(s) (NO UNDO!)" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Clean-Up" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Scale Ratio:" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Select tracks to copy:" +msgstr "" + +#: editor/animation_track_editor.cpp editor/editor_log.cpp +#: editor/editor_properties.cpp +#: editor/plugins/animation_player_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp +#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp +msgid "Copy" +msgstr "" + +#: editor/animation_track_editor_plugins.cpp +msgid "Add Audio Track Clip" +msgstr "" + +#: editor/animation_track_editor_plugins.cpp +msgid "Change Audio Track Clip Start Offset" +msgstr "" + +#: editor/animation_track_editor_plugins.cpp +msgid "Change Audio Track Clip End Offset" +msgstr "" + +#: editor/array_property_edit.cpp +msgid "Resize Array" +msgstr "" + +#: editor/array_property_edit.cpp +msgid "Change Array Value Type" +msgstr "" + +#: editor/array_property_edit.cpp +msgid "Change Array Value" +msgstr "" + +#: editor/code_editor.cpp +msgid "Go to Line" +msgstr "" + +#: editor/code_editor.cpp +msgid "Line Number:" +msgstr "" + +#: editor/code_editor.cpp editor/editor_help.cpp +msgid "No Matches" +msgstr "" + +#: editor/code_editor.cpp +msgid "Replaced %d occurrence(s)." +msgstr "" + +#: editor/code_editor.cpp editor/find_in_files.cpp +msgid "Match Case" +msgstr "" + +#: editor/code_editor.cpp editor/find_in_files.cpp +msgid "Whole Words" +msgstr "" + +#: editor/code_editor.cpp editor/rename_dialog.cpp +msgid "Replace" +msgstr "" + +#: editor/code_editor.cpp +msgid "Replace All" +msgstr "" + +#: editor/code_editor.cpp +msgid "Selection Only" +msgstr "" + +#: editor/code_editor.cpp editor/plugins/script_text_editor.cpp +#: editor/plugins/text_editor.cpp +msgid "Standard" +msgstr "" + +#: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp +msgid "Zoom In" +msgstr "" + +#: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp +msgid "Zoom Out" +msgstr "" + +#: editor/code_editor.cpp +msgid "Reset Zoom" +msgstr "" + +#: editor/code_editor.cpp modules/mono/editor/mono_bottom_panel.cpp +msgid "Warnings" +msgstr "" + +#: editor/code_editor.cpp +msgid "Line and column numbers." +msgstr "" + +#: editor/connections_dialog.cpp +msgid "Method in target node must be specified." +msgstr "" + +#: editor/connections_dialog.cpp +msgid "" +"Target method not found. Specify a valid method or attach a script to the " +"target node." +msgstr "" + +#: editor/connections_dialog.cpp +msgid "Connect to Node:" +msgstr "" + +#: editor/connections_dialog.cpp +msgid "Connect to Script:" +msgstr "" + +#: editor/connections_dialog.cpp +msgid "From Signal:" +msgstr "" + +#: editor/connections_dialog.cpp +msgid "Scene does not contain any script." +msgstr "" + +#: editor/connections_dialog.cpp editor/editor_autoload_settings.cpp +#: editor/groups_editor.cpp editor/plugins/item_list_editor_plugin.cpp +#: editor/plugins/theme_editor_plugin.cpp editor/project_settings_editor.cpp +msgid "Add" +msgstr "" + +#: editor/connections_dialog.cpp editor/dependency_editor.cpp +#: editor/editor_feature_profile.cpp editor/groups_editor.cpp +#: editor/plugins/animation_player_editor_plugin.cpp +#: editor/plugins/animation_tree_player_editor_plugin.cpp +#: editor/plugins/resource_preloader_editor_plugin.cpp +#: editor/plugins/theme_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_manager.cpp +#: editor/project_settings_editor.cpp +msgid "Remove" +msgstr "" + +#: editor/connections_dialog.cpp +msgid "Add Extra Call Argument:" +msgstr "" + +#: editor/connections_dialog.cpp +msgid "Extra Call Arguments:" +msgstr "" + +#: editor/connections_dialog.cpp +#, fuzzy +msgid "Advanced" +msgstr "Ekvilibra" + +#: editor/connections_dialog.cpp +msgid "Deferred" +msgstr "" + +#: editor/connections_dialog.cpp +msgid "" +"Defers the signal, storing it in a queue and only firing it at idle time." +msgstr "" + +#: editor/connections_dialog.cpp +msgid "Oneshot" +msgstr "" + +#: editor/connections_dialog.cpp +msgid "Disconnects the signal after its first emission." +msgstr "" + +#: editor/connections_dialog.cpp +msgid "Cannot connect signal" +msgstr "" + +#: editor/connections_dialog.cpp editor/dependency_editor.cpp +#: editor/export_template_manager.cpp editor/groups_editor.cpp +#: editor/plugins/animation_player_editor_plugin.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/resource_preloader_editor_plugin.cpp +#: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp editor/project_export.cpp +#: editor/project_settings_editor.cpp editor/property_editor.cpp +#: editor/run_settings_dialog.cpp editor/settings_config_dialog.cpp +#: modules/visual_script/visual_script_editor.cpp +msgid "Close" +msgstr "" + +#: editor/connections_dialog.cpp +msgid "Connect" +msgstr "" + +#: editor/connections_dialog.cpp +msgid "Connect '%s' to '%s'" +msgstr "" + +#: editor/connections_dialog.cpp +msgid "Disconnect '%s' from '%s'" +msgstr "" + +#: editor/connections_dialog.cpp +msgid "Disconnect all from signal: '%s'" +msgstr "" + +#: editor/connections_dialog.cpp +msgid "Connect..." +msgstr "" + +#: editor/connections_dialog.cpp +#: editor/plugins/animation_tree_player_editor_plugin.cpp +msgid "Disconnect" +msgstr "" + +#: editor/connections_dialog.cpp +msgid "Connect a Signal to a Method" +msgstr "" + +#: editor/connections_dialog.cpp +msgid "Edit Connection:" +msgstr "" + +#: editor/connections_dialog.cpp +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 +msgid "Signals" +msgstr "" + +#: editor/connections_dialog.cpp +msgid "Are you sure you want to remove all connections from this signal?" +msgstr "" + +#: editor/connections_dialog.cpp +msgid "Disconnect All" +msgstr "" + +#: editor/connections_dialog.cpp +msgid "Edit..." +msgstr "" + +#: editor/connections_dialog.cpp +msgid "Go To Method" +msgstr "" + +#: editor/create_dialog.cpp +msgid "Change %s Type" +msgstr "" + +#: editor/create_dialog.cpp editor/project_settings_editor.cpp +msgid "Change" +msgstr "" + +#: editor/create_dialog.cpp +msgid "Create New %s" +msgstr "" + +#: editor/create_dialog.cpp editor/editor_file_dialog.cpp +#: editor/filesystem_dock.cpp +msgid "Favorites:" +msgstr "" + +#: editor/create_dialog.cpp editor/editor_file_dialog.cpp +msgid "Recent:" +msgstr "" + +#: editor/create_dialog.cpp editor/plugins/asset_library_editor_plugin.cpp +#: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp +#: editor/property_selector.cpp editor/quick_open.cpp +#: modules/visual_script/visual_script_property_selector.cpp +msgid "Search:" +msgstr "" + +#: 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 +msgid "Matches:" +msgstr "" + +#: editor/create_dialog.cpp editor/plugin_config_dialog.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/property_selector.cpp +#: modules/visual_script/visual_script_property_selector.cpp +msgid "Description:" +msgstr "" + +#: editor/dependency_editor.cpp +msgid "Search Replacement For:" +msgstr "" + +#: editor/dependency_editor.cpp +msgid "Dependencies For:" +msgstr "" + +#: editor/dependency_editor.cpp +msgid "" +"Scene '%s' is currently being edited.\n" +"Changes will only take effect when reloaded." +msgstr "" + +#: editor/dependency_editor.cpp +msgid "" +"Resource '%s' is in use.\n" +"Changes will only take effect when reloaded." +msgstr "" + +#: editor/dependency_editor.cpp +#: modules/gdnative/gdnative_library_editor_plugin.cpp +msgid "Dependencies" +msgstr "" + +#: editor/dependency_editor.cpp +msgid "Resource" +msgstr "" + +#: editor/dependency_editor.cpp editor/editor_autoload_settings.cpp +#: editor/project_settings_editor.cpp editor/script_create_dialog.cpp +msgid "Path" +msgstr "" + +#: editor/dependency_editor.cpp +msgid "Dependencies:" +msgstr "" + +#: editor/dependency_editor.cpp +msgid "Fix Broken" +msgstr "" + +#: editor/dependency_editor.cpp +msgid "Dependency Editor" +msgstr "" + +#: editor/dependency_editor.cpp +msgid "Search Replacement Resource:" +msgstr "" + +#: editor/dependency_editor.cpp editor/editor_file_dialog.cpp +#: editor/editor_help_search.cpp editor/editor_node.cpp +#: editor/filesystem_dock.cpp editor/plugins/script_editor_plugin.cpp +#: editor/property_selector.cpp editor/quick_open.cpp +#: editor/script_create_dialog.cpp +#: modules/visual_script/visual_script_property_selector.cpp +#: scene/gui/file_dialog.cpp +msgid "Open" +msgstr "" + +#: editor/dependency_editor.cpp +msgid "Owners Of:" +msgstr "" + +#: editor/dependency_editor.cpp +msgid "Remove selected files from the project? (no undo)" +msgstr "" + +#: editor/dependency_editor.cpp +msgid "" +"The files being removed are required by other resources in order for them to " +"work.\n" +"Remove them anyway? (no undo)" +msgstr "" + +#: editor/dependency_editor.cpp editor/export_template_manager.cpp +msgid "Cannot remove:" +msgstr "" + +#: editor/dependency_editor.cpp +msgid "Error loading:" +msgstr "" + +#: editor/dependency_editor.cpp +msgid "Load failed due to missing dependencies:" +msgstr "" + +#: editor/dependency_editor.cpp editor/editor_node.cpp +msgid "Open Anyway" +msgstr "" + +#: editor/dependency_editor.cpp +msgid "Which action should be taken?" +msgstr "" + +#: editor/dependency_editor.cpp +msgid "Fix Dependencies" +msgstr "" + +#: editor/dependency_editor.cpp +msgid "Errors loading!" +msgstr "" + +#: editor/dependency_editor.cpp +msgid "Permanently delete %d item(s)? (No undo!)" +msgstr "" + +#: editor/dependency_editor.cpp +msgid "Show Dependencies" +msgstr "" + +#: editor/dependency_editor.cpp editor/editor_node.cpp +msgid "Orphan Resource Explorer" +msgstr "" + +#: editor/dependency_editor.cpp editor/editor_audio_buses.cpp +#: editor/editor_file_dialog.cpp editor/editor_node.cpp +#: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp editor/project_export.cpp +#: editor/project_settings_editor.cpp editor/scene_tree_dock.cpp +msgid "Delete" +msgstr "" + +#: editor/dependency_editor.cpp +msgid "Owns" +msgstr "" + +#: editor/dependency_editor.cpp +msgid "Resources Without Explicit Ownership:" +msgstr "" + +#: editor/dictionary_property_edit.cpp +msgid "Change Dictionary Key" +msgstr "" + +#: editor/dictionary_property_edit.cpp +msgid "Change Dictionary Value" +msgstr "" + +#: editor/editor_about.cpp +msgid "Thanks from the Godot community!" +msgstr "" + +#: editor/editor_about.cpp +msgid "Godot Engine contributors" +msgstr "" + +#: editor/editor_about.cpp +msgid "Project Founders" +msgstr "" + +#: editor/editor_about.cpp +msgid "Lead Developer" +msgstr "" + +#: editor/editor_about.cpp +msgid "Project Manager " +msgstr "" + +#: editor/editor_about.cpp +msgid "Developers" +msgstr "" + +#: editor/editor_about.cpp +msgid "Authors" +msgstr "" + +#: editor/editor_about.cpp +msgid "Platinum Sponsors" +msgstr "" + +#: editor/editor_about.cpp +msgid "Gold Sponsors" +msgstr "" + +#: editor/editor_about.cpp +msgid "Mini Sponsors" +msgstr "" + +#: editor/editor_about.cpp +msgid "Gold Donors" +msgstr "" + +#: editor/editor_about.cpp +msgid "Silver Donors" +msgstr "" + +#: editor/editor_about.cpp +msgid "Bronze Donors" +msgstr "" + +#: editor/editor_about.cpp +msgid "Donors" +msgstr "" + +#: editor/editor_about.cpp +msgid "License" +msgstr "" + +#: editor/editor_about.cpp +msgid "Thirdparty License" +msgstr "" + +#: editor/editor_about.cpp +msgid "" +"Godot Engine relies on a number of thirdparty free and open source " +"libraries, all compatible with the terms of its MIT license. The following " +"is an exhaustive list of all such thirdparty components with their " +"respective copyright statements and license terms." +msgstr "" + +#: editor/editor_about.cpp +msgid "All Components" +msgstr "" + +#: editor/editor_about.cpp +msgid "Components" +msgstr "" + +#: editor/editor_about.cpp +msgid "Licenses" +msgstr "" + +#: editor/editor_asset_installer.cpp editor/project_manager.cpp +msgid "Error opening package file, not in zip format." +msgstr "" + +#: editor/editor_asset_installer.cpp +msgid "Uncompressing Assets" +msgstr "" + +#: editor/editor_asset_installer.cpp editor/project_manager.cpp +msgid "Package installed successfully!" +msgstr "" + +#: editor/editor_asset_installer.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Success!" +msgstr "" + +#: editor/editor_asset_installer.cpp editor/editor_node.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Install" +msgstr "" + +#: editor/editor_asset_installer.cpp +msgid "Package Installer" +msgstr "" + +#: editor/editor_audio_buses.cpp +msgid "Speakers" +msgstr "" + +#: editor/editor_audio_buses.cpp +msgid "Add Effect" +msgstr "" + +#: editor/editor_audio_buses.cpp +msgid "Rename Audio Bus" +msgstr "" + +#: editor/editor_audio_buses.cpp +msgid "Change Audio Bus Volume" +msgstr "" + +#: editor/editor_audio_buses.cpp +msgid "Toggle Audio Bus Solo" +msgstr "" + +#: editor/editor_audio_buses.cpp +msgid "Toggle Audio Bus Mute" +msgstr "" + +#: editor/editor_audio_buses.cpp +msgid "Toggle Audio Bus Bypass Effects" +msgstr "" + +#: editor/editor_audio_buses.cpp +msgid "Select Audio Bus Send" +msgstr "" + +#: editor/editor_audio_buses.cpp +msgid "Add Audio Bus Effect" +msgstr "" + +#: editor/editor_audio_buses.cpp +msgid "Move Bus Effect" +msgstr "" + +#: editor/editor_audio_buses.cpp +msgid "Delete Bus Effect" +msgstr "" + +#: editor/editor_audio_buses.cpp +msgid "Audio Bus, Drag and Drop to rearrange." +msgstr "" + +#: editor/editor_audio_buses.cpp +msgid "Solo" +msgstr "" + +#: editor/editor_audio_buses.cpp +msgid "Mute" +msgstr "" + +#: editor/editor_audio_buses.cpp +msgid "Bypass" +msgstr "" + +#: editor/editor_audio_buses.cpp +msgid "Bus options" +msgstr "" + +#: editor/editor_audio_buses.cpp editor/filesystem_dock.cpp +#: editor/plugins/animation_player_editor_plugin.cpp editor/scene_tree_dock.cpp +msgid "Duplicate" +msgstr "" + +#: editor/editor_audio_buses.cpp +msgid "Reset Volume" +msgstr "" + +#: editor/editor_audio_buses.cpp +msgid "Delete Effect" +msgstr "" + +#: editor/editor_audio_buses.cpp +msgid "Audio" +msgstr "" + +#: editor/editor_audio_buses.cpp +msgid "Add Audio Bus" +msgstr "" + +#: editor/editor_audio_buses.cpp +msgid "Master bus can't be deleted!" +msgstr "" + +#: editor/editor_audio_buses.cpp +msgid "Delete Audio Bus" +msgstr "" + +#: editor/editor_audio_buses.cpp +msgid "Duplicate Audio Bus" +msgstr "" + +#: editor/editor_audio_buses.cpp +msgid "Reset Bus Volume" +msgstr "" + +#: editor/editor_audio_buses.cpp +msgid "Move Audio Bus" +msgstr "" + +#: editor/editor_audio_buses.cpp +msgid "Save Audio Bus Layout As..." +msgstr "" + +#: editor/editor_audio_buses.cpp +msgid "Location for New Layout..." +msgstr "" + +#: editor/editor_audio_buses.cpp +msgid "Open Audio Bus Layout" +msgstr "" + +#: editor/editor_audio_buses.cpp +msgid "There is no '%s' file." +msgstr "" + +#: editor/editor_audio_buses.cpp editor/plugins/canvas_item_editor_plugin.cpp +msgid "Layout" +msgstr "" + +#: editor/editor_audio_buses.cpp +msgid "Invalid file, not an audio bus layout." +msgstr "" + +#: editor/editor_audio_buses.cpp +msgid "Add Bus" +msgstr "" + +#: editor/editor_audio_buses.cpp +msgid "Add a new Audio Bus to this layout." +msgstr "" + +#: 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 +msgid "Load" +msgstr "" + +#: editor/editor_audio_buses.cpp +msgid "Load an existing Bus Layout." +msgstr "" + +#: editor/editor_audio_buses.cpp +msgid "Save As" +msgstr "" + +#: editor/editor_audio_buses.cpp +msgid "Save this Bus Layout to a file." +msgstr "" + +#: editor/editor_audio_buses.cpp editor/import_dock.cpp +msgid "Load Default" +msgstr "" + +#: editor/editor_audio_buses.cpp +msgid "Load the default Bus Layout." +msgstr "" + +#: editor/editor_audio_buses.cpp +msgid "Create a new Bus Layout." +msgstr "" + +#: editor/editor_autoload_settings.cpp +msgid "Invalid name." +msgstr "" + +#: editor/editor_autoload_settings.cpp +msgid "Valid characters:" +msgstr "" + +#: editor/editor_autoload_settings.cpp +msgid "Must not collide with an existing engine class name." +msgstr "" + +#: editor/editor_autoload_settings.cpp +msgid "Must not collide with an existing buit-in type name." +msgstr "" + +#: editor/editor_autoload_settings.cpp +msgid "Must not collide with an existing global constant name." +msgstr "" + +#: editor/editor_autoload_settings.cpp +msgid "Keyword cannot be used as an autoload name." +msgstr "" + +#: editor/editor_autoload_settings.cpp +msgid "Autoload '%s' already exists!" +msgstr "" + +#: editor/editor_autoload_settings.cpp +msgid "Rename Autoload" +msgstr "" + +#: editor/editor_autoload_settings.cpp +msgid "Toggle AutoLoad Globals" +msgstr "" + +#: editor/editor_autoload_settings.cpp +msgid "Move Autoload" +msgstr "" + +#: editor/editor_autoload_settings.cpp +msgid "Remove Autoload" +msgstr "" + +#: editor/editor_autoload_settings.cpp +msgid "Enable" +msgstr "" + +#: editor/editor_autoload_settings.cpp +msgid "Rearrange Autoloads" +msgstr "" + +#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp +#, fuzzy +msgid "Invalid path." +msgstr "Nevalida tipara grando." + +#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp +msgid "File does not exist." +msgstr "" + +#: editor/editor_autoload_settings.cpp +msgid "Not in resource path." +msgstr "" + +#: editor/editor_autoload_settings.cpp +msgid "Add AutoLoad" +msgstr "" + +#: editor/editor_autoload_settings.cpp editor/editor_file_dialog.cpp +#: editor/plugins/animation_tree_editor_plugin.cpp scene/gui/file_dialog.cpp +msgid "Path:" +msgstr "" + +#: editor/editor_autoload_settings.cpp +msgid "Node Name:" +msgstr "" + +#: editor/editor_autoload_settings.cpp editor/editor_help_search.cpp +#: editor/editor_profiler.cpp editor/settings_config_dialog.cpp +msgid "Name" +msgstr "" + +#: editor/editor_autoload_settings.cpp +msgid "Singleton" +msgstr "" + +#: editor/editor_data.cpp +msgid "Updating Scene" +msgstr "" + +#: editor/editor_data.cpp +msgid "Storing local changes..." +msgstr "" + +#: editor/editor_data.cpp +msgid "Updating scene..." +msgstr "" + +#: editor/editor_data.cpp editor/editor_properties.cpp +msgid "[empty]" +msgstr "" + +#: editor/editor_data.cpp +msgid "[unsaved]" +msgstr "" + +#: editor/editor_dir_dialog.cpp +msgid "Please select a base directory first." +msgstr "" + +#: editor/editor_dir_dialog.cpp +msgid "Choose a Directory" +msgstr "" + +#: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp +#: editor/filesystem_dock.cpp editor/project_manager.cpp +#: scene/gui/file_dialog.cpp +msgid "Create Folder" +msgstr "" + +#: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp +#: editor/editor_plugin_settings.cpp editor/filesystem_dock.cpp +#: editor/plugins/theme_editor_plugin.cpp editor/project_export.cpp +#: scene/gui/file_dialog.cpp +msgid "Name:" +msgstr "" + +#: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp +#: editor/filesystem_dock.cpp scene/gui/file_dialog.cpp +msgid "Could not create folder." +msgstr "" + +#: editor/editor_dir_dialog.cpp +msgid "Choose" +msgstr "" + +#: editor/editor_export.cpp +msgid "Storing File:" +msgstr "" + +#: editor/editor_export.cpp +msgid "No export template found at the expected path:" +msgstr "" + +#: editor/editor_export.cpp +msgid "Packing" +msgstr "" + +#: editor/editor_export.cpp +msgid "" +"Target platform requires 'ETC' texture compression for GLES2. Enable 'Import " +"Etc' in Project Settings." +msgstr "" + +#: editor/editor_export.cpp +msgid "" +"Target platform requires 'ETC2' texture compression for GLES3. Enable " +"'Import Etc 2' in Project Settings." +msgstr "" + +#: editor/editor_export.cpp +msgid "" +"Target platform requires 'ETC' texture compression for the driver fallback " +"to GLES2.\n" +"Enable 'Import Etc' in Project Settings, or disable 'Driver Fallback " +"Enabled'." +msgstr "" + +#: 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 debug template not found." +msgstr "" + +#: 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 "" + +#: editor/editor_export.cpp platform/javascript/export/export.cpp +msgid "Template file not found:" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "3D Editor" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Script Editor" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Asset Library" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Scene Tree Editing" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Import Dock" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Node Dock" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Filesystem Dock" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Erase profile '%s'? (no undo)" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Profile must be a valid filename and must not contain '.'" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Profile with this name already exists." +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "(Editor Disabled, Properties Disabled)" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "(Properties Disabled)" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "(Editor Disabled)" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Class Options:" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Enable Contextual Editor" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Enabled Properties:" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Enabled Features:" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Enabled Classes:" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "File '%s' format is invalid, import aborted." +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "" +"Profile '%s' already exists. Remote it first before importing, import " +"aborted." +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Error saving profile to path: '%s'." +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Unset" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Current Profile" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Make Current" +msgstr "" + +#: editor/editor_feature_profile.cpp +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "New" +msgstr "" + +#: editor/editor_feature_profile.cpp editor/editor_node.cpp +#: editor/plugins/asset_library_editor_plugin.cpp editor/project_manager.cpp +msgid "Import" +msgstr "" + +#: editor/editor_feature_profile.cpp editor/editor_node.cpp +#: editor/project_export.cpp +msgid "Export" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Available Profiles" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Enabled Classes" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Class Options" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "New profile name:" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Erase Profile" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Import Profile(s)" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Export Profile" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Manage Editor Feature Profiles" +msgstr "" + +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp +msgid "Select Current Folder" +msgstr "" + +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp +msgid "File Exists, Overwrite?" +msgstr "" + +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp +msgid "Select This Folder" +msgstr "" + +#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp +msgid "Copy Path" +msgstr "" + +#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp +msgid "Open in File Manager" +msgstr "" + +#: editor/editor_file_dialog.cpp editor/editor_node.cpp +#: editor/filesystem_dock.cpp editor/project_manager.cpp +msgid "Show in File Manager" +msgstr "" + +#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp +msgid "New Folder..." +msgstr "" + +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp +msgid "Refresh" +msgstr "" + +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp +msgid "All Recognized" +msgstr "" + +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp +msgid "All Files (*)" +msgstr "" + +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp +msgid "Open a File" +msgstr "" + +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp +msgid "Open File(s)" +msgstr "" + +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp +msgid "Open a Directory" +msgstr "" + +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp +msgid "Open a File or Directory" +msgstr "" + +#: editor/editor_file_dialog.cpp editor/editor_node.cpp +#: editor/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 "" + +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp +msgid "Save a File" +msgstr "" + +#: editor/editor_file_dialog.cpp +msgid "Go Back" +msgstr "" + +#: editor/editor_file_dialog.cpp +msgid "Go Forward" +msgstr "" + +#: editor/editor_file_dialog.cpp +msgid "Go Up" +msgstr "" + +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp +msgid "Toggle Hidden Files" +msgstr "" + +#: editor/editor_file_dialog.cpp +msgid "Toggle Favorite" +msgstr "" + +#: editor/editor_file_dialog.cpp +msgid "Toggle Mode" +msgstr "" + +#: editor/editor_file_dialog.cpp +msgid "Focus Path" +msgstr "" + +#: editor/editor_file_dialog.cpp +msgid "Move Favorite Up" +msgstr "" + +#: editor/editor_file_dialog.cpp +msgid "Move Favorite Down" +msgstr "" + +#: editor/editor_file_dialog.cpp +msgid "Previous Folder" +msgstr "" + +#: editor/editor_file_dialog.cpp +msgid "Next Folder" +msgstr "" + +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp +msgid "Go to parent folder." +msgstr "" + +#: editor/editor_file_dialog.cpp +msgid "(Un)favorite current folder." +msgstr "" + +#: editor/editor_file_dialog.cpp +msgid "Toggle visibility of hidden files." +msgstr "" + +#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp +msgid "View items as a grid of thumbnails." +msgstr "" + +#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp +msgid "View items as a list." +msgstr "" + +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp +msgid "Directories & Files:" +msgstr "" + +#: editor/editor_file_dialog.cpp editor/plugins/sprite_editor_plugin.cpp +#: editor/plugins/style_box_editor_plugin.cpp +#: editor/plugins/theme_editor_plugin.cpp +msgid "Preview:" +msgstr "" + +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp +msgid "File:" +msgstr "" + +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp +msgid "Must use a valid extension." +msgstr "" + +#: editor/editor_file_system.cpp +msgid "ScanSources" +msgstr "" + +#: editor/editor_file_system.cpp +msgid "" +"There are multiple importers for different types pointing to file %s, import " +"aborted" +msgstr "" + +#: editor/editor_file_system.cpp +msgid "(Re)Importing Assets" +msgstr "" + +#: editor/editor_help.cpp editor/plugins/spatial_editor_plugin.cpp +msgid "Top" +msgstr "" + +#: editor/editor_help.cpp +msgid "Class:" +msgstr "" + +#: editor/editor_help.cpp editor/scene_tree_editor.cpp +msgid "Inherits:" +msgstr "" + +#: editor/editor_help.cpp +msgid "Inherited by:" +msgstr "" + +#: editor/editor_help.cpp +msgid "Brief Description:" +msgstr "" + +#: editor/editor_help.cpp +msgid "Properties" +msgstr "" + +#: editor/editor_help.cpp +msgid "Properties:" +msgstr "" + +#: editor/editor_help.cpp +msgid "Methods" +msgstr "" + +#: editor/editor_help.cpp +msgid "Methods:" +msgstr "" + +#: editor/editor_help.cpp +msgid "Theme Properties" +msgstr "" + +#: editor/editor_help.cpp +msgid "Theme Properties:" +msgstr "" + +#: editor/editor_help.cpp modules/visual_script/visual_script_editor.cpp +msgid "Signals:" +msgstr "" + +#: editor/editor_help.cpp +msgid "Enumerations" +msgstr "" + +#: editor/editor_help.cpp +msgid "Enumerations:" +msgstr "" + +#: editor/editor_help.cpp +msgid "enum " +msgstr "" + +#: editor/editor_help.cpp +msgid "Constants" +msgstr "" + +#: editor/editor_help.cpp +msgid "Constants:" +msgstr "" + +#: editor/editor_help.cpp +msgid "Class Description" +msgstr "" + +#: editor/editor_help.cpp +msgid "Class Description:" +msgstr "" + +#: editor/editor_help.cpp +msgid "Online Tutorials:" +msgstr "" + +#: editor/editor_help.cpp +msgid "" +"There are currently no tutorials for this class, you can [color=$color][url=" +"$url]contribute one[/url][/color] or [color=$color][url=$url2]request one[/" +"url][/color]." +msgstr "" + +#: editor/editor_help.cpp +msgid "Property Descriptions" +msgstr "" + +#: editor/editor_help.cpp +msgid "Property Descriptions:" +msgstr "" + +#: editor/editor_help.cpp +msgid "" +"There is currently no description for this property. Please help us by " +"[color=$color][url=$url]contributing one[/url][/color]!" +msgstr "" + +#: editor/editor_help.cpp +msgid "Method Descriptions" +msgstr "" + +#: editor/editor_help.cpp +msgid "Method Descriptions:" +msgstr "" + +#: editor/editor_help.cpp +msgid "" +"There is currently no description for this method. Please help us by [color=" +"$color][url=$url]contributing one[/url][/color]!" +msgstr "" + +#: editor/editor_help_search.cpp editor/editor_node.cpp +#: editor/plugins/script_editor_plugin.cpp +msgid "Search Help" +msgstr "" + +#: editor/editor_help_search.cpp +msgid "Display All" +msgstr "" + +#: editor/editor_help_search.cpp +msgid "Classes Only" +msgstr "" + +#: editor/editor_help_search.cpp +msgid "Methods Only" +msgstr "" + +#: editor/editor_help_search.cpp +msgid "Signals Only" +msgstr "" + +#: editor/editor_help_search.cpp +msgid "Constants Only" +msgstr "" + +#: editor/editor_help_search.cpp +msgid "Properties Only" +msgstr "" + +#: editor/editor_help_search.cpp +msgid "Theme Properties Only" +msgstr "" + +#: editor/editor_help_search.cpp +msgid "Member Type" +msgstr "" + +#: editor/editor_help_search.cpp +msgid "Class" +msgstr "" + +#: editor/editor_inspector.cpp editor/project_settings_editor.cpp +msgid "Property:" +msgstr "" + +#: editor/editor_inspector.cpp +msgid "Set" +msgstr "" + +#: editor/editor_inspector.cpp +msgid "Set Multiple:" +msgstr "" + +#: editor/editor_log.cpp +msgid "Output:" +msgstr "" + +#: editor/editor_log.cpp editor/plugins/tile_map_editor_plugin.cpp +msgid "Copy Selection" +msgstr "" + +#: editor/editor_log.cpp editor/editor_profiler.cpp +#: editor/editor_properties.cpp +#: editor/plugins/animation_tree_player_editor_plugin.cpp +#: editor/property_editor.cpp editor/scene_tree_dock.cpp +#: editor/script_editor_debugger.cpp +#: modules/gdnative/gdnative_library_editor_plugin.cpp scene/gui/line_edit.cpp +#: scene/gui/text_edit.cpp +msgid "Clear" +msgstr "" + +#: editor/editor_log.cpp +msgid "Clear Output" +msgstr "" + +#: editor/editor_node.cpp +msgid "Project export failed with error code %d." +msgstr "" + +#: editor/editor_node.cpp +msgid "Imported resources can't be saved." +msgstr "" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +#: scene/gui/dialogs.cpp +msgid "OK" +msgstr "" + +#: editor/editor_node.cpp editor/plugins/animation_player_editor_plugin.cpp +msgid "Error saving resource!" +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"This resource can't be saved because it does not belong to the edited scene. " +"Make it unique first." +msgstr "" + +#: editor/editor_node.cpp editor/plugins/animation_player_editor_plugin.cpp +msgid "Save Resource As..." +msgstr "" + +#: editor/editor_node.cpp +msgid "Can't open file for writing:" +msgstr "" + +#: editor/editor_node.cpp +msgid "Requested file format unknown:" +msgstr "" + +#: editor/editor_node.cpp +msgid "Error while saving." +msgstr "" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +msgid "Can't open '%s'. The file could have been moved or deleted." +msgstr "" + +#: editor/editor_node.cpp +msgid "Error while parsing '%s'." +msgstr "" + +#: editor/editor_node.cpp +msgid "Unexpected end of file '%s'." +msgstr "" + +#: editor/editor_node.cpp +msgid "Missing '%s' or its dependencies." +msgstr "" + +#: editor/editor_node.cpp +msgid "Error while loading '%s'." +msgstr "" + +#: editor/editor_node.cpp +msgid "Saving Scene" +msgstr "" + +#: editor/editor_node.cpp +msgid "Analyzing" +msgstr "" + +#: editor/editor_node.cpp +msgid "Creating Thumbnail" +msgstr "" + +#: editor/editor_node.cpp +msgid "This operation can't be done without a tree root." +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"This scene can't be saved because there is a cyclic instancing inclusion.\n" +"Please resolve it and then attempt to save again." +msgstr "" + +#: editor/editor_node.cpp +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!" +msgstr "" + +#: editor/editor_node.cpp +msgid "Can't load MeshLibrary for merging!" +msgstr "" + +#: editor/editor_node.cpp +msgid "Error saving MeshLibrary!" +msgstr "" + +#: editor/editor_node.cpp +msgid "Can't load TileSet for merging!" +msgstr "" + +#: editor/editor_node.cpp +msgid "Error saving TileSet!" +msgstr "" + +#: editor/editor_node.cpp +msgid "Error trying to save layout!" +msgstr "" + +#: editor/editor_node.cpp +msgid "Default editor layout overridden." +msgstr "" + +#: editor/editor_node.cpp +msgid "Layout name not found!" +msgstr "" + +#: editor/editor_node.cpp +msgid "Restored default layout to base settings." +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"This resource belongs to a scene that was imported, so it's not editable.\n" +"Please read the documentation relevant to importing scenes to better " +"understand this workflow." +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"This resource belongs to a scene that was instanced or inherited.\n" +"Changes to it won't be kept when saving the current scene." +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"This resource was imported, so it's not editable. Change its settings in the " +"import panel and then re-import." +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"This scene was imported, so changes to it won't be kept.\n" +"Instancing it or inheriting will allow making changes to it.\n" +"Please read the documentation relevant to importing scenes to better " +"understand this workflow." +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"This is a remote object, so changes to it won't be kept.\n" +"Please read the documentation relevant to debugging to better understand " +"this workflow." +msgstr "" + +#: editor/editor_node.cpp +msgid "There is no defined scene to run." +msgstr "" + +#: editor/editor_node.cpp +msgid "Current scene was never saved, please save it prior to running." +msgstr "" + +#: editor/editor_node.cpp +msgid "Could not start subprocess!" +msgstr "" + +#: editor/editor_node.cpp editor/filesystem_dock.cpp +msgid "Open Scene" +msgstr "" + +#: editor/editor_node.cpp +msgid "Open Base Scene" +msgstr "" + +#: editor/editor_node.cpp +msgid "Quick Open..." +msgstr "" + +#: editor/editor_node.cpp +msgid "Quick Open Scene..." +msgstr "" + +#: editor/editor_node.cpp +msgid "Quick Open Script..." +msgstr "" + +#: editor/editor_node.cpp +msgid "Save & Close" +msgstr "" + +#: editor/editor_node.cpp +msgid "Save changes to '%s' before closing?" +msgstr "" + +#: editor/editor_node.cpp +msgid "Saved %s modified resource(s)." +msgstr "" + +#: editor/editor_node.cpp +msgid "A root node is required to save the scene." +msgstr "" + +#: editor/editor_node.cpp +msgid "Save Scene As..." +msgstr "" + +#: editor/editor_node.cpp +msgid "No" +msgstr "" + +#: editor/editor_node.cpp +msgid "Yes" +msgstr "" + +#: editor/editor_node.cpp +msgid "This scene has never been saved. Save before running?" +msgstr "" + +#: editor/editor_node.cpp editor/scene_tree_dock.cpp +msgid "This operation can't be done without a scene." +msgstr "" + +#: editor/editor_node.cpp +msgid "Export Mesh Library" +msgstr "" + +#: editor/editor_node.cpp +msgid "This operation can't be done without a root node." +msgstr "" + +#: editor/editor_node.cpp +msgid "Export Tile Set" +msgstr "" + +#: editor/editor_node.cpp +msgid "This operation can't be done without a selected node." +msgstr "" + +#: editor/editor_node.cpp +msgid "Current scene not saved. Open anyway?" +msgstr "" + +#: editor/editor_node.cpp +msgid "Can't reload a scene that was never saved." +msgstr "" + +#: editor/editor_node.cpp +msgid "Revert" +msgstr "" + +#: editor/editor_node.cpp +msgid "This action cannot be undone. Revert anyway?" +msgstr "" + +#: editor/editor_node.cpp +msgid "Quick Run Scene..." +msgstr "" + +#: editor/editor_node.cpp +msgid "Quit" +msgstr "" + +#: editor/editor_node.cpp +msgid "Exit the editor?" +msgstr "" + +#: editor/editor_node.cpp +msgid "Open Project Manager?" +msgstr "" + +#: editor/editor_node.cpp +msgid "Save & Quit" +msgstr "" + +#: editor/editor_node.cpp +msgid "Save changes to the following scene(s) before quitting?" +msgstr "" + +#: editor/editor_node.cpp +msgid "Save changes the following scene(s) before opening Project Manager?" +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"This option is deprecated. Situations where refresh must be forced are now " +"considered a bug. Please report." +msgstr "" + +#: editor/editor_node.cpp +msgid "Pick a Main Scene" +msgstr "" + +#: editor/editor_node.cpp +msgid "Unable to enable addon plugin at: '%s' parsing of config failed." +msgstr "" + +#: editor/editor_node.cpp +msgid "Unable to find script field for addon plugin at: 'res://addons/%s'." +msgstr "" + +#: editor/editor_node.cpp +msgid "Unable to load addon script from path: '%s'." +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"Unable to load addon script from path: '%s' There seems to be an error in " +"the code, please check the syntax." +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"Unable to load addon script from path: '%s' Base type is not EditorPlugin." +msgstr "" + +#: editor/editor_node.cpp +msgid "Unable to load addon script from path: '%s' Script is not in tool mode." +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"Scene '%s' was automatically imported, so it can't be modified.\n" +"To make changes to it, a new inherited scene can be created." +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"Error loading scene, it must be inside the project path. Use 'Import' to " +"open the scene, then save it inside the project path." +msgstr "" + +#: editor/editor_node.cpp +msgid "Scene '%s' has broken dependencies:" +msgstr "" + +#: editor/editor_node.cpp +msgid "Clear Recent Scenes" +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"No main scene has ever been defined, select one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"Selected scene '%s' does not exist, select a valid one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"Selected scene '%s' is not a scene file, select a valid one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" + +#: editor/editor_node.cpp +msgid "Save Layout" +msgstr "" + +#: editor/editor_node.cpp +msgid "Delete Layout" +msgstr "" + +#: editor/editor_node.cpp editor/import_dock.cpp +#: editor/script_create_dialog.cpp +msgid "Default" +msgstr "" + +#: editor/editor_node.cpp editor/editor_properties.cpp +#: editor/plugins/script_editor_plugin.cpp editor/property_editor.cpp +msgid "Show in FileSystem" +msgstr "" + +#: editor/editor_node.cpp +msgid "Play This Scene" +msgstr "" + +#: editor/editor_node.cpp +msgid "Close Tab" +msgstr "" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +msgid "Close Other Tabs" +msgstr "" + +#: editor/editor_node.cpp +msgid "Close Tabs to the Right" +msgstr "" + +#: editor/editor_node.cpp +msgid "Close All Tabs" +msgstr "" + +#: editor/editor_node.cpp +msgid "Switch Scene Tab" +msgstr "" + +#: editor/editor_node.cpp +msgid "%d more files or folders" +msgstr "" + +#: editor/editor_node.cpp +msgid "%d more folders" +msgstr "" + +#: editor/editor_node.cpp +msgid "%d more files" +msgstr "" + +#: editor/editor_node.cpp +msgid "Dock Position" +msgstr "" + +#: editor/editor_node.cpp +msgid "Distraction Free Mode" +msgstr "" + +#: editor/editor_node.cpp +msgid "Toggle distraction-free mode." +msgstr "" + +#: editor/editor_node.cpp +msgid "Add a new scene." +msgstr "" + +#: editor/editor_node.cpp +msgid "Scene" +msgstr "" + +#: editor/editor_node.cpp +msgid "Go to previously opened scene." +msgstr "" + +#: editor/editor_node.cpp +msgid "Next tab" +msgstr "" + +#: editor/editor_node.cpp +msgid "Previous tab" +msgstr "" + +#: editor/editor_node.cpp +msgid "Filter Files..." +msgstr "" + +#: editor/editor_node.cpp +msgid "Operations with scene files." +msgstr "" + +#: editor/editor_node.cpp +msgid "New Scene" +msgstr "" + +#: editor/editor_node.cpp +msgid "New Inherited Scene..." +msgstr "" + +#: editor/editor_node.cpp +msgid "Open Scene..." +msgstr "" + +#: editor/editor_node.cpp +msgid "Save Scene" +msgstr "" + +#: editor/editor_node.cpp +msgid "Save All Scenes" +msgstr "" + +#: editor/editor_node.cpp +msgid "Close Scene" +msgstr "" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +msgid "Open Recent" +msgstr "" + +#: editor/editor_node.cpp +msgid "Convert To..." +msgstr "" + +#: editor/editor_node.cpp +msgid "MeshLibrary..." +msgstr "" + +#: editor/editor_node.cpp +msgid "TileSet..." +msgstr "" + +#: editor/editor_node.cpp editor/plugins/script_text_editor.cpp +#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp +msgid "Undo" +msgstr "" + +#: editor/editor_node.cpp editor/plugins/script_text_editor.cpp +#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp +msgid "Redo" +msgstr "" + +#: editor/editor_node.cpp +msgid "Revert Scene" +msgstr "" + +#: editor/editor_node.cpp +msgid "Miscellaneous project or scene-wide tools." +msgstr "" + +#: editor/editor_node.cpp +msgid "Project" +msgstr "" + +#: editor/editor_node.cpp +msgid "Project Settings" +msgstr "" + +#: editor/editor_node.cpp editor/plugins/tile_set_editor_plugin.cpp +msgid "Tools" +msgstr "" + +#: editor/editor_node.cpp +msgid "Open Project Data Folder" +msgstr "" + +#: editor/editor_node.cpp +msgid "Install Android Build Template" +msgstr "" + +#: editor/editor_node.cpp +msgid "Quit to Project List" +msgstr "" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +#: editor/project_export.cpp +msgid "Debug" +msgstr "" + +#: editor/editor_node.cpp +msgid "Deploy with Remote Debug" +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"When exporting or deploying, the resulting executable will attempt to " +"connect to the IP of this computer in order to be debugged." +msgstr "" + +#: editor/editor_node.cpp +msgid "Small Deploy with Network FS" +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"When this option is enabled, export or deploy will produce a minimal " +"executable.\n" +"The filesystem will be provided from the project by the editor over the " +"network.\n" +"On Android, deploy will use the USB cable for faster performance. This " +"option speeds up testing for games with a large footprint." +msgstr "" + +#: editor/editor_node.cpp +msgid "Visible Collision Shapes" +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"Collision shapes and raycast nodes (for 2D and 3D) will be visible on the " +"running game if this option is turned on." +msgstr "" + +#: editor/editor_node.cpp +msgid "Visible Navigation" +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"Navigation meshes and polygons will be visible on the running game if this " +"option is turned on." +msgstr "" + +#: editor/editor_node.cpp +msgid "Sync Scene Changes" +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"When this option is turned on, any changes made to the scene in the editor " +"will be replicated in the running game.\n" +"When used remotely on a device, this is more efficient with network " +"filesystem." +msgstr "" + +#: editor/editor_node.cpp +msgid "Sync Script Changes" +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"When this option is turned on, any script that is saved will be reloaded on " +"the running game.\n" +"When used remotely on a device, this is more efficient with network " +"filesystem." +msgstr "" + +#: editor/editor_node.cpp +msgid "Editor" +msgstr "" + +#: editor/editor_node.cpp editor/settings_config_dialog.cpp +msgid "Editor Settings" +msgstr "" + +#: editor/editor_node.cpp +msgid "Editor Layout" +msgstr "" + +#: editor/editor_node.cpp +msgid "Toggle Fullscreen" +msgstr "" + +#: editor/editor_node.cpp +msgid "Open Editor Data/Settings Folder" +msgstr "" + +#: editor/editor_node.cpp +msgid "Open Editor Data Folder" +msgstr "" + +#: editor/editor_node.cpp +msgid "Open Editor Settings Folder" +msgstr "" + +#: editor/editor_node.cpp +msgid "Manage Editor Features" +msgstr "" + +#: editor/editor_node.cpp editor/project_export.cpp +msgid "Manage Export Templates" +msgstr "" + +#: editor/editor_node.cpp +msgid "Help" +msgstr "" + +#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp +#: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp +#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp +#: editor/project_settings_editor.cpp editor/rename_dialog.cpp +msgid "Search" +msgstr "" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +msgid "Online Docs" +msgstr "" + +#: editor/editor_node.cpp +msgid "Q&A" +msgstr "" + +#: editor/editor_node.cpp +msgid "Issue Tracker" +msgstr "" + +#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp +msgid "Community" +msgstr "" + +#: editor/editor_node.cpp +msgid "About" +msgstr "" + +#: editor/editor_node.cpp +msgid "Play the project." +msgstr "" + +#: editor/editor_node.cpp +msgid "Play" +msgstr "" + +#: editor/editor_node.cpp +msgid "Pause the scene" +msgstr "" + +#: editor/editor_node.cpp +msgid "Pause Scene" +msgstr "" + +#: editor/editor_node.cpp +msgid "Stop the scene." +msgstr "" + +#: editor/editor_node.cpp editor/editor_profiler.cpp +msgid "Stop" +msgstr "" + +#: editor/editor_node.cpp +msgid "Play the edited scene." +msgstr "" + +#: editor/editor_node.cpp +msgid "Play Scene" +msgstr "" + +#: editor/editor_node.cpp +msgid "Play custom scene" +msgstr "" + +#: editor/editor_node.cpp +msgid "Play Custom Scene" +msgstr "" + +#: editor/editor_node.cpp +msgid "Changing the video driver requires restarting the editor." +msgstr "" + +#: editor/editor_node.cpp editor/project_settings_editor.cpp +#: editor/settings_config_dialog.cpp +msgid "Save & Restart" +msgstr "" + +#: editor/editor_node.cpp +msgid "Spins when the editor window redraws." +msgstr "" + +#: editor/editor_node.cpp +msgid "Update Always" +msgstr "" + +#: editor/editor_node.cpp +msgid "Update Changes" +msgstr "" + +#: editor/editor_node.cpp +msgid "Disable Update Spinner" +msgstr "" + +#: editor/editor_node.cpp +msgid "FileSystem" +msgstr "" + +#: editor/editor_node.cpp +msgid "Inspector" +msgstr "" + +#: editor/editor_node.cpp +msgid "Node" +msgstr "" + +#: editor/editor_node.cpp +msgid "Expand Bottom Panel" +msgstr "" + +#: editor/editor_node.cpp scene/resources/visual_shader.cpp +msgid "Output" +msgstr "" + +#: editor/editor_node.cpp +msgid "Don't Save" +msgstr "" + +#: editor/editor_node.cpp +msgid "Android build template is missing, please install relevant templates." +msgstr "" + +#: editor/editor_node.cpp +msgid "Manage Templates" +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"This will install the Android project for custom builds.\n" +"Note that, in order to use it, it needs to be enabled per export preset." +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"Android build template is already installed and it won't be overwritten.\n" +"Remove the \"build\" directory manually before attempting this operation " +"again." +msgstr "" + +#: editor/editor_node.cpp +msgid "Import Templates From ZIP File" +msgstr "" + +#: editor/editor_node.cpp editor/project_export.cpp +msgid "Export Project" +msgstr "" + +#: editor/editor_node.cpp +msgid "Export Library" +msgstr "" + +#: editor/editor_node.cpp +msgid "Merge With Existing" +msgstr "" + +#: editor/editor_node.cpp +msgid "Password:" +msgstr "" + +#: editor/editor_node.cpp +msgid "Open & Run a Script" +msgstr "" + +#: editor/editor_node.cpp +msgid "New Inherited" +msgstr "" + +#: editor/editor_node.cpp +msgid "Load Errors" +msgstr "" + +#: editor/editor_node.cpp editor/plugins/tile_map_editor_plugin.cpp +msgid "Select" +msgstr "" + +#: editor/editor_node.cpp +msgid "Open 2D Editor" +msgstr "" + +#: editor/editor_node.cpp +msgid "Open 3D Editor" +msgstr "" + +#: editor/editor_node.cpp +msgid "Open Script Editor" +msgstr "" + +#: editor/editor_node.cpp editor/project_manager.cpp +msgid "Open Asset Library" +msgstr "" + +#: editor/editor_node.cpp +msgid "Open the next Editor" +msgstr "" + +#: editor/editor_node.cpp +msgid "Open the previous Editor" +msgstr "" + +#: editor/editor_plugin.cpp +msgid "Creating Mesh Previews" +msgstr "" + +#: editor/editor_plugin.cpp +msgid "Thumbnail..." +msgstr "" + +#: editor/editor_plugin_settings.cpp +msgid "Edit Plugin" +msgstr "" + +#: editor/editor_plugin_settings.cpp +msgid "Installed Plugins:" +msgstr "" + +#: editor/editor_plugin_settings.cpp editor/plugin_config_dialog.cpp +msgid "Update" +msgstr "" + +#: editor/editor_plugin_settings.cpp editor/plugin_config_dialog.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Version:" +msgstr "" + +#: editor/editor_plugin_settings.cpp editor/plugin_config_dialog.cpp +msgid "Author:" +msgstr "" + +#: editor/editor_plugin_settings.cpp +msgid "Status:" +msgstr "" + +#: editor/editor_plugin_settings.cpp +msgid "Edit:" +msgstr "" + +#: editor/editor_profiler.cpp editor/plugins/animation_state_machine_editor.cpp +#: editor/rename_dialog.cpp +msgid "Start" +msgstr "" + +#: editor/editor_profiler.cpp +msgid "Measure:" +msgstr "" + +#: editor/editor_profiler.cpp +msgid "Frame Time (sec)" +msgstr "" + +#: editor/editor_profiler.cpp +msgid "Average Time (sec)" +msgstr "" + +#: editor/editor_profiler.cpp +msgid "Frame %" +msgstr "" + +#: editor/editor_profiler.cpp +msgid "Physics Frame %" +msgstr "" + +#: editor/editor_profiler.cpp +msgid "Inclusive" +msgstr "" + +#: editor/editor_profiler.cpp +msgid "Self" +msgstr "" + +#: editor/editor_profiler.cpp +msgid "Frame #:" +msgstr "" + +#: editor/editor_profiler.cpp +msgid "Time" +msgstr "" + +#: editor/editor_profiler.cpp +msgid "Calls" +msgstr "" + +#: editor/editor_properties.cpp +msgid "On" +msgstr "" + +#: editor/editor_properties.cpp +msgid "Layer" +msgstr "" + +#: editor/editor_properties.cpp +msgid "Bit %d, value %d" +msgstr "" + +#: editor/editor_properties.cpp +msgid "[Empty]" +msgstr "" + +#: editor/editor_properties.cpp editor/plugins/root_motion_editor_plugin.cpp +msgid "Assign..." +msgstr "" + +#: editor/editor_properties.cpp +msgid "Invalid RID" +msgstr "" + +#: editor/editor_properties.cpp +msgid "" +"The selected resource (%s) does not match any type expected for this " +"property (%s)." +msgstr "" + +#: editor/editor_properties.cpp +msgid "" +"Can't create a ViewportTexture on resources saved as a file.\n" +"Resource needs to belong to a scene." +msgstr "" + +#: editor/editor_properties.cpp +msgid "" +"Can't create a ViewportTexture on this resource because it's not set as " +"local to scene.\n" +"Please switch on the 'local to scene' property on it (and all resources " +"containing it up to a node)." +msgstr "" + +#: editor/editor_properties.cpp editor/property_editor.cpp +msgid "Pick a Viewport" +msgstr "" + +#: editor/editor_properties.cpp editor/property_editor.cpp +msgid "New Script" +msgstr "" + +#: editor/editor_properties.cpp editor/property_editor.cpp +msgid "New %s" +msgstr "" + +#: editor/editor_properties.cpp editor/property_editor.cpp +msgid "Make Unique" +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 +#: editor/plugins/animation_player_editor_plugin.cpp +#: editor/plugins/animation_state_machine_editor.cpp +#: editor/plugins/resource_preloader_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp +#: editor/plugins/tile_map_editor_plugin.cpp editor/property_editor.cpp +#: scene/gui/line_edit.cpp scene/gui/text_edit.cpp +msgid "Paste" +msgstr "" + +#: editor/editor_properties.cpp editor/property_editor.cpp +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 "" + +#: editor/editor_properties_array_dict.cpp +msgid "Size: " +msgstr "" + +#: editor/editor_properties_array_dict.cpp +msgid "Page: " +msgstr "" + +#: editor/editor_properties_array_dict.cpp +msgid "New Key:" +msgstr "" + +#: editor/editor_properties_array_dict.cpp +msgid "New Value:" +msgstr "" + +#: editor/editor_properties_array_dict.cpp +msgid "Add Key/Value Pair" +msgstr "" + +#: editor/editor_properties_array_dict.cpp +#: editor/plugins/theme_editor_plugin.cpp +msgid "Remove Item" +msgstr "" + +#: editor/editor_run_native.cpp +msgid "" +"No runnable export preset found for this platform.\n" +"Please add a runnable preset in the export menu." +msgstr "" + +#: editor/editor_run_script.cpp +msgid "Write your logic in the _run() method." +msgstr "" + +#: editor/editor_run_script.cpp +msgid "There is an edited scene already." +msgstr "" + +#: editor/editor_run_script.cpp +msgid "Couldn't instance script:" +msgstr "" + +#: editor/editor_run_script.cpp +msgid "Did you forget the 'tool' keyword?" +msgstr "" + +#: editor/editor_run_script.cpp +msgid "Couldn't run script:" +msgstr "" + +#: editor/editor_run_script.cpp +msgid "Did you forget the '_run' method?" +msgstr "" + +#: editor/editor_sub_scene.cpp +msgid "Select Node(s) to Import" +msgstr "" + +#: editor/editor_sub_scene.cpp editor/project_manager.cpp +msgid "Browse" +msgstr "" + +#: editor/editor_sub_scene.cpp +msgid "Scene Path:" +msgstr "" + +#: editor/editor_sub_scene.cpp +msgid "Import From Node:" +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Re-Download" +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Uninstall" +msgstr "" + +#: editor/export_template_manager.cpp +msgid "(Installed)" +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Download" +msgstr "" + +#: editor/export_template_manager.cpp +msgid "(Missing)" +msgstr "" + +#: editor/export_template_manager.cpp +msgid "(Current)" +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Retrieving mirrors, please wait..." +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Remove template version '%s'?" +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Can't open export templates zip." +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Invalid version.txt format inside templates: %s." +msgstr "" + +#: editor/export_template_manager.cpp +msgid "No version.txt found inside templates." +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Error creating path for templates:" +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Extracting Export Templates" +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Importing:" +msgstr "" + +#: editor/export_template_manager.cpp +msgid "" +"No download links found for this version. Direct download is only available " +"for official releases." +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Can't resolve." +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Can't connect." +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "No response." +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Request Failed." +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Redirect Loop." +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Failed:" +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Download Complete." +msgstr "" + +#: editor/export_template_manager.cpp +msgid "" +"Templates installation failed. The problematic templates archives can be " +"found at '%s'." +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Error requesting url: " +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Connecting to Mirror..." +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Disconnected" +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Resolving" +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Can't Resolve" +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Connecting..." +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Can't Connect" +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Connected" +msgstr "" + +#: editor/export_template_manager.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Requesting..." +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Downloading" +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Connection Error" +msgstr "" + +#: editor/export_template_manager.cpp +msgid "SSL Handshake Error" +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Uncompressing Android Build Sources" +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Current Version:" +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Installed Versions:" +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Install From File" +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Remove Template" +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Select Template File" +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Export Template Manager" +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Download Templates" +msgstr "" + +#: editor/export_template_manager.cpp +msgid "Select mirror from list: (Shift+Click: Open in Browser)" +msgstr "" + +#: editor/file_type_cache.cpp +msgid "Can't open file_type_cache.cch for writing, not saving file type cache!" +msgstr "" + +#: editor/filesystem_dock.cpp +msgid "Favorites" +msgstr "" + +#: editor/filesystem_dock.cpp +msgid "Cannot navigate to '%s' as it has not been found in the file system!" +msgstr "" + +#: editor/filesystem_dock.cpp +msgid "Status: Import of file failed. Please fix file and reimport manually." +msgstr "" + +#: editor/filesystem_dock.cpp +msgid "Cannot move/rename resources root." +msgstr "" + +#: editor/filesystem_dock.cpp +msgid "Cannot move a folder into itself." +msgstr "" + +#: editor/filesystem_dock.cpp +msgid "Error moving:" +msgstr "" + +#: editor/filesystem_dock.cpp +msgid "Error duplicating:" +msgstr "" + +#: editor/filesystem_dock.cpp +msgid "Unable to update dependencies:" +msgstr "" + +#: editor/filesystem_dock.cpp editor/scene_tree_editor.cpp +msgid "No name provided." +msgstr "" + +#: editor/filesystem_dock.cpp +msgid "Provided name contains invalid characters." +msgstr "" + +#: editor/filesystem_dock.cpp +msgid "Name contains invalid characters." +msgstr "" + +#: editor/filesystem_dock.cpp +msgid "A file or folder with this name already exists." +msgstr "" + +#: editor/filesystem_dock.cpp +msgid "Renaming file:" +msgstr "" + +#: editor/filesystem_dock.cpp +msgid "Renaming folder:" +msgstr "" + +#: editor/filesystem_dock.cpp +msgid "Duplicating file:" +msgstr "" + +#: editor/filesystem_dock.cpp +msgid "Duplicating folder:" +msgstr "" + +#: editor/filesystem_dock.cpp +msgid "New Inherited Scene" +msgstr "" + +#: editor/filesystem_dock.cpp +msgid "Open Scenes" +msgstr "" + +#: editor/filesystem_dock.cpp +msgid "Instance" +msgstr "" + +#: editor/filesystem_dock.cpp +msgid "Add to Favorites" +msgstr "" + +#: editor/filesystem_dock.cpp +msgid "Remove from Favorites" +msgstr "" + +#: editor/filesystem_dock.cpp +msgid "Edit Dependencies..." +msgstr "" + +#: editor/filesystem_dock.cpp +msgid "View Owners..." +msgstr "" + +#: editor/filesystem_dock.cpp editor/plugins/animation_player_editor_plugin.cpp +msgid "Rename..." +msgstr "" + +#: editor/filesystem_dock.cpp +msgid "Duplicate..." +msgstr "" + +#: editor/filesystem_dock.cpp +msgid "Move To..." +msgstr "" + +#: editor/filesystem_dock.cpp editor/plugins/script_editor_plugin.cpp +msgid "New Script..." +msgstr "" + +#: editor/filesystem_dock.cpp +msgid "New Resource..." +msgstr "" + +#: editor/filesystem_dock.cpp editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_editor_debugger.cpp +msgid "Expand All" +msgstr "" + +#: editor/filesystem_dock.cpp editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_editor_debugger.cpp +msgid "Collapse All" +msgstr "" + +#: editor/filesystem_dock.cpp +#: editor/plugins/animation_tree_player_editor_plugin.cpp +#: editor/project_manager.cpp editor/rename_dialog.cpp +#: editor/scene_tree_dock.cpp +msgid "Rename" +msgstr "" + +#: editor/filesystem_dock.cpp +msgid "Previous Folder/File" +msgstr "" + +#: editor/filesystem_dock.cpp +msgid "Next Folder/File" +msgstr "" + +#: editor/filesystem_dock.cpp +msgid "Re-Scan Filesystem" +msgstr "" + +#: editor/filesystem_dock.cpp +msgid "Toggle Split Mode" +msgstr "" + +#: editor/filesystem_dock.cpp +msgid "Search files" +msgstr "" + +#: editor/filesystem_dock.cpp +msgid "" +"Scanning Files,\n" +"Please Wait..." +msgstr "" + +#: editor/filesystem_dock.cpp +msgid "Move" +msgstr "" + +#: editor/filesystem_dock.cpp +msgid "There is already file or folder with the same name in this location." +msgstr "" + +#: editor/filesystem_dock.cpp +msgid "Overwrite" +msgstr "" + +#: editor/filesystem_dock.cpp editor/plugins/script_editor_plugin.cpp +msgid "Create Script" +msgstr "" + +#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp +msgid "Find in Files" +msgstr "" + +#: editor/find_in_files.cpp +msgid "Find:" +msgstr "" + +#: editor/find_in_files.cpp +msgid "Folder:" +msgstr "" + +#: editor/find_in_files.cpp +msgid "Filters:" +msgstr "" + +#: editor/find_in_files.cpp +msgid "" +"Include the files with the following extensions. Add or remove them in " +"ProjectSettings." +msgstr "" + +#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp +msgid "Find..." +msgstr "" + +#: editor/find_in_files.cpp editor/plugins/script_text_editor.cpp +msgid "Replace..." +msgstr "" + +#: editor/find_in_files.cpp editor/progress_dialog.cpp scene/gui/dialogs.cpp +msgid "Cancel" +msgstr "" + +#: editor/find_in_files.cpp +msgid "Find: " +msgstr "" + +#: editor/find_in_files.cpp +msgid "Replace: " +msgstr "" + +#: editor/find_in_files.cpp +msgid "Replace all (no undo)" +msgstr "" + +#: editor/find_in_files.cpp +msgid "Searching..." +msgstr "" + +#: editor/find_in_files.cpp +msgid "Search complete" +msgstr "" + +#: editor/groups_editor.cpp +msgid "Group name already exists." +msgstr "" + +#: editor/groups_editor.cpp +msgid "Invalid group name." +msgstr "" + +#: editor/groups_editor.cpp editor/node_dock.cpp +msgid "Groups" +msgstr "" + +#: editor/groups_editor.cpp +msgid "Nodes not in Group" +msgstr "" + +#: editor/groups_editor.cpp editor/scene_tree_dock.cpp +msgid "Filter nodes" +msgstr "" + +#: editor/groups_editor.cpp +msgid "Nodes in Group" +msgstr "" + +#: editor/groups_editor.cpp +msgid "Add to Group" +msgstr "" + +#: editor/groups_editor.cpp +msgid "Remove from Group" +msgstr "" + +#: editor/groups_editor.cpp +msgid "Manage Groups" +msgstr "" + +#: editor/import/resource_importer_scene.cpp +msgid "Import as Single Scene" +msgstr "" + +#: editor/import/resource_importer_scene.cpp +msgid "Import with Separate Animations" +msgstr "" + +#: editor/import/resource_importer_scene.cpp +msgid "Import with Separate Materials" +msgstr "" + +#: editor/import/resource_importer_scene.cpp +msgid "Import with Separate Objects" +msgstr "" + +#: editor/import/resource_importer_scene.cpp +msgid "Import with Separate Objects+Materials" +msgstr "" + +#: editor/import/resource_importer_scene.cpp +msgid "Import with Separate Objects+Animations" +msgstr "" + +#: editor/import/resource_importer_scene.cpp +msgid "Import with Separate Materials+Animations" +msgstr "" + +#: editor/import/resource_importer_scene.cpp +msgid "Import with Separate Objects+Materials+Animations" +msgstr "" + +#: editor/import/resource_importer_scene.cpp +msgid "Import as Multiple Scenes" +msgstr "" + +#: editor/import/resource_importer_scene.cpp +msgid "Import as Multiple Scenes+Materials" +msgstr "" + +#: editor/import/resource_importer_scene.cpp +#: editor/plugins/mesh_library_editor_plugin.cpp +msgid "Import Scene" +msgstr "" + +#: editor/import/resource_importer_scene.cpp +msgid "Importing Scene..." +msgstr "" + +#: editor/import/resource_importer_scene.cpp +msgid "Generating Lightmaps" +msgstr "" + +#: editor/import/resource_importer_scene.cpp +msgid "Generating for Mesh: " +msgstr "" + +#: editor/import/resource_importer_scene.cpp +msgid "Running Custom Script..." +msgstr "" + +#: editor/import/resource_importer_scene.cpp +msgid "Couldn't load post-import script:" +msgstr "" + +#: editor/import/resource_importer_scene.cpp +msgid "Invalid/broken script for post-import (check console):" +msgstr "" + +#: editor/import/resource_importer_scene.cpp +msgid "Error running post-import script:" +msgstr "" + +#: editor/import/resource_importer_scene.cpp +msgid "Saving..." +msgstr "" + +#: editor/import_dock.cpp +msgid "Set as Default for '%s'" +msgstr "" + +#: editor/import_dock.cpp +msgid "Clear Default for '%s'" +msgstr "" + +#: editor/import_dock.cpp +msgid " Files" +msgstr "" + +#: editor/import_dock.cpp +msgid "Import As:" +msgstr "" + +#: editor/import_dock.cpp editor/property_editor.cpp +msgid "Preset..." +msgstr "" + +#: editor/import_dock.cpp +msgid "Reimport" +msgstr "" + +#: editor/import_dock.cpp +msgid "Save scenes, re-import and restart" +msgstr "" + +#: editor/import_dock.cpp +msgid "Changing the type of an imported file requires editor restart." +msgstr "" + +#: editor/import_dock.cpp +msgid "" +"WARNING: Assets exist that use this resource, they may stop loading properly." +msgstr "" + +#: editor/inspector_dock.cpp +msgid "Failed to load resource." +msgstr "" + +#: editor/inspector_dock.cpp +msgid "Expand All Properties" +msgstr "" + +#: editor/inspector_dock.cpp +msgid "Collapse All Properties" +msgstr "" + +#: editor/inspector_dock.cpp editor/plugins/animation_player_editor_plugin.cpp +#: editor/plugins/script_editor_plugin.cpp +msgid "Save As..." +msgstr "" + +#: editor/inspector_dock.cpp +msgid "Copy Params" +msgstr "" + +#: editor/inspector_dock.cpp +msgid "Paste Params" +msgstr "" + +#: editor/inspector_dock.cpp +msgid "Edit Resource Clipboard" +msgstr "" + +#: editor/inspector_dock.cpp +msgid "Copy Resource" +msgstr "" + +#: editor/inspector_dock.cpp +msgid "Make Built-In" +msgstr "" + +#: editor/inspector_dock.cpp +msgid "Make Sub-Resources Unique" +msgstr "" + +#: editor/inspector_dock.cpp +msgid "Open in Help" +msgstr "" + +#: editor/inspector_dock.cpp +msgid "Create a new resource in memory and edit it." +msgstr "" + +#: editor/inspector_dock.cpp +msgid "Load an existing resource from disk and edit it." +msgstr "" + +#: editor/inspector_dock.cpp +msgid "Save the currently edited resource." +msgstr "" + +#: editor/inspector_dock.cpp +msgid "Go to the previous edited object in history." +msgstr "" + +#: editor/inspector_dock.cpp +msgid "Go to the next edited object in history." +msgstr "" + +#: editor/inspector_dock.cpp +msgid "History of recently edited objects." +msgstr "" + +#: editor/inspector_dock.cpp +msgid "Object properties." +msgstr "" + +#: editor/inspector_dock.cpp +msgid "Filter properties" +msgstr "" + +#: editor/inspector_dock.cpp +msgid "Changes may be lost!" +msgstr "" + +#: editor/multi_node_edit.cpp +msgid "MultiNode Set" +msgstr "" + +#: editor/node_dock.cpp +msgid "Select a Node to edit Signals and Groups." +msgstr "" + +#: editor/plugin_config_dialog.cpp +msgid "Edit a Plugin" +msgstr "" + +#: editor/plugin_config_dialog.cpp +msgid "Create a Plugin" +msgstr "" + +#: editor/plugin_config_dialog.cpp +msgid "Plugin Name:" +msgstr "" + +#: editor/plugin_config_dialog.cpp +msgid "Subfolder:" +msgstr "" + +#: editor/plugin_config_dialog.cpp +msgid "Language:" +msgstr "" + +#: editor/plugin_config_dialog.cpp +msgid "Script Name:" +msgstr "" + +#: editor/plugin_config_dialog.cpp +msgid "Activate now?" +msgstr "" + +#: editor/plugins/abstract_polygon_2d_editor.cpp +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Create Polygon" +msgstr "" + +#: editor/plugins/abstract_polygon_2d_editor.cpp +#: editor/plugins/animation_blend_space_1d_editor.cpp +#: editor/plugins/animation_blend_space_2d_editor.cpp +msgid "Create points." +msgstr "" + +#: editor/plugins/abstract_polygon_2d_editor.cpp +msgid "" +"Edit points.\n" +"LMB: Move Point\n" +"RMB: Erase Point" +msgstr "" + +#: editor/plugins/abstract_polygon_2d_editor.cpp +#: editor/plugins/animation_blend_space_1d_editor.cpp +msgid "Erase points." +msgstr "" + +#: editor/plugins/abstract_polygon_2d_editor.cpp +msgid "Edit Polygon" +msgstr "" + +#: editor/plugins/abstract_polygon_2d_editor.cpp +msgid "Insert Point" +msgstr "" + +#: editor/plugins/abstract_polygon_2d_editor.cpp +msgid "Edit Polygon (Remove Point)" +msgstr "" + +#: editor/plugins/abstract_polygon_2d_editor.cpp +msgid "Remove Polygon And Point" +msgstr "" + +#: editor/plugins/animation_blend_space_1d_editor.cpp +#: editor/plugins/animation_blend_space_2d_editor.cpp +#: editor/plugins/animation_player_editor_plugin.cpp +#: editor/plugins/animation_state_machine_editor.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Add Animation" +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 "Load..." +msgstr "" + +#: editor/plugins/animation_blend_space_1d_editor.cpp +#: editor/plugins/animation_blend_space_2d_editor.cpp +msgid "Move Node Point" +msgstr "" + +#: editor/plugins/animation_blend_space_1d_editor.cpp +msgid "Change BlendSpace1D Limits" +msgstr "" + +#: editor/plugins/animation_blend_space_1d_editor.cpp +msgid "Change BlendSpace1D Labels" +msgstr "" + +#: editor/plugins/animation_blend_space_1d_editor.cpp +#: editor/plugins/animation_blend_space_2d_editor.cpp +#: editor/plugins/animation_state_machine_editor.cpp +msgid "This type of node can't be used. Only root nodes are allowed." +msgstr "" + +#: editor/plugins/animation_blend_space_1d_editor.cpp +#: editor/plugins/animation_blend_space_2d_editor.cpp +msgid "Add Node Point" +msgstr "" + +#: editor/plugins/animation_blend_space_1d_editor.cpp +#: editor/plugins/animation_blend_space_2d_editor.cpp +msgid "Add Animation Point" +msgstr "" + +#: editor/plugins/animation_blend_space_1d_editor.cpp +msgid "Remove BlendSpace1D Point" +msgstr "" + +#: editor/plugins/animation_blend_space_1d_editor.cpp +msgid "Move BlendSpace1D Node Point" +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 "" +"AnimationTree is inactive.\n" +"Activate to enable playback, check node warnings if activation fails." +msgstr "" + +#: editor/plugins/animation_blend_space_1d_editor.cpp +#: editor/plugins/animation_blend_space_2d_editor.cpp +msgid "Set the blending position within the space" +msgstr "" + +#: editor/plugins/animation_blend_space_1d_editor.cpp +#: editor/plugins/animation_blend_space_2d_editor.cpp +msgid "Select and move points, create points with RMB." +msgstr "" + +#: editor/plugins/animation_blend_space_1d_editor.cpp +#: editor/plugins/animation_blend_space_2d_editor.cpp scene/gui/graph_edit.cpp +msgid "Enable snap and show grid." +msgstr "" + +#: editor/plugins/animation_blend_space_1d_editor.cpp +#: editor/plugins/animation_blend_space_2d_editor.cpp +msgid "Point" +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 "" + +#: editor/plugins/animation_blend_space_2d_editor.cpp +msgid "Triangle already exists." +msgstr "" + +#: editor/plugins/animation_blend_space_2d_editor.cpp +msgid "Add Triangle" +msgstr "" + +#: editor/plugins/animation_blend_space_2d_editor.cpp +msgid "Change BlendSpace2D Limits" +msgstr "" + +#: editor/plugins/animation_blend_space_2d_editor.cpp +msgid "Change BlendSpace2D Labels" +msgstr "" + +#: editor/plugins/animation_blend_space_2d_editor.cpp +msgid "Remove BlendSpace2D Point" +msgstr "" + +#: editor/plugins/animation_blend_space_2d_editor.cpp +msgid "Remove BlendSpace2D Triangle" +msgstr "" + +#: editor/plugins/animation_blend_space_2d_editor.cpp +msgid "BlendSpace2D does not belong to an AnimationTree node." +msgstr "" + +#: editor/plugins/animation_blend_space_2d_editor.cpp +msgid "No triangles exist, so no blending can take place." +msgstr "" + +#: editor/plugins/animation_blend_space_2d_editor.cpp +msgid "Toggle Auto Triangles" +msgstr "" + +#: editor/plugins/animation_blend_space_2d_editor.cpp +msgid "Create triangles by connecting points." +msgstr "" + +#: editor/plugins/animation_blend_space_2d_editor.cpp +msgid "Erase points and triangles." +msgstr "" + +#: editor/plugins/animation_blend_space_2d_editor.cpp +msgid "Generate blend triangles automatically (instead of manually)" +msgstr "" + +#: editor/plugins/animation_blend_space_2d_editor.cpp +#: editor/plugins/animation_tree_player_editor_plugin.cpp +msgid "Blend:" +msgstr "" + +#: editor/plugins/animation_blend_tree_editor_plugin.cpp +msgid "Parameter Changed" +msgstr "" + +#: editor/plugins/animation_blend_tree_editor_plugin.cpp +#: editor/plugins/animation_tree_player_editor_plugin.cpp +msgid "Edit Filters" +msgstr "" + +#: editor/plugins/animation_blend_tree_editor_plugin.cpp +msgid "Output node can't be added to the blend tree." +msgstr "" + +#: editor/plugins/animation_blend_tree_editor_plugin.cpp +msgid "Add Node to BlendTree" +msgstr "" + +#: editor/plugins/animation_blend_tree_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Node Moved" +msgstr "" + +#: editor/plugins/animation_blend_tree_editor_plugin.cpp +msgid "Unable to connect, port may be in use or connection may be invalid." +msgstr "" + +#: editor/plugins/animation_blend_tree_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Nodes Connected" +msgstr "" + +#: editor/plugins/animation_blend_tree_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Nodes Disconnected" +msgstr "" + +#: editor/plugins/animation_blend_tree_editor_plugin.cpp +msgid "Set Animation" +msgstr "" + +#: editor/plugins/animation_blend_tree_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Delete Node" +msgstr "" + +#: editor/plugins/animation_blend_tree_editor_plugin.cpp +#: editor/scene_tree_dock.cpp +msgid "Delete Node(s)" +msgstr "" + +#: editor/plugins/animation_blend_tree_editor_plugin.cpp +msgid "Toggle Filter On/Off" +msgstr "" + +#: editor/plugins/animation_blend_tree_editor_plugin.cpp +msgid "Change Filter" +msgstr "" + +#: editor/plugins/animation_blend_tree_editor_plugin.cpp +msgid "No animation player set, so unable to retrieve track names." +msgstr "" + +#: editor/plugins/animation_blend_tree_editor_plugin.cpp +msgid "Player path set is invalid, so unable to retrieve track names." +msgstr "" + +#: editor/plugins/animation_blend_tree_editor_plugin.cpp +#: editor/plugins/root_motion_editor_plugin.cpp +msgid "" +"Animation player has no valid root node path, so unable to retrieve track " +"names." +msgstr "" + +#: editor/plugins/animation_blend_tree_editor_plugin.cpp +#: editor/plugins/animation_state_machine_editor.cpp +msgid "Node Renamed" +msgstr "" + +#: editor/plugins/animation_blend_tree_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add Node..." +msgstr "" + +#: editor/plugins/animation_blend_tree_editor_plugin.cpp +#: editor/plugins/root_motion_editor_plugin.cpp +msgid "Edit Filtered Tracks:" +msgstr "" + +#: editor/plugins/animation_blend_tree_editor_plugin.cpp +msgid "Enable Filtering" +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "Toggle Autoplay" +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "New Animation Name:" +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "New Anim" +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "Change Animation Name:" +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "Delete Animation?" +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Remove Animation" +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "Invalid animation name!" +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "Animation name already exists!" +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Rename Animation" +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "Blend Next Changed" +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "Change Blend Time" +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "Load Animation" +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "Duplicate Animation" +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "No animation to copy!" +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "No animation resource on clipboard!" +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "Pasted Animation" +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "Paste Animation" +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "No animation to edit!" +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "Play selected animation backwards from current pos. (A)" +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "Play selected animation backwards from end. (Shift+A)" +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "Stop animation playback. (S)" +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "Play selected animation from start. (Shift+D)" +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "Play selected animation from current pos. (D)" +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "Animation position (in seconds)." +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "Scale animation playback globally for the node." +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "Animation Tools" +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Animation" +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "Edit Transitions..." +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "Open in Inspector" +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "Display list of animations in player." +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "Autoplay on Load" +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "Enable Onion Skinning" +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "Onion Skinning Options" +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "Directions" +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "Past" +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "Future" +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "Depth" +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "1 step" +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "2 steps" +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "3 steps" +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "Differences Only" +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "Force White Modulate" +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "Include Gizmos (3D)" +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "Pin AnimationPlayer" +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "Create New Animation" +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "Animation Name:" +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp +#: editor/plugins/resource_preloader_editor_plugin.cpp +#: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp +#: editor/script_create_dialog.cpp +msgid "Error!" +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "Blend Times:" +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "Next (Auto Queue):" +msgstr "" + +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "Cross-Animation Blend Times" +msgstr "" + +#: editor/plugins/animation_state_machine_editor.cpp +msgid "Move Node" +msgstr "" + +#: editor/plugins/animation_state_machine_editor.cpp +msgid "Add Transition" +msgstr "" + +#: editor/plugins/animation_state_machine_editor.cpp +#: modules/visual_script/visual_script_editor.cpp +msgid "Add Node" +msgstr "" + +#: editor/plugins/animation_state_machine_editor.cpp +msgid "End" +msgstr "" + +#: editor/plugins/animation_state_machine_editor.cpp +msgid "Immediate" +msgstr "" + +#: editor/plugins/animation_state_machine_editor.cpp +msgid "Sync" +msgstr "" + +#: editor/plugins/animation_state_machine_editor.cpp +msgid "At End" +msgstr "" + +#: editor/plugins/animation_state_machine_editor.cpp +msgid "Travel" +msgstr "" + +#: editor/plugins/animation_state_machine_editor.cpp +msgid "Start and end nodes are needed for a sub-transition." +msgstr "" + +#: editor/plugins/animation_state_machine_editor.cpp +msgid "No playback resource set at path: %s." +msgstr "" + +#: editor/plugins/animation_state_machine_editor.cpp +msgid "Node Removed" +msgstr "" + +#: editor/plugins/animation_state_machine_editor.cpp +msgid "Transition Removed" +msgstr "" + +#: editor/plugins/animation_state_machine_editor.cpp +msgid "Set Start Node (Autoplay)" +msgstr "" + +#: editor/plugins/animation_state_machine_editor.cpp +msgid "" +"Select and move nodes.\n" +"RMB to add new nodes.\n" +"Shift+LMB to create connections." +msgstr "" + +#: editor/plugins/animation_state_machine_editor.cpp +msgid "Create new nodes." +msgstr "" + +#: editor/plugins/animation_state_machine_editor.cpp +msgid "Connect nodes." +msgstr "" + +#: editor/plugins/animation_state_machine_editor.cpp +msgid "Remove selected node or transition." +msgstr "" + +#: editor/plugins/animation_state_machine_editor.cpp +msgid "Toggle autoplay this animation on start, restart or seek to zero." +msgstr "" + +#: editor/plugins/animation_state_machine_editor.cpp +msgid "Set the end animation. This is useful for sub-transitions." +msgstr "" + +#: editor/plugins/animation_state_machine_editor.cpp +msgid "Transition: " +msgstr "" + +#: editor/plugins/animation_tree_editor_plugin.cpp +#: editor/plugins/animation_tree_player_editor_plugin.cpp +msgid "AnimationTree" +msgstr "" + +#: editor/plugins/animation_tree_player_editor_plugin.cpp +msgid "New name:" +msgstr "" + +#: editor/plugins/animation_tree_player_editor_plugin.cpp +#: editor/plugins/multimesh_editor_plugin.cpp +msgid "Scale:" +msgstr "" + +#: editor/plugins/animation_tree_player_editor_plugin.cpp +msgid "Fade In (s):" +msgstr "" + +#: editor/plugins/animation_tree_player_editor_plugin.cpp +msgid "Fade Out (s):" +msgstr "" + +#: editor/plugins/animation_tree_player_editor_plugin.cpp +msgid "Blend" +msgstr "" + +#: editor/plugins/animation_tree_player_editor_plugin.cpp +msgid "Mix" +msgstr "" + +#: editor/plugins/animation_tree_player_editor_plugin.cpp +msgid "Auto Restart:" +msgstr "" + +#: editor/plugins/animation_tree_player_editor_plugin.cpp +msgid "Restart (s):" +msgstr "" + +#: editor/plugins/animation_tree_player_editor_plugin.cpp +msgid "Random Restart (s):" +msgstr "" + +#: editor/plugins/animation_tree_player_editor_plugin.cpp +msgid "Start!" +msgstr "" + +#: editor/plugins/animation_tree_player_editor_plugin.cpp +#: editor/plugins/multimesh_editor_plugin.cpp +msgid "Amount:" +msgstr "" + +#: editor/plugins/animation_tree_player_editor_plugin.cpp +msgid "Blend 0:" +msgstr "" + +#: editor/plugins/animation_tree_player_editor_plugin.cpp +msgid "Blend 1:" +msgstr "" + +#: editor/plugins/animation_tree_player_editor_plugin.cpp +msgid "X-Fade Time (s):" +msgstr "" + +#: editor/plugins/animation_tree_player_editor_plugin.cpp +msgid "Current:" +msgstr "" + +#: editor/plugins/animation_tree_player_editor_plugin.cpp +msgid "Add Input" +msgstr "" + +#: editor/plugins/animation_tree_player_editor_plugin.cpp +msgid "Clear Auto-Advance" +msgstr "" + +#: editor/plugins/animation_tree_player_editor_plugin.cpp +msgid "Set Auto-Advance" +msgstr "" + +#: editor/plugins/animation_tree_player_editor_plugin.cpp +msgid "Delete Input" +msgstr "" + +#: editor/plugins/animation_tree_player_editor_plugin.cpp +msgid "Animation tree is valid." +msgstr "" + +#: editor/plugins/animation_tree_player_editor_plugin.cpp +msgid "Animation tree is invalid." +msgstr "" + +#: editor/plugins/animation_tree_player_editor_plugin.cpp +msgid "Animation Node" +msgstr "" + +#: editor/plugins/animation_tree_player_editor_plugin.cpp +msgid "OneShot Node" +msgstr "" + +#: editor/plugins/animation_tree_player_editor_plugin.cpp +msgid "Mix Node" +msgstr "" + +#: editor/plugins/animation_tree_player_editor_plugin.cpp +msgid "Blend2 Node" +msgstr "" + +#: editor/plugins/animation_tree_player_editor_plugin.cpp +msgid "Blend3 Node" +msgstr "" + +#: editor/plugins/animation_tree_player_editor_plugin.cpp +msgid "Blend4 Node" +msgstr "" + +#: editor/plugins/animation_tree_player_editor_plugin.cpp +msgid "TimeScale Node" +msgstr "" + +#: editor/plugins/animation_tree_player_editor_plugin.cpp +msgid "TimeSeek Node" +msgstr "" + +#: editor/plugins/animation_tree_player_editor_plugin.cpp +msgid "Transition Node" +msgstr "" + +#: editor/plugins/animation_tree_player_editor_plugin.cpp +msgid "Import Animations..." +msgstr "" + +#: editor/plugins/animation_tree_player_editor_plugin.cpp +msgid "Edit Node Filters" +msgstr "" + +#: editor/plugins/animation_tree_player_editor_plugin.cpp +msgid "Filters..." +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Contents:" +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "View Files" +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Can't resolve hostname:" +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Connection error, please try again." +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Can't connect to host:" +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "No response from host:" +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Request failed, return code:" +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Request failed, too many redirects" +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Bad download hash, assuming file has been tampered with." +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Expected:" +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Got:" +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Failed sha256 hash check" +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Asset Download Error:" +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Downloading (%s / %s)..." +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Downloading..." +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Resolving..." +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Error making request" +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Idle" +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Retry" +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Download Error" +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Download for this asset is already in progress!" +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "First" +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Previous" +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Next" +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Last" +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp +#: modules/gdnative/gdnative_library_editor_plugin.cpp +msgid "All" +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp +#: editor/project_settings_editor.cpp +msgid "Plugins" +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp editor/project_manager.cpp +msgid "Sort:" +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Reverse" +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp +#: editor/project_settings_editor.cpp +msgid "Category:" +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Site:" +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Support..." +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Official" +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Testing" +msgstr "" + +#: editor/plugins/asset_library_editor_plugin.cpp +msgid "Assets ZIP File" +msgstr "" + +#: editor/plugins/baked_lightmap_editor_plugin.cpp +msgid "" +"Can't determine a save path for lightmap images.\n" +"Save your scene (for images to be saved in the same dir), or pick a save " +"path from the BakedLightmap properties." +msgstr "" + +#: editor/plugins/baked_lightmap_editor_plugin.cpp +msgid "" +"No meshes to bake. Make sure they contain an UV2 channel and that the 'Bake " +"Light' flag is on." +msgstr "" + +#: editor/plugins/baked_lightmap_editor_plugin.cpp +msgid "Failed creating lightmap images, make sure path is writable." +msgstr "" + +#: editor/plugins/baked_lightmap_editor_plugin.cpp +msgid "Bake Lightmaps" +msgstr "" + +#: editor/plugins/camera_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp editor/rename_dialog.cpp +msgid "Preview" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Configure Snap" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Grid Offset:" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Grid Step:" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Rotation Offset:" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Rotation Step:" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Move vertical guide" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Create new vertical guide" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Remove vertical guide" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Move horizontal guide" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Create new horizontal guide" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Remove horizontal guide" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Create new horizontal and vertical guides" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Move pivot" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Rotate CanvasItem" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Move anchor" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Resize CanvasItem" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Scale CanvasItem" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Move CanvasItem" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"Children of containers have their anchors and margins values overridden by " +"their parent." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Presets for the anchors and margins values of a Control node." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"When active, moving Control nodes changes their anchors instead of their " +"margins." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Anchors only" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Change Anchors and Margins" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Change Anchors" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Lock Selected" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Unlock Selected" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Group Selected" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Ungroup Selected" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Paste Pose" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Create Custom Bone(s) from Node(s)" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Clear Bones" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Make IK Chain" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Clear IK Chain" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"Warning: Children of a container get their position and size determined only " +"by their parent." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/texture_region_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp +msgid "Zoom Reset" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Select Mode" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Drag: Rotate" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Alt+Drag: Move" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Press 'v' to Change Pivot, 'Shift+v' to Drag Pivot (while moving)." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Alt+RMB: Depth list selection" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Move Mode" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Rotate Mode" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Scale Mode" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +msgid "" +"Show a list of all objects at the position clicked\n" +"(same as Alt+RMB in select mode)." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Click to change object's rotation pivot." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Pan Mode" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Toggle snapping." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Use Snap" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Snapping Options" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Snap to Grid" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Use Rotation Snap" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Configure Snap..." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Snap Relative" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Use Pixel Snap" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Smart Snapping" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Snap to Parent" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Snap to Node Anchor" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Snap to Node Sides" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Snap to Node Center" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Snap to Other Nodes" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Snap to Guides" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Lock the selected object in place (can't be moved)." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Unlock the selected object (can be moved)." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Makes sure the object's children are not selectable." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Restores the object's children's ability to be selected." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Skeleton Options" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Show Bones" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Make Custom Bone(s) from Node(s)" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Clear Custom Bones" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +msgid "View" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Show Grid" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Show Helpers" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Show Rulers" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Show Guides" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Show Origin" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Show Viewport" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Show Group And Lock Icons" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Center Selection" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Frame Selection" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Preview Canvas Scale" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Translation mask for inserting keys." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Rotation mask for inserting keys." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Scale mask for inserting keys." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Insert keys (based on mask)." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"Auto insert keys when objects are translated, rotated on scaled (based on " +"mask).\n" +"Keys are only added to existing tracks, no new tracks will be created.\n" +"Keys must be inserted manually for the first time." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Auto Insert Key" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Insert Key (Existing Tracks)" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Copy Pose" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Clear Pose" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Multiply grid step by 2" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Divide grid step by 2" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Pan View" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Add %s" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Adding %s..." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Cannot instantiate multiple nodes without root." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp +msgid "Create Node" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp +msgid "Error instancing scene from %s" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Change Default Type" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"Drag & drop + Shift : Add node as sibling\n" +"Drag & drop + Alt : Change node type" +msgstr "" + +#: editor/plugins/collision_polygon_editor_plugin.cpp +msgid "Create Polygon3D" +msgstr "" + +#: editor/plugins/collision_polygon_editor_plugin.cpp +msgid "Edit Poly" +msgstr "" + +#: editor/plugins/collision_polygon_editor_plugin.cpp +msgid "Edit Poly (Remove Point)" +msgstr "" + +#: editor/plugins/collision_shape_2d_editor_plugin.cpp +msgid "Set Handle" +msgstr "" + +#: editor/plugins/cpu_particles_2d_editor_plugin.cpp +#: editor/plugins/particles_2d_editor_plugin.cpp +msgid "Error loading image:" +msgstr "" + +#: editor/plugins/cpu_particles_2d_editor_plugin.cpp +#: editor/plugins/particles_2d_editor_plugin.cpp +msgid "No pixels with transparency > 128 in image..." +msgstr "" + +#: editor/plugins/cpu_particles_2d_editor_plugin.cpp +#: editor/plugins/particles_2d_editor_plugin.cpp +msgid "Load Emission Mask" +msgstr "" + +#: editor/plugins/cpu_particles_2d_editor_plugin.cpp +#: editor/plugins/particles_2d_editor_plugin.cpp +msgid "Clear Emission Mask" +msgstr "" + +#: editor/plugins/cpu_particles_2d_editor_plugin.cpp +#: editor/plugins/particles_2d_editor_plugin.cpp +#: editor/plugins/particles_editor_plugin.cpp +msgid "Particles" +msgstr "" + +#: editor/plugins/cpu_particles_2d_editor_plugin.cpp +#: editor/plugins/particles_2d_editor_plugin.cpp +msgid "Generated Point Count:" +msgstr "" + +#: editor/plugins/cpu_particles_2d_editor_plugin.cpp +#: editor/plugins/particles_2d_editor_plugin.cpp +msgid "Emission Mask" +msgstr "" + +#: editor/plugins/cpu_particles_2d_editor_plugin.cpp +#: editor/plugins/particles_2d_editor_plugin.cpp +msgid "Capture from Pixel" +msgstr "" + +#: editor/plugins/cpu_particles_2d_editor_plugin.cpp +#: editor/plugins/particles_2d_editor_plugin.cpp +msgid "Emission Colors" +msgstr "" + +#: editor/plugins/cpu_particles_editor_plugin.cpp +msgid "CPUParticles" +msgstr "" + +#: editor/plugins/cpu_particles_editor_plugin.cpp +#: editor/plugins/particles_editor_plugin.cpp +msgid "Create Emission Points From Mesh" +msgstr "" + +#: editor/plugins/cpu_particles_editor_plugin.cpp +#: editor/plugins/particles_editor_plugin.cpp +msgid "Create Emission Points From Node" +msgstr "" + +#: editor/plugins/curve_editor_plugin.cpp +msgid "Flat 0" +msgstr "" + +#: editor/plugins/curve_editor_plugin.cpp +msgid "Flat 1" +msgstr "" + +#: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp +msgid "Ease In" +msgstr "" + +#: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp +msgid "Ease Out" +msgstr "" + +#: editor/plugins/curve_editor_plugin.cpp +msgid "Smoothstep" +msgstr "" + +#: editor/plugins/curve_editor_plugin.cpp +msgid "Modify Curve Point" +msgstr "" + +#: editor/plugins/curve_editor_plugin.cpp +msgid "Modify Curve Tangent" +msgstr "" + +#: editor/plugins/curve_editor_plugin.cpp +msgid "Load Curve Preset" +msgstr "" + +#: editor/plugins/curve_editor_plugin.cpp +msgid "Add Point" +msgstr "" + +#: editor/plugins/curve_editor_plugin.cpp +msgid "Remove Point" +msgstr "" + +#: editor/plugins/curve_editor_plugin.cpp +msgid "Left Linear" +msgstr "" + +#: editor/plugins/curve_editor_plugin.cpp +msgid "Right Linear" +msgstr "" + +#: editor/plugins/curve_editor_plugin.cpp +msgid "Load Preset" +msgstr "" + +#: editor/plugins/curve_editor_plugin.cpp +msgid "Remove Curve Point" +msgstr "" + +#: editor/plugins/curve_editor_plugin.cpp +msgid "Toggle Curve Linear Tangent" +msgstr "" + +#: editor/plugins/curve_editor_plugin.cpp +msgid "Hold Shift to edit tangents individually" +msgstr "" + +#: editor/plugins/gi_probe_editor_plugin.cpp +msgid "Bake GI Probe" +msgstr "" + +#: editor/plugins/gradient_editor_plugin.cpp +msgid "Gradient Edited" +msgstr "" + +#: editor/plugins/item_list_editor_plugin.cpp +msgid "Item %d" +msgstr "" + +#: editor/plugins/item_list_editor_plugin.cpp +msgid "Items" +msgstr "" + +#: editor/plugins/item_list_editor_plugin.cpp +msgid "Item List Editor" +msgstr "" + +#: editor/plugins/light_occluder_2d_editor_plugin.cpp +msgid "Create Occluder Polygon" +msgstr "" + +#: editor/plugins/mesh_instance_editor_plugin.cpp +msgid "Mesh is empty!" +msgstr "" + +#: editor/plugins/mesh_instance_editor_plugin.cpp +msgid "Create Static Trimesh Body" +msgstr "" + +#: editor/plugins/mesh_instance_editor_plugin.cpp +msgid "Create Static Convex Body" +msgstr "" + +#: editor/plugins/mesh_instance_editor_plugin.cpp +msgid "This doesn't work on scene root!" +msgstr "" + +#: editor/plugins/mesh_instance_editor_plugin.cpp +msgid "Create Trimesh Static Shape" +msgstr "" + +#: editor/plugins/mesh_instance_editor_plugin.cpp +msgid "Failed creating shapes!" +msgstr "" + +#: editor/plugins/mesh_instance_editor_plugin.cpp +msgid "Create Convex Shape(s)" +msgstr "" + +#: editor/plugins/mesh_instance_editor_plugin.cpp +msgid "Create Navigation Mesh" +msgstr "" + +#: editor/plugins/mesh_instance_editor_plugin.cpp +msgid "Contained Mesh is not of type ArrayMesh." +msgstr "" + +#: editor/plugins/mesh_instance_editor_plugin.cpp +msgid "UV Unwrap failed, mesh may not be manifold?" +msgstr "" + +#: editor/plugins/mesh_instance_editor_plugin.cpp +msgid "No mesh to debug." +msgstr "" + +#: editor/plugins/mesh_instance_editor_plugin.cpp +#: editor/plugins/sprite_editor_plugin.cpp +msgid "Model has no UV in this layer" +msgstr "" + +#: editor/plugins/mesh_instance_editor_plugin.cpp +msgid "MeshInstance lacks a Mesh!" +msgstr "" + +#: editor/plugins/mesh_instance_editor_plugin.cpp +msgid "Mesh has not surface to create outlines from!" +msgstr "" + +#: editor/plugins/mesh_instance_editor_plugin.cpp +msgid "Mesh primitive type is not PRIMITIVE_TRIANGLES!" +msgstr "" + +#: editor/plugins/mesh_instance_editor_plugin.cpp +msgid "Could not create outline!" +msgstr "" + +#: editor/plugins/mesh_instance_editor_plugin.cpp +msgid "Create Outline" +msgstr "" + +#: editor/plugins/mesh_instance_editor_plugin.cpp +msgid "Mesh" +msgstr "" + +#: editor/plugins/mesh_instance_editor_plugin.cpp +msgid "Create Trimesh Static Body" +msgstr "" + +#: editor/plugins/mesh_instance_editor_plugin.cpp +msgid "Create Trimesh Collision Sibling" +msgstr "" + +#: editor/plugins/mesh_instance_editor_plugin.cpp +msgid "Create Convex Collision Sibling(s)" +msgstr "" + +#: editor/plugins/mesh_instance_editor_plugin.cpp +msgid "Create Outline Mesh..." +msgstr "" + +#: editor/plugins/mesh_instance_editor_plugin.cpp +msgid "View UV1" +msgstr "" + +#: editor/plugins/mesh_instance_editor_plugin.cpp +msgid "View UV2" +msgstr "" + +#: editor/plugins/mesh_instance_editor_plugin.cpp +msgid "Unwrap UV2 for Lightmap/AO" +msgstr "" + +#: editor/plugins/mesh_instance_editor_plugin.cpp +msgid "Create Outline Mesh" +msgstr "" + +#: editor/plugins/mesh_instance_editor_plugin.cpp +msgid "Outline Size:" +msgstr "" + +#: editor/plugins/mesh_library_editor_plugin.cpp +msgid "Remove item %d?" +msgstr "" + +#: editor/plugins/mesh_library_editor_plugin.cpp +#: editor/plugins/theme_editor_plugin.cpp +msgid "Add Item" +msgstr "" + +#: editor/plugins/mesh_library_editor_plugin.cpp +msgid "Remove Selected Item" +msgstr "" + +#: editor/plugins/mesh_library_editor_plugin.cpp +msgid "Import from Scene" +msgstr "" + +#: editor/plugins/mesh_library_editor_plugin.cpp +msgid "Update from Scene" +msgstr "" + +#: editor/plugins/multimesh_editor_plugin.cpp +msgid "No mesh source specified (and no MultiMesh set in node)." +msgstr "" + +#: editor/plugins/multimesh_editor_plugin.cpp +msgid "No mesh source specified (and MultiMesh contains no Mesh)." +msgstr "" + +#: editor/plugins/multimesh_editor_plugin.cpp +msgid "Mesh source is invalid (invalid path)." +msgstr "" + +#: editor/plugins/multimesh_editor_plugin.cpp +msgid "Mesh source is invalid (not a MeshInstance)." +msgstr "" + +#: editor/plugins/multimesh_editor_plugin.cpp +msgid "Mesh source is invalid (contains no Mesh resource)." +msgstr "" + +#: editor/plugins/multimesh_editor_plugin.cpp +msgid "No surface source specified." +msgstr "" + +#: editor/plugins/multimesh_editor_plugin.cpp +msgid "Surface source is invalid (invalid path)." +msgstr "" + +#: editor/plugins/multimesh_editor_plugin.cpp +msgid "Surface source is invalid (no geometry)." +msgstr "" + +#: editor/plugins/multimesh_editor_plugin.cpp +msgid "Surface source is invalid (no faces)." +msgstr "" + +#: editor/plugins/multimesh_editor_plugin.cpp +msgid "Parent has no solid faces to populate." +msgstr "" + +#: editor/plugins/multimesh_editor_plugin.cpp +msgid "Couldn't map area." +msgstr "" + +#: editor/plugins/multimesh_editor_plugin.cpp +msgid "Select a Source Mesh:" +msgstr "" + +#: editor/plugins/multimesh_editor_plugin.cpp +msgid "Select a Target Surface:" +msgstr "" + +#: editor/plugins/multimesh_editor_plugin.cpp +msgid "Populate Surface" +msgstr "" + +#: editor/plugins/multimesh_editor_plugin.cpp +msgid "Populate MultiMesh" +msgstr "" + +#: editor/plugins/multimesh_editor_plugin.cpp +msgid "Target Surface:" +msgstr "" + +#: editor/plugins/multimesh_editor_plugin.cpp +msgid "Source Mesh:" +msgstr "" + +#: editor/plugins/multimesh_editor_plugin.cpp +msgid "X-Axis" +msgstr "" + +#: editor/plugins/multimesh_editor_plugin.cpp +msgid "Y-Axis" +msgstr "" + +#: editor/plugins/multimesh_editor_plugin.cpp +msgid "Z-Axis" +msgstr "" + +#: editor/plugins/multimesh_editor_plugin.cpp +msgid "Mesh Up Axis:" +msgstr "" + +#: editor/plugins/multimesh_editor_plugin.cpp +msgid "Random Rotation:" +msgstr "" + +#: editor/plugins/multimesh_editor_plugin.cpp +msgid "Random Tilt:" +msgstr "" + +#: editor/plugins/multimesh_editor_plugin.cpp +msgid "Random Scale:" +msgstr "" + +#: editor/plugins/multimesh_editor_plugin.cpp +msgid "Populate" +msgstr "" + +#: editor/plugins/navigation_polygon_editor_plugin.cpp +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Create Navigation Polygon" +msgstr "" + +#: editor/plugins/particles_2d_editor_plugin.cpp +#: editor/plugins/particles_editor_plugin.cpp +msgid "Convert to CPUParticles" +msgstr "" + +#: editor/plugins/particles_2d_editor_plugin.cpp +msgid "Generating Visibility Rect" +msgstr "" + +#: editor/plugins/particles_2d_editor_plugin.cpp +msgid "Generate Visibility Rect" +msgstr "" + +#: editor/plugins/particles_2d_editor_plugin.cpp +msgid "Can only set point into a ParticlesMaterial process material" +msgstr "" + +#: editor/plugins/particles_2d_editor_plugin.cpp +#: editor/plugins/particles_editor_plugin.cpp +msgid "Generation Time (sec):" +msgstr "" + +#: editor/plugins/particles_editor_plugin.cpp +msgid "Faces contain no area!" +msgstr "" + +#: editor/plugins/particles_editor_plugin.cpp +msgid "No faces!" +msgstr "" + +#: editor/plugins/particles_editor_plugin.cpp +msgid "Node does not contain geometry." +msgstr "" + +#: editor/plugins/particles_editor_plugin.cpp +msgid "Node does not contain geometry (faces)." +msgstr "" + +#: editor/plugins/particles_editor_plugin.cpp +msgid "Create Emitter" +msgstr "" + +#: editor/plugins/particles_editor_plugin.cpp +msgid "Emission Points:" +msgstr "" + +#: editor/plugins/particles_editor_plugin.cpp +msgid "Surface Points" +msgstr "" + +#: editor/plugins/particles_editor_plugin.cpp +msgid "Surface Points+Normal (Directed)" +msgstr "" + +#: editor/plugins/particles_editor_plugin.cpp +msgid "Volume" +msgstr "" + +#: editor/plugins/particles_editor_plugin.cpp +msgid "Emission Source: " +msgstr "" + +#: editor/plugins/particles_editor_plugin.cpp +msgid "A processor material of type 'ParticlesMaterial' is required." +msgstr "" + +#: editor/plugins/particles_editor_plugin.cpp +msgid "Generating AABB" +msgstr "" + +#: editor/plugins/particles_editor_plugin.cpp +msgid "Generate Visibility AABB" +msgstr "" + +#: editor/plugins/particles_editor_plugin.cpp +msgid "Generate AABB" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +msgid "Remove Point from Curve" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +msgid "Remove Out-Control from Curve" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +msgid "Remove In-Control from Curve" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Add Point to Curve" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +msgid "Split Curve" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +msgid "Move Point in Curve" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +msgid "Move In-Control in Curve" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +msgid "Move Out-Control in Curve" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Select Points" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Shift+Drag: Select Control Points" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Click: Add Point" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +msgid "Left Click: Split Segment (in curve)" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Right Click: Delete Point" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +msgid "Select Control Points (Shift+Drag)" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Add Point (in empty space)" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Delete Point" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Close Curve" +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 +msgid "Options" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Mirror Handle Angles" +msgstr "" + +#: editor/plugins/path_2d_editor_plugin.cpp +#: editor/plugins/path_editor_plugin.cpp +msgid "Mirror Handle Lengths" +msgstr "" + +#: editor/plugins/path_editor_plugin.cpp +msgid "Curve Point #" +msgstr "" + +#: editor/plugins/path_editor_plugin.cpp +msgid "Set Curve Point Position" +msgstr "" + +#: editor/plugins/path_editor_plugin.cpp +msgid "Set Curve In Position" +msgstr "" + +#: editor/plugins/path_editor_plugin.cpp +msgid "Set Curve Out Position" +msgstr "" + +#: editor/plugins/path_editor_plugin.cpp +msgid "Split Path" +msgstr "" + +#: editor/plugins/path_editor_plugin.cpp +msgid "Remove Path Point" +msgstr "" + +#: editor/plugins/path_editor_plugin.cpp +msgid "Remove Out-Control Point" +msgstr "" + +#: editor/plugins/path_editor_plugin.cpp +msgid "Remove In-Control Point" +msgstr "" + +#: editor/plugins/path_editor_plugin.cpp +msgid "Split Segment (in curve)" +msgstr "" + +#: editor/plugins/physical_bone_plugin.cpp +msgid "Move Joint" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "" +"The skeleton property of the Polygon2D does not point to a Skeleton2D node" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Sync Bones" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "" +"No texture in this polygon.\n" +"Set a texture to be able to edit UV." +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Create UV Map" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "" +"Polygon 2D has internal vertices, so it can no longer be edited in the " +"viewport." +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Create Polygon & UV" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Create Internal Vertex" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Remove Internal Vertex" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Invalid Polygon (need 3 different vertices)" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Add Custom Polygon" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Remove Custom Polygon" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Transform UV Map" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Transform Polygon" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Paint Bone Weights" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Open Polygon 2D UV editor." +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Polygon 2D UV Editor" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "UV" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Points" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Polygons" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Bones" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Move Points" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Ctrl: Rotate" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Shift: Move All" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Shift+Ctrl: Scale" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Move Polygon" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Rotate Polygon" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Scale Polygon" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Create a custom polygon. Enables custom polygon rendering." +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "" +"Remove a custom polygon. If none remain, custom polygon rendering is " +"disabled." +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Paint weights with specified intensity." +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Unpaint weights with specified intensity." +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Radius:" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Polygon->UV" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "UV->Polygon" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Clear UV" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Grid Settings" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Snap" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Enable Snap" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Grid" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Configure Grid:" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Grid Offset X:" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Grid Offset Y:" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Grid Step X:" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Grid Step Y:" +msgstr "" + +#: editor/plugins/polygon_2d_editor_plugin.cpp +msgid "Sync Bones to Polygon" +msgstr "" + +#: editor/plugins/resource_preloader_editor_plugin.cpp +msgid "ERROR: Couldn't load resource!" +msgstr "" + +#: editor/plugins/resource_preloader_editor_plugin.cpp +msgid "Add Resource" +msgstr "" + +#: editor/plugins/resource_preloader_editor_plugin.cpp +msgid "Rename Resource" +msgstr "" + +#: editor/plugins/resource_preloader_editor_plugin.cpp +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Delete Resource" +msgstr "" + +#: editor/plugins/resource_preloader_editor_plugin.cpp +msgid "Resource clipboard is empty!" +msgstr "" + +#: editor/plugins/resource_preloader_editor_plugin.cpp +msgid "Paste Resource" +msgstr "" + +#: editor/plugins/resource_preloader_editor_plugin.cpp +#: editor/scene_tree_editor.cpp +msgid "Instance:" +msgstr "" + +#: editor/plugins/resource_preloader_editor_plugin.cpp +#: editor/plugins/theme_editor_plugin.cpp editor/project_settings_editor.cpp +#: editor/scene_tree_editor.cpp +msgid "Type:" +msgstr "" + +#: editor/plugins/resource_preloader_editor_plugin.cpp +#: editor/scene_tree_dock.cpp editor/scene_tree_editor.cpp +msgid "Open in Editor" +msgstr "" + +#: editor/plugins/resource_preloader_editor_plugin.cpp +msgid "Load Resource" +msgstr "" + +#: editor/plugins/resource_preloader_editor_plugin.cpp +msgid "ResourcePreloader" +msgstr "" + +#: editor/plugins/root_motion_editor_plugin.cpp +msgid "AnimationTree has no path set to an AnimationPlayer" +msgstr "" + +#: editor/plugins/root_motion_editor_plugin.cpp +msgid "Path to AnimationPlayer is invalid" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Clear Recent Files" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Close and save changes?" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Error writing TextFile:" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Error: could not load file." +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Error could not load file." +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Error saving file!" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Error while saving theme." +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Error Saving" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Error importing theme." +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Error Importing" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "New TextFile..." +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Open File" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Save File As..." +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Import Theme" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Error while saving theme" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Error saving" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Save Theme As..." +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "%s Class Reference" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp +msgid "Find Next" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Toggle alphabetical sorting of the method list." +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Sort" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp +#: modules/gdnative/gdnative_library_editor_plugin.cpp +msgid "Move Up" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp editor/scene_tree_dock.cpp +#: modules/gdnative/gdnative_library_editor_plugin.cpp +msgid "Move Down" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Next script" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Previous script" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "File" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Open..." +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Save All" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Soft Reload Script" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Copy Script Path" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "History Previous" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "History Next" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/theme_editor_plugin.cpp +msgid "Theme" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Import Theme..." +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Reload Theme" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Save Theme" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Close Docs" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Close All" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp +msgid "Run" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Toggle Scripts Panel" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp +msgid "Step Over" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp +msgid "Step Into" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp +msgid "Break" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp +#: editor/script_editor_debugger.cpp +msgid "Continue" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Keep Debugger Open" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Debug with External Editor" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Open Godot online documentation." +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Request Docs" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Help improve the Godot documentation by giving feedback." +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Search the reference documentation." +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Go to previous edited document." +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Go to next edited document." +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Discard" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "" +"The following files are newer on disk.\n" +"What action should be taken?:" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp +msgid "Reload" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp +msgid "Resave" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp +msgid "Debugger" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp +msgid "Search Results" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Connections to method:" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Source" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Signal" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Target" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "" +"Missing connected method '%s' for signal '%s' from node '%s' to node '%s'." +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Line" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "(ignore)" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Go to Function" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Only resources from filesystem can be dropped." +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Lookup Symbol" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Pick Color" +msgstr "" + +#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp +msgid "Convert Case" +msgstr "" + +#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp +msgid "Uppercase" +msgstr "" + +#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp +msgid "Lowercase" +msgstr "" + +#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp +msgid "Capitalize" +msgstr "" + +#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp +msgid "Syntax Highlighter" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp +msgid "Bookmarks" +msgstr "" + +#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp +#: scene/gui/text_edit.cpp +msgid "Cut" +msgstr "" + +#: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp +#: scene/gui/text_edit.cpp +msgid "Select All" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Delete Line" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Indent Left" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Indent Right" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Toggle Comment" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Toggle Bookmark" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Go to Next Bookmark" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Go to Previous Bookmark" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Remove All Bookmarks" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Fold/Unfold Line" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Fold All Lines" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Unfold All Lines" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Clone Down" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Complete Symbol" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Trim Trailing Whitespace" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Convert Indent to Spaces" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Convert Indent to Tabs" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Auto Indent" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +#: modules/visual_script/visual_script_editor.cpp +msgid "Toggle Breakpoint" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Remove All Breakpoints" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Go to Next Breakpoint" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Go to Previous Breakpoint" +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 "Go to Function..." +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Go to Line..." +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Contextual Help" +msgstr "" + +#: editor/plugins/shader_editor_plugin.cpp +msgid "" +"This shader has been modified on on disk.\n" +"What action should be taken?" +msgstr "" + +#: editor/plugins/shader_editor_plugin.cpp +msgid "Shader" +msgstr "" + +#: editor/plugins/skeleton_2d_editor_plugin.cpp +msgid "This skeleton has no bones, create some children Bone2D nodes." +msgstr "" + +#: editor/plugins/skeleton_2d_editor_plugin.cpp +msgid "Create Rest Pose from Bones" +msgstr "" + +#: editor/plugins/skeleton_2d_editor_plugin.cpp +msgid "Set Rest Pose to Bones" +msgstr "" + +#: editor/plugins/skeleton_2d_editor_plugin.cpp +msgid "Skeleton2D" +msgstr "" + +#: editor/plugins/skeleton_2d_editor_plugin.cpp +msgid "Make Rest Pose (From Bones)" +msgstr "" + +#: editor/plugins/skeleton_2d_editor_plugin.cpp +msgid "Set Bones to Rest Pose" +msgstr "" + +#: editor/plugins/skeleton_editor_plugin.cpp +msgid "Create physical bones" +msgstr "" + +#: editor/plugins/skeleton_editor_plugin.cpp +msgid "Skeleton" +msgstr "" + +#: editor/plugins/skeleton_editor_plugin.cpp +msgid "Create physical skeleton" +msgstr "" + +#: editor/plugins/skeleton_ik_editor_plugin.cpp +msgid "Play IK" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Orthogonal" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Perspective" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Transform Aborted." +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "X-Axis Transform." +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Y-Axis Transform." +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Z-Axis Transform." +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "View Plane Transform." +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Scaling: " +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Translating: " +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Rotating %s degrees." +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Keying is disabled (no key inserted)." +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Animation Key Inserted." +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Pitch" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Yaw" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Objects Drawn" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Material Changes" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Shader Changes" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Surface Changes" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Draw Calls" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Vertices" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Top View." +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Bottom View." +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Bottom" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Left View." +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Left" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Right View." +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Right" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Front View." +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Front" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Rear View." +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Rear" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Align with View" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp +msgid "No parent to instance a child at." +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp editor/scene_tree_dock.cpp +msgid "This operation requires a single selected node." +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Lock View Rotation" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Display Normal" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Display Wireframe" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Display Overdraw" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Display Unshaded" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "View Environment" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "View Gizmos" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "View Information" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "View FPS" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Half Resolution" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Audio Listener" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Doppler Enable" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Cinematic Preview" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Freelook Left" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Freelook Right" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Freelook Forward" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Freelook Backwards" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Freelook Up" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Freelook Down" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Freelook Speed Modifier" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "" +"Note: The FPS value displayed is the editor's framerate.\n" +"It cannot be used as a reliable indication of in-game performance." +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "View Rotation Locked" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "XForm Dialog" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Snap Nodes To Floor" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Select Mode (Q)" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "" +"Drag: Rotate\n" +"Alt+Drag: Move\n" +"Alt+RMB: Depth list selection" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Move Mode (W)" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Rotate Mode (E)" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Scale Mode (R)" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Local Coords" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Local Space Mode (%s)" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Snap Mode (%s)" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Bottom View" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Top View" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Rear View" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Front View" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Left View" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Right View" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Switch Perspective/Orthogonal View" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Insert Animation Key" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Focus Origin" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Focus Selection" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Align Selection With View" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Tool Select" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Tool Move" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Tool Rotate" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Tool Scale" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Toggle Freelook" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Transform" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Snap Object to Floor" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Transform Dialog..." +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "1 Viewport" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "2 Viewports" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "2 Viewports (Alt)" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "3 Viewports" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "3 Viewports (Alt)" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "4 Viewports" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Gizmos" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "View Origin" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "View Grid" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +#: modules/gridmap/grid_map_editor_plugin.cpp +msgid "Settings" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Snap Settings" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Translate Snap:" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Rotate Snap (deg.):" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Scale Snap (%):" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Viewport Settings" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Perspective FOV (deg.):" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "View Z-Near:" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "View Z-Far:" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Transform Change" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Translate:" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Rotate (deg.):" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Scale (ratio):" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Transform Type" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Pre" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Post" +msgstr "" + +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Nameless gizmo" +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp +msgid "Create Mesh2D" +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp +msgid "Create Polygon2D" +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp +msgid "Create CollisionPolygon2D" +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp +msgid "Create LightOccluder2D" +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp +msgid "Sprite is empty!" +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp +msgid "Can't convert a sprite using animation frames to mesh." +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp +msgid "Invalid geometry, can't replace by mesh." +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp +msgid "Convert to Mesh2D" +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp +msgid "Invalid geometry, can't create polygon." +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp +msgid "Convert to Polygon2D" +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp +msgid "Invalid geometry, can't create collision polygon." +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp +msgid "Create CollisionPolygon2D Sibling" +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp +msgid "Invalid geometry, can't create light occluder." +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp +msgid "Create LightOccluder2D Sibling" +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp +msgid "Sprite" +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp +msgid "Simplification: " +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp +msgid "Grow (Pixels): " +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp +msgid "Update Preview" +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp +msgid "Settings:" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "No Frames Selected" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Add %d Frame(s)" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Add Frame" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "ERROR: Couldn't load frame resource!" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Resource clipboard is empty or not a texture!" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Paste Frame" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Add Empty" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Change Animation FPS" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "(empty)" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Animations:" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "New Animation" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Speed (FPS):" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Loop" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Animation Frames:" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Add a Texture from File" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Add Frames from a Sprite Sheet" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Insert Empty (Before)" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Insert Empty (After)" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Move (Before)" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Move (After)" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Select Frames" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Horizontal:" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Vertical:" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Select/Clear All Frames" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Create Frames from Sprite Sheet" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "SpriteFrames" +msgstr "" + +#: editor/plugins/texture_region_editor_plugin.cpp +msgid "Set Region Rect" +msgstr "" + +#: editor/plugins/texture_region_editor_plugin.cpp +msgid "Set Margin" +msgstr "" + +#: editor/plugins/texture_region_editor_plugin.cpp +msgid "Snap Mode:" +msgstr "" + +#: editor/plugins/texture_region_editor_plugin.cpp +#: scene/resources/visual_shader.cpp +msgid "None" +msgstr "" + +#: editor/plugins/texture_region_editor_plugin.cpp +msgid "Pixel Snap" +msgstr "" + +#: editor/plugins/texture_region_editor_plugin.cpp +msgid "Grid Snap" +msgstr "" + +#: editor/plugins/texture_region_editor_plugin.cpp +msgid "Auto Slice" +msgstr "" + +#: editor/plugins/texture_region_editor_plugin.cpp +msgid "Offset:" +msgstr "" + +#: editor/plugins/texture_region_editor_plugin.cpp +msgid "Step:" +msgstr "" + +#: editor/plugins/texture_region_editor_plugin.cpp +msgid "Sep.:" +msgstr "" + +#: editor/plugins/texture_region_editor_plugin.cpp +msgid "TextureRegion" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Can't save theme to file:" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Add All Items" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Add All" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Remove All Items" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp editor/project_manager.cpp +msgid "Remove All" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Edit Theme" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Theme editing menu." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Add Class Items" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Remove Class Items" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Create Empty Template" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Create Empty Editor Template" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Create From Current Editor Theme" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Toggle Button" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Disabled Button" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Item" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Disabled Item" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Check Item" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Checked Item" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Radio Item" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Checked Radio Item" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Named Sep." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Submenu" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Item 1" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Item 2" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Has" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Many" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Disabled LineEdit" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Tab 1" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Tab 2" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Tab 3" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Editable Item" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Subtree" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Has,Many,Options" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Data Type:" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Icon" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp editor/rename_dialog.cpp +msgid "Style" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Font" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Color" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Constant" +msgstr "" + +#: editor/plugins/tile_map_editor_plugin.cpp +msgid "Erase Selection" +msgstr "" + +#: editor/plugins/tile_map_editor_plugin.cpp +msgid "Fix Invalid Tiles" +msgstr "" + +#: editor/plugins/tile_map_editor_plugin.cpp +#: modules/gridmap/grid_map_editor_plugin.cpp +msgid "Cut Selection" +msgstr "" + +#: editor/plugins/tile_map_editor_plugin.cpp +msgid "Paint TileMap" +msgstr "" + +#: editor/plugins/tile_map_editor_plugin.cpp +msgid "Line Draw" +msgstr "" + +#: editor/plugins/tile_map_editor_plugin.cpp +msgid "Rectangle Paint" +msgstr "" + +#: editor/plugins/tile_map_editor_plugin.cpp +msgid "Bucket Fill" +msgstr "" + +#: editor/plugins/tile_map_editor_plugin.cpp +msgid "Erase TileMap" +msgstr "" + +#: editor/plugins/tile_map_editor_plugin.cpp +msgid "Find Tile" +msgstr "" + +#: editor/plugins/tile_map_editor_plugin.cpp +msgid "Transpose" +msgstr "" + +#: editor/plugins/tile_map_editor_plugin.cpp +msgid "Mirror X" +msgstr "" + +#: editor/plugins/tile_map_editor_plugin.cpp +msgid "Mirror Y" +msgstr "" + +#: editor/plugins/tile_map_editor_plugin.cpp +msgid "Disable Autotile" +msgstr "" + +#: editor/plugins/tile_map_editor_plugin.cpp +msgid "Enable Priority" +msgstr "" + +#: editor/plugins/tile_map_editor_plugin.cpp +msgid "Paint Tile" +msgstr "" + +#: editor/plugins/tile_map_editor_plugin.cpp +msgid "" +"Shift+RMB: Line Draw\n" +"Shift+Ctrl+RMB: Rectangle Paint" +msgstr "" + +#: editor/plugins/tile_map_editor_plugin.cpp +msgid "Pick Tile" +msgstr "" + +#: editor/plugins/tile_map_editor_plugin.cpp +msgid "Rotate Left" +msgstr "" + +#: editor/plugins/tile_map_editor_plugin.cpp +msgid "Rotate Right" +msgstr "" + +#: editor/plugins/tile_map_editor_plugin.cpp +msgid "Flip Horizontally" +msgstr "" + +#: editor/plugins/tile_map_editor_plugin.cpp +msgid "Flip Vertically" +msgstr "" + +#: editor/plugins/tile_map_editor_plugin.cpp +msgid "Clear Transform" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Add Texture(s) to TileSet." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Remove selected Texture from TileSet." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Create from Scene" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Merge from Scene" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Next Coordinate" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Select the next shape, subtile, or Tile." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Previous Coordinate" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Select the previous shape, subtile, or Tile." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Region Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Collision Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Occlusion Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Navigation Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Bitmask Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Priority Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Icon Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Z Index Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Copy bitmask." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Paste bitmask." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Erase bitmask." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Create a new rectangle." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Create a new polygon." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Keep polygon inside region Rect." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Enable snap and show grid (configurable via the Inspector)." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Display Tile Names (Hold Alt Key)" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Remove selected texture? This will remove all tiles which use it." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "You haven't selected a texture to remove." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Create from scene? This will overwrite all current tiles." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Merge from scene?" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Remove Texture" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "%s file(s) were not added because was already on the list." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "" +"Drag handles to edit Rect.\n" +"Click on another Tile to edit it." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Delete selected Rect." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "" +"Select current edited sub-tile.\n" +"Click on another Tile to edit it." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Delete polygon." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "" +"LMB: Set bit on.\n" +"RMB: Set bit off.\n" +"Shift+LMB: Set wildcard bit.\n" +"Click on another Tile to edit it." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "" +"Select sub-tile to use as icon, this will be also used on invalid autotile " +"bindings.\n" +"Click on another Tile to edit it." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "" +"Select sub-tile to change its priority.\n" +"Click on another Tile to edit it." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "" +"Select sub-tile to change its z index.\n" +"Click on another Tile to edit it." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Set Tile Region" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Create Tile" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Set Tile Icon" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Edit Tile Bitmask" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Edit Collision Polygon" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Edit Occlusion Polygon" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Edit Navigation Polygon" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Paste Tile Bitmask" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Clear Tile Bitmask" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Make Polygon Concave" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Make Polygon Convex" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Remove Tile" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Remove Collision Polygon" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Remove Occlusion Polygon" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Remove Navigation Polygon" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Edit Tile Priority" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Edit Tile Z Index" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Create Collision Polygon" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Create Occlusion Polygon" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "This property can't be changed." +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "TileSet" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add input +" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add output +" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add input port" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add output port" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Change input port type" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Change output port type" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Change input port name" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Change output port name" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Remove input port" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Remove output port" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Set expression" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Resize VisualShader node" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Set Uniform Name" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Set Input Default Port" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add Node to Visual Shader" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Duplicate Nodes" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Delete Nodes" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Visual Shader Input Type Changed" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vertex" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Fragment" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Light" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Create Shader Node" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Color function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Color operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Grayscale function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts HSV vector to RGB equivalent." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts RGB vector to HSV equivalent." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Sepia function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Burn operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Darken operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Difference operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Dodge operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "HardLight operator" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Lighten operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Overlay operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Screen operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "SoftLight operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Color constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Color uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns an associated vector if the provided scalars are equal, greater or " +"less." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns an associated vector if the provided boolean value is true or false." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'camera' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'inv_camera' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'inv_projection' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'normal' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'projection' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'time' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'viewport_size' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'world' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'texture_pixel_size' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Input parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'binormal' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'fragcoord' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_coord' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_uv' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'side' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'tangent' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv2' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'vertex' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'view' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'albedo' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'attenuation' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'diffuse' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_color' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'roughness' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'specular' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'transmission' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'modelview' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_size' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'tangent' input parameter for vertex and fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_pass' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_coord' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_pixel_size' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_uv' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_alpha' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_height' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_uv' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_vec' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'normal' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'shadow_color' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'extra' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'projection' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'vertex' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'world' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'active' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'custom' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'custom_alpha' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'delta' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'emission_transform' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'index' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'lifetime' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'restart' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'time' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'transform' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'velocity' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Scalar function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Scalar operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "E constant (2.718282). Represents the base of the natural logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Epsilon constant (0.00001). Smallest possible scalar number." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Phi constant (1.618034). Golden ratio." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi/4 constant (0.785398) or 45 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi/2 constant (1.570796) or 90 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi constant (3.141593) or 180 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Tau constant (6.283185) or 360 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Sqrt2 constant (1.414214). Square root of 2." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the absolute value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-tangent of the parameters." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Finds the nearest integer that is greater than or equal to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Constrains a value to lie between two further values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts a quantity in radians to degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-e Exponential." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-2 Exponential." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Finds the nearest integer less than or equal to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Computes the fractional part of the argument." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the inverse of the square root of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Natural logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-2 logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the greater of two values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the lesser of two values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Linear interpolation between two scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the opposite value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 - scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns the value of the first parameter raised to the power of the second." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts a quantity in degrees to radians." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 / scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the nearest integer to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the nearest even integer to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Clamps the value between 0.0 and 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Extracts the sign of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the square root of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( scalar(edge0), scalar(edge1), scalar(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if x is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( scalar(edge), scalar(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the truncated value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Adds scalar to scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Divides scalar by scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies scalar by scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the remainder of the two scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Subtracts scalar from scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Scalar constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Scalar uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Perform the cubic texture lookup." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Perform the texture lookup." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Cubic texture uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "2D texture uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Transform function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) Calculate the outer product of a pair of vectors.\n" +"\n" +"OuterProduct treats the first parameter 'c' as a column vector (matrix with " +"one column) and the second parameter 'r' as a row vector (matrix with one " +"row) and does a linear algebraic matrix multiply 'c * r', yielding a matrix " +"whose number of rows is the number of components in 'c' and whose number of " +"columns is the number of components in 'r'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Composes transform from four vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Decomposes transform to four vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the determinant of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the inverse of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the transpose of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies transform by transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies vector by transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Transform constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Transform uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Composes vector from three scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Decomposes vector to three scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the cross product of two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the distance between two points." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the dot product of two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns a vector that points in the same direction as a reference vector. " +"The function has three vector parameters : N, the vector to orient, I, the " +"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 "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the length of a vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Linear interpolation between two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the normalize product of vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 - vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 / vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns a vector that points in the direction of reflection ( a : incident " +"vector, b : normal vector )." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns a vector that points in the direction of refraction." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( vector(edge0), vector(edge1), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if 'x' is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( scalar(edge0), scalar(edge1), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if 'x' is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( vector(edge), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( scalar(edge), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Adds vector to vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Divides vector by vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies vector by vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the remainder of the two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Subtracts vector from vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Custom Godot Shader Language expression, with custom amount of input and " +"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 "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns falloff based on the dot product of surface normal and view " +"direction of camera (pass associated inputs to it)." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) (Fragment/Light mode only) Scalar derivative function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) (Fragment/Light mode only) Vector derivative function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Derivative in 'x' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Derivative in 'x' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Derivative in 'y' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Derivative in 'y' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Sum of absolute derivative " +"in 'x' and 'y'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Sum of absolute derivative " +"in 'x' and 'y'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "VisualShader" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Edit Visual Property" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Visual Shader Mode Changed" +msgstr "" + +#: editor/project_export.cpp +msgid "Runnable" +msgstr "" + +#: editor/project_export.cpp +msgid "Delete patch '%s' from list?" +msgstr "" + +#: editor/project_export.cpp +msgid "Delete preset '%s'?" +msgstr "" + +#: editor/project_export.cpp +msgid "" +"Failed to export the project for platform '%s'.\n" +"Export templates seem to be missing or invalid." +msgstr "" + +#: editor/project_export.cpp +msgid "" +"Failed to export the project for platform '%s'.\n" +"This might be due to a configuration issue in the export preset or your " +"export settings." +msgstr "" + +#: editor/project_export.cpp +msgid "Release" +msgstr "" + +#: editor/project_export.cpp +msgid "Exporting All" +msgstr "" + +#: editor/project_export.cpp +msgid "The given export path doesn't exist:" +msgstr "" + +#: editor/project_export.cpp +msgid "Export templates for this platform are missing/corrupted:" +msgstr "" + +#: editor/project_export.cpp +msgid "Presets" +msgstr "" + +#: editor/project_export.cpp editor/project_settings_editor.cpp +msgid "Add..." +msgstr "" + +#: editor/project_export.cpp +msgid "Export Path" +msgstr "" + +#: editor/project_export.cpp +msgid "Resources" +msgstr "" + +#: editor/project_export.cpp +msgid "Export all resources in the project" +msgstr "" + +#: editor/project_export.cpp +msgid "Export selected scenes (and dependencies)" +msgstr "" + +#: editor/project_export.cpp +msgid "Export selected resources (and dependencies)" +msgstr "" + +#: editor/project_export.cpp +msgid "Export Mode:" +msgstr "" + +#: editor/project_export.cpp +msgid "Resources to export:" +msgstr "" + +#: editor/project_export.cpp +msgid "" +"Filters to export non-resource files (comma separated, e.g: *.json, *.txt)" +msgstr "" + +#: editor/project_export.cpp +msgid "" +"Filters to exclude files from project (comma separated, e.g: *.json, *.txt)" +msgstr "" + +#: editor/project_export.cpp +msgid "Patches" +msgstr "" + +#: editor/project_export.cpp +msgid "Make Patch" +msgstr "" + +#: editor/project_export.cpp +msgid "Features" +msgstr "" + +#: editor/project_export.cpp +msgid "Custom (comma-separated):" +msgstr "" + +#: editor/project_export.cpp +msgid "Feature List:" +msgstr "" + +#: editor/project_export.cpp +msgid "Script" +msgstr "" + +#: editor/project_export.cpp +msgid "Script Export Mode:" +msgstr "" + +#: editor/project_export.cpp +msgid "Text" +msgstr "" + +#: editor/project_export.cpp +msgid "Compiled" +msgstr "" + +#: editor/project_export.cpp +msgid "Encrypted (Provide Key Below)" +msgstr "" + +#: editor/project_export.cpp +msgid "Invalid Encryption Key (must be 64 characters long)" +msgstr "" + +#: editor/project_export.cpp +msgid "Script Encryption Key (256-bits as hex):" +msgstr "" + +#: editor/project_export.cpp +msgid "Export PCK/Zip" +msgstr "" + +#: editor/project_export.cpp +msgid "Export mode?" +msgstr "" + +#: editor/project_export.cpp +msgid "Export All" +msgstr "" + +#: editor/project_export.cpp +msgid "Export templates for this platform are missing:" +msgstr "" + +#: editor/project_export.cpp +msgid "Export With Debug" +msgstr "" + +#: editor/project_manager.cpp +msgid "The path does not exist." +msgstr "" + +#: editor/project_manager.cpp +msgid "Invalid '.zip' project file, does not contain a 'project.godot' file." +msgstr "" + +#: editor/project_manager.cpp +msgid "Please choose an empty folder." +msgstr "" + +#: editor/project_manager.cpp +msgid "Please choose a 'project.godot' or '.zip' file." +msgstr "" + +#: editor/project_manager.cpp +msgid "Directory already contains a Godot project." +msgstr "" + +#: editor/project_manager.cpp +msgid "New Game Project" +msgstr "" + +#: editor/project_manager.cpp +msgid "Imported Project" +msgstr "" + +#: editor/project_manager.cpp +msgid "Invalid Project Name." +msgstr "" + +#: editor/project_manager.cpp +msgid "Couldn't create folder." +msgstr "" + +#: editor/project_manager.cpp +msgid "There is already a folder in this path with the specified name." +msgstr "" + +#: editor/project_manager.cpp +msgid "It would be a good idea to name your project." +msgstr "" + +#: editor/project_manager.cpp +msgid "Invalid project path (changed anything?)." +msgstr "" + +#: editor/project_manager.cpp +msgid "" +"Couldn't load project.godot in project path (error %d). It may be missing or " +"corrupted." +msgstr "" + +#: editor/project_manager.cpp +msgid "Couldn't edit project.godot in project path." +msgstr "" + +#: editor/project_manager.cpp +msgid "Couldn't create project.godot in project path." +msgstr "" + +#: editor/project_manager.cpp +msgid "The following files failed extraction from package:" +msgstr "" + +#: editor/project_manager.cpp +msgid "Rename Project" +msgstr "" + +#: editor/project_manager.cpp +msgid "Import Existing Project" +msgstr "" + +#: editor/project_manager.cpp +msgid "Import & Edit" +msgstr "" + +#: editor/project_manager.cpp +msgid "Create New Project" +msgstr "" + +#: editor/project_manager.cpp +msgid "Create & Edit" +msgstr "" + +#: editor/project_manager.cpp +msgid "Install Project:" +msgstr "" + +#: editor/project_manager.cpp +msgid "Install & Edit" +msgstr "" + +#: editor/project_manager.cpp +msgid "Project Name:" +msgstr "" + +#: editor/project_manager.cpp +msgid "Project Path:" +msgstr "" + +#: editor/project_manager.cpp +msgid "Project Installation Path:" +msgstr "" + +#: editor/project_manager.cpp +msgid "Renderer:" +msgstr "" + +#: editor/project_manager.cpp +msgid "OpenGL ES 3.0" +msgstr "" + +#: editor/project_manager.cpp +msgid "" +"Higher visual quality\n" +"All features available\n" +"Incompatible with older hardware\n" +"Not recommended for web games" +msgstr "" + +#: editor/project_manager.cpp +msgid "OpenGL ES 2.0" +msgstr "" + +#: editor/project_manager.cpp +msgid "" +"Lower visual quality\n" +"Some features not available\n" +"Works on most hardware\n" +"Recommended for web games" +msgstr "" + +#: editor/project_manager.cpp +msgid "Renderer can be changed later, but scenes may need to be adjusted." +msgstr "" + +#: editor/project_manager.cpp +msgid "Unnamed Project" +msgstr "" + +#: editor/project_manager.cpp +msgid "Can't open project at '%s'." +msgstr "" + +#: editor/project_manager.cpp +msgid "Are you sure to open more than one project?" +msgstr "" + +#: editor/project_manager.cpp +msgid "" +"The following project settings file does not specify the version of Godot " +"through which it was created.\n" +"\n" +"%s\n" +"\n" +"If you proceed with opening it, it will be converted to Godot's current " +"configuration file format.\n" +"Warning: You won't be able to open the project with previous versions of the " +"engine anymore." +msgstr "" + +#: editor/project_manager.cpp +msgid "" +"The following project settings file was generated by an older engine " +"version, and needs to be converted for this version:\n" +"\n" +"%s\n" +"\n" +"Do you want to convert it?\n" +"Warning: You won't be able to open the project with previous versions of the " +"engine anymore." +msgstr "" + +#: editor/project_manager.cpp +msgid "" +"The project settings were created by a newer engine version, whose settings " +"are not compatible with this version." +msgstr "" + +#: editor/project_manager.cpp +msgid "" +"Can't run project: no main scene defined.\n" +"Please edit the project and set the main scene in the Project Settings under " +"the \"Application\" category." +msgstr "" + +#: editor/project_manager.cpp +msgid "" +"Can't run project: Assets need to be imported.\n" +"Please edit the project to trigger the initial import." +msgstr "" + +#: editor/project_manager.cpp +msgid "Are you sure to run %d projects at once?" +msgstr "" + +#: editor/project_manager.cpp +msgid "" +"Remove %d projects from the list?\n" +"The project folders' contents won't be modified." +msgstr "" + +#: editor/project_manager.cpp +msgid "" +"Remove this project from the list?\n" +"The project folder's contents won't be modified." +msgstr "" + +#: editor/project_manager.cpp +msgid "" +"Remove all missing projects from the list? (Folders contents will not be " +"modified)" +msgstr "" + +#: editor/project_manager.cpp +msgid "" +"Language changed.\n" +"The interface will update after restarting the editor or project manager." +msgstr "" + +#: editor/project_manager.cpp +msgid "" +"Are you sure to scan %s folders for existing Godot projects?\n" +"This could take a while." +msgstr "" + +#: editor/project_manager.cpp +msgid "Project Manager" +msgstr "" + +#: editor/project_manager.cpp +msgid "Project List" +msgstr "" + +#: editor/project_manager.cpp +msgid "Scan" +msgstr "" + +#: editor/project_manager.cpp +msgid "Select a Folder to Scan" +msgstr "" + +#: editor/project_manager.cpp +msgid "New Project" +msgstr "" + +#: editor/project_manager.cpp +msgid "Remove Missing" +msgstr "" + +#: editor/project_manager.cpp +msgid "Templates" +msgstr "" + +#: editor/project_manager.cpp +msgid "Exit" +msgstr "" + +#: editor/project_manager.cpp +msgid "Restart Now" +msgstr "" + +#: editor/project_manager.cpp +msgid "Can't run project" +msgstr "" + +#: editor/project_manager.cpp +msgid "" +"You currently don't have any projects.\n" +"Would you like to explore official example projects in the Asset Library?" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Key " +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Joy Button" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Joy Axis" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Mouse Button" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "" +"Invalid action name. it cannot be empty nor contain '/', ':', '=', '\\' or " +"'\"'" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "An action with the name '%s' already exists." +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Rename Input Action Event" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Change Action deadzone" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Add Input Action Event" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "All Devices" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Device" +msgstr "" + +#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp +msgid "Shift+" +msgstr "" + +#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp +msgid "Alt+" +msgstr "" + +#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp +msgid "Control+" +msgstr "" + +#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp +msgid "Press a Key..." +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Mouse Button Index:" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Left Button" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Right Button" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Middle Button" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Wheel Up Button" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Wheel Down Button" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Wheel Left Button" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Wheel Right Button" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "X Button 1" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "X Button 2" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Joypad Axis Index:" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Axis" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Joypad Button Index:" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Erase Input Action" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Erase Input Action Event" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Add Event" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Button" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Left Button." +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Right Button." +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Middle Button." +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Wheel Up." +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Wheel Down." +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Add Global Property" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Select a setting item first!" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "No property '%s' exists." +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Setting '%s' is internal, and it can't be deleted." +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Delete Item" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "" +"Invalid action name. It cannot be empty nor contain '/', ':', '=', '\\' or " +"'\"'." +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Add Input Action" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Error saving settings." +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Settings saved OK." +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Override for Feature" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Add Translation" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Remove Translation" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Add Remapped Path" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Resource Remap Add Remap" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Change Resource Remap Language" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Remove Resource Remap" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Remove Resource Remap Option" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Changed Locale Filter" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Changed Locale Filter Mode" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Project Settings (project.godot)" +msgstr "" + +#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp +msgid "General" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Override For..." +msgstr "" + +#: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp +msgid "The editor must be restarted for changes to take effect." +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Input Map" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Action:" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Action" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Deadzone" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Device:" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Index:" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Localization" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Translations" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Translations:" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Remaps" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Resources:" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Remaps by Locale:" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Locale" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Locales Filter" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Show All Locales" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Show Selected Locales Only" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Filter mode:" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "Locales:" +msgstr "" + +#: editor/project_settings_editor.cpp +msgid "AutoLoad" +msgstr "" + +#: editor/property_editor.cpp +msgid "Zero" +msgstr "" + +#: editor/property_editor.cpp +msgid "Easing In-Out" +msgstr "" + +#: editor/property_editor.cpp +msgid "Easing Out-In" +msgstr "" + +#: editor/property_editor.cpp +msgid "File..." +msgstr "" + +#: editor/property_editor.cpp +msgid "Dir..." +msgstr "" + +#: editor/property_editor.cpp +msgid "Assign" +msgstr "" + +#: editor/property_editor.cpp +msgid "Select Node" +msgstr "" + +#: editor/property_editor.cpp +msgid "Error loading file: Not a resource!" +msgstr "" + +#: editor/property_editor.cpp +msgid "Pick a Node" +msgstr "" + +#: editor/property_editor.cpp +msgid "Bit %d, val %d." +msgstr "" + +#: editor/property_selector.cpp +msgid "Select Property" +msgstr "" + +#: editor/property_selector.cpp +msgid "Select Virtual Method" +msgstr "" + +#: editor/property_selector.cpp +msgid "Select Method" +msgstr "" + +#: editor/pvrtc_compress.cpp +msgid "Could not execute PVRTC tool:" +msgstr "" + +#: editor/pvrtc_compress.cpp +msgid "Can't load back converted image using PVRTC tool:" +msgstr "" + +#: editor/rename_dialog.cpp editor/scene_tree_dock.cpp +msgid "Batch Rename" +msgstr "" + +#: editor/rename_dialog.cpp +msgid "Prefix" +msgstr "" + +#: editor/rename_dialog.cpp +msgid "Suffix" +msgstr "" + +#: editor/rename_dialog.cpp +msgid "Advanced Options" +msgstr "" + +#: editor/rename_dialog.cpp +msgid "Substitute" +msgstr "" + +#: editor/rename_dialog.cpp +msgid "Node name" +msgstr "" + +#: editor/rename_dialog.cpp +msgid "Node's parent name, if available" +msgstr "" + +#: editor/rename_dialog.cpp +msgid "Node type" +msgstr "" + +#: editor/rename_dialog.cpp +msgid "Current scene name" +msgstr "" + +#: editor/rename_dialog.cpp +msgid "Root node name" +msgstr "" + +#: editor/rename_dialog.cpp +msgid "" +"Sequential integer counter.\n" +"Compare counter options." +msgstr "" + +#: editor/rename_dialog.cpp +msgid "Per Level counter" +msgstr "" + +#: editor/rename_dialog.cpp +msgid "If set the counter restarts for each group of child nodes" +msgstr "" + +#: editor/rename_dialog.cpp +msgid "Initial value for the counter" +msgstr "" + +#: editor/rename_dialog.cpp +msgid "Step" +msgstr "" + +#: editor/rename_dialog.cpp +msgid "Amount by which counter is incremented for each node" +msgstr "" + +#: editor/rename_dialog.cpp +msgid "Padding" +msgstr "" + +#: editor/rename_dialog.cpp +msgid "" +"Minimum number of digits for the counter.\n" +"Missing digits are padded with leading zeros." +msgstr "" + +#: editor/rename_dialog.cpp +msgid "Regular Expressions" +msgstr "" + +#: editor/rename_dialog.cpp +msgid "Post-Process" +msgstr "" + +#: editor/rename_dialog.cpp +msgid "Keep" +msgstr "" + +#: editor/rename_dialog.cpp +msgid "CamelCase to under_scored" +msgstr "" + +#: editor/rename_dialog.cpp +msgid "under_scored to CamelCase" +msgstr "" + +#: editor/rename_dialog.cpp +msgid "Case" +msgstr "" + +#: editor/rename_dialog.cpp +msgid "To Lowercase" +msgstr "" + +#: editor/rename_dialog.cpp +msgid "To Uppercase" +msgstr "" + +#: editor/rename_dialog.cpp +msgid "Reset" +msgstr "" + +#: editor/rename_dialog.cpp +msgid "Error" +msgstr "" + +#: editor/reparent_dialog.cpp editor/scene_tree_dock.cpp +msgid "Reparent Node" +msgstr "" + +#: editor/reparent_dialog.cpp +msgid "Reparent Location (Select new Parent):" +msgstr "" + +#: editor/reparent_dialog.cpp +msgid "Keep Global Transform" +msgstr "" + +#: editor/reparent_dialog.cpp editor/scene_tree_dock.cpp +msgid "Reparent" +msgstr "" + +#: editor/run_settings_dialog.cpp +msgid "Run Mode:" +msgstr "" + +#: editor/run_settings_dialog.cpp +msgid "Current Scene" +msgstr "" + +#: editor/run_settings_dialog.cpp +msgid "Main Scene" +msgstr "" + +#: editor/run_settings_dialog.cpp +msgid "Main Scene Arguments:" +msgstr "" + +#: editor/run_settings_dialog.cpp +msgid "Scene Run Settings" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "No parent to instance the scenes at." +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Error loading scene from %s" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "" +"Cannot instance the scene '%s' because the current scene exists within one " +"of its nodes." +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Instance Scene(s)" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Instance Child Scene" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Clear Script" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "This operation can't be done on the tree root." +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Move Node In Parent" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Move Nodes In Parent" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Duplicate Node(s)" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Can't reparent nodes in inherited scenes, order of nodes can't change." +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Node must belong to the edited scene to become root." +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Instantiated scenes can't become root" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Make node as Root" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Delete Node(s)?" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Can not perform with the root node." +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "This operation can't be done on instanced scenes." +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Save New Scene As..." +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "" +"Disabling \"editable_instance\" will cause all properties of the node to be " +"reverted to their default." +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 "Make Local" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "New Scene Root" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Create Root Node:" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "2D Scene" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "3D Scene" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "User Interface" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Other Node" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Can't operate on nodes from a foreign scene!" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Can't operate on nodes the current scene inherits from!" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Attach Script" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Remove Node(s)" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "" +"Couldn't save new scene. Likely dependencies (instances) couldn't be " +"satisfied." +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Error saving scene." +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Error duplicating scene to save it." +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Sub-Resources" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Clear Inheritance" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Open Documentation" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Add Child Node" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Change Type" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Extend Script" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Make Scene Root" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Merge From Scene" +msgstr "" + +#: editor/scene_tree_dock.cpp editor/script_editor_debugger.cpp +msgid "Save Branch as Scene" +msgstr "" + +#: editor/scene_tree_dock.cpp editor/script_editor_debugger.cpp +msgid "Copy Node Path" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Delete (No Confirm)" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Add/Create a New Node" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "" +"Instance a scene file as a Node. Creates an inherited scene if no root node " +"exists." +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Attach a new or existing script for the selected node." +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Clear a script for the selected node." +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Remote" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Local" +msgstr "" + +#: editor/scene_tree_dock.cpp +msgid "Clear Inheritance? (No Undo!)" +msgstr "" + +#: editor/scene_tree_editor.cpp +msgid "Toggle Visible" +msgstr "" + +#: editor/scene_tree_editor.cpp +msgid "Unlock Node" +msgstr "" + +#: editor/scene_tree_editor.cpp +msgid "Button Group" +msgstr "" + +#: editor/scene_tree_editor.cpp +msgid "(Connecting From)" +msgstr "" + +#: editor/scene_tree_editor.cpp +msgid "Node configuration warning:" +msgstr "" + +#: editor/scene_tree_editor.cpp +msgid "" +"Node has connection(s) and group(s).\n" +"Click to show signals dock." +msgstr "" + +#: editor/scene_tree_editor.cpp +msgid "" +"Node has connections.\n" +"Click to show signals dock." +msgstr "" + +#: editor/scene_tree_editor.cpp +msgid "" +"Node is in group(s).\n" +"Click to show groups dock." +msgstr "" + +#: editor/scene_tree_editor.cpp +msgid "Open Script:" +msgstr "" + +#: editor/scene_tree_editor.cpp +msgid "" +"Node is locked.\n" +"Click to unlock it." +msgstr "" + +#: editor/scene_tree_editor.cpp +msgid "" +"Children are not selectable.\n" +"Click to make selectable." +msgstr "" + +#: editor/scene_tree_editor.cpp +msgid "Toggle Visibility" +msgstr "" + +#: editor/scene_tree_editor.cpp +msgid "" +"AnimationPlayer is pinned.\n" +"Click to unpin." +msgstr "" + +#: editor/scene_tree_editor.cpp +msgid "Invalid node name, the following characters are not allowed:" +msgstr "" + +#: editor/scene_tree_editor.cpp +msgid "Rename Node" +msgstr "" + +#: editor/scene_tree_editor.cpp +msgid "Scene Tree (Nodes):" +msgstr "" + +#: editor/scene_tree_editor.cpp +msgid "Node Configuration Warning!" +msgstr "" + +#: editor/scene_tree_editor.cpp +msgid "Select a Node" +msgstr "" + +#: editor/script_create_dialog.cpp +msgid "Path is empty." +msgstr "" + +#: editor/script_create_dialog.cpp +msgid "Filename is empty." +msgstr "" + +#: editor/script_create_dialog.cpp +msgid "Path is not local." +msgstr "" + +#: editor/script_create_dialog.cpp +#, fuzzy +msgid "Invalid base path." +msgstr "Nevalida tipara grando." + +#: editor/script_create_dialog.cpp +msgid "A directory with the same name exists." +msgstr "" + +#: editor/script_create_dialog.cpp +#, fuzzy +msgid "Invalid extension." +msgstr "Nevalida tipara grando." + +#: editor/script_create_dialog.cpp +msgid "Wrong extension chosen." +msgstr "" + +#: editor/script_create_dialog.cpp +msgid "Error loading template '%s'" +msgstr "" + +#: editor/script_create_dialog.cpp +msgid "Error - Could not create script in filesystem." +msgstr "" + +#: editor/script_create_dialog.cpp +msgid "Error loading script from %s" +msgstr "" + +#: editor/script_create_dialog.cpp +msgid "N/A" +msgstr "" + +#: editor/script_create_dialog.cpp +msgid "Open Script / Choose Location" +msgstr "" + +#: editor/script_create_dialog.cpp +msgid "Open Script" +msgstr "" + +#: editor/script_create_dialog.cpp +msgid "File exists, it will be reused." +msgstr "" + +#: editor/script_create_dialog.cpp +msgid "Invalid class name." +msgstr "" + +#: editor/script_create_dialog.cpp +msgid "Invalid inherited parent name or path." +msgstr "" + +#: editor/script_create_dialog.cpp +msgid "Script is valid." +msgstr "" + +#: editor/script_create_dialog.cpp +msgid "Allowed: a-z, A-Z, 0-9 and _" +msgstr "" + +#: editor/script_create_dialog.cpp +msgid "Built-in script (into scene file)." +msgstr "" + +#: editor/script_create_dialog.cpp +msgid "Will create a new script file." +msgstr "" + +#: editor/script_create_dialog.cpp +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 "" + +#: editor/script_create_dialog.cpp +msgid "Template" +msgstr "" + +#: editor/script_create_dialog.cpp +msgid "Built-in Script" +msgstr "" + +#: editor/script_create_dialog.cpp +msgid "Attach Node Script" +msgstr "" + +#: editor/script_editor_debugger.cpp +msgid "Remote " +msgstr "" + +#: editor/script_editor_debugger.cpp +msgid "Bytes:" +msgstr "" + +#: editor/script_editor_debugger.cpp +msgid "Stack Trace" +msgstr "" + +#: editor/script_editor_debugger.cpp +msgid "Pick one or more items from the list to display the graph." +msgstr "" + +#: editor/script_editor_debugger.cpp modules/mono/editor/mono_bottom_panel.cpp +msgid "Errors" +msgstr "" + +#: editor/script_editor_debugger.cpp +msgid "Child Process Connected" +msgstr "" + +#: editor/script_editor_debugger.cpp +msgid "Copy Error" +msgstr "" + +#: editor/script_editor_debugger.cpp +msgid "Inspect Previous Instance" +msgstr "" + +#: editor/script_editor_debugger.cpp +msgid "Inspect Next Instance" +msgstr "" + +#: editor/script_editor_debugger.cpp +msgid "Stack Frames" +msgstr "" + +#: editor/script_editor_debugger.cpp +msgid "Profiler" +msgstr "" + +#: editor/script_editor_debugger.cpp +msgid "Monitor" +msgstr "" + +#: editor/script_editor_debugger.cpp +msgid "Value" +msgstr "" + +#: editor/script_editor_debugger.cpp +msgid "Monitors" +msgstr "" + +#: editor/script_editor_debugger.cpp +msgid "List of Video Memory Usage by Resource:" +msgstr "" + +#: editor/script_editor_debugger.cpp +msgid "Total:" +msgstr "" + +#: editor/script_editor_debugger.cpp +msgid "Video Mem" +msgstr "" + +#: editor/script_editor_debugger.cpp +msgid "Resource Path" +msgstr "" + +#: editor/script_editor_debugger.cpp +msgid "Type" +msgstr "" + +#: editor/script_editor_debugger.cpp +msgid "Format" +msgstr "" + +#: editor/script_editor_debugger.cpp +msgid "Usage" +msgstr "" + +#: editor/script_editor_debugger.cpp +msgid "Misc" +msgstr "" + +#: editor/script_editor_debugger.cpp +msgid "Clicked Control:" +msgstr "" + +#: editor/script_editor_debugger.cpp +msgid "Clicked Control Type:" +msgstr "" + +#: editor/script_editor_debugger.cpp +msgid "Live Edit Root:" +msgstr "" + +#: editor/script_editor_debugger.cpp +msgid "Set From Tree" +msgstr "" + +#: editor/script_editor_debugger.cpp +msgid "Export measures as CSV" +msgstr "" + +#: editor/settings_config_dialog.cpp +msgid "Erase Shortcut" +msgstr "" + +#: editor/settings_config_dialog.cpp +msgid "Restore Shortcut" +msgstr "" + +#: editor/settings_config_dialog.cpp +msgid "Change Shortcut" +msgstr "" + +#: editor/settings_config_dialog.cpp +msgid "Shortcuts" +msgstr "" + +#: editor/settings_config_dialog.cpp +msgid "Binding" +msgstr "" + +#: editor/spatial_editor_gizmos.cpp +msgid "Change Light Radius" +msgstr "" + +#: editor/spatial_editor_gizmos.cpp +msgid "Change AudioStreamPlayer3D Emission Angle" +msgstr "" + +#: editor/spatial_editor_gizmos.cpp +msgid "Change Camera FOV" +msgstr "" + +#: editor/spatial_editor_gizmos.cpp +msgid "Change Camera Size" +msgstr "" + +#: editor/spatial_editor_gizmos.cpp +msgid "Change Notifier AABB" +msgstr "" + +#: editor/spatial_editor_gizmos.cpp +msgid "Change Particles AABB" +msgstr "" + +#: editor/spatial_editor_gizmos.cpp +msgid "Change Probe Extents" +msgstr "" + +#: editor/spatial_editor_gizmos.cpp modules/csg/csg_gizmos.cpp +msgid "Change Sphere Shape Radius" +msgstr "" + +#: editor/spatial_editor_gizmos.cpp modules/csg/csg_gizmos.cpp +msgid "Change Box Shape Extents" +msgstr "" + +#: editor/spatial_editor_gizmos.cpp +msgid "Change Capsule Shape Radius" +msgstr "" + +#: editor/spatial_editor_gizmos.cpp +msgid "Change Capsule Shape Height" +msgstr "" + +#: editor/spatial_editor_gizmos.cpp +msgid "Change Cylinder Shape Radius" +msgstr "" + +#: editor/spatial_editor_gizmos.cpp +msgid "Change Cylinder Shape Height" +msgstr "" + +#: editor/spatial_editor_gizmos.cpp +msgid "Change Ray Shape Length" +msgstr "" + +#: modules/csg/csg_gizmos.cpp +msgid "Change Cylinder Radius" +msgstr "" + +#: modules/csg/csg_gizmos.cpp +msgid "Change Cylinder Height" +msgstr "" + +#: modules/csg/csg_gizmos.cpp +msgid "Change Torus Inner Radius" +msgstr "" + +#: modules/csg/csg_gizmos.cpp +msgid "Change Torus Outer Radius" +msgstr "" + +#: modules/gdnative/gdnative_library_editor_plugin.cpp +msgid "Select the dynamic library for this entry" +msgstr "" + +#: modules/gdnative/gdnative_library_editor_plugin.cpp +msgid "Select dependencies of the library for this entry" +msgstr "" + +#: modules/gdnative/gdnative_library_editor_plugin.cpp +msgid "Remove current entry" +msgstr "" + +#: modules/gdnative/gdnative_library_editor_plugin.cpp +msgid "Double click to create a new entry" +msgstr "" + +#: modules/gdnative/gdnative_library_editor_plugin.cpp +msgid "Platform:" +msgstr "" + +#: modules/gdnative/gdnative_library_editor_plugin.cpp +msgid "Platform" +msgstr "" + +#: modules/gdnative/gdnative_library_editor_plugin.cpp +msgid "Dynamic Library" +msgstr "" + +#: modules/gdnative/gdnative_library_editor_plugin.cpp +msgid "Add an architecture entry" +msgstr "" + +#: modules/gdnative/gdnative_library_editor_plugin.cpp +msgid "GDNativeLibrary" +msgstr "" + +#: modules/gdnative/gdnative_library_singleton_editor.cpp +msgid "Enabled GDNative Singleton" +msgstr "" + +#: modules/gdnative/gdnative_library_singleton_editor.cpp +msgid "Disabled GDNative Singleton" +msgstr "" + +#: modules/gdnative/gdnative_library_singleton_editor.cpp +msgid "Library" +msgstr "" + +#: modules/gdnative/gdnative_library_singleton_editor.cpp +msgid "Status" +msgstr "" + +#: modules/gdnative/gdnative_library_singleton_editor.cpp +msgid "Libraries: " +msgstr "" + +#: modules/gdnative/register_types.cpp +msgid "GDNative" +msgstr "" + +#: modules/gdscript/gdscript_functions.cpp +msgid "Step argument is zero!" +msgstr "" + +#: modules/gdscript/gdscript_functions.cpp +msgid "Not a script with an instance" +msgstr "" + +#: modules/gdscript/gdscript_functions.cpp +msgid "Not based on a script" +msgstr "" + +#: modules/gdscript/gdscript_functions.cpp +msgid "Not based on a resource file" +msgstr "" + +#: modules/gdscript/gdscript_functions.cpp +msgid "Invalid instance dictionary format (missing @path)" +msgstr "" + +#: modules/gdscript/gdscript_functions.cpp +msgid "Invalid instance dictionary format (can't load script at @path)" +msgstr "" + +#: modules/gdscript/gdscript_functions.cpp +msgid "Invalid instance dictionary format (invalid script at @path)" +msgstr "" + +#: modules/gdscript/gdscript_functions.cpp +msgid "Invalid instance dictionary (invalid subclasses)" +msgstr "" + +#: modules/gdscript/gdscript_functions.cpp +msgid "Object can't provide a length." +msgstr "" + +#: modules/gridmap/grid_map_editor_plugin.cpp +msgid "Next Plane" +msgstr "" + +#: modules/gridmap/grid_map_editor_plugin.cpp +msgid "Previous Plane" +msgstr "" + +#: modules/gridmap/grid_map_editor_plugin.cpp +msgid "Plane:" +msgstr "" + +#: modules/gridmap/grid_map_editor_plugin.cpp +msgid "Next Floor" +msgstr "" + +#: modules/gridmap/grid_map_editor_plugin.cpp +msgid "Previous Floor" +msgstr "" + +#: modules/gridmap/grid_map_editor_plugin.cpp +msgid "Floor:" +msgstr "" + +#: modules/gridmap/grid_map_editor_plugin.cpp +msgid "GridMap Delete Selection" +msgstr "" + +#: modules/gridmap/grid_map_editor_plugin.cpp +msgid "GridMap Fill Selection" +msgstr "" + +#: modules/gridmap/grid_map_editor_plugin.cpp +msgid "GridMap Paste Selection" +msgstr "" + +#: modules/gridmap/grid_map_editor_plugin.cpp +msgid "GridMap Paint" +msgstr "" + +#: modules/gridmap/grid_map_editor_plugin.cpp +msgid "Grid Map" +msgstr "" + +#: modules/gridmap/grid_map_editor_plugin.cpp +msgid "Snap View" +msgstr "" + +#: modules/gridmap/grid_map_editor_plugin.cpp +msgid "Clip Disabled" +msgstr "" + +#: modules/gridmap/grid_map_editor_plugin.cpp +msgid "Clip Above" +msgstr "" + +#: modules/gridmap/grid_map_editor_plugin.cpp +msgid "Clip Below" +msgstr "" + +#: modules/gridmap/grid_map_editor_plugin.cpp +msgid "Edit X Axis" +msgstr "" + +#: modules/gridmap/grid_map_editor_plugin.cpp +msgid "Edit Y Axis" +msgstr "" + +#: modules/gridmap/grid_map_editor_plugin.cpp +msgid "Edit Z Axis" +msgstr "" + +#: modules/gridmap/grid_map_editor_plugin.cpp +msgid "Cursor Rotate X" +msgstr "" + +#: modules/gridmap/grid_map_editor_plugin.cpp +msgid "Cursor Rotate Y" +msgstr "" + +#: modules/gridmap/grid_map_editor_plugin.cpp +msgid "Cursor Rotate Z" +msgstr "" + +#: modules/gridmap/grid_map_editor_plugin.cpp +msgid "Cursor Back Rotate X" +msgstr "" + +#: modules/gridmap/grid_map_editor_plugin.cpp +msgid "Cursor Back Rotate Y" +msgstr "" + +#: modules/gridmap/grid_map_editor_plugin.cpp +msgid "Cursor Back Rotate Z" +msgstr "" + +#: modules/gridmap/grid_map_editor_plugin.cpp +msgid "Cursor Clear Rotation" +msgstr "" + +#: modules/gridmap/grid_map_editor_plugin.cpp +msgid "Clear Selection" +msgstr "" + +#: modules/gridmap/grid_map_editor_plugin.cpp +msgid "Fill Selection" +msgstr "" + +#: modules/gridmap/grid_map_editor_plugin.cpp +msgid "GridMap Settings" +msgstr "" + +#: modules/gridmap/grid_map_editor_plugin.cpp +msgid "Pick Distance:" +msgstr "" + +#: modules/mono/csharp_script.cpp +msgid "Class name can't be a reserved keyword" +msgstr "" + +#: modules/mono/editor/godotsharp_editor.cpp +msgid "Generating solution..." +msgstr "" + +#: modules/mono/editor/godotsharp_editor.cpp +msgid "Generating C# project..." +msgstr "" + +#: modules/mono/editor/godotsharp_editor.cpp +msgid "Failed to create solution." +msgstr "" + +#: modules/mono/editor/godotsharp_editor.cpp +msgid "Failed to save solution." +msgstr "" + +#: modules/mono/editor/godotsharp_editor.cpp +msgid "Done" +msgstr "" + +#: modules/mono/editor/godotsharp_editor.cpp +msgid "Failed to create C# project." +msgstr "" + +#: modules/mono/editor/godotsharp_editor.cpp +msgid "Mono" +msgstr "" + +#: modules/mono/editor/godotsharp_editor.cpp +msgid "About C# support" +msgstr "" + +#: modules/mono/editor/godotsharp_editor.cpp +msgid "Create C# solution" +msgstr "" + +#: modules/mono/editor/mono_bottom_panel.cpp +msgid "Builds" +msgstr "" + +#: modules/mono/editor/mono_bottom_panel.cpp +msgid "Build Project" +msgstr "" + +#: modules/mono/editor/mono_bottom_panel.cpp +msgid "View log" +msgstr "" + +#: modules/mono/mono_gd/gd_mono_utils.cpp +msgid "End of inner exception stack trace" +msgstr "" + +#: modules/recast/navigation_mesh_editor_plugin.cpp +msgid "Bake NavMesh" +msgstr "" + +#: modules/recast/navigation_mesh_editor_plugin.cpp +msgid "Clear the navigation mesh." +msgstr "" + +#: modules/recast/navigation_mesh_generator.cpp +msgid "Setting up Configuration..." +msgstr "" + +#: modules/recast/navigation_mesh_generator.cpp +msgid "Calculating grid size..." +msgstr "" + +#: modules/recast/navigation_mesh_generator.cpp +msgid "Creating heightfield..." +msgstr "" + +#: modules/recast/navigation_mesh_generator.cpp +msgid "Marking walkable triangles..." +msgstr "" + +#: modules/recast/navigation_mesh_generator.cpp +msgid "Constructing compact heightfield..." +msgstr "" + +#: modules/recast/navigation_mesh_generator.cpp +msgid "Eroding walkable area..." +msgstr "" + +#: modules/recast/navigation_mesh_generator.cpp +msgid "Partitioning..." +msgstr "" + +#: modules/recast/navigation_mesh_generator.cpp +msgid "Creating contours..." +msgstr "" + +#: modules/recast/navigation_mesh_generator.cpp +msgid "Creating polymesh..." +msgstr "" + +#: modules/recast/navigation_mesh_generator.cpp +msgid "Converting to native navigation mesh..." +msgstr "" + +#: modules/recast/navigation_mesh_generator.cpp +msgid "Navigation Mesh Generator Setup:" +msgstr "" + +#: modules/recast/navigation_mesh_generator.cpp +msgid "Parsing Geometry..." +msgstr "" + +#: modules/recast/navigation_mesh_generator.cpp +msgid "Done!" +msgstr "" + +#: modules/visual_script/visual_script.cpp +msgid "" +"A node yielded without working memory, please read the docs on how to yield " +"properly!" +msgstr "" + +#: modules/visual_script/visual_script.cpp +msgid "" +"Node yielded, but did not return a function state in the first working " +"memory." +msgstr "" + +#: modules/visual_script/visual_script.cpp +msgid "" +"Return value must be assigned to first element of node working memory! Fix " +"your node please." +msgstr "" + +#: modules/visual_script/visual_script.cpp +msgid "Node returned an invalid sequence output: " +msgstr "" + +#: modules/visual_script/visual_script.cpp +msgid "Found sequence bit but not the node in the stack, report bug!" +msgstr "" + +#: modules/visual_script/visual_script.cpp +msgid "Stack overflow with stack depth: " +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Change Signal Arguments" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Change Argument Type" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Change Argument name" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Set Variable Default Value" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Set Variable Type" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Variables:" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Name is not a valid identifier:" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Name already in use by another func/var/signal:" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Rename Function" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Rename Variable" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Rename Signal" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Add Function" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Add Variable" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Add Signal" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Change Expression" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Remove VisualScript Nodes" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Duplicate VisualScript Nodes" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Hold %s to drop a Getter. Hold Shift to drop a generic signature." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Hold Ctrl to drop a Getter. Hold Shift to drop a generic signature." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Hold %s to drop a simple reference to the node." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Hold Ctrl to drop a simple reference to the node." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Hold %s to drop a Variable Setter." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Hold Ctrl to drop a Variable Setter." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Add Preload Node" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Add Node(s) From Tree" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Add Getter Property" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Add Setter Property" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Change Base Type" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Move Node(s)" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Remove VisualScript Node" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Connect Nodes" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Connect Node Data" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Connect Node Sequence" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Script already has function '%s'" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Change Input Value" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Resize Comment" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Can't copy the function node." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Clipboard is empty!" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Paste VisualScript Nodes" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Remove Function" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Remove Variable" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Editing Variable:" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Remove Signal" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Editing Signal:" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Base Type:" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Members:" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Available Nodes:" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Select or create a function to edit its graph." +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Delete Selected" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Find Node Type" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Copy Nodes" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Cut Nodes" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Paste Nodes" +msgstr "" + +#: modules/visual_script/visual_script_editor.cpp +msgid "Edit Member" +msgstr "" + +#: modules/visual_script/visual_script_flow_control.cpp +msgid "Input type not iterable: " +msgstr "" + +#: modules/visual_script/visual_script_flow_control.cpp +msgid "Iterator became invalid" +msgstr "" + +#: modules/visual_script/visual_script_flow_control.cpp +msgid "Iterator became invalid: " +msgstr "" + +#: modules/visual_script/visual_script_func_nodes.cpp +msgid "Invalid index property name." +msgstr "" + +#: modules/visual_script/visual_script_func_nodes.cpp +msgid "Base object is not a Node!" +msgstr "" + +#: modules/visual_script/visual_script_func_nodes.cpp +msgid "Path does not lead Node!" +msgstr "" + +#: modules/visual_script/visual_script_func_nodes.cpp +msgid "Invalid index property name '%s' in node %s." +msgstr "" + +#: modules/visual_script/visual_script_nodes.cpp +msgid ": Invalid argument of type: " +msgstr "" + +#: modules/visual_script/visual_script_nodes.cpp +msgid ": Invalid arguments: " +msgstr "" + +#: modules/visual_script/visual_script_nodes.cpp +msgid "VariableGet not found in script: " +msgstr "" + +#: modules/visual_script/visual_script_nodes.cpp +msgid "VariableSet not found in script: " +msgstr "" + +#: modules/visual_script/visual_script_nodes.cpp +msgid "Custom node has no _step() method, can't process graph." +msgstr "" + +#: modules/visual_script/visual_script_nodes.cpp +msgid "" +"Invalid return value from _step(), must be integer (seq out), or string " +"(error)." +msgstr "" + +#: modules/visual_script/visual_script_property_selector.cpp +msgid "Search VisualScript" +msgstr "" + +#: modules/visual_script/visual_script_property_selector.cpp +msgid "Get %s" +msgstr "" + +#: modules/visual_script/visual_script_property_selector.cpp +msgid "Set %s" +msgstr "" + +#: platform/android/export/export.cpp +msgid "Package name is missing." +msgstr "" + +#: platform/android/export/export.cpp +msgid "Package segments must be of non-zero length." +msgstr "" + +#: platform/android/export/export.cpp +msgid "The character '%s' is not allowed in Android application package names." +msgstr "" + +#: platform/android/export/export.cpp +msgid "A digit cannot be the first character in a package segment." +msgstr "" + +#: platform/android/export/export.cpp +msgid "The character '%s' cannot be the first character in a package segment." +msgstr "" + +#: platform/android/export/export.cpp +msgid "The package must have at least one '.' separator." +msgstr "" + +#: platform/android/export/export.cpp +msgid "ADB executable not configured in the Editor Settings." +msgstr "" + +#: platform/android/export/export.cpp +msgid "OpenJDK jarsigner not configured in the Editor Settings." +msgstr "" + +#: platform/android/export/export.cpp +msgid "Debug keystore not configured in the Editor Settings nor in the preset." +msgstr "" + +#: platform/android/export/export.cpp +msgid "Custom build requires a valid Android SDK path in Editor Settings." +msgstr "" + +#: platform/android/export/export.cpp +msgid "Invalid Android SDK path for custom build in Editor Settings." +msgstr "" + +#: platform/android/export/export.cpp +msgid "" +"Android project is not installed for compiling. Install from Editor menu." +msgstr "" + +#: platform/android/export/export.cpp +msgid "Invalid public key for APK expansion." +msgstr "" + +#: platform/android/export/export.cpp +msgid "Invalid package name:" +msgstr "" + +#: platform/android/export/export.cpp +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 "" +"Android build version mismatch:\n" +" Template installed: %s\n" +" Godot Version: %s\n" +"Please reinstall Android build template from 'Project' menu." +msgstr "" + +#: platform/android/export/export.cpp +msgid "Building Android Project (gradle)" +msgstr "" + +#: 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 "" + +#: platform/android/export/export.cpp +msgid "No build apk generated at: " +msgstr "" + +#: platform/iphone/export/export.cpp +msgid "Identifier is missing." +msgstr "" + +#: platform/iphone/export/export.cpp +msgid "Identifier segments must be of non-zero length." +msgstr "" + +#: platform/iphone/export/export.cpp +msgid "The character '%s' is not allowed in Identifier." +msgstr "" + +#: platform/iphone/export/export.cpp +msgid "A digit cannot be the first character in a Identifier segment." +msgstr "" + +#: platform/iphone/export/export.cpp +msgid "" +"The character '%s' cannot be the first character in a Identifier segment." +msgstr "" + +#: platform/iphone/export/export.cpp +msgid "The Identifier must have at least one '.' separator." +msgstr "" + +#: platform/iphone/export/export.cpp +msgid "App Store Team ID not specified - cannot configure the project." +msgstr "" + +#: platform/iphone/export/export.cpp +msgid "Invalid Identifier:" +msgstr "" + +#: platform/iphone/export/export.cpp +msgid "Required icon is not specified in the preset." +msgstr "" + +#: platform/javascript/export/export.cpp +msgid "Run in Browser" +msgstr "" + +#: platform/javascript/export/export.cpp +msgid "Run exported HTML in the system's default browser." +msgstr "" + +#: platform/javascript/export/export.cpp +msgid "Could not write file:" +msgstr "" + +#: platform/javascript/export/export.cpp +msgid "Could not open template for export:" +msgstr "" + +#: platform/javascript/export/export.cpp +msgid "Invalid export template:" +msgstr "" + +#: platform/javascript/export/export.cpp +msgid "Could not read custom HTML shell:" +msgstr "" + +#: platform/javascript/export/export.cpp +msgid "Could not read boot splash image file:" +msgstr "" + +#: platform/javascript/export/export.cpp +msgid "Using default boot splash image." +msgstr "" + +#: platform/uwp/export/export.cpp +msgid "Invalid package unique name." +msgstr "" + +#: platform/uwp/export/export.cpp +msgid "Invalid product GUID." +msgstr "" + +#: platform/uwp/export/export.cpp +msgid "Invalid publisher GUID." +msgstr "" + +#: platform/uwp/export/export.cpp +msgid "Invalid background color." +msgstr "" + +#: platform/uwp/export/export.cpp +msgid "Invalid Store Logo image dimensions (should be 50x50)." +msgstr "" + +#: platform/uwp/export/export.cpp +msgid "Invalid square 44x44 logo image dimensions (should be 44x44)." +msgstr "" + +#: platform/uwp/export/export.cpp +msgid "Invalid square 71x71 logo image dimensions (should be 71x71)." +msgstr "" + +#: platform/uwp/export/export.cpp +msgid "Invalid square 150x150 logo image dimensions (should be 150x150)." +msgstr "" + +#: platform/uwp/export/export.cpp +msgid "Invalid square 310x310 logo image dimensions (should be 310x310)." +msgstr "" + +#: platform/uwp/export/export.cpp +msgid "Invalid wide 310x150 logo image dimensions (should be 310x150)." +msgstr "" + +#: platform/uwp/export/export.cpp +msgid "Invalid splash screen image dimensions (should be 620x300)." +msgstr "" + +#: scene/2d/animated_sprite.cpp +msgid "" +"A SpriteFrames resource must be created or set in the 'Frames' property in " +"order for AnimatedSprite to display frames." +msgstr "" + +#: scene/2d/canvas_modulate.cpp +msgid "" +"Only one visible CanvasModulate is allowed per scene (or set of instanced " +"scenes). The first created one will work, while the rest will be ignored." +msgstr "" + +#: scene/2d/collision_object_2d.cpp +msgid "" +"This node has no shape, so it can't collide or interact with other objects.\n" +"Consider adding a CollisionShape2D or CollisionPolygon2D as a child to " +"define its shape." +msgstr "" + +#: scene/2d/collision_polygon_2d.cpp +msgid "" +"CollisionPolygon2D only serves to provide a collision shape to a " +"CollisionObject2D derived node. Please only use it as a child of Area2D, " +"StaticBody2D, RigidBody2D, KinematicBody2D, etc. to give them a shape." +msgstr "" + +#: scene/2d/collision_polygon_2d.cpp +msgid "An empty CollisionPolygon2D has no effect on collision." +msgstr "" + +#: scene/2d/collision_shape_2d.cpp +msgid "" +"CollisionShape2D only serves to provide a collision shape to a " +"CollisionObject2D derived node. Please only use it as a child of Area2D, " +"StaticBody2D, RigidBody2D, KinematicBody2D, etc. to give them a shape." +msgstr "" + +#: scene/2d/collision_shape_2d.cpp +msgid "" +"A shape must be provided for CollisionShape2D to function. Please create a " +"shape resource for it!" +msgstr "" + +#: scene/2d/cpu_particles_2d.cpp +msgid "" +"CPUParticles2D animation requires the usage of a CanvasItemMaterial with " +"\"Particles Animation\" enabled." +msgstr "" + +#: scene/2d/light_2d.cpp +msgid "" +"A texture with the shape of the light must be supplied to the 'texture' " +"property." +msgstr "" + +#: scene/2d/light_occluder_2d.cpp +msgid "" +"An occluder polygon must be set (or drawn) for this occluder to take effect." +msgstr "" + +#: scene/2d/light_occluder_2d.cpp +msgid "The occluder polygon for this occluder is empty. Please draw a polygon!" +msgstr "" + +#: scene/2d/navigation_polygon.cpp +msgid "" +"A NavigationPolygon resource must be set or created for this node to work. " +"Please set a property or draw a polygon." +msgstr "" + +#: scene/2d/navigation_polygon.cpp +msgid "" +"NavigationPolygonInstance must be a child or grandchild to a Navigation2D " +"node. It only provides navigation data." +msgstr "" + +#: scene/2d/parallax_layer.cpp +msgid "" +"ParallaxLayer node only works when set as child of a ParallaxBackground node." +msgstr "" + +#: scene/2d/particles_2d.cpp +msgid "" +"GPU-based particles are not supported by the GLES2 video driver.\n" +"Use the CPUParticles2D node instead. You can use the \"Convert to " +"CPUParticles\" option for this purpose." +msgstr "" + +#: scene/2d/particles_2d.cpp scene/3d/particles.cpp +msgid "" +"A material to process the particles is not assigned, so no behavior is " +"imprinted." +msgstr "" + +#: scene/2d/particles_2d.cpp +msgid "" +"Particles2D animation requires the usage of a CanvasItemMaterial with " +"\"Particles Animation\" enabled." +msgstr "" + +#: scene/2d/path_2d.cpp +msgid "PathFollow2D only works when set as a child of a Path2D node." +msgstr "" + +#: scene/2d/physics_body_2d.cpp +msgid "" +"Size changes to RigidBody2D (in character or rigid modes) will be overridden " +"by the physics engine when running.\n" +"Change the size in children collision shapes instead." +msgstr "" + +#: scene/2d/remote_transform_2d.cpp +msgid "Path property must point to a valid Node2D node to work." +msgstr "" + +#: scene/2d/skeleton_2d.cpp +msgid "This Bone2D chain should end at a Skeleton2D node." +msgstr "" + +#: scene/2d/skeleton_2d.cpp +msgid "A Bone2D only works with a Skeleton2D or another Bone2D as parent node." +msgstr "" + +#: scene/2d/skeleton_2d.cpp +msgid "" +"This bone lacks a proper REST pose. Go to the Skeleton2D node and set one." +msgstr "" + +#: scene/2d/visibility_notifier_2d.cpp +msgid "" +"VisibilityEnable2D works best when used with the edited scene root directly " +"as parent." +msgstr "" + +#: scene/3d/arvr_nodes.cpp +msgid "ARVRCamera must have an ARVROrigin node as its parent" +msgstr "" + +#: scene/3d/arvr_nodes.cpp +msgid "ARVRController must have an ARVROrigin node as its parent." +msgstr "" + +#: scene/3d/arvr_nodes.cpp +msgid "" +"The controller ID must not be 0 or this controller won't be bound to an " +"actual controller." +msgstr "" + +#: scene/3d/arvr_nodes.cpp +msgid "ARVRAnchor must have an ARVROrigin node as its parent." +msgstr "" + +#: scene/3d/arvr_nodes.cpp +msgid "" +"The anchor ID must not be 0 or this anchor won't be bound to an actual " +"anchor." +msgstr "" + +#: scene/3d/arvr_nodes.cpp +msgid "ARVROrigin requires an ARVRCamera child node." +msgstr "" + +#: scene/3d/baked_lightmap.cpp +msgid "%d%%" +msgstr "" + +#: scene/3d/baked_lightmap.cpp +msgid "(Time Left: %d:%02d s)" +msgstr "" + +#: scene/3d/baked_lightmap.cpp +msgid "Plotting Meshes: " +msgstr "" + +#: scene/3d/baked_lightmap.cpp +msgid "Plotting Lights:" +msgstr "" + +#: scene/3d/baked_lightmap.cpp scene/3d/gi_probe.cpp +msgid "Finishing Plot" +msgstr "" + +#: scene/3d/baked_lightmap.cpp +msgid "Lighting Meshes: " +msgstr "" + +#: scene/3d/collision_object.cpp +msgid "" +"This node has no shape, so it can't collide or interact with other objects.\n" +"Consider adding a CollisionShape or CollisionPolygon as a child to define " +"its shape." +msgstr "" + +#: scene/3d/collision_polygon.cpp +msgid "" +"CollisionPolygon only serves to provide a collision shape to a " +"CollisionObject derived node. Please only use it as a child of Area, " +"StaticBody, RigidBody, KinematicBody, etc. to give them a shape." +msgstr "" + +#: scene/3d/collision_polygon.cpp +msgid "An empty CollisionPolygon has no effect on collision." +msgstr "" + +#: scene/3d/collision_shape.cpp +msgid "" +"CollisionShape only serves to provide a collision shape to a CollisionObject " +"derived node. Please only use it as a child of Area, StaticBody, RigidBody, " +"KinematicBody, etc. to give them a shape." +msgstr "" + +#: scene/3d/collision_shape.cpp +msgid "" +"A shape must be provided for CollisionShape to function. Please create a " +"shape resource for it!" +msgstr "" + +#: scene/3d/collision_shape.cpp +msgid "" +"Plane shapes don't work well and will be removed in future versions. Please " +"don't use them." +msgstr "" + +#: scene/3d/cpu_particles.cpp +msgid "Nothing is visible because no mesh has been assigned." +msgstr "" + +#: scene/3d/cpu_particles.cpp +msgid "" +"CPUParticles animation requires the usage of a SpatialMaterial whose " +"Billboard Mode is set to \"Particle Billboard\"." +msgstr "" + +#: scene/3d/gi_probe.cpp +msgid "Plotting Meshes" +msgstr "" + +#: scene/3d/gi_probe.cpp +msgid "" +"GIProbes are not supported by the GLES2 video driver.\n" +"Use a BakedLightmap instead." +msgstr "" + +#: scene/3d/navigation_mesh.cpp +msgid "A NavigationMesh resource must be set or created for this node to work." +msgstr "" + +#: scene/3d/navigation_mesh.cpp +msgid "" +"NavigationMeshInstance must be a child or grandchild to a Navigation node. " +"It only provides navigation data." +msgstr "" + +#: scene/3d/particles.cpp +msgid "" +"GPU-based particles are not supported by the GLES2 video driver.\n" +"Use the CPUParticles node instead. You can use the \"Convert to CPUParticles" +"\" option for this purpose." +msgstr "" + +#: scene/3d/particles.cpp +msgid "" +"Nothing is visible because meshes have not been assigned to draw passes." +msgstr "" + +#: scene/3d/particles.cpp +msgid "" +"Particles animation requires the usage of a SpatialMaterial whose Billboard " +"Mode is set to \"Particle Billboard\"." +msgstr "" + +#: scene/3d/path.cpp +msgid "PathFollow only works when set as a child of a Path node." +msgstr "" + +#: scene/3d/path.cpp +msgid "" +"PathFollow ROTATION_ORIENTED requires \"Up Vector\" enabled in its parent " +"Path's Curve resource." +msgstr "" + +#: scene/3d/physics_body.cpp +msgid "" +"Size changes to RigidBody (in character or rigid modes) will be overridden " +"by the physics engine when running.\n" +"Change the size in children collision shapes instead." +msgstr "" + +#: scene/3d/remote_transform.cpp +msgid "Path property must point to a valid Spatial node to work." +msgstr "" + +#: scene/3d/soft_body.cpp +msgid "This body will be ignored until you set a mesh." +msgstr "" + +#: scene/3d/soft_body.cpp +msgid "" +"Size changes to SoftBody will be overridden by the physics engine when " +"running.\n" +"Change the size in children collision shapes instead." +msgstr "" + +#: scene/3d/sprite_3d.cpp +msgid "" +"A SpriteFrames resource must be created or set in the 'Frames' property in " +"order for AnimatedSprite3D to display frames." +msgstr "" + +#: scene/3d/vehicle_body.cpp +msgid "" +"VehicleWheel serves to provide a wheel system to a VehicleBody. Please use " +"it as a child of a VehicleBody." +msgstr "" + +#: scene/3d/world_environment.cpp +msgid "WorldEnvironment needs an Environment resource." +msgstr "" + +#: scene/3d/world_environment.cpp +msgid "" +"Only one WorldEnvironment is allowed per scene (or set of instanced scenes)." +msgstr "" + +#: scene/3d/world_environment.cpp +msgid "" +"This WorldEnvironment is ignored. Either add a Camera (for 3D scenes) or set " +"this environment's Background Mode to Canvas (for 2D scenes)." +msgstr "" + +#: scene/animation/animation_blend_tree.cpp +msgid "On BlendTree node '%s', animation not found: '%s'" +msgstr "" + +#: scene/animation/animation_blend_tree.cpp +msgid "Animation not found: '%s'" +msgstr "" + +#: scene/animation/animation_tree.cpp +msgid "In node '%s', invalid animation: '%s'." +msgstr "" + +#: scene/animation/animation_tree.cpp +msgid "Invalid animation: '%s'." +msgstr "" + +#: scene/animation/animation_tree.cpp +msgid "Nothing connected to input '%s' of node '%s'." +msgstr "" + +#: scene/animation/animation_tree.cpp +msgid "A root AnimationNode for the graph is not set." +msgstr "" + +#: scene/animation/animation_tree.cpp +msgid "Path to an AnimationPlayer node containing animations is not set." +msgstr "" + +#: scene/animation/animation_tree.cpp +msgid "Path set for AnimationPlayer does not lead to an AnimationPlayer node." +msgstr "" + +#: scene/animation/animation_tree.cpp +msgid "AnimationPlayer root is not a valid node." +msgstr "" + +#: scene/animation/animation_tree_player.cpp +msgid "This node has been deprecated. Use AnimationTree instead." +msgstr "" + +#: scene/gui/color_picker.cpp +msgid "Pick a color from the screen." +msgstr "" + +#: scene/gui/color_picker.cpp +msgid "Raw Mode" +msgstr "" + +#: scene/gui/color_picker.cpp +msgid "Switch between hexadecimal and code values." +msgstr "" + +#: scene/gui/color_picker.cpp +msgid "Add current color as a preset." +msgstr "" + +#: scene/gui/container.cpp +msgid "" +"Container by itself serves no purpose unless a script configures it's " +"children placement behavior.\n" +"If you don't intend to add a script, then please use a plain 'Control' node " +"instead." +msgstr "" + +#: scene/gui/dialogs.cpp +msgid "Alert!" +msgstr "" + +#: scene/gui/dialogs.cpp +msgid "Please Confirm..." +msgstr "" + +#: scene/gui/popup.cpp +msgid "" +"Popups will hide by default unless you call popup() or any of the popup*() " +"functions. Making them visible for editing is fine though, but they will " +"hide upon running." +msgstr "" + +#: scene/gui/range.cpp +msgid "If exp_edit is true min_value must be > 0." +msgstr "" + +#: scene/gui/scroll_container.cpp +msgid "" +"ScrollContainer is intended to work with a single child control.\n" +"Use a container as child (VBox,HBox,etc), or a Control and set the custom " +"minimum size manually." +msgstr "" + +#: scene/gui/tree.cpp +msgid "(Other)" +msgstr "(Alia)" + +#: scene/main/scene_tree.cpp +msgid "" +"Default Environment as specified in Project Settings (Rendering -> " +"Environment -> Default Environment) could not be loaded." +msgstr "" + +#: scene/main/viewport.cpp +msgid "" +"This viewport is not set as render target. If you intend for it to display " +"its contents directly to the screen, make it a child of a Control so it can " +"obtain a size. Otherwise, make it a RenderTarget and assign its internal " +"texture to some node for display." +msgstr "" + +#: scene/resources/dynamic_font.cpp +msgid "Error initializing FreeType." +msgstr "" + +#: scene/resources/dynamic_font.cpp +msgid "Unknown font format." +msgstr "Nekonata tipara formo." + +#: scene/resources/dynamic_font.cpp +msgid "Error loading font." +msgstr "Eraro dum Åargante tiparon." + +#: scene/resources/dynamic_font.cpp +msgid "Invalid font size." +msgstr "Nevalida tipara grando." + +#: scene/resources/visual_shader.cpp +msgid "Input" +msgstr "Enigo" + +#: scene/resources/visual_shader_nodes.cpp +msgid "Invalid source for shader." +msgstr "Nevalida fonto por ombrigilo." + +#: servers/visual/shader_language.cpp +msgid "Assignment to function." +msgstr "" + +#: servers/visual/shader_language.cpp +msgid "Assignment to uniform." +msgstr "" + +#: servers/visual/shader_language.cpp +msgid "Varyings can only be assigned in vertex function." +msgstr "" + +#: servers/visual/shader_language.cpp +msgid "Constants cannot be modified." +msgstr "" diff --git a/editor/translations/es.po b/editor/translations/es.po index f66b06cccd..b42801bf98 100644 --- a/editor/translations/es.po +++ b/editor/translations/es.po @@ -38,12 +38,14 @@ # emma peel <emma.peel@riseup.net>, 2018. # Vicente Juárez <vijuarez@uc.cl>, 2019. # juan david julio <illus.kun@gmail.com>, 2019. +# Patrick Zoch Alves <patrickzochalves@gmail.com>, 2019. +# roger <616steam@gmail.com>, 2019. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2019-04-19 16:33+0000\n" -"Last-Translator: eon-s <emanuel.segretin@gmail.com>\n" +"PO-Revision-Date: 2019-06-16 19:42+0000\n" +"Last-Translator: roger <616steam@gmail.com>\n" "Language-Team: Spanish <https://hosted.weblate.org/projects/godot-engine/" "godot/es/>\n" "Language: es\n" @@ -51,7 +53,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.6-dev\n" +"X-Generator: Weblate 3.7-dev\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -107,6 +109,15 @@ msgstr "Balanceado" msgid "Mirror" msgstr "Espejo" +#: editor/animation_bezier_editor.cpp editor/editor_profiler.cpp +msgid "Time:" +msgstr "Tiempo:" + +#: editor/animation_bezier_editor.cpp +#, fuzzy +msgid "Value:" +msgstr "Valor" + #: editor/animation_bezier_editor.cpp msgid "Insert Key Here" msgstr "Insertar Clave AquÃ" @@ -189,12 +200,16 @@ msgid "Animation Playback Track" msgstr "Pista de Reproducción de Animación" #: editor/animation_track_editor.cpp -msgid "Add Track" -msgstr "Agregar Pista" +msgid "Animation length (frames)" +msgstr "Duración de la animación (frames)" + +#: editor/animation_track_editor.cpp +msgid "Animation length (seconds)" +msgstr "Duración de la animación (segundos)" #: editor/animation_track_editor.cpp -msgid "Animation Length Time (seconds)" -msgstr "Tiempo de Duración de la Animación (segundos)" +msgid "Add Track" +msgstr "Agregar Pista" #: editor/animation_track_editor.cpp msgid "Animation Looping" @@ -223,7 +238,7 @@ msgstr "Act./Desact. esta pista." #: editor/animation_track_editor.cpp msgid "Update Mode (How this property is set)" -msgstr "Modo de Actualización (Como esta configurada esta propiedad)" +msgstr "Modo de Actualización (Como esta configurada esta propriedad)" #: editor/animation_track_editor.cpp msgid "Interpolation Mode" @@ -320,11 +335,13 @@ msgid "Create %d NEW tracks and insert keys?" msgstr "¿Crear %d nuevas pistas e insertar claves?" #: editor/animation_track_editor.cpp editor/create_dialog.cpp -#: editor/editor_audio_buses.cpp editor/editor_plugin_settings.cpp -#: editor/plugin_config_dialog.cpp +#: editor/editor_audio_buses.cpp editor/editor_feature_profile.cpp +#: editor/editor_plugin_settings.cpp editor/plugin_config_dialog.cpp #: editor/plugins/abstract_polygon_2d_editor.cpp #: editor/plugins/mesh_instance_editor_plugin.cpp -#: editor/plugins/particles_editor_plugin.cpp editor/script_create_dialog.cpp +#: editor/plugins/particles_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_create_dialog.cpp msgid "Create" msgstr "Crear" @@ -445,6 +462,23 @@ msgstr "" "única." #: editor/animation_track_editor.cpp +msgid "" +"This animation belongs to an imported scene, so changes to imported tracks " +"will not be saved.\n" +"\n" +"To enable the ability to add custom tracks, navigate to the scene's import " +"settings and set\n" +"\"Animation > Storage\" to \"Files\", enable \"Animation > Keep Custom Tracks" +"\", then re-import.\n" +"Alternatively, use an import preset that imports animations to separate " +"files." +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Warning: Editing imported animation" +msgstr "" + +#: editor/animation_track_editor.cpp msgid "Only show tracks from nodes selected in tree." msgstr "Mostrar solo las pistas de los nodos seleccionados en el árbol." @@ -453,9 +487,8 @@ msgid "Group tracks by node or display them as plain list." msgstr "Agrupar las pistas por nodo o mostrarlas como una lista plana." #: editor/animation_track_editor.cpp -#, fuzzy msgid "Snap:" -msgstr "Snap" +msgstr "Snap:" #: editor/animation_track_editor.cpp msgid "Animation step value." @@ -463,7 +496,7 @@ msgstr "Valor de step de animación." #: editor/animation_track_editor.cpp msgid "Seconds" -msgstr "" +msgstr "Segundos" #: editor/animation_track_editor.cpp msgid "FPS" @@ -578,7 +611,8 @@ msgstr "Relación de escala:" msgid "Select tracks to copy:" msgstr "Elegir pistas a copiar:" -#: editor/animation_track_editor.cpp editor/editor_properties.cpp +#: editor/animation_track_editor.cpp editor/editor_log.cpp +#: editor/editor_properties.cpp #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp @@ -646,6 +680,11 @@ msgstr "Reemplazar todo" msgid "Selection Only" msgstr "Sólo selección" +#: editor/code_editor.cpp editor/plugins/script_text_editor.cpp +#: editor/plugins/text_editor.cpp +msgid "Standard" +msgstr "Estándar" + #: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/texture_region_editor_plugin.cpp #: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp @@ -671,21 +710,39 @@ msgid "Line and column numbers." msgstr "Números de lÃnea y columna." #: editor/connections_dialog.cpp -msgid "Method in target Node must be specified!" +#, fuzzy +msgid "Method in target node must be specified." msgstr "¡Debes establecer un método en el nodo seleccionado!" #: editor/connections_dialog.cpp +#, fuzzy msgid "" -"Target method not found! Specify a valid method or attach a script to target " -"Node." +"Target method not found. Specify a valid method or attach a script to the " +"target node." msgstr "" "¡Método objetivo no encontrado! Especifica un método válido o añade un " "script al nodo objetivo." #: editor/connections_dialog.cpp -msgid "Connect To Node:" +#, fuzzy +msgid "Connect to Node:" msgstr "Conectar a nodo:" +#: editor/connections_dialog.cpp +#, fuzzy +msgid "Connect to Script:" +msgstr "No se puede conectar al host:" + +#: editor/connections_dialog.cpp +#, fuzzy +msgid "From Signal:" +msgstr "Señales:" + +#: editor/connections_dialog.cpp +#, fuzzy +msgid "Scene does not contain any script." +msgstr "El nodo no posee geometrÃa." + #: editor/connections_dialog.cpp editor/editor_autoload_settings.cpp #: editor/groups_editor.cpp editor/plugins/item_list_editor_plugin.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_settings_editor.cpp @@ -693,10 +750,12 @@ msgid "Add" msgstr "Añadir" #: editor/connections_dialog.cpp editor/dependency_editor.cpp -#: editor/groups_editor.cpp editor/plugins/animation_player_editor_plugin.cpp +#: editor/editor_feature_profile.cpp editor/groups_editor.cpp +#: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp #: editor/plugins/resource_preloader_editor_plugin.cpp -#: editor/plugins/theme_editor_plugin.cpp editor/project_manager.cpp +#: editor/plugins/theme_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_manager.cpp #: editor/project_settings_editor.cpp msgid "Remove" msgstr "Quitar" @@ -710,21 +769,32 @@ msgid "Extra Call Arguments:" msgstr "Argumentos extras de llamada:" #: editor/connections_dialog.cpp -msgid "Path to Node:" -msgstr "Ruta al nodo:" - -#: editor/connections_dialog.cpp -msgid "Make Function" -msgstr "Crear función" +#, fuzzy +msgid "Advanced" +msgstr "Opciones avanzadas" #: editor/connections_dialog.cpp msgid "Deferred" msgstr "Diferido" #: editor/connections_dialog.cpp +msgid "" +"Defers the signal, storing it in a queue and only firing it at idle time." +msgstr "" + +#: editor/connections_dialog.cpp msgid "Oneshot" msgstr "OneShot" +#: editor/connections_dialog.cpp +msgid "Disconnects the signal after its first emission." +msgstr "" + +#: editor/connections_dialog.cpp +#, fuzzy +msgid "Cannot connect signal" +msgstr "Conectar Señal: " + #: editor/connections_dialog.cpp editor/dependency_editor.cpp #: editor/export_template_manager.cpp editor/groups_editor.cpp #: editor/plugins/animation_player_editor_plugin.cpp @@ -765,11 +835,13 @@ msgid "Disconnect" msgstr "Desconectar" #: editor/connections_dialog.cpp -msgid "Connect Signal: " +#, fuzzy +msgid "Connect a Signal to a Method" msgstr "Conectar Señal: " #: editor/connections_dialog.cpp -msgid "Edit Connection: " +#, fuzzy +msgid "Edit Connection:" msgstr "Editar Conexión: " #: editor/connections_dialog.cpp @@ -802,7 +874,6 @@ msgid "Change %s Type" msgstr "Cambiar el tipo de %s" #: editor/create_dialog.cpp editor/project_settings_editor.cpp -#: modules/visual_script/visual_script_editor.cpp msgid "Change" msgstr "Cambiar" @@ -833,7 +904,8 @@ msgid "Matches:" msgstr "Coincidencias:" #: editor/create_dialog.cpp editor/plugin_config_dialog.cpp -#: editor/plugins/asset_library_editor_plugin.cpp editor/property_selector.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/property_selector.cpp #: modules/visual_script/visual_script_property_selector.cpp msgid "Description:" msgstr "Descripción:" @@ -847,17 +919,19 @@ msgid "Dependencies For:" msgstr "Dependencias para:" #: editor/dependency_editor.cpp +#, fuzzy msgid "" "Scene '%s' is currently being edited.\n" -"Changes will not take effect unless reloaded." +"Changes will only take effect when reloaded." msgstr "" "Estás editando la escena «%s».\n" "Por lo que los cambios no tendrán efecto hasta que recargues." #: editor/dependency_editor.cpp +#, fuzzy msgid "" "Resource '%s' is in use.\n" -"Changes will take effect when reloaded." +"Changes will only take effect when reloaded." msgstr "" "Se está usando el recurso «%s».\n" "Por lo que los cambios no tendrán efecto hasta que recargues." @@ -953,21 +1027,14 @@ msgid "Permanently delete %d item(s)? (No undo!)" msgstr "¿Eliminar permanentemente %d elemento(s)? (¡Irreversible!)" #: editor/dependency_editor.cpp -msgid "Owns" -msgstr "Propietario" - -#: editor/dependency_editor.cpp -msgid "Resources Without Explicit Ownership:" -msgstr "Recursos sin propietario explÃcito:" +#, fuzzy +msgid "Show Dependencies" +msgstr "Dependencias" #: editor/dependency_editor.cpp editor/editor_node.cpp msgid "Orphan Resource Explorer" msgstr "Explorador de recursos huérfanos" -#: editor/dependency_editor.cpp -msgid "Delete selected files?" -msgstr "¿Eliminar los archivos seleccionados?" - #: editor/dependency_editor.cpp editor/editor_audio_buses.cpp #: editor/editor_file_dialog.cpp editor/editor_node.cpp #: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp @@ -976,6 +1043,14 @@ msgstr "¿Eliminar los archivos seleccionados?" msgid "Delete" msgstr "Eliminar" +#: editor/dependency_editor.cpp +msgid "Owns" +msgstr "Propietario" + +#: editor/dependency_editor.cpp +msgid "Resources Without Explicit Ownership:" +msgstr "Recursos sin propietario explÃcito:" + #: editor/dictionary_property_edit.cpp msgid "Change Dictionary Key" msgstr "Cambiar clave del diccionario" @@ -1089,7 +1164,7 @@ msgstr "¡Paquete instalado con éxito!" msgid "Success!" msgstr "¡Finalizado!" -#: editor/editor_asset_installer.cpp +#: editor/editor_asset_installer.cpp editor/editor_node.cpp #: editor/plugins/asset_library_editor_plugin.cpp msgid "Install" msgstr "Instalar" @@ -1216,8 +1291,12 @@ msgid "Open Audio Bus Layout" msgstr "Abrir configuración de bus de audio" #: editor/editor_audio_buses.cpp -msgid "There is no 'res://default_bus_layout.tres' file." -msgstr "No existe el archivo 'res://default_bus_layout.tres'." +msgid "There is no '%s' file." +msgstr "" + +#: editor/editor_audio_buses.cpp editor/plugins/canvas_item_editor_plugin.cpp +msgid "Layout" +msgstr "Disposición" #: editor/editor_audio_buses.cpp msgid "Invalid file, not an audio bus layout." @@ -1270,24 +1349,31 @@ msgid "Valid characters:" msgstr "Letras válidas:" #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing engine class name." +#, fuzzy +msgid "Must not collide with an existing engine class name." msgstr "" "Nombre inválido. No debe coincidir con el nombre de una clase que ya exista " "en el motor gráfico." #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing buit-in type name." +#, fuzzy +msgid "Must not collide with an existing buit-in type name." msgstr "" "Nombre inválido. No debe coincidir con un nombre de tipo que ya esté " "integrado en el motor gráfico." #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing global constant name." +#, fuzzy +msgid "Must not collide with an existing global constant name." msgstr "" "Nombre inválido. No debe coincidir con un nombre de constante global ya " "existente en el motor gráfico." #: editor/editor_autoload_settings.cpp +msgid "Keyword cannot be used as an autoload name." +msgstr "" + +#: editor/editor_autoload_settings.cpp msgid "Autoload '%s' already exists!" msgstr "¡El fichero «%s» ya existe!" @@ -1315,11 +1401,12 @@ msgstr "Activar" msgid "Rearrange Autoloads" msgstr "Reordenar Autoloads" -#: editor/editor_autoload_settings.cpp -msgid "Invalid Path." +#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp +#, fuzzy +msgid "Invalid path." msgstr "Ruta inválida." -#: editor/editor_autoload_settings.cpp +#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp msgid "File does not exist." msgstr "El archivo no existe." @@ -1370,7 +1457,8 @@ msgid "[unsaved]" msgstr "[sin guardar]" #: editor/editor_dir_dialog.cpp -msgid "Please select a base directory first" +#, fuzzy +msgid "Please select a base directory first." msgstr "Por favor, selecciona primero un directorio base" #: editor/editor_dir_dialog.cpp @@ -1378,7 +1466,8 @@ msgid "Choose a Directory" msgstr "Selecciona un directorio" #: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp -#: editor/filesystem_dock.cpp scene/gui/file_dialog.cpp +#: editor/filesystem_dock.cpp editor/project_manager.cpp +#: scene/gui/file_dialog.cpp msgid "Create Folder" msgstr "Crear carpeta" @@ -1455,6 +1544,178 @@ msgstr "Plantilla release personalizada no encontrada." msgid "Template file not found:" msgstr "Archivo de plantilla no encontrado:" +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "3D Editor" +msgstr "Editor" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Script Editor" +msgstr "Abrir editor de script" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Asset Library" +msgstr "Abrir biblioteca de assets" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Scene Tree Editing" +msgstr "Ãrbol de escenas (nodos):" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Import Dock" +msgstr "Importar" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Node Dock" +msgstr "Nodo Movido" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Filesystem Dock" +msgstr "Sistema de Archivos" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Erase profile '%s'? (no undo)" +msgstr "Reemplazar todo (no se puede deshacer)" + +#: editor/editor_feature_profile.cpp +msgid "Profile must be a valid filename and must not contain '.'" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Profile with this name already exists." +msgstr "Ya existe un archivo o carpeta con este nombre." + +#: editor/editor_feature_profile.cpp +msgid "(Editor Disabled, Properties Disabled)" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "(Properties Disabled)" +msgstr "Solo Propiedades" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "(Editor Disabled)" +msgstr "Clip deshabilitado" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Class Options:" +msgstr "Descripción de la Clase:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enable Contextual Editor" +msgstr "Abrir editor siguiente" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enabled Properties:" +msgstr "Propiedades:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enabled Features:" +msgstr "CaracterÃsticas" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enabled Classes:" +msgstr "Buscar clases" + +#: editor/editor_feature_profile.cpp +msgid "File '%s' format is invalid, import aborted." +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "" +"Profile '%s' already exists. Remote it first before importing, import " +"aborted." +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Error saving profile to path: '%s'." +msgstr "Error al cargar la plantilla '%s'" + +#: editor/editor_feature_profile.cpp +msgid "Unset" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Current Profile" +msgstr "Versión actual:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Make Current" +msgstr "Actual:" + +#: editor/editor_feature_profile.cpp +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "New" +msgstr "Nuevo" + +#: editor/editor_feature_profile.cpp editor/editor_node.cpp +#: editor/plugins/asset_library_editor_plugin.cpp editor/project_manager.cpp +msgid "Import" +msgstr "Importar" + +#: editor/editor_feature_profile.cpp editor/editor_node.cpp +#: editor/project_export.cpp +msgid "Export" +msgstr "Exportar" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Available Profiles" +msgstr "Nodos disponibles:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enabled Classes" +msgstr "Buscar clases" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Class Options" +msgstr "Descripción de la Clase" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "New profile name:" +msgstr "Nuevo nombre:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Erase Profile" +msgstr "Borrar área" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Import Profile(s)" +msgstr "Proyecto importado" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Export Profile" +msgstr "Exportar proyecto" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Manage Editor Feature Profiles" +msgstr "Cargar plantillas de exportación" + #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Select Current Folder" msgstr "Seleccionar carpeta actual" @@ -1475,8 +1736,8 @@ msgstr "Copiar ruta" msgid "Open in File Manager" msgstr "Abrir en el Explorador de Archivos" -#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp -#: editor/project_manager.cpp +#: editor/editor_file_dialog.cpp editor/editor_node.cpp +#: editor/filesystem_dock.cpp editor/project_manager.cpp msgid "Show in File Manager" msgstr "Mostrar en Explorador de Archivos" @@ -1535,7 +1796,7 @@ msgstr "Avanzar" msgid "Go Up" msgstr "Subir" -#: editor/editor_file_dialog.cpp +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Toggle Hidden Files" msgstr "Ver/ocultar archivos ocultos" @@ -1567,14 +1828,19 @@ msgstr "Carpeta Anterior" msgid "Next Folder" msgstr "Carpeta Siguiente" -#: editor/editor_file_dialog.cpp -msgid "Go to parent folder" -msgstr "Ir a la carpeta principal" +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp +msgid "Go to parent folder." +msgstr "Ir a la carpeta padre." #: editor/editor_file_dialog.cpp msgid "(Un)favorite current folder." msgstr "Quitar carpeta actual de favoritos." +#: editor/editor_file_dialog.cpp +#, fuzzy +msgid "Toggle visibility of hidden files." +msgstr "Ver/ocultar archivos ocultos" + #: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp msgid "View items as a grid of thumbnails." msgstr "Ver Ãtems como una cuadrÃcula de miniaturas." @@ -1589,6 +1855,7 @@ msgstr "Directorios y archivos:" #: editor/editor_file_dialog.cpp editor/plugins/sprite_editor_plugin.cpp #: editor/plugins/style_box_editor_plugin.cpp +#: editor/plugins/theme_editor_plugin.cpp msgid "Preview:" msgstr "Vista previa:" @@ -1605,6 +1872,12 @@ msgid "ScanSources" msgstr "Analizando fuentes" #: editor/editor_file_system.cpp +msgid "" +"There are multiple importers for different types pointing to file %s, import " +"aborted" +msgstr "" + +#: editor/editor_file_system.cpp msgid "(Re)Importing Assets" msgstr "(Re)Importando assets" @@ -1787,6 +2060,10 @@ msgstr "Asignar Múltiples:" msgid "Output:" msgstr "Salida:" +#: editor/editor_log.cpp editor/plugins/tile_map_editor_plugin.cpp +msgid "Copy Selection" +msgstr "Copiar Selección" + #: editor/editor_log.cpp editor/editor_profiler.cpp #: editor/editor_properties.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp @@ -1943,9 +2220,10 @@ msgstr "" "entender mejor el flujo de trabajo." #: editor/editor_node.cpp +#, fuzzy msgid "" "This resource belongs to a scene that was instanced or inherited.\n" -"Changes to it will not be kept when saving the current scene." +"Changes to it won't be kept when saving the current scene." msgstr "" "Este recurso pertenece a una escena instanciada o heredada.\n" "Los cambios realizados sobre éste no se mantendrán al guardar la escena " @@ -1960,8 +2238,9 @@ msgstr "" "ajustes en el panel de importación e impórtalo de nuevo." #: editor/editor_node.cpp +#, fuzzy msgid "" -"This scene was imported, so changes to it will not be kept.\n" +"This scene was imported, so changes to it won't be kept.\n" "Instancing it or inheriting will allow making changes to it.\n" "Please read the documentation relevant to importing scenes to better " "understand this workflow." @@ -1972,8 +2251,9 @@ msgstr "" "entender mejor el flujo de trabajo." #: editor/editor_node.cpp +#, fuzzy msgid "" -"This is a remote object so changes to it will not be kept.\n" +"This is a remote object, so changes to it won't be kept.\n" "Please read the documentation relevant to debugging to better understand " "this workflow." msgstr "" @@ -1986,37 +2266,6 @@ msgid "There is no defined scene to run." msgstr "No hay escena definida para ejecutar." #: editor/editor_node.cpp -msgid "" -"No main scene has ever been defined, select one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" -"No se ha definido ninguna escena principal, ¿Quieres elegir alguna?\n" -"Es posible cambiarla más tarde en «Ajustes del Proyecto» bajo la categorÃa " -"«Aplicación»." - -#: editor/editor_node.cpp -msgid "" -"Selected scene '%s' does not exist, select a valid one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" -"La escena '%s' seleccionada no existe, ¿seleccionar una válida?\n" -"Es posible cambiarla más tarde en \"Ajustes del Proyecto\" bajo la categorÃa " -"'aplicación'." - -#: editor/editor_node.cpp -msgid "" -"Selected scene '%s' is not a scene file, select a valid one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" -"La escena '%s' seleccionada no es un archivo de escena, ¿seleccionar uno " -"válido?\n" -"Es posible cambiarla más tarde en \"Ajustes del Proyecto\" bajo la categorÃa " -"'aplicación'." - -#: editor/editor_node.cpp msgid "Current scene was never saved, please save it prior to running." msgstr "" "La escena actual nunca se guardó. Por favor, guárdela antes de ejecutar." @@ -2025,7 +2274,7 @@ msgstr "" msgid "Could not start subprocess!" msgstr "¡No se pudo comenzar el subproceso!" -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/filesystem_dock.cpp msgid "Open Scene" msgstr "Abrir escena" @@ -2034,6 +2283,11 @@ msgid "Open Base Scene" msgstr "Abrir escena base" #: editor/editor_node.cpp +#, fuzzy +msgid "Quick Open..." +msgstr "Apertura rápida de escena..." + +#: editor/editor_node.cpp msgid "Quick Open Scene..." msgstr "Apertura rápida de escena..." @@ -2080,7 +2334,7 @@ msgstr "Esta operación no puede realizarse sin una escena." #: editor/editor_node.cpp msgid "Export Mesh Library" -msgstr "Exportar librerÃa de mallas" +msgstr "Exportar LibrerÃa de Meshes" #: editor/editor_node.cpp msgid "This operation can't be done without a root node." @@ -2217,6 +2471,37 @@ msgid "Clear Recent Scenes" msgstr "Limpiar escenas recientes" #: editor/editor_node.cpp +msgid "" +"No main scene has ever been defined, select one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" +"No se ha definido ninguna escena principal, ¿Quieres elegir alguna?\n" +"Es posible cambiarla más tarde en «Ajustes del Proyecto» bajo la categorÃa " +"«Aplicación»." + +#: editor/editor_node.cpp +msgid "" +"Selected scene '%s' does not exist, select a valid one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" +"La escena '%s' seleccionada no existe, ¿seleccionar una válida?\n" +"Es posible cambiarla más tarde en \"Ajustes del Proyecto\" bajo la categorÃa " +"'aplicación'." + +#: editor/editor_node.cpp +msgid "" +"Selected scene '%s' is not a scene file, select a valid one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" +"La escena '%s' seleccionada no es un archivo de escena, ¿seleccionar uno " +"válido?\n" +"Es posible cambiarla más tarde en \"Ajustes del Proyecto\" bajo la categorÃa " +"'aplicación'." + +#: editor/editor_node.cpp msgid "Save Layout" msgstr "Guardar ajustes" @@ -2242,6 +2527,19 @@ msgstr "Reproducir esta escena" msgid "Close Tab" msgstr "Cerrar pestaña" +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +msgid "Close Other Tabs" +msgstr "Cerrar las demás pestañas" + +#: editor/editor_node.cpp +msgid "Close Tabs to the Right" +msgstr "" + +#: editor/editor_node.cpp +#, fuzzy +msgid "Close All Tabs" +msgstr "Cerrar todo" + #: editor/editor_node.cpp msgid "Switch Scene Tab" msgstr "Cambiar pestaña de escena" @@ -2364,10 +2662,6 @@ msgstr "Proyecto" msgid "Project Settings" msgstr "Ajustes del proyecto" -#: editor/editor_node.cpp editor/project_export.cpp -msgid "Export" -msgstr "Exportar" - #: editor/editor_node.cpp editor/plugins/tile_set_editor_plugin.cpp msgid "Tools" msgstr "Herramientas" @@ -2377,6 +2671,10 @@ msgid "Open Project Data Folder" msgstr "Abrir carpeta de datos del proyecto" #: editor/editor_node.cpp +msgid "Install Android Build Template" +msgstr "" + +#: editor/editor_node.cpp msgid "Quit to Project List" msgstr "Salir al listado de proyectos" @@ -2500,6 +2798,11 @@ msgstr "Abrir Carpeta de Datos del Editor" msgid "Open Editor Settings Folder" msgstr "Abrir carpeta de configuración del Editor" +#: editor/editor_node.cpp +#, fuzzy +msgid "Manage Editor Features" +msgstr "Cargar plantillas de exportación" + #: editor/editor_node.cpp editor/project_export.cpp msgid "Manage Export Templates" msgstr "Cargar plantillas de exportación" @@ -2512,6 +2815,7 @@ msgstr "Ayuda" #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp #: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp #: editor/project_settings_editor.cpp editor/rename_dialog.cpp msgid "Search" msgstr "Buscar" @@ -2601,11 +2905,6 @@ msgstr "Actualizar cambios" msgid "Disable Update Spinner" msgstr "Desactivar indicador de actividad" -#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp -#: editor/project_manager.cpp -msgid "Import" -msgstr "Importar" - #: editor/editor_node.cpp msgid "FileSystem" msgstr "Sistema de Archivos" @@ -2631,6 +2930,28 @@ msgid "Don't Save" msgstr "No guardar" #: editor/editor_node.cpp +msgid "Android build template is missing, please install relevant templates." +msgstr "" + +#: editor/editor_node.cpp +#, fuzzy +msgid "Manage Templates" +msgstr "Cargar plantillas de exportación" + +#: editor/editor_node.cpp +msgid "" +"This will install the Android project for custom builds.\n" +"Note that, in order to use it, it needs to be enabled per export preset." +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"Android build template is already installed and it won't be overwritten.\n" +"Remove the \"build\" directory manually before attempting this operation " +"again." +msgstr "" + +#: editor/editor_node.cpp msgid "Import Templates From ZIP File" msgstr "Importar plantillas desde un archivo ZIP" @@ -2692,7 +3013,7 @@ msgstr "Abrir editor anterior" #: editor/editor_plugin.cpp msgid "Creating Mesh Previews" -msgstr "Creación de vistas previas de malla" +msgstr "Creando Vistas Previas de Mesh/es" #: editor/editor_plugin.cpp msgid "Thumbnail..." @@ -2753,10 +3074,6 @@ msgid "Physics Frame %" msgstr "% de cuadro fÃsico" #: editor/editor_profiler.cpp -msgid "Time:" -msgstr "Tiempo:" - -#: editor/editor_profiler.cpp msgid "Inclusive" msgstr "Inclusivo" @@ -2900,10 +3217,6 @@ msgid "Remove Item" msgstr "Remover item" #: editor/editor_run_native.cpp -msgid "Select device from the list" -msgstr "Seleccionar dispositivo de la lista" - -#: editor/editor_run_native.cpp msgid "" "No runnable export preset found for this platform.\n" "Please add a runnable preset in the export menu." @@ -2940,6 +3253,10 @@ msgstr "Te olvidaste del método '_run'?" msgid "Select Node(s) to Import" msgstr "Selecciona nodo(s) a importar" +#: editor/editor_sub_scene.cpp editor/project_manager.cpp +msgid "Browse" +msgstr "Examinar" + #: editor/editor_sub_scene.cpp msgid "Scene Path:" msgstr "Ruta de la escena:" @@ -3106,6 +3423,11 @@ msgid "SSL Handshake Error" msgstr "Error de negociación SSL" #: editor/export_template_manager.cpp +#, fuzzy +msgid "Uncompressing Android Build Sources" +msgstr "Descomprimiendo assets" + +#: editor/export_template_manager.cpp msgid "Current Version:" msgstr "Versión actual:" @@ -3122,7 +3444,8 @@ msgid "Remove Template" msgstr "Eliminar plantilla" #: editor/export_template_manager.cpp -msgid "Select template file" +#, fuzzy +msgid "Select Template File" msgstr "Seleccionar archivo plantilla" #: editor/export_template_manager.cpp @@ -3185,7 +3508,8 @@ msgid "No name provided." msgstr "Nombre no proporcionado." #: editor/filesystem_dock.cpp -msgid "Provided name contains invalid characters" +#, fuzzy +msgid "Provided name contains invalid characters." msgstr "El nombre proporcionado contiene caracteres inválidos" #: editor/filesystem_dock.cpp @@ -3213,19 +3537,27 @@ msgid "Duplicating folder:" msgstr "Duplicando carpeta:" #: editor/filesystem_dock.cpp -msgid "Open Scene(s)" -msgstr "Abrir escena(s)" +#, fuzzy +msgid "New Inherited Scene" +msgstr "Nueva escena heredada..." + +#: editor/filesystem_dock.cpp +#, fuzzy +msgid "Open Scenes" +msgstr "Abrir escena" #: editor/filesystem_dock.cpp msgid "Instance" msgstr "Instanciar" #: editor/filesystem_dock.cpp -msgid "Add to favorites" +#, fuzzy +msgid "Add to Favorites" msgstr "Agregar a favoritos" #: editor/filesystem_dock.cpp -msgid "Remove from favorites" +#, fuzzy +msgid "Remove from Favorites" msgstr "Quitar de favoritos" #: editor/filesystem_dock.cpp @@ -3256,11 +3588,13 @@ msgstr "Nuevo Script..." msgid "New Resource..." msgstr "Nuevo Recurso..." -#: editor/filesystem_dock.cpp editor/script_editor_debugger.cpp +#: editor/filesystem_dock.cpp editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_editor_debugger.cpp msgid "Expand All" msgstr "Expandir Todo" -#: editor/filesystem_dock.cpp editor/script_editor_debugger.cpp +#: editor/filesystem_dock.cpp editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_editor_debugger.cpp msgid "Collapse All" msgstr "Colapsar Todo" @@ -3272,19 +3606,22 @@ msgid "Rename" msgstr "Renombrar" #: editor/filesystem_dock.cpp -msgid "Previous Directory" -msgstr "Carpeta anterior" +#, fuzzy +msgid "Previous Folder/File" +msgstr "Carpeta Anterior" #: editor/filesystem_dock.cpp -msgid "Next Directory" -msgstr "Carpeta siguiente" +#, fuzzy +msgid "Next Folder/File" +msgstr "Carpeta Siguiente" #: editor/filesystem_dock.cpp msgid "Re-Scan Filesystem" msgstr "Re-escanear sistema de archivos" #: editor/filesystem_dock.cpp -msgid "Toggle split mode" +#, fuzzy +msgid "Toggle Split Mode" msgstr "Act/Desact. Modo Dividido" #: editor/filesystem_dock.cpp @@ -3315,7 +3652,7 @@ msgstr "Sobreescribir" msgid "Create Script" msgstr "Crear script" -#: editor/find_in_files.cpp +#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp msgid "Find in Files" msgstr "Buscar en Archivos" @@ -3331,6 +3668,12 @@ msgstr "Carpeta:" msgid "Filters:" msgstr "Filtros:" +#: editor/find_in_files.cpp +msgid "" +"Include the files with the following extensions. Add or remove them in " +"ProjectSettings." +msgstr "" + #: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp msgid "Find..." @@ -3455,7 +3798,7 @@ msgstr "Generando Lightmaps" #: editor/import/resource_importer_scene.cpp msgid "Generating for Mesh: " -msgstr "Generando para malla: " +msgstr "Generando para Mesh: " #: editor/import/resource_importer_scene.cpp msgid "Running Custom Script..." @@ -3769,7 +4112,8 @@ msgid "Open Animation Node" msgstr "Abrir Nodo de Animación" #: editor/plugins/animation_blend_space_2d_editor.cpp -msgid "Triangle already exists" +#, fuzzy +msgid "Triangle already exists." msgstr "El triángulo ya existe" #: editor/plugins/animation_blend_space_2d_editor.cpp @@ -3844,7 +4188,6 @@ msgid "Node Moved" msgstr "Nodo Movido" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Unable to connect, port may be in use or connection may be invalid." msgstr "" "No se pudo conectar, el puerto podrÃa estar en uso o la conexión ser " @@ -3919,7 +4262,8 @@ msgid "Edit Filtered Tracks:" msgstr "Editar pistas filtradas:" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -msgid "Enable filtering" +#, fuzzy +msgid "Enable Filtering" msgstr "Habilitar filtrado" #: editor/plugins/animation_player_editor_plugin.cpp @@ -4036,10 +4380,6 @@ msgid "Animation" msgstr "Animación" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "New" -msgstr "Nuevo" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Edit Transitions..." msgstr "Editar Transiciones..." @@ -4056,14 +4396,15 @@ msgid "Autoplay on Load" msgstr "Autoreproducir al cargar" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Onion Skinning" -msgstr "Papel Cebolla" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Enable Onion Skinning" msgstr "Activar papel cebolla" #: editor/plugins/animation_player_editor_plugin.cpp +#, fuzzy +msgid "Onion Skinning Options" +msgstr "Papel Cebolla" + +#: editor/plugins/animation_player_editor_plugin.cpp msgid "Directions" msgstr "Direcciones" @@ -4521,8 +4862,8 @@ msgid "" "No meshes to bake. Make sure they contain an UV2 channel and that the 'Bake " "Light' flag is on." msgstr "" -"No hay mallas que pre-calcular. Asegúrese de que contienen el canal UV2 y el " -"flag 'Bake Light' esté activo." +"No hay meshes para hacer bake. Asegúrate que contienen un canal UV2 y que el " +"flag 'Bake Light' esta activado." #: editor/plugins/baked_lightmap_editor_plugin.cpp msgid "Failed creating lightmap images, make sure path is writable." @@ -4532,7 +4873,7 @@ msgstr "" #: editor/plugins/baked_lightmap_editor_plugin.cpp msgid "Bake Lightmaps" -msgstr "Calculando Lightmaps" +msgstr "Bake Lightmaps" #: editor/plugins/camera_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp editor/rename_dialog.cpp @@ -4612,10 +4953,6 @@ msgid "Move CanvasItem" msgstr "Mover CanvasItem" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Presets for the anchors and margins values of a Control node." -msgstr "Presets para los valores de anclajes y márgenes de un nodo Control." - -#: editor/plugins/canvas_item_editor_plugin.cpp msgid "" "Children of containers have their anchors and margins values overridden by " "their parent." @@ -4624,6 +4961,16 @@ msgstr "" "anulados por sus padres." #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Presets for the anchors and margins values of a Control node." +msgstr "Presets para los valores de anclajes y márgenes de un nodo Control." + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"When active, moving Control nodes changes their anchors instead of their " +"margins." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Anchors only" msgstr "Sólo anclado" @@ -4636,10 +4983,52 @@ msgid "Change Anchors" msgstr "Cambiar anclas" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Lock Selected" +msgstr "Seleccionar" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Unlock Selected" +msgstr "Quitar seleccionados" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Group Selected" +msgstr "Copiar Selección" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Ungroup Selected" +msgstr "Copiar Selección" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Paste Pose" msgstr "Pegar pose" #: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Create Custom Bone(s) from Node(s)" +msgstr "Crear Hueso(s) Personalizados a partir de Nodo(s)" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Clear Bones" +msgstr "Restablecer pose" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Make IK Chain" +msgstr "Crear cadena IK" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Clear IK Chain" +msgstr "Reestrablecer cadena IK" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "" "Warning: Children of a container get their position and size determined only " "by their parent." @@ -4718,7 +5107,8 @@ msgid "Snapping Options" msgstr "Opciones de Alineado" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to grid" +#, fuzzy +msgid "Snap to Grid" msgstr "Alinear a la cuadrÃcula" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4739,31 +5129,38 @@ msgid "Use Pixel Snap" msgstr "Usar Pixel Snap" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Smart snapping" +#, fuzzy +msgid "Smart Snapping" msgstr "Fijado inteligente" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to parent" +#, fuzzy +msgid "Snap to Parent" msgstr "Alinear al Padre" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node anchor" +#, fuzzy +msgid "Snap to Node Anchor" msgstr "Alinear al ancla de nodo" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node sides" +#, fuzzy +msgid "Snap to Node Sides" msgstr "Alinear a los lados del nodo" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node center" +#, fuzzy +msgid "Snap to Node Center" msgstr "Alinear al centro del nodo" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to other nodes" +#, fuzzy +msgid "Snap to Other Nodes" msgstr "Alinear a otros nodos" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to guides" +#, fuzzy +msgid "Snap to Guides" msgstr "Alinear a guÃas" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4777,10 +5174,12 @@ msgid "Unlock the selected object (can be moved)." msgstr "Liberar objeto inmovilizado." #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Makes sure the object's children are not selectable." msgstr "Asegurarse que los hijos de un objeto no sean seleccionables." #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Restores the object's children's ability to be selected." msgstr "Restaurar la habilidad de seleccionar los hijos de un objeto." @@ -4793,14 +5192,6 @@ msgid "Show Bones" msgstr "Mostrar huesos" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Make IK Chain" -msgstr "Crear cadena IK" - -#: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Clear IK Chain" -msgstr "Reestrablecer cadena IK" - -#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Make Custom Bone(s) from Node(s)" msgstr "Crear Hueso(s) Personalizados a partir de Nodo(s)" @@ -4851,25 +5242,25 @@ msgid "Frame Selection" msgstr "Encuadrar selección" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Layout" -msgstr "Disposición" +#, fuzzy +msgid "Preview Canvas Scale" +msgstr "Vista previa del atlas" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Translation mask for inserting keys." -msgstr "" +msgstr "Máscara de desplazamiento para insertar claves." #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Rotation mask for inserting keys." -msgstr "" +msgstr "Máscara de rotación para insertar claves." #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Scale mask for inserting keys." -msgstr "" +msgstr "Máscara de escala para insertar claves." #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Insert keys (based on mask)." -msgstr "Insertar Claves (Ins)" +msgstr "Insertar claves (basadas en máscara)." #: editor/plugins/canvas_item_editor_plugin.cpp msgid "" @@ -4878,11 +5269,15 @@ msgid "" "Keys are only added to existing tracks, no new tracks will be created.\n" "Keys must be inserted manually for the first time." msgstr "" +"Inserción automática de claves cuando los objetos son desplazados, rotados " +"en escala (basado en máscara).\n" +"Las claves sólo se añaden a las pistas existentes, no se crearán nuevas " +"pistas.\n" +"Las claves deben insertarse manualmente por primera vez." #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Auto Insert Key" -msgstr "Insertar clave de animación" +msgstr "Auto Insertar Clave" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Insert Key (Existing Tracks)" @@ -4905,6 +5300,11 @@ msgid "Divide grid step by 2" msgstr "Dividir step de cuadrÃcula por 2" #: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Pan View" +msgstr "Vista posterior" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Add %s" msgstr "Añadir %s" @@ -4927,7 +5327,8 @@ msgid "Error instancing scene from %s" msgstr "Error al instanciar escena desde %s" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Change default type" +#, fuzzy +msgid "Change Default Type" msgstr "Cambiar tipo por defecto" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -5007,7 +5408,7 @@ msgstr "CPUParticles" #: editor/plugins/cpu_particles_editor_plugin.cpp #: editor/plugins/particles_editor_plugin.cpp msgid "Create Emission Points From Mesh" -msgstr "Crear puntos de emisión desde malla" +msgstr "Crear Puntos de Emisión desde Mesh" #: editor/plugins/cpu_particles_editor_plugin.cpp #: editor/plugins/particles_editor_plugin.cpp @@ -5015,20 +5416,22 @@ msgid "Create Emission Points From Node" msgstr "Crear puntos de emisión desde el nodo" #: editor/plugins/curve_editor_plugin.cpp -msgid "Flat0" +#, fuzzy +msgid "Flat 0" msgstr "Flat0" #: editor/plugins/curve_editor_plugin.cpp -msgid "Flat1" +#, fuzzy +msgid "Flat 1" msgstr "Flat1" -#: editor/plugins/curve_editor_plugin.cpp -msgid "Ease in" -msgstr "Transición de entrada" +#: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp +msgid "Ease In" +msgstr "Transición entrada" -#: editor/plugins/curve_editor_plugin.cpp -msgid "Ease out" -msgstr "Transición de salida" +#: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp +msgid "Ease Out" +msgstr "Transición salida" #: editor/plugins/curve_editor_plugin.cpp msgid "Smoothstep" @@ -5047,23 +5450,28 @@ msgid "Load Curve Preset" msgstr "Cargar ajuste predeterminado de curva" #: editor/plugins/curve_editor_plugin.cpp -msgid "Add point" +#, fuzzy +msgid "Add Point" msgstr "Añadir punto" #: editor/plugins/curve_editor_plugin.cpp -msgid "Remove point" +#, fuzzy +msgid "Remove Point" msgstr "Quitar punto" #: editor/plugins/curve_editor_plugin.cpp -msgid "Left linear" +#, fuzzy +msgid "Left Linear" msgstr "Izquierda lineal" #: editor/plugins/curve_editor_plugin.cpp -msgid "Right linear" +#, fuzzy +msgid "Right Linear" msgstr "Derecha lineal" #: editor/plugins/curve_editor_plugin.cpp -msgid "Load preset" +#, fuzzy +msgid "Load Preset" msgstr "Cargar ajuste predeterminado" #: editor/plugins/curve_editor_plugin.cpp @@ -5080,7 +5488,7 @@ msgstr "Mantén Mayús para editar las tangentes individualmente" #: editor/plugins/gi_probe_editor_plugin.cpp msgid "Bake GI Probe" -msgstr "Precalcular GI Probe" +msgstr "Bake GI Probe" #: editor/plugins/gradient_editor_plugin.cpp msgid "Gradient Edited" @@ -5104,7 +5512,7 @@ msgstr "Crear polÃgono oclusor" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Mesh is empty!" -msgstr "¡La malla está vacÃa!" +msgstr "¡El Mesh está vacÃo!" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Static Trimesh Body" @@ -5119,30 +5527,34 @@ msgid "This doesn't work on scene root!" msgstr "¡No puedes hacer esto en una escena raÃz!" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Trimesh Shape" +#, fuzzy +msgid "Create Trimesh Static Shape" msgstr "Crear forma triangular" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Shape" +msgid "Failed creating shapes!" +msgstr "" + +#: editor/plugins/mesh_instance_editor_plugin.cpp +#, fuzzy +msgid "Create Convex Shape(s)" msgstr "Crear forma convexa" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Navigation Mesh" -msgstr "Crear malla de navegación" +msgstr "Crear Mesh de Navegación" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Contained Mesh is not of type ArrayMesh." -msgstr "La Malla contenedora no es del tipo ArrayMesh." +msgstr "El Mesh contenedor no es del tipo ArrayMesh." #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "UV Unwrap failed, mesh may not be manifold?" -msgstr "" -"Falló el procedimiento de Unwrapping, ¿Tal vez la malla contenga geometrÃa " -"múltiple o desajustada?" +msgstr "Fallo el UV Unwrap ¿el mesh podrÃa no ser manifold?" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "No mesh to debug." -msgstr "No hay malla que depurar." +msgstr "No hay meshes para depurar." #: editor/plugins/mesh_instance_editor_plugin.cpp #: editor/plugins/sprite_editor_plugin.cpp @@ -5151,15 +5563,15 @@ msgstr "El modelo no tiene UV en esta capa" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "MeshInstance lacks a Mesh!" -msgstr "¡MeshInstance no tiene malla!" +msgstr "¡MeshInstance le falta un Mesh!" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Mesh has not surface to create outlines from!" -msgstr "¡La malla no tiene superficie de la que crear contornos!" +msgstr "¡El mesh no tiene una superficie de donde crear contornos!" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Mesh primitive type is not PRIMITIVE_TRIANGLES!" -msgstr "¡El tipo primitivo de malla no es PRIMITIVE_TRIANGLES!" +msgstr "¡El tipo primitivo de mesh no es PRIMITIVE_TRIANGLES!" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Could not create outline!" @@ -5171,27 +5583,24 @@ msgstr "Crear contorno" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Mesh" -msgstr "Malla" +msgstr "Mesh" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Trimesh Static Body" msgstr "Crear cuerpo estático triangular" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Static Body" -msgstr "Crear cuerpo estático convexo" - -#: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Trimesh Collision Sibling" msgstr "Crear colisión hermanada triangular" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Collision Sibling" +#, fuzzy +msgid "Create Convex Collision Sibling(s)" msgstr "Crear colisión hermanada convexa" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Outline Mesh..." -msgstr "Crear contorno de malla..." +msgstr "Crear Outline Mesh..." #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "View UV1" @@ -5207,7 +5616,7 @@ msgstr "Desenvuelva UV2 para Lightmap/AO" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Outline Mesh" -msgstr "Crear contorno de malla" +msgstr "Crear Outline Mesh" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Outline Size:" @@ -5237,26 +5646,23 @@ msgstr "Actualizar desde escena" #: editor/plugins/multimesh_editor_plugin.cpp msgid "No mesh source specified (and no MultiMesh set in node)." msgstr "" -"No se ha especificado ninguna malla de origen (y no hay MultiMesh " -"establecido en el nodo)." +"No se especificó mesh de origen (y no hay MultiMesh establecido en el nodo)." #: editor/plugins/multimesh_editor_plugin.cpp msgid "No mesh source specified (and MultiMesh contains no Mesh)." -msgstr "" -"No se ha especificado ninguna malla de origen (y MultiMesh no contiene " -"ninguna Mesh)." +msgstr "No se especificó mesh de origen (y MultiMesh no contiene ningún Mesh)." #: editor/plugins/multimesh_editor_plugin.cpp msgid "Mesh source is invalid (invalid path)." -msgstr "El origen de la malla es inválido (ruta inválida)." +msgstr "Mesh de origen inválido (ruta inválida)." #: editor/plugins/multimesh_editor_plugin.cpp msgid "Mesh source is invalid (not a MeshInstance)." -msgstr "El origen de la malla es inválido (no es un MeshInstance)." +msgstr "Mesh de origen inválido (no es un MeshInstance)." #: editor/plugins/multimesh_editor_plugin.cpp msgid "Mesh source is invalid (contains no Mesh resource)." -msgstr "El origen de la malla es inválido (no contiene ningún recurso Mesh)." +msgstr "Mesh de origen inválido (no contiene ningún recurso Mesh)." #: editor/plugins/multimesh_editor_plugin.cpp msgid "No surface source specified." @@ -5284,7 +5690,7 @@ msgstr "No se pudo mapear el área." #: editor/plugins/multimesh_editor_plugin.cpp msgid "Select a Source Mesh:" -msgstr "Elige un origen de malla:" +msgstr "Selecciona una Mesh de Origen:" #: editor/plugins/multimesh_editor_plugin.cpp msgid "Select a Target Surface:" @@ -5304,7 +5710,7 @@ msgstr "Superficie objetivo:" #: editor/plugins/multimesh_editor_plugin.cpp msgid "Source Mesh:" -msgstr "Malla de origen:" +msgstr "Mesh de Origen:" #: editor/plugins/multimesh_editor_plugin.cpp msgid "X-Axis" @@ -5320,7 +5726,7 @@ msgstr "Eje Z" #: editor/plugins/multimesh_editor_plugin.cpp msgid "Mesh Up Axis:" -msgstr "Eje vertical de la malla:" +msgstr "Eje Superior del Mesh:" #: editor/plugins/multimesh_editor_plugin.cpp msgid "Random Rotation:" @@ -5344,6 +5750,11 @@ msgid "Create Navigation Polygon" msgstr "Crear polÃgono de navegación" #: editor/plugins/particles_2d_editor_plugin.cpp +#: editor/plugins/particles_editor_plugin.cpp +msgid "Convert to CPUParticles" +msgstr "Convertir a CPUParticles" + +#: editor/plugins/particles_2d_editor_plugin.cpp msgid "Generating Visibility Rect" msgstr "Generando Rect. de Visibilidad" @@ -5358,11 +5769,6 @@ msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp #: editor/plugins/particles_editor_plugin.cpp -msgid "Convert to CPUParticles" -msgstr "Convertir a CPUParticles" - -#: editor/plugins/particles_2d_editor_plugin.cpp -#: editor/plugins/particles_editor_plugin.cpp msgid "Generation Time (sec):" msgstr "Tiempo de generación (seg):" @@ -5500,7 +5906,7 @@ msgstr "Cerrar curva" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp editor/plugins/theme_editor_plugin.cpp -#: editor/project_export.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_export.cpp msgid "Options" msgstr "Opciones" @@ -5551,7 +5957,8 @@ msgid "Split Segment (in curve)" msgstr "Dividir segmento (en curva)" #: editor/plugins/physical_bone_plugin.cpp -msgid "Move joint" +#, fuzzy +msgid "Move Joint" msgstr "Mover unión" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5792,7 +6199,6 @@ msgid "Open in Editor" msgstr "Abrir en el editor" #: editor/plugins/resource_preloader_editor_plugin.cpp -#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Load Resource" msgstr "Cargar recurso" @@ -5877,9 +6283,13 @@ msgid "Save Theme As..." msgstr "Guardar tema como..." #: editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "%s Class Reference" -msgstr " Referencia de clase" +msgstr "%s Referencia de Clase" + +#: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp +msgid "Find Next" +msgstr "Buscar siguiente" #: editor/plugins/script_editor_plugin.cpp msgid "Toggle alphabetical sorting of the method list." @@ -5962,10 +6372,6 @@ msgstr "Cerrar documentación" msgid "Close All" msgstr "Cerrar todo" -#: editor/plugins/script_editor_plugin.cpp -msgid "Close Other Tabs" -msgstr "Cerrar las demás pestañas" - #: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp msgid "Run" msgstr "Ejecutar" @@ -5974,11 +6380,6 @@ msgstr "Ejecutar" msgid "Toggle Scripts Panel" msgstr "Act/desact. panel de scripts" -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/script_text_editor.cpp -msgid "Find Next" -msgstr "Buscar siguiente" - #: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp msgid "Step Over" msgstr "Step Over" @@ -6005,7 +6406,8 @@ msgid "Debug with External Editor" msgstr "Depurar con Editor Externo" #: editor/plugins/script_editor_plugin.cpp -msgid "Open Godot online documentation" +#, fuzzy +msgid "Open Godot online documentation." msgstr "Abrir documentación online de Godot" #: editor/plugins/script_editor_plugin.cpp @@ -6013,7 +6415,8 @@ msgid "Request Docs" msgstr "Solicitar Documentos" #: editor/plugins/script_editor_plugin.cpp -msgid "Help improve the Godot documentation by giving feedback" +#, fuzzy +msgid "Help improve the Godot documentation by giving feedback." msgstr "Ayuda a mejorar la documentación de Godot dando feedback" #: editor/plugins/script_editor_plugin.cpp @@ -6041,10 +6444,12 @@ msgstr "" "¿Qué es lo que quieres hacer?:" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp msgid "Reload" msgstr "Volver a cargar" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp msgid "Resave" msgstr "Volver a guardar" @@ -6057,6 +6462,31 @@ msgid "Search Results" msgstr "Resultados de la Búsqueda" #: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Connections to method:" +msgstr "Conectar a nodo:" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Source" +msgstr "Fuente:" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Signal" +msgstr "Señales" + +#: editor/plugins/script_text_editor.cpp +msgid "Target" +msgstr "Objetivo" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "" +"Missing connected method '%s' for signal '%s' from node '%s' to node '%s'." +msgstr "Nada conectado a la entrada '%s' del nodo '%s'." + +#: editor/plugins/script_text_editor.cpp msgid "Line" msgstr "LÃnea" @@ -6068,10 +6498,6 @@ msgstr "(ignorar)" msgid "Go to Function" msgstr "Ir a Función" -#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp -msgid "Standard" -msgstr "Estándar" - #: editor/plugins/script_text_editor.cpp msgid "Only resources from filesystem can be dropped." msgstr "Sólo se pueden arrastrar/soltar recursos del sistema de archivos." @@ -6104,6 +6530,11 @@ msgstr "Poner en mayúsculas" msgid "Syntax Highlighter" msgstr "Resaltador de sintaxis" +#: editor/plugins/script_text_editor.cpp +#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp +msgid "Bookmarks" +msgstr "" + #: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" @@ -6131,6 +6562,26 @@ msgid "Toggle Comment" msgstr "Act/desact. comentario" #: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Toggle Bookmark" +msgstr "Act/desact. Vista Libre" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Go to Next Bookmark" +msgstr "Ir al Siguente Breakpoint" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Go to Previous Bookmark" +msgstr "Ir al Breakpoint Anterior" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Remove All Bookmarks" +msgstr "Quitar todos los elementos" + +#: editor/plugins/script_text_editor.cpp msgid "Fold/Unfold Line" msgstr "Plegar/Desplegar lÃnea" @@ -6204,6 +6655,15 @@ msgid "Contextual Help" msgstr "Ayuda contextual" #: editor/plugins/shader_editor_plugin.cpp +#, fuzzy +msgid "" +"This shader has been modified on on disk.\n" +"What action should be taken?" +msgstr "" +"Los siguientes archivos son nuevos en disco.\n" +"¿Qué es lo que quieres hacer?:" + +#: editor/plugins/shader_editor_plugin.cpp msgid "Shader" msgstr "Shader" @@ -6546,7 +7006,8 @@ msgid "Right View" msgstr "Vista derecha" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Switch Perspective/Orthogonal view" +#, fuzzy +msgid "Switch Perspective/Orthogonal View" msgstr "Intercambiar vista perspectiva/ortogonal" #: editor/plugins/spatial_editor_plugin.cpp @@ -6586,11 +7047,13 @@ msgid "Toggle Freelook" msgstr "Act/desact. Vista Libre" #: editor/plugins/spatial_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Transform" msgstr "Transformar" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Snap object to floor" +#, fuzzy +msgid "Snap Object to Floor" msgstr "Ajustar objeto al suelo" #: editor/plugins/spatial_editor_plugin.cpp @@ -6703,24 +7166,20 @@ msgid "Nameless gizmo" msgstr "Gizmo sin nombre" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy msgid "Create Mesh2D" -msgstr "Crear Mesh 2D" +msgstr "Crear Mesh2D" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy msgid "Create Polygon2D" -msgstr "Crear Polygon3D" +msgstr "Crear Polygon2D" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy msgid "Create CollisionPolygon2D" -msgstr "Crear PolÃgono de Colisión" +msgstr "Crear CollisionPolygon2D" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy msgid "Create LightOccluder2D" -msgstr "Crear polÃgono oclusor" +msgstr "Crear LightOccluder2D" #: editor/plugins/sprite_editor_plugin.cpp msgid "Sprite is empty!" @@ -6735,43 +7194,36 @@ msgid "Invalid geometry, can't replace by mesh." msgstr "GeometrÃa inválida, no se puede reemplazar por mesh." #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy -msgid "Invalid geometry, can't create polygon." -msgstr "GeometrÃa inválida, no se puede reemplazar por mesh." +msgid "Convert to Mesh2D" +msgstr "Convertir a Mesh2D" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy -msgid "Invalid geometry, can't create collision polygon." -msgstr "GeometrÃa inválida, no se puede reemplazar por mesh." +msgid "Invalid geometry, can't create polygon." +msgstr "GeometrÃa inválida, no es posible crear un polÃgono." #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy -msgid "Invalid geometry, can't create light occluder." -msgstr "GeometrÃa inválida, no se puede reemplazar por mesh." +msgid "Convert to Polygon2D" +msgstr "Convertir a Polygon2D" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Sprite" -msgstr "Sprite" +msgid "Invalid geometry, can't create collision polygon." +msgstr "GeometrÃa inválida, no es posible crear un polÃgono de colisión." #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy -msgid "Convert to Mesh2D" -msgstr "Convertir a Mesh 2D" +msgid "Create CollisionPolygon2D Sibling" +msgstr "Crear hermano de CollisionPolygon2D" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy -msgid "Convert to Polygon2D" -msgstr "Mover polÃgono" +msgid "Invalid geometry, can't create light occluder." +msgstr "GeometrÃa inválida, no es posible crear un oclusor de luz." #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy -msgid "Create CollisionPolygon2D Sibling" -msgstr "Crear PolÃgono de Colisión" +msgid "Create LightOccluder2D Sibling" +msgstr "Crear hermano de LightOccluder2D" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy -msgid "Create LightOccluder2D Sibling" -msgstr "Crear polÃgono oclusor" +msgid "Sprite" +msgstr "Sprite" #: editor/plugins/sprite_editor_plugin.cpp msgid "Simplification: " @@ -6790,14 +7242,24 @@ msgid "Settings:" msgstr "Ajustes:" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "ERROR: Couldn't load frame resource!" -msgstr "ERROR: ¡No se pudo cargar el recurso de fotogramas!" +#, fuzzy +msgid "No Frames Selected" +msgstr "Encuadrar selección" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Add %d Frame(s)" +msgstr "Añadir fotograma" #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Add Frame" msgstr "Añadir fotograma" #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "ERROR: Couldn't load frame resource!" +msgstr "ERROR: ¡No se pudo cargar el recurso de fotogramas!" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Resource clipboard is empty or not a texture!" msgstr "¡El portapapeles de recursos esta vacÃo o no es una textura!" @@ -6838,6 +7300,15 @@ msgid "Animation Frames:" msgstr "Fotogramas de animación:" #: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Add a Texture from File" +msgstr "Agregar Textura(s) al TileSet." + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Add Frames from a Sprite Sheet" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Insert Empty (Before)" msgstr "Insertar vacÃo (antes)" @@ -6854,6 +7325,31 @@ msgid "Move (After)" msgstr "Mover (Después)" #: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Select Frames" +msgstr "Frames del stack" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Horizontal:" +msgstr "Voltear horizontalmente" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Vertical:" +msgstr "Vértices" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Select/Clear All Frames" +msgstr "Seleccionar todo" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Create Frames from Sprite Sheet" +msgstr "Crear desde escena" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "SpriteFrames" msgstr "SpriteFrames" @@ -6918,12 +7414,13 @@ msgstr "Añadir todos" msgid "Remove All Items" msgstr "Quitar todos los elementos" -#: editor/plugins/theme_editor_plugin.cpp +#: editor/plugins/theme_editor_plugin.cpp editor/project_manager.cpp msgid "Remove All" msgstr "Quitar todos" #: editor/plugins/theme_editor_plugin.cpp -msgid "Edit theme..." +#, fuzzy +msgid "Edit Theme" msgstr "Editar tema..." #: editor/plugins/theme_editor_plugin.cpp @@ -6951,18 +7448,25 @@ msgid "Create From Current Editor Theme" msgstr "Crear desde el tema actual del editor" #: editor/plugins/theme_editor_plugin.cpp -msgid "CheckBox Radio1" -msgstr "CheckBox Radio1" +#, fuzzy +msgid "Toggle Button" +msgstr "Botón del ratón" #: editor/plugins/theme_editor_plugin.cpp -msgid "CheckBox Radio2" -msgstr "CheckBox Radio2" +#, fuzzy +msgid "Disabled Button" +msgstr "Botón del medio" #: editor/plugins/theme_editor_plugin.cpp msgid "Item" msgstr "Elemento" #: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Disabled Item" +msgstr "Desactivado" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Check Item" msgstr "Casilla de verificación" @@ -6979,6 +7483,24 @@ msgid "Checked Radio Item" msgstr "Ratio item activo" #: editor/plugins/theme_editor_plugin.cpp +msgid "Named Sep." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Submenu" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Item 1" +msgstr "Elemento" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Item 2" +msgstr "Elemento" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Has" msgstr "Tiene" @@ -6987,8 +7509,9 @@ msgid "Many" msgstr "Muchas" #: editor/plugins/theme_editor_plugin.cpp -msgid "Has,Many,Options" -msgstr "Tienes, muchas, opciones" +#, fuzzy +msgid "Disabled LineEdit" +msgstr "Desactivado" #: editor/plugins/theme_editor_plugin.cpp msgid "Tab 1" @@ -7003,6 +7526,19 @@ msgid "Tab 3" msgstr "Tab 3" #: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Editable Item" +msgstr "Hijos editables" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Subtree" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Has,Many,Options" +msgstr "Tienes, muchas, opciones" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Data Type:" msgstr "Tipo de datos:" @@ -7035,6 +7571,7 @@ msgid "Fix Invalid Tiles" msgstr "Corregir Tiles inválidos" #: editor/plugins/tile_map_editor_plugin.cpp +#: modules/gridmap/grid_map_editor_plugin.cpp msgid "Cut Selection" msgstr "Cortar Selección" @@ -7075,35 +7612,52 @@ msgid "Mirror Y" msgstr "Voltear verticalmente" #: editor/plugins/tile_map_editor_plugin.cpp +#, fuzzy +msgid "Disable Autotile" +msgstr "Autotiles" + +#: editor/plugins/tile_map_editor_plugin.cpp +#, fuzzy +msgid "Enable Priority" +msgstr "Editar Prioridad del Tile" + +#: editor/plugins/tile_map_editor_plugin.cpp msgid "Paint Tile" msgstr "Dibujar tile" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Pick Tile" -msgstr "Elegir tile" +msgid "" +"Shift+RMB: Line Draw\n" +"Shift+Ctrl+RMB: Rectangle Paint" +msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Copy Selection" -msgstr "Copiar Selección" +msgid "Pick Tile" +msgstr "Elegir tile" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Rotate left" +#, fuzzy +msgid "Rotate Left" msgstr "Rotar a la izquierda" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Rotate right" +#, fuzzy +msgid "Rotate Right" msgstr "Rotar a la derecha" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Flip horizontally" +#, fuzzy +msgid "Flip Horizontally" msgstr "Voltear horizontalmente" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Flip vertically" +#, fuzzy +msgid "Flip Vertically" msgstr "Voltear verticalmente" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Clear transform" +#, fuzzy +msgid "Clear Transform" msgstr "Reestablecer transform" #: editor/plugins/tile_set_editor_plugin.cpp @@ -7139,6 +7693,46 @@ msgid "Select the previous shape, subtile, or Tile." msgstr "Seleccionar la anterior forma, subtile, o Tile." #: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Region Mode" +msgstr "Modo de ejecución:" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Collision Mode" +msgstr "Modo de Interpolación" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Occlusion Mode" +msgstr "Editar PolÃgono de Oclusión" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Navigation Mode" +msgstr "Crear Mesh de Navegación" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Bitmask Mode" +msgstr "Modo rotación" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Priority Mode" +msgstr "Modo de exportación:" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Icon Mode" +msgstr "Modo desplazamiento lateral" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Z Index Mode" +msgstr "Modo desplazamiento lateral" + +#: editor/plugins/tile_set_editor_plugin.cpp msgid "Copy bitmask." msgstr "Copiar bitmask." @@ -7221,9 +7815,11 @@ msgid "Delete polygon." msgstr "Eliminar polÃgono." #: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy msgid "" "LMB: Set bit on.\n" "RMB: Set bit off.\n" +"Shift+LMB: Set wildcard bit.\n" "Click on another Tile to edit it." msgstr "" "Clic izq: Activar bit.\n" @@ -7341,6 +7937,79 @@ msgid "TileSet" msgstr "TileSet" #: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Add input +" +msgstr "Añadir Entrada" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Add output +" +msgstr "Añadir Entrada" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar" +msgstr "Escala:" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector" +msgstr "Inspector" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Add input port" +msgstr "Añadir Entrada" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add output port" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change input port type" +msgstr "Cambiar tipo por defecto" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change output port type" +msgstr "Cambiar tipo por defecto" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change input port name" +msgstr "Cambiar nombre de entrada" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change output port name" +msgstr "Cambiar nombre de entrada" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Remove input port" +msgstr "Quitar punto" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Remove output port" +msgstr "Quitar punto" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Set expression" +msgstr "Cambiar expresión" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Resize VisualShader node" +msgstr "VisualShader" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Set Uniform Name" msgstr "Establecer Nombre Uniforme" @@ -7357,9 +8026,8 @@ msgid "Duplicate Nodes" msgstr "Duplicar Nodos" #: editor/plugins/visual_shader_editor_plugin.cpp -#, fuzzy msgid "Delete Nodes" -msgstr "Eliminar Nodo" +msgstr "Eliminar Nodos" #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Visual Shader Input Type Changed" @@ -7378,6 +8046,859 @@ msgid "Light" msgstr "Luz" #: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Create Shader Node" +msgstr "Crear nodo" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Color function." +msgstr "Ir a Función" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Color operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Grayscale function." +msgstr "Crear función" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts HSV vector to RGB equivalent." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts RGB vector to HSV equivalent." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Sepia function." +msgstr "Renombrar función" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Burn operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Darken operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Difference operator." +msgstr "Solo las diferencias" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Dodge operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "HardLight operator" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Lighten operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Overlay operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Screen operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "SoftLight operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Color constant." +msgstr "Constante" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Color uniform." +msgstr "Reestablecer transform" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns an associated vector if the provided scalars are equal, greater or " +"less." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns an associated vector if the provided boolean value is true or false." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Boolean constant." +msgstr "Cambiar Constante Vec." + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'camera' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'inv_camera' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'inv_projection' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'normal' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'projection' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'time' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'viewport_size' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'world' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'texture_pixel_size' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Input parameter." +msgstr "Alinear al Padre" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'binormal' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'fragcoord' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_coord' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_uv' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'side' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'tangent' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv2' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'vertex' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'view' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'albedo' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'attenuation' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'diffuse' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_color' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'roughness' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'specular' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'transmission' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'modelview' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_size' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'tangent' input parameter for vertex and fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_pass' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_coord' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_pixel_size' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_uv' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_alpha' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_height' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_uv' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_vec' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'normal' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'shadow_color' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'extra' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'projection' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'vertex' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'world' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'active' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'custom' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'custom_alpha' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'delta' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'emission_transform' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'index' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'lifetime' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'restart' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'time' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'transform' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'velocity' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar function." +msgstr "Cambiar función Scalar" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar operator." +msgstr "Cambiar operador escalar" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "E constant (2.718282). Represents the base of the natural logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Epsilon constant (0.00001). Smallest possible scalar number." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Phi constant (1.618034). Golden ratio." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi/4 constant (0.785398) or 45 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi/2 constant (1.570796) or 90 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi constant (3.141593) or 180 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Tau constant (6.283185) or 360 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Sqrt2 constant (1.414214). Square root of 2." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the absolute value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-tangent of the parameters." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Finds the nearest integer that is greater than or equal to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Constrains a value to lie between two further values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts a quantity in radians to degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-e Exponential." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-2 Exponential." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Finds the nearest integer less than or equal to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Computes the fractional part of the argument." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the inverse of the square root of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Natural logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-2 logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the greater of two values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the lesser of two values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Linear interpolation between two scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the opposite value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 - scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns the value of the first parameter raised to the power of the second." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts a quantity in degrees to radians." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 / scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the nearest integer to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the nearest even integer to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Clamps the value between 0.0 and 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Extracts the sign of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the square root of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( scalar(edge0), scalar(edge1), scalar(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if x is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( scalar(edge), scalar(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the truncated value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Adds scalar to scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Divides scalar by scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies scalar by scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the remainder of the two scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Subtracts scalar from scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar constant." +msgstr "Cambiar constante escalar" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar uniform." +msgstr "Cambiar Scalar uniforme" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Perform the cubic texture lookup." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Perform the texture lookup." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Cubic texture uniform." +msgstr "Cambiar textura uniforme" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "2D texture uniform." +msgstr "Cambiar textura uniforme" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Transform function." +msgstr "Dialogo de Transformación..." + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) Calculate the outer product of a pair of vectors.\n" +"\n" +"OuterProduct treats the first parameter 'c' as a column vector (matrix with " +"one column) and the second parameter 'r' as a row vector (matrix with one " +"row) and does a linear algebraic matrix multiply 'c * r', yielding a matrix " +"whose number of rows is the number of components in 'c' and whose number of " +"columns is the number of components in 'r'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Composes transform from four vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Decomposes transform to four vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the determinant of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the inverse of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the transpose of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies transform by transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies vector by transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Transform constant." +msgstr "Se ha cancelado la transformación." + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Transform uniform." +msgstr "Se ha cancelado la transformación." + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector function." +msgstr "Asignación a función." + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector operator." +msgstr "Cambiar operador Vec" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Composes vector from three scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Decomposes vector to three scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the cross product of two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the distance between two points." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the dot product of two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns a vector that points in the same direction as a reference vector. " +"The function has three vector parameters : N, the vector to orient, I, the " +"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 "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the length of a vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Linear interpolation between two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the normalize product of vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 - vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 / vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns a vector that points in the direction of reflection ( a : incident " +"vector, b : normal vector )." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns a vector that points in the direction of refraction." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( vector(edge0), vector(edge1), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if 'x' is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( scalar(edge0), scalar(edge1), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if 'x' is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( vector(edge), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( scalar(edge), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Adds vector to vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Divides vector by vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies vector by vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the remainder of the two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Subtracts vector from vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector constant." +msgstr "Cambiar Constante Vec." + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector uniform." +msgstr "Asignación a uniform." + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Custom Godot Shader Language expression, with custom amount of input and " +"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 "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns falloff based on the dot product of surface normal and view " +"direction of camera (pass associated inputs to it)." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) (Fragment/Light mode only) Scalar derivative function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) (Fragment/Light mode only) Vector derivative function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Derivative in 'x' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Derivative in 'x' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Derivative in 'y' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Derivative in 'y' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Sum of absolute derivative " +"in 'x' and 'y'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Sum of absolute derivative " +"in 'x' and 'y'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "VisualShader" msgstr "VisualShader" @@ -7576,6 +9097,10 @@ msgid "Directory already contains a Godot project." msgstr "El directorio ya contiene un proyecto de Godot." #: editor/project_manager.cpp +msgid "New Game Project" +msgstr "Nuevo proyecto de juego" + +#: editor/project_manager.cpp msgid "Imported Project" msgstr "Proyecto importado" @@ -7624,10 +9149,6 @@ msgid "Rename Project" msgstr "Renombrar proyecto" #: editor/project_manager.cpp -msgid "New Game Project" -msgstr "Nuevo proyecto de juego" - -#: editor/project_manager.cpp msgid "Import Existing Project" msgstr "Importar proyecto existente" @@ -7656,10 +9177,6 @@ msgid "Project Name:" msgstr "Nombre del Proyecto:" #: editor/project_manager.cpp -msgid "Create folder" -msgstr "Crear carpeta" - -#: editor/project_manager.cpp msgid "Project Path:" msgstr "Ruta del proyecto:" @@ -7668,10 +9185,6 @@ msgid "Project Installation Path:" msgstr "Ruta de instalación del proyecto:" #: editor/project_manager.cpp -msgid "Browse" -msgstr "Examinar" - -#: editor/project_manager.cpp msgid "Renderer:" msgstr "Renderizador:" @@ -7726,6 +9239,7 @@ msgid "Are you sure to open more than one project?" msgstr "¿Seguro que quieres abrir más de un proyecto?" #: editor/project_manager.cpp +#, fuzzy msgid "" "The following project settings file does not specify the version of Godot " "through which it was created.\n" @@ -7734,8 +9248,8 @@ msgid "" "\n" "If you proceed with opening it, it will be converted to Godot's current " "configuration file format.\n" -"Warning: You will not be able to open the project with previous versions of " -"the engine anymore." +"Warning: You won't be able to open the project with previous versions of the " +"engine anymore." msgstr "" "El siguiente archivo de configuración del proyecto no especifica la versión " "de Godot con la que fue creado.\n" @@ -7748,6 +9262,7 @@ msgstr "" "motor." #: editor/project_manager.cpp +#, fuzzy msgid "" "The following project settings file was generated by an older engine " "version, and needs to be converted for this version:\n" @@ -7755,8 +9270,8 @@ msgid "" "%s\n" "\n" "Do you want to convert it?\n" -"Warning: You will not be able to open the project with previous versions of " -"the engine anymore." +"Warning: You won't be able to open the project with previous versions of the " +"engine anymore." msgstr "" "El siguiente archivo de configuración del proyecto fue generado por una " "versión anterior del motor y debe convertirse para esta versión:\n" @@ -7776,9 +9291,10 @@ msgstr "" "cuya configuración no es compatible con esta versión." #: editor/project_manager.cpp +#, fuzzy msgid "" "Can't run project: no main scene defined.\n" -"Please edit the project and set the main scene in \"Project Settings\" under " +"Please edit the project and set the main scene in the Project Settings under " "the \"Application\" category." msgstr "" "No hay una escena principal definida para ejecutar el proyecto.\n" @@ -7794,28 +9310,52 @@ msgstr "" "Por favor, edita el proyecto para activar el importado inicial." #: editor/project_manager.cpp -msgid "Are you sure to run more than one project?" +#, fuzzy +msgid "Are you sure to run %d projects at once?" msgstr "¿Seguro que quieres ejecutar más de un proyecto?" #: editor/project_manager.cpp -msgid "Remove project from the list? (Folder contents will not be modified)" +#, fuzzy +msgid "" +"Remove %d projects from the list?\n" +"The project folders' contents won't be modified." +msgstr "" +"¿Quieres quitar el proyecto de la lista? (El contenido de la carpeta no se " +"modificará)" + +#: editor/project_manager.cpp +#, fuzzy +msgid "" +"Remove this project from the list?\n" +"The project folder's contents won't be modified." +msgstr "" +"¿Quieres quitar el proyecto de la lista? (El contenido de la carpeta no se " +"modificará)" + +#: editor/project_manager.cpp +#, fuzzy +msgid "" +"Remove all missing projects from the list? (Folders contents will not be " +"modified)" msgstr "" "¿Quieres quitar el proyecto de la lista? (El contenido de la carpeta no se " "modificará)" #: editor/project_manager.cpp +#, fuzzy msgid "" "Language changed.\n" -"The UI will update next time the editor or project manager starts." +"The interface will update after restarting the editor or project manager." msgstr "" "Idioma cambiado.\n" "La interfaz se actualizará la próxima vez que se inicie el editor o el " "gestor de proyectos." #: editor/project_manager.cpp +#, fuzzy msgid "" -"You are about the scan %s folders for existing Godot projects. Do you " -"confirm?" +"Are you sure to scan %s folders for existing Godot projects?\n" +"This could take a while." msgstr "" "Estás a punto de analizar %s carpetas en busca de proyectos de Godot. " "¿Quieres continuar?" @@ -7841,6 +9381,11 @@ msgid "New Project" msgstr "Nuevo proyecto" #: editor/project_manager.cpp +#, fuzzy +msgid "Remove Missing" +msgstr "Quitar punto" + +#: editor/project_manager.cpp msgid "Templates" msgstr "Plantillas" @@ -7857,9 +9402,10 @@ msgid "Can't run project" msgstr "No se puede ejecutar el proyecto" #: editor/project_manager.cpp +#, fuzzy msgid "" -"You don't currently have any projects.\n" -"Would you like to explore the official example projects in the Asset Library?" +"You currently don't have any projects.\n" +"Would you like to explore official example projects in the Asset Library?" msgstr "" "Actualmente no tienes ningún proyecto.\n" "¿Quieres explorar los proyectos de ejemplo oficiales en la Biblioteca de " @@ -7890,7 +9436,8 @@ msgstr "" "'\\' o '\"'" #: editor/project_settings_editor.cpp -msgid "Action '%s' already exists!" +#, fuzzy +msgid "An action with the name '%s' already exists." msgstr "¡La acción «%s» ya existe!" #: editor/project_settings_editor.cpp @@ -8046,10 +9593,6 @@ msgstr "" "'\\' o '\"'." #: editor/project_settings_editor.cpp -msgid "Already existing" -msgstr "Ya existe" - -#: editor/project_settings_editor.cpp msgid "Add Input Action" msgstr "Añadir acción de entrada" @@ -8114,7 +9657,8 @@ msgid "Override For..." msgstr "Sustituir por..." #: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp -msgid "Editor must be restarted for changes to take effect" +#, fuzzy +msgid "The editor must be restarted for changes to take effect." msgstr "Se debe reiniciar el editor para que los cambios surtan efecto" #: editor/project_settings_editor.cpp @@ -8174,11 +9718,13 @@ msgid "Locales Filter" msgstr "Filtro de localizaciones" #: editor/project_settings_editor.cpp -msgid "Show all locales" +#, fuzzy +msgid "Show All Locales" msgstr "Mostrar todas las localizaciones" #: editor/project_settings_editor.cpp -msgid "Show only selected locales" +#, fuzzy +msgid "Show Selected Locales Only" msgstr "Mostrar solo las configuraciones regionales seleccionadas" #: editor/project_settings_editor.cpp @@ -8194,14 +9740,6 @@ msgid "AutoLoad" msgstr "AutoLoad" #: editor/property_editor.cpp -msgid "Ease In" -msgstr "Transición entrada" - -#: editor/property_editor.cpp -msgid "Ease Out" -msgstr "Transición salida" - -#: editor/property_editor.cpp msgid "Zero" msgstr "Cero" @@ -8275,7 +9813,8 @@ msgid "Suffix" msgstr "Sufijo" #: editor/rename_dialog.cpp -msgid "Advanced options" +#, fuzzy +msgid "Advanced Options" msgstr "Opciones avanzadas" #: editor/rename_dialog.cpp @@ -8537,8 +10076,9 @@ msgid "User Interface" msgstr "Interfaz de usuario" #: editor/scene_tree_dock.cpp -msgid "Custom Node" -msgstr "Nodo personalizado" +#, fuzzy +msgid "Other Node" +msgstr "Eliminar Nodo" #: editor/scene_tree_dock.cpp msgid "Can't operate on nodes from a foreign scene!" @@ -8581,7 +10121,8 @@ msgid "Clear Inheritance" msgstr "Limpiar heredado" #: editor/scene_tree_dock.cpp -msgid "Open documentation" +#, fuzzy +msgid "Open Documentation" msgstr "Abrir documentación" #: editor/scene_tree_dock.cpp @@ -8608,7 +10149,7 @@ msgstr "Unir desde escena" msgid "Save Branch as Scene" msgstr "Guardar rama como escena" -#: editor/scene_tree_dock.cpp +#: editor/scene_tree_dock.cpp editor/script_editor_debugger.cpp msgid "Copy Node Path" msgstr "Copiar ruta del nodo" @@ -8653,6 +10194,21 @@ msgid "Toggle Visible" msgstr "Act/Desact. Visible" #: editor/scene_tree_editor.cpp +#, fuzzy +msgid "Unlock Node" +msgstr "Seleccionar nodo" + +#: editor/scene_tree_editor.cpp +#, fuzzy +msgid "Button Group" +msgstr "Botón 7" + +#: editor/scene_tree_editor.cpp +#, fuzzy +msgid "(Connecting From)" +msgstr "Error de conexión" + +#: editor/scene_tree_editor.cpp msgid "Node configuration warning:" msgstr "Alerta de configuración de nodos:" @@ -8680,8 +10236,9 @@ msgstr "" "El nodo está en el/los grupo(s).\n" "Haz clic para mostrar el panel de grupos." -#: editor/scene_tree_editor.cpp editor/script_create_dialog.cpp -msgid "Open Script" +#: editor/scene_tree_editor.cpp +#, fuzzy +msgid "Open Script:" msgstr "Abrir script" #: editor/scene_tree_editor.cpp @@ -8734,71 +10291,83 @@ msgid "Select a Node" msgstr "Selecciona un nodo" #: editor/script_create_dialog.cpp -msgid "Error loading template '%s'" -msgstr "Error al cargar la plantilla '%s'" +#, fuzzy +msgid "Path is empty." +msgstr "La ruta está vacia" #: editor/script_create_dialog.cpp -msgid "Error - Could not create script in filesystem." -msgstr "Error - No se pudo crear script en el sistema de archivos." +#, fuzzy +msgid "Filename is empty." +msgstr "Nombre de archivo vacÃo" #: editor/script_create_dialog.cpp -msgid "Error loading script from %s" -msgstr "Error al cargar script desde %s" +#, fuzzy +msgid "Path is not local." +msgstr "La ruta no es local" #: editor/script_create_dialog.cpp -msgid "N/A" -msgstr "N/D" +#, fuzzy +msgid "Invalid base path." +msgstr "Ruta base incorrecta" #: editor/script_create_dialog.cpp -msgid "Open Script/Choose Location" -msgstr "Abrir script/Elegir ubicación" +#, fuzzy +msgid "A directory with the same name exists." +msgstr "Ya existe un directorio con el mismo nombre" #: editor/script_create_dialog.cpp -msgid "Path is empty" -msgstr "La ruta está vacia" +#, fuzzy +msgid "Invalid extension." +msgstr "La extensión no es correcta" #: editor/script_create_dialog.cpp -msgid "Filename is empty" -msgstr "Nombre de archivo vacÃo" +#, fuzzy +msgid "Wrong extension chosen." +msgstr "Se ha elegido una extensión incorrecta" #: editor/script_create_dialog.cpp -msgid "Path is not local" -msgstr "La ruta no es local" +msgid "Error loading template '%s'" +msgstr "Error al cargar la plantilla '%s'" #: editor/script_create_dialog.cpp -msgid "Invalid base path" -msgstr "Ruta base incorrecta" +msgid "Error - Could not create script in filesystem." +msgstr "Error - No se pudo crear script en el sistema de archivos." #: editor/script_create_dialog.cpp -msgid "Directory of the same name exists" -msgstr "Ya existe un directorio con el mismo nombre" +msgid "Error loading script from %s" +msgstr "Error al cargar script desde %s" #: editor/script_create_dialog.cpp -msgid "File exists, will be reused" -msgstr "El archivo ya existe, será reutilizado" +msgid "N/A" +msgstr "N/D" #: editor/script_create_dialog.cpp -msgid "Invalid extension" -msgstr "La extensión no es correcta" +#, fuzzy +msgid "Open Script / Choose Location" +msgstr "Abrir script/Elegir ubicación" #: editor/script_create_dialog.cpp -msgid "Wrong extension chosen" -msgstr "Se ha elegido una extensión incorrecta" +msgid "Open Script" +msgstr "Abrir script" #: editor/script_create_dialog.cpp -msgid "Invalid Path" -msgstr "Ruta inválida" +#, fuzzy +msgid "File exists, it will be reused." +msgstr "El archivo ya existe, será reutilizado" #: editor/script_create_dialog.cpp -msgid "Invalid class name" +#, fuzzy +msgid "Invalid class name." msgstr "El nombre de clase no es correcto" #: editor/script_create_dialog.cpp -msgid "Invalid inherited parent name or path" +#, fuzzy +msgid "Invalid inherited parent name or path." msgstr "Nombre heredado o ruta inválida" #: editor/script_create_dialog.cpp -msgid "Script valid" +#, fuzzy +msgid "Script is valid." msgstr "Script válido" #: editor/script_create_dialog.cpp @@ -8806,15 +10375,18 @@ msgid "Allowed: a-z, A-Z, 0-9 and _" msgstr "Permitido: a-z, A-Z, 0-9 y _" #: editor/script_create_dialog.cpp -msgid "Built-in script (into scene file)" +#, fuzzy +msgid "Built-in script (into scene file)." msgstr "Script integrado (en el archivo de escena)" #: editor/script_create_dialog.cpp -msgid "Create new script file" +#, fuzzy +msgid "Will create a new script file." msgstr "Crear nuevo archivo de script" #: editor/script_create_dialog.cpp -msgid "Load existing script file" +#, fuzzy +msgid "Will load an existing script file." msgstr "Cargar archivo de script existente" #: editor/script_create_dialog.cpp @@ -8945,6 +10517,10 @@ msgstr "RaÃz de edición en vivo:" msgid "Set From Tree" msgstr "Establecer desde árbol" +#: editor/script_editor_debugger.cpp +msgid "Export measures as CSV" +msgstr "" + #: editor/settings_config_dialog.cpp msgid "Erase Shortcut" msgstr "Eliminar Atajo" @@ -9023,11 +10599,11 @@ msgstr "Cambiar longitud de forma de rayo" #: modules/csg/csg_gizmos.cpp msgid "Change Cylinder Radius" -msgstr "Cambiar radio de Shape Cilindro" +msgstr "Cambiar Radio de Cilindro" #: modules/csg/csg_gizmos.cpp msgid "Change Cylinder Height" -msgstr "Cambiar altura de Shape Cilindro" +msgstr "Cambiar Altura de Cilindro" #: modules/csg/csg_gizmos.cpp msgid "Change Torus Inner Radius" @@ -9074,6 +10650,15 @@ msgid "GDNativeLibrary" msgstr "GDNativeLibrary" #: 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 "Desactivar indicador de actividad" + +#: modules/gdnative/gdnative_library_singleton_editor.cpp msgid "Library" msgstr "Biblioteca" @@ -9162,8 +10747,9 @@ msgid "GridMap Fill Selection" msgstr "Llenar selección en GridMap" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "GridMap Duplicate Selection" -msgstr "GridMap Duplicar selección" +#, fuzzy +msgid "GridMap Paste Selection" +msgstr "GridMap Quitar seleccionados" #: modules/gridmap/grid_map_editor_plugin.cpp msgid "GridMap Paint" @@ -9230,18 +10816,6 @@ msgid "Cursor Clear Rotation" msgstr "Quitar rotación del cursor" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Create Area" -msgstr "Crear área" - -#: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Create Exterior Connector" -msgstr "Crear conector exterior" - -#: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Erase Area" -msgstr "Borrar área" - -#: modules/gridmap/grid_map_editor_plugin.cpp msgid "Clear Selection" msgstr "Deseleccionar" @@ -9315,11 +10889,11 @@ msgstr "Fin del reporte de la pila de excepciones" #: modules/recast/navigation_mesh_editor_plugin.cpp msgid "Bake NavMesh" -msgstr "Bake de NavMesh" +msgstr "Bake NavMesh" #: modules/recast/navigation_mesh_editor_plugin.cpp msgid "Clear the navigation mesh." -msgstr "Vaciar malla de navegación." +msgstr "Restablecer mesh de navegación." #: modules/recast/navigation_mesh_generator.cpp msgid "Setting up Configuration..." @@ -9359,11 +10933,11 @@ msgstr "Creando polymesh..." #: modules/recast/navigation_mesh_generator.cpp msgid "Converting to native navigation mesh..." -msgstr "Convirtiendo a malla de navegación nativa..." +msgstr "Convirtiendo a mesh de navegación nativo..." #: modules/recast/navigation_mesh_generator.cpp msgid "Navigation Mesh Generator Setup:" -msgstr "Configuración del generador de mallas de navegación:" +msgstr "Configuración del Generador de Meshes de Navegación:" #: modules/recast/navigation_mesh_generator.cpp msgid "Parsing Geometry..." @@ -9604,18 +11178,11 @@ msgid "Available Nodes:" msgstr "Nodos disponibles:" #: modules/visual_script/visual_script_editor.cpp -msgid "Select or create a function to edit graph" +#, fuzzy +msgid "Select or create a function to edit its graph." msgstr "Selecciona o crea una función para editar el gráfico" #: modules/visual_script/visual_script_editor.cpp -msgid "Edit Signal Arguments:" -msgstr "Editar argumentos de la señal:" - -#: modules/visual_script/visual_script_editor.cpp -msgid "Edit Variable:" -msgstr "Editar variable:" - -#: modules/visual_script/visual_script_editor.cpp msgid "Delete Selected" msgstr "Quitar seleccionados" @@ -9749,6 +11316,19 @@ msgid "Debug keystore not configured in the Editor Settings nor in the preset." msgstr "Keystore debug no configurada en Ajustes del Editor ni en el preset." #: platform/android/export/export.cpp +msgid "Custom build requires a valid Android SDK path in Editor Settings." +msgstr "" + +#: platform/android/export/export.cpp +msgid "Invalid Android SDK path for custom build in Editor Settings." +msgstr "" + +#: platform/android/export/export.cpp +msgid "" +"Android project is not installed for compiling. Install from Editor menu." +msgstr "" + +#: platform/android/export/export.cpp msgid "Invalid public key for APK expansion." msgstr "Clave pública inválida para la expansión de APK." @@ -9756,6 +11336,34 @@ msgstr "Clave pública inválida para la expansión de APK." msgid "Invalid package name:" msgstr "Nombre de paquete inválido:" +#: platform/android/export/export.cpp +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 "" +"Android build version mismatch:\n" +" Template installed: %s\n" +" Godot Version: %s\n" +"Please reinstall Android build template from 'Project' menu." +msgstr "" + +#: platform/android/export/export.cpp +msgid "Building Android Project (gradle)" +msgstr "" + +#: 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 "" + +#: platform/android/export/export.cpp +msgid "No build apk generated at: " +msgstr "" + #: platform/iphone/export/export.cpp msgid "Identifier is missing." msgstr "Identificador no encontrado." @@ -10074,31 +11682,36 @@ msgid "ARVRCamera must have an ARVROrigin node as its parent" msgstr "ARVRCamera tiene que tener un nodo ARVROrigin como padre" #: scene/3d/arvr_nodes.cpp -msgid "ARVRController must have an ARVROrigin node as its parent" +#, fuzzy +msgid "ARVRController must have an ARVROrigin node as its parent." msgstr "ARVRController tiene que tener un nodo ARVROrigin como padre" #: scene/3d/arvr_nodes.cpp +#, fuzzy msgid "" -"The controller id must not be 0 or this controller will not be bound to an " -"actual controller" +"The controller ID must not be 0 or this controller won't be bound to an " +"actual controller." msgstr "" "El id del controlador no puede ser 0 o este controlador no será asignado a " "un controlador de verdad" #: scene/3d/arvr_nodes.cpp -msgid "ARVRAnchor must have an ARVROrigin node as its parent" +#, fuzzy +msgid "ARVRAnchor must have an ARVROrigin node as its parent." msgstr "ARVRAnchor tiene que tener un nodo ARVROrigin como padre" #: scene/3d/arvr_nodes.cpp +#, fuzzy msgid "" -"The anchor id must not be 0 or this anchor will not be bound to an actual " -"anchor" +"The anchor ID must not be 0 or this anchor won't be bound to an actual " +"anchor." msgstr "" "El id del ancla no puede ser 0 o este ancla no será asignada a un ancla de " "verdad" #: scene/3d/arvr_nodes.cpp -msgid "ARVROrigin requires an ARVRCamera child node" +#, fuzzy +msgid "ARVROrigin requires an ARVRCamera child node." msgstr "ARVROrigin necesita un nodo ARVRCamera hijo" #: scene/3d/baked_lightmap.cpp @@ -10181,9 +11794,10 @@ msgid "Nothing is visible because no mesh has been assigned." msgstr "Nada visible ya que no se asignó ningún mesh." #: scene/3d/cpu_particles.cpp +#, fuzzy msgid "" -"CPUParticles animation requires the usage of a SpatialMaterial with " -"\"Billboard Particles\" enabled." +"CPUParticles animation requires the usage of a SpatialMaterial whose " +"Billboard Mode is set to \"Particle Billboard\"." msgstr "" "La animación CPUParticles requiere el uso de un SpatialMaterial con " "\"Billboard Particles\" activado." @@ -10232,9 +11846,10 @@ msgstr "" "Nada es visible porque las mallas no se han asignado a los pases de dibujo." #: scene/3d/particles.cpp +#, fuzzy msgid "" -"Particles animation requires the usage of a SpatialMaterial with \"Billboard " -"Particles\" enabled." +"Particles animation requires the usage of a SpatialMaterial whose Billboard " +"Mode is set to \"Particle Billboard\"." msgstr "" "La animación de partÃculas requiere el uso de un SpatialMaterial con " "\"Billboard Particles\" activado." @@ -10268,7 +11883,8 @@ msgstr "" "La propiedad Path debe apuntar a un nodo Spatial válido para funcionar." #: scene/3d/soft_body.cpp -msgid "This body will be ignored until you set a mesh" +#, fuzzy +msgid "This body will be ignored until you set a mesh." msgstr "Este cuerpo sera ignorado hasta que le asignes un mesh" #: scene/3d/soft_body.cpp @@ -10376,10 +11992,11 @@ msgid "Add current color as a preset." msgstr "Añadir el color actual como preset." #: scene/gui/container.cpp +#, fuzzy msgid "" "Container by itself serves no purpose unless a script configures it's " "children placement behavior.\n" -"If you dont't intend to add a script, then please use a plain 'Control' node " +"If you don't intend to add a script, then please use a plain 'Control' node " "instead." msgstr "" "El contenedor por sà mismo no sirve para nada a menos que un script " @@ -10395,10 +12012,6 @@ msgstr "¡Alerta!" msgid "Please Confirm..." msgstr "Por favor, confirma..." -#: scene/gui/file_dialog.cpp -msgid "Go to parent folder." -msgstr "Ir a la carpeta padre." - #: scene/gui/popup.cpp msgid "" "Popups will hide by default unless you call popup() or any of the popup*() " @@ -10483,6 +12096,76 @@ msgstr "Asignación a uniform." msgid "Varyings can only be assigned in vertex function." msgstr "Solo se pueden asignar variaciones en funciones de vértice." +#: servers/visual/shader_language.cpp +msgid "Constants cannot be modified." +msgstr "" + +#~ msgid "Path to Node:" +#~ msgstr "Ruta al nodo:" + +#~ msgid "Delete selected files?" +#~ msgstr "¿Eliminar los archivos seleccionados?" + +#~ msgid "There is no 'res://default_bus_layout.tres' file." +#~ msgstr "No existe el archivo 'res://default_bus_layout.tres'." + +#~ 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)" + +#~ msgid "Previous Directory" +#~ msgstr "Carpeta anterior" + +#~ msgid "Next Directory" +#~ msgstr "Carpeta siguiente" + +#~ msgid "Ease in" +#~ msgstr "Transición de entrada" + +#~ msgid "Ease out" +#~ msgstr "Transición de salida" + +#~ msgid "Create Convex Static Body" +#~ msgstr "Crear cuerpo estático convexo" + +#~ msgid "CheckBox Radio1" +#~ msgstr "CheckBox Radio1" + +#~ msgid "CheckBox Radio2" +#~ msgstr "CheckBox Radio2" + +#~ msgid "Create folder" +#~ msgstr "Crear carpeta" + +#~ msgid "Already existing" +#~ msgstr "Ya existe" + +#~ msgid "Custom Node" +#~ msgstr "Nodo personalizado" + +#~ msgid "Invalid Path" +#~ msgstr "Ruta inválida" + +#~ msgid "GridMap Duplicate Selection" +#~ msgstr "GridMap Duplicar selección" + +#~ msgid "Create Area" +#~ msgstr "Crear área" + +#~ msgid "Create Exterior Connector" +#~ msgstr "Crear conector exterior" + +#~ msgid "Edit Signal Arguments:" +#~ msgstr "Editar argumentos de la señal:" + +#~ msgid "Edit Variable:" +#~ msgstr "Editar variable:" + #~ msgid "Snap (s): " #~ msgstr "Snap (s): " @@ -10605,9 +12288,6 @@ msgstr "Solo se pueden asignar variaciones en funciones de vértice." #~ msgid "Class List:" #~ msgstr "Lista de clases:" -#~ msgid "Search Classes" -#~ msgstr "Buscar clases" - #~ msgid "Public Methods" #~ msgstr "Métodos públicos" @@ -10684,9 +12364,6 @@ msgstr "Solo se pueden asignar variaciones en funciones de vértice." #~ msgid "Error:" #~ msgstr "Error:" -#~ msgid "Source:" -#~ msgstr "Fuente:" - #~ msgid "Function:" #~ msgstr "Función:" @@ -10708,21 +12385,9 @@ msgstr "Solo se pueden asignar variaciones en funciones de vértice." #~ msgid "Get" #~ msgstr "Get" -#~ msgid "Change Scalar Constant" -#~ msgstr "Cambiar constante escalar" - -#~ msgid "Change Vec Constant" -#~ msgstr "Cambiar Constante Vec." - #~ msgid "Change RGB Constant" #~ msgstr "Cambiar Constante RGB" -#~ msgid "Change Scalar Operator" -#~ msgstr "Cambiar operador escalar" - -#~ msgid "Change Vec Operator" -#~ msgstr "Cambiar operador Vec" - #~ msgid "Change Vec Scalar Operator" #~ msgstr "Cambiar operador Vec Scalar" @@ -10732,15 +12397,9 @@ msgstr "Solo se pueden asignar variaciones en funciones de vértice." #~ msgid "Toggle Rot Only" #~ msgstr "Act/desact. solo Rot" -#~ msgid "Change Scalar Function" -#~ msgstr "Cambiar función Scalar" - #~ msgid "Change Vec Function" #~ msgstr "Cambiar función Vec" -#~ msgid "Change Scalar Uniform" -#~ msgstr "Cambiar Scalar uniforme" - #~ msgid "Change Vec Uniform" #~ msgstr "Cambiar Vec uniforme" @@ -10753,9 +12412,6 @@ msgstr "Solo se pueden asignar variaciones en funciones de vértice." #~ msgid "Change XForm Uniform" #~ msgstr "Cambiar XForm uniforme" -#~ msgid "Change Texture Uniform" -#~ msgstr "Cambiar textura uniforme" - #~ msgid "Change Cubemap Uniform" #~ msgstr "Cambiar Cubemap uniforme" @@ -10774,9 +12430,6 @@ msgstr "Solo se pueden asignar variaciones en funciones de vértice." #~ msgid "Modify Curve Map" #~ msgstr "Modificar mapa de curvas" -#~ msgid "Change Input Name" -#~ msgstr "Cambiar nombre de entrada" - #~ msgid "Connect Graph Nodes" #~ msgstr "Conectar nodos gráficos" @@ -10804,9 +12457,6 @@ msgstr "Solo se pueden asignar variaciones en funciones de vértice." #~ msgid "Add Shader Graph Node" #~ msgstr "Añadir nodo gráfico del shader" -#~ msgid "Disabled" -#~ msgstr "Desactivado" - #~ msgid "Move Anim Track Up" #~ msgstr "Subir pista de animación" @@ -10990,17 +12640,11 @@ msgstr "Solo se pueden asignar variaciones en funciones de vértice." #~ msgid "Item name or ID:" #~ msgstr "Nombre o ID de Item:" -#~ msgid "Autotiles" -#~ msgstr "Autotiles" - #~ msgid "Export templates for this platform are missing/corrupted: " #~ msgstr "" #~ "Las plantillas de exportación para esta plataforma faltan/están " #~ "corruptas: " -#~ msgid "Button 7" -#~ msgstr "Botón 7" - #~ msgid "Button 8" #~ msgstr "Botón 8" @@ -11937,9 +13581,6 @@ msgstr "Solo se pueden asignar variaciones en funciones de vértice." #~ msgid "Project Export Settings" #~ msgstr "Ajustes de exportación del proyecto" -#~ msgid "Target" -#~ msgstr "Objetivo" - #~ msgid "Export to Platform" #~ msgstr "Exportar a plataforma" @@ -11994,9 +13635,6 @@ msgstr "Solo se pueden asignar variaciones en funciones de vértice." #~ msgid "Shrink By:" #~ msgstr "Reducir por:" -#~ msgid "Preview Atlas" -#~ msgstr "Vista previa del atlas" - #~ msgid "Images:" #~ msgstr "Imágenes:" diff --git a/editor/translations/es_AR.po b/editor/translations/es_AR.po index e27603d799..cc6522a41a 100644 --- a/editor/translations/es_AR.po +++ b/editor/translations/es_AR.po @@ -10,12 +10,14 @@ # Reynaldo Cruz <rcruz60@gmail.com>, 2018. # Javier Ocampos <xavier.ocampos@gmail.com>, 2018, 2019. # Andrés S <andres.segovia.dev@gmail.com>, 2019. +# Florencia Menéndez <mariaflormz2@gmail.com>, 2019. +# roger <616steam@gmail.com>, 2019. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2019-03-30 20:04+0000\n" -"Last-Translator: Lisandro Lorea <lisandrolorea@gmail.com>\n" +"PO-Revision-Date: 2019-05-28 10:40+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" @@ -23,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.6-dev\n" +"X-Generator: Weblate 3.7-dev\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -68,7 +70,7 @@ msgstr "En la llamada a '%s':" #: editor/animation_bezier_editor.cpp #: editor/plugins/asset_library_editor_plugin.cpp msgid "Free" -msgstr "Libre" +msgstr "Gratis" #: editor/animation_bezier_editor.cpp msgid "Balanced" @@ -78,6 +80,15 @@ msgstr "Balanceado" msgid "Mirror" msgstr "Espejar" +#: editor/animation_bezier_editor.cpp editor/editor_profiler.cpp +msgid "Time:" +msgstr "Tiempo:" + +#: editor/animation_bezier_editor.cpp +#, fuzzy +msgid "Value:" +msgstr "Valor" + #: editor/animation_bezier_editor.cpp msgid "Insert Key Here" msgstr "Insertar Clave AquÃ" @@ -160,12 +171,16 @@ msgid "Animation Playback Track" msgstr "Pista de Reproducción de Animación" #: editor/animation_track_editor.cpp -msgid "Add Track" -msgstr "Agregar Pista" +msgid "Animation length (frames)" +msgstr "Duración de la animación (frames)" + +#: editor/animation_track_editor.cpp +msgid "Animation length (seconds)" +msgstr "Duración de la animación (segundos)" #: editor/animation_track_editor.cpp -msgid "Animation Length Time (seconds)" -msgstr "Tiempo de Duración de la Animación (segundos)" +msgid "Add Track" +msgstr "Agregar Pista" #: editor/animation_track_editor.cpp msgid "Animation Looping" @@ -291,11 +306,13 @@ msgid "Create %d NEW tracks and insert keys?" msgstr "Crear %d NUEVOS tracks e insertar claves?" #: editor/animation_track_editor.cpp editor/create_dialog.cpp -#: editor/editor_audio_buses.cpp editor/editor_plugin_settings.cpp -#: editor/plugin_config_dialog.cpp +#: editor/editor_audio_buses.cpp editor/editor_feature_profile.cpp +#: editor/editor_plugin_settings.cpp editor/plugin_config_dialog.cpp #: editor/plugins/abstract_polygon_2d_editor.cpp #: editor/plugins/mesh_instance_editor_plugin.cpp -#: editor/plugins/particles_editor_plugin.cpp editor/script_create_dialog.cpp +#: editor/plugins/particles_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_create_dialog.cpp msgid "Create" msgstr "Crear" @@ -415,6 +432,23 @@ msgstr "" "única." #: editor/animation_track_editor.cpp +msgid "" +"This animation belongs to an imported scene, so changes to imported tracks " +"will not be saved.\n" +"\n" +"To enable the ability to add custom tracks, navigate to the scene's import " +"settings and set\n" +"\"Animation > Storage\" to \"Files\", enable \"Animation > Keep Custom Tracks" +"\", then re-import.\n" +"Alternatively, use an import preset that imports animations to separate " +"files." +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Warning: Editing imported animation" +msgstr "" + +#: editor/animation_track_editor.cpp msgid "Only show tracks from nodes selected in tree." msgstr "Mostrar solo las pistas de los nodos seleccionados en el árbol." @@ -423,9 +457,8 @@ msgid "Group tracks by node or display them as plain list." msgstr "Agrupar las pistas por nodo o mostrarlas como una lista plana." #: editor/animation_track_editor.cpp -#, fuzzy msgid "Snap:" -msgstr "Esnapear" +msgstr "Snap:" #: editor/animation_track_editor.cpp msgid "Animation step value." @@ -433,7 +466,7 @@ msgstr "Valor de paso de animación." #: editor/animation_track_editor.cpp msgid "Seconds" -msgstr "" +msgstr "Segundos" #: editor/animation_track_editor.cpp msgid "FPS" @@ -548,7 +581,8 @@ msgstr "Ratio de Escala:" msgid "Select tracks to copy:" msgstr "Elegir pistas a copiar:" -#: editor/animation_track_editor.cpp editor/editor_properties.cpp +#: editor/animation_track_editor.cpp editor/editor_log.cpp +#: editor/editor_properties.cpp #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp @@ -616,6 +650,11 @@ msgstr "Reemplazar Todo" msgid "Selection Only" msgstr "Solo Selección" +#: editor/code_editor.cpp editor/plugins/script_text_editor.cpp +#: editor/plugins/text_editor.cpp +msgid "Standard" +msgstr "Estándar" + #: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/texture_region_editor_plugin.cpp #: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp @@ -641,21 +680,39 @@ msgid "Line and column numbers." msgstr "Números de lÃnea y columna." #: editor/connections_dialog.cpp -msgid "Method in target Node must be specified!" +#, fuzzy +msgid "Method in target node must be specified." msgstr "El método en el Nodo objetivo debe ser especificado!" #: editor/connections_dialog.cpp +#, fuzzy msgid "" -"Target method not found! Specify a valid method or attach a script to target " -"Node." +"Target method not found. Specify a valid method or attach a script to the " +"target node." msgstr "" "El método objetivo no fue encontrado! Especificá un método válido o agregá " "un script al Nodo objetivo." #: editor/connections_dialog.cpp -msgid "Connect To Node:" +#, fuzzy +msgid "Connect to Node:" msgstr "Conectar a Nodo:" +#: editor/connections_dialog.cpp +#, fuzzy +msgid "Connect to Script:" +msgstr "No se puede conectar al host:" + +#: editor/connections_dialog.cpp +#, fuzzy +msgid "From Signal:" +msgstr "Señales:" + +#: editor/connections_dialog.cpp +#, fuzzy +msgid "Scene does not contain any script." +msgstr "El nodo no contiene geometrÃa." + #: editor/connections_dialog.cpp editor/editor_autoload_settings.cpp #: editor/groups_editor.cpp editor/plugins/item_list_editor_plugin.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_settings_editor.cpp @@ -663,10 +720,12 @@ msgid "Add" msgstr "Agregar" #: editor/connections_dialog.cpp editor/dependency_editor.cpp -#: editor/groups_editor.cpp editor/plugins/animation_player_editor_plugin.cpp +#: editor/editor_feature_profile.cpp editor/groups_editor.cpp +#: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp #: editor/plugins/resource_preloader_editor_plugin.cpp -#: editor/plugins/theme_editor_plugin.cpp editor/project_manager.cpp +#: editor/plugins/theme_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_manager.cpp #: editor/project_settings_editor.cpp msgid "Remove" msgstr "Quitar" @@ -680,21 +739,32 @@ msgid "Extra Call Arguments:" msgstr "Argumentos de Llamada Extras:" #: editor/connections_dialog.cpp -msgid "Path to Node:" -msgstr "Ruta al Nodo:" - -#: editor/connections_dialog.cpp -msgid "Make Function" -msgstr "Crear Función" +#, fuzzy +msgid "Advanced" +msgstr "Opciones avanzadas" #: editor/connections_dialog.cpp msgid "Deferred" msgstr "Diferido" #: editor/connections_dialog.cpp +msgid "" +"Defers the signal, storing it in a queue and only firing it at idle time." +msgstr "" + +#: editor/connections_dialog.cpp msgid "Oneshot" msgstr "Oneshot" +#: editor/connections_dialog.cpp +msgid "Disconnects the signal after its first emission." +msgstr "" + +#: editor/connections_dialog.cpp +#, fuzzy +msgid "Cannot connect signal" +msgstr "Conectar Señal: " + #: editor/connections_dialog.cpp editor/dependency_editor.cpp #: editor/export_template_manager.cpp editor/groups_editor.cpp #: editor/plugins/animation_player_editor_plugin.cpp @@ -735,11 +805,13 @@ msgid "Disconnect" msgstr "Desconectar" #: editor/connections_dialog.cpp -msgid "Connect Signal: " +#, fuzzy +msgid "Connect a Signal to a Method" msgstr "Conectar Señal: " #: editor/connections_dialog.cpp -msgid "Edit Connection: " +#, fuzzy +msgid "Edit Connection:" msgstr "Editar Conexión: " #: editor/connections_dialog.cpp @@ -772,7 +844,6 @@ msgid "Change %s Type" msgstr "Cambiar Tipo de %s" #: editor/create_dialog.cpp editor/project_settings_editor.cpp -#: modules/visual_script/visual_script_editor.cpp msgid "Change" msgstr "Cambiar" @@ -803,7 +874,8 @@ msgid "Matches:" msgstr "Coincidencias:" #: editor/create_dialog.cpp editor/plugin_config_dialog.cpp -#: editor/plugins/asset_library_editor_plugin.cpp editor/property_selector.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/property_selector.cpp #: modules/visual_script/visual_script_property_selector.cpp msgid "Description:" msgstr "Descripción:" @@ -817,17 +889,19 @@ msgid "Dependencies For:" msgstr "Dependencias Para:" #: editor/dependency_editor.cpp +#, fuzzy msgid "" "Scene '%s' is currently being edited.\n" -"Changes will not take effect unless reloaded." +"Changes will only take effect when reloaded." msgstr "" "La Escena '%s' esté siendo editada actualmente.\n" "Los cambios no tendrán efecto hasta recargarlo." #: editor/dependency_editor.cpp +#, fuzzy msgid "" "Resource '%s' is in use.\n" -"Changes will take effect when reloaded." +"Changes will only take effect when reloaded." msgstr "El recurso '%s' está en uso. Los cambios tendrán efecto al recargarlo." #: editor/dependency_editor.cpp @@ -921,21 +995,14 @@ msgid "Permanently delete %d item(s)? (No undo!)" msgstr "Eliminar permanentemente %d item(s)? (Imposible deshacer!)" #: editor/dependency_editor.cpp -msgid "Owns" -msgstr "Es Dueño De" - -#: editor/dependency_editor.cpp -msgid "Resources Without Explicit Ownership:" -msgstr "Recursos Sin Propietario ExplÃcito:" +#, fuzzy +msgid "Show Dependencies" +msgstr "Dependencias" #: editor/dependency_editor.cpp editor/editor_node.cpp msgid "Orphan Resource Explorer" msgstr "Explorador de Recursos Huérfanos" -#: editor/dependency_editor.cpp -msgid "Delete selected files?" -msgstr "Eliminar archivos seleccionados?" - #: editor/dependency_editor.cpp editor/editor_audio_buses.cpp #: editor/editor_file_dialog.cpp editor/editor_node.cpp #: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp @@ -944,6 +1011,14 @@ msgstr "Eliminar archivos seleccionados?" msgid "Delete" msgstr "Eliminar" +#: editor/dependency_editor.cpp +msgid "Owns" +msgstr "Es Dueño De" + +#: editor/dependency_editor.cpp +msgid "Resources Without Explicit Ownership:" +msgstr "Recursos Sin Propietario ExplÃcito:" + #: editor/dictionary_property_edit.cpp msgid "Change Dictionary Key" msgstr "Cambiar Clave del Diccionario" @@ -1057,7 +1132,7 @@ msgstr "El Paquete se instaló exitosamente!" msgid "Success!" msgstr "¡Conseguido!" -#: editor/editor_asset_installer.cpp +#: editor/editor_asset_installer.cpp editor/editor_node.cpp #: editor/plugins/asset_library_editor_plugin.cpp msgid "Install" msgstr "Instalar" @@ -1184,8 +1259,12 @@ msgid "Open Audio Bus Layout" msgstr "Abrir Layout de Bus de Audio" #: editor/editor_audio_buses.cpp -msgid "There is no 'res://default_bus_layout.tres' file." -msgstr "No hay nigún archivo 'res://default_bus_layout.tres'." +msgid "There is no '%s' file." +msgstr "" + +#: editor/editor_audio_buses.cpp editor/plugins/canvas_item_editor_plugin.cpp +msgid "Layout" +msgstr "Layout" #: editor/editor_audio_buses.cpp msgid "Invalid file, not an audio bus layout." @@ -1238,24 +1317,31 @@ msgid "Valid characters:" msgstr "Caracteres válidos:" #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing engine class name." +#, fuzzy +msgid "Must not collide with an existing engine class name." msgstr "" "Nombre inválido. No debe colisionar con un nombre existente de clases del " "engine." #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing buit-in type name." +#, fuzzy +msgid "Must not collide with an existing buit-in type name." msgstr "" "Nombre inválido. No debe colisionar con un nombre existente de un tipo built-" "in." #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing global constant name." +#, fuzzy +msgid "Must not collide with an existing global constant name." msgstr "" "Nombre inválido. No debe colisionar con un nombre de constante global " "existente." #: editor/editor_autoload_settings.cpp +msgid "Keyword cannot be used as an autoload name." +msgstr "" + +#: editor/editor_autoload_settings.cpp msgid "Autoload '%s' already exists!" msgstr "Autocargar '%s' ya existe!" @@ -1283,11 +1369,12 @@ msgstr "Activar" msgid "Rearrange Autoloads" msgstr "Reordenar Autoloads" -#: editor/editor_autoload_settings.cpp -msgid "Invalid Path." +#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp +#, fuzzy +msgid "Invalid path." msgstr "Ruta inválida." -#: editor/editor_autoload_settings.cpp +#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp msgid "File does not exist." msgstr "El archivo existe." @@ -1338,7 +1425,8 @@ msgid "[unsaved]" msgstr "[sin guardar]" #: editor/editor_dir_dialog.cpp -msgid "Please select a base directory first" +#, fuzzy +msgid "Please select a base directory first." msgstr "Por favor elegà un directorio base primero" #: editor/editor_dir_dialog.cpp @@ -1346,7 +1434,8 @@ msgid "Choose a Directory" msgstr "Elegà un Directorio" #: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp -#: editor/filesystem_dock.cpp scene/gui/file_dialog.cpp +#: editor/filesystem_dock.cpp editor/project_manager.cpp +#: scene/gui/file_dialog.cpp msgid "Create Folder" msgstr "Crear Carpeta" @@ -1422,6 +1511,178 @@ msgstr "Plantilla release personalizada no encontrada." msgid "Template file not found:" msgstr "Plantilla no encontrada:" +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "3D Editor" +msgstr "Editor" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Script Editor" +msgstr "Abrir en Editor de Script" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Asset Library" +msgstr "Abrir Biblioteca de Assets" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Scene Tree Editing" +msgstr "Arbol de Escenas (Nodos):" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Import Dock" +msgstr "Importar" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Node Dock" +msgstr "Nodo Movido" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Filesystem Dock" +msgstr "Sistema de Archivos" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Erase profile '%s'? (no undo)" +msgstr "Reemplazar todo (no se puede deshacer)" + +#: editor/editor_feature_profile.cpp +msgid "Profile must be a valid filename and must not contain '.'" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Profile with this name already exists." +msgstr "Un archivo o carpeta con este nombre ya existe." + +#: editor/editor_feature_profile.cpp +msgid "(Editor Disabled, Properties Disabled)" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "(Properties Disabled)" +msgstr "Solo Propiedades" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "(Editor Disabled)" +msgstr "Clip Desactivado" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Class Options:" +msgstr "Descripción de Clase:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enable Contextual Editor" +msgstr "Abrir el Editor siguiente" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enabled Properties:" +msgstr "Propiedades:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enabled Features:" +msgstr "CaracterÃsticas" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enabled Classes:" +msgstr "Buscar Clases" + +#: editor/editor_feature_profile.cpp +msgid "File '%s' format is invalid, import aborted." +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "" +"Profile '%s' already exists. Remote it first before importing, import " +"aborted." +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Error saving profile to path: '%s'." +msgstr "Error al cargar la plantilla '%s'" + +#: editor/editor_feature_profile.cpp +msgid "Unset" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Current Profile" +msgstr "Version Actual:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Make Current" +msgstr "Actual:" + +#: editor/editor_feature_profile.cpp +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "New" +msgstr "Nuevo" + +#: editor/editor_feature_profile.cpp editor/editor_node.cpp +#: editor/plugins/asset_library_editor_plugin.cpp editor/project_manager.cpp +msgid "Import" +msgstr "Importar" + +#: editor/editor_feature_profile.cpp editor/editor_node.cpp +#: editor/project_export.cpp +msgid "Export" +msgstr "Exportar" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Available Profiles" +msgstr "Nodos Disponibles:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enabled Classes" +msgstr "Buscar Clases" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Class Options" +msgstr "Descripción de Clase" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "New profile name:" +msgstr "Nuevo nombre:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Erase Profile" +msgstr "Borrar Ãrea" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Import Profile(s)" +msgstr "Proyecto Importado" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Export Profile" +msgstr "Exportar Proyecto" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Manage Editor Feature Profiles" +msgstr "Gestionar Plantillas de Exportación" + #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Select Current Folder" msgstr "Seleccionar Carpeta Actual" @@ -1442,8 +1703,8 @@ msgstr "Copiar Ruta" msgid "Open in File Manager" msgstr "Abrir en el Explorador de Archivos" -#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp -#: editor/project_manager.cpp +#: editor/editor_file_dialog.cpp editor/editor_node.cpp +#: editor/filesystem_dock.cpp editor/project_manager.cpp msgid "Show in File Manager" msgstr "Mostrar en Explorador de Archivos" @@ -1502,7 +1763,7 @@ msgstr "Avanzar" msgid "Go Up" msgstr "Subir" -#: editor/editor_file_dialog.cpp +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Toggle Hidden Files" msgstr "Act/Desact. Archivos Ocultos" @@ -1534,14 +1795,19 @@ msgstr "Carpeta Anterior" msgid "Next Folder" msgstr "Carpeta Siguiente" -#: editor/editor_file_dialog.cpp -msgid "Go to parent folder" -msgstr "Ir a carpeta padre" +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp +msgid "Go to parent folder." +msgstr "Ir a la carpeta padre." #: editor/editor_file_dialog.cpp msgid "(Un)favorite current folder." msgstr "Quitar carpeta actual de favoritos." +#: editor/editor_file_dialog.cpp +#, fuzzy +msgid "Toggle visibility of hidden files." +msgstr "Act/Desact. Archivos Ocultos" + #: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp msgid "View items as a grid of thumbnails." msgstr "Ver Ãtems como una grilla de miniaturas." @@ -1556,6 +1822,7 @@ msgstr "Directorios y Archivos:" #: editor/editor_file_dialog.cpp editor/plugins/sprite_editor_plugin.cpp #: editor/plugins/style_box_editor_plugin.cpp +#: editor/plugins/theme_editor_plugin.cpp msgid "Preview:" msgstr "Vista Previa:" @@ -1572,6 +1839,12 @@ msgid "ScanSources" msgstr "EscanearFuentes" #: editor/editor_file_system.cpp +msgid "" +"There are multiple importers for different types pointing to file %s, import " +"aborted" +msgstr "" + +#: editor/editor_file_system.cpp msgid "(Re)Importing Assets" msgstr "(Re)Importando Assets" @@ -1754,6 +2027,10 @@ msgstr "Asignar Múltiples:" msgid "Output:" msgstr "Salida:" +#: editor/editor_log.cpp editor/plugins/tile_map_editor_plugin.cpp +msgid "Copy Selection" +msgstr "Copiar Selección" + #: editor/editor_log.cpp editor/editor_profiler.cpp #: editor/editor_properties.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp @@ -1911,9 +2188,10 @@ msgstr "" "mejor este workflow." #: editor/editor_node.cpp +#, fuzzy msgid "" "This resource belongs to a scene that was instanced or inherited.\n" -"Changes to it will not be kept when saving the current scene." +"Changes to it won't be kept when saving the current scene." msgstr "" "Este recurso pertenece a una escena que fue instanciada o heredada.\n" "Los cambios que se le realicen no perduraran al guardar la escena actual." @@ -1927,8 +2205,9 @@ msgstr "" "el panel de importación y luego reimportá." #: editor/editor_node.cpp +#, fuzzy msgid "" -"This scene was imported, so changes to it will not be kept.\n" +"This scene was imported, so changes to it won't be kept.\n" "Instancing it or inheriting will allow making changes to it.\n" "Please read the documentation relevant to importing scenes to better " "understand this workflow." @@ -1940,8 +2219,9 @@ msgstr "" "mejor este workflow." #: editor/editor_node.cpp +#, fuzzy msgid "" -"This is a remote object so changes to it will not be kept.\n" +"This is a remote object, so changes to it won't be kept.\n" "Please read the documentation relevant to debugging to better understand " "this workflow." msgstr "" @@ -1954,37 +2234,6 @@ msgid "There is no defined scene to run." msgstr "No hay escena definida para ejecutar." #: editor/editor_node.cpp -msgid "" -"No main scene has ever been defined, select one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" -"No se ha definido ninguna escena principal, ¿elegir una?\n" -"Es posible cambiarla más tarde en \"Ajustes del Proyecto\" bajo la categorÃa " -"'aplicación'." - -#: editor/editor_node.cpp -msgid "" -"Selected scene '%s' does not exist, select a valid one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" -"La escena '%s' seleccionada no existe, ¿seleccionar una válida?\n" -"Es posible cambiarla más tarde en \"Ajustes del Proyecto\" bajo la categoria " -"'aplicacion'." - -#: editor/editor_node.cpp -msgid "" -"Selected scene '%s' is not a scene file, select a valid one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" -"La escena '%s' seleccionada no es un archivo de escena, ¿seleccionar uno " -"válido?\n" -"Es posible cambiarla más tarde en \"Ajustes del Proyecto\" bajo la categoria " -"'aplicacion'." - -#: editor/editor_node.cpp msgid "Current scene was never saved, please save it prior to running." msgstr "" "La escena actual nunca se guardó. Favor de guardarla antes de ejecutar." @@ -1993,7 +2242,7 @@ msgstr "" msgid "Could not start subprocess!" msgstr "No se pudo comenzar el subproceso!" -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/filesystem_dock.cpp msgid "Open Scene" msgstr "Abrir Escena" @@ -2002,6 +2251,11 @@ msgid "Open Base Scene" msgstr "Abrir Escena Base" #: editor/editor_node.cpp +#, fuzzy +msgid "Quick Open..." +msgstr "Abrir Escena Rapido..." + +#: editor/editor_node.cpp msgid "Quick Open Scene..." msgstr "Abrir Escena Rapido..." @@ -2183,6 +2437,37 @@ msgid "Clear Recent Scenes" msgstr "Restablecer Escenas Recientes" #: editor/editor_node.cpp +msgid "" +"No main scene has ever been defined, select one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" +"No se ha definido ninguna escena principal, ¿elegir una?\n" +"Es posible cambiarla más tarde en \"Ajustes del Proyecto\" bajo la categorÃa " +"'aplicación'." + +#: editor/editor_node.cpp +msgid "" +"Selected scene '%s' does not exist, select a valid one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" +"La escena '%s' seleccionada no existe, ¿seleccionar una válida?\n" +"Es posible cambiarla más tarde en \"Ajustes del Proyecto\" bajo la categoria " +"'aplicacion'." + +#: editor/editor_node.cpp +msgid "" +"Selected scene '%s' is not a scene file, select a valid one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" +"La escena '%s' seleccionada no es un archivo de escena, ¿seleccionar uno " +"válido?\n" +"Es posible cambiarla más tarde en \"Ajustes del Proyecto\" bajo la categoria " +"'aplicacion'." + +#: editor/editor_node.cpp msgid "Save Layout" msgstr "Guardar Layout" @@ -2208,6 +2493,19 @@ msgstr "Reproducir Esta Escena" msgid "Close Tab" msgstr "Cerrar Pestaña" +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +msgid "Close Other Tabs" +msgstr "Cerrar Otras Pestañas" + +#: editor/editor_node.cpp +msgid "Close Tabs to the Right" +msgstr "" + +#: editor/editor_node.cpp +#, fuzzy +msgid "Close All Tabs" +msgstr "Cerrar Todos" + #: editor/editor_node.cpp msgid "Switch Scene Tab" msgstr "Cambiar Pestaña de Escena" @@ -2330,10 +2628,6 @@ msgstr "Proyecto" msgid "Project Settings" msgstr "Configuración de Proyecto" -#: editor/editor_node.cpp editor/project_export.cpp -msgid "Export" -msgstr "Exportar" - #: editor/editor_node.cpp editor/plugins/tile_set_editor_plugin.cpp msgid "Tools" msgstr "Herramientas" @@ -2343,6 +2637,10 @@ msgid "Open Project Data Folder" msgstr "Abrir Carpeta de Datos del Proyecto" #: editor/editor_node.cpp +msgid "Install Android Build Template" +msgstr "" + +#: editor/editor_node.cpp msgid "Quit to Project List" msgstr "Salir a Listado de Proyecto" @@ -2467,6 +2765,11 @@ msgstr "Abrir Carpeta de Datos del Editor" msgid "Open Editor Settings Folder" msgstr "Abrir Carpeta de Configuración del Editor" +#: editor/editor_node.cpp +#, fuzzy +msgid "Manage Editor Features" +msgstr "Gestionar Plantillas de Exportación" + #: editor/editor_node.cpp editor/project_export.cpp msgid "Manage Export Templates" msgstr "Gestionar Plantillas de Exportación" @@ -2479,6 +2782,7 @@ msgstr "Ayuda" #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp #: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp #: editor/project_settings_editor.cpp editor/rename_dialog.cpp msgid "Search" msgstr "Buscar" @@ -2568,11 +2872,6 @@ msgstr "Actualizar Cambios" msgid "Disable Update Spinner" msgstr "Desactivar Update Spinner" -#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp -#: editor/project_manager.cpp -msgid "Import" -msgstr "Importar" - #: editor/editor_node.cpp msgid "FileSystem" msgstr "Sistema de Archivos" @@ -2598,6 +2897,28 @@ msgid "Don't Save" msgstr "No Guardar" #: editor/editor_node.cpp +msgid "Android build template is missing, please install relevant templates." +msgstr "" + +#: editor/editor_node.cpp +#, fuzzy +msgid "Manage Templates" +msgstr "Gestionar Plantillas de Exportación" + +#: editor/editor_node.cpp +msgid "" +"This will install the Android project for custom builds.\n" +"Note that, in order to use it, it needs to be enabled per export preset." +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"Android build template is already installed and it won't be overwritten.\n" +"Remove the \"build\" directory manually before attempting this operation " +"again." +msgstr "" + +#: editor/editor_node.cpp msgid "Import Templates From ZIP File" msgstr "Importar Plantillas Desde Archivo ZIP" @@ -2720,10 +3041,6 @@ msgid "Physics Frame %" msgstr "Frames de FÃsica %" #: editor/editor_profiler.cpp -msgid "Time:" -msgstr "Tiempo:" - -#: editor/editor_profiler.cpp msgid "Inclusive" msgstr "Inclusivo" @@ -2866,10 +3183,6 @@ msgid "Remove Item" msgstr "Remover Item" #: editor/editor_run_native.cpp -msgid "Select device from the list" -msgstr "Seleccionar dispositivo de la lista" - -#: editor/editor_run_native.cpp msgid "" "No runnable export preset found for this platform.\n" "Please add a runnable preset in the export menu." @@ -2906,6 +3219,10 @@ msgstr "Te olvidaste del método '_run'?" msgid "Select Node(s) to Import" msgstr "Seleccionar Nodo(s) para Importar" +#: editor/editor_sub_scene.cpp editor/project_manager.cpp +msgid "Browse" +msgstr "Examinar" + #: editor/editor_sub_scene.cpp msgid "Scene Path:" msgstr "Ruta a la Escena:" @@ -3072,6 +3389,11 @@ msgid "SSL Handshake Error" msgstr "Error de Handshake SSL" #: editor/export_template_manager.cpp +#, fuzzy +msgid "Uncompressing Android Build Sources" +msgstr "Descomprimiendo Assets" + +#: editor/export_template_manager.cpp msgid "Current Version:" msgstr "Version Actual:" @@ -3088,7 +3410,8 @@ msgid "Remove Template" msgstr "Remover Plantilla" #: editor/export_template_manager.cpp -msgid "Select template file" +#, fuzzy +msgid "Select Template File" msgstr "Elegir archivo de plantilla" #: editor/export_template_manager.cpp @@ -3150,7 +3473,8 @@ msgid "No name provided." msgstr "No se indicó ningún nombre." #: editor/filesystem_dock.cpp -msgid "Provided name contains invalid characters" +#, fuzzy +msgid "Provided name contains invalid characters." msgstr "El nombre indicado contiene caracteres inválidos" #: editor/filesystem_dock.cpp @@ -3178,19 +3502,27 @@ msgid "Duplicating folder:" msgstr "Duplicando carpeta:" #: editor/filesystem_dock.cpp -msgid "Open Scene(s)" -msgstr "Abrir Escena(s)" +#, fuzzy +msgid "New Inherited Scene" +msgstr "Nueva Escena Heredada..." + +#: editor/filesystem_dock.cpp +#, fuzzy +msgid "Open Scenes" +msgstr "Abrir Escena" #: editor/filesystem_dock.cpp msgid "Instance" msgstr "Instancia" #: editor/filesystem_dock.cpp -msgid "Add to favorites" +#, fuzzy +msgid "Add to Favorites" msgstr "Agregar a favoritos" #: editor/filesystem_dock.cpp -msgid "Remove from favorites" +#, fuzzy +msgid "Remove from Favorites" msgstr "Quitar de favoritos" #: editor/filesystem_dock.cpp @@ -3221,11 +3553,13 @@ msgstr "Nuevo Script.." msgid "New Resource..." msgstr "Nuevo Recurso..." -#: editor/filesystem_dock.cpp editor/script_editor_debugger.cpp +#: editor/filesystem_dock.cpp editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_editor_debugger.cpp msgid "Expand All" msgstr "Expandir Todos" -#: editor/filesystem_dock.cpp editor/script_editor_debugger.cpp +#: editor/filesystem_dock.cpp editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_editor_debugger.cpp msgid "Collapse All" msgstr "Colapsar Todos" @@ -3237,19 +3571,22 @@ msgid "Rename" msgstr "Renombrar" #: editor/filesystem_dock.cpp -msgid "Previous Directory" -msgstr "Directorio Previo" +#, fuzzy +msgid "Previous Folder/File" +msgstr "Carpeta Anterior" #: editor/filesystem_dock.cpp -msgid "Next Directory" -msgstr "Directorio Siguiente" +#, fuzzy +msgid "Next Folder/File" +msgstr "Carpeta Siguiente" #: editor/filesystem_dock.cpp msgid "Re-Scan Filesystem" msgstr "Reexaminar Sistema de Archivos" #: editor/filesystem_dock.cpp -msgid "Toggle split mode" +#, fuzzy +msgid "Toggle Split Mode" msgstr "Act/Desact. Modo Partido" #: editor/filesystem_dock.cpp @@ -3280,7 +3617,7 @@ msgstr "Sobreescribir" msgid "Create Script" msgstr "Crear Script" -#: editor/find_in_files.cpp +#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp msgid "Find in Files" msgstr "Buscar en archivos" @@ -3296,6 +3633,12 @@ msgstr "Carpeta:" msgid "Filters:" msgstr "Filtros:" +#: editor/find_in_files.cpp +msgid "" +"Include the files with the following extensions. Add or remove them in " +"ProjectSettings." +msgstr "" + #: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp msgid "Find..." @@ -3735,7 +4078,8 @@ msgid "Open Animation Node" msgstr "Abrir Nodo de Animación" #: editor/plugins/animation_blend_space_2d_editor.cpp -msgid "Triangle already exists" +#, fuzzy +msgid "Triangle already exists." msgstr "El triángulo ya existe" #: editor/plugins/animation_blend_space_2d_editor.cpp @@ -3810,7 +4154,6 @@ msgid "Node Moved" msgstr "Nodo Movido" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Unable to connect, port may be in use or connection may be invalid." msgstr "" "No se pudo conectar, el puerto podrÃa estar en uso o la conexión ser " @@ -3885,7 +4228,8 @@ msgid "Edit Filtered Tracks:" msgstr "Editar Pistas Filtradas:" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -msgid "Enable filtering" +#, fuzzy +msgid "Enable Filtering" msgstr "Habilitar filtrado" #: editor/plugins/animation_player_editor_plugin.cpp @@ -4002,10 +4346,6 @@ msgid "Animation" msgstr "Animación" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "New" -msgstr "Nuevo" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Edit Transitions..." msgstr "Editar Transiciones..." @@ -4022,14 +4362,15 @@ msgid "Autoplay on Load" msgstr "Autoreproducir al Cargar" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Onion Skinning" -msgstr "Papel Cebolla" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Enable Onion Skinning" msgstr "Activar Onion Skinning" #: editor/plugins/animation_player_editor_plugin.cpp +#, fuzzy +msgid "Onion Skinning Options" +msgstr "Papel Cebolla" + +#: editor/plugins/animation_player_editor_plugin.cpp msgid "Directions" msgstr "Direcciones" @@ -4487,7 +4828,7 @@ msgid "" "No meshes to bake. Make sure they contain an UV2 channel and that the 'Bake " "Light' flag is on." msgstr "" -"No hay meshes para hacer bake. Asegurate que contienen un canal UV2 y que el " +"No hay meshes para hacer bake. Asegúrate que contienen un canal UV2 y que el " "flag 'Bake Light' esta activado." #: editor/plugins/baked_lightmap_editor_plugin.cpp @@ -4498,7 +4839,7 @@ msgstr "" #: editor/plugins/baked_lightmap_editor_plugin.cpp msgid "Bake Lightmaps" -msgstr "Hacer Bake de Lightmaps" +msgstr "Bake Lightmaps" #: editor/plugins/camera_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp editor/rename_dialog.cpp @@ -4578,10 +4919,6 @@ msgid "Move CanvasItem" msgstr "Mover CanvasItem" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Presets for the anchors and margins values of a Control node." -msgstr "Presets para los valores de anclajes y márgenes de un nodo Control." - -#: editor/plugins/canvas_item_editor_plugin.cpp msgid "" "Children of containers have their anchors and margins values overridden by " "their parent." @@ -4590,6 +4927,16 @@ msgstr "" "padres." #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Presets for the anchors and margins values of a Control node." +msgstr "Presets para los valores de anclajes y márgenes de un nodo Control." + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"When active, moving Control nodes changes their anchors instead of their " +"margins." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Anchors only" msgstr "Solo anclas" @@ -4602,10 +4949,52 @@ msgid "Change Anchors" msgstr "Cambiar Anclas" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Lock Selected" +msgstr "Seleccionar Herramienta" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Unlock Selected" +msgstr "Eliminar Seleccionados" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Group Selected" +msgstr "Copiar Selección" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Ungroup Selected" +msgstr "Copiar Selección" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Paste Pose" msgstr "Pegar Pose" #: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Create Custom Bone(s) from Node(s)" +msgstr "Crear Hueso(s) Personalizados a partir de Nodo(s)" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Clear Bones" +msgstr "Restablecer Pose" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Make IK Chain" +msgstr "Crear Cadena IK" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Clear IK Chain" +msgstr "Reestrablecer Cadena IK" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "" "Warning: Children of a container get their position and size determined only " "by their parent." @@ -4683,7 +5072,8 @@ msgid "Snapping Options" msgstr "Opciones de Alineado" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to grid" +#, fuzzy +msgid "Snap to Grid" msgstr "Alinear a la grilla" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4704,31 +5094,38 @@ msgid "Use Pixel Snap" msgstr "Usar Pixel Snap" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Smart snapping" +#, fuzzy +msgid "Smart Snapping" msgstr "Alineado inteligente" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to parent" +#, fuzzy +msgid "Snap to Parent" msgstr "Alinear al Padre" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node anchor" +#, fuzzy +msgid "Snap to Node Anchor" msgstr "Alinear al ancla de nodo" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node sides" +#, fuzzy +msgid "Snap to Node Sides" msgstr "Alinear a los lados del nodo" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node center" +#, fuzzy +msgid "Snap to Node Center" msgstr "Alinear al centro del nodo" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to other nodes" +#, fuzzy +msgid "Snap to Other Nodes" msgstr "Alinear a otros nodos" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to guides" +#, fuzzy +msgid "Snap to Guides" msgstr "Alinear a guÃas" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4742,10 +5139,12 @@ msgid "Unlock the selected object (can be moved)." msgstr "Desinmovilizar Objeto." #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Makes sure the object's children are not selectable." msgstr "Asegurarse que los hijos de un objeto no sean seleccionables." #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Restores the object's children's ability to be selected." msgstr "Restaurar la habilidad de seleccionar los hijos de un objeto." @@ -4758,14 +5157,6 @@ msgid "Show Bones" msgstr "Mostrar Huesos" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Make IK Chain" -msgstr "Crear Cadena IK" - -#: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Clear IK Chain" -msgstr "Reestrablecer Cadena IK" - -#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Make Custom Bone(s) from Node(s)" msgstr "Crear Hueso(s) Personalizados a partir de Nodo(s)" @@ -4816,25 +5207,25 @@ msgid "Frame Selection" msgstr "Encuadrar Selección" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Layout" -msgstr "Layout" +#, fuzzy +msgid "Preview Canvas Scale" +msgstr "Vista Previa de Atlas" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Translation mask for inserting keys." -msgstr "" +msgstr "Máscara de traslación para insertar claves." #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Rotation mask for inserting keys." -msgstr "" +msgstr "Máscara de rotación para insertar claves." #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Scale mask for inserting keys." -msgstr "" +msgstr "Máscara de escala para insertar claves." #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Insert keys (based on mask)." -msgstr "Insertar Claves (Ins)" +msgstr "Insertar claves (basadas en máscara)." #: editor/plugins/canvas_item_editor_plugin.cpp msgid "" @@ -4843,11 +5234,15 @@ msgid "" "Keys are only added to existing tracks, no new tracks will be created.\n" "Keys must be inserted manually for the first time." msgstr "" +"Inserción automática de claves cuando los objetos son trasladados, rotados o " +"escalados (basado en máscara).\n" +"Las claves sólo se añaden a las pistas existentes, no se crearán nuevas " +"pistas.\n" +"Las claves deben insertarse manualmente por primera vez." #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Auto Insert Key" -msgstr "Insertar Clave de Animación" +msgstr "Auto Insertar Clave" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Insert Key (Existing Tracks)" @@ -4870,6 +5265,11 @@ msgid "Divide grid step by 2" msgstr "Dividir step de grilla por 2" #: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Pan View" +msgstr "Vista Anterior" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Add %s" msgstr "Agregar %s" @@ -4892,7 +5292,8 @@ msgid "Error instancing scene from %s" msgstr "Error al instanciar escena desde %s" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Change default type" +#, fuzzy +msgid "Change Default Type" msgstr "Cambiar typo por defecto" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4980,20 +5381,22 @@ msgid "Create Emission Points From Node" msgstr "Crear Puntos de Emisión Desde Nodo" #: editor/plugins/curve_editor_plugin.cpp -msgid "Flat0" +#, fuzzy +msgid "Flat 0" msgstr "Flat0" #: editor/plugins/curve_editor_plugin.cpp -msgid "Flat1" +#, fuzzy +msgid "Flat 1" msgstr "Flat1" -#: editor/plugins/curve_editor_plugin.cpp -msgid "Ease in" -msgstr "Ease in" +#: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp +msgid "Ease In" +msgstr "Ease In" -#: editor/plugins/curve_editor_plugin.cpp -msgid "Ease out" -msgstr "Ease out" +#: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp +msgid "Ease Out" +msgstr "Ease Out" #: editor/plugins/curve_editor_plugin.cpp msgid "Smoothstep" @@ -5012,23 +5415,28 @@ msgid "Load Curve Preset" msgstr "Cargar Preset de Curva" #: editor/plugins/curve_editor_plugin.cpp -msgid "Add point" +#, fuzzy +msgid "Add Point" msgstr "Agregar punto" #: editor/plugins/curve_editor_plugin.cpp -msgid "Remove point" +#, fuzzy +msgid "Remove Point" msgstr "Quitar punto" #: editor/plugins/curve_editor_plugin.cpp -msgid "Left linear" +#, fuzzy +msgid "Left Linear" msgstr "Lineal izquierda" #: editor/plugins/curve_editor_plugin.cpp -msgid "Right linear" +#, fuzzy +msgid "Right Linear" msgstr "Lineal derecha" #: editor/plugins/curve_editor_plugin.cpp -msgid "Load preset" +#, fuzzy +msgid "Load Preset" msgstr "Cargar preset" #: editor/plugins/curve_editor_plugin.cpp @@ -5045,7 +5453,7 @@ msgstr "Mantené Shift para editar tangentes individualmente" #: editor/plugins/gi_probe_editor_plugin.cpp msgid "Bake GI Probe" -msgstr "Hacer Bake de GI Probe" +msgstr "Bake GI Probe" #: editor/plugins/gradient_editor_plugin.cpp msgid "Gradient Edited" @@ -5069,7 +5477,7 @@ msgstr "Crear PolÃgono Oclusor" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Mesh is empty!" -msgstr "El Mesh está vacÃo!" +msgstr "¡El Mesh está vacÃo!" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Static Trimesh Body" @@ -5084,11 +5492,17 @@ msgid "This doesn't work on scene root!" msgstr "Esto no funciona en una escena raiz!" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Trimesh Shape" +#, fuzzy +msgid "Create Trimesh Static Shape" msgstr "Crear Trimesh Shape" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Shape" +msgid "Failed creating shapes!" +msgstr "" + +#: editor/plugins/mesh_instance_editor_plugin.cpp +#, fuzzy +msgid "Create Convex Shape(s)" msgstr "Crear Shape Convexa" #: editor/plugins/mesh_instance_editor_plugin.cpp @@ -5097,11 +5511,11 @@ msgstr "Crear Mesh de Navegación" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Contained Mesh is not of type ArrayMesh." -msgstr "La Mesh contenida no es del tipo ArrayMesh." +msgstr "El Mesh contenedor no es del tipo ArrayMesh." #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "UV Unwrap failed, mesh may not be manifold?" -msgstr "Fallo el UV Unwrap, la mesh podria no ser manifold?" +msgstr "Fallo el UV Unwrap ¿el mesh podrÃa no ser manifold?" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "No mesh to debug." @@ -5114,15 +5528,15 @@ msgstr "El modelo no tiene UV en esta capa" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "MeshInstance lacks a Mesh!" -msgstr "A MeshInstance le falta un Mesh!" +msgstr "¡MeshInstance le falta un Mesh!" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Mesh has not surface to create outlines from!" -msgstr "El mesh no tiene una superficie de donde crear contornos(outlines)!" +msgstr "¡El mesh no tiene una superficie de donde crear contornos!" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Mesh primitive type is not PRIMITIVE_TRIANGLES!" -msgstr "El tipo de la malla primitiva no es PRIMITIVE_TRIANGLES!" +msgstr "¡El tipo primitivo de mesh no es PRIMITIVE_TRIANGLES!" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Could not create outline!" @@ -5141,15 +5555,12 @@ msgid "Create Trimesh Static Body" msgstr "Crear Body Estático Trimesh" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Static Body" -msgstr "Crear Body Estático Convexo" - -#: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Trimesh Collision Sibling" msgstr "Crear Trimesh Collision Sibling" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Collision Sibling" +#, fuzzy +msgid "Create Convex Collision Sibling(s)" msgstr "Crear Collision Sibling Convexo" #: editor/plugins/mesh_instance_editor_plugin.cpp @@ -5200,7 +5611,7 @@ msgstr "Acutalizar desde Escena" #: editor/plugins/multimesh_editor_plugin.cpp msgid "No mesh source specified (and no MultiMesh set in node)." msgstr "" -"No se especificó mesh de origen (y no hay MultiMesh seteado en el nodo)." +"No se especificó mesh de origen (y no hay MultiMesh establecido en el nodo)." #: editor/plugins/multimesh_editor_plugin.cpp msgid "No mesh source specified (and MultiMesh contains no Mesh)." @@ -5216,7 +5627,7 @@ msgstr "Mesh de origen inválido (no es un MeshInstance)." #: editor/plugins/multimesh_editor_plugin.cpp msgid "Mesh source is invalid (contains no Mesh resource)." -msgstr "Mesh de origen inválido (no contiene ningun recurso Mesh)." +msgstr "Mesh de origen inválido (no contiene ningún recurso Mesh)." #: editor/plugins/multimesh_editor_plugin.cpp msgid "No surface source specified." @@ -5280,7 +5691,7 @@ msgstr "Eje-Z" #: editor/plugins/multimesh_editor_plugin.cpp msgid "Mesh Up Axis:" -msgstr "Eje Arriba del Mesh:" +msgstr "Eje Superior del Mesh:" #: editor/plugins/multimesh_editor_plugin.cpp msgid "Random Rotation:" @@ -5304,6 +5715,11 @@ msgid "Create Navigation Polygon" msgstr "Crear PolÃgono de Navegación" #: editor/plugins/particles_2d_editor_plugin.cpp +#: editor/plugins/particles_editor_plugin.cpp +msgid "Convert to CPUParticles" +msgstr "Convertir A CPUParticles" + +#: editor/plugins/particles_2d_editor_plugin.cpp msgid "Generating Visibility Rect" msgstr "Generando Rect. de Visibilidad" @@ -5318,11 +5734,6 @@ msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp #: editor/plugins/particles_editor_plugin.cpp -msgid "Convert to CPUParticles" -msgstr "Convertir A CPUParticles" - -#: editor/plugins/particles_2d_editor_plugin.cpp -#: editor/plugins/particles_editor_plugin.cpp msgid "Generation Time (sec):" msgstr "Tiempo de Generación (seg):" @@ -5460,7 +5871,7 @@ msgstr "Cerrar Curva" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp editor/plugins/theme_editor_plugin.cpp -#: editor/project_export.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_export.cpp msgid "Options" msgstr "Opciones" @@ -5511,7 +5922,8 @@ msgid "Split Segment (in curve)" msgstr "Partir Segmento (en curva)" #: editor/plugins/physical_bone_plugin.cpp -msgid "Move joint" +#, fuzzy +msgid "Move Joint" msgstr "Mover unión" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5752,7 +6164,6 @@ msgid "Open in Editor" msgstr "Abrir en Editor" #: editor/plugins/resource_preloader_editor_plugin.cpp -#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Load Resource" msgstr "Cargar Recurso" @@ -5837,9 +6248,13 @@ msgid "Save Theme As..." msgstr "Guardar Tema Como..." #: editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "%s Class Reference" -msgstr " Referencia de Clases" +msgstr "%s Referencia de Clase" + +#: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp +msgid "Find Next" +msgstr "Encontrar Siguiente" #: editor/plugins/script_editor_plugin.cpp msgid "Toggle alphabetical sorting of the method list." @@ -5922,10 +6337,6 @@ msgstr "Cerrar Docs" msgid "Close All" msgstr "Cerrar Todos" -#: editor/plugins/script_editor_plugin.cpp -msgid "Close Other Tabs" -msgstr "Cerrar Otras Pestañas" - #: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp msgid "Run" msgstr "Ejecutar" @@ -5934,11 +6345,6 @@ msgstr "Ejecutar" msgid "Toggle Scripts Panel" msgstr "Act/Desact. Panel de Scripts" -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/script_text_editor.cpp -msgid "Find Next" -msgstr "Encontrar Siguiente" - #: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp msgid "Step Over" msgstr "Step Over" @@ -5965,7 +6371,8 @@ msgid "Debug with External Editor" msgstr "Depurar con Editor Externo" #: editor/plugins/script_editor_plugin.cpp -msgid "Open Godot online documentation" +#, fuzzy +msgid "Open Godot online documentation." msgstr "Abrir la documentación online de Godot" #: editor/plugins/script_editor_plugin.cpp @@ -5973,7 +6380,8 @@ msgid "Request Docs" msgstr "Solicitar Docum." #: editor/plugins/script_editor_plugin.cpp -msgid "Help improve the Godot documentation by giving feedback" +#, fuzzy +msgid "Help improve the Godot documentation by giving feedback." msgstr "Ayudá a mejorar la documentación de Godot dando feedback" #: editor/plugins/script_editor_plugin.cpp @@ -6001,10 +6409,12 @@ msgstr "" "¿Qué acción se deberÃa tomar?:" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp msgid "Reload" msgstr "Volver a Cargar" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp msgid "Resave" msgstr "Volver a Guardar" @@ -6017,6 +6427,31 @@ msgid "Search Results" msgstr "Resultados de la Búsqueda" #: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Connections to method:" +msgstr "Conectar a Nodo:" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Source" +msgstr "Fuente:" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Signal" +msgstr "Señales" + +#: editor/plugins/script_text_editor.cpp +msgid "Target" +msgstr "Objetivo" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "" +"Missing connected method '%s' for signal '%s' from node '%s' to node '%s'." +msgstr "Nada conectado a la entrada '%s' del nodo '%s'." + +#: editor/plugins/script_text_editor.cpp msgid "Line" msgstr "LÃnea" @@ -6028,10 +6463,6 @@ msgstr "(ignorar)" msgid "Go to Function" msgstr "Ir a Función" -#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp -msgid "Standard" -msgstr "Estándar" - #: editor/plugins/script_text_editor.cpp msgid "Only resources from filesystem can be dropped." msgstr "Solo se pueden depositar recursos del sistema de archivos." @@ -6064,6 +6495,11 @@ msgstr "Capitalizar" msgid "Syntax Highlighter" msgstr "Resaltador de sintaxis" +#: editor/plugins/script_text_editor.cpp +#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp +msgid "Bookmarks" +msgstr "" + #: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" @@ -6091,6 +6527,26 @@ msgid "Toggle Comment" msgstr "Act/Desact. Comentario" #: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Toggle Bookmark" +msgstr "Act./Desact. Vista Libre" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Go to Next Bookmark" +msgstr "Ir al Breakpoint Siguiente" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Go to Previous Bookmark" +msgstr "Ir al Breakpoint Anterior" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Remove All Bookmarks" +msgstr "Quitar Todos los Ãtems" + +#: editor/plugins/script_text_editor.cpp msgid "Fold/Unfold Line" msgstr "Expandir/Colapsar LÃnea" @@ -6164,6 +6620,15 @@ msgid "Contextual Help" msgstr "Ayuda Contextual" #: editor/plugins/shader_editor_plugin.cpp +#, fuzzy +msgid "" +"This shader has been modified on on disk.\n" +"What action should be taken?" +msgstr "" +"Los siguientes archivos son nuevos en disco.\n" +"¿Qué acción se deberÃa tomar?:" + +#: editor/plugins/shader_editor_plugin.cpp msgid "Shader" msgstr "Shader" @@ -6506,7 +6971,8 @@ msgid "Right View" msgstr "Vista Derecha" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Switch Perspective/Orthogonal view" +#, fuzzy +msgid "Switch Perspective/Orthogonal View" msgstr "Intercambiar entre vista Perspectiva/Orthogonal" #: editor/plugins/spatial_editor_plugin.cpp @@ -6546,11 +7012,13 @@ msgid "Toggle Freelook" msgstr "Act./Desact. Vista Libre" #: editor/plugins/spatial_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Transform" msgstr "Transform" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Snap object to floor" +#, fuzzy +msgid "Snap Object to Floor" msgstr "Ajustar objeto al suelo" #: editor/plugins/spatial_editor_plugin.cpp @@ -6663,24 +7131,20 @@ msgid "Nameless gizmo" msgstr "Gizmo sin nombre" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy msgid "Create Mesh2D" -msgstr "Crear Mesh 2D" +msgstr "Crear Mesh2D" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy msgid "Create Polygon2D" -msgstr "Crear Polygon3D" +msgstr "Crear Polygon2D" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy msgid "Create CollisionPolygon2D" -msgstr "Crear PolÃgono de Colisión" +msgstr "Crear CollisionPolygon2D" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy msgid "Create LightOccluder2D" -msgstr "Crear PolÃgono Oclusor" +msgstr "Crear LightOccluder2D" #: editor/plugins/sprite_editor_plugin.cpp msgid "Sprite is empty!" @@ -6695,43 +7159,36 @@ msgid "Invalid geometry, can't replace by mesh." msgstr "GeometrÃa inválida, no se puede reemplazar por mesh." #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy -msgid "Invalid geometry, can't create polygon." -msgstr "GeometrÃa inválida, no se puede reemplazar por mesh." +msgid "Convert to Mesh2D" +msgstr "Convertir a Mesh2D" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy -msgid "Invalid geometry, can't create collision polygon." -msgstr "GeometrÃa inválida, no se puede reemplazar por mesh." +msgid "Invalid geometry, can't create polygon." +msgstr "GeometrÃa inválida, no es posible crear un polÃgono." #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy -msgid "Invalid geometry, can't create light occluder." -msgstr "GeometrÃa inválida, no se puede reemplazar por mesh." +msgid "Convert to Polygon2D" +msgstr "Convertir a Polygon2D" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Sprite" -msgstr "Sprite" +msgid "Invalid geometry, can't create collision polygon." +msgstr "GeometrÃa inválida, no es posible crear un polÃgono de colisión." #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy -msgid "Convert to Mesh2D" -msgstr "Convertir A Mesh 2D" +msgid "Create CollisionPolygon2D Sibling" +msgstr "Crear hermano de CollisionPolygon2D" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy -msgid "Convert to Polygon2D" -msgstr "Mover PolÃgono" +msgid "Invalid geometry, can't create light occluder." +msgstr "GeometrÃa inválida, no es posible crear un oclusor de luz." #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy -msgid "Create CollisionPolygon2D Sibling" -msgstr "Crear PolÃgono de Colisión" +msgid "Create LightOccluder2D Sibling" +msgstr "Crear hermano de LightOccluder2D" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy -msgid "Create LightOccluder2D Sibling" -msgstr "Crear PolÃgono Oclusor" +msgid "Sprite" +msgstr "Sprite" #: editor/plugins/sprite_editor_plugin.cpp msgid "Simplification: " @@ -6750,14 +7207,24 @@ msgid "Settings:" msgstr "Configuración:" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "ERROR: Couldn't load frame resource!" -msgstr "ERROR: No se pudo cargar el recurso de frames!" +#, fuzzy +msgid "No Frames Selected" +msgstr "Encuadrar Selección" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Add %d Frame(s)" +msgstr "Agregar Frame" #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Add Frame" msgstr "Agregar Frame" #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "ERROR: Couldn't load frame resource!" +msgstr "ERROR: No se pudo cargar el recurso de frames!" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Resource clipboard is empty or not a texture!" msgstr "El portapapeles de recursos esta vacÃo o no es una textura!" @@ -6798,6 +7265,15 @@ msgid "Animation Frames:" msgstr "Fotogramas de animación:" #: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Add a Texture from File" +msgstr "Agregar Textura(s) al TileSet." + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Add Frames from a Sprite Sheet" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Insert Empty (Before)" msgstr "Insertar VacÃo (Antes)" @@ -6814,6 +7290,31 @@ msgid "Move (After)" msgstr "Mover (Despues)" #: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Select Frames" +msgstr "Frames del Stack" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Horizontal:" +msgstr "Espejar horizontalmente" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Vertical:" +msgstr "Vértices" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Select/Clear All Frames" +msgstr "Seleccionar Todo" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Create Frames from Sprite Sheet" +msgstr "Crear desde Escena" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "SpriteFrames" msgstr "SpriteFrames" @@ -6878,12 +7379,13 @@ msgstr "Agregar Todos" msgid "Remove All Items" msgstr "Quitar Todos los Ãtems" -#: editor/plugins/theme_editor_plugin.cpp +#: editor/plugins/theme_editor_plugin.cpp editor/project_manager.cpp msgid "Remove All" msgstr "Quitar Todos" #: editor/plugins/theme_editor_plugin.cpp -msgid "Edit theme..." +#, fuzzy +msgid "Edit Theme" msgstr "Editar tema..." #: editor/plugins/theme_editor_plugin.cpp @@ -6911,18 +7413,25 @@ msgid "Create From Current Editor Theme" msgstr "Crear Desde Tema de Editor Actual" #: editor/plugins/theme_editor_plugin.cpp -msgid "CheckBox Radio1" -msgstr "CheckBox Radio1" +#, fuzzy +msgid "Toggle Button" +msgstr "Botón de Mouse" #: editor/plugins/theme_editor_plugin.cpp -msgid "CheckBox Radio2" -msgstr "CheckBox Radio2" +#, fuzzy +msgid "Disabled Button" +msgstr "Botón del Medio" #: editor/plugins/theme_editor_plugin.cpp msgid "Item" msgstr "Item" #: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Disabled Item" +msgstr "Desactivado" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Check Item" msgstr "Tildar Item" @@ -6939,6 +7448,24 @@ msgid "Checked Radio Item" msgstr "Radio Item Tildado" #: editor/plugins/theme_editor_plugin.cpp +msgid "Named Sep." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Submenu" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Item 1" +msgstr "Item" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Item 2" +msgstr "Item" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Has" msgstr "Tiene" @@ -6947,8 +7474,9 @@ msgid "Many" msgstr "Muchas" #: editor/plugins/theme_editor_plugin.cpp -msgid "Has,Many,Options" -msgstr "Tiene,Muchas,Opciones" +#, fuzzy +msgid "Disabled LineEdit" +msgstr "Desactivado" #: editor/plugins/theme_editor_plugin.cpp msgid "Tab 1" @@ -6963,6 +7491,19 @@ msgid "Tab 3" msgstr "Tab 3" #: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Editable Item" +msgstr "Hijos Editables" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Subtree" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Has,Many,Options" +msgstr "Tiene,Muchas,Opciones" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Data Type:" msgstr "Tipo de Datos:" @@ -6995,6 +7536,7 @@ msgid "Fix Invalid Tiles" msgstr "Corregir Tiles Inválidos" #: editor/plugins/tile_map_editor_plugin.cpp +#: modules/gridmap/grid_map_editor_plugin.cpp msgid "Cut Selection" msgstr "Cortar Selección" @@ -7035,35 +7577,52 @@ msgid "Mirror Y" msgstr "Espejar Y" #: editor/plugins/tile_map_editor_plugin.cpp +#, fuzzy +msgid "Disable Autotile" +msgstr "Autotiles" + +#: editor/plugins/tile_map_editor_plugin.cpp +#, fuzzy +msgid "Enable Priority" +msgstr "Editar Prioridad de Tile" + +#: editor/plugins/tile_map_editor_plugin.cpp msgid "Paint Tile" msgstr "Pintar Tile" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Pick Tile" -msgstr "Elegir Tile" +msgid "" +"Shift+RMB: Line Draw\n" +"Shift+Ctrl+RMB: Rectangle Paint" +msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Copy Selection" -msgstr "Copiar Selección" +msgid "Pick Tile" +msgstr "Elegir Tile" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Rotate left" +#, fuzzy +msgid "Rotate Left" msgstr "Rotar a la izquierda" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Rotate right" +#, fuzzy +msgid "Rotate Right" msgstr "Rotar a la derecha" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Flip horizontally" +#, fuzzy +msgid "Flip Horizontally" msgstr "Espejar horizontalmente" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Flip vertically" +#, fuzzy +msgid "Flip Vertically" msgstr "Espejar verticalmente" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Clear transform" +#, fuzzy +msgid "Clear Transform" msgstr "Reestablecer transform" #: editor/plugins/tile_set_editor_plugin.cpp @@ -7099,6 +7658,46 @@ msgid "Select the previous shape, subtile, or Tile." msgstr "Seleccionar la forma, subtile o Tile anterior." #: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Region Mode" +msgstr "Modo de Ejecución:" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Collision Mode" +msgstr "Modo de Interpolación" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Occlusion Mode" +msgstr "Editar PolÃgono de Oclusión" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Navigation Mode" +msgstr "Crear Mesh de Navegación" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Bitmask Mode" +msgstr "Modo Rotar" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Priority Mode" +msgstr "Modo de Exportación:" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Icon Mode" +msgstr "Modo Paneo" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Z Index Mode" +msgstr "Modo Paneo" + +#: editor/plugins/tile_set_editor_plugin.cpp msgid "Copy bitmask." msgstr "Copiar bitmask." @@ -7180,9 +7779,11 @@ msgid "Delete polygon." msgstr "Eliminar polÃgono." #: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy msgid "" "LMB: Set bit on.\n" "RMB: Set bit off.\n" +"Shift+LMB: Set wildcard bit.\n" "Click on another Tile to edit it." msgstr "" "Click izq: Activar bit.\n" @@ -7300,6 +7901,79 @@ msgid "TileSet" msgstr "TileSet" #: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Add input +" +msgstr "Agregar Entrada" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Add output +" +msgstr "Agregar Entrada" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar" +msgstr "Escala:" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector" +msgstr "Inspector" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Add input port" +msgstr "Agregar Entrada" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add output port" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change input port type" +msgstr "Cambiar typo por defecto" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change output port type" +msgstr "Cambiar typo por defecto" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change input port name" +msgstr "Cambiar Nombre de Entrada" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change output port name" +msgstr "Cambiar Nombre de Entrada" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Remove input port" +msgstr "Quitar punto" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Remove output port" +msgstr "Quitar punto" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Set expression" +msgstr "Cambiar Expresión" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Resize VisualShader node" +msgstr "VisualShader" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Set Uniform Name" msgstr "Asignar Nombre a Uniform" @@ -7316,9 +7990,8 @@ msgid "Duplicate Nodes" msgstr "Duplicar Nodos" #: editor/plugins/visual_shader_editor_plugin.cpp -#, fuzzy msgid "Delete Nodes" -msgstr "Eliminar Nodo" +msgstr "Eliminar Nodos" #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Visual Shader Input Type Changed" @@ -7337,6 +8010,859 @@ msgid "Light" msgstr "Luz" #: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Create Shader Node" +msgstr "Crear Nodo" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Color function." +msgstr "Ir a Función" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Color operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Grayscale function." +msgstr "Crear Función" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts HSV vector to RGB equivalent." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts RGB vector to HSV equivalent." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Sepia function." +msgstr "Renombrar Función" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Burn operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Darken operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Difference operator." +msgstr "Solo Diferencias" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Dodge operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "HardLight operator" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Lighten operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Overlay operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Screen operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "SoftLight operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Color constant." +msgstr "Constante" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Color uniform." +msgstr "Reestablecer transform" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns an associated vector if the provided scalars are equal, greater or " +"less." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns an associated vector if the provided boolean value is true or false." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Boolean constant." +msgstr "Cambiar Constante Vec." + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'camera' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'inv_camera' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'inv_projection' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'normal' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'projection' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'time' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'viewport_size' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'world' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'texture_pixel_size' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Input parameter." +msgstr "Alinear al Padre" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'binormal' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'fragcoord' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_coord' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_uv' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'side' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'tangent' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv2' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'vertex' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'view' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'albedo' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'attenuation' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'diffuse' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_color' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'roughness' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'specular' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'transmission' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'modelview' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_size' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'tangent' input parameter for vertex and fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_pass' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_coord' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_pixel_size' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_uv' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_alpha' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_height' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_uv' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_vec' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'normal' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'shadow_color' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'extra' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'projection' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'vertex' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'world' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'active' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'custom' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'custom_alpha' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'delta' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'emission_transform' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'index' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'lifetime' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'restart' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'time' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'transform' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'velocity' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar function." +msgstr "Cambiar Función Escalar" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar operator." +msgstr "Cambiar Operador Escalar" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "E constant (2.718282). Represents the base of the natural logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Epsilon constant (0.00001). Smallest possible scalar number." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Phi constant (1.618034). Golden ratio." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi/4 constant (0.785398) or 45 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi/2 constant (1.570796) or 90 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi constant (3.141593) or 180 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Tau constant (6.283185) or 360 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Sqrt2 constant (1.414214). Square root of 2." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the absolute value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-tangent of the parameters." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Finds the nearest integer that is greater than or equal to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Constrains a value to lie between two further values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts a quantity in radians to degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-e Exponential." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-2 Exponential." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Finds the nearest integer less than or equal to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Computes the fractional part of the argument." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the inverse of the square root of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Natural logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-2 logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the greater of two values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the lesser of two values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Linear interpolation between two scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the opposite value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 - scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns the value of the first parameter raised to the power of the second." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts a quantity in degrees to radians." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 / scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the nearest integer to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the nearest even integer to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Clamps the value between 0.0 and 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Extracts the sign of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the square root of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( scalar(edge0), scalar(edge1), scalar(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if x is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( scalar(edge), scalar(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the truncated value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Adds scalar to scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Divides scalar by scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies scalar by scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the remainder of the two scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Subtracts scalar from scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar constant." +msgstr "Cambiar Constante Escalar" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar uniform." +msgstr "Cambiar Uniforme Escalar" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Perform the cubic texture lookup." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Perform the texture lookup." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Cubic texture uniform." +msgstr "Cambiar Uniforme Textura" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "2D texture uniform." +msgstr "Cambiar Uniforme Textura" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Transform function." +msgstr "Cuadro de diálogo de Transform..." + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) Calculate the outer product of a pair of vectors.\n" +"\n" +"OuterProduct treats the first parameter 'c' as a column vector (matrix with " +"one column) and the second parameter 'r' as a row vector (matrix with one " +"row) and does a linear algebraic matrix multiply 'c * r', yielding a matrix " +"whose number of rows is the number of components in 'c' and whose number of " +"columns is the number of components in 'r'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Composes transform from four vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Decomposes transform to four vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the determinant of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the inverse of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the transpose of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies transform by transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies vector by transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Transform constant." +msgstr "Transformación Abortada." + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Transform uniform." +msgstr "Transformación Abortada." + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector function." +msgstr "Asignación a función." + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector operator." +msgstr "Cambiar Operador Vec." + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Composes vector from three scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Decomposes vector to three scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the cross product of two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the distance between two points." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the dot product of two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns a vector that points in the same direction as a reference vector. " +"The function has three vector parameters : N, the vector to orient, I, the " +"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 "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the length of a vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Linear interpolation between two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the normalize product of vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 - vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 / vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns a vector that points in the direction of reflection ( a : incident " +"vector, b : normal vector )." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns a vector that points in the direction of refraction." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( vector(edge0), vector(edge1), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if 'x' is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( scalar(edge0), scalar(edge1), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if 'x' is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( vector(edge), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( scalar(edge), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Adds vector to vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Divides vector by vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies vector by vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the remainder of the two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Subtracts vector from vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector constant." +msgstr "Cambiar Constante Vec." + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector uniform." +msgstr "Asignación a uniform." + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Custom Godot Shader Language expression, with custom amount of input and " +"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 "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns falloff based on the dot product of surface normal and view " +"direction of camera (pass associated inputs to it)." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) (Fragment/Light mode only) Scalar derivative function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) (Fragment/Light mode only) Vector derivative function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Derivative in 'x' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Derivative in 'x' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Derivative in 'y' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Derivative in 'y' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Sum of absolute derivative " +"in 'x' and 'y'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Sum of absolute derivative " +"in 'x' and 'y'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "VisualShader" msgstr "VisualShader" @@ -7536,6 +9062,10 @@ msgid "Directory already contains a Godot project." msgstr "El directorio ya contiene un proyecto de Godot." #: editor/project_manager.cpp +msgid "New Game Project" +msgstr "Nuevo Proyecto de Juego" + +#: editor/project_manager.cpp msgid "Imported Project" msgstr "Proyecto Importado" @@ -7584,10 +9114,6 @@ msgid "Rename Project" msgstr "Renombrar Proyecto" #: editor/project_manager.cpp -msgid "New Game Project" -msgstr "Nuevo Proyecto de Juego" - -#: editor/project_manager.cpp msgid "Import Existing Project" msgstr "Importar Proyecto Existente" @@ -7616,10 +9142,6 @@ msgid "Project Name:" msgstr "Nombre del Proyecto:" #: editor/project_manager.cpp -msgid "Create folder" -msgstr "Crear carpeta" - -#: editor/project_manager.cpp msgid "Project Path:" msgstr "Ruta del Proyecto:" @@ -7628,10 +9150,6 @@ msgid "Project Installation Path:" msgstr "Ruta de Instalación del Proyecto:" #: editor/project_manager.cpp -msgid "Browse" -msgstr "Examinar" - -#: editor/project_manager.cpp msgid "Renderer:" msgstr "Renderizador:" @@ -7686,6 +9204,7 @@ msgid "Are you sure to open more than one project?" msgstr "¿Estás seguro/a que quieres abrir más de un proyecto?" #: editor/project_manager.cpp +#, fuzzy msgid "" "The following project settings file does not specify the version of Godot " "through which it was created.\n" @@ -7694,8 +9213,8 @@ msgid "" "\n" "If you proceed with opening it, it will be converted to Godot's current " "configuration file format.\n" -"Warning: You will not be able to open the project with previous versions of " -"the engine anymore." +"Warning: You won't be able to open the project with previous versions of the " +"engine anymore." msgstr "" "El siguiente archivo de configuración del proyecto no especifica la versión " "de Godot con la que fue creado.\n" @@ -7708,6 +9227,7 @@ msgstr "" "anteriores del motor." #: editor/project_manager.cpp +#, fuzzy msgid "" "The following project settings file was generated by an older engine " "version, and needs to be converted for this version:\n" @@ -7715,8 +9235,8 @@ msgid "" "%s\n" "\n" "Do you want to convert it?\n" -"Warning: You will not be able to open the project with previous versions of " -"the engine anymore." +"Warning: You won't be able to open the project with previous versions of the " +"engine anymore." msgstr "" "Las siguientes configuraciones de proyecto fueron generadas para una versión " "anterior del motor, y deben ser convertidas para esta versión:\n" @@ -7736,9 +9256,10 @@ msgstr "" "del motor y no son compatibles con esta versión." #: editor/project_manager.cpp +#, fuzzy msgid "" "Can't run project: no main scene defined.\n" -"Please edit the project and set the main scene in \"Project Settings\" under " +"Please edit the project and set the main scene in the Project Settings under " "the \"Application\" category." msgstr "" "No sé puede ejecutar el proyecto: No se ha definido ninguna escena " @@ -7755,28 +9276,52 @@ msgstr "" "Por favor editá el proyecto para provocar la importación inicial." #: editor/project_manager.cpp -msgid "Are you sure to run more than one project?" +#, fuzzy +msgid "Are you sure to run %d projects at once?" msgstr "¿Estás seguro/a que quieres ejecutar más de un proyecto?" #: editor/project_manager.cpp -msgid "Remove project from the list? (Folder contents will not be modified)" +#, fuzzy +msgid "" +"Remove %d projects from the list?\n" +"The project folders' contents won't be modified." +msgstr "" +"¿Quitar proyecto de la lista? (Los contenidos de la carpeta no serán " +"modificados)" + +#: editor/project_manager.cpp +#, fuzzy +msgid "" +"Remove this project from the list?\n" +"The project folder's contents won't be modified." msgstr "" "¿Quitar proyecto de la lista? (Los contenidos de la carpeta no serán " "modificados)" #: editor/project_manager.cpp +#, fuzzy +msgid "" +"Remove all missing projects from the list? (Folders contents will not be " +"modified)" +msgstr "" +"¿Quitar proyecto de la lista? (Los contenidos de la carpeta no serán " +"modificados)" + +#: editor/project_manager.cpp +#, fuzzy msgid "" "Language changed.\n" -"The UI will update next time the editor or project manager starts." +"The interface will update after restarting the editor or project manager." msgstr "" "Lenguaje cambiado.\n" "La interfaz de usuario se actualizara la próxima vez que el editor o gestor " "de proyectos inicie." #: editor/project_manager.cpp +#, fuzzy msgid "" -"You are about the scan %s folders for existing Godot projects. Do you " -"confirm?" +"Are you sure to scan %s folders for existing Godot projects?\n" +"This could take a while." msgstr "" "Estás a punto de examinar %s carpetas en busca de proyectos de Godot. " "¿Confirmar?" @@ -7802,6 +9347,11 @@ msgid "New Project" msgstr "Proyecto Nuevo" #: editor/project_manager.cpp +#, fuzzy +msgid "Remove Missing" +msgstr "Quitar punto" + +#: editor/project_manager.cpp msgid "Templates" msgstr "Plantillas" @@ -7818,9 +9368,10 @@ msgid "Can't run project" msgstr "No se puede ejecutar el proyecto" #: editor/project_manager.cpp +#, fuzzy msgid "" -"You don't currently have any projects.\n" -"Would you like to explore the official example projects in the Asset Library?" +"You currently don't have any projects.\n" +"Would you like to explore official example projects in the Asset Library?" msgstr "" "Actualmente no tenés ningun proyecto.\n" "Te gustarÃa explorar los ejemplos oficiales en la Biblioteca de Assets?" @@ -7850,7 +9401,8 @@ msgstr "" "'\\' o '\"'" #: editor/project_settings_editor.cpp -msgid "Action '%s' already exists!" +#, fuzzy +msgid "An action with the name '%s' already exists." msgstr "La acción '%s' ya existe!" #: editor/project_settings_editor.cpp @@ -8006,10 +9558,6 @@ msgstr "" "'\\' o '\"'." #: editor/project_settings_editor.cpp -msgid "Already existing" -msgstr "Ya existe" - -#: editor/project_settings_editor.cpp msgid "Add Input Action" msgstr "Agregar Acción de Entrada" @@ -8074,7 +9622,8 @@ msgid "Override For..." msgstr "Sobreescribir Para..." #: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp -msgid "Editor must be restarted for changes to take effect" +#, fuzzy +msgid "The editor must be restarted for changes to take effect." msgstr "Se debe reiniciar el editor para que los cambios surtan efecto" #: editor/project_settings_editor.cpp @@ -8134,11 +9683,13 @@ msgid "Locales Filter" msgstr "Filtro de Locales" #: editor/project_settings_editor.cpp -msgid "Show all locales" +#, fuzzy +msgid "Show All Locales" msgstr "Mostrar todos los locales" #: editor/project_settings_editor.cpp -msgid "Show only selected locales" +#, fuzzy +msgid "Show Selected Locales Only" msgstr "Mostrar solo los locales seleccionados" #: editor/project_settings_editor.cpp @@ -8154,14 +9705,6 @@ msgid "AutoLoad" msgstr "AutoLoad" #: editor/property_editor.cpp -msgid "Ease In" -msgstr "Ease In" - -#: editor/property_editor.cpp -msgid "Ease Out" -msgstr "Ease Out" - -#: editor/property_editor.cpp msgid "Zero" msgstr "Zero" @@ -8235,7 +9778,8 @@ msgid "Suffix" msgstr "Sufijo" #: editor/rename_dialog.cpp -msgid "Advanced options" +#, fuzzy +msgid "Advanced Options" msgstr "Opciones avanzadas" #: editor/rename_dialog.cpp @@ -8497,8 +10041,9 @@ msgid "User Interface" msgstr "Interfaz de Usuario" #: editor/scene_tree_dock.cpp -msgid "Custom Node" -msgstr "Nodo Personalizado" +#, fuzzy +msgid "Other Node" +msgstr "Eliminar Nodo" #: editor/scene_tree_dock.cpp msgid "Can't operate on nodes from a foreign scene!" @@ -8542,7 +10087,8 @@ msgid "Clear Inheritance" msgstr "Limpiar Herencia" #: editor/scene_tree_dock.cpp -msgid "Open documentation" +#, fuzzy +msgid "Open Documentation" msgstr "Abrir documentación" #: editor/scene_tree_dock.cpp @@ -8569,7 +10115,7 @@ msgstr "Mergear Desde Escena" msgid "Save Branch as Scene" msgstr "Guardar Rama como Escena" -#: editor/scene_tree_dock.cpp +#: editor/scene_tree_dock.cpp editor/script_editor_debugger.cpp msgid "Copy Node Path" msgstr "Copiar Ruta del Nodo" @@ -8614,6 +10160,21 @@ msgid "Toggle Visible" msgstr "Act/Desact. Visible" #: editor/scene_tree_editor.cpp +#, fuzzy +msgid "Unlock Node" +msgstr "Seleccionar Nodo" + +#: editor/scene_tree_editor.cpp +#, fuzzy +msgid "Button Group" +msgstr "Botón 7" + +#: editor/scene_tree_editor.cpp +#, fuzzy +msgid "(Connecting From)" +msgstr "Error de Conexión" + +#: editor/scene_tree_editor.cpp msgid "Node configuration warning:" msgstr "Advertencia de configuración de nodo:" @@ -8641,8 +10202,9 @@ msgstr "" "El nodo está en un grupo/s.\n" "Click para mostrar el panel de grupos." -#: editor/scene_tree_editor.cpp editor/script_create_dialog.cpp -msgid "Open Script" +#: editor/scene_tree_editor.cpp +#, fuzzy +msgid "Open Script:" msgstr "Abrir Script" #: editor/scene_tree_editor.cpp @@ -8695,71 +10257,83 @@ msgid "Select a Node" msgstr "Seleccionar un Nodo" #: editor/script_create_dialog.cpp -msgid "Error loading template '%s'" -msgstr "Error al cargar la plantilla '%s'" +#, fuzzy +msgid "Path is empty." +msgstr "La ruta está vacÃa" #: editor/script_create_dialog.cpp -msgid "Error - Could not create script in filesystem." -msgstr "Error - No se puede crear el script en el sistema de archivos." +#, fuzzy +msgid "Filename is empty." +msgstr "Nombre de archivo vacio" #: editor/script_create_dialog.cpp -msgid "Error loading script from %s" -msgstr "Error al cargar el script desde %s" +#, fuzzy +msgid "Path is not local." +msgstr "La ruta no es local" #: editor/script_create_dialog.cpp -msgid "N/A" -msgstr "N/A" +#, fuzzy +msgid "Invalid base path." +msgstr "Ruta base inválida" #: editor/script_create_dialog.cpp -msgid "Open Script/Choose Location" -msgstr "Abrir Script/Elegir Ubicación" +#, fuzzy +msgid "A directory with the same name exists." +msgstr "Existe un directorio con el mismo nombre" #: editor/script_create_dialog.cpp -msgid "Path is empty" -msgstr "La ruta está vacÃa" +#, fuzzy +msgid "Invalid extension." +msgstr "Extensión invalida" #: editor/script_create_dialog.cpp -msgid "Filename is empty" -msgstr "Nombre de archivo vacio" +#, fuzzy +msgid "Wrong extension chosen." +msgstr "Extensión incorrecta elegida" #: editor/script_create_dialog.cpp -msgid "Path is not local" -msgstr "La ruta no es local" +msgid "Error loading template '%s'" +msgstr "Error al cargar la plantilla '%s'" #: editor/script_create_dialog.cpp -msgid "Invalid base path" -msgstr "Ruta base inválida" +msgid "Error - Could not create script in filesystem." +msgstr "Error - No se puede crear el script en el sistema de archivos." #: editor/script_create_dialog.cpp -msgid "Directory of the same name exists" -msgstr "Existe un directorio con el mismo nombre" +msgid "Error loading script from %s" +msgstr "Error al cargar el script desde %s" #: editor/script_create_dialog.cpp -msgid "File exists, will be reused" -msgstr "El archivo existe, será reutilizado" +msgid "N/A" +msgstr "N/A" #: editor/script_create_dialog.cpp -msgid "Invalid extension" -msgstr "Extensión invalida" +#, fuzzy +msgid "Open Script / Choose Location" +msgstr "Abrir Script/Elegir Ubicación" #: editor/script_create_dialog.cpp -msgid "Wrong extension chosen" -msgstr "Extensión incorrecta elegida" +msgid "Open Script" +msgstr "Abrir Script" #: editor/script_create_dialog.cpp -msgid "Invalid Path" -msgstr "Ruta inválida" +#, fuzzy +msgid "File exists, it will be reused." +msgstr "El archivo existe, será reutilizado" #: editor/script_create_dialog.cpp -msgid "Invalid class name" +#, fuzzy +msgid "Invalid class name." msgstr "Nombre de clase inválido" #: editor/script_create_dialog.cpp -msgid "Invalid inherited parent name or path" +#, fuzzy +msgid "Invalid inherited parent name or path." msgstr "Ruta o nombre del padre heredado inválido" #: editor/script_create_dialog.cpp -msgid "Script valid" +#, fuzzy +msgid "Script is valid." msgstr "Script válido" #: editor/script_create_dialog.cpp @@ -8767,15 +10341,18 @@ msgid "Allowed: a-z, A-Z, 0-9 and _" msgstr "Permitidos: a-z, A-Z, 0-9 y _" #: editor/script_create_dialog.cpp -msgid "Built-in script (into scene file)" +#, fuzzy +msgid "Built-in script (into scene file)." msgstr "Script Integrado (dentro del archivo de escena)" #: editor/script_create_dialog.cpp -msgid "Create new script file" +#, fuzzy +msgid "Will create a new script file." msgstr "Crear script nuevo" #: editor/script_create_dialog.cpp -msgid "Load existing script file" +#, fuzzy +msgid "Will load an existing script file." msgstr "Cargar script existente" #: editor/script_create_dialog.cpp @@ -8906,6 +10483,10 @@ msgstr "RaÃz de Edición en Vivo:" msgid "Set From Tree" msgstr "Setear Desde Arbol" +#: editor/script_editor_debugger.cpp +msgid "Export measures as CSV" +msgstr "" + #: editor/settings_config_dialog.cpp msgid "Erase Shortcut" msgstr "Eliminar Atajo" @@ -9035,6 +10616,15 @@ msgid "GDNativeLibrary" msgstr "GDNativeLibrary" #: 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 "Desactivar Update Spinner" + +#: modules/gdnative/gdnative_library_singleton_editor.cpp msgid "Library" msgstr "Biblioteca" @@ -9122,8 +10712,9 @@ msgid "GridMap Fill Selection" msgstr "Llenar Selección en GridMap" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "GridMap Duplicate Selection" -msgstr "Duplicar Selección en GridMap" +#, fuzzy +msgid "GridMap Paste Selection" +msgstr "Eliminar Seleccionados en GridMap" #: modules/gridmap/grid_map_editor_plugin.cpp msgid "GridMap Paint" @@ -9190,18 +10781,6 @@ msgid "Cursor Clear Rotation" msgstr "Restablecer Rotación en Cursor" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Create Area" -msgstr "Crear Ãrea" - -#: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Create Exterior Connector" -msgstr "Crear Conector Exterior" - -#: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Erase Area" -msgstr "Borrar Ãrea" - -#: modules/gridmap/grid_map_editor_plugin.cpp msgid "Clear Selection" msgstr "Limpiar Selección" @@ -9275,7 +10854,7 @@ msgstr "Fin del stack trace de excepción interna" #: modules/recast/navigation_mesh_editor_plugin.cpp msgid "Bake NavMesh" -msgstr "Hacer Bake de NavMesh" +msgstr "Bake NavMesh" #: modules/recast/navigation_mesh_editor_plugin.cpp msgid "Clear the navigation mesh." @@ -9319,11 +10898,11 @@ msgstr "Creando polymesh..." #: modules/recast/navigation_mesh_generator.cpp msgid "Converting to native navigation mesh..." -msgstr "Convirtiendo a mesh de navegación nativa..." +msgstr "Convirtiendo a mesh de navegación nativo..." #: modules/recast/navigation_mesh_generator.cpp msgid "Navigation Mesh Generator Setup:" -msgstr "Setup de Generador de Meshes de Navegación:" +msgstr "Configuración del Generador de Meshes de Navegación:" #: modules/recast/navigation_mesh_generator.cpp msgid "Parsing Geometry..." @@ -9563,18 +11142,11 @@ msgid "Available Nodes:" msgstr "Nodos Disponibles:" #: modules/visual_script/visual_script_editor.cpp -msgid "Select or create a function to edit graph" +#, fuzzy +msgid "Select or create a function to edit its graph." msgstr "Seleccioná o creá una función para editar el grafo" #: modules/visual_script/visual_script_editor.cpp -msgid "Edit Signal Arguments:" -msgstr "Editar Argumentos de Señal:" - -#: modules/visual_script/visual_script_editor.cpp -msgid "Edit Variable:" -msgstr "Editar Variable:" - -#: modules/visual_script/visual_script_editor.cpp msgid "Delete Selected" msgstr "Eliminar Seleccionados" @@ -9709,6 +11281,19 @@ msgstr "" "Keystore debug no configurada en Configuración del Editor ni en el preset." #: platform/android/export/export.cpp +msgid "Custom build requires a valid Android SDK path in Editor Settings." +msgstr "" + +#: platform/android/export/export.cpp +msgid "Invalid Android SDK path for custom build in Editor Settings." +msgstr "" + +#: platform/android/export/export.cpp +msgid "" +"Android project is not installed for compiling. Install from Editor menu." +msgstr "" + +#: platform/android/export/export.cpp msgid "Invalid public key for APK expansion." msgstr "Clave pública inválida para la expansión de APK." @@ -9716,6 +11301,34 @@ msgstr "Clave pública inválida para la expansión de APK." msgid "Invalid package name:" msgstr "Nombre de paquete inválido:" +#: platform/android/export/export.cpp +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 "" +"Android build version mismatch:\n" +" Template installed: %s\n" +" Godot Version: %s\n" +"Please reinstall Android build template from 'Project' menu." +msgstr "" + +#: platform/android/export/export.cpp +msgid "Building Android Project (gradle)" +msgstr "" + +#: 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 "" + +#: platform/android/export/export.cpp +msgid "No build apk generated at: " +msgstr "" + #: platform/iphone/export/export.cpp msgid "Identifier is missing." msgstr "Identificador no encontrado." @@ -10028,31 +11641,36 @@ msgid "ARVRCamera must have an ARVROrigin node as its parent" msgstr "ARVRCamera debe tener un nodo ARVROrigin como su padre" #: scene/3d/arvr_nodes.cpp -msgid "ARVRController must have an ARVROrigin node as its parent" +#, fuzzy +msgid "ARVRController must have an ARVROrigin node as its parent." msgstr "ARVRController debe tener un nodo ARVROrigin como su padre" #: scene/3d/arvr_nodes.cpp +#, fuzzy msgid "" -"The controller id must not be 0 or this controller will not be bound to an " -"actual controller" +"The controller ID must not be 0 or this controller won't be bound to an " +"actual controller." msgstr "" "El id de controlador no debe ser 0 o este controlador no será vinculado a un " "controlador real" #: scene/3d/arvr_nodes.cpp -msgid "ARVRAnchor must have an ARVROrigin node as its parent" +#, fuzzy +msgid "ARVRAnchor must have an ARVROrigin node as its parent." msgstr "ARVRAnchor debe tener un nodo ARVROrigin como su padre" #: scene/3d/arvr_nodes.cpp +#, fuzzy msgid "" -"The anchor id must not be 0 or this anchor will not be bound to an actual " -"anchor" +"The anchor ID must not be 0 or this anchor won't be bound to an actual " +"anchor." msgstr "" "El id de anclaje no debe ser 0 o este anclaje no podrá ser vinculado a un " "anclaje real" #: scene/3d/arvr_nodes.cpp -msgid "ARVROrigin requires an ARVRCamera child node" +#, fuzzy +msgid "ARVROrigin requires an ARVRCamera child node." msgstr "ARVROrigin requiere un nodo hijo ARVRCamera" #: scene/3d/baked_lightmap.cpp @@ -10135,9 +11753,10 @@ msgid "Nothing is visible because no mesh has been assigned." msgstr "Nada visible ya que no se asignó ningún mesh." #: scene/3d/cpu_particles.cpp +#, fuzzy msgid "" -"CPUParticles animation requires the usage of a SpatialMaterial with " -"\"Billboard Particles\" enabled." +"CPUParticles animation requires the usage of a SpatialMaterial whose " +"Billboard Mode is set to \"Particle Billboard\"." msgstr "" "Animar CPUParticles requiere el uso de un SpatialMaterial con \"Billboard " "Particles\" activado." @@ -10184,9 +11803,10 @@ msgid "" msgstr "Nada visible ya que no se asigno pasadas de dibujado a los meshes." #: scene/3d/particles.cpp +#, fuzzy msgid "" -"Particles animation requires the usage of a SpatialMaterial with \"Billboard " -"Particles\" enabled." +"Particles animation requires the usage of a SpatialMaterial whose Billboard " +"Mode is set to \"Particle Billboard\"." msgstr "" "Animar Particles requiere el uso de un SpatialMaterial con \"Billboard " "Particles\" activado." @@ -10220,7 +11840,8 @@ msgstr "" "La propiedad Path debe apuntar a un nodo Spatial valido para funcionar." #: scene/3d/soft_body.cpp -msgid "This body will be ignored until you set a mesh" +#, fuzzy +msgid "This body will be ignored until you set a mesh." msgstr "Este cuerpo sera ignorado hasta que le asignes un mesh" #: scene/3d/soft_body.cpp @@ -10328,10 +11949,11 @@ msgid "Add current color as a preset." msgstr "Agregar color actual como preset." #: scene/gui/container.cpp +#, fuzzy msgid "" "Container by itself serves no purpose unless a script configures it's " "children placement behavior.\n" -"If you dont't intend to add a script, then please use a plain 'Control' node " +"If you don't intend to add a script, then please use a plain 'Control' node " "instead." msgstr "" "El contenedor en sà mismo no sirve ningún propósito a menos que un script " @@ -10347,10 +11969,6 @@ msgstr "Alerta!" msgid "Please Confirm..." msgstr "Confirmá, por favor..." -#: scene/gui/file_dialog.cpp -msgid "Go to parent folder." -msgstr "Ir a la carpeta padre." - #: scene/gui/popup.cpp msgid "" "Popups will hide by default unless you call popup() or any of the popup*() " @@ -10435,6 +12053,76 @@ msgstr "Asignación a uniform." msgid "Varyings can only be assigned in vertex function." msgstr "Solo se pueden asignar variaciones en funciones de vértice." +#: servers/visual/shader_language.cpp +msgid "Constants cannot be modified." +msgstr "" + +#~ msgid "Path to Node:" +#~ msgstr "Ruta al Nodo:" + +#~ msgid "Delete selected files?" +#~ msgstr "Eliminar archivos seleccionados?" + +#~ msgid "There is no 'res://default_bus_layout.tres' file." +#~ msgstr "No hay nigún archivo 'res://default_bus_layout.tres'." + +#~ 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)" + +#~ msgid "Previous Directory" +#~ msgstr "Directorio Previo" + +#~ msgid "Next Directory" +#~ msgstr "Directorio Siguiente" + +#~ msgid "Ease in" +#~ msgstr "Ease in" + +#~ msgid "Ease out" +#~ msgstr "Ease out" + +#~ msgid "Create Convex Static Body" +#~ msgstr "Crear Body Estático Convexo" + +#~ msgid "CheckBox Radio1" +#~ msgstr "CheckBox Radio1" + +#~ msgid "CheckBox Radio2" +#~ msgstr "CheckBox Radio2" + +#~ msgid "Create folder" +#~ msgstr "Crear carpeta" + +#~ msgid "Already existing" +#~ msgstr "Ya existe" + +#~ msgid "Custom Node" +#~ msgstr "Nodo Personalizado" + +#~ msgid "Invalid Path" +#~ msgstr "Ruta inválida" + +#~ msgid "GridMap Duplicate Selection" +#~ msgstr "Duplicar Selección en GridMap" + +#~ msgid "Create Area" +#~ msgstr "Crear Ãrea" + +#~ msgid "Create Exterior Connector" +#~ msgstr "Crear Conector Exterior" + +#~ msgid "Edit Signal Arguments:" +#~ msgstr "Editar Argumentos de Señal:" + +#~ msgid "Edit Variable:" +#~ msgstr "Editar Variable:" + #~ msgid "Snap (s): " #~ msgstr "Ajuste (s): " @@ -10557,9 +12245,6 @@ msgstr "Solo se pueden asignar variaciones en funciones de vértice." #~ msgid "Class List:" #~ msgstr "Lista de Clases:" -#~ msgid "Search Classes" -#~ msgstr "Buscar Clases" - #~ msgid "Public Methods" #~ msgstr "Métodos Públicos" @@ -10636,9 +12321,6 @@ msgstr "Solo se pueden asignar variaciones en funciones de vértice." #~ msgid "Error:" #~ msgstr "Error:" -#~ msgid "Source:" -#~ msgstr "Fuente:" - #~ msgid "Function:" #~ msgstr "Funcion:" @@ -10660,21 +12342,9 @@ msgstr "Solo se pueden asignar variaciones en funciones de vértice." #~ msgid "Get" #~ msgstr "Obtener" -#~ msgid "Change Scalar Constant" -#~ msgstr "Cambiar Constante Escalar" - -#~ msgid "Change Vec Constant" -#~ msgstr "Cambiar Constante Vec." - #~ msgid "Change RGB Constant" #~ msgstr "Cambiar Constante RGB" -#~ msgid "Change Scalar Operator" -#~ msgstr "Cambiar Operador Escalar" - -#~ msgid "Change Vec Operator" -#~ msgstr "Cambiar Operador Vec." - #~ msgid "Change Vec Scalar Operator" #~ msgstr "Cambiar Operador Vec. Escalar" @@ -10684,15 +12354,9 @@ msgstr "Solo se pueden asignar variaciones en funciones de vértice." #~ msgid "Toggle Rot Only" #~ msgstr "Act/Desact. Solo Rot." -#~ msgid "Change Scalar Function" -#~ msgstr "Cambiar Función Escalar" - #~ msgid "Change Vec Function" #~ msgstr "Cambiar Función Vec." -#~ msgid "Change Scalar Uniform" -#~ msgstr "Cambiar Uniforme Escalar" - #~ msgid "Change Vec Uniform" #~ msgstr "Cambiar Uniforme Vec." @@ -10705,9 +12369,6 @@ msgstr "Solo se pueden asignar variaciones en funciones de vértice." #~ msgid "Change XForm Uniform" #~ msgstr "Cambiar Uniforme XForm" -#~ msgid "Change Texture Uniform" -#~ msgstr "Cambiar Uniforme Textura" - #~ msgid "Change Cubemap Uniform" #~ msgstr "Cambiar Uniforme Cubemap" @@ -10726,9 +12387,6 @@ msgstr "Solo se pueden asignar variaciones en funciones de vértice." #~ msgid "Modify Curve Map" #~ msgstr "Modificar Mapa de Curvas" -#~ msgid "Change Input Name" -#~ msgstr "Cambiar Nombre de Entrada" - #~ msgid "Connect Graph Nodes" #~ msgstr "Conectar Nodos de Gráfico" @@ -10756,9 +12414,6 @@ msgstr "Solo se pueden asignar variaciones en funciones de vértice." #~ msgid "Add Shader Graph Node" #~ msgstr "Agregar Nodo de Gráficos de Shader" -#~ msgid "Disabled" -#~ msgstr "Desactivado" - #~ msgid "Move Anim Track Up" #~ msgstr "Subir pista de animación" @@ -10942,17 +12597,11 @@ msgstr "Solo se pueden asignar variaciones en funciones de vértice." #~ msgid "Item name or ID:" #~ msgstr "Nombre o ID de Item:" -#~ msgid "Autotiles" -#~ msgstr "Autotiles" - #~ msgid "Export templates for this platform are missing/corrupted: " #~ msgstr "" #~ "Las plantillas de exportación para esta plataforma están faltando o " #~ "corruptas: " -#~ msgid "Button 7" -#~ msgstr "Botón 7" - #~ msgid "Button 8" #~ msgstr "Botón 8" @@ -11858,9 +13507,6 @@ msgstr "Solo se pueden asignar variaciones en funciones de vértice." #~ msgid "Project Export Settings" #~ msgstr "Ajustes de Exportación del Proyecto" -#~ msgid "Target" -#~ msgstr "Objetivo" - #~ msgid "Export to Platform" #~ msgstr "Exportar a Plataforma" @@ -11915,9 +13561,6 @@ msgstr "Solo se pueden asignar variaciones en funciones de vértice." #~ msgid "Shrink By:" #~ msgstr "Reducir Por:" -#~ msgid "Preview Atlas" -#~ msgstr "Vista Previa de Atlas" - #~ msgid "Images:" #~ msgstr "Imágenes:" diff --git a/editor/translations/et.po b/editor/translations/et.po index 455623f6aa..9733b52c71 100644 --- a/editor/translations/et.po +++ b/editor/translations/et.po @@ -64,6 +64,14 @@ msgstr "" msgid "Mirror" msgstr "" +#: editor/animation_bezier_editor.cpp editor/editor_profiler.cpp +msgid "Time:" +msgstr "" + +#: editor/animation_bezier_editor.cpp +msgid "Value:" +msgstr "" + #: editor/animation_bezier_editor.cpp msgid "Insert Key Here" msgstr "" @@ -146,11 +154,15 @@ msgid "Animation Playback Track" msgstr "" #: editor/animation_track_editor.cpp -msgid "Add Track" +msgid "Animation length (frames)" msgstr "" #: editor/animation_track_editor.cpp -msgid "Animation Length Time (seconds)" +msgid "Animation length (seconds)" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Add Track" msgstr "" #: editor/animation_track_editor.cpp @@ -277,11 +289,13 @@ msgid "Create %d NEW tracks and insert keys?" msgstr "" #: editor/animation_track_editor.cpp editor/create_dialog.cpp -#: editor/editor_audio_buses.cpp editor/editor_plugin_settings.cpp -#: editor/plugin_config_dialog.cpp +#: editor/editor_audio_buses.cpp editor/editor_feature_profile.cpp +#: editor/editor_plugin_settings.cpp editor/plugin_config_dialog.cpp #: editor/plugins/abstract_polygon_2d_editor.cpp #: editor/plugins/mesh_instance_editor_plugin.cpp -#: editor/plugins/particles_editor_plugin.cpp editor/script_create_dialog.cpp +#: editor/plugins/particles_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_create_dialog.cpp msgid "Create" msgstr "" @@ -391,6 +405,23 @@ msgid "" msgstr "" #: editor/animation_track_editor.cpp +msgid "" +"This animation belongs to an imported scene, so changes to imported tracks " +"will not be saved.\n" +"\n" +"To enable the ability to add custom tracks, navigate to the scene's import " +"settings and set\n" +"\"Animation > Storage\" to \"Files\", enable \"Animation > Keep Custom Tracks" +"\", then re-import.\n" +"Alternatively, use an import preset that imports animations to separate " +"files." +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Warning: Editing imported animation" +msgstr "" + +#: editor/animation_track_editor.cpp msgid "Only show tracks from nodes selected in tree." msgstr "" @@ -523,7 +554,8 @@ msgstr "" msgid "Select tracks to copy:" msgstr "" -#: editor/animation_track_editor.cpp editor/editor_properties.cpp +#: editor/animation_track_editor.cpp editor/editor_log.cpp +#: editor/editor_properties.cpp #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp @@ -591,6 +623,11 @@ msgstr "" msgid "Selection Only" msgstr "" +#: editor/code_editor.cpp editor/plugins/script_text_editor.cpp +#: editor/plugins/text_editor.cpp +msgid "Standard" +msgstr "" + #: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/texture_region_editor_plugin.cpp #: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp @@ -616,17 +653,29 @@ msgid "Line and column numbers." msgstr "" #: editor/connections_dialog.cpp -msgid "Method in target Node must be specified!" +msgid "Method in target node must be specified." msgstr "" #: editor/connections_dialog.cpp msgid "" -"Target method not found! Specify a valid method or attach a script to target " -"Node." +"Target method not found. Specify a valid method or attach a script to the " +"target node." +msgstr "" + +#: editor/connections_dialog.cpp +msgid "Connect to Node:" +msgstr "" + +#: editor/connections_dialog.cpp +msgid "Connect to Script:" +msgstr "" + +#: editor/connections_dialog.cpp +msgid "From Signal:" msgstr "" #: editor/connections_dialog.cpp -msgid "Connect To Node:" +msgid "Scene does not contain any script." msgstr "" #: editor/connections_dialog.cpp editor/editor_autoload_settings.cpp @@ -636,10 +685,12 @@ msgid "Add" msgstr "" #: editor/connections_dialog.cpp editor/dependency_editor.cpp -#: editor/groups_editor.cpp editor/plugins/animation_player_editor_plugin.cpp +#: editor/editor_feature_profile.cpp editor/groups_editor.cpp +#: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp #: editor/plugins/resource_preloader_editor_plugin.cpp -#: editor/plugins/theme_editor_plugin.cpp editor/project_manager.cpp +#: editor/plugins/theme_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_manager.cpp #: editor/project_settings_editor.cpp msgid "Remove" msgstr "" @@ -653,21 +704,30 @@ msgid "Extra Call Arguments:" msgstr "" #: editor/connections_dialog.cpp -msgid "Path to Node:" +msgid "Advanced" msgstr "" #: editor/connections_dialog.cpp -msgid "Make Function" +msgid "Deferred" msgstr "" #: editor/connections_dialog.cpp -msgid "Deferred" +msgid "" +"Defers the signal, storing it in a queue and only firing it at idle time." msgstr "" #: editor/connections_dialog.cpp msgid "Oneshot" msgstr "" +#: editor/connections_dialog.cpp +msgid "Disconnects the signal after its first emission." +msgstr "" + +#: editor/connections_dialog.cpp +msgid "Cannot connect signal" +msgstr "" + #: editor/connections_dialog.cpp editor/dependency_editor.cpp #: editor/export_template_manager.cpp editor/groups_editor.cpp #: editor/plugins/animation_player_editor_plugin.cpp @@ -708,11 +768,11 @@ msgid "Disconnect" msgstr "" #: editor/connections_dialog.cpp -msgid "Connect Signal: " +msgid "Connect a Signal to a Method" msgstr "" #: editor/connections_dialog.cpp -msgid "Edit Connection: " +msgid "Edit Connection:" msgstr "" #: editor/connections_dialog.cpp @@ -744,7 +804,6 @@ msgid "Change %s Type" msgstr "" #: editor/create_dialog.cpp editor/project_settings_editor.cpp -#: modules/visual_script/visual_script_editor.cpp msgid "Change" msgstr "" @@ -775,7 +834,8 @@ msgid "Matches:" msgstr "" #: editor/create_dialog.cpp editor/plugin_config_dialog.cpp -#: editor/plugins/asset_library_editor_plugin.cpp editor/property_selector.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/property_selector.cpp #: modules/visual_script/visual_script_property_selector.cpp msgid "Description:" msgstr "" @@ -791,13 +851,13 @@ msgstr "" #: editor/dependency_editor.cpp msgid "" "Scene '%s' is currently being edited.\n" -"Changes will not take effect unless reloaded." +"Changes will only take effect when reloaded." msgstr "" #: editor/dependency_editor.cpp msgid "" "Resource '%s' is in use.\n" -"Changes will take effect when reloaded." +"Changes will only take effect when reloaded." msgstr "" #: editor/dependency_editor.cpp @@ -888,21 +948,13 @@ msgid "Permanently delete %d item(s)? (No undo!)" msgstr "" #: editor/dependency_editor.cpp -msgid "Owns" -msgstr "" - -#: editor/dependency_editor.cpp -msgid "Resources Without Explicit Ownership:" +msgid "Show Dependencies" msgstr "" #: editor/dependency_editor.cpp editor/editor_node.cpp msgid "Orphan Resource Explorer" msgstr "" -#: editor/dependency_editor.cpp -msgid "Delete selected files?" -msgstr "" - #: editor/dependency_editor.cpp editor/editor_audio_buses.cpp #: editor/editor_file_dialog.cpp editor/editor_node.cpp #: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp @@ -911,6 +963,14 @@ msgstr "" msgid "Delete" msgstr "" +#: editor/dependency_editor.cpp +msgid "Owns" +msgstr "" + +#: editor/dependency_editor.cpp +msgid "Resources Without Explicit Ownership:" +msgstr "" + #: editor/dictionary_property_edit.cpp msgid "Change Dictionary Key" msgstr "" @@ -1020,7 +1080,7 @@ msgstr "" msgid "Success!" msgstr "" -#: editor/editor_asset_installer.cpp +#: editor/editor_asset_installer.cpp editor/editor_node.cpp #: editor/plugins/asset_library_editor_plugin.cpp msgid "Install" msgstr "" @@ -1147,7 +1207,11 @@ msgid "Open Audio Bus Layout" msgstr "" #: editor/editor_audio_buses.cpp -msgid "There is no 'res://default_bus_layout.tres' file." +msgid "There is no '%s' file." +msgstr "" + +#: editor/editor_audio_buses.cpp editor/plugins/canvas_item_editor_plugin.cpp +msgid "Layout" msgstr "" #: editor/editor_audio_buses.cpp @@ -1201,15 +1265,19 @@ msgid "Valid characters:" msgstr "" #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing engine class name." +msgid "Must not collide with an existing engine class name." msgstr "" #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing buit-in type name." +msgid "Must not collide with an existing buit-in type name." msgstr "" #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing global constant name." +msgid "Must not collide with an existing global constant name." +msgstr "" + +#: editor/editor_autoload_settings.cpp +msgid "Keyword cannot be used as an autoload name." msgstr "" #: editor/editor_autoload_settings.cpp @@ -1240,11 +1308,11 @@ msgstr "" msgid "Rearrange Autoloads" msgstr "" -#: editor/editor_autoload_settings.cpp -msgid "Invalid Path." +#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp +msgid "Invalid path." msgstr "" -#: editor/editor_autoload_settings.cpp +#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp msgid "File does not exist." msgstr "" @@ -1295,7 +1363,7 @@ msgid "[unsaved]" msgstr "" #: editor/editor_dir_dialog.cpp -msgid "Please select a base directory first" +msgid "Please select a base directory first." msgstr "" #: editor/editor_dir_dialog.cpp @@ -1303,7 +1371,8 @@ msgid "Choose a Directory" msgstr "" #: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp -#: editor/filesystem_dock.cpp scene/gui/file_dialog.cpp +#: editor/filesystem_dock.cpp editor/project_manager.cpp +#: scene/gui/file_dialog.cpp msgid "Create Folder" msgstr "" @@ -1371,6 +1440,151 @@ msgstr "" msgid "Template file not found:" msgstr "" +#: editor/editor_feature_profile.cpp +msgid "3D Editor" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Script Editor" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Asset Library" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Scene Tree Editing" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Import Dock" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Node Dock" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Filesystem Dock" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Erase profile '%s'? (no undo)" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Profile must be a valid filename and must not contain '.'" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Profile with this name already exists." +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "(Editor Disabled, Properties Disabled)" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "(Properties Disabled)" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "(Editor Disabled)" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Class Options:" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Enable Contextual Editor" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Enabled Properties:" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Enabled Features:" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Enabled Classes:" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "File '%s' format is invalid, import aborted." +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "" +"Profile '%s' already exists. Remote it first before importing, import " +"aborted." +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Error saving profile to path: '%s'." +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Unset" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Current Profile" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Make Current" +msgstr "" + +#: editor/editor_feature_profile.cpp +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "New" +msgstr "" + +#: editor/editor_feature_profile.cpp editor/editor_node.cpp +#: editor/plugins/asset_library_editor_plugin.cpp editor/project_manager.cpp +msgid "Import" +msgstr "" + +#: editor/editor_feature_profile.cpp editor/editor_node.cpp +#: editor/project_export.cpp +msgid "Export" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Available Profiles" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Enabled Classes" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Class Options" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "New profile name:" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Erase Profile" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Import Profile(s)" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Export Profile" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Manage Editor Feature Profiles" +msgstr "" + #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Select Current Folder" msgstr "" @@ -1391,8 +1605,8 @@ msgstr "" msgid "Open in File Manager" msgstr "" -#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp -#: editor/project_manager.cpp +#: editor/editor_file_dialog.cpp editor/editor_node.cpp +#: editor/filesystem_dock.cpp editor/project_manager.cpp msgid "Show in File Manager" msgstr "" @@ -1451,7 +1665,7 @@ msgstr "" msgid "Go Up" msgstr "" -#: editor/editor_file_dialog.cpp +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Toggle Hidden Files" msgstr "" @@ -1483,14 +1697,18 @@ msgstr "" msgid "Next Folder" msgstr "" -#: editor/editor_file_dialog.cpp -msgid "Go to parent folder" +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp +msgid "Go to parent folder." msgstr "" #: editor/editor_file_dialog.cpp msgid "(Un)favorite current folder." msgstr "" +#: editor/editor_file_dialog.cpp +msgid "Toggle visibility of hidden files." +msgstr "" + #: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp msgid "View items as a grid of thumbnails." msgstr "" @@ -1505,6 +1723,7 @@ msgstr "" #: editor/editor_file_dialog.cpp editor/plugins/sprite_editor_plugin.cpp #: editor/plugins/style_box_editor_plugin.cpp +#: editor/plugins/theme_editor_plugin.cpp msgid "Preview:" msgstr "" @@ -1521,6 +1740,12 @@ msgid "ScanSources" msgstr "" #: editor/editor_file_system.cpp +msgid "" +"There are multiple importers for different types pointing to file %s, import " +"aborted" +msgstr "" + +#: editor/editor_file_system.cpp msgid "(Re)Importing Assets" msgstr "" @@ -1696,6 +1921,10 @@ msgstr "" msgid "Output:" msgstr "" +#: editor/editor_log.cpp editor/plugins/tile_map_editor_plugin.cpp +msgid "Copy Selection" +msgstr "" + #: editor/editor_log.cpp editor/editor_profiler.cpp #: editor/editor_properties.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp @@ -1843,7 +2072,7 @@ msgstr "" #: editor/editor_node.cpp msgid "" "This resource belongs to a scene that was instanced or inherited.\n" -"Changes to it will not be kept when saving the current scene." +"Changes to it won't be kept when saving the current scene." msgstr "" #: editor/editor_node.cpp @@ -1854,7 +2083,7 @@ msgstr "" #: editor/editor_node.cpp msgid "" -"This scene was imported, so changes to it will not be kept.\n" +"This scene was imported, so changes to it won't be kept.\n" "Instancing it or inheriting will allow making changes to it.\n" "Please read the documentation relevant to importing scenes to better " "understand this workflow." @@ -1862,7 +2091,7 @@ msgstr "" #: editor/editor_node.cpp msgid "" -"This is a remote object so changes to it will not be kept.\n" +"This is a remote object, so changes to it won't be kept.\n" "Please read the documentation relevant to debugging to better understand " "this workflow." msgstr "" @@ -1872,27 +2101,6 @@ msgid "There is no defined scene to run." msgstr "" #: editor/editor_node.cpp -msgid "" -"No main scene has ever been defined, select one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" - -#: editor/editor_node.cpp -msgid "" -"Selected scene '%s' does not exist, select a valid one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" - -#: editor/editor_node.cpp -msgid "" -"Selected scene '%s' is not a scene file, select a valid one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" - -#: editor/editor_node.cpp msgid "Current scene was never saved, please save it prior to running." msgstr "" @@ -1900,7 +2108,7 @@ msgstr "" msgid "Could not start subprocess!" msgstr "" -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/filesystem_dock.cpp msgid "Open Scene" msgstr "" @@ -1909,6 +2117,10 @@ msgid "Open Base Scene" msgstr "" #: editor/editor_node.cpp +msgid "Quick Open..." +msgstr "" + +#: editor/editor_node.cpp msgid "Quick Open Scene..." msgstr "" @@ -2070,6 +2282,27 @@ msgid "Clear Recent Scenes" msgstr "" #: editor/editor_node.cpp +msgid "" +"No main scene has ever been defined, select one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"Selected scene '%s' does not exist, select a valid one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"Selected scene '%s' is not a scene file, select a valid one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" + +#: editor/editor_node.cpp msgid "Save Layout" msgstr "" @@ -2095,6 +2328,18 @@ msgstr "" msgid "Close Tab" msgstr "" +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +msgid "Close Other Tabs" +msgstr "" + +#: editor/editor_node.cpp +msgid "Close Tabs to the Right" +msgstr "" + +#: editor/editor_node.cpp +msgid "Close All Tabs" +msgstr "" + #: editor/editor_node.cpp msgid "Switch Scene Tab" msgstr "" @@ -2217,10 +2462,6 @@ msgstr "" msgid "Project Settings" msgstr "" -#: editor/editor_node.cpp editor/project_export.cpp -msgid "Export" -msgstr "" - #: editor/editor_node.cpp editor/plugins/tile_set_editor_plugin.cpp msgid "Tools" msgstr "" @@ -2230,6 +2471,10 @@ msgid "Open Project Data Folder" msgstr "" #: editor/editor_node.cpp +msgid "Install Android Build Template" +msgstr "" + +#: editor/editor_node.cpp msgid "Quit to Project List" msgstr "" @@ -2334,6 +2579,10 @@ msgstr "" msgid "Open Editor Settings Folder" msgstr "" +#: editor/editor_node.cpp +msgid "Manage Editor Features" +msgstr "" + #: editor/editor_node.cpp editor/project_export.cpp msgid "Manage Export Templates" msgstr "" @@ -2346,6 +2595,7 @@ msgstr "" #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp #: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp #: editor/project_settings_editor.cpp editor/rename_dialog.cpp msgid "Search" msgstr "" @@ -2435,11 +2685,6 @@ msgstr "" msgid "Disable Update Spinner" msgstr "" -#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp -#: editor/project_manager.cpp -msgid "Import" -msgstr "" - #: editor/editor_node.cpp msgid "FileSystem" msgstr "" @@ -2465,6 +2710,27 @@ msgid "Don't Save" msgstr "" #: editor/editor_node.cpp +msgid "Android build template is missing, please install relevant templates." +msgstr "" + +#: editor/editor_node.cpp +msgid "Manage Templates" +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"This will install the Android project for custom builds.\n" +"Note that, in order to use it, it needs to be enabled per export preset." +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"Android build template is already installed and it won't be overwritten.\n" +"Remove the \"build\" directory manually before attempting this operation " +"again." +msgstr "" + +#: editor/editor_node.cpp msgid "Import Templates From ZIP File" msgstr "" @@ -2587,10 +2853,6 @@ msgid "Physics Frame %" msgstr "" #: editor/editor_profiler.cpp -msgid "Time:" -msgstr "" - -#: editor/editor_profiler.cpp msgid "Inclusive" msgstr "" @@ -2725,10 +2987,6 @@ msgid "Remove Item" msgstr "" #: editor/editor_run_native.cpp -msgid "Select device from the list" -msgstr "" - -#: editor/editor_run_native.cpp msgid "" "No runnable export preset found for this platform.\n" "Please add a runnable preset in the export menu." @@ -2762,6 +3020,10 @@ msgstr "" msgid "Select Node(s) to Import" msgstr "" +#: editor/editor_sub_scene.cpp editor/project_manager.cpp +msgid "Browse" +msgstr "" + #: editor/editor_sub_scene.cpp msgid "Scene Path:" msgstr "" @@ -2924,6 +3186,10 @@ msgid "SSL Handshake Error" msgstr "" #: editor/export_template_manager.cpp +msgid "Uncompressing Android Build Sources" +msgstr "" + +#: editor/export_template_manager.cpp msgid "Current Version:" msgstr "" @@ -2940,7 +3206,7 @@ msgid "Remove Template" msgstr "" #: editor/export_template_manager.cpp -msgid "Select template file" +msgid "Select Template File" msgstr "" #: editor/export_template_manager.cpp @@ -2996,7 +3262,7 @@ msgid "No name provided." msgstr "" #: editor/filesystem_dock.cpp -msgid "Provided name contains invalid characters" +msgid "Provided name contains invalid characters." msgstr "" #: editor/filesystem_dock.cpp @@ -3024,7 +3290,11 @@ msgid "Duplicating folder:" msgstr "" #: editor/filesystem_dock.cpp -msgid "Open Scene(s)" +msgid "New Inherited Scene" +msgstr "" + +#: editor/filesystem_dock.cpp +msgid "Open Scenes" msgstr "" #: editor/filesystem_dock.cpp @@ -3032,11 +3302,11 @@ msgid "Instance" msgstr "" #: editor/filesystem_dock.cpp -msgid "Add to favorites" +msgid "Add to Favorites" msgstr "" #: editor/filesystem_dock.cpp -msgid "Remove from favorites" +msgid "Remove from Favorites" msgstr "" #: editor/filesystem_dock.cpp @@ -3067,11 +3337,13 @@ msgstr "" msgid "New Resource..." msgstr "" -#: editor/filesystem_dock.cpp editor/script_editor_debugger.cpp +#: editor/filesystem_dock.cpp editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_editor_debugger.cpp msgid "Expand All" msgstr "" -#: editor/filesystem_dock.cpp editor/script_editor_debugger.cpp +#: editor/filesystem_dock.cpp editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_editor_debugger.cpp msgid "Collapse All" msgstr "" @@ -3083,11 +3355,11 @@ msgid "Rename" msgstr "" #: editor/filesystem_dock.cpp -msgid "Previous Directory" +msgid "Previous Folder/File" msgstr "" #: editor/filesystem_dock.cpp -msgid "Next Directory" +msgid "Next Folder/File" msgstr "" #: editor/filesystem_dock.cpp @@ -3095,7 +3367,7 @@ msgid "Re-Scan Filesystem" msgstr "" #: editor/filesystem_dock.cpp -msgid "Toggle split mode" +msgid "Toggle Split Mode" msgstr "" #: editor/filesystem_dock.cpp @@ -3124,7 +3396,7 @@ msgstr "" msgid "Create Script" msgstr "" -#: editor/find_in_files.cpp +#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp msgid "Find in Files" msgstr "" @@ -3140,6 +3412,12 @@ msgstr "" msgid "Filters:" msgstr "" +#: editor/find_in_files.cpp +msgid "" +"Include the files with the following extensions. Add or remove them in " +"ProjectSettings." +msgstr "" + #: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp msgid "Find..." @@ -3568,7 +3846,7 @@ msgid "Open Animation Node" msgstr "" #: editor/plugins/animation_blend_space_2d_editor.cpp -msgid "Triangle already exists" +msgid "Triangle already exists." msgstr "" #: editor/plugins/animation_blend_space_2d_editor.cpp @@ -3643,7 +3921,6 @@ msgid "Node Moved" msgstr "" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Unable to connect, port may be in use or connection may be invalid." msgstr "" @@ -3710,7 +3987,7 @@ msgid "Edit Filtered Tracks:" msgstr "" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -msgid "Enable filtering" +msgid "Enable Filtering" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp @@ -3825,10 +4102,6 @@ msgid "Animation" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "New" -msgstr "" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Edit Transitions..." msgstr "" @@ -3845,11 +4118,11 @@ msgid "Autoplay on Load" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Onion Skinning" +msgid "Enable Onion Skinning" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Enable Onion Skinning" +msgid "Onion Skinning Options" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp @@ -4389,13 +4662,19 @@ msgid "Move CanvasItem" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"Children of containers have their anchors and margins values overridden by " +"their parent." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Presets for the anchors and margins values of a Control node." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "" -"Children of containers have their anchors and margins values overridden by " -"their parent." +"When active, moving Control nodes changes their anchors instead of their " +"margins." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4411,10 +4690,46 @@ msgid "Change Anchors" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Lock Selected" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Unlock Selected" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Group Selected" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Ungroup Selected" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Paste Pose" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Create Custom Bone(s) from Node(s)" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Clear Bones" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Make IK Chain" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Clear IK Chain" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "" "Warning: Children of a container get their position and size determined only " "by their parent." @@ -4486,7 +4801,7 @@ msgid "Snapping Options" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to grid" +msgid "Snap to Grid" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4507,31 +4822,31 @@ msgid "Use Pixel Snap" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Smart snapping" +msgid "Smart Snapping" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to parent" +msgid "Snap to Parent" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node anchor" +msgid "Snap to Node Anchor" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node sides" +msgid "Snap to Node Sides" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node center" +msgid "Snap to Node Center" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to other nodes" +msgid "Snap to Other Nodes" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to guides" +msgid "Snap to Guides" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4545,10 +4860,12 @@ msgid "Unlock the selected object (can be moved)." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Makes sure the object's children are not selectable." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Restores the object's children's ability to be selected." msgstr "" @@ -4561,14 +4878,6 @@ msgid "Show Bones" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Make IK Chain" -msgstr "" - -#: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Clear IK Chain" -msgstr "" - -#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Make Custom Bone(s) from Node(s)" msgstr "" @@ -4619,7 +4928,7 @@ msgid "Frame Selection" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Layout" +msgid "Preview Canvas Scale" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4671,6 +4980,10 @@ msgid "Divide grid step by 2" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Pan View" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Add %s" msgstr "" @@ -4693,7 +5006,7 @@ msgid "Error instancing scene from %s" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Change default type" +msgid "Change Default Type" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4779,19 +5092,19 @@ msgid "Create Emission Points From Node" msgstr "" #: editor/plugins/curve_editor_plugin.cpp -msgid "Flat0" +msgid "Flat 0" msgstr "" #: editor/plugins/curve_editor_plugin.cpp -msgid "Flat1" +msgid "Flat 1" msgstr "" -#: editor/plugins/curve_editor_plugin.cpp -msgid "Ease in" +#: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp +msgid "Ease In" msgstr "" -#: editor/plugins/curve_editor_plugin.cpp -msgid "Ease out" +#: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp +msgid "Ease Out" msgstr "" #: editor/plugins/curve_editor_plugin.cpp @@ -4811,23 +5124,23 @@ msgid "Load Curve Preset" msgstr "" #: editor/plugins/curve_editor_plugin.cpp -msgid "Add point" +msgid "Add Point" msgstr "" #: editor/plugins/curve_editor_plugin.cpp -msgid "Remove point" +msgid "Remove Point" msgstr "" #: editor/plugins/curve_editor_plugin.cpp -msgid "Left linear" +msgid "Left Linear" msgstr "" #: editor/plugins/curve_editor_plugin.cpp -msgid "Right linear" +msgid "Right Linear" msgstr "" #: editor/plugins/curve_editor_plugin.cpp -msgid "Load preset" +msgid "Load Preset" msgstr "" #: editor/plugins/curve_editor_plugin.cpp @@ -4883,11 +5196,15 @@ msgid "This doesn't work on scene root!" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Trimesh Shape" +msgid "Create Trimesh Static Shape" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Shape" +msgid "Failed creating shapes!" +msgstr "" + +#: editor/plugins/mesh_instance_editor_plugin.cpp +msgid "Create Convex Shape(s)" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp @@ -4940,15 +5257,11 @@ msgid "Create Trimesh Static Body" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Static Body" -msgstr "" - -#: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Trimesh Collision Sibling" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Collision Sibling" +msgid "Create Convex Collision Sibling(s)" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp @@ -5102,20 +5415,20 @@ msgid "Create Navigation Polygon" msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp -msgid "Generating Visibility Rect" +#: editor/plugins/particles_editor_plugin.cpp +msgid "Convert to CPUParticles" msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp -msgid "Generate Visibility Rect" +msgid "Generating Visibility Rect" msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp -msgid "Can only set point into a ParticlesMaterial process material" +msgid "Generate Visibility Rect" msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp -#: editor/plugins/particles_editor_plugin.cpp -msgid "Convert to CPUParticles" +msgid "Can only set point into a ParticlesMaterial process material" msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp @@ -5257,7 +5570,7 @@ msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp editor/plugins/theme_editor_plugin.cpp -#: editor/project_export.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_export.cpp msgid "Options" msgstr "" @@ -5308,7 +5621,7 @@ msgid "Split Segment (in curve)" msgstr "" #: editor/plugins/physical_bone_plugin.cpp -msgid "Move joint" +msgid "Move Joint" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5541,7 +5854,6 @@ msgid "Open in Editor" msgstr "" #: editor/plugins/resource_preloader_editor_plugin.cpp -#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Load Resource" msgstr "" @@ -5630,6 +5942,11 @@ msgid "%s Class Reference" msgstr "" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp +msgid "Find Next" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp msgid "Toggle alphabetical sorting of the method list." msgstr "" @@ -5710,10 +6027,6 @@ msgstr "" msgid "Close All" msgstr "" -#: editor/plugins/script_editor_plugin.cpp -msgid "Close Other Tabs" -msgstr "" - #: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp msgid "Run" msgstr "" @@ -5722,11 +6035,6 @@ msgstr "" msgid "Toggle Scripts Panel" msgstr "" -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/script_text_editor.cpp -msgid "Find Next" -msgstr "" - #: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp msgid "Step Over" msgstr "" @@ -5753,7 +6061,7 @@ msgid "Debug with External Editor" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Open Godot online documentation" +msgid "Open Godot online documentation." msgstr "" #: editor/plugins/script_editor_plugin.cpp @@ -5761,7 +6069,7 @@ msgid "Request Docs" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Help improve the Godot documentation by giving feedback" +msgid "Help improve the Godot documentation by giving feedback." msgstr "" #: editor/plugins/script_editor_plugin.cpp @@ -5787,10 +6095,12 @@ msgid "" msgstr "" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp msgid "Reload" msgstr "" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp msgid "Resave" msgstr "" @@ -5803,6 +6113,27 @@ msgid "Search Results" msgstr "" #: editor/plugins/script_text_editor.cpp +msgid "Connections to method:" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Source" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Signal" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Target" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "" +"Missing connected method '%s' for signal '%s' from node '%s' to node '%s'." +msgstr "" + +#: editor/plugins/script_text_editor.cpp msgid "Line" msgstr "" @@ -5814,10 +6145,6 @@ msgstr "" msgid "Go to Function" msgstr "" -#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp -msgid "Standard" -msgstr "" - #: editor/plugins/script_text_editor.cpp msgid "Only resources from filesystem can be dropped." msgstr "" @@ -5850,6 +6177,11 @@ msgstr "" msgid "Syntax Highlighter" msgstr "" +#: editor/plugins/script_text_editor.cpp +#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp +msgid "Bookmarks" +msgstr "" + #: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" @@ -5877,6 +6209,22 @@ msgid "Toggle Comment" msgstr "" #: editor/plugins/script_text_editor.cpp +msgid "Toggle Bookmark" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Go to Next Bookmark" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Go to Previous Bookmark" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Remove All Bookmarks" +msgstr "" + +#: editor/plugins/script_text_editor.cpp msgid "Fold/Unfold Line" msgstr "" @@ -5950,6 +6298,12 @@ msgid "Contextual Help" msgstr "" #: editor/plugins/shader_editor_plugin.cpp +msgid "" +"This shader has been modified on on disk.\n" +"What action should be taken?" +msgstr "" + +#: editor/plugins/shader_editor_plugin.cpp msgid "Shader" msgstr "" @@ -6287,7 +6641,7 @@ msgid "Right View" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Switch Perspective/Orthogonal view" +msgid "Switch Perspective/Orthogonal View" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp @@ -6327,11 +6681,12 @@ msgid "Toggle Freelook" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Transform" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Snap object to floor" +msgid "Snap Object to Floor" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp @@ -6472,35 +6827,35 @@ msgid "Invalid geometry, can't replace by mesh." msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Invalid geometry, can't create polygon." +msgid "Convert to Mesh2D" msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Invalid geometry, can't create collision polygon." +msgid "Invalid geometry, can't create polygon." msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Invalid geometry, can't create light occluder." +msgid "Convert to Polygon2D" msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Sprite" +msgid "Invalid geometry, can't create collision polygon." msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Convert to Mesh2D" +msgid "Create CollisionPolygon2D Sibling" msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Convert to Polygon2D" +msgid "Invalid geometry, can't create light occluder." msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Create CollisionPolygon2D Sibling" +msgid "Create LightOccluder2D Sibling" msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Create LightOccluder2D Sibling" +msgid "Sprite" msgstr "" #: editor/plugins/sprite_editor_plugin.cpp @@ -6520,7 +6875,11 @@ msgid "Settings:" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "ERROR: Couldn't load frame resource!" +msgid "No Frames Selected" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Add %d Frame(s)" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp @@ -6528,6 +6887,10 @@ msgid "Add Frame" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "ERROR: Couldn't load frame resource!" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Resource clipboard is empty or not a texture!" msgstr "" @@ -6568,6 +6931,14 @@ msgid "Animation Frames:" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Add a Texture from File" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Add Frames from a Sprite Sheet" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Insert Empty (Before)" msgstr "" @@ -6584,6 +6955,26 @@ msgid "Move (After)" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Select Frames" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Horizontal:" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Vertical:" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Select/Clear All Frames" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Create Frames from Sprite Sheet" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "SpriteFrames" msgstr "" @@ -6648,12 +7039,12 @@ msgstr "" msgid "Remove All Items" msgstr "" -#: editor/plugins/theme_editor_plugin.cpp +#: editor/plugins/theme_editor_plugin.cpp editor/project_manager.cpp msgid "Remove All" msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "Edit theme..." +msgid "Edit Theme" msgstr "" #: editor/plugins/theme_editor_plugin.cpp @@ -6681,11 +7072,11 @@ msgid "Create From Current Editor Theme" msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "CheckBox Radio1" +msgid "Toggle Button" msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "CheckBox Radio2" +msgid "Disabled Button" msgstr "" #: editor/plugins/theme_editor_plugin.cpp @@ -6693,6 +7084,10 @@ msgid "Item" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +msgid "Disabled Item" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Check Item" msgstr "" @@ -6709,6 +7104,22 @@ msgid "Checked Radio Item" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +msgid "Named Sep." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Submenu" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Item 1" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Item 2" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Has" msgstr "" @@ -6717,7 +7128,7 @@ msgid "Many" msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "Has,Many,Options" +msgid "Disabled LineEdit" msgstr "" #: editor/plugins/theme_editor_plugin.cpp @@ -6733,6 +7144,18 @@ msgid "Tab 3" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +msgid "Editable Item" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Subtree" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Has,Many,Options" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Data Type:" msgstr "" @@ -6765,6 +7188,7 @@ msgid "Fix Invalid Tiles" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp +#: modules/gridmap/grid_map_editor_plugin.cpp msgid "Cut Selection" msgstr "" @@ -6805,35 +7229,45 @@ msgid "Mirror Y" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp +msgid "Disable Autotile" +msgstr "" + +#: editor/plugins/tile_map_editor_plugin.cpp +msgid "Enable Priority" +msgstr "" + +#: editor/plugins/tile_map_editor_plugin.cpp msgid "Paint Tile" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Pick Tile" +msgid "" +"Shift+RMB: Line Draw\n" +"Shift+Ctrl+RMB: Rectangle Paint" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Copy Selection" +msgid "Pick Tile" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Rotate left" +msgid "Rotate Left" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Rotate right" +msgid "Rotate Right" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Flip horizontally" +msgid "Flip Horizontally" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Flip vertically" +msgid "Flip Vertically" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Clear transform" +msgid "Clear Transform" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp @@ -6869,6 +7303,38 @@ msgid "Select the previous shape, subtile, or Tile." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp +msgid "Region Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Collision Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Occlusion Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Navigation Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Bitmask Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Priority Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Icon Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Z Index Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp msgid "Copy bitmask." msgstr "" @@ -6948,6 +7414,7 @@ msgstr "" msgid "" "LMB: Set bit on.\n" "RMB: Set bit off.\n" +"Shift+LMB: Set wildcard bit.\n" "Click on another Tile to edit it." msgstr "" @@ -7055,6 +7522,66 @@ msgid "TileSet" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add input +" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add output +" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add input port" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add output port" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Change input port type" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Change output port type" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Change input port name" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Change output port name" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Remove input port" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Remove output port" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Set expression" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Resize VisualShader node" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Set Uniform Name" msgstr "" @@ -7091,6 +7618,837 @@ msgid "Light" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Create Shader Node" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Color function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Color operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Grayscale function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts HSV vector to RGB equivalent." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts RGB vector to HSV equivalent." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Sepia function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Burn operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Darken operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Difference operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Dodge operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "HardLight operator" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Lighten operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Overlay operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Screen operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "SoftLight operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Color constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Color uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns an associated vector if the provided scalars are equal, greater or " +"less." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns an associated vector if the provided boolean value is true or false." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'camera' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'inv_camera' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'inv_projection' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'normal' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'projection' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'time' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'viewport_size' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'world' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'texture_pixel_size' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Input parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'binormal' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'fragcoord' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_coord' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_uv' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'side' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'tangent' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv2' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'vertex' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'view' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'albedo' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'attenuation' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'diffuse' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_color' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'roughness' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'specular' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'transmission' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'modelview' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_size' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'tangent' input parameter for vertex and fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_pass' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_coord' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_pixel_size' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_uv' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_alpha' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_height' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_uv' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_vec' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'normal' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'shadow_color' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'extra' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'projection' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'vertex' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'world' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'active' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'custom' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'custom_alpha' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'delta' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'emission_transform' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'index' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'lifetime' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'restart' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'time' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'transform' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'velocity' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Scalar function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Scalar operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "E constant (2.718282). Represents the base of the natural logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Epsilon constant (0.00001). Smallest possible scalar number." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Phi constant (1.618034). Golden ratio." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi/4 constant (0.785398) or 45 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi/2 constant (1.570796) or 90 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi constant (3.141593) or 180 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Tau constant (6.283185) or 360 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Sqrt2 constant (1.414214). Square root of 2." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the absolute value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-tangent of the parameters." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Finds the nearest integer that is greater than or equal to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Constrains a value to lie between two further values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts a quantity in radians to degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-e Exponential." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-2 Exponential." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Finds the nearest integer less than or equal to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Computes the fractional part of the argument." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the inverse of the square root of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Natural logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-2 logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the greater of two values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the lesser of two values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Linear interpolation between two scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the opposite value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 - scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns the value of the first parameter raised to the power of the second." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts a quantity in degrees to radians." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 / scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the nearest integer to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the nearest even integer to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Clamps the value between 0.0 and 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Extracts the sign of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the square root of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( scalar(edge0), scalar(edge1), scalar(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if x is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( scalar(edge), scalar(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the truncated value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Adds scalar to scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Divides scalar by scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies scalar by scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the remainder of the two scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Subtracts scalar from scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Scalar constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Scalar uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Perform the cubic texture lookup." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Perform the texture lookup." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Cubic texture uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "2D texture uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Transform function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) Calculate the outer product of a pair of vectors.\n" +"\n" +"OuterProduct treats the first parameter 'c' as a column vector (matrix with " +"one column) and the second parameter 'r' as a row vector (matrix with one " +"row) and does a linear algebraic matrix multiply 'c * r', yielding a matrix " +"whose number of rows is the number of components in 'c' and whose number of " +"columns is the number of components in 'r'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Composes transform from four vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Decomposes transform to four vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the determinant of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the inverse of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the transpose of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies transform by transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies vector by transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Transform constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Transform uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Composes vector from three scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Decomposes vector to three scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the cross product of two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the distance between two points." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the dot product of two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns a vector that points in the same direction as a reference vector. " +"The function has three vector parameters : N, the vector to orient, I, the " +"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 "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the length of a vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Linear interpolation between two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the normalize product of vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 - vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 / vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns a vector that points in the direction of reflection ( a : incident " +"vector, b : normal vector )." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns a vector that points in the direction of refraction." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( vector(edge0), vector(edge1), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if 'x' is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( scalar(edge0), scalar(edge1), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if 'x' is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( vector(edge), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( scalar(edge), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Adds vector to vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Divides vector by vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies vector by vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the remainder of the two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Subtracts vector from vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Custom Godot Shader Language expression, with custom amount of input and " +"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 "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns falloff based on the dot product of surface normal and view " +"direction of camera (pass associated inputs to it)." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) (Fragment/Light mode only) Scalar derivative function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) (Fragment/Light mode only) Vector derivative function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Derivative in 'x' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Derivative in 'x' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Derivative in 'y' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Derivative in 'y' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Sum of absolute derivative " +"in 'x' and 'y'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Sum of absolute derivative " +"in 'x' and 'y'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "VisualShader" msgstr "" @@ -7278,6 +8636,10 @@ msgid "Directory already contains a Godot project." msgstr "" #: editor/project_manager.cpp +msgid "New Game Project" +msgstr "" + +#: editor/project_manager.cpp msgid "Imported Project" msgstr "" @@ -7324,10 +8686,6 @@ msgid "Rename Project" msgstr "" #: editor/project_manager.cpp -msgid "New Game Project" -msgstr "" - -#: editor/project_manager.cpp msgid "Import Existing Project" msgstr "" @@ -7356,10 +8714,6 @@ msgid "Project Name:" msgstr "" #: editor/project_manager.cpp -msgid "Create folder" -msgstr "" - -#: editor/project_manager.cpp msgid "Project Path:" msgstr "" @@ -7368,10 +8722,6 @@ msgid "Project Installation Path:" msgstr "" #: editor/project_manager.cpp -msgid "Browse" -msgstr "" - -#: editor/project_manager.cpp msgid "Renderer:" msgstr "" @@ -7424,8 +8774,8 @@ msgid "" "\n" "If you proceed with opening it, it will be converted to Godot's current " "configuration file format.\n" -"Warning: You will not be able to open the project with previous versions of " -"the engine anymore." +"Warning: You won't be able to open the project with previous versions of the " +"engine anymore." msgstr "" #: editor/project_manager.cpp @@ -7436,8 +8786,8 @@ msgid "" "%s\n" "\n" "Do you want to convert it?\n" -"Warning: You will not be able to open the project with previous versions of " -"the engine anymore." +"Warning: You won't be able to open the project with previous versions of the " +"engine anymore." msgstr "" #: editor/project_manager.cpp @@ -7449,7 +8799,7 @@ msgstr "" #: editor/project_manager.cpp msgid "" "Can't run project: no main scene defined.\n" -"Please edit the project and set the main scene in \"Project Settings\" under " +"Please edit the project and set the main scene in the Project Settings under " "the \"Application\" category." msgstr "" @@ -7460,23 +8810,37 @@ msgid "" msgstr "" #: editor/project_manager.cpp -msgid "Are you sure to run more than one project?" +msgid "Are you sure to run %d projects at once?" +msgstr "" + +#: editor/project_manager.cpp +msgid "" +"Remove %d projects from the list?\n" +"The project folders' contents won't be modified." +msgstr "" + +#: editor/project_manager.cpp +msgid "" +"Remove this project from the list?\n" +"The project folder's contents won't be modified." msgstr "" #: editor/project_manager.cpp -msgid "Remove project from the list? (Folder contents will not be modified)" +msgid "" +"Remove all missing projects from the list? (Folders contents will not be " +"modified)" msgstr "" #: editor/project_manager.cpp msgid "" "Language changed.\n" -"The UI will update next time the editor or project manager starts." +"The interface will update after restarting the editor or project manager." msgstr "" #: editor/project_manager.cpp msgid "" -"You are about the scan %s folders for existing Godot projects. Do you " -"confirm?" +"Are you sure to scan %s folders for existing Godot projects?\n" +"This could take a while." msgstr "" #: editor/project_manager.cpp @@ -7500,6 +8864,10 @@ msgid "New Project" msgstr "" #: editor/project_manager.cpp +msgid "Remove Missing" +msgstr "" + +#: editor/project_manager.cpp msgid "Templates" msgstr "" @@ -7517,8 +8885,8 @@ msgstr "" #: editor/project_manager.cpp msgid "" -"You don't currently have any projects.\n" -"Would you like to explore the official example projects in the Asset Library?" +"You currently don't have any projects.\n" +"Would you like to explore official example projects in the Asset Library?" msgstr "" #: editor/project_settings_editor.cpp @@ -7544,7 +8912,7 @@ msgid "" msgstr "" #: editor/project_settings_editor.cpp -msgid "Action '%s' already exists!" +msgid "An action with the name '%s' already exists." msgstr "" #: editor/project_settings_editor.cpp @@ -7698,10 +9066,6 @@ msgid "" msgstr "" #: editor/project_settings_editor.cpp -msgid "Already existing" -msgstr "" - -#: editor/project_settings_editor.cpp msgid "Add Input Action" msgstr "" @@ -7766,7 +9130,7 @@ msgid "Override For..." msgstr "" #: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp -msgid "Editor must be restarted for changes to take effect" +msgid "The editor must be restarted for changes to take effect." msgstr "" #: editor/project_settings_editor.cpp @@ -7826,11 +9190,11 @@ msgid "Locales Filter" msgstr "" #: editor/project_settings_editor.cpp -msgid "Show all locales" +msgid "Show All Locales" msgstr "" #: editor/project_settings_editor.cpp -msgid "Show only selected locales" +msgid "Show Selected Locales Only" msgstr "" #: editor/project_settings_editor.cpp @@ -7846,14 +9210,6 @@ msgid "AutoLoad" msgstr "" #: editor/property_editor.cpp -msgid "Ease In" -msgstr "" - -#: editor/property_editor.cpp -msgid "Ease Out" -msgstr "" - -#: editor/property_editor.cpp msgid "Zero" msgstr "" @@ -7926,7 +9282,7 @@ msgid "Suffix" msgstr "" #: editor/rename_dialog.cpp -msgid "Advanced options" +msgid "Advanced Options" msgstr "" #: editor/rename_dialog.cpp @@ -8178,7 +9534,7 @@ msgid "User Interface" msgstr "" #: editor/scene_tree_dock.cpp -msgid "Custom Node" +msgid "Other Node" msgstr "" #: editor/scene_tree_dock.cpp @@ -8220,7 +9576,7 @@ msgid "Clear Inheritance" msgstr "" #: editor/scene_tree_dock.cpp -msgid "Open documentation" +msgid "Open Documentation" msgstr "" #: editor/scene_tree_dock.cpp @@ -8247,7 +9603,7 @@ msgstr "" msgid "Save Branch as Scene" msgstr "" -#: editor/scene_tree_dock.cpp +#: editor/scene_tree_dock.cpp editor/script_editor_debugger.cpp msgid "Copy Node Path" msgstr "" @@ -8290,6 +9646,18 @@ msgid "Toggle Visible" msgstr "" #: editor/scene_tree_editor.cpp +msgid "Unlock Node" +msgstr "" + +#: editor/scene_tree_editor.cpp +msgid "Button Group" +msgstr "" + +#: editor/scene_tree_editor.cpp +msgid "(Connecting From)" +msgstr "" + +#: editor/scene_tree_editor.cpp msgid "Node configuration warning:" msgstr "" @@ -8311,8 +9679,8 @@ msgid "" "Click to show groups dock." msgstr "" -#: editor/scene_tree_editor.cpp editor/script_create_dialog.cpp -msgid "Open Script" +#: editor/scene_tree_editor.cpp +msgid "Open Script:" msgstr "" #: editor/scene_tree_editor.cpp @@ -8358,71 +9726,71 @@ msgid "Select a Node" msgstr "" #: editor/script_create_dialog.cpp -msgid "Error loading template '%s'" +msgid "Path is empty." msgstr "" #: editor/script_create_dialog.cpp -msgid "Error - Could not create script in filesystem." +msgid "Filename is empty." msgstr "" #: editor/script_create_dialog.cpp -msgid "Error loading script from %s" +msgid "Path is not local." msgstr "" #: editor/script_create_dialog.cpp -msgid "N/A" +msgid "Invalid base path." msgstr "" #: editor/script_create_dialog.cpp -msgid "Open Script/Choose Location" +msgid "A directory with the same name exists." msgstr "" #: editor/script_create_dialog.cpp -msgid "Path is empty" +msgid "Invalid extension." msgstr "" #: editor/script_create_dialog.cpp -msgid "Filename is empty" +msgid "Wrong extension chosen." msgstr "" #: editor/script_create_dialog.cpp -msgid "Path is not local" +msgid "Error loading template '%s'" msgstr "" #: editor/script_create_dialog.cpp -msgid "Invalid base path" +msgid "Error - Could not create script in filesystem." msgstr "" #: editor/script_create_dialog.cpp -msgid "Directory of the same name exists" +msgid "Error loading script from %s" msgstr "" #: editor/script_create_dialog.cpp -msgid "File exists, will be reused" +msgid "N/A" msgstr "" #: editor/script_create_dialog.cpp -msgid "Invalid extension" +msgid "Open Script / Choose Location" msgstr "" #: editor/script_create_dialog.cpp -msgid "Wrong extension chosen" +msgid "Open Script" msgstr "" #: editor/script_create_dialog.cpp -msgid "Invalid Path" +msgid "File exists, it will be reused." msgstr "" #: editor/script_create_dialog.cpp -msgid "Invalid class name" +msgid "Invalid class name." msgstr "" #: editor/script_create_dialog.cpp -msgid "Invalid inherited parent name or path" +msgid "Invalid inherited parent name or path." msgstr "" #: editor/script_create_dialog.cpp -msgid "Script valid" +msgid "Script is valid." msgstr "" #: editor/script_create_dialog.cpp @@ -8430,15 +9798,15 @@ msgid "Allowed: a-z, A-Z, 0-9 and _" msgstr "" #: editor/script_create_dialog.cpp -msgid "Built-in script (into scene file)" +msgid "Built-in script (into scene file)." msgstr "" #: editor/script_create_dialog.cpp -msgid "Create new script file" +msgid "Will create a new script file." msgstr "" #: editor/script_create_dialog.cpp -msgid "Load existing script file" +msgid "Will load an existing script file." msgstr "" #: editor/script_create_dialog.cpp @@ -8569,6 +9937,10 @@ msgstr "" msgid "Set From Tree" msgstr "" +#: editor/script_editor_debugger.cpp +msgid "Export measures as CSV" +msgstr "" + #: editor/settings_config_dialog.cpp msgid "Erase Shortcut" msgstr "" @@ -8698,6 +10070,14 @@ msgid "GDNativeLibrary" msgstr "" #: modules/gdnative/gdnative_library_singleton_editor.cpp +msgid "Enabled GDNative Singleton" +msgstr "" + +#: modules/gdnative/gdnative_library_singleton_editor.cpp +msgid "Disabled GDNative Singleton" +msgstr "" + +#: modules/gdnative/gdnative_library_singleton_editor.cpp msgid "Library" msgstr "" @@ -8782,7 +10162,7 @@ msgid "GridMap Fill Selection" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "GridMap Duplicate Selection" +msgid "GridMap Paste Selection" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp @@ -8850,18 +10230,6 @@ msgid "Cursor Clear Rotation" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Create Area" -msgstr "" - -#: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Create Exterior Connector" -msgstr "" - -#: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Erase Area" -msgstr "" - -#: modules/gridmap/grid_map_editor_plugin.cpp msgid "Clear Selection" msgstr "" @@ -9212,15 +10580,7 @@ msgid "Available Nodes:" msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Select or create a function to edit graph" -msgstr "" - -#: modules/visual_script/visual_script_editor.cpp -msgid "Edit Signal Arguments:" -msgstr "" - -#: modules/visual_script/visual_script_editor.cpp -msgid "Edit Variable:" +msgid "Select or create a function to edit its graph." msgstr "" #: modules/visual_script/visual_script_editor.cpp @@ -9350,6 +10710,19 @@ msgid "Debug keystore not configured in the Editor Settings nor in the preset." msgstr "" #: platform/android/export/export.cpp +msgid "Custom build requires a valid Android SDK path in Editor Settings." +msgstr "" + +#: platform/android/export/export.cpp +msgid "Invalid Android SDK path for custom build in Editor Settings." +msgstr "" + +#: platform/android/export/export.cpp +msgid "" +"Android project is not installed for compiling. Install from Editor menu." +msgstr "" + +#: platform/android/export/export.cpp msgid "Invalid public key for APK expansion." msgstr "" @@ -9357,6 +10730,34 @@ msgstr "" msgid "Invalid package name:" msgstr "" +#: platform/android/export/export.cpp +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 "" +"Android build version mismatch:\n" +" Template installed: %s\n" +" Godot Version: %s\n" +"Please reinstall Android build template from 'Project' menu." +msgstr "" + +#: platform/android/export/export.cpp +msgid "Building Android Project (gradle)" +msgstr "" + +#: 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 "" + +#: platform/android/export/export.cpp +msgid "No build apk generated at: " +msgstr "" + #: platform/iphone/export/export.cpp msgid "Identifier is missing." msgstr "" @@ -9609,27 +11010,27 @@ msgid "ARVRCamera must have an ARVROrigin node as its parent" msgstr "" #: scene/3d/arvr_nodes.cpp -msgid "ARVRController must have an ARVROrigin node as its parent" +msgid "ARVRController must have an ARVROrigin node as its parent." msgstr "" #: scene/3d/arvr_nodes.cpp msgid "" -"The controller id must not be 0 or this controller will not be bound to an " -"actual controller" +"The controller ID must not be 0 or this controller won't be bound to an " +"actual controller." msgstr "" #: scene/3d/arvr_nodes.cpp -msgid "ARVRAnchor must have an ARVROrigin node as its parent" +msgid "ARVRAnchor must have an ARVROrigin node as its parent." msgstr "" #: scene/3d/arvr_nodes.cpp msgid "" -"The anchor id must not be 0 or this anchor will not be bound to an actual " -"anchor" +"The anchor ID must not be 0 or this anchor won't be bound to an actual " +"anchor." msgstr "" #: scene/3d/arvr_nodes.cpp -msgid "ARVROrigin requires an ARVRCamera child node" +msgid "ARVROrigin requires an ARVRCamera child node." msgstr "" #: scene/3d/baked_lightmap.cpp @@ -9699,8 +11100,8 @@ msgstr "" #: scene/3d/cpu_particles.cpp msgid "" -"CPUParticles animation requires the usage of a SpatialMaterial with " -"\"Billboard Particles\" enabled." +"CPUParticles animation requires the usage of a SpatialMaterial whose " +"Billboard Mode is set to \"Particle Billboard\"." msgstr "" #: scene/3d/gi_probe.cpp @@ -9737,8 +11138,8 @@ msgstr "" #: scene/3d/particles.cpp msgid "" -"Particles animation requires the usage of a SpatialMaterial with \"Billboard " -"Particles\" enabled." +"Particles animation requires the usage of a SpatialMaterial whose Billboard " +"Mode is set to \"Particle Billboard\"." msgstr "" #: scene/3d/path.cpp @@ -9763,7 +11164,7 @@ msgid "Path property must point to a valid Spatial node to work." msgstr "" #: scene/3d/soft_body.cpp -msgid "This body will be ignored until you set a mesh" +msgid "This body will be ignored until you set a mesh." msgstr "" #: scene/3d/soft_body.cpp @@ -9860,7 +11261,7 @@ msgstr "" msgid "" "Container by itself serves no purpose unless a script configures it's " "children placement behavior.\n" -"If you dont't intend to add a script, then please use a plain 'Control' node " +"If you don't intend to add a script, then please use a plain 'Control' node " "instead." msgstr "" @@ -9872,10 +11273,6 @@ msgstr "" msgid "Please Confirm..." msgstr "" -#: scene/gui/file_dialog.cpp -msgid "Go to parent folder." -msgstr "" - #: scene/gui/popup.cpp msgid "" "Popups will hide by default unless you call popup() or any of the popup*() " @@ -9947,3 +11344,7 @@ msgstr "" #: servers/visual/shader_language.cpp msgid "Varyings can only be assigned in vertex function." msgstr "" + +#: servers/visual/shader_language.cpp +msgid "Constants cannot be modified." +msgstr "" diff --git a/editor/translations/extract.py b/editor/translations/extract.py index 2075bd5f3c..70eb15da62 100755 --- a/editor/translations/extract.py +++ b/editor/translations/extract.py @@ -60,7 +60,7 @@ def process_file(f, fname): lc = 1 while (l): - patterns = ['RTR(\"', 'TTR(\"','TTRC(\"'] + patterns = ['RTR(\"', 'TTR(\"', 'TTRC(\"'] idx = 0 pos = 0 while (pos >= 0): @@ -70,7 +70,7 @@ def process_file(f, fname): idx += 1 pos = 0 continue - pos += 5 + pos += len(patterns[idx]) msg = "" while (pos < len(l) and (l[pos] != '"' or l[pos - 1] == '\\')): @@ -101,10 +101,10 @@ def process_file(f, fname): print("Updating the editor.pot template...") for fname in matches: - with open(fname, "rb") as f: + with open(fname, "r") as f: process_file(f, fname) -with open("editor.pot", "wb") as f: +with open("editor.pot", "w") as f: f.write(main_po) if (os.name == "posix"): diff --git a/editor/translations/fa.po b/editor/translations/fa.po index 445b941a96..bd1c52ff57 100644 --- a/editor/translations/fa.po +++ b/editor/translations/fa.po @@ -10,12 +10,13 @@ # sayyed hamed nasib <cghamed752@chmail.ir>, 2017. # Behrooz Kashani <bkashani@gmail.com>, 2018. # Mahdi <sadisticwarlock@gmail.com>, 2018. +# hpn33 <hamed.hpn332@gmail.com>, 2019. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2018-12-13 14:35+0100\n" -"Last-Translator: Mahdi <sadisticwarlock@gmail.com>\n" +"PO-Revision-Date: 2019-06-16 19:42+0000\n" +"Last-Translator: hpn33 <hamed.hpn332@gmail.com>\n" "Language-Team: Persian <https://hosted.weblate.org/projects/godot-engine/" "godot/fa/>\n" "Language: fa\n" @@ -23,7 +24,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.7-dev\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -46,7 +47,7 @@ msgstr "" #: core/math/expression.cpp msgid "self can't be used because instance is null (not passed)" -msgstr "" +msgstr "نمی توان از self Ø§Ø³ØªÙØ§Ø¯Ù‡ کرد چون instance = null هست (تایید نشده)" #: core/math/expression.cpp #, fuzzy @@ -74,14 +75,22 @@ msgstr "" #: editor/animation_bezier_editor.cpp #: editor/plugins/asset_library_editor_plugin.cpp msgid "Free" -msgstr "" +msgstr "ازاد کردن" #: editor/animation_bezier_editor.cpp msgid "Balanced" -msgstr "" +msgstr "متعادل شده" #: editor/animation_bezier_editor.cpp msgid "Mirror" +msgstr "بازتاب" + +#: editor/animation_bezier_editor.cpp editor/editor_profiler.cpp +msgid "Time:" +msgstr "زمان:" + +#: editor/animation_bezier_editor.cpp +msgid "Value:" msgstr "" #: editor/animation_bezier_editor.cpp @@ -170,14 +179,20 @@ msgid "Animation Playback Track" msgstr "" #: editor/animation_track_editor.cpp -msgid "Add Track" -msgstr "ترک را اضاÙÙ‡ Ú©Ù†" +#, fuzzy +msgid "Animation length (frames)" +msgstr "طول انیمیشن (به ثانیه)" #: editor/animation_track_editor.cpp -msgid "Animation Length Time (seconds)" +#, fuzzy +msgid "Animation length (seconds)" msgstr "طول انیمیشن (به ثانیه)" #: editor/animation_track_editor.cpp +msgid "Add Track" +msgstr "ترک را اضاÙÙ‡ Ú©Ù†" + +#: editor/animation_track_editor.cpp msgid "Animation Looping" msgstr "تکرار انیمیشن" @@ -309,11 +324,13 @@ msgid "Create %d NEW tracks and insert keys?" msgstr "ساختن تعداد d% ترک جدید، ودرج کلیدها؟" #: editor/animation_track_editor.cpp editor/create_dialog.cpp -#: editor/editor_audio_buses.cpp editor/editor_plugin_settings.cpp -#: editor/plugin_config_dialog.cpp +#: editor/editor_audio_buses.cpp editor/editor_feature_profile.cpp +#: editor/editor_plugin_settings.cpp editor/plugin_config_dialog.cpp #: editor/plugins/abstract_polygon_2d_editor.cpp #: editor/plugins/mesh_instance_editor_plugin.cpp -#: editor/plugins/particles_editor_plugin.cpp editor/script_create_dialog.cpp +#: editor/plugins/particles_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_create_dialog.cpp msgid "Create" msgstr "تولید" @@ -432,6 +449,23 @@ msgid "" msgstr "" #: editor/animation_track_editor.cpp +msgid "" +"This animation belongs to an imported scene, so changes to imported tracks " +"will not be saved.\n" +"\n" +"To enable the ability to add custom tracks, navigate to the scene's import " +"settings and set\n" +"\"Animation > Storage\" to \"Files\", enable \"Animation > Keep Custom Tracks" +"\", then re-import.\n" +"Alternatively, use an import preset that imports animations to separate " +"files." +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Warning: Editing imported animation" +msgstr "" + +#: editor/animation_track_editor.cpp msgid "Only show tracks from nodes selected in tree." msgstr "" @@ -570,7 +604,8 @@ msgstr "نسبت تغییر مقیاس:" msgid "Select tracks to copy:" msgstr "" -#: editor/animation_track_editor.cpp editor/editor_properties.cpp +#: editor/animation_track_editor.cpp editor/editor_log.cpp +#: editor/editor_properties.cpp #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp @@ -639,6 +674,11 @@ msgstr "جایگزینی همه" msgid "Selection Only" msgstr "تنها در قسمت انتخاب شده" +#: editor/code_editor.cpp editor/plugins/script_text_editor.cpp +#: editor/plugins/text_editor.cpp +msgid "Standard" +msgstr "" + #: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/texture_region_editor_plugin.cpp #: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp @@ -664,21 +704,38 @@ msgid "Line and column numbers." msgstr "" #: editor/connections_dialog.cpp -msgid "Method in target Node must be specified!" +#, fuzzy +msgid "Method in target node must be specified." msgstr "متد در گره مقصد باید مشخص شده باشد!" #: editor/connections_dialog.cpp +#, fuzzy msgid "" -"Target method not found! Specify a valid method or attach a script to target " -"Node." +"Target method not found. Specify a valid method or attach a script to the " +"target node." msgstr "" "متد هد٠پیدا نشد! Ù„Ø·ÙØ§ یک متد صØÛŒØ مشخص کنید یا یک اسکریپت به گره Ù‡Ø¯Ù Ø§Ù„ØØ§Ù‚ " "کنید." #: editor/connections_dialog.cpp -msgid "Connect To Node:" +#, fuzzy +msgid "Connect to Node:" +msgstr "اتصال به گره:" + +#: editor/connections_dialog.cpp +#, fuzzy +msgid "Connect to Script:" msgstr "اتصال به گره:" +#: editor/connections_dialog.cpp +#, fuzzy +msgid "From Signal:" +msgstr "سیگنال ها:" + +#: editor/connections_dialog.cpp +msgid "Scene does not contain any script." +msgstr "" + #: editor/connections_dialog.cpp editor/editor_autoload_settings.cpp #: editor/groups_editor.cpp editor/plugins/item_list_editor_plugin.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_settings_editor.cpp @@ -686,10 +743,12 @@ msgid "Add" msgstr "Ø§ÙØ²ÙˆØ¯Ù†" #: editor/connections_dialog.cpp editor/dependency_editor.cpp -#: editor/groups_editor.cpp editor/plugins/animation_player_editor_plugin.cpp +#: editor/editor_feature_profile.cpp editor/groups_editor.cpp +#: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp #: editor/plugins/resource_preloader_editor_plugin.cpp -#: editor/plugins/theme_editor_plugin.cpp editor/project_manager.cpp +#: editor/plugins/theme_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_manager.cpp #: editor/project_settings_editor.cpp msgid "Remove" msgstr "برداشتن" @@ -703,21 +762,32 @@ msgid "Extra Call Arguments:" msgstr "آرگومان‌های اضاÙÛŒ ÙØ±Ø§Ø®ÙˆØ§Ù†ÛŒ:" #: editor/connections_dialog.cpp -msgid "Path to Node:" -msgstr "مسیر به سمت گره:" - -#: editor/connections_dialog.cpp -msgid "Make Function" -msgstr "تابع را بساز" +#, fuzzy +msgid "Advanced" +msgstr "متعادل شده" #: editor/connections_dialog.cpp msgid "Deferred" msgstr "معوق" #: editor/connections_dialog.cpp +msgid "" +"Defers the signal, storing it in a queue and only firing it at idle time." +msgstr "" + +#: editor/connections_dialog.cpp msgid "Oneshot" msgstr "تک نما" +#: editor/connections_dialog.cpp +msgid "Disconnects the signal after its first emission." +msgstr "" + +#: editor/connections_dialog.cpp +#, fuzzy +msgid "Cannot connect signal" +msgstr "اتصال سیگنال:" + #: editor/connections_dialog.cpp editor/dependency_editor.cpp #: editor/export_template_manager.cpp editor/groups_editor.cpp #: editor/plugins/animation_player_editor_plugin.cpp @@ -760,12 +830,12 @@ msgstr "عدم اتصال" #: editor/connections_dialog.cpp #, fuzzy -msgid "Connect Signal: " +msgid "Connect a Signal to a Method" msgstr "اتصال سیگنال:" #: editor/connections_dialog.cpp #, fuzzy -msgid "Edit Connection: " +msgid "Edit Connection:" msgstr "خطای اتصال" #: editor/connections_dialog.cpp @@ -800,7 +870,6 @@ msgid "Change %s Type" msgstr "تغییر نوع %s" #: editor/create_dialog.cpp editor/project_settings_editor.cpp -#: modules/visual_script/visual_script_editor.cpp msgid "Change" msgstr "تغییر بده" @@ -831,7 +900,8 @@ msgid "Matches:" msgstr "تطبیق‌ها:" #: editor/create_dialog.cpp editor/plugin_config_dialog.cpp -#: editor/plugins/asset_library_editor_plugin.cpp editor/property_selector.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/property_selector.cpp #: modules/visual_script/visual_script_property_selector.cpp msgid "Description:" msgstr "توضیØ:" @@ -845,17 +915,19 @@ msgid "Dependencies For:" msgstr "بستگی‌ها برای:" #: editor/dependency_editor.cpp +#, fuzzy msgid "" "Scene '%s' is currently being edited.\n" -"Changes will not take effect unless reloaded." +"Changes will only take effect when reloaded." msgstr "" "صØÙ†Ù‡â€ŒÛŒ 's%' در ØØ§Ù„ ØØ§Ø¶Ø± ویرایش شده است.\n" "تغییرات مؤثر نخواهد بود مگر با بارگذاری مجدد." #: editor/dependency_editor.cpp +#, fuzzy msgid "" "Resource '%s' is in use.\n" -"Changes will take effect when reloaded." +"Changes will only take effect when reloaded." msgstr "" "منابع 's%' در ØØ§Ù„ Ø§Ø³ØªÙØ§Ø¯Ù‡ است.\n" "تغییرات با بارگذاری مجدد مؤثر خواهد بود." @@ -952,21 +1024,14 @@ msgid "Permanently delete %d item(s)? (No undo!)" msgstr "به طور دائمی تعداد 'd%' آیتم را ØØ°Ù کند؟ (بدون undo !)" #: editor/dependency_editor.cpp -msgid "Owns" -msgstr "اموال" - -#: editor/dependency_editor.cpp -msgid "Resources Without Explicit Ownership:" -msgstr "منابع بدون مالکیت صریØ:" +#, fuzzy +msgid "Show Dependencies" +msgstr "بستگی‌ها" #: editor/dependency_editor.cpp editor/editor_node.cpp msgid "Orphan Resource Explorer" msgstr "پوینده‌ی منبع جدا Ø§ÙØªØ§Ø¯Ù‡" -#: editor/dependency_editor.cpp -msgid "Delete selected files?" -msgstr "آیا پرونده‌های انتخاب شده ØØ°Ù شود؟" - #: editor/dependency_editor.cpp editor/editor_audio_buses.cpp #: editor/editor_file_dialog.cpp editor/editor_node.cpp #: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp @@ -975,6 +1040,14 @@ msgstr "آیا پرونده‌های انتخاب شده ØØ°Ù شود؟" msgid "Delete" msgstr "ØØ°Ù Ú©Ù†" +#: editor/dependency_editor.cpp +msgid "Owns" +msgstr "اموال" + +#: editor/dependency_editor.cpp +msgid "Resources Without Explicit Ownership:" +msgstr "منابع بدون مالکیت صریØ:" + #: editor/dictionary_property_edit.cpp msgid "Change Dictionary Key" msgstr "تغییر کلید دیکشنری" @@ -1012,14 +1085,12 @@ msgid "Authors" msgstr "Ù…Ø¤Ù„ÙØ§Ù†" #: editor/editor_about.cpp -#, fuzzy msgid "Platinum Sponsors" -msgstr "اسپانسر‌های درجه Û±" +msgstr "اسپانسر‌های پلاتینیوم (درجه Û±)" #: editor/editor_about.cpp -#, fuzzy msgid "Gold Sponsors" -msgstr "اسپانسر‌های درجه Û²" +msgstr "اسپانسر‌های طلایی (درجه Û²)" #: editor/editor_about.cpp msgid "Mini Sponsors" @@ -1086,14 +1157,14 @@ msgstr "" msgid "Success!" msgstr "" -#: editor/editor_asset_installer.cpp +#: editor/editor_asset_installer.cpp editor/editor_node.cpp #: editor/plugins/asset_library_editor_plugin.cpp msgid "Install" -msgstr "" +msgstr "نصب کردن" #: editor/editor_asset_installer.cpp msgid "Package Installer" -msgstr "" +msgstr "نصب کننده پکیج ها" #: editor/editor_audio_buses.cpp msgid "Speakers" @@ -1218,7 +1289,11 @@ msgid "Open Audio Bus Layout" msgstr "" #: editor/editor_audio_buses.cpp -msgid "There is no 'res://default_bus_layout.tres' file." +msgid "There is no '%s' file." +msgstr "" + +#: editor/editor_audio_buses.cpp editor/plugins/canvas_item_editor_plugin.cpp +msgid "Layout" msgstr "" #: editor/editor_audio_buses.cpp @@ -1272,18 +1347,25 @@ msgid "Valid characters:" msgstr "کاراکترهای معتبر:" #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing engine class name." +#, fuzzy +msgid "Must not collide with an existing engine class name." msgstr "نام نامعتبر. نباید با یک نام کلاس موجود در موتور برخوردی داشته باشد." #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing buit-in type name." +#, fuzzy +msgid "Must not collide with an existing buit-in type name." msgstr "نام نامعتبر. نباید یا یک نام نوع توکار برخوردی داشته باشد." #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing global constant name." +#, fuzzy +msgid "Must not collide with an existing global constant name." msgstr "نام نامعتبر. نباید با نام یک ثابت سراسری موجود برخوردی داشته باشد." #: editor/editor_autoload_settings.cpp +msgid "Keyword cannot be used as an autoload name." +msgstr "" + +#: editor/editor_autoload_settings.cpp msgid "Autoload '%s' already exists!" msgstr "بارگذاری خودکار 's%' هم اکنون موجود است!" @@ -1311,11 +1393,12 @@ msgstr "" msgid "Rearrange Autoloads" msgstr "" -#: editor/editor_autoload_settings.cpp -msgid "Invalid Path." +#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp +#, fuzzy +msgid "Invalid path." msgstr "مسیر نامعتبر." -#: editor/editor_autoload_settings.cpp +#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp msgid "File does not exist." msgstr "پرونده موجود نیست." @@ -1367,7 +1450,7 @@ msgid "[unsaved]" msgstr "" #: editor/editor_dir_dialog.cpp -msgid "Please select a base directory first" +msgid "Please select a base directory first." msgstr "" #: editor/editor_dir_dialog.cpp @@ -1375,7 +1458,8 @@ msgid "Choose a Directory" msgstr "" #: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp -#: editor/filesystem_dock.cpp scene/gui/file_dialog.cpp +#: editor/filesystem_dock.cpp editor/project_manager.cpp +#: scene/gui/file_dialog.cpp msgid "Create Folder" msgstr "ساختن پوشه" @@ -1443,6 +1527,177 @@ msgstr "" msgid "Template file not found:" msgstr "" +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "3D Editor" +msgstr "ویرایشگر" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Script Editor" +msgstr "گشودن ویرایشگر اسکریپت" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Asset Library" +msgstr "گشودن کتابخانه عست" + +#: editor/editor_feature_profile.cpp +msgid "Scene Tree Editing" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Import Dock" +msgstr "وارد کردن" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Node Dock" +msgstr "نام گره:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Filesystem Dock" +msgstr "سامانه پرونده" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Erase profile '%s'? (no undo)" +msgstr "جایگزینی همه" + +#: editor/editor_feature_profile.cpp +msgid "Profile must be a valid filename and must not contain '.'" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Profile with this name already exists." +msgstr "بارگذاری خودکار 's%' هم اکنون موجود است!" + +#: editor/editor_feature_profile.cpp +msgid "(Editor Disabled, Properties Disabled)" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "(Properties Disabled)" +msgstr "ویژگی:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "(Editor Disabled)" +msgstr "ØºÛŒØ±ÙØ¹Ø§Ù„ شده" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Class Options:" +msgstr "توضیØ:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enable Contextual Editor" +msgstr "گشودن ویرایشگر متن" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enabled Properties:" +msgstr "صاÙÛŒ کردن گره‌ها" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enabled Features:" +msgstr "Ùهرست متدها:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enabled Classes:" +msgstr "جستجوی کلاسها" + +#: editor/editor_feature_profile.cpp +msgid "File '%s' format is invalid, import aborted." +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "" +"Profile '%s' already exists. Remote it first before importing, import " +"aborted." +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Error saving profile to path: '%s'." +msgstr "خطای بارگذاری قلم." + +#: editor/editor_feature_profile.cpp +msgid "Unset" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Current Profile" +msgstr "نسخه اخیر:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Make Current" +msgstr "تابع را بساز" + +#: editor/editor_feature_profile.cpp +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "New" +msgstr "" + +#: editor/editor_feature_profile.cpp editor/editor_node.cpp +#: editor/plugins/asset_library_editor_plugin.cpp editor/project_manager.cpp +msgid "Import" +msgstr "وارد کردن" + +#: editor/editor_feature_profile.cpp editor/editor_node.cpp +#: editor/project_export.cpp +msgid "Export" +msgstr "صدور" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Available Profiles" +msgstr "گره های موجود:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enabled Classes" +msgstr "جستجوی کلاسها" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Class Options" +msgstr "ØªÙˆØ¶ÛŒØØ§Øª" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "New profile name:" +msgstr "نام گره:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Erase Profile" +msgstr "Ú©Ùندی در آغاز" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Import Profile(s)" +msgstr "پروژه واردشده" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Export Profile" +msgstr "صدور پروژه" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Manage Editor Feature Profiles" +msgstr "مدیریت صدور قالب ها" + #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp #, fuzzy msgid "Select Current Folder" @@ -1466,8 +1721,8 @@ msgstr "" msgid "Open in File Manager" msgstr "باز شدن مدیر پروژه؟" -#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp -#: editor/project_manager.cpp +#: editor/editor_file_dialog.cpp editor/editor_node.cpp +#: editor/filesystem_dock.cpp editor/project_manager.cpp #, fuzzy msgid "Show in File Manager" msgstr "باز شدن مدیر پروژه؟" @@ -1527,7 +1782,7 @@ msgstr "" msgid "Go Up" msgstr "" -#: editor/editor_file_dialog.cpp +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Toggle Hidden Files" msgstr "" @@ -1561,8 +1816,9 @@ msgstr "زبانه قبلی" msgid "Next Folder" msgstr "ساختن پوشه" -#: editor/editor_file_dialog.cpp -msgid "Go to parent folder" +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp +#, fuzzy +msgid "Go to parent folder." msgstr "Ø±ÙØªÙ† به پوشه والد" #: editor/editor_file_dialog.cpp @@ -1570,6 +1826,10 @@ msgstr "Ø±ÙØªÙ† به پوشه والد" msgid "(Un)favorite current folder." msgstr "ناتوان در ساختن پوشه." +#: editor/editor_file_dialog.cpp +msgid "Toggle visibility of hidden files." +msgstr "" + #: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp msgid "View items as a grid of thumbnails." msgstr "" @@ -1584,6 +1844,7 @@ msgstr "پوشه‌ها Ùˆ پرونده‌ها:" #: editor/editor_file_dialog.cpp editor/plugins/sprite_editor_plugin.cpp #: editor/plugins/style_box_editor_plugin.cpp +#: editor/plugins/theme_editor_plugin.cpp msgid "Preview:" msgstr "" @@ -1600,6 +1861,12 @@ msgid "ScanSources" msgstr "" #: editor/editor_file_system.cpp +msgid "" +"There are multiple importers for different types pointing to file %s, import " +"aborted" +msgstr "" + +#: editor/editor_file_system.cpp msgid "(Re)Importing Assets" msgstr "(در ØØ§Ù„) وارد کردن دوباره عست ها" @@ -1792,6 +2059,11 @@ msgstr "" msgid "Output:" msgstr "خروجی:" +#: editor/editor_log.cpp editor/plugins/tile_map_editor_plugin.cpp +#, fuzzy +msgid "Copy Selection" +msgstr "برداشتن انتخاب شده" + #: editor/editor_log.cpp editor/editor_profiler.cpp #: editor/editor_properties.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp @@ -1942,7 +2214,7 @@ msgstr "" #: editor/editor_node.cpp msgid "" "This resource belongs to a scene that was instanced or inherited.\n" -"Changes to it will not be kept when saving the current scene." +"Changes to it won't be kept when saving the current scene." msgstr "" #: editor/editor_node.cpp @@ -1953,7 +2225,7 @@ msgstr "" #: editor/editor_node.cpp msgid "" -"This scene was imported, so changes to it will not be kept.\n" +"This scene was imported, so changes to it won't be kept.\n" "Instancing it or inheriting will allow making changes to it.\n" "Please read the documentation relevant to importing scenes to better " "understand this workflow." @@ -1961,7 +2233,7 @@ msgstr "" #: editor/editor_node.cpp msgid "" -"This is a remote object so changes to it will not be kept.\n" +"This is a remote object, so changes to it won't be kept.\n" "Please read the documentation relevant to debugging to better understand " "this workflow." msgstr "" @@ -1971,27 +2243,6 @@ msgid "There is no defined scene to run." msgstr "" #: editor/editor_node.cpp -msgid "" -"No main scene has ever been defined, select one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" - -#: editor/editor_node.cpp -msgid "" -"Selected scene '%s' does not exist, select a valid one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" - -#: editor/editor_node.cpp -msgid "" -"Selected scene '%s' is not a scene file, select a valid one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" - -#: editor/editor_node.cpp msgid "Current scene was never saved, please save it prior to running." msgstr "" @@ -1999,7 +2250,7 @@ msgstr "" msgid "Could not start subprocess!" msgstr "" -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/filesystem_dock.cpp msgid "Open Scene" msgstr "باز کردن صØÙ†Ù‡" @@ -2008,6 +2259,11 @@ msgid "Open Base Scene" msgstr "" #: editor/editor_node.cpp +#, fuzzy +msgid "Quick Open..." +msgstr "باز Ú©Ù†" + +#: editor/editor_node.cpp msgid "Quick Open Scene..." msgstr "" @@ -2170,6 +2426,27 @@ msgid "Clear Recent Scenes" msgstr "" #: editor/editor_node.cpp +msgid "" +"No main scene has ever been defined, select one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"Selected scene '%s' does not exist, select a valid one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"Selected scene '%s' is not a scene file, select a valid one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" + +#: editor/editor_node.cpp msgid "Save Layout" msgstr "" @@ -2198,6 +2475,19 @@ msgstr "پخش صØÙ†Ù‡" msgid "Close Tab" msgstr "بستن" +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +msgid "Close Other Tabs" +msgstr "" + +#: editor/editor_node.cpp +msgid "Close Tabs to the Right" +msgstr "" + +#: editor/editor_node.cpp +#, fuzzy +msgid "Close All Tabs" +msgstr "بستن" + #: editor/editor_node.cpp msgid "Switch Scene Tab" msgstr "" @@ -2322,10 +2612,6 @@ msgstr "پروژه" msgid "Project Settings" msgstr "ØªØ±Ø¬ÛŒØØ§Øª پروژه" -#: editor/editor_node.cpp editor/project_export.cpp -msgid "Export" -msgstr "صدور" - #: editor/editor_node.cpp editor/plugins/tile_set_editor_plugin.cpp msgid "Tools" msgstr "ابزارها" @@ -2336,6 +2622,10 @@ msgid "Open Project Data Folder" msgstr "باز شدن مدیر پروژه؟" #: editor/editor_node.cpp +msgid "Install Android Build Template" +msgstr "" + +#: editor/editor_node.cpp msgid "Quit to Project List" msgstr "خروج به Ùهرست پروژه ها" @@ -2443,6 +2733,11 @@ msgstr "" msgid "Open Editor Settings Folder" msgstr "ویرایشگر ØªØ±Ø¬ÛŒØØ§Øª" +#: editor/editor_node.cpp +#, fuzzy +msgid "Manage Editor Features" +msgstr "مدیریت صدور قالب ها" + #: editor/editor_node.cpp editor/project_export.cpp msgid "Manage Export Templates" msgstr "مدیریت صدور قالب ها" @@ -2455,6 +2750,7 @@ msgstr "راهنما" #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp #: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp #: editor/project_settings_editor.cpp editor/rename_dialog.cpp msgid "Search" msgstr "جستجو" @@ -2545,11 +2841,6 @@ msgstr "" msgid "Disable Update Spinner" msgstr "" -#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp -#: editor/project_manager.cpp -msgid "Import" -msgstr "وارد کردن" - #: editor/editor_node.cpp msgid "FileSystem" msgstr "سامانه پرونده" @@ -2575,6 +2866,28 @@ msgid "Don't Save" msgstr "" #: editor/editor_node.cpp +msgid "Android build template is missing, please install relevant templates." +msgstr "" + +#: editor/editor_node.cpp +#, fuzzy +msgid "Manage Templates" +msgstr "مدیریت صدور قالب ها" + +#: editor/editor_node.cpp +msgid "" +"This will install the Android project for custom builds.\n" +"Note that, in order to use it, it needs to be enabled per export preset." +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"Android build template is already installed and it won't be overwritten.\n" +"Remove the \"build\" directory manually before attempting this operation " +"again." +msgstr "" + +#: editor/editor_node.cpp msgid "Import Templates From ZIP File" msgstr "واردکردن قالب ها از درون یک ÙØ§ÛŒÙ„ ZIP" @@ -2699,10 +3012,6 @@ msgid "Physics Frame %" msgstr "" #: editor/editor_profiler.cpp -msgid "Time:" -msgstr "زمان:" - -#: editor/editor_profiler.cpp msgid "Inclusive" msgstr "" @@ -2843,10 +3152,6 @@ msgid "Remove Item" msgstr "" #: editor/editor_run_native.cpp -msgid "Select device from the list" -msgstr "" - -#: editor/editor_run_native.cpp msgid "" "No runnable export preset found for this platform.\n" "Please add a runnable preset in the export menu." @@ -2880,6 +3185,10 @@ msgstr "" msgid "Select Node(s) to Import" msgstr "انتخاب گره (ها) برای وارد شدن" +#: editor/editor_sub_scene.cpp editor/project_manager.cpp +msgid "Browse" +msgstr "" + #: editor/editor_sub_scene.cpp msgid "Scene Path:" msgstr "" @@ -3047,6 +3356,11 @@ msgid "SSL Handshake Error" msgstr "دست دادن خطای اس اس ال" #: editor/export_template_manager.cpp +#, fuzzy +msgid "Uncompressing Android Build Sources" +msgstr "عست های غیر ÙØ´Ø±Ø¯Ù‡" + +#: editor/export_template_manager.cpp msgid "Current Version:" msgstr "نسخه اخیر:" @@ -3063,7 +3377,8 @@ msgid "Remove Template" msgstr "ØØ°Ù قالب" #: editor/export_template_manager.cpp -msgid "Select template file" +#, fuzzy +msgid "Select Template File" msgstr "انتخاب پرونده قالب" #: editor/export_template_manager.cpp @@ -3123,8 +3438,9 @@ msgid "No name provided." msgstr "" #: editor/filesystem_dock.cpp -msgid "Provided name contains invalid characters" -msgstr "" +#, fuzzy +msgid "Provided name contains invalid characters." +msgstr "کاراکترهای معتبر:" #: editor/filesystem_dock.cpp #, fuzzy @@ -3155,7 +3471,12 @@ msgstr "" #: editor/filesystem_dock.cpp #, fuzzy -msgid "Open Scene(s)" +msgid "New Inherited Scene" +msgstr "وارث جدید" + +#: editor/filesystem_dock.cpp +#, fuzzy +msgid "Open Scenes" msgstr "باز کردن صØÙ†Ù‡" #: editor/filesystem_dock.cpp @@ -3164,12 +3485,12 @@ msgstr "" #: editor/filesystem_dock.cpp #, fuzzy -msgid "Add to favorites" +msgid "Add to Favorites" msgstr "برگزیده‌ها:" #: editor/filesystem_dock.cpp #, fuzzy -msgid "Remove from favorites" +msgid "Remove from Favorites" msgstr "ØØ°Ù نقطهٔ منØÙ†ÛŒ" #: editor/filesystem_dock.cpp @@ -3203,11 +3524,13 @@ msgstr "صØÙ†Ù‡ جدید" msgid "New Resource..." msgstr "ذخیره منبع از ..." -#: editor/filesystem_dock.cpp editor/script_editor_debugger.cpp +#: editor/filesystem_dock.cpp editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_editor_debugger.cpp msgid "Expand All" msgstr "" -#: editor/filesystem_dock.cpp editor/script_editor_debugger.cpp +#: editor/filesystem_dock.cpp editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_editor_debugger.cpp #, fuzzy msgid "Collapse All" msgstr "بستن" @@ -3220,12 +3543,14 @@ msgid "Rename" msgstr "تغییر نام" #: editor/filesystem_dock.cpp -msgid "Previous Directory" -msgstr "" +#, fuzzy +msgid "Previous Folder/File" +msgstr "زبانه قبلی" #: editor/filesystem_dock.cpp -msgid "Next Directory" -msgstr "" +#, fuzzy +msgid "Next Folder/File" +msgstr "ساختن پوشه" #: editor/filesystem_dock.cpp msgid "Re-Scan Filesystem" @@ -3233,7 +3558,7 @@ msgstr "پویش دوباره سامانه پرونده" #: editor/filesystem_dock.cpp #, fuzzy -msgid "Toggle split mode" +msgid "Toggle Split Mode" msgstr "یک Breakpoint درج Ú©Ù†" #: editor/filesystem_dock.cpp @@ -3263,7 +3588,7 @@ msgstr "" msgid "Create Script" msgstr "" -#: editor/find_in_files.cpp +#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp #, fuzzy msgid "Find in Files" msgstr "ÛŒØ§ÙØªÙ†" @@ -3283,6 +3608,12 @@ msgstr "ساختن پوشه" msgid "Filters:" msgstr "صاÙÛŒ:" +#: editor/find_in_files.cpp +msgid "" +"Include the files with the following extensions. Add or remove them in " +"ProjectSettings." +msgstr "" + #: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp msgid "Find..." @@ -3736,7 +4067,7 @@ msgstr "گره انیمیشن" #: editor/plugins/animation_blend_space_2d_editor.cpp #, fuzzy -msgid "Triangle already exists" +msgid "Triangle already exists." msgstr "بارگذاری خودکار 's%' هم اکنون موجود است!" #: editor/plugins/animation_blend_space_2d_editor.cpp @@ -3817,7 +4148,6 @@ msgid "Node Moved" msgstr "نام گره:" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Unable to connect, port may be in use or connection may be invalid." msgstr "" @@ -3893,7 +4223,7 @@ msgstr "ویرایش صاÙÛŒ ها" #: editor/plugins/animation_blend_tree_editor_plugin.cpp #, fuzzy -msgid "Enable filtering" +msgid "Enable Filtering" msgstr "ÙØ±Ø²Ù†Ø¯ قابل ویرایش" #: editor/plugins/animation_player_editor_plugin.cpp @@ -4013,10 +4343,6 @@ msgid "Animation" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "New" -msgstr "" - -#: editor/plugins/animation_player_editor_plugin.cpp #, fuzzy msgid "Edit Transitions..." msgstr "انتقال‌ها" @@ -4035,11 +4361,11 @@ msgid "Autoplay on Load" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Onion Skinning" +msgid "Enable Onion Skinning" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Enable Onion Skinning" +msgid "Onion Skinning Options" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp @@ -4600,13 +4926,19 @@ msgid "Move CanvasItem" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"Children of containers have their anchors and margins values overridden by " +"their parent." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Presets for the anchors and margins values of a Control node." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "" -"Children of containers have their anchors and margins values overridden by " -"their parent." +"When active, moving Control nodes changes their anchors instead of their " +"margins." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4622,10 +4954,52 @@ msgid "Change Anchors" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Lock Selected" +msgstr "همه‌ی انتخاب ها" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Unlock Selected" +msgstr "انتخاب شده را ØØ°Ù Ú©Ù†" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Group Selected" +msgstr "برداشتن انتخاب شده" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Ungroup Selected" +msgstr "برداشتن انتخاب شده" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Paste Pose" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Create Custom Bone(s) from Node(s)" +msgstr "پخش Ø³ÙØ§Ø±Ø´ÛŒ صØÙ†Ù‡" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Clear Bones" +msgstr "پخش Ø³ÙØ§Ø±Ø´ÛŒ صØÙ†Ù‡" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Make IK Chain" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Clear IK Chain" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "" "Warning: Children of a container get their position and size determined only " "by their parent." @@ -4700,7 +5074,7 @@ msgid "Snapping Options" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to grid" +msgid "Snap to Grid" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4721,32 +5095,35 @@ msgid "Use Pixel Snap" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Smart snapping" +msgid "Smart Snapping" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to parent" +msgid "Snap to Parent" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node anchor" +msgid "Snap to Node Anchor" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node sides" -msgstr "" +#, fuzzy +msgid "Snap to Node Sides" +msgstr "انتخاب ØØ§Ù„ت" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node center" +msgid "Snap to Node Center" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to other nodes" -msgstr "" +#, fuzzy +msgid "Snap to Other Nodes" +msgstr "مسیر به سمت گره:" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to guides" -msgstr "" +#, fuzzy +msgid "Snap to Guides" +msgstr "انتخاب ØØ§Ù„ت" #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp @@ -4759,10 +5136,12 @@ msgid "Unlock the selected object (can be moved)." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Makes sure the object's children are not selectable." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Restores the object's children's ability to be selected." msgstr "" @@ -4776,14 +5155,6 @@ msgid "Show Bones" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Make IK Chain" -msgstr "" - -#: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Clear IK Chain" -msgstr "" - -#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Make Custom Bone(s) from Node(s)" msgstr "" @@ -4835,7 +5206,7 @@ msgid "Frame Selection" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Layout" +msgid "Preview Canvas Scale" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4889,6 +5260,10 @@ msgid "Divide grid step by 2" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Pan View" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Add %s" msgstr "" @@ -4912,7 +5287,7 @@ msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp #, fuzzy -msgid "Change default type" +msgid "Change Default Type" msgstr "نوع مقدار آرایه را تغییر بده" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4999,20 +5374,20 @@ msgid "Create Emission Points From Node" msgstr "" #: editor/plugins/curve_editor_plugin.cpp -msgid "Flat0" +msgid "Flat 0" msgstr "" #: editor/plugins/curve_editor_plugin.cpp -msgid "Flat1" +msgid "Flat 1" msgstr "" -#: editor/plugins/curve_editor_plugin.cpp -msgid "Ease in" -msgstr "Ú©Ùندی در آغاز" +#: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp +msgid "Ease In" +msgstr "" -#: editor/plugins/curve_editor_plugin.cpp -msgid "Ease out" -msgstr "Ú©Ùندی در پایان" +#: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp +msgid "Ease Out" +msgstr "" #: editor/plugins/curve_editor_plugin.cpp msgid "Smoothstep" @@ -5031,25 +5406,28 @@ msgid "Load Curve Preset" msgstr "بارگیری منØÙ†ÛŒ ذخیره‌شده" #: editor/plugins/curve_editor_plugin.cpp -msgid "Add point" +#, fuzzy +msgid "Add Point" msgstr "Ø§ÙØ²ÙˆØ¯Ù† نقطه" #: editor/plugins/curve_editor_plugin.cpp -msgid "Remove point" +#, fuzzy +msgid "Remove Point" msgstr "برداشتن نقطه" #: editor/plugins/curve_editor_plugin.cpp #, fuzzy -msgid "Left linear" +msgid "Left Linear" msgstr "خطی" #: editor/plugins/curve_editor_plugin.cpp -msgid "Right linear" -msgstr "" +#, fuzzy +msgid "Right Linear" +msgstr "خطی" #: editor/plugins/curve_editor_plugin.cpp #, fuzzy -msgid "Load preset" +msgid "Load Preset" msgstr "خطاهای بارگذاری" #: editor/plugins/curve_editor_plugin.cpp @@ -5105,14 +5483,19 @@ msgid "This doesn't work on scene root!" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Trimesh Shape" +msgid "Create Trimesh Static Shape" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Shape" +msgid "Failed creating shapes!" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp +#, fuzzy +msgid "Create Convex Shape(s)" +msgstr "ساختن %s جدید" + +#: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Navigation Mesh" msgstr "" @@ -5162,16 +5545,13 @@ msgid "Create Trimesh Static Body" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Static Body" -msgstr "" - -#: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Trimesh Collision Sibling" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Collision Sibling" -msgstr "" +#, fuzzy +msgid "Create Convex Collision Sibling(s)" +msgstr "انتخاب شده را تغییر مقیاس بده" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Outline Mesh..." @@ -5326,6 +5706,12 @@ msgid "Create Navigation Polygon" msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp +#: editor/plugins/particles_editor_plugin.cpp +#, fuzzy +msgid "Convert to CPUParticles" +msgstr "اتصال به گره:" + +#: editor/plugins/particles_2d_editor_plugin.cpp msgid "Generating Visibility Rect" msgstr "" @@ -5339,12 +5725,6 @@ msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp #: editor/plugins/particles_editor_plugin.cpp -#, fuzzy -msgid "Convert to CPUParticles" -msgstr "اتصال به گره:" - -#: editor/plugins/particles_2d_editor_plugin.cpp -#: editor/plugins/particles_editor_plugin.cpp msgid "Generation Time (sec):" msgstr "" @@ -5483,7 +5863,7 @@ msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp editor/plugins/theme_editor_plugin.cpp -#: editor/project_export.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_export.cpp msgid "Options" msgstr "" @@ -5539,7 +5919,7 @@ msgstr "" #: editor/plugins/physical_bone_plugin.cpp #, fuzzy -msgid "Move joint" +msgid "Move Joint" msgstr "برداشتن نقطه" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5782,7 +6162,6 @@ msgid "Open in Editor" msgstr "گشودن در ویرایشگر" #: editor/plugins/resource_preloader_editor_plugin.cpp -#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Load Resource" msgstr "" @@ -5883,6 +6262,11 @@ msgid "%s Class Reference" msgstr "" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp +msgid "Find Next" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp msgid "Toggle alphabetical sorting of the method list." msgstr "" @@ -5969,10 +6353,6 @@ msgstr "" msgid "Close All" msgstr "بستن" -#: editor/plugins/script_editor_plugin.cpp -msgid "Close Other Tabs" -msgstr "" - #: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp msgid "Run" msgstr "اجرا" @@ -5981,11 +6361,6 @@ msgstr "اجرا" msgid "Toggle Scripts Panel" msgstr "" -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/script_text_editor.cpp -msgid "Find Next" -msgstr "" - #: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp msgid "Step Over" msgstr "" @@ -6013,15 +6388,16 @@ msgid "Debug with External Editor" msgstr "ویرایشگر بستگی" #: editor/plugins/script_editor_plugin.cpp -msgid "Open Godot online documentation" -msgstr "" +#, fuzzy +msgid "Open Godot online documentation." +msgstr "شمارش ها" #: editor/plugins/script_editor_plugin.cpp msgid "Request Docs" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Help improve the Godot documentation by giving feedback" +msgid "Help improve the Godot documentation by giving feedback." msgstr "" #: editor/plugins/script_editor_plugin.cpp @@ -6048,10 +6424,12 @@ msgid "" msgstr "" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp msgid "Reload" msgstr "" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp msgid "Resave" msgstr "" @@ -6066,6 +6444,31 @@ msgstr "جستجوی راهنما" #: editor/plugins/script_text_editor.cpp #, fuzzy +msgid "Connections to method:" +msgstr "اتصال به گره:" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Source" +msgstr "منبع" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Signal" +msgstr "سیگنال‌ها" + +#: editor/plugins/script_text_editor.cpp +msgid "Target" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "" +"Missing connected method '%s' for signal '%s' from node '%s' to node '%s'." +msgstr "'s%' را از 's%' جدا Ú©Ù†" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy msgid "Line" msgstr "خط:" @@ -6078,10 +6481,6 @@ msgstr "" msgid "Go to Function" msgstr "Ø§ÙØ²ÙˆØ¯Ù† وظیÙÙ‡" -#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp -msgid "Standard" -msgstr "" - #: editor/plugins/script_text_editor.cpp msgid "Only resources from filesystem can be dropped." msgstr "" @@ -6114,6 +6513,11 @@ msgstr "" msgid "Syntax Highlighter" msgstr "" +#: editor/plugins/script_text_editor.cpp +#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp +msgid "Bookmarks" +msgstr "" + #: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" @@ -6143,6 +6547,26 @@ msgstr "" #: editor/plugins/script_text_editor.cpp #, fuzzy +msgid "Toggle Bookmark" +msgstr "دید آزاد" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Go to Next Bookmark" +msgstr "به گام بعدی برو" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Go to Previous Bookmark" +msgstr "یک Breakpoint درج Ú©Ù†" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Remove All Bookmarks" +msgstr "برداشتن انتخاب شده" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy msgid "Fold/Unfold Line" msgstr "برو به خط" @@ -6223,6 +6647,12 @@ msgid "Contextual Help" msgstr "" #: editor/plugins/shader_editor_plugin.cpp +msgid "" +"This shader has been modified on on disk.\n" +"What action should be taken?" +msgstr "" + +#: editor/plugins/shader_editor_plugin.cpp msgid "Shader" msgstr "" @@ -6574,7 +7004,7 @@ msgid "Right View" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Switch Perspective/Orthogonal view" +msgid "Switch Perspective/Orthogonal View" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp @@ -6615,11 +7045,12 @@ msgid "Toggle Freelook" msgstr "دید آزاد" #: editor/plugins/spatial_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Transform" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Snap object to floor" +msgid "Snap Object to Floor" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp @@ -6765,30 +7196,22 @@ msgid "Invalid geometry, can't replace by mesh." msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Invalid geometry, can't create polygon." -msgstr "" - -#: editor/plugins/sprite_editor_plugin.cpp -msgid "Invalid geometry, can't create collision polygon." -msgstr "" - -#: editor/plugins/sprite_editor_plugin.cpp -msgid "Invalid geometry, can't create light occluder." -msgstr "" +#, fuzzy +msgid "Convert to Mesh2D" +msgstr "اتصال به گره:" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Sprite" +msgid "Invalid geometry, can't create polygon." msgstr "" #: editor/plugins/sprite_editor_plugin.cpp #, fuzzy -msgid "Convert to Mesh2D" +msgid "Convert to Polygon2D" msgstr "اتصال به گره:" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy -msgid "Convert to Polygon2D" -msgstr "اتصال به گره:" +msgid "Invalid geometry, can't create collision polygon." +msgstr "" #: editor/plugins/sprite_editor_plugin.cpp #, fuzzy @@ -6796,10 +7219,18 @@ msgid "Create CollisionPolygon2D Sibling" msgstr "انتخاب شده را تغییر مقیاس بده" #: editor/plugins/sprite_editor_plugin.cpp +msgid "Invalid geometry, can't create light occluder." +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp msgid "Create LightOccluder2D Sibling" msgstr "" #: editor/plugins/sprite_editor_plugin.cpp +msgid "Sprite" +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp msgid "Simplification: " msgstr "" @@ -6818,7 +7249,12 @@ msgid "Settings:" msgstr "ØªØ±Ø¬ÛŒØØ§Øª" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "ERROR: Couldn't load frame resource!" +#, fuzzy +msgid "No Frames Selected" +msgstr "انتخاب شده را ØØ°Ù Ú©Ù†" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Add %d Frame(s)" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp @@ -6826,6 +7262,10 @@ msgid "Add Frame" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "ERROR: Couldn't load frame resource!" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Resource clipboard is empty or not a texture!" msgstr "" @@ -6869,6 +7309,15 @@ msgid "Animation Frames:" msgstr "گره انیمیشن" #: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Add a Texture from File" +msgstr "گره(ها) را از درخت اضاÙÙ‡ Ú©Ù†" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Add Frames from a Sprite Sheet" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Insert Empty (Before)" msgstr "" @@ -6886,6 +7335,28 @@ msgid "Move (After)" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Select Frames" +msgstr "انتخاب یک گره" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Horizontal:" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Vertical:" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Select/Clear All Frames" +msgstr "انتخاب همه" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Create Frames from Sprite Sheet" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "SpriteFrames" msgstr "" @@ -6951,14 +7422,15 @@ msgstr "" msgid "Remove All Items" msgstr "برداشتن انتخاب شده" -#: editor/plugins/theme_editor_plugin.cpp +#: editor/plugins/theme_editor_plugin.cpp editor/project_manager.cpp #, fuzzy msgid "Remove All" msgstr "برداشتن" #: editor/plugins/theme_editor_plugin.cpp -msgid "Edit theme..." -msgstr "" +#, fuzzy +msgid "Edit Theme" +msgstr "عضوها" #: editor/plugins/theme_editor_plugin.cpp msgid "Theme editing menu." @@ -6985,18 +7457,25 @@ msgid "Create From Current Editor Theme" msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "CheckBox Radio1" -msgstr "" +#, fuzzy +msgid "Toggle Button" +msgstr "دکمهٔ میانی." #: editor/plugins/theme_editor_plugin.cpp -msgid "CheckBox Radio2" -msgstr "" +#, fuzzy +msgid "Disabled Button" +msgstr "ØºÛŒØ±ÙØ¹Ø§Ù„ شده" #: editor/plugins/theme_editor_plugin.cpp msgid "Item" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Disabled Item" +msgstr "ØºÛŒØ±ÙØ¹Ø§Ù„ شده" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Check Item" msgstr "" @@ -7014,6 +7493,22 @@ msgid "Checked Radio Item" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +msgid "Named Sep." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Submenu" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Item 1" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Item 2" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Has" msgstr "" @@ -7022,8 +7517,9 @@ msgid "Many" msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "Has,Many,Options" -msgstr "" +#, fuzzy +msgid "Disabled LineEdit" +msgstr "ØºÛŒØ±ÙØ¹Ø§Ù„ شده" #: editor/plugins/theme_editor_plugin.cpp msgid "Tab 1" @@ -7038,6 +7534,19 @@ msgid "Tab 3" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Editable Item" +msgstr "ÙØ±Ø²Ù†Ø¯ قابل ویرایش" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Subtree" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Has,Many,Options" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Data Type:" msgstr "" @@ -7072,6 +7581,7 @@ msgid "Fix Invalid Tiles" msgstr "نام نامعتبر." #: editor/plugins/tile_map_editor_plugin.cpp +#: modules/gridmap/grid_map_editor_plugin.cpp #, fuzzy msgid "Cut Selection" msgstr "انتخاب شده را تغییر مقیاس بده" @@ -7115,37 +7625,47 @@ msgid "Mirror Y" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp +msgid "Disable Autotile" +msgstr "" + +#: editor/plugins/tile_map_editor_plugin.cpp +#, fuzzy +msgid "Enable Priority" +msgstr "ویرایش صاÙÛŒ ها" + +#: editor/plugins/tile_map_editor_plugin.cpp msgid "Paint Tile" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Pick Tile" +msgid "" +"Shift+RMB: Line Draw\n" +"Shift+Ctrl+RMB: Rectangle Paint" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy -msgid "Copy Selection" -msgstr "برداشتن انتخاب شده" +msgid "Pick Tile" +msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Rotate left" +msgid "Rotate Left" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Rotate right" +msgid "Rotate Right" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Flip horizontally" +msgid "Flip Horizontally" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Flip vertically" +msgid "Flip Vertically" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp #, fuzzy -msgid "Clear transform" +msgid "Clear Transform" msgstr "انتقال را در انیمیشن تغییر بده" #: editor/plugins/tile_set_editor_plugin.cpp @@ -7184,6 +7704,44 @@ msgid "Select the previous shape, subtile, or Tile." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Region Mode" +msgstr "گره انیمیشن" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Collision Mode" +msgstr "گره انیمیشن" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Occlusion Mode" +msgstr "ویرایش سیگنال" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Navigation Mode" +msgstr "گره انیمیشن" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Bitmask Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Priority Mode" +msgstr "ØØ§Ù„ت صدور:" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Icon Mode" +msgstr "انتخاب ØØ§Ù„ت" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Z Index Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp msgid "Copy bitmask." msgstr "" @@ -7273,6 +7831,7 @@ msgstr "ØØ°Ù Ú©Ù†" msgid "" "LMB: Set bit on.\n" "RMB: Set bit off.\n" +"Shift+LMB: Set wildcard bit.\n" "Click on another Tile to edit it." msgstr "ساختن پوشه" @@ -7396,6 +7955,76 @@ msgid "TileSet" msgstr "صدور مجموعه کاشی" #: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Add input +" +msgstr "Ø§ÙØ²ÙˆØ¯Ù† نقطه" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add output +" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Add input port" +msgstr "Ø§ÙØ²ÙˆØ¯Ù† عمل ورودی" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add output port" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change input port type" +msgstr "نوع مقدار آرایه را تغییر بده" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change output port type" +msgstr "نوع مقدار آرایه را تغییر بده" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change input port name" +msgstr "تغییر مقدار ورودی" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change output port name" +msgstr "مقدار آرایه را تغییر بده" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Remove input port" +msgstr "برداشتن نقطه" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Remove output port" +msgstr "برداشتن نقطه" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Set expression" +msgstr "انتقال را در انیمیشن تغییر بده" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Resize VisualShader node" +msgstr "ØØ°Ù گره اسکریپت٠دیداری" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Set Uniform Name" msgstr "" @@ -7435,6 +8064,849 @@ msgid "Light" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Create Shader Node" +msgstr "ساختن گره" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Color function." +msgstr "Ø§ÙØ²ÙˆØ¯Ù† وظیÙÙ‡" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Color operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Grayscale function." +msgstr "تابع را بساز" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts HSV vector to RGB equivalent." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts RGB vector to HSV equivalent." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Sepia function." +msgstr "تغییر نام نقش" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Burn operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Darken operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Difference operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Dodge operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "HardLight operator" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Lighten operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Overlay operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Screen operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "SoftLight operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Color constant." +msgstr "ثابت" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Color uniform." +msgstr "انتقال را در انیمیشن تغییر بده" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns an associated vector if the provided scalars are equal, greater or " +"less." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns an associated vector if the provided boolean value is true or false." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'camera' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'inv_camera' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'inv_projection' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'normal' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'projection' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'time' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'viewport_size' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'world' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'texture_pixel_size' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Input parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'binormal' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'fragcoord' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_coord' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_uv' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'side' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'tangent' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv2' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'vertex' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'view' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'albedo' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'attenuation' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'diffuse' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_color' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'roughness' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'specular' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'transmission' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'modelview' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_size' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'tangent' input parameter for vertex and fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_pass' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_coord' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_pixel_size' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_uv' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_alpha' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_height' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_uv' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_vec' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'normal' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'shadow_color' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'extra' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'projection' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'vertex' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'world' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'active' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'custom' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'custom_alpha' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'delta' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'emission_transform' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'index' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'lifetime' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'restart' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'time' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'transform' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'velocity' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar function." +msgstr "انتخاب شده را تغییر مقیاس بده" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Scalar operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "E constant (2.718282). Represents the base of the natural logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Epsilon constant (0.00001). Smallest possible scalar number." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Phi constant (1.618034). Golden ratio." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi/4 constant (0.785398) or 45 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi/2 constant (1.570796) or 90 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi constant (3.141593) or 180 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Tau constant (6.283185) or 360 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Sqrt2 constant (1.414214). Square root of 2." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the absolute value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-tangent of the parameters." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Finds the nearest integer that is greater than or equal to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Constrains a value to lie between two further values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts a quantity in radians to degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-e Exponential." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-2 Exponential." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Finds the nearest integer less than or equal to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Computes the fractional part of the argument." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the inverse of the square root of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Natural logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-2 logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the greater of two values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the lesser of two values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Linear interpolation between two scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the opposite value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 - scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns the value of the first parameter raised to the power of the second." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts a quantity in degrees to radians." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 / scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the nearest integer to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the nearest even integer to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Clamps the value between 0.0 and 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Extracts the sign of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the square root of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( scalar(edge0), scalar(edge1), scalar(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if x is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( scalar(edge), scalar(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the truncated value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Adds scalar to scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Divides scalar by scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies scalar by scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the remainder of the two scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Subtracts scalar from scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Scalar constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar uniform." +msgstr "انتقال را در انیمیشن تغییر بده" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Perform the cubic texture lookup." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Perform the texture lookup." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Cubic texture uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "2D texture uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Transform function." +msgstr "انتخاب شده را تغییر مقیاس بده" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) Calculate the outer product of a pair of vectors.\n" +"\n" +"OuterProduct treats the first parameter 'c' as a column vector (matrix with " +"one column) and the second parameter 'r' as a row vector (matrix with one " +"row) and does a linear algebraic matrix multiply 'c * r', yielding a matrix " +"whose number of rows is the number of components in 'c' and whose number of " +"columns is the number of components in 'r'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Composes transform from four vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Decomposes transform to four vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the determinant of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the inverse of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the transpose of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies transform by transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies vector by transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Transform constant." +msgstr "انتخاب شده را تغییر مقیاس بده" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Transform uniform." +msgstr "انتخاب شده را تغییر مقیاس بده" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector function." +msgstr "برداشتن نقش" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Composes vector from three scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Decomposes vector to three scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the cross product of two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the distance between two points." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the dot product of two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns a vector that points in the same direction as a reference vector. " +"The function has three vector parameters : N, the vector to orient, I, the " +"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 "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the length of a vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Linear interpolation between two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the normalize product of vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 - vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 / vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns a vector that points in the direction of reflection ( a : incident " +"vector, b : normal vector )." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns a vector that points in the direction of refraction." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( vector(edge0), vector(edge1), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if 'x' is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( scalar(edge0), scalar(edge1), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if 'x' is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( vector(edge), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( scalar(edge), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Adds vector to vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Divides vector by vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies vector by vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the remainder of the two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Subtracts vector from vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Custom Godot Shader Language expression, with custom amount of input and " +"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 "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns falloff based on the dot product of surface normal and view " +"direction of camera (pass associated inputs to it)." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) (Fragment/Light mode only) Scalar derivative function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) (Fragment/Light mode only) Vector derivative function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Derivative in 'x' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Derivative in 'x' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Derivative in 'y' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Derivative in 'y' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Sum of absolute derivative " +"in 'x' and 'y'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Sum of absolute derivative " +"in 'x' and 'y'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "VisualShader" msgstr "" @@ -7636,6 +9108,10 @@ msgid "Directory already contains a Godot project." msgstr "" #: editor/project_manager.cpp +msgid "New Game Project" +msgstr "پروژه بازی جدید" + +#: editor/project_manager.cpp msgid "Imported Project" msgstr "پروژه واردشده" @@ -7684,10 +9160,6 @@ msgid "Rename Project" msgstr "تغییر نام پروژه" #: editor/project_manager.cpp -msgid "New Game Project" -msgstr "پروژه بازی جدید" - -#: editor/project_manager.cpp msgid "Import Existing Project" msgstr "وارد کردن پروژه موجود" @@ -7719,10 +9191,6 @@ msgid "Project Name:" msgstr "نام پروژه:" #: editor/project_manager.cpp -msgid "Create folder" -msgstr "ساختن پوشه" - -#: editor/project_manager.cpp msgid "Project Path:" msgstr "مسیر پروژه:" @@ -7732,10 +9200,6 @@ msgid "Project Installation Path:" msgstr "مسیر پروژه:" #: editor/project_manager.cpp -msgid "Browse" -msgstr "" - -#: editor/project_manager.cpp msgid "Renderer:" msgstr "" @@ -7789,8 +9253,8 @@ msgid "" "\n" "If you proceed with opening it, it will be converted to Godot's current " "configuration file format.\n" -"Warning: You will not be able to open the project with previous versions of " -"the engine anymore." +"Warning: You won't be able to open the project with previous versions of the " +"engine anymore." msgstr "" #: editor/project_manager.cpp @@ -7801,8 +9265,8 @@ msgid "" "%s\n" "\n" "Do you want to convert it?\n" -"Warning: You will not be able to open the project with previous versions of " -"the engine anymore." +"Warning: You won't be able to open the project with previous versions of the " +"engine anymore." msgstr "" #: editor/project_manager.cpp @@ -7814,7 +9278,7 @@ msgstr "" #: editor/project_manager.cpp msgid "" "Can't run project: no main scene defined.\n" -"Please edit the project and set the main scene in \"Project Settings\" under " +"Please edit the project and set the main scene in the Project Settings under " "the \"Application\" category." msgstr "" @@ -7825,23 +9289,38 @@ msgid "" msgstr "" #: editor/project_manager.cpp -msgid "Are you sure to run more than one project?" +msgid "Are you sure to run %d projects at once?" +msgstr "" + +#: editor/project_manager.cpp +msgid "" +"Remove %d projects from the list?\n" +"The project folders' contents won't be modified." +msgstr "" + +#: editor/project_manager.cpp +msgid "" +"Remove this project from the list?\n" +"The project folder's contents won't be modified." msgstr "" #: editor/project_manager.cpp -msgid "Remove project from the list? (Folder contents will not be modified)" +msgid "" +"Remove all missing projects from the list? (Folders contents will not be " +"modified)" msgstr "" #: editor/project_manager.cpp msgid "" "Language changed.\n" -"The UI will update next time the editor or project manager starts." +"The interface will update after restarting the editor or project manager." msgstr "" #: editor/project_manager.cpp +#, fuzzy msgid "" -"You are about the scan %s folders for existing Godot projects. Do you " -"confirm?" +"Are you sure to scan %s folders for existing Godot projects?\n" +"This could take a while." msgstr "" "شما درخواست بررسی پوشه های s٪‌ برای پیدا کردن پروژه های گودات را داده اید. " "آیا انجام این عمل را تایید Ù…ÛŒ کنید؟‌" @@ -7867,6 +9346,11 @@ msgid "New Project" msgstr "پروژه جدید" #: editor/project_manager.cpp +#, fuzzy +msgid "Remove Missing" +msgstr "برداشتن نقطه" + +#: editor/project_manager.cpp msgid "Templates" msgstr "قالب ها" @@ -7884,8 +9368,8 @@ msgstr "ناتوان در اجرای پروژه" #: editor/project_manager.cpp msgid "" -"You don't currently have any projects.\n" -"Would you like to explore the official example projects in the Asset Library?" +"You currently don't have any projects.\n" +"Would you like to explore official example projects in the Asset Library?" msgstr "" #: editor/project_settings_editor.cpp @@ -7911,8 +9395,9 @@ msgid "" msgstr "" #: editor/project_settings_editor.cpp -msgid "Action '%s' already exists!" -msgstr "" +#, fuzzy +msgid "An action with the name '%s' already exists." +msgstr "بارگذاری خودکار 's%' هم اکنون موجود است!" #: editor/project_settings_editor.cpp msgid "Rename Input Action Event" @@ -8072,10 +9557,6 @@ msgid "" msgstr "" #: editor/project_settings_editor.cpp -msgid "Already existing" -msgstr "پیش از این وجود داشته است" - -#: editor/project_settings_editor.cpp msgid "Add Input Action" msgstr "Ø§ÙØ²ÙˆØ¯Ù† عمل ورودی" @@ -8140,7 +9621,7 @@ msgid "Override For..." msgstr "" #: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp -msgid "Editor must be restarted for changes to take effect" +msgid "The editor must be restarted for changes to take effect." msgstr "" #: editor/project_settings_editor.cpp @@ -8201,11 +9682,13 @@ msgid "Locales Filter" msgstr "صاÙÛŒ بومی‌سازی‌ها" #: editor/project_settings_editor.cpp -msgid "Show all locales" +#, fuzzy +msgid "Show All Locales" msgstr "نشان دادن همهٔ بومی‌سازی‌ها" #: editor/project_settings_editor.cpp -msgid "Show only selected locales" +#, fuzzy +msgid "Show Selected Locales Only" msgstr "نشان دادن تنها بومی‌سازی‌های انتخاب‌شده" #: editor/project_settings_editor.cpp @@ -8221,14 +9704,6 @@ msgid "AutoLoad" msgstr "بارگیری خودکار" #: editor/property_editor.cpp -msgid "Ease In" -msgstr "" - -#: editor/property_editor.cpp -msgid "Ease Out" -msgstr "" - -#: editor/property_editor.cpp msgid "Zero" msgstr "" @@ -8305,7 +9780,7 @@ msgid "Suffix" msgstr "" #: editor/rename_dialog.cpp -msgid "Advanced options" +msgid "Advanced Options" msgstr "" #: editor/rename_dialog.cpp @@ -8572,8 +10047,8 @@ msgstr "پاک کردن ارث‌بری" #: editor/scene_tree_dock.cpp #, fuzzy -msgid "Custom Node" -msgstr "ساختن گره" +msgid "Other Node" +msgstr "ØØ°Ù گره(ها)" #: editor/scene_tree_dock.cpp msgid "Can't operate on nodes from a foreign scene!" @@ -8616,7 +10091,7 @@ msgstr "پاک کردن ارث‌بری" #: editor/scene_tree_dock.cpp #, fuzzy -msgid "Open documentation" +msgid "Open Documentation" msgstr "شمارش ها" #: editor/scene_tree_dock.cpp @@ -8644,7 +10119,7 @@ msgstr "ادغام از صØÙ†Ù‡" msgid "Save Branch as Scene" msgstr "ذخیرهٔ شاخه به عنوان صØÙ†Ù‡" -#: editor/scene_tree_dock.cpp +#: editor/scene_tree_dock.cpp editor/script_editor_debugger.cpp msgid "Copy Node Path" msgstr "رونوشت مسیر گره" @@ -8688,6 +10163,21 @@ msgid "Toggle Visible" msgstr "یک Breakpoint درج Ú©Ù†" #: editor/scene_tree_editor.cpp +#, fuzzy +msgid "Unlock Node" +msgstr "گره انتخاب" + +#: editor/scene_tree_editor.cpp +#, fuzzy +msgid "Button Group" +msgstr "دکمه" + +#: editor/scene_tree_editor.cpp +#, fuzzy +msgid "(Connecting From)" +msgstr "خطای اتصال" + +#: editor/scene_tree_editor.cpp msgid "Node configuration warning:" msgstr "" @@ -8709,9 +10199,9 @@ msgid "" "Click to show groups dock." msgstr "" -#: editor/scene_tree_editor.cpp editor/script_create_dialog.cpp +#: editor/scene_tree_editor.cpp #, fuzzy -msgid "Open Script" +msgid "Open Script:" msgstr "باز کردن Ùˆ اجرای یک اسکریپت" #: editor/scene_tree_editor.cpp @@ -8758,78 +10248,83 @@ msgstr "انتخاب یک گره" #: editor/script_create_dialog.cpp #, fuzzy -msgid "Error loading template '%s'" -msgstr "خطای بارگذاری قلم." +msgid "Path is empty." +msgstr "مسیر خالی است" #: editor/script_create_dialog.cpp #, fuzzy -msgid "Error - Could not create script in filesystem." -msgstr "نمی‌تواند یک پوشه ایجاد شود." +msgid "Filename is empty." +msgstr "مسیر خالی است" #: editor/script_create_dialog.cpp #, fuzzy -msgid "Error loading script from %s" -msgstr "خطای بارگذاری قلم." - -#: editor/script_create_dialog.cpp -msgid "N/A" -msgstr "" +msgid "Path is not local." +msgstr "مسیر به یک گره نمیرسد!" #: editor/script_create_dialog.cpp #, fuzzy -msgid "Open Script/Choose Location" -msgstr "گشودن ویرایشگر اسکریپت" +msgid "Invalid base path." +msgstr "مسیر نامعتبر." #: editor/script_create_dialog.cpp -msgid "Path is empty" -msgstr "مسیر خالی است" +msgid "A directory with the same name exists." +msgstr "" #: editor/script_create_dialog.cpp #, fuzzy -msgid "Filename is empty" -msgstr "مسیر خالی است" +msgid "Invalid extension." +msgstr "باید از یک پسوند معتبر Ø§Ø³ØªÙØ§Ø¯Ù‡ شود." #: editor/script_create_dialog.cpp -msgid "Path is not local" +msgid "Wrong extension chosen." msgstr "" #: editor/script_create_dialog.cpp -msgid "Invalid base path" -msgstr "" +#, fuzzy +msgid "Error loading template '%s'" +msgstr "خطای بارگذاری قلم." #: editor/script_create_dialog.cpp -msgid "Directory of the same name exists" -msgstr "" +#, fuzzy +msgid "Error - Could not create script in filesystem." +msgstr "نمی‌تواند یک پوشه ایجاد شود." #: editor/script_create_dialog.cpp #, fuzzy -msgid "File exists, will be reused" -msgstr "ÙØ§ÛŒÙ„ وجود دارد، آیا بازنویسی شود؟" +msgid "Error loading script from %s" +msgstr "خطای بارگذاری قلم." #: editor/script_create_dialog.cpp -msgid "Invalid extension" +msgid "N/A" msgstr "" #: editor/script_create_dialog.cpp -msgid "Wrong extension chosen" -msgstr "" +#, fuzzy +msgid "Open Script / Choose Location" +msgstr "گشودن ویرایشگر اسکریپت" #: editor/script_create_dialog.cpp #, fuzzy -msgid "Invalid Path" -msgstr "مسیر نامعتبر." +msgid "Open Script" +msgstr "باز کردن Ùˆ اجرای یک اسکریپت" #: editor/script_create_dialog.cpp -msgid "Invalid class name" -msgstr "" +#, fuzzy +msgid "File exists, it will be reused." +msgstr "ÙØ§ÛŒÙ„ وجود دارد، آیا بازنویسی شود؟" #: editor/script_create_dialog.cpp #, fuzzy -msgid "Invalid inherited parent name or path" +msgid "Invalid class name." +msgstr "نام نامعتبر." + +#: editor/script_create_dialog.cpp +#, fuzzy +msgid "Invalid inherited parent name or path." msgstr "نام دارایی ایندکس نامعتبر." #: editor/script_create_dialog.cpp -msgid "Script valid" +msgid "Script is valid." msgstr "" #: editor/script_create_dialog.cpp @@ -8837,15 +10332,16 @@ msgid "Allowed: a-z, A-Z, 0-9 and _" msgstr "" #: editor/script_create_dialog.cpp -msgid "Built-in script (into scene file)" +msgid "Built-in script (into scene file)." msgstr "" #: editor/script_create_dialog.cpp -msgid "Create new script file" +#, fuzzy +msgid "Will create a new script file." msgstr "ساختن اسکریپت جدید" #: editor/script_create_dialog.cpp -msgid "Load existing script file" +msgid "Will load an existing script file." msgstr "" #: editor/script_create_dialog.cpp @@ -8982,6 +10478,10 @@ msgstr "" msgid "Set From Tree" msgstr "" +#: editor/script_editor_debugger.cpp +msgid "Export measures as CSV" +msgstr "" + #: editor/settings_config_dialog.cpp #, fuzzy msgid "Erase Shortcut" @@ -9115,6 +10615,14 @@ msgid "GDNativeLibrary" msgstr "صادکردن ÙØ§ÛŒÙ„ کتابخانه ای" #: modules/gdnative/gdnative_library_singleton_editor.cpp +msgid "Enabled GDNative Singleton" +msgstr "" + +#: modules/gdnative/gdnative_library_singleton_editor.cpp +msgid "Disabled GDNative Singleton" +msgstr "" + +#: modules/gdnative/gdnative_library_singleton_editor.cpp #, fuzzy msgid "Library" msgstr "صادکردن ÙØ§ÛŒÙ„ کتابخانه ای" @@ -9211,8 +10719,8 @@ msgstr "انتخاب شده را ØØ°Ù Ú©Ù†" #: modules/gridmap/grid_map_editor_plugin.cpp #, fuzzy -msgid "GridMap Duplicate Selection" -msgstr "انتخاب شده را به دو تا تکثیر Ú©Ù†" +msgid "GridMap Paste Selection" +msgstr "انتخاب شده را ØØ°Ù Ú©Ù†" #: modules/gridmap/grid_map_editor_plugin.cpp #, fuzzy @@ -9281,18 +10789,6 @@ msgid "Cursor Clear Rotation" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Create Area" -msgstr "ساختن ناØÛŒÙ‡" - -#: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Create Exterior Connector" -msgstr "" - -#: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Erase Area" -msgstr "" - -#: modules/gridmap/grid_map_editor_plugin.cpp #, fuzzy msgid "Clear Selection" msgstr "انتخاب شده را تغییر مقیاس بده" @@ -9669,18 +11165,11 @@ msgid "Available Nodes:" msgstr "گره های موجود:" #: modules/visual_script/visual_script_editor.cpp -msgid "Select or create a function to edit graph" +#, fuzzy +msgid "Select or create a function to edit its graph." msgstr "انتخاب یا ساختن یک نقش در ویرایشگر گراÙ" #: modules/visual_script/visual_script_editor.cpp -msgid "Edit Signal Arguments:" -msgstr "آرگومان‌های سیگنال را ویرایش Ú©Ù†:" - -#: modules/visual_script/visual_script_editor.cpp -msgid "Edit Variable:" -msgstr "متغیر را ویرایش Ú©Ù†:" - -#: modules/visual_script/visual_script_editor.cpp msgid "Delete Selected" msgstr "انتخاب شده را ØØ°Ù Ú©Ù†" @@ -9816,6 +11305,19 @@ msgid "Debug keystore not configured in the Editor Settings nor in the preset." msgstr "" #: platform/android/export/export.cpp +msgid "Custom build requires a valid Android SDK path in Editor Settings." +msgstr "" + +#: platform/android/export/export.cpp +msgid "Invalid Android SDK path for custom build in Editor Settings." +msgstr "" + +#: platform/android/export/export.cpp +msgid "" +"Android project is not installed for compiling. Install from Editor menu." +msgstr "" + +#: platform/android/export/export.cpp msgid "Invalid public key for APK expansion." msgstr "" @@ -9824,6 +11326,34 @@ msgstr "" msgid "Invalid package name:" msgstr "نام نامعتبر." +#: platform/android/export/export.cpp +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 "" +"Android build version mismatch:\n" +" Template installed: %s\n" +" Godot Version: %s\n" +"Please reinstall Android build template from 'Project' menu." +msgstr "" + +#: platform/android/export/export.cpp +msgid "Building Android Project (gradle)" +msgstr "" + +#: 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 "" + +#: platform/android/export/export.cpp +msgid "No build apk generated at: " +msgstr "" + #: platform/iphone/export/export.cpp msgid "Identifier is missing." msgstr "" @@ -10115,27 +11645,27 @@ msgid "ARVRCamera must have an ARVROrigin node as its parent" msgstr "" #: scene/3d/arvr_nodes.cpp -msgid "ARVRController must have an ARVROrigin node as its parent" +msgid "ARVRController must have an ARVROrigin node as its parent." msgstr "" #: scene/3d/arvr_nodes.cpp msgid "" -"The controller id must not be 0 or this controller will not be bound to an " -"actual controller" +"The controller ID must not be 0 or this controller won't be bound to an " +"actual controller." msgstr "" #: scene/3d/arvr_nodes.cpp -msgid "ARVRAnchor must have an ARVROrigin node as its parent" +msgid "ARVRAnchor must have an ARVROrigin node as its parent." msgstr "" #: scene/3d/arvr_nodes.cpp msgid "" -"The anchor id must not be 0 or this anchor will not be bound to an actual " -"anchor" +"The anchor ID must not be 0 or this anchor won't be bound to an actual " +"anchor." msgstr "" #: scene/3d/arvr_nodes.cpp -msgid "ARVROrigin requires an ARVRCamera child node" +msgid "ARVROrigin requires an ARVRCamera child node." msgstr "" #: scene/3d/baked_lightmap.cpp @@ -10215,8 +11745,8 @@ msgstr "" #: scene/3d/cpu_particles.cpp msgid "" -"CPUParticles animation requires the usage of a SpatialMaterial with " -"\"Billboard Particles\" enabled." +"CPUParticles animation requires the usage of a SpatialMaterial whose " +"Billboard Mode is set to \"Particle Billboard\"." msgstr "" #: scene/3d/gi_probe.cpp @@ -10255,8 +11785,8 @@ msgstr "" #: scene/3d/particles.cpp msgid "" -"Particles animation requires the usage of a SpatialMaterial with \"Billboard " -"Particles\" enabled." +"Particles animation requires the usage of a SpatialMaterial whose Billboard " +"Mode is set to \"Particle Billboard\"." msgstr "" #: scene/3d/path.cpp @@ -10285,7 +11815,7 @@ msgid "Path property must point to a valid Spatial node to work." msgstr "دارایی Path باید به یک گره Particles2D معتبر اشاره کند تا کار کند." #: scene/3d/soft_body.cpp -msgid "This body will be ignored until you set a mesh" +msgid "This body will be ignored until you set a mesh." msgstr "" #: scene/3d/soft_body.cpp @@ -10391,7 +11921,7 @@ msgstr "" msgid "" "Container by itself serves no purpose unless a script configures it's " "children placement behavior.\n" -"If you dont't intend to add a script, then please use a plain 'Control' node " +"If you don't intend to add a script, then please use a plain 'Control' node " "instead." msgstr "" @@ -10403,11 +11933,6 @@ msgstr "هشدار!" msgid "Please Confirm..." msgstr "Ù„Ø·ÙØ§Ù‹ تأیید کنید…" -#: scene/gui/file_dialog.cpp -#, fuzzy -msgid "Go to parent folder." -msgstr "Ø±ÙØªÙ† به پوشه والد" - #: scene/gui/popup.cpp msgid "" "Popups will hide by default unless you call popup() or any of the popup*() " @@ -10488,6 +12013,56 @@ msgstr "" msgid "Varyings can only be assigned in vertex function." msgstr "" +#: servers/visual/shader_language.cpp +msgid "Constants cannot be modified." +msgstr "" + +#~ msgid "Path to Node:" +#~ msgstr "مسیر به سمت گره:" + +#~ msgid "Delete selected files?" +#~ msgstr "آیا پرونده‌های انتخاب شده ØØ°Ù شود؟" + +#~ msgid "Go to parent folder" +#~ msgstr "Ø±ÙØªÙ† به پوشه والد" + +#, fuzzy +#~ msgid "Open Scene(s)" +#~ msgstr "باز کردن صØÙ†Ù‡" + +#~ msgid "Ease in" +#~ msgstr "Ú©Ùندی در آغاز" + +#~ msgid "Ease out" +#~ msgstr "Ú©Ùندی در پایان" + +#~ msgid "Create folder" +#~ msgstr "ساختن پوشه" + +#~ msgid "Already existing" +#~ msgstr "پیش از این وجود داشته است" + +#, fuzzy +#~ msgid "Custom Node" +#~ msgstr "ساختن گره" + +#, fuzzy +#~ msgid "Invalid Path" +#~ msgstr "مسیر نامعتبر." + +#, fuzzy +#~ msgid "GridMap Duplicate Selection" +#~ msgstr "انتخاب شده را به دو تا تکثیر Ú©Ù†" + +#~ msgid "Create Area" +#~ msgstr "ساختن ناØÛŒÙ‡" + +#~ msgid "Edit Signal Arguments:" +#~ msgstr "آرگومان‌های سیگنال را ویرایش Ú©Ù†:" + +#~ msgid "Edit Variable:" +#~ msgstr "متغیر را ویرایش Ú©Ù†:" + #~ msgid "Line:" #~ msgstr "خط:" @@ -10543,9 +12118,6 @@ msgstr "" #~ msgid "Class List:" #~ msgstr "Ùهرست کلاس:" -#~ msgid "Search Classes" -#~ msgstr "جستجوی کلاسها" - #~ msgid "Public Methods" #~ msgstr "روش های عمومی" @@ -10576,9 +12148,6 @@ msgstr "" #~ msgid "Get" #~ msgstr "Ú¯Ø±ÙØªÙ†" -#~ msgid "Disabled" -#~ msgstr "ØºÛŒØ±ÙØ¹Ø§Ù„ شده" - #~ msgid "Move Anim Track Up" #~ msgstr "انتقال ترک انیمشین به بالا" @@ -10720,12 +12289,6 @@ msgstr "" #~ msgstr "کلید Add را جابجا Ú©Ù†" #, fuzzy -#~ msgid "" -#~ "\n" -#~ "Source: " -#~ msgstr "منبع" - -#, fuzzy #~ msgid "Add Point to Line2D" #~ msgstr "برو به خط" diff --git a/editor/translations/fi.po b/editor/translations/fi.po index 117aaa6561..6347cfe06f 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-04-03 22:06+0000\n" +"PO-Revision-Date: 2019-05-30 03:41+0000\n" "Last-Translator: Tapani Niemi <tapani.niemi@kapsi.fi>\n" "Language-Team: Finnish <https://hosted.weblate.org/projects/godot-engine/" "godot/fi/>\n" @@ -22,7 +22,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.6-dev\n" +"X-Generator: Weblate 3.7-dev\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -77,6 +77,15 @@ msgstr "Tasapainotettu" msgid "Mirror" msgstr "Peilaa" +#: editor/animation_bezier_editor.cpp editor/editor_profiler.cpp +msgid "Time:" +msgstr "Aika:" + +#: editor/animation_bezier_editor.cpp +#, fuzzy +msgid "Value:" +msgstr "Arvo" + #: editor/animation_bezier_editor.cpp msgid "Insert Key Here" msgstr "Lisää tähän avainruutu" @@ -159,14 +168,18 @@ msgid "Animation Playback Track" msgstr "Animaatiotoistoraita" #: editor/animation_track_editor.cpp -msgid "Add Track" -msgstr "Lisää raita" +msgid "Animation length (frames)" +msgstr "Animaation pituus (kuvaruutuina)" #: editor/animation_track_editor.cpp -msgid "Animation Length Time (seconds)" +msgid "Animation length (seconds)" msgstr "Animaation pituus (sekunteina)" #: editor/animation_track_editor.cpp +msgid "Add Track" +msgstr "Lisää raita" + +#: editor/animation_track_editor.cpp msgid "Animation Looping" msgstr "Animaation kierto" @@ -290,11 +303,13 @@ msgid "Create %d NEW tracks and insert keys?" msgstr "Luo %d uutta raitaa ja lisää avaimet?" #: editor/animation_track_editor.cpp editor/create_dialog.cpp -#: editor/editor_audio_buses.cpp editor/editor_plugin_settings.cpp -#: editor/plugin_config_dialog.cpp +#: editor/editor_audio_buses.cpp editor/editor_feature_profile.cpp +#: editor/editor_plugin_settings.cpp editor/plugin_config_dialog.cpp #: editor/plugins/abstract_polygon_2d_editor.cpp #: editor/plugins/mesh_instance_editor_plugin.cpp -#: editor/plugins/particles_editor_plugin.cpp editor/script_create_dialog.cpp +#: editor/plugins/particles_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_create_dialog.cpp msgid "Create" msgstr "Luo" @@ -408,6 +423,23 @@ msgid "" msgstr "Tämä valinta ei käy Bezier-editoinnille, koska se on vain yksi raita." #: editor/animation_track_editor.cpp +msgid "" +"This animation belongs to an imported scene, so changes to imported tracks " +"will not be saved.\n" +"\n" +"To enable the ability to add custom tracks, navigate to the scene's import " +"settings and set\n" +"\"Animation > Storage\" to \"Files\", enable \"Animation > Keep Custom Tracks" +"\", then re-import.\n" +"Alternatively, use an import preset that imports animations to separate " +"files." +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Warning: Editing imported animation" +msgstr "" + +#: editor/animation_track_editor.cpp msgid "Only show tracks from nodes selected in tree." msgstr "Näytä raidat vain puussa valituista solmuista." @@ -416,9 +448,8 @@ msgid "Group tracks by node or display them as plain list." msgstr "Ryhmitä raidat solmujen mukaan tai näytä ne tavallisena luettelona." #: editor/animation_track_editor.cpp -#, fuzzy msgid "Snap:" -msgstr "Tartu" +msgstr "Tartu:" #: editor/animation_track_editor.cpp msgid "Animation step value." @@ -426,7 +457,7 @@ msgstr "Animaation askelluksen arvo." #: editor/animation_track_editor.cpp msgid "Seconds" -msgstr "" +msgstr "Sekunnit" #: editor/animation_track_editor.cpp msgid "FPS" @@ -541,7 +572,8 @@ msgstr "Skaalaussuhde:" msgid "Select tracks to copy:" msgstr "Valitse kopioitavat raidat:" -#: editor/animation_track_editor.cpp editor/editor_properties.cpp +#: editor/animation_track_editor.cpp editor/editor_log.cpp +#: editor/editor_properties.cpp #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp @@ -609,6 +641,11 @@ msgstr "Korvaa kaikki" msgid "Selection Only" msgstr "Pelkkä valinta" +#: editor/code_editor.cpp editor/plugins/script_text_editor.cpp +#: editor/plugins/text_editor.cpp +msgid "Standard" +msgstr "Standardi" + #: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/texture_region_editor_plugin.cpp #: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp @@ -634,21 +671,39 @@ msgid "Line and column numbers." msgstr "Rivi- ja sarakenumerot." #: editor/connections_dialog.cpp -msgid "Method in target Node must be specified!" +#, fuzzy +msgid "Method in target node must be specified." msgstr "Kohdesolmun metodi täytyy määrittää!" #: editor/connections_dialog.cpp +#, fuzzy msgid "" -"Target method not found! Specify a valid method or attach a script to target " -"Node." +"Target method not found. Specify a valid method or attach a script to the " +"target node." msgstr "" "Kohdemetodia ei löytynyt! Määrittele voimassa oleva metodi tai kiinnitä " "skripti solmuun." #: editor/connections_dialog.cpp -msgid "Connect To Node:" +#, fuzzy +msgid "Connect to Node:" msgstr "Yhdistä solmuun:" +#: editor/connections_dialog.cpp +#, fuzzy +msgid "Connect to Script:" +msgstr "Isäntään yhdistäminen epäonnistui:" + +#: editor/connections_dialog.cpp +#, fuzzy +msgid "From Signal:" +msgstr "Signaalit:" + +#: editor/connections_dialog.cpp +#, fuzzy +msgid "Scene does not contain any script." +msgstr "Solmu ei sisällä geometriaa." + #: editor/connections_dialog.cpp editor/editor_autoload_settings.cpp #: editor/groups_editor.cpp editor/plugins/item_list_editor_plugin.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_settings_editor.cpp @@ -656,10 +711,12 @@ msgid "Add" msgstr "Lisää" #: editor/connections_dialog.cpp editor/dependency_editor.cpp -#: editor/groups_editor.cpp editor/plugins/animation_player_editor_plugin.cpp +#: editor/editor_feature_profile.cpp editor/groups_editor.cpp +#: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp #: editor/plugins/resource_preloader_editor_plugin.cpp -#: editor/plugins/theme_editor_plugin.cpp editor/project_manager.cpp +#: editor/plugins/theme_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_manager.cpp #: editor/project_settings_editor.cpp msgid "Remove" msgstr "Poista" @@ -673,21 +730,32 @@ msgid "Extra Call Arguments:" msgstr "Ylimääräiset argumentit:" #: editor/connections_dialog.cpp -msgid "Path to Node:" -msgstr "Polku solmuun:" - -#: editor/connections_dialog.cpp -msgid "Make Function" -msgstr "Tee funktio" +#, fuzzy +msgid "Advanced" +msgstr "Edistyneet asetukset" #: editor/connections_dialog.cpp msgid "Deferred" msgstr "Lykätty" #: editor/connections_dialog.cpp +msgid "" +"Defers the signal, storing it in a queue and only firing it at idle time." +msgstr "" + +#: editor/connections_dialog.cpp msgid "Oneshot" msgstr "Ainutkertainen" +#: editor/connections_dialog.cpp +msgid "Disconnects the signal after its first emission." +msgstr "" + +#: editor/connections_dialog.cpp +#, fuzzy +msgid "Cannot connect signal" +msgstr "Yhdistä signaali: " + #: editor/connections_dialog.cpp editor/dependency_editor.cpp #: editor/export_template_manager.cpp editor/groups_editor.cpp #: editor/plugins/animation_player_editor_plugin.cpp @@ -728,11 +796,13 @@ msgid "Disconnect" msgstr "Katkaise yhteys" #: editor/connections_dialog.cpp -msgid "Connect Signal: " +#, fuzzy +msgid "Connect a Signal to a Method" msgstr "Yhdistä signaali: " #: editor/connections_dialog.cpp -msgid "Edit Connection: " +#, fuzzy +msgid "Edit Connection:" msgstr "Muokkaa yhteyttä: " #: editor/connections_dialog.cpp @@ -764,7 +834,6 @@ msgid "Change %s Type" msgstr "Muuta %s:n tyyppi" #: editor/create_dialog.cpp editor/project_settings_editor.cpp -#: modules/visual_script/visual_script_editor.cpp msgid "Change" msgstr "Muuta" @@ -795,7 +864,8 @@ msgid "Matches:" msgstr "Osumat:" #: editor/create_dialog.cpp editor/plugin_config_dialog.cpp -#: editor/plugins/asset_library_editor_plugin.cpp editor/property_selector.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/property_selector.cpp #: modules/visual_script/visual_script_property_selector.cpp msgid "Description:" msgstr "Kuvaus:" @@ -809,17 +879,19 @@ msgid "Dependencies For:" msgstr "Riippuvuudet:" #: editor/dependency_editor.cpp +#, fuzzy msgid "" "Scene '%s' is currently being edited.\n" -"Changes will not take effect unless reloaded." +"Changes will only take effect when reloaded." msgstr "" "Skeneä '%s' muokataan parhaillaan.\n" "Muutokset tulevat voimaan vasta päivityksen jälkeen." #: editor/dependency_editor.cpp +#, fuzzy msgid "" "Resource '%s' is in use.\n" -"Changes will take effect when reloaded." +"Changes will only take effect when reloaded." msgstr "" "Resurssi '%s' on käytössä.\n" "Muutokset tulevat voimaan päivitettäessä." @@ -915,21 +987,14 @@ msgid "Permanently delete %d item(s)? (No undo!)" msgstr "Poista pysyvästi %d kohdetta? (Ei voi kumota!)" #: editor/dependency_editor.cpp -msgid "Owns" -msgstr "Omistaa" - -#: editor/dependency_editor.cpp -msgid "Resources Without Explicit Ownership:" -msgstr "Resurssit, joilla ei ole selvää omistajaa:" +#, fuzzy +msgid "Show Dependencies" +msgstr "Riippuvuudet" #: editor/dependency_editor.cpp editor/editor_node.cpp msgid "Orphan Resource Explorer" msgstr "Irrallisten resurssien hallinta" -#: editor/dependency_editor.cpp -msgid "Delete selected files?" -msgstr "Poista valitut tiedostot?" - #: editor/dependency_editor.cpp editor/editor_audio_buses.cpp #: editor/editor_file_dialog.cpp editor/editor_node.cpp #: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp @@ -938,6 +1003,14 @@ msgstr "Poista valitut tiedostot?" msgid "Delete" msgstr "Poista" +#: editor/dependency_editor.cpp +msgid "Owns" +msgstr "Omistaa" + +#: editor/dependency_editor.cpp +msgid "Resources Without Explicit Ownership:" +msgstr "Resurssit, joilla ei ole selvää omistajaa:" + #: editor/dictionary_property_edit.cpp msgid "Change Dictionary Key" msgstr "Vaihda hakurakenteen avainta" @@ -1051,7 +1124,7 @@ msgstr "Paketti asennettu onnistuneesti!" msgid "Success!" msgstr "Onnistui!" -#: editor/editor_asset_installer.cpp +#: editor/editor_asset_installer.cpp editor/editor_node.cpp #: editor/plugins/asset_library_editor_plugin.cpp msgid "Install" msgstr "Asenna" @@ -1178,8 +1251,12 @@ msgid "Open Audio Bus Layout" msgstr "Avaa ääniväylän asettelu" #: editor/editor_audio_buses.cpp -msgid "There is no 'res://default_bus_layout.tres' file." -msgstr "Tiedostoa 'res://default_bus_layout.tres' ei löytynyt." +msgid "There is no '%s' file." +msgstr "" + +#: editor/editor_audio_buses.cpp editor/plugins/canvas_item_editor_plugin.cpp +msgid "Layout" +msgstr "Asettelu" #: editor/editor_audio_buses.cpp msgid "Invalid file, not an audio bus layout." @@ -1232,24 +1309,31 @@ msgid "Valid characters:" msgstr "Kelvolliset merkit:" #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing engine class name." +#, fuzzy +msgid "Must not collide with an existing engine class name." msgstr "" "Virheellinen nimi. Ei saa mennä päällekkäin olemassa olevan luokan nimen " "kanssa." #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing buit-in type name." +#, fuzzy +msgid "Must not collide with an existing buit-in type name." msgstr "" "Virheellinen nimi. Ei saa mennä päällekkäin jo olemassa olevan, " "sisäänrakennetun tyypin nimen kanssa." #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing global constant name." +#, fuzzy +msgid "Must not collide with an existing global constant name." msgstr "" "Virheellinen nimi. Ei saa mennä päällekkäin jo olemassa olevan globaalin " "vakion nimen kanssa." #: editor/editor_autoload_settings.cpp +msgid "Keyword cannot be used as an autoload name." +msgstr "" + +#: editor/editor_autoload_settings.cpp msgid "Autoload '%s' already exists!" msgstr "Automaattisesti ladattava '%s' on jo olemassa!" @@ -1277,11 +1361,12 @@ msgstr "Ota käyttöön" msgid "Rearrange Autoloads" msgstr "Järjestele uudelleen automaattiset lataukset" -#: editor/editor_autoload_settings.cpp -msgid "Invalid Path." +#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp +#, fuzzy +msgid "Invalid path." msgstr "Virheellinen polku." -#: editor/editor_autoload_settings.cpp +#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp msgid "File does not exist." msgstr "Tiedostoa ei ole olemassa." @@ -1332,7 +1417,8 @@ msgid "[unsaved]" msgstr "[tallentamaton]" #: editor/editor_dir_dialog.cpp -msgid "Please select a base directory first" +#, fuzzy +msgid "Please select a base directory first." msgstr "Valitse ensin päähakemisto" #: editor/editor_dir_dialog.cpp @@ -1340,7 +1426,8 @@ msgid "Choose a Directory" msgstr "Valitse hakemisto" #: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp -#: editor/filesystem_dock.cpp scene/gui/file_dialog.cpp +#: editor/filesystem_dock.cpp editor/project_manager.cpp +#: scene/gui/file_dialog.cpp msgid "Create Folder" msgstr "Luo kansio" @@ -1415,6 +1502,178 @@ msgstr "Mukautettua release-vientimallia ei löytynyt." msgid "Template file not found:" msgstr "Mallitiedostoa ei löytynyt:" +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "3D Editor" +msgstr "Editori" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Script Editor" +msgstr "Avaa skriptieditori" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Asset Library" +msgstr "Avaa asset-kirjasto" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Scene Tree Editing" +msgstr "Skenepuu (solmut):" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Import Dock" +msgstr "Tuo" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Node Dock" +msgstr "Solmu siirretty" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Filesystem Dock" +msgstr "Tiedostojärjestelmä" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Erase profile '%s'? (no undo)" +msgstr "Korvaa kaikki (ei voi perua)" + +#: editor/editor_feature_profile.cpp +msgid "Profile must be a valid filename and must not contain '.'" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Profile with this name already exists." +msgstr "Tällä nimellä löytyy jo kansio tai tiedosto." + +#: editor/editor_feature_profile.cpp +msgid "(Editor Disabled, Properties Disabled)" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "(Properties Disabled)" +msgstr "Vain ominaisuudet" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "(Editor Disabled)" +msgstr "Leikkaus pois käytöstä" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Class Options:" +msgstr "Luokan kuvaus:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enable Contextual Editor" +msgstr "Avaa seuraava editori" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enabled Properties:" +msgstr "Ominaisuudet:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enabled Features:" +msgstr "Ominaisuudet" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enabled Classes:" +msgstr "Etsi luokkia" + +#: editor/editor_feature_profile.cpp +msgid "File '%s' format is invalid, import aborted." +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "" +"Profile '%s' already exists. Remote it first before importing, import " +"aborted." +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Error saving profile to path: '%s'." +msgstr "Virhe ladattaessa mallia '%s'" + +#: editor/editor_feature_profile.cpp +msgid "Unset" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Current Profile" +msgstr "Nykyinen versio:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Make Current" +msgstr "Nykyinen:" + +#: editor/editor_feature_profile.cpp +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "New" +msgstr "Uusi" + +#: editor/editor_feature_profile.cpp editor/editor_node.cpp +#: editor/plugins/asset_library_editor_plugin.cpp editor/project_manager.cpp +msgid "Import" +msgstr "Tuo" + +#: editor/editor_feature_profile.cpp editor/editor_node.cpp +#: editor/project_export.cpp +msgid "Export" +msgstr "Vie" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Available Profiles" +msgstr "Saatavilla olevat solmut:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enabled Classes" +msgstr "Etsi luokkia" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Class Options" +msgstr "Luokan kuvaus" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "New profile name:" +msgstr "Uusi nimi:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Erase Profile" +msgstr "Tyhjennä alue" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Import Profile(s)" +msgstr "Tuotu projekti" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Export Profile" +msgstr "Vie projekti" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Manage Editor Feature Profiles" +msgstr "Hallinnoi vientimalleja" + #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Select Current Folder" msgstr "Valitse nykyinen kansio" @@ -1435,8 +1694,8 @@ msgstr "Kopioi polku" msgid "Open in File Manager" msgstr "Avaa tiedostonhallinnassa" -#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp -#: editor/project_manager.cpp +#: editor/editor_file_dialog.cpp editor/editor_node.cpp +#: editor/filesystem_dock.cpp editor/project_manager.cpp msgid "Show in File Manager" msgstr "Näytä tiedostonhallinnassa" @@ -1495,7 +1754,7 @@ msgstr "Mene eteenpäin" msgid "Go Up" msgstr "Mene ylös" -#: editor/editor_file_dialog.cpp +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Toggle Hidden Files" msgstr "Näytä piilotiedostot" @@ -1527,14 +1786,19 @@ msgstr "Edellinen kansio" msgid "Next Folder" msgstr "Seuraava kansio" -#: editor/editor_file_dialog.cpp -msgid "Go to parent folder" -msgstr "Siirry yläkansioon" +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp +msgid "Go to parent folder." +msgstr "Siirry yläkansioon." #: editor/editor_file_dialog.cpp msgid "(Un)favorite current folder." msgstr "Kansio suosikkeihin." +#: editor/editor_file_dialog.cpp +#, fuzzy +msgid "Toggle visibility of hidden files." +msgstr "Näytä piilotiedostot" + #: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp msgid "View items as a grid of thumbnails." msgstr "Ruudukkonäkymä esikatselukuvilla." @@ -1549,6 +1813,7 @@ msgstr "Hakemistot ja tiedostot:" #: editor/editor_file_dialog.cpp editor/plugins/sprite_editor_plugin.cpp #: editor/plugins/style_box_editor_plugin.cpp +#: editor/plugins/theme_editor_plugin.cpp msgid "Preview:" msgstr "Esikatselu:" @@ -1565,6 +1830,12 @@ msgid "ScanSources" msgstr "Selaa lähdetiedostoja" #: editor/editor_file_system.cpp +msgid "" +"There are multiple importers for different types pointing to file %s, import " +"aborted" +msgstr "" + +#: editor/editor_file_system.cpp msgid "(Re)Importing Assets" msgstr "Tuodaan (uudelleen) assetteja" @@ -1747,6 +2018,10 @@ msgstr "Aseta useita:" msgid "Output:" msgstr "Tuloste:" +#: editor/editor_log.cpp editor/plugins/tile_map_editor_plugin.cpp +msgid "Copy Selection" +msgstr "Kopioi valinta" + #: editor/editor_log.cpp editor/editor_profiler.cpp #: editor/editor_properties.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp @@ -1901,9 +2176,10 @@ msgstr "" "Lue ohjeet skenejen tuomisesta, jotta ymmärrät paremmin tämän työnkulun." #: editor/editor_node.cpp +#, fuzzy msgid "" "This resource belongs to a scene that was instanced or inherited.\n" -"Changes to it will not be kept when saving the current scene." +"Changes to it won't be kept when saving the current scene." msgstr "" "Tämä resurssi kuuluu skeneen, josta on luotu ilmentymä, tai joka on " "periytyvä.\n" @@ -1918,8 +2194,9 @@ msgstr "" "paneelista ja tuo se uudelleen." #: editor/editor_node.cpp +#, fuzzy msgid "" -"This scene was imported, so changes to it will not be kept.\n" +"This scene was imported, so changes to it won't be kept.\n" "Instancing it or inheriting will allow making changes to it.\n" "Please read the documentation relevant to importing scenes to better " "understand this workflow." @@ -1931,8 +2208,9 @@ msgstr "" "ymmärrät paremmin tämän työnkulun." #: editor/editor_node.cpp +#, fuzzy msgid "" -"This is a remote object so changes to it will not be kept.\n" +"This is a remote object, so changes to it won't be kept.\n" "Please read the documentation relevant to debugging to better understand " "this workflow." msgstr "" @@ -1944,33 +2222,6 @@ msgid "There is no defined scene to run." msgstr "Suoritettavaa skeneä ei ole määritetty." #: editor/editor_node.cpp -msgid "" -"No main scene has ever been defined, select one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" -"Pääskeneä ei ole määritetty, haluatko valita sen?\n" -"Voit muuttaa sen myöhemmin projektin asetuksista, kohdasta 'Application'." - -#: editor/editor_node.cpp -msgid "" -"Selected scene '%s' does not exist, select a valid one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" -"Valittua skeneä '%s' ei ole olemassa, valitse kelvollinen?\n" -"Voit muuttaa sitä myöhemmin projektin asetuksista, kohdasta 'Application'." - -#: editor/editor_node.cpp -msgid "" -"Selected scene '%s' is not a scene file, select a valid one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" -"Valittu skene '%s' ei ole scene-tiedosto, valitse kelvollinen?\n" -"Voit muuttaa sitä myöhemmin projektin asetuksista, kohdasta 'Application'." - -#: editor/editor_node.cpp msgid "Current scene was never saved, please save it prior to running." msgstr "" "Nykyistä skeneä ei ole vielä tallennettu. Tallenna se ennen suorittamista." @@ -1979,7 +2230,7 @@ msgstr "" msgid "Could not start subprocess!" msgstr "Aliprosessia ei voitu käynnistää!" -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/filesystem_dock.cpp msgid "Open Scene" msgstr "Avaa skene" @@ -1988,6 +2239,11 @@ msgid "Open Base Scene" msgstr "Avaa kantaskene" #: editor/editor_node.cpp +#, fuzzy +msgid "Quick Open..." +msgstr "Skenen pika-avaus..." + +#: editor/editor_node.cpp msgid "Quick Open Scene..." msgstr "Skenen pika-avaus..." @@ -2160,6 +2416,33 @@ msgid "Clear Recent Scenes" msgstr "Tyhjennä viimeisimmät skenet" #: editor/editor_node.cpp +msgid "" +"No main scene has ever been defined, select one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" +"Pääskeneä ei ole määritetty, haluatko valita sen?\n" +"Voit muuttaa sen myöhemmin projektin asetuksista, kohdasta 'Application'." + +#: editor/editor_node.cpp +msgid "" +"Selected scene '%s' does not exist, select a valid one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" +"Valittua skeneä '%s' ei ole olemassa, valitse kelvollinen?\n" +"Voit muuttaa sitä myöhemmin projektin asetuksista, kohdasta 'Application'." + +#: editor/editor_node.cpp +msgid "" +"Selected scene '%s' is not a scene file, select a valid one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" +"Valittu skene '%s' ei ole scene-tiedosto, valitse kelvollinen?\n" +"Voit muuttaa sitä myöhemmin projektin asetuksista, kohdasta 'Application'." + +#: editor/editor_node.cpp msgid "Save Layout" msgstr "Tallenna asettelu" @@ -2185,6 +2468,19 @@ msgstr "Pelaa tätä skeneä" msgid "Close Tab" msgstr "Sulje välilehti" +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +msgid "Close Other Tabs" +msgstr "Sulje muut välilehdet" + +#: editor/editor_node.cpp +msgid "Close Tabs to the Right" +msgstr "" + +#: editor/editor_node.cpp +#, fuzzy +msgid "Close All Tabs" +msgstr "Sulje kaikki" + #: editor/editor_node.cpp msgid "Switch Scene Tab" msgstr "Vaihda skenen välilehteä" @@ -2307,10 +2603,6 @@ msgstr "Projekti" msgid "Project Settings" msgstr "Projektin asetukset" -#: editor/editor_node.cpp editor/project_export.cpp -msgid "Export" -msgstr "Vie" - #: editor/editor_node.cpp editor/plugins/tile_set_editor_plugin.cpp msgid "Tools" msgstr "Työkalut" @@ -2320,6 +2612,10 @@ msgid "Open Project Data Folder" msgstr "Avaa projektin datakansio" #: editor/editor_node.cpp +msgid "Install Android Build Template" +msgstr "" + +#: editor/editor_node.cpp msgid "Quit to Project List" msgstr "Lopeta ja palaa projektiluetteloon" @@ -2442,6 +2738,11 @@ msgstr "Avaa editorin datakansio" msgid "Open Editor Settings Folder" msgstr "Avaa editorin asetuskansio" +#: editor/editor_node.cpp +#, fuzzy +msgid "Manage Editor Features" +msgstr "Hallinnoi vientimalleja" + #: editor/editor_node.cpp editor/project_export.cpp msgid "Manage Export Templates" msgstr "Hallinnoi vientimalleja" @@ -2454,6 +2755,7 @@ msgstr "Ohje" #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp #: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp #: editor/project_settings_editor.cpp editor/rename_dialog.cpp msgid "Search" msgstr "Hae" @@ -2543,11 +2845,6 @@ msgstr "Päivitä muutokset" msgid "Disable Update Spinner" msgstr "Poista päivitysanimaatio" -#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp -#: editor/project_manager.cpp -msgid "Import" -msgstr "Tuo" - #: editor/editor_node.cpp msgid "FileSystem" msgstr "Tiedostojärjestelmä" @@ -2573,6 +2870,28 @@ msgid "Don't Save" msgstr "Älä tallenna" #: editor/editor_node.cpp +msgid "Android build template is missing, please install relevant templates." +msgstr "" + +#: editor/editor_node.cpp +#, fuzzy +msgid "Manage Templates" +msgstr "Hallinnoi vientimalleja" + +#: editor/editor_node.cpp +msgid "" +"This will install the Android project for custom builds.\n" +"Note that, in order to use it, it needs to be enabled per export preset." +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"Android build template is already installed and it won't be overwritten.\n" +"Remove the \"build\" directory manually before attempting this operation " +"again." +msgstr "" + +#: editor/editor_node.cpp msgid "Import Templates From ZIP File" msgstr "Tuo mallit ZIP-tiedostosta" @@ -2695,10 +3014,6 @@ msgid "Physics Frame %" msgstr "Fysiikkaruutujen %" #: editor/editor_profiler.cpp -msgid "Time:" -msgstr "Aika:" - -#: editor/editor_profiler.cpp msgid "Inclusive" msgstr "Sisältävä" @@ -2842,10 +3157,6 @@ msgid "Remove Item" msgstr "Poista" #: editor/editor_run_native.cpp -msgid "Select device from the list" -msgstr "Valitse laite listasta" - -#: editor/editor_run_native.cpp msgid "" "No runnable export preset found for this platform.\n" "Please add a runnable preset in the export menu." @@ -2881,6 +3192,10 @@ msgstr "Unohditko '_run' metodin?" msgid "Select Node(s) to Import" msgstr "Valitse tuotavat solmut" +#: editor/editor_sub_scene.cpp editor/project_manager.cpp +msgid "Browse" +msgstr "Selaa" + #: editor/editor_sub_scene.cpp msgid "Scene Path:" msgstr "Skenen polku:" @@ -3047,6 +3362,11 @@ msgid "SSL Handshake Error" msgstr "Virhe SSL kättelyssä" #: editor/export_template_manager.cpp +#, fuzzy +msgid "Uncompressing Android Build Sources" +msgstr "Puretaan assetteja" + +#: editor/export_template_manager.cpp msgid "Current Version:" msgstr "Nykyinen versio:" @@ -3063,7 +3383,8 @@ msgid "Remove Template" msgstr "Poista malli" #: editor/export_template_manager.cpp -msgid "Select template file" +#, fuzzy +msgid "Select Template File" msgstr "Valitse mallin tiedosto" #: editor/export_template_manager.cpp @@ -3124,7 +3445,8 @@ msgid "No name provided." msgstr "Nimeä ei annettu." #: editor/filesystem_dock.cpp -msgid "Provided name contains invalid characters" +#, fuzzy +msgid "Provided name contains invalid characters." msgstr "Annettu nimi sisältää virheellisiä kirjainmerkkejä" #: editor/filesystem_dock.cpp @@ -3152,19 +3474,27 @@ msgid "Duplicating folder:" msgstr "Kahdennetaan kansio:" #: editor/filesystem_dock.cpp -msgid "Open Scene(s)" -msgstr "Avaa skene tai skenejä" +#, fuzzy +msgid "New Inherited Scene" +msgstr "Uusi peritty skene..." + +#: editor/filesystem_dock.cpp +#, fuzzy +msgid "Open Scenes" +msgstr "Avaa skene" #: editor/filesystem_dock.cpp msgid "Instance" msgstr "Luo ilmentymä" #: editor/filesystem_dock.cpp -msgid "Add to favorites" +#, fuzzy +msgid "Add to Favorites" msgstr "Lisää suosikkeihin" #: editor/filesystem_dock.cpp -msgid "Remove from favorites" +#, fuzzy +msgid "Remove from Favorites" msgstr "Poista suosikeista" #: editor/filesystem_dock.cpp @@ -3195,11 +3525,13 @@ msgstr "Uusi skripti..." msgid "New Resource..." msgstr "Uusi resurssi..." -#: editor/filesystem_dock.cpp editor/script_editor_debugger.cpp +#: editor/filesystem_dock.cpp editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_editor_debugger.cpp msgid "Expand All" msgstr "Laajenna kaikki" -#: editor/filesystem_dock.cpp editor/script_editor_debugger.cpp +#: editor/filesystem_dock.cpp editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_editor_debugger.cpp msgid "Collapse All" msgstr "Tiivistä kaikki" @@ -3211,19 +3543,22 @@ msgid "Rename" msgstr "Nimeä uudelleen" #: editor/filesystem_dock.cpp -msgid "Previous Directory" -msgstr "Edellinen hakemisto" +#, fuzzy +msgid "Previous Folder/File" +msgstr "Edellinen kansio" #: editor/filesystem_dock.cpp -msgid "Next Directory" -msgstr "Seuraava hakemisto" +#, fuzzy +msgid "Next Folder/File" +msgstr "Seuraava kansio" #: editor/filesystem_dock.cpp msgid "Re-Scan Filesystem" msgstr "Skannaa tiedostojärjestelmä uudelleen" #: editor/filesystem_dock.cpp -msgid "Toggle split mode" +#, fuzzy +msgid "Toggle Split Mode" msgstr "Aseta jaettu tila" #: editor/filesystem_dock.cpp @@ -3254,7 +3589,7 @@ msgstr "Ylikirjoita" msgid "Create Script" msgstr "Luo skripti" -#: editor/find_in_files.cpp +#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp msgid "Find in Files" msgstr "Etsi tiedostoista" @@ -3270,6 +3605,12 @@ msgstr "Kansio:" msgid "Filters:" msgstr "Suodattimet:" +#: editor/find_in_files.cpp +msgid "" +"Include the files with the following extensions. Add or remove them in " +"ProjectSettings." +msgstr "" + #: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp msgid "Find..." @@ -3710,7 +4051,8 @@ msgid "Open Animation Node" msgstr "Avaa animaatiosolmu" #: editor/plugins/animation_blend_space_2d_editor.cpp -msgid "Triangle already exists" +#, fuzzy +msgid "Triangle already exists." msgstr "Kolmio on jo olemassa" #: editor/plugins/animation_blend_space_2d_editor.cpp @@ -3785,7 +4127,6 @@ msgid "Node Moved" msgstr "Solmu siirretty" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Unable to connect, port may be in use or connection may be invalid." msgstr "" "Ei voida yhdistää, portti voi olla käytössä tai yhteys voi olla virheellinen." @@ -3857,7 +4198,8 @@ msgid "Edit Filtered Tracks:" msgstr "Muokkaa suodatettuja raitoja:" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -msgid "Enable filtering" +#, fuzzy +msgid "Enable Filtering" msgstr "Kytke suodatus" #: editor/plugins/animation_player_editor_plugin.cpp @@ -3972,10 +4314,6 @@ msgid "Animation" msgstr "Animaatio" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "New" -msgstr "Uusi" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Edit Transitions..." msgstr "Muokkaa siirtymiä..." @@ -3992,14 +4330,15 @@ msgid "Autoplay on Load" msgstr "Toista automaattisesti ladattaessa" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Onion Skinning" -msgstr "Onion skinning" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Enable Onion Skinning" msgstr "Käytä onion skinningiä" #: editor/plugins/animation_player_editor_plugin.cpp +#, fuzzy +msgid "Onion Skinning Options" +msgstr "Onion skinning" + +#: editor/plugins/animation_player_editor_plugin.cpp msgid "Directions" msgstr "Suunnat" @@ -4549,10 +4888,6 @@ msgid "Move CanvasItem" msgstr "Siirrä CanvasItemiä" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Presets for the anchors and margins values of a Control node." -msgstr "Control solmun ankkureiden ja marginaalien arvojen esiasetukset." - -#: editor/plugins/canvas_item_editor_plugin.cpp msgid "" "Children of containers have their anchors and margins values overridden by " "their parent." @@ -4561,6 +4896,16 @@ msgstr "" "isäntäsolmun toimesta." #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Presets for the anchors and margins values of a Control node." +msgstr "Control solmun ankkureiden ja marginaalien arvojen esiasetukset." + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"When active, moving Control nodes changes their anchors instead of their " +"margins." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Anchors only" msgstr "Vain ankkurit" @@ -4573,10 +4918,52 @@ msgid "Change Anchors" msgstr "Muuta ankkureita" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Lock Selected" +msgstr "Valintatyökalu" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Unlock Selected" +msgstr "Poista valitut" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Group Selected" +msgstr "Kopioi valinta" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Ungroup Selected" +msgstr "Kopioi valinta" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Paste Pose" msgstr "Liitä asento" #: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Create Custom Bone(s) from Node(s)" +msgstr "Luo mukautetut luut solmuista" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Clear Bones" +msgstr "Tyhjennä asento" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Make IK Chain" +msgstr "Luo IK ketju" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Clear IK Chain" +msgstr "Tyhjennä IK ketju" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "" "Warning: Children of a container get their position and size determined only " "by their parent." @@ -4654,7 +5041,8 @@ msgid "Snapping Options" msgstr "Tarttumisen asetukset" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to grid" +#, fuzzy +msgid "Snap to Grid" msgstr "Tartu ruudukkoon" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4675,31 +5063,38 @@ msgid "Use Pixel Snap" msgstr "Tartu pikseleihin" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Smart snapping" +#, fuzzy +msgid "Smart Snapping" msgstr "Älykäs tarttuminen" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to parent" +#, fuzzy +msgid "Snap to Parent" msgstr "Tartu isäntään" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node anchor" +#, fuzzy +msgid "Snap to Node Anchor" msgstr "Tartu solmun ankkuriin" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node sides" +#, fuzzy +msgid "Snap to Node Sides" msgstr "Tartu solmun reunoihin" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node center" +#, fuzzy +msgid "Snap to Node Center" msgstr "Tartu solmun keskipisteeseen" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to other nodes" +#, fuzzy +msgid "Snap to Other Nodes" msgstr "Tartu muihin solmuihin" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to guides" +#, fuzzy +msgid "Snap to Guides" msgstr "Tartu apuviivoihin" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4713,10 +5108,12 @@ msgid "Unlock the selected object (can be moved)." msgstr "Poista valittujen objektien lukitus (voi liikutella)." #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Makes sure the object's children are not selectable." msgstr "Varmistaa, ettei objektin alisolmuja voi valita." #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Restores the object's children's ability to be selected." msgstr "Palauttaa objektin aliobjektien mahdollisuuden tulla valituksi." @@ -4729,14 +5126,6 @@ msgid "Show Bones" msgstr "Näytä luut" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Make IK Chain" -msgstr "Luo IK ketju" - -#: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Clear IK Chain" -msgstr "Tyhjennä IK ketju" - -#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Make Custom Bone(s) from Node(s)" msgstr "Luo mukautetut luut solmuista" @@ -4787,25 +5176,24 @@ msgid "Frame Selection" msgstr "Rajaa valintaan" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Layout" -msgstr "Asettelu" +msgid "Preview Canvas Scale" +msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Translation mask for inserting keys." -msgstr "" +msgstr "Siirrosmaski avainruutujen lisäämiseen." #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Rotation mask for inserting keys." -msgstr "" +msgstr "Kierrosmaski avainruutujen lisäämiseen." #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Scale mask for inserting keys." -msgstr "" +msgstr "Skaalausmaski avainruutujen lisäämiseen." #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Insert keys (based on mask)." -msgstr "Lisää avainruutu (olemassa olevat raidat)" +msgstr "Lisää avainruutuja (maskiin perustuen)." #: editor/plugins/canvas_item_editor_plugin.cpp msgid "" @@ -4814,11 +5202,15 @@ msgid "" "Keys are only added to existing tracks, no new tracks will be created.\n" "Keys must be inserted manually for the first time." msgstr "" +"Lisää avainruutuja automaattisesti, kun objekteja siirretään, kierretään tai " +"skaalataan (maskiin perustuen).\n" +"Avainruutuja lisätään vain olemassa oleville raidoille, uusia raitoja ei " +"luoda.\n" +"Avainruudut täytyy lisätä ensimmäisellä kerralla käsin." #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Auto Insert Key" -msgstr "Animaatio: Lisää avain" +msgstr "Lisää avainruutuja automaattisesti" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Insert Key (Existing Tracks)" @@ -4841,6 +5233,11 @@ msgid "Divide grid step by 2" msgstr "Jaa ruudukon välistys kahdella" #: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Pan View" +msgstr "Takanäkymä" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Add %s" msgstr "Lisää %s" @@ -4863,7 +5260,8 @@ msgid "Error instancing scene from %s" msgstr "Virhe luotaessa ilmentymää kohteesta %s" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Change default type" +#, fuzzy +msgid "Change Default Type" msgstr "Muuta oletustyyppiä" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4951,19 +5349,21 @@ msgid "Create Emission Points From Node" msgstr "Luo säteilypisteet solmusta" #: editor/plugins/curve_editor_plugin.cpp -msgid "Flat0" +#, fuzzy +msgid "Flat 0" msgstr "Tasainen0" #: editor/plugins/curve_editor_plugin.cpp -msgid "Flat1" +#, fuzzy +msgid "Flat 1" msgstr "Tasainen1" -#: editor/plugins/curve_editor_plugin.cpp -msgid "Ease in" +#: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp +msgid "Ease In" msgstr "Kiihdytä alussa" -#: editor/plugins/curve_editor_plugin.cpp -msgid "Ease out" +#: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp +msgid "Ease Out" msgstr "Hidasta lopussa" #: editor/plugins/curve_editor_plugin.cpp @@ -4983,23 +5383,28 @@ msgid "Load Curve Preset" msgstr "Lataa käyrän esiasetus" #: editor/plugins/curve_editor_plugin.cpp -msgid "Add point" +#, fuzzy +msgid "Add Point" msgstr "Lisää piste" #: editor/plugins/curve_editor_plugin.cpp -msgid "Remove point" +#, fuzzy +msgid "Remove Point" msgstr "Poista piste" #: editor/plugins/curve_editor_plugin.cpp -msgid "Left linear" +#, fuzzy +msgid "Left Linear" msgstr "Vasen lineaarinen" #: editor/plugins/curve_editor_plugin.cpp -msgid "Right linear" +#, fuzzy +msgid "Right Linear" msgstr "Oikea lineaarinen" #: editor/plugins/curve_editor_plugin.cpp -msgid "Load preset" +#, fuzzy +msgid "Load Preset" msgstr "Lataa esiasetus" #: editor/plugins/curve_editor_plugin.cpp @@ -5055,11 +5460,17 @@ msgid "This doesn't work on scene root!" msgstr "Tämä ei toimi skenen juuressa!" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Trimesh Shape" +#, fuzzy +msgid "Create Trimesh Static Shape" msgstr "Luo konkaavi muoto" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Shape" +msgid "Failed creating shapes!" +msgstr "" + +#: editor/plugins/mesh_instance_editor_plugin.cpp +#, fuzzy +msgid "Create Convex Shape(s)" msgstr "Luo konveksi muoto" #: editor/plugins/mesh_instance_editor_plugin.cpp @@ -5112,15 +5523,12 @@ msgid "Create Trimesh Static Body" msgstr "Luo konkaavi staattinen kappale" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Static Body" -msgstr "Luo konveksi staattinen kappale" - -#: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Trimesh Collision Sibling" msgstr "Luo konkaavi törmäysmuoto sisareksi" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Collision Sibling" +#, fuzzy +msgid "Create Convex Collision Sibling(s)" msgstr "Luo konveksi törmäysmuoto sisareksi" #: editor/plugins/mesh_instance_editor_plugin.cpp @@ -5276,6 +5684,11 @@ msgid "Create Navigation Polygon" msgstr "Luo navigointipolygoni" #: editor/plugins/particles_2d_editor_plugin.cpp +#: editor/plugins/particles_editor_plugin.cpp +msgid "Convert to CPUParticles" +msgstr "Muunna CPUPartikkeleiksi" + +#: editor/plugins/particles_2d_editor_plugin.cpp msgid "Generating Visibility Rect" msgstr "Kartoitetaan näkyvää aluetta" @@ -5290,11 +5703,6 @@ msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp #: editor/plugins/particles_editor_plugin.cpp -msgid "Convert to CPUParticles" -msgstr "Muunna CPUPartikkeleiksi" - -#: editor/plugins/particles_2d_editor_plugin.cpp -#: editor/plugins/particles_editor_plugin.cpp msgid "Generation Time (sec):" msgstr "Luontiaika (s):" @@ -5432,7 +5840,7 @@ msgstr "Sulje käyrä" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp editor/plugins/theme_editor_plugin.cpp -#: editor/project_export.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_export.cpp msgid "Options" msgstr "Asetuksia" @@ -5483,7 +5891,8 @@ msgid "Split Segment (in curve)" msgstr "Puolita osa (käyrässä)" #: editor/plugins/physical_bone_plugin.cpp -msgid "Move joint" +#, fuzzy +msgid "Move Joint" msgstr "Siirrä liitosta" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5723,7 +6132,6 @@ msgid "Open in Editor" msgstr "Avaa editorissa" #: editor/plugins/resource_preloader_editor_plugin.cpp -#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Load Resource" msgstr "Lataa resurssi" @@ -5808,9 +6216,13 @@ msgid "Save Theme As..." msgstr "Tallenna teema nimellä..." #: editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "%s Class Reference" -msgstr " Luokan referenssi" +msgstr "%s luokan referenssi" + +#: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp +msgid "Find Next" +msgstr "Etsi seuraava" #: editor/plugins/script_editor_plugin.cpp msgid "Toggle alphabetical sorting of the method list." @@ -5893,10 +6305,6 @@ msgstr "Sulje dokumentaatio" msgid "Close All" msgstr "Sulje kaikki" -#: editor/plugins/script_editor_plugin.cpp -msgid "Close Other Tabs" -msgstr "Sulje muut välilehdet" - #: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp msgid "Run" msgstr "Suorita" @@ -5905,11 +6313,6 @@ msgstr "Suorita" msgid "Toggle Scripts Panel" msgstr "Näytä/piilota skriptipaneeli" -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/script_text_editor.cpp -msgid "Find Next" -msgstr "Etsi seuraava" - #: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp msgid "Step Over" msgstr "Siirry seuraavaan" @@ -5936,7 +6339,8 @@ msgid "Debug with External Editor" msgstr "Debuggaa ulkoisella editorilla" #: editor/plugins/script_editor_plugin.cpp -msgid "Open Godot online documentation" +#, fuzzy +msgid "Open Godot online documentation." msgstr "Avaa Godotin online-dokumentaatio" #: editor/plugins/script_editor_plugin.cpp @@ -5944,7 +6348,8 @@ msgid "Request Docs" msgstr "Pyydä dokumentaatiota" #: editor/plugins/script_editor_plugin.cpp -msgid "Help improve the Godot documentation by giving feedback" +#, fuzzy +msgid "Help improve the Godot documentation by giving feedback." msgstr "Auta parantamaan Godotin dokumentaatiota antamalla palautetta" #: editor/plugins/script_editor_plugin.cpp @@ -5972,10 +6377,12 @@ msgstr "" "Mikä toimenpide tulisi suorittaa?:" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp msgid "Reload" msgstr "Lataa uudelleen" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp msgid "Resave" msgstr "Tallenna uudelleen" @@ -5988,6 +6395,32 @@ msgid "Search Results" msgstr "Haun tulokset" #: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Connections to method:" +msgstr "Yhdistä solmuun:" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Source" +msgstr "Lähde:" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Signal" +msgstr "Signaalit" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Target" +msgstr "Kohdepolku:" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "" +"Missing connected method '%s' for signal '%s' from node '%s' to node '%s'." +msgstr "Mitään ei ole yhdistetty syötteeseen '%s' solmussa '%s'." + +#: editor/plugins/script_text_editor.cpp msgid "Line" msgstr "Rivi" @@ -5999,10 +6432,6 @@ msgstr "(sivuuta)" msgid "Go to Function" msgstr "Mene funktioon" -#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp -msgid "Standard" -msgstr "Standardi" - #: editor/plugins/script_text_editor.cpp msgid "Only resources from filesystem can be dropped." msgstr "Vain tiedostojärjestelmän resursseja voi raahata ja pudottaa." @@ -6035,6 +6464,11 @@ msgstr "Isot alkukirjaimet" msgid "Syntax Highlighter" msgstr "Syntaksin korostaja" +#: editor/plugins/script_text_editor.cpp +#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp +msgid "Bookmarks" +msgstr "" + #: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" @@ -6062,6 +6496,26 @@ msgid "Toggle Comment" msgstr "Lisää tai poista kommentit" #: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Toggle Bookmark" +msgstr "Kytke liikkuminen päälle/pois" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Go to Next Bookmark" +msgstr "Mene seuraavaan keskeytyskohtaan" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Go to Previous Bookmark" +msgstr "Mene edelliseen keskeytyskohtaan" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Remove All Bookmarks" +msgstr "Poista kaikki" + +#: editor/plugins/script_text_editor.cpp msgid "Fold/Unfold Line" msgstr "Laskosta tai avaa rivi" @@ -6135,6 +6589,15 @@ msgid "Contextual Help" msgstr "Asiayhteydellinen ohje" #: editor/plugins/shader_editor_plugin.cpp +#, fuzzy +msgid "" +"This shader has been modified on on disk.\n" +"What action should be taken?" +msgstr "" +"Seuraavat tiedostot ovat uudempia levyllä.\n" +"Mikä toimenpide tulisi suorittaa?:" + +#: editor/plugins/shader_editor_plugin.cpp msgid "Shader" msgstr "Sävytin" @@ -6477,7 +6940,8 @@ msgid "Right View" msgstr "Oikea näkymä" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Switch Perspective/Orthogonal view" +#, fuzzy +msgid "Switch Perspective/Orthogonal View" msgstr "Vaihda perspektiiviseen/ortogonaaliseen näkymään" #: editor/plugins/spatial_editor_plugin.cpp @@ -6517,11 +6981,13 @@ msgid "Toggle Freelook" msgstr "Kytke liikkuminen päälle/pois" #: editor/plugins/spatial_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Transform" msgstr "Muunna" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Snap object to floor" +#, fuzzy +msgid "Snap Object to Floor" msgstr "Kohdista objekti lattiaan" #: editor/plugins/spatial_editor_plugin.cpp @@ -6634,24 +7100,20 @@ msgid "Nameless gizmo" msgstr "Nimetön muokkain" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy msgid "Create Mesh2D" -msgstr "Luo 2D-mesh" +msgstr "Luo Mesh2D" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy msgid "Create Polygon2D" -msgstr "Luo Polygon3D" +msgstr "Luo Polygon2D" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy msgid "Create CollisionPolygon2D" -msgstr "Luo törmäyspolygoni" +msgstr "Luo CollisionPolygon2D" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy msgid "Create LightOccluder2D" -msgstr "Luo peittopolygoni" +msgstr "Luo LightOccluder2D" #: editor/plugins/sprite_editor_plugin.cpp msgid "Sprite is empty!" @@ -6666,43 +7128,36 @@ msgid "Invalid geometry, can't replace by mesh." msgstr "Virheellinen geometria, ei voida korvata meshillä." #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy -msgid "Invalid geometry, can't create polygon." -msgstr "Virheellinen geometria, ei voida korvata meshillä." +msgid "Convert to Mesh2D" +msgstr "Muunna Mesh2D resurssiksi" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy -msgid "Invalid geometry, can't create collision polygon." -msgstr "Virheellinen geometria, ei voida korvata meshillä." +msgid "Invalid geometry, can't create polygon." +msgstr "Virheellinen geometria, ei voida luoda polygonia." #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy -msgid "Invalid geometry, can't create light occluder." -msgstr "Virheellinen geometria, ei voida korvata meshillä." +msgid "Convert to Polygon2D" +msgstr "Muunna Polygon2D solmuksi" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Sprite" -msgstr "Sprite" +msgid "Invalid geometry, can't create collision polygon." +msgstr "Virheellinen geometria, ei voida luoda törmäyspolygonia." #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy -msgid "Convert to Mesh2D" -msgstr "Muunna 2D-meshiksi" +msgid "Create CollisionPolygon2D Sibling" +msgstr "Luo CollisionPolygon2D solmun sisar" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy -msgid "Convert to Polygon2D" -msgstr "Siirrä polygonia" +msgid "Invalid geometry, can't create light occluder." +msgstr "Virheellinen geometria, ei voida luoda valopeitettä." #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy -msgid "Create CollisionPolygon2D Sibling" -msgstr "Luo törmäyspolygoni" +msgid "Create LightOccluder2D Sibling" +msgstr "Luo LightOccluder2D solmun sisar" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy -msgid "Create LightOccluder2D Sibling" -msgstr "Luo peittopolygoni" +msgid "Sprite" +msgstr "Sprite" #: editor/plugins/sprite_editor_plugin.cpp msgid "Simplification: " @@ -6721,14 +7176,24 @@ msgid "Settings:" msgstr "Asetukset:" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "ERROR: Couldn't load frame resource!" -msgstr "VIRHE: Ei voitu ladata framen resurssia!" +#, fuzzy +msgid "No Frames Selected" +msgstr "Rajaa valintaan" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Add %d Frame(s)" +msgstr "Lisää frame" #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Add Frame" msgstr "Lisää frame" #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "ERROR: Couldn't load frame resource!" +msgstr "VIRHE: Ei voitu ladata framen resurssia!" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Resource clipboard is empty or not a texture!" msgstr "Resurssileikepöytä on tyhjä tai ei sisällä tekstuuria!" @@ -6769,6 +7234,15 @@ msgid "Animation Frames:" msgstr "Animaatioruudut:" #: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Add a Texture from File" +msgstr "Lisää tekstuurit ruutuvalikoimaan." + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Add Frames from a Sprite Sheet" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Insert Empty (Before)" msgstr "Syötä tyhjä (ennen)" @@ -6785,6 +7259,31 @@ msgid "Move (After)" msgstr "Siirrä (jälkeen)" #: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Select Frames" +msgstr "Pinokehykset" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Horizontal:" +msgstr "Käännä vaakasuorasti" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Vertical:" +msgstr "Kärkipisteet" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Select/Clear All Frames" +msgstr "Valitse kaikki" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Create Frames from Sprite Sheet" +msgstr "Luo skenestä" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "SpriteFrames" msgstr "SpriteFrames" @@ -6849,12 +7348,13 @@ msgstr "Lisää kaikki" msgid "Remove All Items" msgstr "Poista kaikki" -#: editor/plugins/theme_editor_plugin.cpp +#: editor/plugins/theme_editor_plugin.cpp editor/project_manager.cpp msgid "Remove All" msgstr "Poista kaikki" #: editor/plugins/theme_editor_plugin.cpp -msgid "Edit theme..." +#, fuzzy +msgid "Edit Theme" msgstr "Muokkaa teemaa..." #: editor/plugins/theme_editor_plugin.cpp @@ -6882,18 +7382,25 @@ msgid "Create From Current Editor Theme" msgstr "Luo nykyisestä editorin teemasta" #: editor/plugins/theme_editor_plugin.cpp -msgid "CheckBox Radio1" -msgstr "Valintaruudun valinta 1" +#, fuzzy +msgid "Toggle Button" +msgstr "Hiiren painike" #: editor/plugins/theme_editor_plugin.cpp -msgid "CheckBox Radio2" -msgstr "Valintaruudun valinta 2" +#, fuzzy +msgid "Disabled Button" +msgstr "Keskipainike" #: editor/plugins/theme_editor_plugin.cpp msgid "Item" msgstr "Osanen" #: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Disabled Item" +msgstr "Poistettu käytöstä" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Check Item" msgstr "Valinta" @@ -6910,6 +7417,24 @@ msgid "Checked Radio Item" msgstr "Valittu valintapainike" #: editor/plugins/theme_editor_plugin.cpp +msgid "Named Sep." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Submenu" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Item 1" +msgstr "Osanen" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Item 2" +msgstr "Osanen" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Has" msgstr "On" @@ -6918,8 +7443,9 @@ msgid "Many" msgstr "Useita" #: editor/plugins/theme_editor_plugin.cpp -msgid "Has,Many,Options" -msgstr "On,Useita,Asetuksia" +#, fuzzy +msgid "Disabled LineEdit" +msgstr "Poistettu käytöstä" #: editor/plugins/theme_editor_plugin.cpp msgid "Tab 1" @@ -6934,6 +7460,19 @@ msgid "Tab 3" msgstr "Välilehti 3" #: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Editable Item" +msgstr "Muokattavat alisolmut" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Subtree" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Has,Many,Options" +msgstr "On,Useita,Asetuksia" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Data Type:" msgstr "Tietotyyppi:" @@ -6966,6 +7505,7 @@ msgid "Fix Invalid Tiles" msgstr "Korjaa virheelliset ruudut" #: editor/plugins/tile_map_editor_plugin.cpp +#: modules/gridmap/grid_map_editor_plugin.cpp msgid "Cut Selection" msgstr "Leikkaa valinta" @@ -7006,35 +7546,52 @@ msgid "Mirror Y" msgstr "Peilaa Y" #: editor/plugins/tile_map_editor_plugin.cpp +#, fuzzy +msgid "Disable Autotile" +msgstr "Automaattiruudutus" + +#: editor/plugins/tile_map_editor_plugin.cpp +#, fuzzy +msgid "Enable Priority" +msgstr "Muokkaa ruudun prioriteettia" + +#: editor/plugins/tile_map_editor_plugin.cpp msgid "Paint Tile" msgstr "Maalaa ruutu" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Pick Tile" -msgstr "Poimi ruutu" +msgid "" +"Shift+RMB: Line Draw\n" +"Shift+Ctrl+RMB: Rectangle Paint" +msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Copy Selection" -msgstr "Kopioi valinta" +msgid "Pick Tile" +msgstr "Poimi ruutu" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Rotate left" +#, fuzzy +msgid "Rotate Left" msgstr "Kierrä vasemmalle" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Rotate right" +#, fuzzy +msgid "Rotate Right" msgstr "Kierrä oikealle" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Flip horizontally" +#, fuzzy +msgid "Flip Horizontally" msgstr "Käännä vaakasuorasti" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Flip vertically" +#, fuzzy +msgid "Flip Vertically" msgstr "Käännä pystysuorasti" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Clear transform" +#, fuzzy +msgid "Clear Transform" msgstr "Tyhjennä muunnos" #: editor/plugins/tile_set_editor_plugin.cpp @@ -7070,6 +7627,46 @@ msgid "Select the previous shape, subtile, or Tile." msgstr "Valitse edellinen muoto, aliruutu tai ruutu." #: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Region Mode" +msgstr "Käynnistystila:" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Collision Mode" +msgstr "Interpolaatiotila" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Occlusion Mode" +msgstr "Muokkaa peittopolygonia" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Navigation Mode" +msgstr "Luo navigointiverkko" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Bitmask Mode" +msgstr "Kääntötila" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Priority Mode" +msgstr "Vientitila:" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Icon Mode" +msgstr "Panorointitila" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Z Index Mode" +msgstr "Panorointitila" + +#: editor/plugins/tile_set_editor_plugin.cpp msgid "Copy bitmask." msgstr "Kopioi bittimaski." @@ -7151,9 +7748,11 @@ msgid "Delete polygon." msgstr "Poista polygoni." #: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy msgid "" "LMB: Set bit on.\n" "RMB: Set bit off.\n" +"Shift+LMB: Set wildcard bit.\n" "Click on another Tile to edit it." msgstr "" "Hiiren vasen: aseta bitti päälle.\n" @@ -7271,6 +7870,79 @@ msgid "TileSet" msgstr "Ruutuvalikoima" #: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Add input +" +msgstr "Lisää syöte" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Add output +" +msgstr "Lisää syöte" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar" +msgstr "Skaalaus:" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector" +msgstr "Tarkastelu" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Add input port" +msgstr "Lisää syöte" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add output port" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change input port type" +msgstr "Muuta oletustyyppiä" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change output port type" +msgstr "Muuta oletustyyppiä" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change input port name" +msgstr "Vaihda syötteen nimi" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change output port name" +msgstr "Vaihda syötteen nimi" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Remove input port" +msgstr "Poista piste" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Remove output port" +msgstr "Poista piste" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Set expression" +msgstr "Vaihda lauseketta" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Resize VisualShader node" +msgstr "VisualShader" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Set Uniform Name" msgstr "Aseta uniformin nimi" @@ -7287,9 +7959,8 @@ msgid "Duplicate Nodes" msgstr "Kahdenna solmut" #: editor/plugins/visual_shader_editor_plugin.cpp -#, fuzzy msgid "Delete Nodes" -msgstr "Poista solmu" +msgstr "Poista solmut" #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Visual Shader Input Type Changed" @@ -7308,6 +7979,859 @@ msgid "Light" msgstr "Valo" #: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Create Shader Node" +msgstr "Luo solmu" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Color function." +msgstr "Mene funktioon" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Color operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Grayscale function." +msgstr "Tee funktio" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts HSV vector to RGB equivalent." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts RGB vector to HSV equivalent." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Sepia function." +msgstr "Nimeä funktio uudelleen" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Burn operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Darken operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Difference operator." +msgstr "Vain eroavaisuudet" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Dodge operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "HardLight operator" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Lighten operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Overlay operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Screen operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "SoftLight operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Color constant." +msgstr "Muuttumaton" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Color uniform." +msgstr "Tyhjennä muunnos" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns an associated vector if the provided scalars are equal, greater or " +"less." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns an associated vector if the provided boolean value is true or false." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Boolean constant." +msgstr "Muuta vektorivakiota" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'camera' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'inv_camera' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'inv_projection' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'normal' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'projection' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'time' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'viewport_size' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'world' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'texture_pixel_size' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Input parameter." +msgstr "Tartu isäntään" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'binormal' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'fragcoord' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_coord' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_uv' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'side' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'tangent' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv2' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'vertex' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'view' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'albedo' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'attenuation' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'diffuse' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_color' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'roughness' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'specular' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'transmission' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'modelview' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_size' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'tangent' input parameter for vertex and fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_pass' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_coord' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_pixel_size' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_uv' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_alpha' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_height' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_uv' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_vec' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'normal' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'shadow_color' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'extra' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'projection' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'vertex' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'world' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'active' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'custom' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'custom_alpha' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'delta' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'emission_transform' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'index' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'lifetime' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'restart' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'time' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'transform' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'velocity' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar function." +msgstr "Muuta skalaarifunktiota" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar operator." +msgstr "Muuta skalaarioperaattoria" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "E constant (2.718282). Represents the base of the natural logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Epsilon constant (0.00001). Smallest possible scalar number." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Phi constant (1.618034). Golden ratio." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi/4 constant (0.785398) or 45 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi/2 constant (1.570796) or 90 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi constant (3.141593) or 180 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Tau constant (6.283185) or 360 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Sqrt2 constant (1.414214). Square root of 2." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the absolute value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-tangent of the parameters." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Finds the nearest integer that is greater than or equal to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Constrains a value to lie between two further values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts a quantity in radians to degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-e Exponential." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-2 Exponential." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Finds the nearest integer less than or equal to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Computes the fractional part of the argument." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the inverse of the square root of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Natural logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-2 logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the greater of two values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the lesser of two values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Linear interpolation between two scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the opposite value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 - scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns the value of the first parameter raised to the power of the second." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts a quantity in degrees to radians." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 / scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the nearest integer to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the nearest even integer to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Clamps the value between 0.0 and 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Extracts the sign of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the square root of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( scalar(edge0), scalar(edge1), scalar(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if x is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( scalar(edge), scalar(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the truncated value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Adds scalar to scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Divides scalar by scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies scalar by scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the remainder of the two scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Subtracts scalar from scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar constant." +msgstr "Muuta skalaarivakiota" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar uniform." +msgstr "Muuta skalaariuniformia" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Perform the cubic texture lookup." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Perform the texture lookup." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Cubic texture uniform." +msgstr "Muuta tekstuuriuniformia" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "2D texture uniform." +msgstr "Muuta tekstuuriuniformia" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Transform function." +msgstr "Muunnosikkuna..." + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) Calculate the outer product of a pair of vectors.\n" +"\n" +"OuterProduct treats the first parameter 'c' as a column vector (matrix with " +"one column) and the second parameter 'r' as a row vector (matrix with one " +"row) and does a linear algebraic matrix multiply 'c * r', yielding a matrix " +"whose number of rows is the number of components in 'c' and whose number of " +"columns is the number of components in 'r'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Composes transform from four vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Decomposes transform to four vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the determinant of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the inverse of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the transpose of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies transform by transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies vector by transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Transform constant." +msgstr "Muunnos keskeytetty." + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Transform uniform." +msgstr "Muunnos keskeytetty." + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector function." +msgstr "Sijoitus funktiolle." + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector operator." +msgstr "Muuta vektorioperaattoria" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Composes vector from three scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Decomposes vector to three scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the cross product of two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the distance between two points." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the dot product of two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns a vector that points in the same direction as a reference vector. " +"The function has three vector parameters : N, the vector to orient, I, the " +"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 "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the length of a vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Linear interpolation between two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the normalize product of vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 - vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 / vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns a vector that points in the direction of reflection ( a : incident " +"vector, b : normal vector )." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns a vector that points in the direction of refraction." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( vector(edge0), vector(edge1), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if 'x' is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( scalar(edge0), scalar(edge1), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if 'x' is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( vector(edge), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( scalar(edge), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Adds vector to vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Divides vector by vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies vector by vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the remainder of the two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Subtracts vector from vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector constant." +msgstr "Muuta vektorivakiota" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector uniform." +msgstr "Sijoitus uniformille." + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Custom Godot Shader Language expression, with custom amount of input and " +"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 "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns falloff based on the dot product of surface normal and view " +"direction of camera (pass associated inputs to it)." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) (Fragment/Light mode only) Scalar derivative function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) (Fragment/Light mode only) Vector derivative function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Derivative in 'x' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Derivative in 'x' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Derivative in 'y' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Derivative in 'y' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Sum of absolute derivative " +"in 'x' and 'y'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Sum of absolute derivative " +"in 'x' and 'y'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "VisualShader" msgstr "VisualShader" @@ -7506,6 +9030,10 @@ msgid "Directory already contains a Godot project." msgstr "Hakemisto sisältää jo Godot-projektin." #: editor/project_manager.cpp +msgid "New Game Project" +msgstr "Uusi peliprojekti" + +#: editor/project_manager.cpp msgid "Imported Project" msgstr "Tuotu projekti" @@ -7554,10 +9082,6 @@ msgid "Rename Project" msgstr "Nimetä projekti" #: editor/project_manager.cpp -msgid "New Game Project" -msgstr "Uusi peliprojekti" - -#: editor/project_manager.cpp msgid "Import Existing Project" msgstr "Tuo olemassaoleva projekti" @@ -7586,10 +9110,6 @@ msgid "Project Name:" msgstr "Projektin nimi:" #: editor/project_manager.cpp -msgid "Create folder" -msgstr "Luo kansio" - -#: editor/project_manager.cpp msgid "Project Path:" msgstr "Projektin polku:" @@ -7598,10 +9118,6 @@ msgid "Project Installation Path:" msgstr "Projektin asennuspolku:" #: editor/project_manager.cpp -msgid "Browse" -msgstr "Selaa" - -#: editor/project_manager.cpp msgid "Renderer:" msgstr "Renderöijä:" @@ -7655,6 +9171,7 @@ msgid "Are you sure to open more than one project?" msgstr "Haluatko varmasti avata useamman kuin yhden projektin?" #: editor/project_manager.cpp +#, fuzzy msgid "" "The following project settings file does not specify the version of Godot " "through which it was created.\n" @@ -7663,8 +9180,8 @@ msgid "" "\n" "If you proceed with opening it, it will be converted to Godot's current " "configuration file format.\n" -"Warning: You will not be able to open the project with previous versions of " -"the engine anymore." +"Warning: You won't be able to open the project with previous versions of the " +"engine anymore." msgstr "" "Seuraava projektin asetustiedosto ei määrittele Godotin versiota, jolla se " "on luotu.\n" @@ -7676,6 +9193,7 @@ msgstr "" "Varoitus: et voi avata projektia tämän jälkeen enää vanhemmilla versioilla." #: editor/project_manager.cpp +#, fuzzy msgid "" "The following project settings file was generated by an older engine " "version, and needs to be converted for this version:\n" @@ -7683,8 +9201,8 @@ msgid "" "%s\n" "\n" "Do you want to convert it?\n" -"Warning: You will not be able to open the project with previous versions of " -"the engine anymore." +"Warning: You won't be able to open the project with previous versions of the " +"engine anymore." msgstr "" "Seuraava projektin asetustiedosto on luotu vanhemmalla versiolla ja täytyy " "muuntaa tätä versiota varten:\n" @@ -7703,9 +9221,10 @@ msgstr "" "yhteensopivia tämän version kanssa." #: editor/project_manager.cpp +#, fuzzy msgid "" "Can't run project: no main scene defined.\n" -"Please edit the project and set the main scene in \"Project Settings\" under " +"Please edit the project and set the main scene in the Project Settings under " "the \"Application\" category." msgstr "" "Projektia ei voida suorittaa: pääskeneä ei ole määritetty.\n" @@ -7721,26 +9240,46 @@ msgstr "" "Muokkaa projektia käynnistääksesi uudelleentuonnin." #: editor/project_manager.cpp -msgid "Are you sure to run more than one project?" +#, fuzzy +msgid "Are you sure to run %d projects at once?" msgstr "Haluatko varmasti suorittaa usemman projektin?" #: editor/project_manager.cpp -msgid "Remove project from the list? (Folder contents will not be modified)" +#, fuzzy +msgid "" +"Remove %d projects from the list?\n" +"The project folders' contents won't be modified." +msgstr "Poista projekti listalta? (Kansion sisältöä ei muuteta)" + +#: editor/project_manager.cpp +#, fuzzy +msgid "" +"Remove this project from the list?\n" +"The project folder's contents won't be modified." msgstr "Poista projekti listalta? (Kansion sisältöä ei muuteta)" #: editor/project_manager.cpp +#, fuzzy +msgid "" +"Remove all missing projects from the list? (Folders contents will not be " +"modified)" +msgstr "Poista projekti listalta? (Kansion sisältöä ei muuteta)" + +#: editor/project_manager.cpp +#, fuzzy msgid "" "Language changed.\n" -"The UI will update next time the editor or project manager starts." +"The interface will update after restarting the editor or project manager." msgstr "" "Kieli vaihdettu.\n" "Muutokset astuvat voimaan kun editori tai projektinhallinta käynnistetään " "uudelleen." #: editor/project_manager.cpp +#, fuzzy msgid "" -"You are about the scan %s folders for existing Godot projects. Do you " -"confirm?" +"Are you sure to scan %s folders for existing Godot projects?\n" +"This could take a while." msgstr "Olet aikeissa etsiä hakemistosta %s Godot projekteja. Oletko varma?" #: editor/project_manager.cpp @@ -7764,6 +9303,11 @@ msgid "New Project" msgstr "Uusi projekti" #: editor/project_manager.cpp +#, fuzzy +msgid "Remove Missing" +msgstr "Poista piste" + +#: editor/project_manager.cpp msgid "Templates" msgstr "Mallit" @@ -7780,9 +9324,10 @@ msgid "Can't run project" msgstr "Projektia ei voida käynnistää" #: editor/project_manager.cpp +#, fuzzy msgid "" -"You don't currently have any projects.\n" -"Would you like to explore the official example projects in the Asset Library?" +"You currently don't have any projects.\n" +"Would you like to explore official example projects in the Asset Library?" msgstr "" "Sinulla ei ole tällä hetkellä yhtään projekteja.\n" "Haluaisitko selata virallisia malliprojekteja Asset-kirjastosta?" @@ -7812,7 +9357,8 @@ msgstr "" "'/', ':', '=', '\\' tai '\"'" #: editor/project_settings_editor.cpp -msgid "Action '%s' already exists!" +#, fuzzy +msgid "An action with the name '%s' already exists." msgstr "Tapahtuma '%s' on jo olemassa!" #: editor/project_settings_editor.cpp @@ -7968,10 +9514,6 @@ msgstr "" "'/', ':', '=', '\\' tai '\"'." #: editor/project_settings_editor.cpp -msgid "Already existing" -msgstr "On jo olemassa" - -#: editor/project_settings_editor.cpp msgid "Add Input Action" msgstr "Lisää syötetapahtuma" @@ -8036,7 +9578,8 @@ msgid "Override For..." msgstr "Ohita alustalle..." #: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp -msgid "Editor must be restarted for changes to take effect" +#, fuzzy +msgid "The editor must be restarted for changes to take effect." msgstr "Editori täytyy käynnistää uudelleen, jotta muutokset tulevat voimaan" #: editor/project_settings_editor.cpp @@ -8096,11 +9639,13 @@ msgid "Locales Filter" msgstr "Kielten suodatus" #: editor/project_settings_editor.cpp -msgid "Show all locales" +#, fuzzy +msgid "Show All Locales" msgstr "Näytä kaikki kielet" #: editor/project_settings_editor.cpp -msgid "Show only selected locales" +#, fuzzy +msgid "Show Selected Locales Only" msgstr "Näytä vain valitut kielet" #: editor/project_settings_editor.cpp @@ -8116,14 +9661,6 @@ msgid "AutoLoad" msgstr "Automaattilataus" #: editor/property_editor.cpp -msgid "Ease In" -msgstr "Kiihdytä alussa" - -#: editor/property_editor.cpp -msgid "Ease Out" -msgstr "Hidasta lopussa" - -#: editor/property_editor.cpp msgid "Zero" msgstr "Nolla" @@ -8196,7 +9733,8 @@ msgid "Suffix" msgstr "Pääte" #: editor/rename_dialog.cpp -msgid "Advanced options" +#, fuzzy +msgid "Advanced Options" msgstr "Edistyneet asetukset" #: editor/rename_dialog.cpp @@ -8460,8 +9998,9 @@ msgid "User Interface" msgstr "Käyttöliittymä" #: editor/scene_tree_dock.cpp -msgid "Custom Node" -msgstr "Mukautettu solmu" +#, fuzzy +msgid "Other Node" +msgstr "Poista solmu" #: editor/scene_tree_dock.cpp msgid "Can't operate on nodes from a foreign scene!" @@ -8504,7 +10043,8 @@ msgid "Clear Inheritance" msgstr "Poista perintä" #: editor/scene_tree_dock.cpp -msgid "Open documentation" +#, fuzzy +msgid "Open Documentation" msgstr "Avaa dokumentaatio" #: editor/scene_tree_dock.cpp @@ -8531,7 +10071,7 @@ msgstr "Yhdistä skenestä" msgid "Save Branch as Scene" msgstr "Tallenna haara skenenä" -#: editor/scene_tree_dock.cpp +#: editor/scene_tree_dock.cpp editor/script_editor_debugger.cpp msgid "Copy Node Path" msgstr "Kopioi solmun polku" @@ -8576,6 +10116,21 @@ msgid "Toggle Visible" msgstr "Aseta näkyvyys" #: editor/scene_tree_editor.cpp +#, fuzzy +msgid "Unlock Node" +msgstr "Valitse solmu" + +#: editor/scene_tree_editor.cpp +#, fuzzy +msgid "Button Group" +msgstr "Painike 7" + +#: editor/scene_tree_editor.cpp +#, fuzzy +msgid "(Connecting From)" +msgstr "Yhteysvirhe" + +#: editor/scene_tree_editor.cpp msgid "Node configuration warning:" msgstr "Solmun konfiguroinnin varoitus:" @@ -8603,8 +10158,9 @@ msgstr "" "Solmu kuuluu ryhmään.\n" "Napsauta näyttääksesi ryhmätelakan." -#: editor/scene_tree_editor.cpp editor/script_create_dialog.cpp -msgid "Open Script" +#: editor/scene_tree_editor.cpp +#, fuzzy +msgid "Open Script:" msgstr "Avaa skripti" #: editor/scene_tree_editor.cpp @@ -8656,71 +10212,83 @@ msgid "Select a Node" msgstr "Valitse solmu" #: editor/script_create_dialog.cpp -msgid "Error loading template '%s'" -msgstr "Virhe ladattaessa mallia '%s'" +#, fuzzy +msgid "Path is empty." +msgstr "Polku on tyhjä" #: editor/script_create_dialog.cpp -msgid "Error - Could not create script in filesystem." -msgstr "Virhe - Ei voitu luoda skriptiä tiedostojärjestelmään." +#, fuzzy +msgid "Filename is empty." +msgstr "Tiedostonimi on tyhjä" #: editor/script_create_dialog.cpp -msgid "Error loading script from %s" -msgstr "Virhe ladattaessa skripti %s:stä" +#, fuzzy +msgid "Path is not local." +msgstr "Polku ei ole paikallinen" #: editor/script_create_dialog.cpp -msgid "N/A" -msgstr "Ei mitään" +#, fuzzy +msgid "Invalid base path." +msgstr "Virheellinen kantapolku" #: editor/script_create_dialog.cpp -msgid "Open Script/Choose Location" -msgstr "Avaa skripti / Valitse sijainti" +#, fuzzy +msgid "A directory with the same name exists." +msgstr "Samanniminen hakemisto on jo olemassa" #: editor/script_create_dialog.cpp -msgid "Path is empty" -msgstr "Polku on tyhjä" +#, fuzzy +msgid "Invalid extension." +msgstr "Virheellinen laajennus" #: editor/script_create_dialog.cpp -msgid "Filename is empty" -msgstr "Tiedostonimi on tyhjä" +#, fuzzy +msgid "Wrong extension chosen." +msgstr "Valittu väärä tiedostopääte" #: editor/script_create_dialog.cpp -msgid "Path is not local" -msgstr "Polku ei ole paikallinen" +msgid "Error loading template '%s'" +msgstr "Virhe ladattaessa mallia '%s'" #: editor/script_create_dialog.cpp -msgid "Invalid base path" -msgstr "Virheellinen kantapolku" +msgid "Error - Could not create script in filesystem." +msgstr "Virhe - Ei voitu luoda skriptiä tiedostojärjestelmään." #: editor/script_create_dialog.cpp -msgid "Directory of the same name exists" -msgstr "Samanniminen hakemisto on jo olemassa" +msgid "Error loading script from %s" +msgstr "Virhe ladattaessa skripti %s:stä" #: editor/script_create_dialog.cpp -msgid "File exists, will be reused" -msgstr "Tiedosto on jo olemassa, käytetään uudelleen" +msgid "N/A" +msgstr "Ei mitään" #: editor/script_create_dialog.cpp -msgid "Invalid extension" -msgstr "Virheellinen laajennus" +#, fuzzy +msgid "Open Script / Choose Location" +msgstr "Avaa skripti / Valitse sijainti" #: editor/script_create_dialog.cpp -msgid "Wrong extension chosen" -msgstr "Valittu väärä tiedostopääte" +msgid "Open Script" +msgstr "Avaa skripti" #: editor/script_create_dialog.cpp -msgid "Invalid Path" -msgstr "Virheellinen polku" +#, fuzzy +msgid "File exists, it will be reused." +msgstr "Tiedosto on jo olemassa, käytetään uudelleen" #: editor/script_create_dialog.cpp -msgid "Invalid class name" +#, fuzzy +msgid "Invalid class name." msgstr "Virheellinen luokan nimi" #: editor/script_create_dialog.cpp -msgid "Invalid inherited parent name or path" +#, fuzzy +msgid "Invalid inherited parent name or path." msgstr "Virheellinen peritty isännän nimi tai polku" #: editor/script_create_dialog.cpp -msgid "Script valid" +#, fuzzy +msgid "Script is valid." msgstr "Skripti kelpaa" #: editor/script_create_dialog.cpp @@ -8728,15 +10296,18 @@ msgid "Allowed: a-z, A-Z, 0-9 and _" msgstr "Sallittu: a-z, A-Z, 0-9 ja _" #: editor/script_create_dialog.cpp -msgid "Built-in script (into scene file)" +#, fuzzy +msgid "Built-in script (into scene file)." msgstr "Sisäänrakennettu skripti (skenetiedostoon)" #: editor/script_create_dialog.cpp -msgid "Create new script file" +#, fuzzy +msgid "Will create a new script file." msgstr "Luo uusi skriptitiedosto" #: editor/script_create_dialog.cpp -msgid "Load existing script file" +#, fuzzy +msgid "Will load an existing script file." msgstr "Lataa olemassaoleva skriptitiedosto" #: editor/script_create_dialog.cpp @@ -8867,6 +10438,10 @@ msgstr "Juuren suora muokkaus:" msgid "Set From Tree" msgstr "Aseta puusta" +#: editor/script_editor_debugger.cpp +msgid "Export measures as CSV" +msgstr "" + #: editor/settings_config_dialog.cpp msgid "Erase Shortcut" msgstr "Poista pikanäppäin" @@ -8996,6 +10571,15 @@ msgid "GDNativeLibrary" msgstr "GDNativeLibrary" #: 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 "Poista päivitysanimaatio" + +#: modules/gdnative/gdnative_library_singleton_editor.cpp msgid "Library" msgstr "Kirjasto" @@ -9084,8 +10668,9 @@ msgid "GridMap Fill Selection" msgstr "Täytä valinta" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "GridMap Duplicate Selection" -msgstr "Kahdenna valinta" +#, fuzzy +msgid "GridMap Paste Selection" +msgstr "Poista valinta" #: modules/gridmap/grid_map_editor_plugin.cpp msgid "GridMap Paint" @@ -9152,18 +10737,6 @@ msgid "Cursor Clear Rotation" msgstr "Poista kohdistimen kierto" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Create Area" -msgstr "Luo alue" - -#: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Create Exterior Connector" -msgstr "Luo ulkoliitin" - -#: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Erase Area" -msgstr "Tyhjennä alue" - -#: modules/gridmap/grid_map_editor_plugin.cpp msgid "Clear Selection" msgstr "Tyhjennä valinta" @@ -9525,18 +11098,11 @@ msgid "Available Nodes:" msgstr "Saatavilla olevat solmut:" #: modules/visual_script/visual_script_editor.cpp -msgid "Select or create a function to edit graph" +#, fuzzy +msgid "Select or create a function to edit its graph." msgstr "Valitse tai luo funktio graafin muokkaamiseksi" #: modules/visual_script/visual_script_editor.cpp -msgid "Edit Signal Arguments:" -msgstr "Muokkaa signaalin argumentteja:" - -#: modules/visual_script/visual_script_editor.cpp -msgid "Edit Variable:" -msgstr "Muokkaa muuttujaa:" - -#: modules/visual_script/visual_script_editor.cpp msgid "Delete Selected" msgstr "Poista valitut" @@ -9667,6 +11233,19 @@ msgstr "" "Debug keystore ei ole määritettynä editorin asetuksissa eikä esiasetuksissa." #: platform/android/export/export.cpp +msgid "Custom build requires a valid Android SDK path in Editor Settings." +msgstr "" + +#: platform/android/export/export.cpp +msgid "Invalid Android SDK path for custom build in Editor Settings." +msgstr "" + +#: platform/android/export/export.cpp +msgid "" +"Android project is not installed for compiling. Install from Editor menu." +msgstr "" + +#: platform/android/export/export.cpp msgid "Invalid public key for APK expansion." msgstr "Virheellinen julkinen avain APK-laajennosta varten." @@ -9674,6 +11253,34 @@ msgstr "Virheellinen julkinen avain APK-laajennosta varten." msgid "Invalid package name:" msgstr "Virheellinen paketin nimi:" +#: platform/android/export/export.cpp +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 "" +"Android build version mismatch:\n" +" Template installed: %s\n" +" Godot Version: %s\n" +"Please reinstall Android build template from 'Project' menu." +msgstr "" + +#: platform/android/export/export.cpp +msgid "Building Android Project (gradle)" +msgstr "" + +#: 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 "" + +#: platform/android/export/export.cpp +msgid "No build apk generated at: " +msgstr "" + #: platform/iphone/export/export.cpp msgid "Identifier is missing." msgstr "Tunniste puuttuu." @@ -9972,31 +11579,36 @@ msgid "ARVRCamera must have an ARVROrigin node as its parent" msgstr "ARVRCamera solmun isännän täytyy olla ARVROrigin solmu" #: scene/3d/arvr_nodes.cpp -msgid "ARVRController must have an ARVROrigin node as its parent" +#, fuzzy +msgid "ARVRController must have an ARVROrigin node as its parent." msgstr "ARVRController solmun isännän täytyy olla ARVROrigin solmu" #: scene/3d/arvr_nodes.cpp +#, fuzzy msgid "" -"The controller id must not be 0 or this controller will not be bound to an " -"actual controller" +"The controller ID must not be 0 or this controller won't be bound to an " +"actual controller." msgstr "" "Ohjaimen tunnus ei saa olla 0, tai tämä ohjain ei ole sidottu oikeaan " "ohjaimeen" #: scene/3d/arvr_nodes.cpp -msgid "ARVRAnchor must have an ARVROrigin node as its parent" +#, fuzzy +msgid "ARVRAnchor must have an ARVROrigin node as its parent." msgstr "ARVRAnchor solmun isännän täytyy olla ARVROrigin solmu" #: scene/3d/arvr_nodes.cpp +#, fuzzy msgid "" -"The anchor id must not be 0 or this anchor will not be bound to an actual " -"anchor" +"The anchor ID must not be 0 or this anchor won't be bound to an actual " +"anchor." msgstr "" "Ankkurin tunnus ei saa olla 0, tai tämä ankkuri ei ole sidottu oikeaan " "ankkuriin" #: scene/3d/arvr_nodes.cpp -msgid "ARVROrigin requires an ARVRCamera child node" +#, fuzzy +msgid "ARVROrigin requires an ARVRCamera child node." msgstr "ARVROrigin solmu tarvitsee ARVRCamera alisolmun" #: scene/3d/baked_lightmap.cpp @@ -10079,9 +11691,10 @@ msgid "Nothing is visible because no mesh has been assigned." msgstr "Mitään ei näy, koska meshiä ei ole asetettu." #: scene/3d/cpu_particles.cpp +#, fuzzy msgid "" -"CPUParticles animation requires the usage of a SpatialMaterial with " -"\"Billboard Particles\" enabled." +"CPUParticles animation requires the usage of a SpatialMaterial whose " +"Billboard Mode is set to \"Particle Billboard\"." msgstr "" "CPUParticles animaatio edellyttää SpatialMaterial käyttöä niin että " "\"Billboard Particles\" on kytketty päälle." @@ -10130,9 +11743,10 @@ msgstr "" "passes)." #: scene/3d/particles.cpp +#, fuzzy msgid "" -"Particles animation requires the usage of a SpatialMaterial with \"Billboard " -"Particles\" enabled." +"Particles animation requires the usage of a SpatialMaterial whose Billboard " +"Mode is set to \"Particle Billboard\"." msgstr "" "Particles animaatio edellyttää SpatialMaterial käyttöä niin että \"Billboard " "Particles\" on kytketty päälle." @@ -10164,7 +11778,8 @@ msgid "Path property must point to a valid Spatial node to work." msgstr "Polkuominaisuuden täytyy osoittaa Spatial solmuun toimiakseen." #: scene/3d/soft_body.cpp -msgid "This body will be ignored until you set a mesh" +#, fuzzy +msgid "This body will be ignored until you set a mesh." msgstr "Tämä kappale sivuutetaan, kunnes asetat meshin" #: scene/3d/soft_body.cpp @@ -10270,10 +11885,11 @@ msgid "Add current color as a preset." msgstr "Lisää nykyinen väri esiasetukseksi." #: scene/gui/container.cpp +#, fuzzy msgid "" "Container by itself serves no purpose unless a script configures it's " "children placement behavior.\n" -"If you dont't intend to add a script, then please use a plain 'Control' node " +"If you don't intend to add a script, then please use a plain 'Control' node " "instead." msgstr "" "Säilöllä ei ole itsessään mitään merkitystä ellei jokin skripti säädä sen " @@ -10289,10 +11905,6 @@ msgstr "Huomio!" msgid "Please Confirm..." msgstr "Ole hyvä ja vahvista..." -#: scene/gui/file_dialog.cpp -msgid "Go to parent folder." -msgstr "Siirry yläkansioon." - #: scene/gui/popup.cpp msgid "" "Popups will hide by default unless you call popup() or any of the popup*() " @@ -10377,6 +11989,76 @@ msgstr "Sijoitus uniformille." msgid "Varyings can only be assigned in vertex function." msgstr "Varying tyypin voi sijoittaa vain vertex-funktiossa." +#: servers/visual/shader_language.cpp +msgid "Constants cannot be modified." +msgstr "" + +#~ msgid "Path to Node:" +#~ msgstr "Polku solmuun:" + +#~ msgid "Delete selected files?" +#~ msgstr "Poista valitut tiedostot?" + +#~ msgid "There is no 'res://default_bus_layout.tres' file." +#~ msgstr "Tiedostoa 'res://default_bus_layout.tres' ei löytynyt." + +#~ 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ä" + +#~ msgid "Previous Directory" +#~ msgstr "Edellinen hakemisto" + +#~ msgid "Next Directory" +#~ msgstr "Seuraava hakemisto" + +#~ msgid "Ease in" +#~ msgstr "Kiihdytä alussa" + +#~ msgid "Ease out" +#~ msgstr "Hidasta lopussa" + +#~ msgid "Create Convex Static Body" +#~ msgstr "Luo konveksi staattinen kappale" + +#~ msgid "CheckBox Radio1" +#~ msgstr "Valintaruudun valinta 1" + +#~ msgid "CheckBox Radio2" +#~ msgstr "Valintaruudun valinta 2" + +#~ msgid "Create folder" +#~ msgstr "Luo kansio" + +#~ msgid "Already existing" +#~ msgstr "On jo olemassa" + +#~ msgid "Custom Node" +#~ msgstr "Mukautettu solmu" + +#~ msgid "Invalid Path" +#~ msgstr "Virheellinen polku" + +#~ msgid "GridMap Duplicate Selection" +#~ msgstr "Kahdenna valinta" + +#~ msgid "Create Area" +#~ msgstr "Luo alue" + +#~ msgid "Create Exterior Connector" +#~ msgstr "Luo ulkoliitin" + +#~ msgid "Edit Signal Arguments:" +#~ msgstr "Muokkaa signaalin argumentteja:" + +#~ msgid "Edit Variable:" +#~ msgstr "Muokkaa muuttujaa:" + #~ msgid "Snap (s): " #~ msgstr "Askellus (s): " @@ -10495,9 +12177,6 @@ msgstr "Varying tyypin voi sijoittaa vain vertex-funktiossa." #~ msgid "Class List:" #~ msgstr "Luokkaluettelo:" -#~ msgid "Search Classes" -#~ msgstr "Etsi luokkia" - #~ msgid "Public Methods" #~ msgstr "Julkiset metodit" @@ -10574,9 +12253,6 @@ msgstr "Varying tyypin voi sijoittaa vain vertex-funktiossa." #~ msgid "Error:" #~ msgstr "Virhe:" -#~ msgid "Source:" -#~ msgstr "Lähde:" - #~ msgid "Function:" #~ msgstr "Funktio:" @@ -10598,21 +12274,9 @@ msgstr "Varying tyypin voi sijoittaa vain vertex-funktiossa." #~ msgid "Get" #~ msgstr "Get" -#~ msgid "Change Scalar Constant" -#~ msgstr "Muuta skalaarivakiota" - -#~ msgid "Change Vec Constant" -#~ msgstr "Muuta vektorivakiota" - #~ msgid "Change RGB Constant" #~ msgstr "Muuta RGB-värivakiota" -#~ msgid "Change Scalar Operator" -#~ msgstr "Muuta skalaarioperaattoria" - -#~ msgid "Change Vec Operator" -#~ msgstr "Muuta vektorioperaattoria" - #~ msgid "Change Vec Scalar Operator" #~ msgstr "Muuta vektori- ja skalaarioperaattoria" @@ -10622,15 +12286,9 @@ msgstr "Varying tyypin voi sijoittaa vain vertex-funktiossa." #~ msgid "Toggle Rot Only" #~ msgstr "Vain kierto" -#~ msgid "Change Scalar Function" -#~ msgstr "Muuta skalaarifunktiota" - #~ msgid "Change Vec Function" #~ msgstr "Muuta vektorifunktiota" -#~ msgid "Change Scalar Uniform" -#~ msgstr "Muuta skalaariuniformia" - #~ msgid "Change Vec Uniform" #~ msgstr "Muuta vektoriuniformia" @@ -10643,9 +12301,6 @@ msgstr "Varying tyypin voi sijoittaa vain vertex-funktiossa." #~ msgid "Change XForm Uniform" #~ msgstr "Muuta XForm-uniformia" -#~ msgid "Change Texture Uniform" -#~ msgstr "Muuta tekstuuriuniformia" - #~ msgid "Change Cubemap Uniform" #~ msgstr "Muuta Cubemap-uniformia" @@ -10664,9 +12319,6 @@ msgstr "Varying tyypin voi sijoittaa vain vertex-funktiossa." #~ msgid "Modify Curve Map" #~ msgstr "Muokkaa käyräkarttaa" -#~ msgid "Change Input Name" -#~ msgstr "Vaihda syötteen nimi" - #~ msgid "Connect Graph Nodes" #~ msgstr "Yhdistä graafin solmut" @@ -10694,9 +12346,6 @@ msgstr "Varying tyypin voi sijoittaa vain vertex-funktiossa." #~ msgid "Add Shader Graph Node" #~ msgstr "Lisää sävytingraafin solmu" -#~ msgid "Disabled" -#~ msgstr "Poistettu käytöstä" - #~ msgid "Move Anim Track Up" #~ msgstr "Siirrä animaatioraita ylös" @@ -10874,15 +12523,9 @@ msgstr "Varying tyypin voi sijoittaa vain vertex-funktiossa." #~ msgid "Item name or ID:" #~ msgstr "Nimi tai ID:" -#~ msgid "Autotiles" -#~ msgstr "Automaattiruudutus" - #~ msgid "Export templates for this platform are missing/corrupted: " #~ msgstr "Vientimallit tälle alustalle puuttuvat tai ovat viallisia: " -#~ msgid "Button 7" -#~ msgstr "Painike 7" - #~ msgid "Button 8" #~ msgstr "Painike 8" @@ -11100,9 +12743,6 @@ msgstr "Varying tyypin voi sijoittaa vain vertex-funktiossa." #~ msgid "Target path must exist." #~ msgstr "Kohdepolku täytyy olla olemassa." -#~ msgid "Target Path:" -#~ msgstr "Kohdepolku:" - #~ msgid "Accept" #~ msgstr "Hyväksy" diff --git a/editor/translations/fil.po b/editor/translations/fil.po index aece9febdd..0e8ec31005 100644 --- a/editor/translations/fil.po +++ b/editor/translations/fil.po @@ -70,6 +70,14 @@ msgstr "" msgid "Mirror" msgstr "" +#: editor/animation_bezier_editor.cpp editor/editor_profiler.cpp +msgid "Time:" +msgstr "" + +#: editor/animation_bezier_editor.cpp +msgid "Value:" +msgstr "" + #: editor/animation_bezier_editor.cpp msgid "Insert Key Here" msgstr "" @@ -152,11 +160,15 @@ msgid "Animation Playback Track" msgstr "" #: editor/animation_track_editor.cpp -msgid "Add Track" +msgid "Animation length (frames)" msgstr "" #: editor/animation_track_editor.cpp -msgid "Animation Length Time (seconds)" +msgid "Animation length (seconds)" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Add Track" msgstr "" #: editor/animation_track_editor.cpp @@ -283,11 +295,13 @@ msgid "Create %d NEW tracks and insert keys?" msgstr "" #: editor/animation_track_editor.cpp editor/create_dialog.cpp -#: editor/editor_audio_buses.cpp editor/editor_plugin_settings.cpp -#: editor/plugin_config_dialog.cpp +#: editor/editor_audio_buses.cpp editor/editor_feature_profile.cpp +#: editor/editor_plugin_settings.cpp editor/plugin_config_dialog.cpp #: editor/plugins/abstract_polygon_2d_editor.cpp #: editor/plugins/mesh_instance_editor_plugin.cpp -#: editor/plugins/particles_editor_plugin.cpp editor/script_create_dialog.cpp +#: editor/plugins/particles_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_create_dialog.cpp msgid "Create" msgstr "" @@ -397,6 +411,23 @@ msgid "" msgstr "" #: editor/animation_track_editor.cpp +msgid "" +"This animation belongs to an imported scene, so changes to imported tracks " +"will not be saved.\n" +"\n" +"To enable the ability to add custom tracks, navigate to the scene's import " +"settings and set\n" +"\"Animation > Storage\" to \"Files\", enable \"Animation > Keep Custom Tracks" +"\", then re-import.\n" +"Alternatively, use an import preset that imports animations to separate " +"files." +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Warning: Editing imported animation" +msgstr "" + +#: editor/animation_track_editor.cpp msgid "Only show tracks from nodes selected in tree." msgstr "" @@ -529,7 +560,8 @@ msgstr "" msgid "Select tracks to copy:" msgstr "" -#: editor/animation_track_editor.cpp editor/editor_properties.cpp +#: editor/animation_track_editor.cpp editor/editor_log.cpp +#: editor/editor_properties.cpp #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp @@ -597,6 +629,11 @@ msgstr "" msgid "Selection Only" msgstr "" +#: editor/code_editor.cpp editor/plugins/script_text_editor.cpp +#: editor/plugins/text_editor.cpp +msgid "Standard" +msgstr "" + #: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/texture_region_editor_plugin.cpp #: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp @@ -622,17 +659,29 @@ msgid "Line and column numbers." msgstr "" #: editor/connections_dialog.cpp -msgid "Method in target Node must be specified!" +msgid "Method in target node must be specified." msgstr "" #: editor/connections_dialog.cpp msgid "" -"Target method not found! Specify a valid method or attach a script to target " -"Node." +"Target method not found. Specify a valid method or attach a script to the " +"target node." +msgstr "" + +#: editor/connections_dialog.cpp +msgid "Connect to Node:" +msgstr "" + +#: editor/connections_dialog.cpp +msgid "Connect to Script:" +msgstr "" + +#: editor/connections_dialog.cpp +msgid "From Signal:" msgstr "" #: editor/connections_dialog.cpp -msgid "Connect To Node:" +msgid "Scene does not contain any script." msgstr "" #: editor/connections_dialog.cpp editor/editor_autoload_settings.cpp @@ -642,10 +691,12 @@ msgid "Add" msgstr "" #: editor/connections_dialog.cpp editor/dependency_editor.cpp -#: editor/groups_editor.cpp editor/plugins/animation_player_editor_plugin.cpp +#: editor/editor_feature_profile.cpp editor/groups_editor.cpp +#: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp #: editor/plugins/resource_preloader_editor_plugin.cpp -#: editor/plugins/theme_editor_plugin.cpp editor/project_manager.cpp +#: editor/plugins/theme_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_manager.cpp #: editor/project_settings_editor.cpp msgid "Remove" msgstr "" @@ -659,21 +710,30 @@ msgid "Extra Call Arguments:" msgstr "" #: editor/connections_dialog.cpp -msgid "Path to Node:" +msgid "Advanced" msgstr "" #: editor/connections_dialog.cpp -msgid "Make Function" +msgid "Deferred" msgstr "" #: editor/connections_dialog.cpp -msgid "Deferred" +msgid "" +"Defers the signal, storing it in a queue and only firing it at idle time." msgstr "" #: editor/connections_dialog.cpp msgid "Oneshot" msgstr "" +#: editor/connections_dialog.cpp +msgid "Disconnects the signal after its first emission." +msgstr "" + +#: editor/connections_dialog.cpp +msgid "Cannot connect signal" +msgstr "" + #: editor/connections_dialog.cpp editor/dependency_editor.cpp #: editor/export_template_manager.cpp editor/groups_editor.cpp #: editor/plugins/animation_player_editor_plugin.cpp @@ -714,11 +774,11 @@ msgid "Disconnect" msgstr "" #: editor/connections_dialog.cpp -msgid "Connect Signal: " +msgid "Connect a Signal to a Method" msgstr "" #: editor/connections_dialog.cpp -msgid "Edit Connection: " +msgid "Edit Connection:" msgstr "" #: editor/connections_dialog.cpp @@ -750,7 +810,6 @@ msgid "Change %s Type" msgstr "" #: editor/create_dialog.cpp editor/project_settings_editor.cpp -#: modules/visual_script/visual_script_editor.cpp msgid "Change" msgstr "" @@ -781,7 +840,8 @@ msgid "Matches:" msgstr "" #: editor/create_dialog.cpp editor/plugin_config_dialog.cpp -#: editor/plugins/asset_library_editor_plugin.cpp editor/property_selector.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/property_selector.cpp #: modules/visual_script/visual_script_property_selector.cpp msgid "Description:" msgstr "" @@ -797,13 +857,13 @@ msgstr "" #: editor/dependency_editor.cpp msgid "" "Scene '%s' is currently being edited.\n" -"Changes will not take effect unless reloaded." +"Changes will only take effect when reloaded." msgstr "" #: editor/dependency_editor.cpp msgid "" "Resource '%s' is in use.\n" -"Changes will take effect when reloaded." +"Changes will only take effect when reloaded." msgstr "" #: editor/dependency_editor.cpp @@ -894,21 +954,13 @@ msgid "Permanently delete %d item(s)? (No undo!)" msgstr "" #: editor/dependency_editor.cpp -msgid "Owns" -msgstr "" - -#: editor/dependency_editor.cpp -msgid "Resources Without Explicit Ownership:" +msgid "Show Dependencies" msgstr "" #: editor/dependency_editor.cpp editor/editor_node.cpp msgid "Orphan Resource Explorer" msgstr "" -#: editor/dependency_editor.cpp -msgid "Delete selected files?" -msgstr "" - #: editor/dependency_editor.cpp editor/editor_audio_buses.cpp #: editor/editor_file_dialog.cpp editor/editor_node.cpp #: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp @@ -917,6 +969,14 @@ msgstr "" msgid "Delete" msgstr "" +#: editor/dependency_editor.cpp +msgid "Owns" +msgstr "" + +#: editor/dependency_editor.cpp +msgid "Resources Without Explicit Ownership:" +msgstr "" + #: editor/dictionary_property_edit.cpp msgid "Change Dictionary Key" msgstr "" @@ -1026,7 +1086,7 @@ msgstr "" msgid "Success!" msgstr "" -#: editor/editor_asset_installer.cpp +#: editor/editor_asset_installer.cpp editor/editor_node.cpp #: editor/plugins/asset_library_editor_plugin.cpp msgid "Install" msgstr "" @@ -1153,7 +1213,11 @@ msgid "Open Audio Bus Layout" msgstr "" #: editor/editor_audio_buses.cpp -msgid "There is no 'res://default_bus_layout.tres' file." +msgid "There is no '%s' file." +msgstr "" + +#: editor/editor_audio_buses.cpp editor/plugins/canvas_item_editor_plugin.cpp +msgid "Layout" msgstr "" #: editor/editor_audio_buses.cpp @@ -1207,15 +1271,19 @@ msgid "Valid characters:" msgstr "" #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing engine class name." +msgid "Must not collide with an existing engine class name." msgstr "" #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing buit-in type name." +msgid "Must not collide with an existing buit-in type name." msgstr "" #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing global constant name." +msgid "Must not collide with an existing global constant name." +msgstr "" + +#: editor/editor_autoload_settings.cpp +msgid "Keyword cannot be used as an autoload name." msgstr "" #: editor/editor_autoload_settings.cpp @@ -1246,11 +1314,11 @@ msgstr "" msgid "Rearrange Autoloads" msgstr "" -#: editor/editor_autoload_settings.cpp -msgid "Invalid Path." +#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp +msgid "Invalid path." msgstr "" -#: editor/editor_autoload_settings.cpp +#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp msgid "File does not exist." msgstr "" @@ -1301,7 +1369,7 @@ msgid "[unsaved]" msgstr "" #: editor/editor_dir_dialog.cpp -msgid "Please select a base directory first" +msgid "Please select a base directory first." msgstr "" #: editor/editor_dir_dialog.cpp @@ -1309,7 +1377,8 @@ msgid "Choose a Directory" msgstr "" #: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp -#: editor/filesystem_dock.cpp scene/gui/file_dialog.cpp +#: editor/filesystem_dock.cpp editor/project_manager.cpp +#: scene/gui/file_dialog.cpp msgid "Create Folder" msgstr "" @@ -1377,6 +1446,151 @@ msgstr "" msgid "Template file not found:" msgstr "" +#: editor/editor_feature_profile.cpp +msgid "3D Editor" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Script Editor" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Asset Library" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Scene Tree Editing" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Import Dock" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Node Dock" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Filesystem Dock" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Erase profile '%s'? (no undo)" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Profile must be a valid filename and must not contain '.'" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Profile with this name already exists." +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "(Editor Disabled, Properties Disabled)" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "(Properties Disabled)" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "(Editor Disabled)" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Class Options:" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Enable Contextual Editor" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Enabled Properties:" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Enabled Features:" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Enabled Classes:" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "File '%s' format is invalid, import aborted." +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "" +"Profile '%s' already exists. Remote it first before importing, import " +"aborted." +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Error saving profile to path: '%s'." +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Unset" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Current Profile" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Make Current" +msgstr "" + +#: editor/editor_feature_profile.cpp +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "New" +msgstr "" + +#: editor/editor_feature_profile.cpp editor/editor_node.cpp +#: editor/plugins/asset_library_editor_plugin.cpp editor/project_manager.cpp +msgid "Import" +msgstr "" + +#: editor/editor_feature_profile.cpp editor/editor_node.cpp +#: editor/project_export.cpp +msgid "Export" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Available Profiles" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Enabled Classes" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Class Options" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "New profile name:" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Erase Profile" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Import Profile(s)" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Export Profile" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Manage Editor Feature Profiles" +msgstr "" + #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Select Current Folder" msgstr "" @@ -1397,8 +1611,8 @@ msgstr "" msgid "Open in File Manager" msgstr "" -#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp -#: editor/project_manager.cpp +#: editor/editor_file_dialog.cpp editor/editor_node.cpp +#: editor/filesystem_dock.cpp editor/project_manager.cpp msgid "Show in File Manager" msgstr "" @@ -1457,7 +1671,7 @@ msgstr "" msgid "Go Up" msgstr "" -#: editor/editor_file_dialog.cpp +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Toggle Hidden Files" msgstr "" @@ -1489,14 +1703,18 @@ msgstr "" msgid "Next Folder" msgstr "" -#: editor/editor_file_dialog.cpp -msgid "Go to parent folder" +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp +msgid "Go to parent folder." msgstr "" #: editor/editor_file_dialog.cpp msgid "(Un)favorite current folder." msgstr "" +#: editor/editor_file_dialog.cpp +msgid "Toggle visibility of hidden files." +msgstr "" + #: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp msgid "View items as a grid of thumbnails." msgstr "" @@ -1511,6 +1729,7 @@ msgstr "" #: editor/editor_file_dialog.cpp editor/plugins/sprite_editor_plugin.cpp #: editor/plugins/style_box_editor_plugin.cpp +#: editor/plugins/theme_editor_plugin.cpp msgid "Preview:" msgstr "" @@ -1527,6 +1746,12 @@ msgid "ScanSources" msgstr "" #: editor/editor_file_system.cpp +msgid "" +"There are multiple importers for different types pointing to file %s, import " +"aborted" +msgstr "" + +#: editor/editor_file_system.cpp msgid "(Re)Importing Assets" msgstr "" @@ -1702,6 +1927,10 @@ msgstr "" msgid "Output:" msgstr "" +#: editor/editor_log.cpp editor/plugins/tile_map_editor_plugin.cpp +msgid "Copy Selection" +msgstr "" + #: editor/editor_log.cpp editor/editor_profiler.cpp #: editor/editor_properties.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp @@ -1849,7 +2078,7 @@ msgstr "" #: editor/editor_node.cpp msgid "" "This resource belongs to a scene that was instanced or inherited.\n" -"Changes to it will not be kept when saving the current scene." +"Changes to it won't be kept when saving the current scene." msgstr "" #: editor/editor_node.cpp @@ -1860,7 +2089,7 @@ msgstr "" #: editor/editor_node.cpp msgid "" -"This scene was imported, so changes to it will not be kept.\n" +"This scene was imported, so changes to it won't be kept.\n" "Instancing it or inheriting will allow making changes to it.\n" "Please read the documentation relevant to importing scenes to better " "understand this workflow." @@ -1868,7 +2097,7 @@ msgstr "" #: editor/editor_node.cpp msgid "" -"This is a remote object so changes to it will not be kept.\n" +"This is a remote object, so changes to it won't be kept.\n" "Please read the documentation relevant to debugging to better understand " "this workflow." msgstr "" @@ -1878,27 +2107,6 @@ msgid "There is no defined scene to run." msgstr "" #: editor/editor_node.cpp -msgid "" -"No main scene has ever been defined, select one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" - -#: editor/editor_node.cpp -msgid "" -"Selected scene '%s' does not exist, select a valid one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" - -#: editor/editor_node.cpp -msgid "" -"Selected scene '%s' is not a scene file, select a valid one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" - -#: editor/editor_node.cpp msgid "Current scene was never saved, please save it prior to running." msgstr "" @@ -1906,7 +2114,7 @@ msgstr "" msgid "Could not start subprocess!" msgstr "" -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/filesystem_dock.cpp msgid "Open Scene" msgstr "" @@ -1915,6 +2123,10 @@ msgid "Open Base Scene" msgstr "" #: editor/editor_node.cpp +msgid "Quick Open..." +msgstr "" + +#: editor/editor_node.cpp msgid "Quick Open Scene..." msgstr "" @@ -2076,6 +2288,27 @@ msgid "Clear Recent Scenes" msgstr "" #: editor/editor_node.cpp +msgid "" +"No main scene has ever been defined, select one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"Selected scene '%s' does not exist, select a valid one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"Selected scene '%s' is not a scene file, select a valid one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" + +#: editor/editor_node.cpp msgid "Save Layout" msgstr "" @@ -2101,6 +2334,18 @@ msgstr "" msgid "Close Tab" msgstr "" +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +msgid "Close Other Tabs" +msgstr "" + +#: editor/editor_node.cpp +msgid "Close Tabs to the Right" +msgstr "" + +#: editor/editor_node.cpp +msgid "Close All Tabs" +msgstr "" + #: editor/editor_node.cpp msgid "Switch Scene Tab" msgstr "" @@ -2223,10 +2468,6 @@ msgstr "" msgid "Project Settings" msgstr "" -#: editor/editor_node.cpp editor/project_export.cpp -msgid "Export" -msgstr "" - #: editor/editor_node.cpp editor/plugins/tile_set_editor_plugin.cpp msgid "Tools" msgstr "" @@ -2236,6 +2477,10 @@ msgid "Open Project Data Folder" msgstr "" #: editor/editor_node.cpp +msgid "Install Android Build Template" +msgstr "" + +#: editor/editor_node.cpp msgid "Quit to Project List" msgstr "" @@ -2340,6 +2585,10 @@ msgstr "" msgid "Open Editor Settings Folder" msgstr "" +#: editor/editor_node.cpp +msgid "Manage Editor Features" +msgstr "" + #: editor/editor_node.cpp editor/project_export.cpp msgid "Manage Export Templates" msgstr "" @@ -2352,6 +2601,7 @@ msgstr "" #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp #: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp #: editor/project_settings_editor.cpp editor/rename_dialog.cpp msgid "Search" msgstr "" @@ -2441,11 +2691,6 @@ msgstr "" msgid "Disable Update Spinner" msgstr "" -#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp -#: editor/project_manager.cpp -msgid "Import" -msgstr "" - #: editor/editor_node.cpp msgid "FileSystem" msgstr "" @@ -2471,6 +2716,27 @@ msgid "Don't Save" msgstr "" #: editor/editor_node.cpp +msgid "Android build template is missing, please install relevant templates." +msgstr "" + +#: editor/editor_node.cpp +msgid "Manage Templates" +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"This will install the Android project for custom builds.\n" +"Note that, in order to use it, it needs to be enabled per export preset." +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"Android build template is already installed and it won't be overwritten.\n" +"Remove the \"build\" directory manually before attempting this operation " +"again." +msgstr "" + +#: editor/editor_node.cpp msgid "Import Templates From ZIP File" msgstr "" @@ -2593,10 +2859,6 @@ msgid "Physics Frame %" msgstr "" #: editor/editor_profiler.cpp -msgid "Time:" -msgstr "" - -#: editor/editor_profiler.cpp msgid "Inclusive" msgstr "" @@ -2731,10 +2993,6 @@ msgid "Remove Item" msgstr "" #: editor/editor_run_native.cpp -msgid "Select device from the list" -msgstr "" - -#: editor/editor_run_native.cpp msgid "" "No runnable export preset found for this platform.\n" "Please add a runnable preset in the export menu." @@ -2768,6 +3026,10 @@ msgstr "" msgid "Select Node(s) to Import" msgstr "" +#: editor/editor_sub_scene.cpp editor/project_manager.cpp +msgid "Browse" +msgstr "" + #: editor/editor_sub_scene.cpp msgid "Scene Path:" msgstr "" @@ -2930,6 +3192,10 @@ msgid "SSL Handshake Error" msgstr "" #: editor/export_template_manager.cpp +msgid "Uncompressing Android Build Sources" +msgstr "" + +#: editor/export_template_manager.cpp msgid "Current Version:" msgstr "" @@ -2946,7 +3212,7 @@ msgid "Remove Template" msgstr "" #: editor/export_template_manager.cpp -msgid "Select template file" +msgid "Select Template File" msgstr "" #: editor/export_template_manager.cpp @@ -3002,7 +3268,7 @@ msgid "No name provided." msgstr "" #: editor/filesystem_dock.cpp -msgid "Provided name contains invalid characters" +msgid "Provided name contains invalid characters." msgstr "" #: editor/filesystem_dock.cpp @@ -3030,7 +3296,11 @@ msgid "Duplicating folder:" msgstr "" #: editor/filesystem_dock.cpp -msgid "Open Scene(s)" +msgid "New Inherited Scene" +msgstr "" + +#: editor/filesystem_dock.cpp +msgid "Open Scenes" msgstr "" #: editor/filesystem_dock.cpp @@ -3038,11 +3308,11 @@ msgid "Instance" msgstr "" #: editor/filesystem_dock.cpp -msgid "Add to favorites" +msgid "Add to Favorites" msgstr "" #: editor/filesystem_dock.cpp -msgid "Remove from favorites" +msgid "Remove from Favorites" msgstr "" #: editor/filesystem_dock.cpp @@ -3073,11 +3343,13 @@ msgstr "" msgid "New Resource..." msgstr "" -#: editor/filesystem_dock.cpp editor/script_editor_debugger.cpp +#: editor/filesystem_dock.cpp editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_editor_debugger.cpp msgid "Expand All" msgstr "" -#: editor/filesystem_dock.cpp editor/script_editor_debugger.cpp +#: editor/filesystem_dock.cpp editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_editor_debugger.cpp msgid "Collapse All" msgstr "" @@ -3089,11 +3361,11 @@ msgid "Rename" msgstr "" #: editor/filesystem_dock.cpp -msgid "Previous Directory" +msgid "Previous Folder/File" msgstr "" #: editor/filesystem_dock.cpp -msgid "Next Directory" +msgid "Next Folder/File" msgstr "" #: editor/filesystem_dock.cpp @@ -3101,7 +3373,7 @@ msgid "Re-Scan Filesystem" msgstr "" #: editor/filesystem_dock.cpp -msgid "Toggle split mode" +msgid "Toggle Split Mode" msgstr "" #: editor/filesystem_dock.cpp @@ -3130,7 +3402,7 @@ msgstr "" msgid "Create Script" msgstr "" -#: editor/find_in_files.cpp +#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp msgid "Find in Files" msgstr "" @@ -3146,6 +3418,12 @@ msgstr "" msgid "Filters:" msgstr "" +#: editor/find_in_files.cpp +msgid "" +"Include the files with the following extensions. Add or remove them in " +"ProjectSettings." +msgstr "" + #: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp msgid "Find..." @@ -3574,7 +3852,7 @@ msgid "Open Animation Node" msgstr "" #: editor/plugins/animation_blend_space_2d_editor.cpp -msgid "Triangle already exists" +msgid "Triangle already exists." msgstr "" #: editor/plugins/animation_blend_space_2d_editor.cpp @@ -3649,7 +3927,6 @@ msgid "Node Moved" msgstr "" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Unable to connect, port may be in use or connection may be invalid." msgstr "" @@ -3716,7 +3993,7 @@ msgid "Edit Filtered Tracks:" msgstr "" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -msgid "Enable filtering" +msgid "Enable Filtering" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp @@ -3831,10 +4108,6 @@ msgid "Animation" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "New" -msgstr "" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Edit Transitions..." msgstr "" @@ -3851,11 +4124,11 @@ msgid "Autoplay on Load" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Onion Skinning" +msgid "Enable Onion Skinning" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Enable Onion Skinning" +msgid "Onion Skinning Options" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp @@ -4395,13 +4668,19 @@ msgid "Move CanvasItem" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"Children of containers have their anchors and margins values overridden by " +"their parent." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Presets for the anchors and margins values of a Control node." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "" -"Children of containers have their anchors and margins values overridden by " -"their parent." +"When active, moving Control nodes changes their anchors instead of their " +"margins." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4417,10 +4696,46 @@ msgid "Change Anchors" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Lock Selected" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Unlock Selected" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Group Selected" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Ungroup Selected" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Paste Pose" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Create Custom Bone(s) from Node(s)" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Clear Bones" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Make IK Chain" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Clear IK Chain" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "" "Warning: Children of a container get their position and size determined only " "by their parent." @@ -4492,7 +4807,7 @@ msgid "Snapping Options" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to grid" +msgid "Snap to Grid" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4513,31 +4828,31 @@ msgid "Use Pixel Snap" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Smart snapping" +msgid "Smart Snapping" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to parent" +msgid "Snap to Parent" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node anchor" +msgid "Snap to Node Anchor" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node sides" +msgid "Snap to Node Sides" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node center" +msgid "Snap to Node Center" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to other nodes" +msgid "Snap to Other Nodes" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to guides" +msgid "Snap to Guides" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4551,10 +4866,12 @@ msgid "Unlock the selected object (can be moved)." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Makes sure the object's children are not selectable." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Restores the object's children's ability to be selected." msgstr "" @@ -4567,14 +4884,6 @@ msgid "Show Bones" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Make IK Chain" -msgstr "" - -#: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Clear IK Chain" -msgstr "" - -#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Make Custom Bone(s) from Node(s)" msgstr "" @@ -4625,7 +4934,7 @@ msgid "Frame Selection" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Layout" +msgid "Preview Canvas Scale" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4677,6 +4986,10 @@ msgid "Divide grid step by 2" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Pan View" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Add %s" msgstr "" @@ -4699,7 +5012,7 @@ msgid "Error instancing scene from %s" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Change default type" +msgid "Change Default Type" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4785,19 +5098,19 @@ msgid "Create Emission Points From Node" msgstr "" #: editor/plugins/curve_editor_plugin.cpp -msgid "Flat0" +msgid "Flat 0" msgstr "" #: editor/plugins/curve_editor_plugin.cpp -msgid "Flat1" +msgid "Flat 1" msgstr "" -#: editor/plugins/curve_editor_plugin.cpp -msgid "Ease in" +#: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp +msgid "Ease In" msgstr "" -#: editor/plugins/curve_editor_plugin.cpp -msgid "Ease out" +#: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp +msgid "Ease Out" msgstr "" #: editor/plugins/curve_editor_plugin.cpp @@ -4817,23 +5130,25 @@ msgid "Load Curve Preset" msgstr "" #: editor/plugins/curve_editor_plugin.cpp -msgid "Add point" -msgstr "" +#, fuzzy +msgid "Add Point" +msgstr "Idagdag Ang Bezier Point" #: editor/plugins/curve_editor_plugin.cpp -msgid "Remove point" -msgstr "" +#, fuzzy +msgid "Remove Point" +msgstr "Ilipat Ang Mga Bezier Points" #: editor/plugins/curve_editor_plugin.cpp -msgid "Left linear" +msgid "Left Linear" msgstr "" #: editor/plugins/curve_editor_plugin.cpp -msgid "Right linear" +msgid "Right Linear" msgstr "" #: editor/plugins/curve_editor_plugin.cpp -msgid "Load preset" +msgid "Load Preset" msgstr "" #: editor/plugins/curve_editor_plugin.cpp @@ -4889,11 +5204,15 @@ msgid "This doesn't work on scene root!" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Trimesh Shape" +msgid "Create Trimesh Static Shape" +msgstr "" + +#: editor/plugins/mesh_instance_editor_plugin.cpp +msgid "Failed creating shapes!" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Shape" +msgid "Create Convex Shape(s)" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp @@ -4946,15 +5265,11 @@ msgid "Create Trimesh Static Body" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Static Body" -msgstr "" - -#: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Trimesh Collision Sibling" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Collision Sibling" +msgid "Create Convex Collision Sibling(s)" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp @@ -5108,20 +5423,20 @@ msgid "Create Navigation Polygon" msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp -msgid "Generating Visibility Rect" +#: editor/plugins/particles_editor_plugin.cpp +msgid "Convert to CPUParticles" msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp -msgid "Generate Visibility Rect" +msgid "Generating Visibility Rect" msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp -msgid "Can only set point into a ParticlesMaterial process material" +msgid "Generate Visibility Rect" msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp -#: editor/plugins/particles_editor_plugin.cpp -msgid "Convert to CPUParticles" +msgid "Can only set point into a ParticlesMaterial process material" msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp @@ -5263,7 +5578,7 @@ msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp editor/plugins/theme_editor_plugin.cpp -#: editor/project_export.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_export.cpp msgid "Options" msgstr "" @@ -5314,8 +5629,9 @@ msgid "Split Segment (in curve)" msgstr "" #: editor/plugins/physical_bone_plugin.cpp -msgid "Move joint" -msgstr "" +#, fuzzy +msgid "Move Joint" +msgstr "Ilipat Ang Mga Bezier Points" #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "" @@ -5547,7 +5863,6 @@ msgid "Open in Editor" msgstr "" #: editor/plugins/resource_preloader_editor_plugin.cpp -#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Load Resource" msgstr "" @@ -5636,6 +5951,11 @@ msgid "%s Class Reference" msgstr "" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp +msgid "Find Next" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp msgid "Toggle alphabetical sorting of the method list." msgstr "" @@ -5716,10 +6036,6 @@ msgstr "" msgid "Close All" msgstr "" -#: editor/plugins/script_editor_plugin.cpp -msgid "Close Other Tabs" -msgstr "" - #: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp msgid "Run" msgstr "" @@ -5728,11 +6044,6 @@ msgstr "" msgid "Toggle Scripts Panel" msgstr "" -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/script_text_editor.cpp -msgid "Find Next" -msgstr "" - #: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp msgid "Step Over" msgstr "" @@ -5759,7 +6070,7 @@ msgid "Debug with External Editor" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Open Godot online documentation" +msgid "Open Godot online documentation." msgstr "" #: editor/plugins/script_editor_plugin.cpp @@ -5767,7 +6078,7 @@ msgid "Request Docs" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Help improve the Godot documentation by giving feedback" +msgid "Help improve the Godot documentation by giving feedback." msgstr "" #: editor/plugins/script_editor_plugin.cpp @@ -5793,10 +6104,12 @@ msgid "" msgstr "" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp msgid "Reload" msgstr "" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp msgid "Resave" msgstr "" @@ -5809,6 +6122,27 @@ msgid "Search Results" msgstr "" #: editor/plugins/script_text_editor.cpp +msgid "Connections to method:" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Source" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Signal" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Target" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "" +"Missing connected method '%s' for signal '%s' from node '%s' to node '%s'." +msgstr "" + +#: editor/plugins/script_text_editor.cpp msgid "Line" msgstr "" @@ -5820,10 +6154,6 @@ msgstr "" msgid "Go to Function" msgstr "" -#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp -msgid "Standard" -msgstr "" - #: editor/plugins/script_text_editor.cpp msgid "Only resources from filesystem can be dropped." msgstr "" @@ -5856,6 +6186,11 @@ msgstr "" msgid "Syntax Highlighter" msgstr "" +#: editor/plugins/script_text_editor.cpp +#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp +msgid "Bookmarks" +msgstr "" + #: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" @@ -5883,6 +6218,22 @@ msgid "Toggle Comment" msgstr "" #: editor/plugins/script_text_editor.cpp +msgid "Toggle Bookmark" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Go to Next Bookmark" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Go to Previous Bookmark" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Remove All Bookmarks" +msgstr "" + +#: editor/plugins/script_text_editor.cpp msgid "Fold/Unfold Line" msgstr "" @@ -5956,6 +6307,12 @@ msgid "Contextual Help" msgstr "" #: editor/plugins/shader_editor_plugin.cpp +msgid "" +"This shader has been modified on on disk.\n" +"What action should be taken?" +msgstr "" + +#: editor/plugins/shader_editor_plugin.cpp msgid "Shader" msgstr "" @@ -6293,7 +6650,7 @@ msgid "Right View" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Switch Perspective/Orthogonal view" +msgid "Switch Perspective/Orthogonal View" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp @@ -6333,11 +6690,12 @@ msgid "Toggle Freelook" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Transform" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Snap object to floor" +msgid "Snap Object to Floor" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp @@ -6478,35 +6836,35 @@ msgid "Invalid geometry, can't replace by mesh." msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Invalid geometry, can't create polygon." +msgid "Convert to Mesh2D" msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Invalid geometry, can't create collision polygon." +msgid "Invalid geometry, can't create polygon." msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Invalid geometry, can't create light occluder." +msgid "Convert to Polygon2D" msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Sprite" +msgid "Invalid geometry, can't create collision polygon." msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Convert to Mesh2D" +msgid "Create CollisionPolygon2D Sibling" msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Convert to Polygon2D" +msgid "Invalid geometry, can't create light occluder." msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Create CollisionPolygon2D Sibling" +msgid "Create LightOccluder2D Sibling" msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Create LightOccluder2D Sibling" +msgid "Sprite" msgstr "" #: editor/plugins/sprite_editor_plugin.cpp @@ -6526,7 +6884,11 @@ msgid "Settings:" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "ERROR: Couldn't load frame resource!" +msgid "No Frames Selected" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Add %d Frame(s)" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp @@ -6534,6 +6896,10 @@ msgid "Add Frame" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "ERROR: Couldn't load frame resource!" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Resource clipboard is empty or not a texture!" msgstr "" @@ -6574,6 +6940,14 @@ msgid "Animation Frames:" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Add a Texture from File" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Add Frames from a Sprite Sheet" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Insert Empty (Before)" msgstr "" @@ -6590,6 +6964,26 @@ msgid "Move (After)" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Select Frames" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Horizontal:" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Vertical:" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Select/Clear All Frames" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Create Frames from Sprite Sheet" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "SpriteFrames" msgstr "" @@ -6654,12 +7048,12 @@ msgstr "" msgid "Remove All Items" msgstr "" -#: editor/plugins/theme_editor_plugin.cpp +#: editor/plugins/theme_editor_plugin.cpp editor/project_manager.cpp msgid "Remove All" msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "Edit theme..." +msgid "Edit Theme" msgstr "" #: editor/plugins/theme_editor_plugin.cpp @@ -6687,11 +7081,11 @@ msgid "Create From Current Editor Theme" msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "CheckBox Radio1" +msgid "Toggle Button" msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "CheckBox Radio2" +msgid "Disabled Button" msgstr "" #: editor/plugins/theme_editor_plugin.cpp @@ -6699,6 +7093,10 @@ msgid "Item" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +msgid "Disabled Item" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Check Item" msgstr "" @@ -6715,6 +7113,22 @@ msgid "Checked Radio Item" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +msgid "Named Sep." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Submenu" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Item 1" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Item 2" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Has" msgstr "" @@ -6723,7 +7137,7 @@ msgid "Many" msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "Has,Many,Options" +msgid "Disabled LineEdit" msgstr "" #: editor/plugins/theme_editor_plugin.cpp @@ -6739,6 +7153,18 @@ msgid "Tab 3" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +msgid "Editable Item" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Subtree" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Has,Many,Options" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Data Type:" msgstr "" @@ -6771,6 +7197,7 @@ msgid "Fix Invalid Tiles" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp +#: modules/gridmap/grid_map_editor_plugin.cpp msgid "Cut Selection" msgstr "" @@ -6811,37 +7238,48 @@ msgid "Mirror Y" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Paint Tile" +msgid "Disable Autotile" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Pick Tile" +msgid "Enable Priority" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Copy Selection" +msgid "Paint Tile" +msgstr "" + +#: editor/plugins/tile_map_editor_plugin.cpp +msgid "" +"Shift+RMB: Line Draw\n" +"Shift+Ctrl+RMB: Rectangle Paint" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Rotate left" +msgid "Pick Tile" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Rotate right" +msgid "Rotate Left" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Flip horizontally" +msgid "Rotate Right" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Flip vertically" +msgid "Flip Horizontally" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Clear transform" +msgid "Flip Vertically" msgstr "" +#: editor/plugins/tile_map_editor_plugin.cpp +#, fuzzy +msgid "Clear Transform" +msgstr "3D Transform Track" + #: editor/plugins/tile_set_editor_plugin.cpp msgid "Add Texture(s) to TileSet." msgstr "" @@ -6875,6 +7313,38 @@ msgid "Select the previous shape, subtile, or Tile." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp +msgid "Region Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Collision Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Occlusion Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Navigation Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Bitmask Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Priority Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Icon Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Z Index Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp msgid "Copy bitmask." msgstr "" @@ -6954,6 +7424,7 @@ msgstr "" msgid "" "LMB: Set bit on.\n" "RMB: Set bit off.\n" +"Shift+LMB: Set wildcard bit.\n" "Click on another Tile to edit it." msgstr "" @@ -7061,6 +7532,66 @@ msgid "TileSet" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add input +" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add output +" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add input port" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add output port" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Change input port type" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Change output port type" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Change input port name" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Change output port name" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Remove input port" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Remove output port" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Set expression" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Resize VisualShader node" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Set Uniform Name" msgstr "" @@ -7097,6 +7628,838 @@ msgid "Light" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Create Shader Node" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Color function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Color operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Grayscale function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts HSV vector to RGB equivalent." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts RGB vector to HSV equivalent." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Sepia function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Burn operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Darken operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Difference operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Dodge operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "HardLight operator" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Lighten operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Overlay operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Screen operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "SoftLight operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Color constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Color uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns an associated vector if the provided scalars are equal, greater or " +"less." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns an associated vector if the provided boolean value is true or false." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'camera' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'inv_camera' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'inv_projection' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'normal' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'projection' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'time' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'viewport_size' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'world' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'texture_pixel_size' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Input parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'binormal' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'fragcoord' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_coord' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_uv' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'side' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'tangent' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv2' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'vertex' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'view' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'albedo' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'attenuation' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'diffuse' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_color' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'roughness' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'specular' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'transmission' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'modelview' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_size' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'tangent' input parameter for vertex and fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_pass' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_coord' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_pixel_size' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_uv' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_alpha' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_height' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_uv' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_vec' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'normal' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'shadow_color' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'extra' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'projection' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'vertex' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'world' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'active' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'custom' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'custom_alpha' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'delta' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'emission_transform' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'index' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'lifetime' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'restart' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'time' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'transform' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'velocity' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Scalar function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Scalar operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "E constant (2.718282). Represents the base of the natural logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Epsilon constant (0.00001). Smallest possible scalar number." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Phi constant (1.618034). Golden ratio." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi/4 constant (0.785398) or 45 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi/2 constant (1.570796) or 90 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi constant (3.141593) or 180 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Tau constant (6.283185) or 360 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Sqrt2 constant (1.414214). Square root of 2." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the absolute value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-tangent of the parameters." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Finds the nearest integer that is greater than or equal to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Constrains a value to lie between two further values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts a quantity in radians to degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-e Exponential." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-2 Exponential." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Finds the nearest integer less than or equal to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Computes the fractional part of the argument." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the inverse of the square root of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Natural logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-2 logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the greater of two values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the lesser of two values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Linear interpolation between two scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the opposite value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 - scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns the value of the first parameter raised to the power of the second." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts a quantity in degrees to radians." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 / scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the nearest integer to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the nearest even integer to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Clamps the value between 0.0 and 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Extracts the sign of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the square root of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( scalar(edge0), scalar(edge1), scalar(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if x is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( scalar(edge), scalar(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the truncated value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Adds scalar to scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Divides scalar by scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies scalar by scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the remainder of the two scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Subtracts scalar from scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Scalar constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Scalar uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Perform the cubic texture lookup." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Perform the texture lookup." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Cubic texture uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "2D texture uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Transform function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) Calculate the outer product of a pair of vectors.\n" +"\n" +"OuterProduct treats the first parameter 'c' as a column vector (matrix with " +"one column) and the second parameter 'r' as a row vector (matrix with one " +"row) and does a linear algebraic matrix multiply 'c * r', yielding a matrix " +"whose number of rows is the number of components in 'c' and whose number of " +"columns is the number of components in 'r'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Composes transform from four vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Decomposes transform to four vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the determinant of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the inverse of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the transpose of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies transform by transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies vector by transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Transform constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Transform uniform." +msgstr "3D Transform Track" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Composes vector from three scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Decomposes vector to three scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the cross product of two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the distance between two points." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the dot product of two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns a vector that points in the same direction as a reference vector. " +"The function has three vector parameters : N, the vector to orient, I, the " +"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 "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the length of a vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Linear interpolation between two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the normalize product of vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 - vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 / vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns a vector that points in the direction of reflection ( a : incident " +"vector, b : normal vector )." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns a vector that points in the direction of refraction." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( vector(edge0), vector(edge1), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if 'x' is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( scalar(edge0), scalar(edge1), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if 'x' is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( vector(edge), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( scalar(edge), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Adds vector to vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Divides vector by vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies vector by vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the remainder of the two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Subtracts vector from vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Custom Godot Shader Language expression, with custom amount of input and " +"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 "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns falloff based on the dot product of surface normal and view " +"direction of camera (pass associated inputs to it)." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) (Fragment/Light mode only) Scalar derivative function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) (Fragment/Light mode only) Vector derivative function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Derivative in 'x' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Derivative in 'x' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Derivative in 'y' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Derivative in 'y' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Sum of absolute derivative " +"in 'x' and 'y'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Sum of absolute derivative " +"in 'x' and 'y'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "VisualShader" msgstr "" @@ -7284,6 +8647,10 @@ msgid "Directory already contains a Godot project." msgstr "" #: editor/project_manager.cpp +msgid "New Game Project" +msgstr "" + +#: editor/project_manager.cpp msgid "Imported Project" msgstr "" @@ -7330,10 +8697,6 @@ msgid "Rename Project" msgstr "" #: editor/project_manager.cpp -msgid "New Game Project" -msgstr "" - -#: editor/project_manager.cpp msgid "Import Existing Project" msgstr "" @@ -7362,10 +8725,6 @@ msgid "Project Name:" msgstr "" #: editor/project_manager.cpp -msgid "Create folder" -msgstr "" - -#: editor/project_manager.cpp msgid "Project Path:" msgstr "" @@ -7374,10 +8733,6 @@ msgid "Project Installation Path:" msgstr "" #: editor/project_manager.cpp -msgid "Browse" -msgstr "" - -#: editor/project_manager.cpp msgid "Renderer:" msgstr "" @@ -7430,8 +8785,8 @@ msgid "" "\n" "If you proceed with opening it, it will be converted to Godot's current " "configuration file format.\n" -"Warning: You will not be able to open the project with previous versions of " -"the engine anymore." +"Warning: You won't be able to open the project with previous versions of the " +"engine anymore." msgstr "" #: editor/project_manager.cpp @@ -7442,8 +8797,8 @@ msgid "" "%s\n" "\n" "Do you want to convert it?\n" -"Warning: You will not be able to open the project with previous versions of " -"the engine anymore." +"Warning: You won't be able to open the project with previous versions of the " +"engine anymore." msgstr "" #: editor/project_manager.cpp @@ -7455,7 +8810,7 @@ msgstr "" #: editor/project_manager.cpp msgid "" "Can't run project: no main scene defined.\n" -"Please edit the project and set the main scene in \"Project Settings\" under " +"Please edit the project and set the main scene in the Project Settings under " "the \"Application\" category." msgstr "" @@ -7466,23 +8821,37 @@ msgid "" msgstr "" #: editor/project_manager.cpp -msgid "Are you sure to run more than one project?" +msgid "Are you sure to run %d projects at once?" msgstr "" #: editor/project_manager.cpp -msgid "Remove project from the list? (Folder contents will not be modified)" +msgid "" +"Remove %d projects from the list?\n" +"The project folders' contents won't be modified." +msgstr "" + +#: editor/project_manager.cpp +msgid "" +"Remove this project from the list?\n" +"The project folder's contents won't be modified." +msgstr "" + +#: editor/project_manager.cpp +msgid "" +"Remove all missing projects from the list? (Folders contents will not be " +"modified)" msgstr "" #: editor/project_manager.cpp msgid "" "Language changed.\n" -"The UI will update next time the editor or project manager starts." +"The interface will update after restarting the editor or project manager." msgstr "" #: editor/project_manager.cpp msgid "" -"You are about the scan %s folders for existing Godot projects. Do you " -"confirm?" +"Are you sure to scan %s folders for existing Godot projects?\n" +"This could take a while." msgstr "" #: editor/project_manager.cpp @@ -7506,6 +8875,10 @@ msgid "New Project" msgstr "" #: editor/project_manager.cpp +msgid "Remove Missing" +msgstr "" + +#: editor/project_manager.cpp msgid "Templates" msgstr "" @@ -7523,8 +8896,8 @@ msgstr "" #: editor/project_manager.cpp msgid "" -"You don't currently have any projects.\n" -"Would you like to explore the official example projects in the Asset Library?" +"You currently don't have any projects.\n" +"Would you like to explore official example projects in the Asset Library?" msgstr "" #: editor/project_settings_editor.cpp @@ -7550,7 +8923,7 @@ msgid "" msgstr "" #: editor/project_settings_editor.cpp -msgid "Action '%s' already exists!" +msgid "An action with the name '%s' already exists." msgstr "" #: editor/project_settings_editor.cpp @@ -7704,10 +9077,6 @@ msgid "" msgstr "" #: editor/project_settings_editor.cpp -msgid "Already existing" -msgstr "" - -#: editor/project_settings_editor.cpp msgid "Add Input Action" msgstr "" @@ -7772,7 +9141,7 @@ msgid "Override For..." msgstr "" #: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp -msgid "Editor must be restarted for changes to take effect" +msgid "The editor must be restarted for changes to take effect." msgstr "" #: editor/project_settings_editor.cpp @@ -7832,11 +9201,11 @@ msgid "Locales Filter" msgstr "" #: editor/project_settings_editor.cpp -msgid "Show all locales" +msgid "Show All Locales" msgstr "" #: editor/project_settings_editor.cpp -msgid "Show only selected locales" +msgid "Show Selected Locales Only" msgstr "" #: editor/project_settings_editor.cpp @@ -7852,14 +9221,6 @@ msgid "AutoLoad" msgstr "" #: editor/property_editor.cpp -msgid "Ease In" -msgstr "" - -#: editor/property_editor.cpp -msgid "Ease Out" -msgstr "" - -#: editor/property_editor.cpp msgid "Zero" msgstr "" @@ -7932,7 +9293,7 @@ msgid "Suffix" msgstr "" #: editor/rename_dialog.cpp -msgid "Advanced options" +msgid "Advanced Options" msgstr "" #: editor/rename_dialog.cpp @@ -8184,7 +9545,7 @@ msgid "User Interface" msgstr "" #: editor/scene_tree_dock.cpp -msgid "Custom Node" +msgid "Other Node" msgstr "" #: editor/scene_tree_dock.cpp @@ -8226,7 +9587,7 @@ msgid "Clear Inheritance" msgstr "" #: editor/scene_tree_dock.cpp -msgid "Open documentation" +msgid "Open Documentation" msgstr "" #: editor/scene_tree_dock.cpp @@ -8253,7 +9614,7 @@ msgstr "" msgid "Save Branch as Scene" msgstr "" -#: editor/scene_tree_dock.cpp +#: editor/scene_tree_dock.cpp editor/script_editor_debugger.cpp msgid "Copy Node Path" msgstr "" @@ -8296,6 +9657,18 @@ msgid "Toggle Visible" msgstr "" #: editor/scene_tree_editor.cpp +msgid "Unlock Node" +msgstr "" + +#: editor/scene_tree_editor.cpp +msgid "Button Group" +msgstr "" + +#: editor/scene_tree_editor.cpp +msgid "(Connecting From)" +msgstr "" + +#: editor/scene_tree_editor.cpp msgid "Node configuration warning:" msgstr "" @@ -8317,8 +9690,8 @@ msgid "" "Click to show groups dock." msgstr "" -#: editor/scene_tree_editor.cpp editor/script_create_dialog.cpp -msgid "Open Script" +#: editor/scene_tree_editor.cpp +msgid "Open Script:" msgstr "" #: editor/scene_tree_editor.cpp @@ -8364,71 +9737,71 @@ msgid "Select a Node" msgstr "" #: editor/script_create_dialog.cpp -msgid "Error loading template '%s'" +msgid "Path is empty." msgstr "" #: editor/script_create_dialog.cpp -msgid "Error - Could not create script in filesystem." +msgid "Filename is empty." msgstr "" #: editor/script_create_dialog.cpp -msgid "Error loading script from %s" +msgid "Path is not local." msgstr "" #: editor/script_create_dialog.cpp -msgid "N/A" +msgid "Invalid base path." msgstr "" #: editor/script_create_dialog.cpp -msgid "Open Script/Choose Location" +msgid "A directory with the same name exists." msgstr "" #: editor/script_create_dialog.cpp -msgid "Path is empty" +msgid "Invalid extension." msgstr "" #: editor/script_create_dialog.cpp -msgid "Filename is empty" +msgid "Wrong extension chosen." msgstr "" #: editor/script_create_dialog.cpp -msgid "Path is not local" +msgid "Error loading template '%s'" msgstr "" #: editor/script_create_dialog.cpp -msgid "Invalid base path" +msgid "Error - Could not create script in filesystem." msgstr "" #: editor/script_create_dialog.cpp -msgid "Directory of the same name exists" +msgid "Error loading script from %s" msgstr "" #: editor/script_create_dialog.cpp -msgid "File exists, will be reused" +msgid "N/A" msgstr "" #: editor/script_create_dialog.cpp -msgid "Invalid extension" +msgid "Open Script / Choose Location" msgstr "" #: editor/script_create_dialog.cpp -msgid "Wrong extension chosen" +msgid "Open Script" msgstr "" #: editor/script_create_dialog.cpp -msgid "Invalid Path" +msgid "File exists, it will be reused." msgstr "" #: editor/script_create_dialog.cpp -msgid "Invalid class name" +msgid "Invalid class name." msgstr "" #: editor/script_create_dialog.cpp -msgid "Invalid inherited parent name or path" +msgid "Invalid inherited parent name or path." msgstr "" #: editor/script_create_dialog.cpp -msgid "Script valid" +msgid "Script is valid." msgstr "" #: editor/script_create_dialog.cpp @@ -8436,15 +9809,15 @@ msgid "Allowed: a-z, A-Z, 0-9 and _" msgstr "" #: editor/script_create_dialog.cpp -msgid "Built-in script (into scene file)" +msgid "Built-in script (into scene file)." msgstr "" #: editor/script_create_dialog.cpp -msgid "Create new script file" +msgid "Will create a new script file." msgstr "" #: editor/script_create_dialog.cpp -msgid "Load existing script file" +msgid "Will load an existing script file." msgstr "" #: editor/script_create_dialog.cpp @@ -8575,6 +9948,10 @@ msgstr "" msgid "Set From Tree" msgstr "" +#: editor/script_editor_debugger.cpp +msgid "Export measures as CSV" +msgstr "" + #: editor/settings_config_dialog.cpp msgid "Erase Shortcut" msgstr "" @@ -8704,6 +10081,14 @@ msgid "GDNativeLibrary" msgstr "" #: modules/gdnative/gdnative_library_singleton_editor.cpp +msgid "Enabled GDNative Singleton" +msgstr "" + +#: modules/gdnative/gdnative_library_singleton_editor.cpp +msgid "Disabled GDNative Singleton" +msgstr "" + +#: modules/gdnative/gdnative_library_singleton_editor.cpp msgid "Library" msgstr "" @@ -8788,7 +10173,7 @@ msgid "GridMap Fill Selection" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "GridMap Duplicate Selection" +msgid "GridMap Paste Selection" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp @@ -8856,18 +10241,6 @@ msgid "Cursor Clear Rotation" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Create Area" -msgstr "" - -#: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Create Exterior Connector" -msgstr "" - -#: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Erase Area" -msgstr "" - -#: modules/gridmap/grid_map_editor_plugin.cpp msgid "Clear Selection" msgstr "" @@ -9218,15 +10591,7 @@ msgid "Available Nodes:" msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Select or create a function to edit graph" -msgstr "" - -#: modules/visual_script/visual_script_editor.cpp -msgid "Edit Signal Arguments:" -msgstr "" - -#: modules/visual_script/visual_script_editor.cpp -msgid "Edit Variable:" +msgid "Select or create a function to edit its graph." msgstr "" #: modules/visual_script/visual_script_editor.cpp @@ -9356,6 +10721,19 @@ msgid "Debug keystore not configured in the Editor Settings nor in the preset." msgstr "" #: platform/android/export/export.cpp +msgid "Custom build requires a valid Android SDK path in Editor Settings." +msgstr "" + +#: platform/android/export/export.cpp +msgid "Invalid Android SDK path for custom build in Editor Settings." +msgstr "" + +#: platform/android/export/export.cpp +msgid "" +"Android project is not installed for compiling. Install from Editor menu." +msgstr "" + +#: platform/android/export/export.cpp msgid "Invalid public key for APK expansion." msgstr "" @@ -9363,6 +10741,34 @@ msgstr "" msgid "Invalid package name:" msgstr "" +#: platform/android/export/export.cpp +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 "" +"Android build version mismatch:\n" +" Template installed: %s\n" +" Godot Version: %s\n" +"Please reinstall Android build template from 'Project' menu." +msgstr "" + +#: platform/android/export/export.cpp +msgid "Building Android Project (gradle)" +msgstr "" + +#: 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 "" + +#: platform/android/export/export.cpp +msgid "No build apk generated at: " +msgstr "" + #: platform/iphone/export/export.cpp msgid "Identifier is missing." msgstr "" @@ -9615,27 +11021,27 @@ msgid "ARVRCamera must have an ARVROrigin node as its parent" msgstr "" #: scene/3d/arvr_nodes.cpp -msgid "ARVRController must have an ARVROrigin node as its parent" +msgid "ARVRController must have an ARVROrigin node as its parent." msgstr "" #: scene/3d/arvr_nodes.cpp msgid "" -"The controller id must not be 0 or this controller will not be bound to an " -"actual controller" +"The controller ID must not be 0 or this controller won't be bound to an " +"actual controller." msgstr "" #: scene/3d/arvr_nodes.cpp -msgid "ARVRAnchor must have an ARVROrigin node as its parent" +msgid "ARVRAnchor must have an ARVROrigin node as its parent." msgstr "" #: scene/3d/arvr_nodes.cpp msgid "" -"The anchor id must not be 0 or this anchor will not be bound to an actual " -"anchor" +"The anchor ID must not be 0 or this anchor won't be bound to an actual " +"anchor." msgstr "" #: scene/3d/arvr_nodes.cpp -msgid "ARVROrigin requires an ARVRCamera child node" +msgid "ARVROrigin requires an ARVRCamera child node." msgstr "" #: scene/3d/baked_lightmap.cpp @@ -9705,8 +11111,8 @@ msgstr "" #: scene/3d/cpu_particles.cpp msgid "" -"CPUParticles animation requires the usage of a SpatialMaterial with " -"\"Billboard Particles\" enabled." +"CPUParticles animation requires the usage of a SpatialMaterial whose " +"Billboard Mode is set to \"Particle Billboard\"." msgstr "" #: scene/3d/gi_probe.cpp @@ -9743,8 +11149,8 @@ msgstr "" #: scene/3d/particles.cpp msgid "" -"Particles animation requires the usage of a SpatialMaterial with \"Billboard " -"Particles\" enabled." +"Particles animation requires the usage of a SpatialMaterial whose Billboard " +"Mode is set to \"Particle Billboard\"." msgstr "" #: scene/3d/path.cpp @@ -9769,7 +11175,7 @@ msgid "Path property must point to a valid Spatial node to work." msgstr "" #: scene/3d/soft_body.cpp -msgid "This body will be ignored until you set a mesh" +msgid "This body will be ignored until you set a mesh." msgstr "" #: scene/3d/soft_body.cpp @@ -9866,7 +11272,7 @@ msgstr "" msgid "" "Container by itself serves no purpose unless a script configures it's " "children placement behavior.\n" -"If you dont't intend to add a script, then please use a plain 'Control' node " +"If you don't intend to add a script, then please use a plain 'Control' node " "instead." msgstr "" @@ -9878,10 +11284,6 @@ msgstr "" msgid "Please Confirm..." msgstr "" -#: scene/gui/file_dialog.cpp -msgid "Go to parent folder." -msgstr "" - #: scene/gui/popup.cpp msgid "" "Popups will hide by default unless you call popup() or any of the popup*() " @@ -9953,3 +11355,7 @@ msgstr "" #: servers/visual/shader_language.cpp msgid "Varyings can only be assigned in vertex function." msgstr "" + +#: servers/visual/shader_language.cpp +msgid "Constants cannot be modified." +msgstr "" diff --git a/editor/translations/fr.po b/editor/translations/fr.po index 37175d7001..3c504aed8c 100644 --- a/editor/translations/fr.po +++ b/editor/translations/fr.po @@ -55,11 +55,12 @@ # Caye Pierre <pierrecaye@laposte.net>, 2019. # Peter Kent <0.peter.kent@gmail.com>, 2019. # jef dered <themen098s@vivaldi.net>, 2019. +# Patrick Zoch Alves <patrickzochalves@gmail.com>, 2019. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2019-04-05 13:04+0000\n" +"PO-Revision-Date: 2019-05-20 11:49+0000\n" "Last-Translator: Caye Pierre <pierrecaye@laposte.net>\n" "Language-Team: French <https://hosted.weblate.org/projects/godot-engine/" "godot/fr/>\n" @@ -68,7 +69,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.6-dev\n" +"X-Generator: Weblate 3.7-dev\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -80,15 +81,15 @@ 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 "Pas assez d'octets pour les octets de décodage, ou format non valide." +msgstr "Pas assez d'octets pour le décodage, ou format non valide." #: core/math/expression.cpp msgid "Invalid input %i (not passed) in expression" -msgstr "Entrée non valide %i (non passée) dans l’expression" +msgstr "Entrée non valide %i (pas passée) dans l’expression" #: core/math/expression.cpp msgid "self can't be used because instance is null (not passed)" -msgstr "self ne peut être utilisé car l'instance est null (non fournie)" +msgstr "self ne peut être utilisé car l'instance est null (pas passée)" #: core/math/expression.cpp msgid "Invalid operands to operator %s, %s and %s." @@ -100,15 +101,15 @@ msgstr "Index de type %s invalide pour le type de base %s" #: core/math/expression.cpp msgid "Invalid named index '%s' for base type %s" -msgstr "Index nommé %s invalide pour le type de base %s" +msgstr "Nom d'index '%s' invalide pour le type de base %s" #: core/math/expression.cpp msgid "Invalid arguments to construct '%s'" -msgstr "Arguments invalides pour construire « %s »" +msgstr "Arguments invalides pour construire '%s'" #: core/math/expression.cpp msgid "On call to '%s':" -msgstr "Sur appel à « %s » :" +msgstr "Sur appel à '%s' :" #: editor/animation_bezier_editor.cpp #: editor/plugins/asset_library_editor_plugin.cpp @@ -123,17 +124,26 @@ msgstr "Équilibré" msgid "Mirror" msgstr "Miroir" +#: editor/animation_bezier_editor.cpp editor/editor_profiler.cpp +msgid "Time:" +msgstr "Temps :" + +#: editor/animation_bezier_editor.cpp +#, fuzzy +msgid "Value:" +msgstr "Valeur" + #: editor/animation_bezier_editor.cpp msgid "Insert Key Here" msgstr "Insérer la clé ici" #: editor/animation_bezier_editor.cpp msgid "Duplicate Selected Key(s)" -msgstr "Dupliquer les clé(s) sélectionnée(s)" +msgstr "Dupliquer la(les) clé(s) sélectionnée(s)" #: editor/animation_bezier_editor.cpp msgid "Delete Selected Key(s)" -msgstr "Supprimer les clé(s) sélectionnée(s)" +msgstr "Supprimer (la)les clé(s) sélectionnée(s)" #: editor/animation_bezier_editor.cpp msgid "Add Bezier Point" @@ -153,23 +163,23 @@ msgstr "Supprimer les clés d'animation" #: editor/animation_track_editor.cpp msgid "Anim Change Keyframe Time" -msgstr "Modifier le temps d'image-clé" +msgstr "Modifier le temps de l'image-clé" #: editor/animation_track_editor.cpp msgid "Anim Change Transition" -msgstr "Changement de transition de l'animation" +msgstr "Changer la transition de l'animation" #: editor/animation_track_editor.cpp msgid "Anim Change Transform" -msgstr "Anim: Change Transformation" +msgstr "Changer la transformation de l'animation" #: editor/animation_track_editor.cpp msgid "Anim Change Keyframe Value" -msgstr "Anim: Change Valeur de l'Image Clé" +msgstr "Changer la valeur de l'image-clé de l'animation" #: editor/animation_track_editor.cpp msgid "Anim Change Call" -msgstr "Anim: Change l'Appel" +msgstr "Changer l'appel de l'animation" #: editor/animation_track_editor.cpp msgid "Change Animation Length" @@ -205,14 +215,18 @@ msgid "Animation Playback Track" msgstr "Piste de lecture d'animation" #: editor/animation_track_editor.cpp -msgid "Add Track" -msgstr "Ajouter une piste" +msgid "Animation length (frames)" +msgstr "Durée de l'animation (en images)" #: editor/animation_track_editor.cpp -msgid "Animation Length Time (seconds)" +msgid "Animation length (seconds)" msgstr "Durée de l'animation (en secondes)" #: editor/animation_track_editor.cpp +msgid "Add Track" +msgstr "Ajouter une piste" + +#: editor/animation_track_editor.cpp msgid "Animation Looping" msgstr "Bouclage de l'animation" @@ -247,7 +261,7 @@ msgstr "Mode d'interpolation" #: editor/animation_track_editor.cpp msgid "Loop Wrap Mode (Interpolate end with beginning on loop)" -msgstr "Mode bouclé (fin interpolée avec début en boucle)" +msgstr "Mode bouclé (fin interpolée avec le début dans la boucle)" #: editor/animation_track_editor.cpp msgid "Remove this track." @@ -255,11 +269,11 @@ msgstr "Supprime cette piste." #: editor/animation_track_editor.cpp msgid "Time (s): " -msgstr "Temps (s) : " +msgstr "Temps (s): " #: editor/animation_track_editor.cpp msgid "Toggle Track Enabled" -msgstr "Activer le basculement de piste" +msgstr "Basculement de piste activé" #: editor/animation_track_editor.cpp msgid "Continuous" @@ -336,11 +350,13 @@ msgid "Create %d NEW tracks and insert keys?" msgstr "Créer %d NOUVELLES pistes et insérer des clés ?" #: editor/animation_track_editor.cpp editor/create_dialog.cpp -#: editor/editor_audio_buses.cpp editor/editor_plugin_settings.cpp -#: editor/plugin_config_dialog.cpp +#: editor/editor_audio_buses.cpp editor/editor_feature_profile.cpp +#: editor/editor_plugin_settings.cpp editor/plugin_config_dialog.cpp #: editor/plugins/abstract_polygon_2d_editor.cpp #: editor/plugins/mesh_instance_editor_plugin.cpp -#: editor/plugins/particles_editor_plugin.cpp editor/script_create_dialog.cpp +#: editor/plugins/particles_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_create_dialog.cpp msgid "Create" msgstr "Créer" @@ -463,6 +479,23 @@ msgstr "" "s'agit que d'une seule piste." #: editor/animation_track_editor.cpp +msgid "" +"This animation belongs to an imported scene, so changes to imported tracks " +"will not be saved.\n" +"\n" +"To enable the ability to add custom tracks, navigate to the scene's import " +"settings and set\n" +"\"Animation > Storage\" to \"Files\", enable \"Animation > Keep Custom Tracks" +"\", then re-import.\n" +"Alternatively, use an import preset that imports animations to separate " +"files." +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Warning: Editing imported animation" +msgstr "" + +#: editor/animation_track_editor.cpp msgid "Only show tracks from nodes selected in tree." msgstr "" "Afficher seulement les pistes provenant des nÅ“uds sélectionnés dans " @@ -473,9 +506,8 @@ msgid "Group tracks by node or display them as plain list." msgstr "Grouper les pistes par nÅ“uds ou les afficher dans une liste simple." #: editor/animation_track_editor.cpp -#, fuzzy msgid "Snap:" -msgstr "Aligner" +msgstr "Aligner :" #: editor/animation_track_editor.cpp msgid "Animation step value." @@ -483,7 +515,7 @@ msgstr "Valeur du pas d'animation." #: editor/animation_track_editor.cpp msgid "Seconds" -msgstr "" +msgstr "Secondes" #: editor/animation_track_editor.cpp msgid "FPS" @@ -598,7 +630,8 @@ msgstr "Ratio d'échelle :" msgid "Select tracks to copy:" msgstr "Sélectionner les pistes à copier :" -#: editor/animation_track_editor.cpp editor/editor_properties.cpp +#: editor/animation_track_editor.cpp editor/editor_log.cpp +#: editor/editor_properties.cpp #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp @@ -666,6 +699,11 @@ msgstr "Remplacer tout" msgid "Selection Only" msgstr "Sélection uniquement" +#: editor/code_editor.cpp editor/plugins/script_text_editor.cpp +#: editor/plugins/text_editor.cpp +msgid "Standard" +msgstr "Standard" + #: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/texture_region_editor_plugin.cpp #: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp @@ -691,21 +729,39 @@ msgid "Line and column numbers." msgstr "Numéros de ligne et de colonne." #: editor/connections_dialog.cpp -msgid "Method in target Node must be specified!" +#, fuzzy +msgid "Method in target node must be specified." msgstr "La méthode du nÅ“ud cible doit être spécifiée !" #: editor/connections_dialog.cpp +#, fuzzy msgid "" -"Target method not found! Specify a valid method or attach a script to target " -"Node." +"Target method not found. Specify a valid method or attach a script to the " +"target node." msgstr "" "La méthode cible n'a pas été trouvée ! Spécifiez une méthode valide ou " "attachez un script au nÅ“ud cible." #: editor/connections_dialog.cpp -msgid "Connect To Node:" +#, fuzzy +msgid "Connect to Node:" msgstr "Connecter au nÅ“ud :" +#: editor/connections_dialog.cpp +#, fuzzy +msgid "Connect to Script:" +msgstr "Connexion à l'hôte impossible :" + +#: editor/connections_dialog.cpp +#, fuzzy +msgid "From Signal:" +msgstr "Signaux :" + +#: editor/connections_dialog.cpp +#, fuzzy +msgid "Scene does not contain any script." +msgstr "Le nÅ“ud ne contient pas de géométrie." + #: editor/connections_dialog.cpp editor/editor_autoload_settings.cpp #: editor/groups_editor.cpp editor/plugins/item_list_editor_plugin.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_settings_editor.cpp @@ -713,10 +769,12 @@ msgid "Add" msgstr "Ajouter" #: editor/connections_dialog.cpp editor/dependency_editor.cpp -#: editor/groups_editor.cpp editor/plugins/animation_player_editor_plugin.cpp +#: editor/editor_feature_profile.cpp editor/groups_editor.cpp +#: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp #: editor/plugins/resource_preloader_editor_plugin.cpp -#: editor/plugins/theme_editor_plugin.cpp editor/project_manager.cpp +#: editor/plugins/theme_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_manager.cpp #: editor/project_settings_editor.cpp msgid "Remove" msgstr "Supprimer" @@ -730,21 +788,32 @@ msgid "Extra Call Arguments:" msgstr "Arguments supplémentaires :" #: editor/connections_dialog.cpp -msgid "Path to Node:" -msgstr "Chemin vers le nÅ“ud :" - -#: editor/connections_dialog.cpp -msgid "Make Function" -msgstr "Créer une fonction" +#, fuzzy +msgid "Advanced" +msgstr "Options avancées" #: editor/connections_dialog.cpp msgid "Deferred" msgstr "Différé" #: editor/connections_dialog.cpp +msgid "" +"Defers the signal, storing it in a queue and only firing it at idle time." +msgstr "" + +#: editor/connections_dialog.cpp msgid "Oneshot" msgstr "One-shot" +#: editor/connections_dialog.cpp +msgid "Disconnects the signal after its first emission." +msgstr "" + +#: editor/connections_dialog.cpp +#, fuzzy +msgid "Cannot connect signal" +msgstr "Signal de connexion : " + #: editor/connections_dialog.cpp editor/dependency_editor.cpp #: editor/export_template_manager.cpp editor/groups_editor.cpp #: editor/plugins/animation_player_editor_plugin.cpp @@ -785,11 +854,13 @@ msgid "Disconnect" msgstr "Déconnecter" #: editor/connections_dialog.cpp -msgid "Connect Signal: " +#, fuzzy +msgid "Connect a Signal to a Method" msgstr "Signal de connexion : " #: editor/connections_dialog.cpp -msgid "Edit Connection: " +#, fuzzy +msgid "Edit Connection:" msgstr "Modifier les connexions : " #: editor/connections_dialog.cpp @@ -821,7 +892,6 @@ msgid "Change %s Type" msgstr "Changer le type de %s" #: editor/create_dialog.cpp editor/project_settings_editor.cpp -#: modules/visual_script/visual_script_editor.cpp msgid "Change" msgstr "Changer" @@ -852,7 +922,8 @@ msgid "Matches:" msgstr "Correspondances :" #: editor/create_dialog.cpp editor/plugin_config_dialog.cpp -#: editor/plugins/asset_library_editor_plugin.cpp editor/property_selector.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/property_selector.cpp #: modules/visual_script/visual_script_property_selector.cpp msgid "Description:" msgstr "Description :" @@ -866,17 +937,19 @@ msgid "Dependencies For:" msgstr "Dépendances pour :" #: editor/dependency_editor.cpp +#, fuzzy msgid "" "Scene '%s' is currently being edited.\n" -"Changes will not take effect unless reloaded." +"Changes will only take effect when reloaded." msgstr "" "La scène « %s » est actuellement en cours de modification.\n" "Les changements n'auront pas d'effet avant un rechargement." #: editor/dependency_editor.cpp +#, fuzzy msgid "" "Resource '%s' is in use.\n" -"Changes will take effect when reloaded." +"Changes will only take effect when reloaded." msgstr "" "La ressource « %s » est utilisée.\n" "Les changements n'auront pas d'effet avant un rechargement." @@ -973,21 +1046,14 @@ msgid "Permanently delete %d item(s)? (No undo!)" msgstr "Supprimer de manière permanente %d objet(s) ? (Annulation impossible!)" #: editor/dependency_editor.cpp -msgid "Owns" -msgstr "Possède" - -#: editor/dependency_editor.cpp -msgid "Resources Without Explicit Ownership:" -msgstr "Ressources sans propriété explicite :" +#, fuzzy +msgid "Show Dependencies" +msgstr "Dépendances" #: editor/dependency_editor.cpp editor/editor_node.cpp msgid "Orphan Resource Explorer" msgstr "Explorateur de ressources orphelines" -#: editor/dependency_editor.cpp -msgid "Delete selected files?" -msgstr "Supprimer les fichiers sélectionnés ?" - #: editor/dependency_editor.cpp editor/editor_audio_buses.cpp #: editor/editor_file_dialog.cpp editor/editor_node.cpp #: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp @@ -996,6 +1062,14 @@ msgstr "Supprimer les fichiers sélectionnés ?" msgid "Delete" msgstr "Supprimer" +#: editor/dependency_editor.cpp +msgid "Owns" +msgstr "Possède" + +#: editor/dependency_editor.cpp +msgid "Resources Without Explicit Ownership:" +msgstr "Ressources sans propriété explicite :" + #: editor/dictionary_property_edit.cpp msgid "Change Dictionary Key" msgstr "Modifier la clé du dictionnaire" @@ -1109,7 +1183,7 @@ msgstr "Paquetage installé avec succès !" msgid "Success!" msgstr "Succès !" -#: editor/editor_asset_installer.cpp +#: editor/editor_asset_installer.cpp editor/editor_node.cpp #: editor/plugins/asset_library_editor_plugin.cpp msgid "Install" msgstr "Installer" @@ -1236,8 +1310,12 @@ msgid "Open Audio Bus Layout" msgstr "Ouvrir une disposition de bus audio" #: editor/editor_audio_buses.cpp -msgid "There is no 'res://default_bus_layout.tres' file." -msgstr "Il n'existe aucun fichier « res://default_bus_layout.tres »." +msgid "There is no '%s' file." +msgstr "" + +#: editor/editor_audio_buses.cpp editor/plugins/canvas_item_editor_plugin.cpp +msgid "Layout" +msgstr "Disposition sur l'écran" #: editor/editor_audio_buses.cpp msgid "Invalid file, not an audio bus layout." @@ -1290,24 +1368,31 @@ msgid "Valid characters:" msgstr "Caractères valides :" #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing engine class name." +#, fuzzy +msgid "Must not collide with an existing engine class name." msgstr "" "Nom invalide. Le nom ne doit pas rentrer en conflit avec le nom d'une classe " "moteur existante." #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing buit-in type name." +#, fuzzy +msgid "Must not collide with an existing buit-in type name." msgstr "" "Nom invalide. Le nom ne doit pas rentrer en conflit avec le nom d'un type " "intégré au moteur." #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing global constant name." +#, fuzzy +msgid "Must not collide with an existing global constant name." msgstr "" "Nom invalide. Le nom ne doit pas rentrer en conflit avec le nom d'une " "constante globale." #: editor/editor_autoload_settings.cpp +msgid "Keyword cannot be used as an autoload name." +msgstr "" + +#: editor/editor_autoload_settings.cpp msgid "Autoload '%s' already exists!" msgstr "L'autoload « %s » existe déjà !" @@ -1335,11 +1420,12 @@ msgstr "Activer" msgid "Rearrange Autoloads" msgstr "Ré-organiser les AutoLoads" -#: editor/editor_autoload_settings.cpp -msgid "Invalid Path." +#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp +#, fuzzy +msgid "Invalid path." msgstr "Chemin invalide." -#: editor/editor_autoload_settings.cpp +#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp msgid "File does not exist." msgstr "Le fichier n'existe pas." @@ -1390,7 +1476,8 @@ msgid "[unsaved]" msgstr "[non enregistré]" #: editor/editor_dir_dialog.cpp -msgid "Please select a base directory first" +#, fuzzy +msgid "Please select a base directory first." msgstr "Veuillez sélectionner un répertoire de base en premier" #: editor/editor_dir_dialog.cpp @@ -1398,7 +1485,8 @@ msgid "Choose a Directory" msgstr "Choisir un répertoire" #: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp -#: editor/filesystem_dock.cpp scene/gui/file_dialog.cpp +#: editor/filesystem_dock.cpp editor/project_manager.cpp +#: scene/gui/file_dialog.cpp msgid "Create Folder" msgstr "Créer un dossier" @@ -1474,6 +1562,177 @@ msgstr "Modèle de version personnalisée introuvable." msgid "Template file not found:" msgstr "Fichier modèle introuvable :" +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "3D Editor" +msgstr "Éditeur" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Script Editor" +msgstr "Ouvrir l'éditeur de script" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Asset Library" +msgstr "Ouvrir bibliothèque de ressource" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Scene Tree Editing" +msgstr "Arbre de scène (nÅ“uds) :" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Import Dock" +msgstr "Importer" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Node Dock" +msgstr "NÅ“ud déplacé" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Filesystem Dock" +msgstr "Système de fichiers" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Erase profile '%s'? (no undo)" +msgstr "Remplacer tout (pas de retour en arrière)" + +#: editor/editor_feature_profile.cpp +msgid "Profile must be a valid filename and must not contain '.'" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Profile with this name already exists." +msgstr "Un fichier ou un dossier avec ce nom existe déjà ." + +#: editor/editor_feature_profile.cpp +msgid "(Editor Disabled, Properties Disabled)" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "(Properties Disabled)" +msgstr "Propriétés seulement" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "(Editor Disabled)" +msgstr "Âgrafe désactivée" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Class Options:" +msgstr "Description de la classe :" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enable Contextual Editor" +msgstr "Ouvrir l'éditeur suivant" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enabled Properties:" +msgstr "Propriétés :" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enabled Features:" +msgstr "Fonctionnalités" + +#: editor/editor_feature_profile.cpp +msgid "Enabled Classes:" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "File '%s' format is invalid, import aborted." +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "" +"Profile '%s' already exists. Remote it first before importing, import " +"aborted." +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Error saving profile to path: '%s'." +msgstr "Erreur lors du chargement du modèle « %s »" + +#: editor/editor_feature_profile.cpp +msgid "Unset" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Current Profile" +msgstr "Version courante :" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Make Current" +msgstr "Actuel :" + +#: editor/editor_feature_profile.cpp +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "New" +msgstr "Nouveau" + +#: editor/editor_feature_profile.cpp editor/editor_node.cpp +#: editor/plugins/asset_library_editor_plugin.cpp editor/project_manager.cpp +msgid "Import" +msgstr "Importer" + +#: editor/editor_feature_profile.cpp editor/editor_node.cpp +#: editor/project_export.cpp +msgid "Export" +msgstr "Exporter" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Available Profiles" +msgstr "NÅ“uds disponibles :" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enabled Classes" +msgstr "Activer l'alignement" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Class Options" +msgstr "Description de la classe" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "New profile name:" +msgstr "Nouveau nom :" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Erase Profile" +msgstr "Effacer zone" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Import Profile(s)" +msgstr "Projet importé" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Export Profile" +msgstr "Exporter le projet" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Manage Editor Feature Profiles" +msgstr "Gérer les modèles d'exportation" + #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Select Current Folder" msgstr "Sélectionner le dossier courant" @@ -1494,8 +1753,8 @@ msgstr "Copier le chemin" msgid "Open in File Manager" msgstr "Ouvrir dans le gestionnaire de fichiers" -#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp -#: editor/project_manager.cpp +#: editor/editor_file_dialog.cpp editor/editor_node.cpp +#: editor/filesystem_dock.cpp editor/project_manager.cpp msgid "Show in File Manager" msgstr "Montrer dans le gestionnaire de fichiers" @@ -1554,7 +1813,7 @@ msgstr "Avancer" msgid "Go Up" msgstr "Monter" -#: editor/editor_file_dialog.cpp +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Toggle Hidden Files" msgstr "Basculer les fichiers cachés" @@ -1586,14 +1845,19 @@ msgstr "Dossier précédent" msgid "Next Folder" msgstr "Dossier suivant" -#: editor/editor_file_dialog.cpp -msgid "Go to parent folder" -msgstr "Aller au dossier parent" +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp +msgid "Go to parent folder." +msgstr "Aller au dossier parent." #: editor/editor_file_dialog.cpp msgid "(Un)favorite current folder." msgstr "Ajouter ou supprimer des favoris le dossier courant." +#: editor/editor_file_dialog.cpp +#, fuzzy +msgid "Toggle visibility of hidden files." +msgstr "Basculer les fichiers cachés" + #: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp msgid "View items as a grid of thumbnails." msgstr "Afficher les éléments sous forme de grille de vignettes." @@ -1608,6 +1872,7 @@ msgstr "Répertoires et fichiers :" #: editor/editor_file_dialog.cpp editor/plugins/sprite_editor_plugin.cpp #: editor/plugins/style_box_editor_plugin.cpp +#: editor/plugins/theme_editor_plugin.cpp msgid "Preview:" msgstr "Aperçu :" @@ -1624,6 +1889,12 @@ msgid "ScanSources" msgstr "Scanner les sources" #: editor/editor_file_system.cpp +msgid "" +"There are multiple importers for different types pointing to file %s, import " +"aborted" +msgstr "" + +#: editor/editor_file_system.cpp msgid "(Re)Importing Assets" msgstr "Ré-importation des assets" @@ -1806,6 +2077,10 @@ msgstr "Définir plusieurs :" msgid "Output:" msgstr "Sortie :" +#: editor/editor_log.cpp editor/plugins/tile_map_editor_plugin.cpp +msgid "Copy Selection" +msgstr "Copier la sélection" + #: editor/editor_log.cpp editor/editor_profiler.cpp #: editor/editor_properties.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp @@ -1962,9 +2237,10 @@ msgstr "" "comprendre le processus." #: editor/editor_node.cpp +#, fuzzy msgid "" "This resource belongs to a scene that was instanced or inherited.\n" -"Changes to it will not be kept when saving the current scene." +"Changes to it won't be kept when saving the current scene." msgstr "" "Cette ressource appartient a une scène qui a été instanciée ou héritée.\n" "Ses modifications seront perdues lors de la sauvegarde de la scène actuelle." @@ -1978,8 +2254,9 @@ msgstr "" "paramètres dans le panneau d'importation et réimportez-la ensuite." #: editor/editor_node.cpp +#, fuzzy msgid "" -"This scene was imported, so changes to it will not be kept.\n" +"This scene was imported, so changes to it won't be kept.\n" "Instancing it or inheriting will allow making changes to it.\n" "Please read the documentation relevant to importing scenes to better " "understand this workflow." @@ -1991,8 +2268,9 @@ msgstr "" "mieux comprendre ce processus." #: editor/editor_node.cpp +#, fuzzy msgid "" -"This is a remote object so changes to it will not be kept.\n" +"This is a remote object, so changes to it won't be kept.\n" "Please read the documentation relevant to debugging to better understand " "this workflow." msgstr "" @@ -2006,37 +2284,6 @@ msgid "There is no defined scene to run." msgstr "Il n'y a pas de scène définie pour être lancée." #: editor/editor_node.cpp -msgid "" -"No main scene has ever been defined, select one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" -"Aucune scène principale n'a jamais été définie, en sélectionner une ?\n" -"Vous pouvez la modifier ultérieurement dans les « Paramètres du projet » " -"sous la catégorie « application »." - -#: editor/editor_node.cpp -msgid "" -"Selected scene '%s' does not exist, select a valid one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" -"La scène sélectionnée « %s » n'existe pas, en sélectionner une valide ?\n" -"Vous pouvez la modifier ultérieurement dans les « Paramètres du projet » " -"dans la catégorie « application »." - -#: editor/editor_node.cpp -msgid "" -"Selected scene '%s' is not a scene file, select a valid one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" -"La scène sélectionnée « %s » n'est pas un fichier de scène, en sélectionner " -"une valide ?\n" -"Vous pouvez la modifier ultérieurement dans les « Paramètres du projet » " -"dans la catégorie « application »." - -#: editor/editor_node.cpp msgid "Current scene was never saved, please save it prior to running." msgstr "" "La scène actuelle n'a jamais été sauvegardée, veuillez la sauvegarder avant " @@ -2046,7 +2293,7 @@ msgstr "" msgid "Could not start subprocess!" msgstr "Impossible de démarrer le sous-processus !" -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/filesystem_dock.cpp msgid "Open Scene" msgstr "Ouvrir une scène" @@ -2055,6 +2302,11 @@ msgid "Open Base Scene" msgstr "Ouvrir scène de base" #: editor/editor_node.cpp +#, fuzzy +msgid "Quick Open..." +msgstr "Ouvrir une scène rapidement…" + +#: editor/editor_node.cpp msgid "Quick Open Scene..." msgstr "Ouvrir une scène rapidement…" @@ -2241,6 +2493,37 @@ msgid "Clear Recent Scenes" msgstr "Effacer la liste des scènes récentes" #: editor/editor_node.cpp +msgid "" +"No main scene has ever been defined, select one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" +"Aucune scène principale n'a jamais été définie, en sélectionner une ?\n" +"Vous pouvez la modifier ultérieurement dans les « Paramètres du projet » " +"sous la catégorie « application »." + +#: editor/editor_node.cpp +msgid "" +"Selected scene '%s' does not exist, select a valid one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" +"La scène sélectionnée « %s » n'existe pas, en sélectionner une valide ?\n" +"Vous pouvez la modifier ultérieurement dans les « Paramètres du projet » " +"dans la catégorie « application »." + +#: editor/editor_node.cpp +msgid "" +"Selected scene '%s' is not a scene file, select a valid one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" +"La scène sélectionnée « %s » n'est pas un fichier de scène, en sélectionner " +"une valide ?\n" +"Vous pouvez la modifier ultérieurement dans les « Paramètres du projet » " +"dans la catégorie « application »." + +#: editor/editor_node.cpp msgid "Save Layout" msgstr "Enregistrer la disposition" @@ -2266,6 +2549,19 @@ msgstr "Jouer Cette Scène" msgid "Close Tab" msgstr "Fermer l'onglet" +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +msgid "Close Other Tabs" +msgstr "Fermer les autres onglets" + +#: editor/editor_node.cpp +msgid "Close Tabs to the Right" +msgstr "" + +#: editor/editor_node.cpp +#, fuzzy +msgid "Close All Tabs" +msgstr "Fermer tout" + #: editor/editor_node.cpp msgid "Switch Scene Tab" msgstr "Basculer entre onglets de scène" @@ -2388,10 +2684,6 @@ msgstr "Projet" msgid "Project Settings" msgstr "Paramètres du projet" -#: editor/editor_node.cpp editor/project_export.cpp -msgid "Export" -msgstr "Exporter" - #: editor/editor_node.cpp editor/plugins/tile_set_editor_plugin.cpp msgid "Tools" msgstr "Outils" @@ -2401,6 +2693,10 @@ msgid "Open Project Data Folder" msgstr "Ouvrir le dossier de données du projets" #: editor/editor_node.cpp +msgid "Install Android Build Template" +msgstr "" + +#: editor/editor_node.cpp msgid "Quit to Project List" msgstr "Quitter vers la liste des projets" @@ -2526,6 +2822,11 @@ msgstr "Ouvrir le dossier de données de l'éditeur" msgid "Open Editor Settings Folder" msgstr "Ouvrir le dossier des paramètres de l'éditeur" +#: editor/editor_node.cpp +#, fuzzy +msgid "Manage Editor Features" +msgstr "Gérer les modèles d'exportation" + #: editor/editor_node.cpp editor/project_export.cpp msgid "Manage Export Templates" msgstr "Gérer les modèles d'exportation" @@ -2538,6 +2839,7 @@ msgstr "Aide" #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp #: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp #: editor/project_settings_editor.cpp editor/rename_dialog.cpp msgid "Search" msgstr "Rechercher" @@ -2627,11 +2929,6 @@ msgstr "Repeindre quand modifié" msgid "Disable Update Spinner" msgstr "Désactiver l'indicateur d'activité" -#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp -#: editor/project_manager.cpp -msgid "Import" -msgstr "Importer" - #: editor/editor_node.cpp msgid "FileSystem" msgstr "Système de fichiers" @@ -2657,6 +2954,28 @@ msgid "Don't Save" msgstr "Ne pas enregistrer" #: editor/editor_node.cpp +msgid "Android build template is missing, please install relevant templates." +msgstr "" + +#: editor/editor_node.cpp +#, fuzzy +msgid "Manage Templates" +msgstr "Gérer les modèles d'exportation" + +#: editor/editor_node.cpp +msgid "" +"This will install the Android project for custom builds.\n" +"Note that, in order to use it, it needs to be enabled per export preset." +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"Android build template is already installed and it won't be overwritten.\n" +"Remove the \"build\" directory manually before attempting this operation " +"again." +msgstr "" + +#: editor/editor_node.cpp msgid "Import Templates From ZIP File" msgstr "Importer des modèles depuis un fichier ZIP" @@ -2779,10 +3098,6 @@ msgid "Physics Frame %" msgstr "Trame physique %" #: editor/editor_profiler.cpp -msgid "Time:" -msgstr "Temps :" - -#: editor/editor_profiler.cpp msgid "Inclusive" msgstr "Inclusif" @@ -2926,10 +3241,6 @@ msgid "Remove Item" msgstr "Supprimer l'item" #: editor/editor_run_native.cpp -msgid "Select device from the list" -msgstr "Sélectionner appareil depuis la liste" - -#: editor/editor_run_native.cpp msgid "" "No runnable export preset found for this platform.\n" "Please add a runnable preset in the export menu." @@ -2965,6 +3276,10 @@ msgstr "Avez-vous oublié la méthode « _run » ?" msgid "Select Node(s) to Import" msgstr "Sélectionner les nÅ“uds à importer" +#: editor/editor_sub_scene.cpp editor/project_manager.cpp +msgid "Browse" +msgstr "Parcourir" + #: editor/editor_sub_scene.cpp msgid "Scene Path:" msgstr "Chemin de la scène :" @@ -3132,6 +3447,11 @@ msgid "SSL Handshake Error" msgstr "Erreurs de la négociation SSL" #: editor/export_template_manager.cpp +#, fuzzy +msgid "Uncompressing Android Build Sources" +msgstr "Décompression des assets" + +#: editor/export_template_manager.cpp msgid "Current Version:" msgstr "Version courante :" @@ -3148,7 +3468,8 @@ msgid "Remove Template" msgstr "Supprimer le modèle" #: editor/export_template_manager.cpp -msgid "Select template file" +#, fuzzy +msgid "Select Template File" msgstr "Sélectionner le fichier de modèle" #: editor/export_template_manager.cpp @@ -3212,7 +3533,8 @@ msgid "No name provided." msgstr "Aucun nom renseigné." #: editor/filesystem_dock.cpp -msgid "Provided name contains invalid characters" +#, fuzzy +msgid "Provided name contains invalid characters." msgstr "Le nom renseigné contient des caractères invalides" #: editor/filesystem_dock.cpp @@ -3240,19 +3562,27 @@ msgid "Duplicating folder:" msgstr "Duplication du dossier :" #: editor/filesystem_dock.cpp -msgid "Open Scene(s)" -msgstr "Ouvrir une(des) scène(s)" +#, fuzzy +msgid "New Inherited Scene" +msgstr "Nouvelle scène héritée…" + +#: editor/filesystem_dock.cpp +#, fuzzy +msgid "Open Scenes" +msgstr "Ouvrir une scène" #: editor/filesystem_dock.cpp msgid "Instance" msgstr "Instance" #: editor/filesystem_dock.cpp -msgid "Add to favorites" +#, fuzzy +msgid "Add to Favorites" msgstr "Ajouter aux favoris" #: editor/filesystem_dock.cpp -msgid "Remove from favorites" +#, fuzzy +msgid "Remove from Favorites" msgstr "Supprimer des favoris" #: editor/filesystem_dock.cpp @@ -3283,11 +3613,13 @@ msgstr "Nouveau script…" msgid "New Resource..." msgstr "Nouvelle ressource…" -#: editor/filesystem_dock.cpp editor/script_editor_debugger.cpp +#: editor/filesystem_dock.cpp editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_editor_debugger.cpp msgid "Expand All" msgstr "Développer tout" -#: editor/filesystem_dock.cpp editor/script_editor_debugger.cpp +#: editor/filesystem_dock.cpp editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_editor_debugger.cpp msgid "Collapse All" msgstr "Réduire tout" @@ -3299,19 +3631,22 @@ msgid "Rename" msgstr "Renommer" #: editor/filesystem_dock.cpp -msgid "Previous Directory" -msgstr "Répertoire précédent" +#, fuzzy +msgid "Previous Folder/File" +msgstr "Dossier précédent" #: editor/filesystem_dock.cpp -msgid "Next Directory" -msgstr "Répertoire suivant" +#, fuzzy +msgid "Next Folder/File" +msgstr "Dossier suivant" #: editor/filesystem_dock.cpp msgid "Re-Scan Filesystem" msgstr "Analyser à nouveau le système de fichiers" #: editor/filesystem_dock.cpp -msgid "Toggle split mode" +#, fuzzy +msgid "Toggle Split Mode" msgstr "Activer/désactiver le mode scindé" #: editor/filesystem_dock.cpp @@ -3343,7 +3678,7 @@ msgstr "Écraser" msgid "Create Script" msgstr "Créer un script" -#: editor/find_in_files.cpp +#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp msgid "Find in Files" msgstr "Rechercher dans les fichiers" @@ -3359,6 +3694,12 @@ msgstr "Dossier :" msgid "Filters:" msgstr "Filtres :" +#: editor/find_in_files.cpp +msgid "" +"Include the files with the following extensions. Add or remove them in " +"ProjectSettings." +msgstr "" + #: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp msgid "Find..." @@ -3800,7 +4141,8 @@ msgid "Open Animation Node" msgstr "Ouvrir le NÅ“ud Animation" #: editor/plugins/animation_blend_space_2d_editor.cpp -msgid "Triangle already exists" +#, fuzzy +msgid "Triangle already exists." msgstr "Le triangle existe déjà " #: editor/plugins/animation_blend_space_2d_editor.cpp @@ -3876,7 +4218,6 @@ msgid "Node Moved" msgstr "NÅ“ud déplacé" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Unable to connect, port may be in use or connection may be invalid." msgstr "" "Impossible de se connecter, le port peut être en cours d'utilisation ou la " @@ -3951,7 +4292,8 @@ msgid "Edit Filtered Tracks:" msgstr "Modifier les pistes filtrées :" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -msgid "Enable filtering" +#, fuzzy +msgid "Enable Filtering" msgstr "Activer le filtrage" #: editor/plugins/animation_player_editor_plugin.cpp @@ -4067,10 +4409,6 @@ msgid "Animation" msgstr "Animation" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "New" -msgstr "Nouveau" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Edit Transitions..." msgstr "Modification Transitions..." @@ -4087,14 +4425,15 @@ msgid "Autoplay on Load" msgstr "Lecture automatique au chargement" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Onion Skinning" -msgstr "Effet pelure d'oignon" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Enable Onion Skinning" msgstr "Activer l'effet « pelure d'oignon »" #: editor/plugins/animation_player_editor_plugin.cpp +#, fuzzy +msgid "Onion Skinning Options" +msgstr "Effet pelure d'oignon" + +#: editor/plugins/animation_player_editor_plugin.cpp msgid "Directions" msgstr "Directions" @@ -4645,10 +4984,6 @@ msgid "Move CanvasItem" msgstr "Déplacer l'élément de canevas" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Presets for the anchors and margins values of a Control node." -msgstr "Préréglages pour les ancres et les marges d'un nÅ“ud Control." - -#: editor/plugins/canvas_item_editor_plugin.cpp msgid "" "Children of containers have their anchors and margins values overridden by " "their parent." @@ -4657,6 +4992,16 @@ msgstr "" "leur parent." #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Presets for the anchors and margins values of a Control node." +msgstr "Préréglages pour les ancres et les marges d'un nÅ“ud Control." + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"When active, moving Control nodes changes their anchors instead of their " +"margins." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Anchors only" msgstr "Uniquement les ancres" @@ -4669,10 +5014,52 @@ msgid "Change Anchors" msgstr "Modifier les ancres" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Lock Selected" +msgstr "Outil sélection" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Unlock Selected" +msgstr "Supprimer la selection" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Group Selected" +msgstr "Copier la sélection" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Ungroup Selected" +msgstr "Copier la sélection" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Paste Pose" msgstr "Coller la pose" #: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Create Custom Bone(s) from Node(s)" +msgstr "Créer des os personnalisés à partir d'un ou de plusieurs nÅ“uds" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Clear Bones" +msgstr "Vider la pose" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Make IK Chain" +msgstr "Créer une chaîne IK" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Clear IK Chain" +msgstr "Effacer la chaîne IK" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "" "Warning: Children of a container get their position and size determined only " "by their parent." @@ -4750,7 +5137,8 @@ msgid "Snapping Options" msgstr "Options de magnétisme" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to grid" +#, fuzzy +msgid "Snap to Grid" msgstr "Accrocher à la grille" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4771,31 +5159,38 @@ msgid "Use Pixel Snap" msgstr "Aligner au pixel près" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Smart snapping" +#, fuzzy +msgid "Smart Snapping" msgstr "Magnétisme intelligent" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to parent" +#, fuzzy +msgid "Snap to Parent" msgstr "Aimanter au parent" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node anchor" +#, fuzzy +msgid "Snap to Node Anchor" msgstr "Accrocher à l'ancre du nÅ“ud" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node sides" +#, fuzzy +msgid "Snap to Node Sides" msgstr "Accrocher aux flancs du nÅ“ud" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node center" +#, fuzzy +msgid "Snap to Node Center" msgstr "Accrocher au centre du nÅ“ud" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to other nodes" +#, fuzzy +msgid "Snap to Other Nodes" msgstr "Accrocher aux autres nÅ“uds" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to guides" +#, fuzzy +msgid "Snap to Guides" msgstr "Accrocher aux guides" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4809,10 +5204,12 @@ msgid "Unlock the selected object (can be moved)." msgstr "Déverouiller l'objet sélectionné (il pourra être déplacé de nouveau)." #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Makes sure the object's children are not selectable." msgstr "Rendre la sélection des enfants de l'objet impossible." #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Restores the object's children's ability to be selected." msgstr "Rendre la sélection des enfants de l'objet de nouveau possible." @@ -4825,14 +5222,6 @@ msgid "Show Bones" msgstr "Afficher les os" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Make IK Chain" -msgstr "Créer une chaîne IK" - -#: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Clear IK Chain" -msgstr "Effacer la chaîne IK" - -#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Make Custom Bone(s) from Node(s)" msgstr "Créer des os personnalisés à partir d'un ou de plusieurs nÅ“uds" @@ -4883,25 +5272,24 @@ msgid "Frame Selection" msgstr "Cadrer la sélection" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Layout" -msgstr "Disposition sur l'écran" +msgid "Preview Canvas Scale" +msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Translation mask for inserting keys." -msgstr "" +msgstr "Masque de translation pour l'insertion des clés." #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Rotation mask for inserting keys." -msgstr "" +msgstr "Masque de rotation pour l'insertion des clés." #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Scale mask for inserting keys." -msgstr "" +msgstr "Masque de mise à l'échelle pour l'insertion des clés." #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Insert keys (based on mask)." -msgstr "Insérer une clé (pistes existantes)" +msgstr "Insérer des clés (en fonction du masque)." #: editor/plugins/canvas_item_editor_plugin.cpp msgid "" @@ -4910,11 +5298,15 @@ msgid "" "Keys are only added to existing tracks, no new tracks will be created.\n" "Keys must be inserted manually for the first time." msgstr "" +"Insertion automatique des clés lors de la translation des objets, rotation à " +"l'échelle (en fonction du masque).\n" +"Les clés ne sont ajoutées qu'aux pistes existantes, aucune nouvelle piste ne " +"sera créée.\n" +"Les clés doivent être insérées manuellement pour la première fois." #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Auto Insert Key" -msgstr "Insérer une clé d'animation" +msgstr "Auto insertion de clé" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Insert Key (Existing Tracks)" @@ -4937,6 +5329,11 @@ msgid "Divide grid step by 2" msgstr "Diviser le pas de la grille par 2" #: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Pan View" +msgstr "Vue arrière" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Add %s" msgstr "Ajouter %s" @@ -4959,7 +5356,8 @@ msgid "Error instancing scene from %s" msgstr "Erreur d'instanciation de la scène depuis %s" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Change default type" +#, fuzzy +msgid "Change Default Type" msgstr "Changer le type par défaut" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -5047,20 +5445,22 @@ msgid "Create Emission Points From Node" msgstr "Créer des points d'émission depuis le nÅ“ud" #: editor/plugins/curve_editor_plugin.cpp -msgid "Flat0" +#, fuzzy +msgid "Flat 0" msgstr "Plat0" #: editor/plugins/curve_editor_plugin.cpp -msgid "Flat1" +#, fuzzy +msgid "Flat 1" msgstr "Plat1" -#: editor/plugins/curve_editor_plugin.cpp -msgid "Ease in" -msgstr "Lent sur le début" +#: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp +msgid "Ease In" +msgstr "Ease in" -#: editor/plugins/curve_editor_plugin.cpp -msgid "Ease out" -msgstr "Lent sur la fin" +#: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp +msgid "Ease Out" +msgstr "Ease out" #: editor/plugins/curve_editor_plugin.cpp msgid "Smoothstep" @@ -5079,23 +5479,28 @@ msgid "Load Curve Preset" msgstr "Charger un pré-réglage de courbe" #: editor/plugins/curve_editor_plugin.cpp -msgid "Add point" +#, fuzzy +msgid "Add Point" msgstr "Ajouter un point" #: editor/plugins/curve_editor_plugin.cpp -msgid "Remove point" +#, fuzzy +msgid "Remove Point" msgstr "Supprimer point" #: editor/plugins/curve_editor_plugin.cpp -msgid "Left linear" +#, fuzzy +msgid "Left Linear" msgstr "Linéaire gauche" #: editor/plugins/curve_editor_plugin.cpp -msgid "Right linear" +#, fuzzy +msgid "Right Linear" msgstr "Linéaire droite" #: editor/plugins/curve_editor_plugin.cpp -msgid "Load preset" +#, fuzzy +msgid "Load Preset" msgstr "Charger prérèglage" #: editor/plugins/curve_editor_plugin.cpp @@ -5151,11 +5556,17 @@ msgid "This doesn't work on scene root!" msgstr "Cela ne fonctionne pas sur la racine de la scène !" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Trimesh Shape" +#, fuzzy +msgid "Create Trimesh Static Shape" msgstr "Créer une forme Trimesh" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Shape" +msgid "Failed creating shapes!" +msgstr "" + +#: editor/plugins/mesh_instance_editor_plugin.cpp +#, fuzzy +msgid "Create Convex Shape(s)" msgstr "Créer une forme convexe" #: editor/plugins/mesh_instance_editor_plugin.cpp @@ -5211,15 +5622,12 @@ msgid "Create Trimesh Static Body" msgstr "Créer un corps statique Trimesh" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Static Body" -msgstr "Créer un corps statique convexe" - -#: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Trimesh Collision Sibling" msgstr "Créer une collision Trimesh" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Collision Sibling" +#, fuzzy +msgid "Create Convex Collision Sibling(s)" msgstr "Créer une collision convexe" #: editor/plugins/mesh_instance_editor_plugin.cpp @@ -5378,6 +5786,11 @@ msgid "Create Navigation Polygon" msgstr "Créer Polygone de Navigation" #: editor/plugins/particles_2d_editor_plugin.cpp +#: editor/plugins/particles_editor_plugin.cpp +msgid "Convert to CPUParticles" +msgstr "Convertir en CPUParticles" + +#: editor/plugins/particles_2d_editor_plugin.cpp msgid "Generating Visibility Rect" msgstr "Génération du rectangle de visibilité" @@ -5392,11 +5805,6 @@ msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp #: editor/plugins/particles_editor_plugin.cpp -msgid "Convert to CPUParticles" -msgstr "Convertir en CPUParticles" - -#: editor/plugins/particles_2d_editor_plugin.cpp -#: editor/plugins/particles_editor_plugin.cpp msgid "Generation Time (sec):" msgstr "Temps de Génération (sec) :" @@ -5534,7 +5942,7 @@ msgstr "Fermer la courbe" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp editor/plugins/theme_editor_plugin.cpp -#: editor/project_export.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_export.cpp msgid "Options" msgstr "Options" @@ -5585,7 +5993,8 @@ msgid "Split Segment (in curve)" msgstr "Diviser le segment (en courbe)" #: editor/plugins/physical_bone_plugin.cpp -msgid "Move joint" +#, fuzzy +msgid "Move Joint" msgstr "Déplacer la jointure" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5826,7 +6235,6 @@ msgid "Open in Editor" msgstr "Ouvrir dans l'éditeur" #: editor/plugins/resource_preloader_editor_plugin.cpp -#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Load Resource" msgstr "Charger une ressource" @@ -5911,9 +6319,13 @@ msgid "Save Theme As..." msgstr "Enregistrer le thème sous…" #: editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "%s Class Reference" -msgstr " Référence de classe" +msgstr "Référence de classe %s" + +#: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp +msgid "Find Next" +msgstr "Correspondance suivante" #: editor/plugins/script_editor_plugin.cpp msgid "Toggle alphabetical sorting of the method list." @@ -5996,10 +6408,6 @@ msgstr "Fermer les documentations" msgid "Close All" msgstr "Fermer tout" -#: editor/plugins/script_editor_plugin.cpp -msgid "Close Other Tabs" -msgstr "Fermer les autres onglets" - #: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp msgid "Run" msgstr "Lancer" @@ -6008,11 +6416,6 @@ msgstr "Lancer" msgid "Toggle Scripts Panel" msgstr "Afficher/Cacher le panneau des scripts" -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/script_text_editor.cpp -msgid "Find Next" -msgstr "Correspondance suivante" - #: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp msgid "Step Over" msgstr "Sortir" @@ -6039,7 +6442,8 @@ msgid "Debug with External Editor" msgstr "Déboguer avec un éditeur externe" #: editor/plugins/script_editor_plugin.cpp -msgid "Open Godot online documentation" +#, fuzzy +msgid "Open Godot online documentation." msgstr "Ouvrir la documentation Godot en ligne" #: editor/plugins/script_editor_plugin.cpp @@ -6047,7 +6451,8 @@ msgid "Request Docs" msgstr "Demande de documentation" #: editor/plugins/script_editor_plugin.cpp -msgid "Help improve the Godot documentation by giving feedback" +#, fuzzy +msgid "Help improve the Godot documentation by giving feedback." msgstr "Aider à améliorer la documentation de Godot en donnant vos réactions" #: editor/plugins/script_editor_plugin.cpp @@ -6075,10 +6480,12 @@ msgstr "" "Quelle action doit être prise ? :" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp msgid "Reload" msgstr "Recharger" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp msgid "Resave" msgstr "Ré-enregistrer" @@ -6091,6 +6498,31 @@ msgid "Search Results" msgstr "Résultats de recherche" #: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Connections to method:" +msgstr "Connecter au nÅ“ud :" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Source" +msgstr "Ressource" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Signal" +msgstr "Signaux" + +#: editor/plugins/script_text_editor.cpp +msgid "Target" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "" +"Missing connected method '%s' for signal '%s' from node '%s' to node '%s'." +msgstr "Rien n'est connecté à l'entrée « %s » du nÅ“ud « %s »." + +#: editor/plugins/script_text_editor.cpp msgid "Line" msgstr "Ligne" @@ -6102,10 +6534,6 @@ msgstr "(ignorer)" msgid "Go to Function" msgstr "Aller à la fonction" -#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp -msgid "Standard" -msgstr "Standard" - #: editor/plugins/script_text_editor.cpp msgid "Only resources from filesystem can be dropped." msgstr "Seules les ressources du système de fichiers peuvent être abaissées." @@ -6138,6 +6566,11 @@ msgstr "Majuscule à chaque mot" msgid "Syntax Highlighter" msgstr "Coloration syntaxique" +#: editor/plugins/script_text_editor.cpp +#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp +msgid "Bookmarks" +msgstr "" + #: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" @@ -6165,6 +6598,26 @@ msgid "Toggle Comment" msgstr "Commenter/décommenter" #: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Toggle Bookmark" +msgstr "Basculer en vue libre" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Go to Next Bookmark" +msgstr "Aller au point d'arrêt suivant" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Go to Previous Bookmark" +msgstr "Aller au point d'arrêt précédent" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Remove All Bookmarks" +msgstr "Supprimer tous" + +#: editor/plugins/script_text_editor.cpp msgid "Fold/Unfold Line" msgstr "Réduire/Développer la ligne" @@ -6238,6 +6691,15 @@ msgid "Contextual Help" msgstr "Aide contextuelle" #: editor/plugins/shader_editor_plugin.cpp +#, fuzzy +msgid "" +"This shader has been modified on on disk.\n" +"What action should be taken?" +msgstr "" +"Les fichiers suivants sont plus récents sur le disque.\n" +"Quelle action doit être prise ? :" + +#: editor/plugins/shader_editor_plugin.cpp msgid "Shader" msgstr "Shader" @@ -6583,7 +7045,8 @@ msgid "Right View" msgstr "Vue de droite" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Switch Perspective/Orthogonal view" +#, fuzzy +msgid "Switch Perspective/Orthogonal View" msgstr "Basculer entre la vue perspective et orthogonale" #: editor/plugins/spatial_editor_plugin.cpp @@ -6623,11 +7086,13 @@ msgid "Toggle Freelook" msgstr "Basculer en vue libre" #: editor/plugins/spatial_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Transform" msgstr "Transformation" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Snap object to floor" +#, fuzzy +msgid "Snap Object to Floor" msgstr "Aligner l'objet sur le sol" #: editor/plugins/spatial_editor_plugin.cpp @@ -6740,24 +7205,20 @@ msgid "Nameless gizmo" msgstr "Gadget sans nom" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy msgid "Create Mesh2D" -msgstr "Créer un maillage 2D" +msgstr "Créer un Mesh2D" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy msgid "Create Polygon2D" -msgstr "Créer un Polygon3D" +msgstr "Créer un Polygon2D" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy msgid "Create CollisionPolygon2D" -msgstr "Créer le polygone de collision" +msgstr "Créer un CollisionPolygon2D" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy msgid "Create LightOccluder2D" -msgstr "Créer un polygone occulteur" +msgstr "Créer un LightOccluder2D" #: editor/plugins/sprite_editor_plugin.cpp msgid "Sprite is empty!" @@ -6774,43 +7235,36 @@ msgid "Invalid geometry, can't replace by mesh." msgstr "Géométrie invalide, impossible de remplacer par un maillage." #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy -msgid "Invalid geometry, can't create polygon." -msgstr "Géométrie invalide, impossible de remplacer par un maillage." +msgid "Convert to Mesh2D" +msgstr "Convertir en Mesh2D" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy -msgid "Invalid geometry, can't create collision polygon." -msgstr "Géométrie invalide, impossible de remplacer par un maillage." +msgid "Invalid geometry, can't create polygon." +msgstr "Géométrie invalide, impossible de créer le polygone." #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy -msgid "Invalid geometry, can't create light occluder." -msgstr "Géométrie invalide, impossible de remplacer par un maillage." +msgid "Convert to Polygon2D" +msgstr "Convertir en Polygon2D" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Sprite" -msgstr "Sprite" +msgid "Invalid geometry, can't create collision polygon." +msgstr "Géométrie invalide, impossible de créer le polygone de collision." #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy -msgid "Convert to Mesh2D" -msgstr "Convertir en maillage 2D" +msgid "Create CollisionPolygon2D Sibling" +msgstr "Créer un CollisionPolygon2D frère" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy -msgid "Convert to Polygon2D" -msgstr "Déplacer le polygone" +msgid "Invalid geometry, can't create light occluder." +msgstr "Géométrie invalide, impossible de créer l'occulteur de lumière." #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy -msgid "Create CollisionPolygon2D Sibling" -msgstr "Créer le polygone de collision" +msgid "Create LightOccluder2D Sibling" +msgstr "Créer un LightOccluder2D frère" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy -msgid "Create LightOccluder2D Sibling" -msgstr "Créer un polygone occulteur" +msgid "Sprite" +msgstr "Sprite" #: editor/plugins/sprite_editor_plugin.cpp msgid "Simplification: " @@ -6829,20 +7283,30 @@ msgid "Settings:" msgstr "Paramètres :" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "ERROR: Couldn't load frame resource!" -msgstr "ERREUR : Impossible de charger la resource de type trame !" +#, fuzzy +msgid "No Frames Selected" +msgstr "Cadrer la sélection" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Add %d Frame(s)" +msgstr "Ajouter une image" #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Add Frame" msgstr "Ajouter une image" #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "ERROR: Couldn't load frame resource!" +msgstr "ERREUR : Impossible de charger la resource de type trame !" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Resource clipboard is empty or not a texture!" msgstr "Le presse-papiers des ressources est vide ou n'est pas une texture !" #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Paste Frame" -msgstr "Coller Frame" +msgstr "Coller une image" #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Add Empty" @@ -6850,7 +7314,7 @@ msgstr "Ajouter vide" #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Change Animation FPS" -msgstr "Modifier le taux d'IPS de l'animation" +msgstr "Modifier le nombre d'images par seconde de l'animation" #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "(empty)" @@ -6866,7 +7330,7 @@ msgstr "Nouvelle animation" #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Speed (FPS):" -msgstr "Vitesse (FPS) :" +msgstr "Vitesse (IPS) :" #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Loop" @@ -6877,6 +7341,15 @@ msgid "Animation Frames:" msgstr "Trames d'animation :" #: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Add a Texture from File" +msgstr "Ajouter des textures au TileSet." + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Add Frames from a Sprite Sheet" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Insert Empty (Before)" msgstr "Insérer vide (avant)" @@ -6886,11 +7359,36 @@ msgstr "Insérer vide (après)" #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Move (Before)" -msgstr "Déplacer (Avant)" +msgstr "Déplacer (avant)" #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Move (After)" -msgstr "Déplacer (Après)" +msgstr "Déplacer (après)" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Select Frames" +msgstr "Pile des appels" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Horizontal:" +msgstr "Retourner horizontalement" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Vertical:" +msgstr "Vertex" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Select/Clear All Frames" +msgstr "Tout sélectionner" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Create Frames from Sprite Sheet" +msgstr "Créer depuis la scène" #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "SpriteFrames" @@ -6957,12 +7455,13 @@ msgstr "Tout ajouter" msgid "Remove All Items" msgstr "Supprimer tous" -#: editor/plugins/theme_editor_plugin.cpp +#: editor/plugins/theme_editor_plugin.cpp editor/project_manager.cpp msgid "Remove All" msgstr "Supprimer tout" #: editor/plugins/theme_editor_plugin.cpp -msgid "Edit theme..." +#, fuzzy +msgid "Edit Theme" msgstr "Modifier le thème…" #: editor/plugins/theme_editor_plugin.cpp @@ -6990,18 +7489,25 @@ msgid "Create From Current Editor Theme" msgstr "Créer à partir du thème actuel de l'éditeur" #: editor/plugins/theme_editor_plugin.cpp -msgid "CheckBox Radio1" -msgstr "Case à cocher Radio1" +#, fuzzy +msgid "Toggle Button" +msgstr "Bouton de souris" #: editor/plugins/theme_editor_plugin.cpp -msgid "CheckBox Radio2" -msgstr "Case à cocher Radio2" +#, fuzzy +msgid "Disabled Button" +msgstr "Bouton du milieu" #: editor/plugins/theme_editor_plugin.cpp msgid "Item" msgstr "Item" #: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Disabled Item" +msgstr "Supprimer élément" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Check Item" msgstr "Item à cocher" @@ -7018,6 +7524,24 @@ msgid "Checked Radio Item" msgstr "Item radio coché" #: editor/plugins/theme_editor_plugin.cpp +msgid "Named Sep." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Submenu" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Item 1" +msgstr "Item" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Item 2" +msgstr "Item" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Has" msgstr "Possède" @@ -7026,8 +7550,9 @@ msgid "Many" msgstr "Plusieurs" #: editor/plugins/theme_editor_plugin.cpp -msgid "Has,Many,Options" -msgstr "Possède,Plusieurs,Options" +#, fuzzy +msgid "Disabled LineEdit" +msgstr "Désactiver l'indicateur d'activité" #: editor/plugins/theme_editor_plugin.cpp msgid "Tab 1" @@ -7042,6 +7567,19 @@ msgid "Tab 3" msgstr "Onglet 3" #: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Editable Item" +msgstr "Enfants modifiables" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Subtree" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Has,Many,Options" +msgstr "Possède,Plusieurs,Options" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Data Type:" msgstr "Type de données :" @@ -7074,6 +7612,7 @@ msgid "Fix Invalid Tiles" msgstr "Résoudre les tuiles invalides" #: editor/plugins/tile_map_editor_plugin.cpp +#: modules/gridmap/grid_map_editor_plugin.cpp msgid "Cut Selection" msgstr "Couper la sélection" @@ -7114,35 +7653,51 @@ msgid "Mirror Y" msgstr "Miroir Y" #: editor/plugins/tile_map_editor_plugin.cpp +msgid "Disable Autotile" +msgstr "" + +#: editor/plugins/tile_map_editor_plugin.cpp +#, fuzzy +msgid "Enable Priority" +msgstr "Modifier la priorité de la tuile" + +#: editor/plugins/tile_map_editor_plugin.cpp msgid "Paint Tile" msgstr "Peindre la case" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Pick Tile" -msgstr "Sélectionner une case" +msgid "" +"Shift+RMB: Line Draw\n" +"Shift+Ctrl+RMB: Rectangle Paint" +msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Copy Selection" -msgstr "Copier la sélection" +msgid "Pick Tile" +msgstr "Sélectionner une case" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Rotate left" +#, fuzzy +msgid "Rotate Left" msgstr "Rotation à gauche" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Rotate right" +#, fuzzy +msgid "Rotate Right" msgstr "Rotation à droite" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Flip horizontally" +#, fuzzy +msgid "Flip Horizontally" msgstr "Retourner horizontalement" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Flip vertically" +#, fuzzy +msgid "Flip Vertically" msgstr "Retourner verticalement" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Clear transform" +#, fuzzy +msgid "Clear Transform" msgstr "Supprimer la transformation" #: editor/plugins/tile_set_editor_plugin.cpp @@ -7178,6 +7733,46 @@ msgid "Select the previous shape, subtile, or Tile." msgstr "Sélectionner la forme précédente, sous-tuile, ou tuile." #: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Region Mode" +msgstr "Mode d'exécution :" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Collision Mode" +msgstr "Mode d'interpolation" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Occlusion Mode" +msgstr "Modifier le polygone d'occlusion" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Navigation Mode" +msgstr "Créer un maillage de navigation" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Bitmask Mode" +msgstr "Mode rotation" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Priority Mode" +msgstr "Mode d'exportation :" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Icon Mode" +msgstr "Mode navigation" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Z Index Mode" +msgstr "Mode navigation" + +#: editor/plugins/tile_set_editor_plugin.cpp msgid "Copy bitmask." msgstr "Copier le masque de bit." @@ -7261,9 +7856,11 @@ msgid "Delete polygon." msgstr "Supprimer le polygone." #: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy msgid "" "LMB: Set bit on.\n" "RMB: Set bit off.\n" +"Shift+LMB: Set wildcard bit.\n" "Click on another Tile to edit it." msgstr "" "Bouton gauche : Activer le bit.\n" @@ -7381,6 +7978,79 @@ msgid "TileSet" msgstr "TileSet" #: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Add input +" +msgstr "Ajouter une entrée" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Add output +" +msgstr "Ajouter une entrée" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar" +msgstr "Échelle :" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector" +msgstr "Inspecteur" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Add input port" +msgstr "Ajouter une entrée" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add output port" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change input port type" +msgstr "Changer le type par défaut" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change output port type" +msgstr "Changer le type par défaut" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change input port name" +msgstr "Changer nom de l'entrée" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change output port name" +msgstr "Changer nom d'argument" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Remove input port" +msgstr "Supprimer point" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Remove output port" +msgstr "Supprimer point" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Set expression" +msgstr "Changer l'expression" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Resize VisualShader node" +msgstr "VisualShader" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Set Uniform Name" msgstr "Définir le nom de l'uniforme" @@ -7397,9 +8067,8 @@ msgid "Duplicate Nodes" msgstr "Dupliquer le(s) nÅ“ud(s)" #: editor/plugins/visual_shader_editor_plugin.cpp -#, fuzzy msgid "Delete Nodes" -msgstr "Supprimer un nÅ“ud" +msgstr "Supprimer des nÅ“uds" #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Visual Shader Input Type Changed" @@ -7418,6 +8087,853 @@ msgid "Light" msgstr "Lumière" #: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Create Shader Node" +msgstr "Créer un nÅ“ud" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Color function." +msgstr "Aller à la fonction" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Color operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Grayscale function." +msgstr "Créer une fonction" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts HSV vector to RGB equivalent." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts RGB vector to HSV equivalent." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Sepia function." +msgstr "Renommer la fonction" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Burn operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Darken operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Difference operator." +msgstr "Différences seules" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Dodge operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "HardLight operator" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Lighten operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Overlay operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Screen operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "SoftLight operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Color constant." +msgstr "Constante" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Color uniform." +msgstr "Supprimer la transformation" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns an associated vector if the provided scalars are equal, greater or " +"less." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns an associated vector if the provided boolean value is true or false." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'camera' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'inv_camera' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'inv_projection' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'normal' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'projection' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'time' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'viewport_size' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'world' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'texture_pixel_size' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Input parameter." +msgstr "Aimanter au parent" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'binormal' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'fragcoord' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_coord' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_uv' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'side' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'tangent' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv2' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'vertex' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'view' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'albedo' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'attenuation' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'diffuse' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_color' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'roughness' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'specular' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'transmission' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'modelview' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_size' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'tangent' input parameter for vertex and fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_pass' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_coord' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_pixel_size' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_uv' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_alpha' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_height' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_uv' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_vec' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'normal' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'shadow_color' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'extra' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'projection' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'vertex' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'world' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'active' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'custom' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'custom_alpha' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'delta' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'emission_transform' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'index' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'lifetime' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'restart' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'time' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'transform' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'velocity' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar function." +msgstr "Mettre à l'échelle la sélection" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar operator." +msgstr "Échelle (ratio) :" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "E constant (2.718282). Represents the base of the natural logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Epsilon constant (0.00001). Smallest possible scalar number." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Phi constant (1.618034). Golden ratio." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi/4 constant (0.785398) or 45 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi/2 constant (1.570796) or 90 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi constant (3.141593) or 180 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Tau constant (6.283185) or 360 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Sqrt2 constant (1.414214). Square root of 2." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the absolute value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-tangent of the parameters." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Finds the nearest integer that is greater than or equal to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Constrains a value to lie between two further values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts a quantity in radians to degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-e Exponential." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-2 Exponential." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Finds the nearest integer less than or equal to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Computes the fractional part of the argument." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the inverse of the square root of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Natural logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-2 logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the greater of two values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the lesser of two values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Linear interpolation between two scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the opposite value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 - scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns the value of the first parameter raised to the power of the second." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts a quantity in degrees to radians." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 / scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the nearest integer to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the nearest even integer to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Clamps the value between 0.0 and 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Extracts the sign of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the square root of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( scalar(edge0), scalar(edge1), scalar(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if x is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( scalar(edge), scalar(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the truncated value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Adds scalar to scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Divides scalar by scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies scalar by scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the remainder of the two scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Subtracts scalar from scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Scalar constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar uniform." +msgstr "Supprimer la transformation" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Perform the cubic texture lookup." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Perform the texture lookup." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Cubic texture uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "2D texture uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Transform function." +msgstr "Dialogue de transformation…" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) Calculate the outer product of a pair of vectors.\n" +"\n" +"OuterProduct treats the first parameter 'c' as a column vector (matrix with " +"one column) and the second parameter 'r' as a row vector (matrix with one " +"row) and does a linear algebraic matrix multiply 'c * r', yielding a matrix " +"whose number of rows is the number of components in 'c' and whose number of " +"columns is the number of components in 'r'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Composes transform from four vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Decomposes transform to four vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the determinant of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the inverse of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the transpose of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies transform by transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies vector by transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Transform constant." +msgstr "Transformation annulée." + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Transform uniform." +msgstr "Transformation annulée." + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector function." +msgstr "Affectation à la fonction." + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Composes vector from three scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Decomposes vector to three scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the cross product of two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the distance between two points." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the dot product of two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns a vector that points in the same direction as a reference vector. " +"The function has three vector parameters : N, the vector to orient, I, the " +"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 "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the length of a vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Linear interpolation between two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the normalize product of vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 - vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 / vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns a vector that points in the direction of reflection ( a : incident " +"vector, b : normal vector )." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns a vector that points in the direction of refraction." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( vector(edge0), vector(edge1), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if 'x' is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( scalar(edge0), scalar(edge1), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if 'x' is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( vector(edge), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( scalar(edge), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Adds vector to vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Divides vector by vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies vector by vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the remainder of the two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Subtracts vector from vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector uniform." +msgstr "Affectation à l'uniforme." + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Custom Godot Shader Language expression, with custom amount of input and " +"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 "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns falloff based on the dot product of surface normal and view " +"direction of camera (pass associated inputs to it)." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) (Fragment/Light mode only) Scalar derivative function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) (Fragment/Light mode only) Vector derivative function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Derivative in 'x' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Derivative in 'x' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Derivative in 'y' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Derivative in 'y' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Sum of absolute derivative " +"in 'x' and 'y'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Sum of absolute derivative " +"in 'x' and 'y'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "VisualShader" msgstr "VisualShader" @@ -7616,6 +9132,10 @@ msgid "Directory already contains a Godot project." msgstr "Le répertoire contient déjà un projet Godot." #: editor/project_manager.cpp +msgid "New Game Project" +msgstr "Nouveau projet de jeu" + +#: editor/project_manager.cpp msgid "Imported Project" msgstr "Projet importé" @@ -7665,10 +9185,6 @@ msgid "Rename Project" msgstr "Renommer le projet" #: editor/project_manager.cpp -msgid "New Game Project" -msgstr "Nouveau projet de jeu" - -#: editor/project_manager.cpp msgid "Import Existing Project" msgstr "Importer un projet existant" @@ -7697,10 +9213,6 @@ msgid "Project Name:" msgstr "Nom du projet :" #: editor/project_manager.cpp -msgid "Create folder" -msgstr "Créer dossier" - -#: editor/project_manager.cpp msgid "Project Path:" msgstr "Chemin du projet :" @@ -7709,10 +9221,6 @@ msgid "Project Installation Path:" msgstr "Chemin d'installation du projet :" #: editor/project_manager.cpp -msgid "Browse" -msgstr "Parcourir" - -#: editor/project_manager.cpp msgid "Renderer:" msgstr "Moteur de rendu :" @@ -7767,6 +9275,7 @@ msgid "Are you sure to open more than one project?" msgstr "Voulez-vous vraiment ouvrir plus d'un projet à la fois ?" #: editor/project_manager.cpp +#, fuzzy msgid "" "The following project settings file does not specify the version of Godot " "through which it was created.\n" @@ -7775,8 +9284,8 @@ msgid "" "\n" "If you proceed with opening it, it will be converted to Godot's current " "configuration file format.\n" -"Warning: You will not be able to open the project with previous versions of " -"the engine anymore." +"Warning: You won't be able to open the project with previous versions of the " +"engine anymore." msgstr "" "Le fichier de configuration de projet ci-dessous n'indique pas par quelle " "version de Godot il a été généré.\n" @@ -7789,6 +9298,7 @@ msgstr "" "versions du moteur." #: editor/project_manager.cpp +#, fuzzy msgid "" "The following project settings file was generated by an older engine " "version, and needs to be converted for this version:\n" @@ -7796,8 +9306,8 @@ msgid "" "%s\n" "\n" "Do you want to convert it?\n" -"Warning: You will not be able to open the project with previous versions of " -"the engine anymore." +"Warning: You won't be able to open the project with previous versions of the " +"engine anymore." msgstr "" "Le fichier de configuration de projet ci-dessous a été généré par une " "précédente version du moteur, et doit être mis à niveau pour cette " @@ -7818,9 +9328,10 @@ msgstr "" "du moteur, dont les paramètres ne sont pas compatibles avec cette version." #: editor/project_manager.cpp +#, fuzzy msgid "" "Can't run project: no main scene defined.\n" -"Please edit the project and set the main scene in \"Project Settings\" under " +"Please edit the project and set the main scene in the Project Settings under " "the \"Application\" category." msgstr "" "Impossible de lancer le projet : pas de scène principale définie.\n" @@ -7836,27 +9347,49 @@ msgstr "" "Veuillez cliquer sur « Édition » pour déclencher l'importation initiale." #: editor/project_manager.cpp -msgid "Are you sure to run more than one project?" +#, fuzzy +msgid "Are you sure to run %d projects at once?" msgstr "Voulez-vous vraiment lancer plus d'un projet à la fois ?" #: editor/project_manager.cpp -msgid "Remove project from the list? (Folder contents will not be modified)" +#, fuzzy +msgid "" +"Remove %d projects from the list?\n" +"The project folders' contents won't be modified." +msgstr "" +"Supprimer le projet de la liste ? (Le contenu du dossier ne sera pas modifié)" + +#: editor/project_manager.cpp +#, fuzzy +msgid "" +"Remove this project from the list?\n" +"The project folder's contents won't be modified." msgstr "" "Supprimer le projet de la liste ? (Le contenu du dossier ne sera pas modifié)" #: editor/project_manager.cpp +#, fuzzy +msgid "" +"Remove all missing projects from the list? (Folders contents will not be " +"modified)" +msgstr "" +"Supprimer le projet de la liste ? (Le contenu du dossier ne sera pas modifié)" + +#: editor/project_manager.cpp +#, fuzzy msgid "" "Language changed.\n" -"The UI will update next time the editor or project manager starts." +"The interface will update after restarting the editor or project manager." msgstr "" "La langue a été modifiée.\n" "L'interface utilisateur sera mise à jour au prochain démarrage de l'éditeur " "ou du gestionnaire de projets." #: editor/project_manager.cpp +#, fuzzy msgid "" -"You are about the scan %s folders for existing Godot projects. Do you " -"confirm?" +"Are you sure to scan %s folders for existing Godot projects?\n" +"This could take a while." msgstr "" "Vous êtes sur le point de scanner les %s de dossiers pour les projets Godot " "existants. Est-ce que vous confirmez ?" @@ -7882,6 +9415,11 @@ msgid "New Project" msgstr "Nouveau projet" #: editor/project_manager.cpp +#, fuzzy +msgid "Remove Missing" +msgstr "Supprimer point" + +#: editor/project_manager.cpp msgid "Templates" msgstr "Modèles" @@ -7898,9 +9436,10 @@ msgid "Can't run project" msgstr "Impossible de lancer le projet" #: editor/project_manager.cpp +#, fuzzy msgid "" -"You don't currently have any projects.\n" -"Would you like to explore the official example projects in the Asset Library?" +"You currently don't have any projects.\n" +"Would you like to explore official example projects in the Asset Library?" msgstr "" "Vous n'avez pour l'instant aucun projet.\n" "Voulez-vous explorer les exemples de projets officiels dans l'Asset Library ?" @@ -7930,7 +9469,8 @@ msgstr "" "« \\ » ou « \" »" #: editor/project_settings_editor.cpp -msgid "Action '%s' already exists!" +#, fuzzy +msgid "An action with the name '%s' already exists." msgstr "L'action « %s » existe déjà !" #: editor/project_settings_editor.cpp @@ -8086,10 +9626,6 @@ msgstr "" "« \\ » ou « \" »." #: editor/project_settings_editor.cpp -msgid "Already existing" -msgstr "Existe déjà " - -#: editor/project_settings_editor.cpp msgid "Add Input Action" msgstr "Ajouter une action d'entrée" @@ -8154,7 +9690,8 @@ msgid "Override For..." msgstr "Écraser pour…" #: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp -msgid "Editor must be restarted for changes to take effect" +#, fuzzy +msgid "The editor must be restarted for changes to take effect." msgstr "L'éditeur doit être redémarré pour que les changements prennent effet" #: editor/project_settings_editor.cpp @@ -8214,11 +9751,13 @@ msgid "Locales Filter" msgstr "Filtre de langues" #: editor/project_settings_editor.cpp -msgid "Show all locales" +#, fuzzy +msgid "Show All Locales" msgstr "Montrer toutes les langues" #: editor/project_settings_editor.cpp -msgid "Show only selected locales" +#, fuzzy +msgid "Show Selected Locales Only" msgstr "Montrer uniquement les langues sélectionnées" #: editor/project_settings_editor.cpp @@ -8234,14 +9773,6 @@ msgid "AutoLoad" msgstr "AutoLoad" #: editor/property_editor.cpp -msgid "Ease In" -msgstr "Ease in" - -#: editor/property_editor.cpp -msgid "Ease Out" -msgstr "Ease out" - -#: editor/property_editor.cpp msgid "Zero" msgstr "Zéro" @@ -8315,7 +9846,8 @@ msgid "Suffix" msgstr "Suffixe" #: editor/rename_dialog.cpp -msgid "Advanced options" +#, fuzzy +msgid "Advanced Options" msgstr "Options avancées" #: editor/rename_dialog.cpp @@ -8577,8 +10109,9 @@ msgid "User Interface" msgstr "Interface utilisateur" #: editor/scene_tree_dock.cpp -msgid "Custom Node" -msgstr "NÅ“ud personnalisé" +#, fuzzy +msgid "Other Node" +msgstr "Supprimer un nÅ“ud" #: editor/scene_tree_dock.cpp msgid "Can't operate on nodes from a foreign scene!" @@ -8621,7 +10154,8 @@ msgid "Clear Inheritance" msgstr "Effacer l'héritage" #: editor/scene_tree_dock.cpp -msgid "Open documentation" +#, fuzzy +msgid "Open Documentation" msgstr "Ouvrir la documentation" #: editor/scene_tree_dock.cpp @@ -8648,7 +10182,7 @@ msgstr "Fusionner depuis la scène" msgid "Save Branch as Scene" msgstr "Sauvegarder la branche comme scène" -#: editor/scene_tree_dock.cpp +#: editor/scene_tree_dock.cpp editor/script_editor_debugger.cpp msgid "Copy Node Path" msgstr "Copier le chemin du nÅ“ud" @@ -8694,6 +10228,21 @@ msgid "Toggle Visible" msgstr "Rendre visible" #: editor/scene_tree_editor.cpp +#, fuzzy +msgid "Unlock Node" +msgstr "Sélectionner un nÅ“ud" + +#: editor/scene_tree_editor.cpp +#, fuzzy +msgid "Button Group" +msgstr "Ajouter au groupe" + +#: editor/scene_tree_editor.cpp +#, fuzzy +msgid "(Connecting From)" +msgstr "Erreur de connexion" + +#: editor/scene_tree_editor.cpp msgid "Node configuration warning:" msgstr "Avertissement de configuration de nÅ“ud :" @@ -8721,8 +10270,9 @@ msgstr "" "Le nÅ“ud fait partie de groupes.\n" "Cliquez pour afficher le panneau de gestion des groupes." -#: editor/scene_tree_editor.cpp editor/script_create_dialog.cpp -msgid "Open Script" +#: editor/scene_tree_editor.cpp +#, fuzzy +msgid "Open Script:" msgstr "Ouvrir un script" #: editor/scene_tree_editor.cpp @@ -8774,71 +10324,83 @@ msgid "Select a Node" msgstr "Sélectionner un nÅ“ud" #: editor/script_create_dialog.cpp -msgid "Error loading template '%s'" -msgstr "Erreur lors du chargement du modèle « %s »" +#, fuzzy +msgid "Path is empty." +msgstr "Le chemin est vide" #: editor/script_create_dialog.cpp -msgid "Error - Could not create script in filesystem." -msgstr "Erreur - Impossible de créer le script dans le système de fichiers." +#, fuzzy +msgid "Filename is empty." +msgstr "Le nom de fichier est vide" #: editor/script_create_dialog.cpp -msgid "Error loading script from %s" -msgstr "Erreur de chargement de script depuis %s" +#, fuzzy +msgid "Path is not local." +msgstr "Le chemin n'est pas local" #: editor/script_create_dialog.cpp -msgid "N/A" -msgstr "N/A" +#, fuzzy +msgid "Invalid base path." +msgstr "Chemin de base invalide" #: editor/script_create_dialog.cpp -msgid "Open Script/Choose Location" -msgstr "Ouvrir le script / Choisir l'emplacement" +#, fuzzy +msgid "A directory with the same name exists." +msgstr "Un dossier du même nom existe déjà " #: editor/script_create_dialog.cpp -msgid "Path is empty" -msgstr "Le chemin est vide" +#, fuzzy +msgid "Invalid extension." +msgstr "Extension invalide" #: editor/script_create_dialog.cpp -msgid "Filename is empty" -msgstr "Le nom de fichier est vide" +#, fuzzy +msgid "Wrong extension chosen." +msgstr "Choix d'extension erroné" #: editor/script_create_dialog.cpp -msgid "Path is not local" -msgstr "Le chemin n'est pas local" +msgid "Error loading template '%s'" +msgstr "Erreur lors du chargement du modèle « %s »" #: editor/script_create_dialog.cpp -msgid "Invalid base path" -msgstr "Chemin de base invalide" +msgid "Error - Could not create script in filesystem." +msgstr "Erreur - Impossible de créer le script dans le système de fichiers." #: editor/script_create_dialog.cpp -msgid "Directory of the same name exists" -msgstr "Un dossier du même nom existe déjà " +msgid "Error loading script from %s" +msgstr "Erreur de chargement de script depuis %s" #: editor/script_create_dialog.cpp -msgid "File exists, will be reused" -msgstr "Le fichier existe, il sera réutilisé" +msgid "N/A" +msgstr "N/A" #: editor/script_create_dialog.cpp -msgid "Invalid extension" -msgstr "Extension invalide" +#, fuzzy +msgid "Open Script / Choose Location" +msgstr "Ouvrir le script / Choisir l'emplacement" #: editor/script_create_dialog.cpp -msgid "Wrong extension chosen" -msgstr "Choix d'extension erroné" +msgid "Open Script" +msgstr "Ouvrir un script" #: editor/script_create_dialog.cpp -msgid "Invalid Path" -msgstr "Chemin invalide" +#, fuzzy +msgid "File exists, it will be reused." +msgstr "Le fichier existe, il sera réutilisé" #: editor/script_create_dialog.cpp -msgid "Invalid class name" +#, fuzzy +msgid "Invalid class name." msgstr "Nom de classe invalide" #: editor/script_create_dialog.cpp -msgid "Invalid inherited parent name or path" +#, fuzzy +msgid "Invalid inherited parent name or path." msgstr "Nom ou chemin parent hérité invalide" #: editor/script_create_dialog.cpp -msgid "Script valid" +#, fuzzy +msgid "Script is valid." msgstr "Script valide" #: editor/script_create_dialog.cpp @@ -8846,15 +10408,18 @@ msgid "Allowed: a-z, A-Z, 0-9 and _" msgstr "Autorisé : a-z, A-Z, 0-9 et _" #: editor/script_create_dialog.cpp -msgid "Built-in script (into scene file)" +#, fuzzy +msgid "Built-in script (into scene file)." msgstr "Script intégré (dans le fichier scène)" #: editor/script_create_dialog.cpp -msgid "Create new script file" +#, fuzzy +msgid "Will create a new script file." msgstr "Créer nouveau fichier de script" #: editor/script_create_dialog.cpp -msgid "Load existing script file" +#, fuzzy +msgid "Will load an existing script file." msgstr "Charger fichier de script existant" #: editor/script_create_dialog.cpp @@ -8986,6 +10551,10 @@ msgstr "Racine pour l'édition en direct :" msgid "Set From Tree" msgstr "Définir depuis l'arbre" +#: editor/script_editor_debugger.cpp +msgid "Export measures as CSV" +msgstr "" + #: editor/settings_config_dialog.cpp msgid "Erase Shortcut" msgstr "Effacer le raccourci" @@ -9115,6 +10684,15 @@ msgid "GDNativeLibrary" msgstr "GDNativeLibrary" #: 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 "Désactiver l'indicateur d'activité" + +#: modules/gdnative/gdnative_library_singleton_editor.cpp msgid "Library" msgstr "Bibliothèque" @@ -9203,8 +10781,9 @@ msgid "GridMap Fill Selection" msgstr "Remplissage de la sélection de GridMap" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "GridMap Duplicate Selection" -msgstr "Sélection de la duplication de GridMap" +#, fuzzy +msgid "GridMap Paste Selection" +msgstr "Suppression de la sélection de GridMap" #: modules/gridmap/grid_map_editor_plugin.cpp msgid "GridMap Paint" @@ -9271,18 +10850,6 @@ msgid "Cursor Clear Rotation" msgstr "Effacer rotation curseur" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Create Area" -msgstr "Créer zone" - -#: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Create Exterior Connector" -msgstr "Créer connecteur extérieur" - -#: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Erase Area" -msgstr "Effacer zone" - -#: modules/gridmap/grid_map_editor_plugin.cpp msgid "Clear Selection" msgstr "Supprimer la sélection" @@ -9645,18 +11212,11 @@ msgid "Available Nodes:" msgstr "NÅ“uds disponibles :" #: modules/visual_script/visual_script_editor.cpp -msgid "Select or create a function to edit graph" +#, fuzzy +msgid "Select or create a function to edit its graph." msgstr "Sélectionnez ou créez une fonction pour modifier le graphe" #: modules/visual_script/visual_script_editor.cpp -msgid "Edit Signal Arguments:" -msgstr "Modifier les arguments du signal :" - -#: modules/visual_script/visual_script_editor.cpp -msgid "Edit Variable:" -msgstr "Modifier la variable :" - -#: modules/visual_script/visual_script_editor.cpp msgid "Delete Selected" msgstr "Supprimer la selection" @@ -9795,6 +11355,19 @@ msgstr "" "dans le préréglage." #: platform/android/export/export.cpp +msgid "Custom build requires a valid Android SDK path in Editor Settings." +msgstr "" + +#: platform/android/export/export.cpp +msgid "Invalid Android SDK path for custom build in Editor Settings." +msgstr "" + +#: platform/android/export/export.cpp +msgid "" +"Android project is not installed for compiling. Install from Editor menu." +msgstr "" + +#: platform/android/export/export.cpp msgid "Invalid public key for APK expansion." msgstr "Clé publique invalide pour l'expansion APK." @@ -9802,6 +11375,34 @@ msgstr "Clé publique invalide pour l'expansion APK." msgid "Invalid package name:" msgstr "Nom de paquet invalide :" +#: platform/android/export/export.cpp +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 "" +"Android build version mismatch:\n" +" Template installed: %s\n" +" Godot Version: %s\n" +"Please reinstall Android build template from 'Project' menu." +msgstr "" + +#: platform/android/export/export.cpp +msgid "Building Android Project (gradle)" +msgstr "" + +#: 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 "" + +#: platform/android/export/export.cpp +msgid "No build apk generated at: " +msgstr "" + #: platform/iphone/export/export.cpp msgid "Identifier is missing." msgstr "L'identifiant est manquant." @@ -10123,31 +11724,36 @@ msgid "ARVRCamera must have an ARVROrigin node as its parent" msgstr "ARVRCamera doit avoir un nÅ“ud ARVROrigin comme parent" #: scene/3d/arvr_nodes.cpp -msgid "ARVRController must have an ARVROrigin node as its parent" +#, fuzzy +msgid "ARVRController must have an ARVROrigin node as its parent." msgstr "ARVRController doit avoir un nÅ“ud ARVROrigin comme parent" #: scene/3d/arvr_nodes.cpp +#, fuzzy msgid "" -"The controller id must not be 0 or this controller will not be bound to an " -"actual controller" +"The controller ID must not be 0 or this controller won't be bound to an " +"actual controller." msgstr "" "L'identifiant contrôleur ne doit pas être 0 ou ce contrôleur ne sera pas lié " "à un contrôleur valide" #: scene/3d/arvr_nodes.cpp -msgid "ARVRAnchor must have an ARVROrigin node as its parent" +#, fuzzy +msgid "ARVRAnchor must have an ARVROrigin node as its parent." msgstr "ARVRAnchor doit avoir un nÅ“ud ARVROrigin comme parent" #: scene/3d/arvr_nodes.cpp +#, fuzzy msgid "" -"The anchor id must not be 0 or this anchor will not be bound to an actual " -"anchor" +"The anchor ID must not be 0 or this anchor won't be bound to an actual " +"anchor." msgstr "" "L'identifiant d'ancrage ne doit pas être 0 ou cette ancre ne sera pas liée à " "une ancre valide" #: scene/3d/arvr_nodes.cpp -msgid "ARVROrigin requires an ARVRCamera child node" +#, fuzzy +msgid "ARVROrigin requires an ARVRCamera child node." msgstr "ARVROrigin requiert un nÅ“ud enfant ARVRCamera" #: scene/3d/baked_lightmap.cpp @@ -10228,9 +11834,10 @@ msgid "Nothing is visible because no mesh has been assigned." msgstr "Rien n'est visible car aucun maillage n'a été assigné." #: scene/3d/cpu_particles.cpp +#, fuzzy msgid "" -"CPUParticles animation requires the usage of a SpatialMaterial with " -"\"Billboard Particles\" enabled." +"CPUParticles animation requires the usage of a SpatialMaterial whose " +"Billboard Mode is set to \"Particle Billboard\"." msgstr "" "L'animation de CPUParticles a besoin d'un SpatialMaterial avec « Billboard " "Particles » activé." @@ -10280,9 +11887,10 @@ msgstr "" "passes." #: scene/3d/particles.cpp +#, fuzzy msgid "" -"Particles animation requires the usage of a SpatialMaterial with \"Billboard " -"Particles\" enabled." +"Particles animation requires the usage of a SpatialMaterial whose Billboard " +"Mode is set to \"Particle Billboard\"." msgstr "" "L'animation de Particles a besoin d'un SpatialMaterial avec « Billboard " "Particles » activé." @@ -10317,7 +11925,8 @@ msgstr "" "La propriété Path doit pointer vers un nÅ“ud Spatial valide pour fonctionner." #: scene/3d/soft_body.cpp -msgid "This body will be ignored until you set a mesh" +#, fuzzy +msgid "This body will be ignored until you set a mesh." msgstr "Ce corps sera ignoré jusqu'à ce que vous définissiez un maillage" #: scene/3d/soft_body.cpp @@ -10426,10 +12035,11 @@ msgid "Add current color as a preset." msgstr "Ajouter la couleur courante comme pré-réglage." #: scene/gui/container.cpp +#, fuzzy msgid "" "Container by itself serves no purpose unless a script configures it's " "children placement behavior.\n" -"If you dont't intend to add a script, then please use a plain 'Control' node " +"If you don't intend to add a script, then please use a plain 'Control' node " "instead." msgstr "" "Le conteneur en lui-même ne sert à rien à moins qu'un script ne configure " @@ -10445,10 +12055,6 @@ msgstr "Alerte !" msgid "Please Confirm..." msgstr "Veuillez confirmer…" -#: scene/gui/file_dialog.cpp -msgid "Go to parent folder." -msgstr "Aller au dossier parent." - #: scene/gui/popup.cpp msgid "" "Popups will hide by default unless you call popup() or any of the popup*() " @@ -10535,6 +12141,76 @@ msgstr "Affectation à l'uniforme." msgid "Varyings can only be assigned in vertex function." msgstr "Les variations ne peuvent être affectées que dans la fonction vertex." +#: servers/visual/shader_language.cpp +msgid "Constants cannot be modified." +msgstr "" + +#~ msgid "Path to Node:" +#~ msgstr "Chemin vers le nÅ“ud :" + +#~ msgid "Delete selected files?" +#~ msgstr "Supprimer les fichiers sélectionnés ?" + +#~ msgid "There is no 'res://default_bus_layout.tres' file." +#~ msgstr "Il n'existe aucun fichier « res://default_bus_layout.tres »." + +#~ 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)" + +#~ msgid "Previous Directory" +#~ msgstr "Répertoire précédent" + +#~ msgid "Next Directory" +#~ msgstr "Répertoire suivant" + +#~ msgid "Ease in" +#~ msgstr "Lent sur le début" + +#~ msgid "Ease out" +#~ msgstr "Lent sur la fin" + +#~ msgid "Create Convex Static Body" +#~ msgstr "Créer un corps statique convexe" + +#~ msgid "CheckBox Radio1" +#~ msgstr "Case à cocher Radio1" + +#~ msgid "CheckBox Radio2" +#~ msgstr "Case à cocher Radio2" + +#~ msgid "Create folder" +#~ msgstr "Créer dossier" + +#~ msgid "Already existing" +#~ msgstr "Existe déjà " + +#~ msgid "Custom Node" +#~ msgstr "NÅ“ud personnalisé" + +#~ msgid "Invalid Path" +#~ msgstr "Chemin invalide" + +#~ msgid "GridMap Duplicate Selection" +#~ msgstr "Sélection de la duplication de GridMap" + +#~ msgid "Create Area" +#~ msgstr "Créer zone" + +#~ msgid "Create Exterior Connector" +#~ msgstr "Créer connecteur extérieur" + +#~ msgid "Edit Signal Arguments:" +#~ msgstr "Modifier les arguments du signal :" + +#~ msgid "Edit Variable:" +#~ msgstr "Modifier la variable :" + #~ msgid "Snap (s): " #~ msgstr "Pas (s) : " diff --git a/editor/translations/he.po b/editor/translations/he.po index 8ef45fd8d8..13c06339a6 100644 --- a/editor/translations/he.po +++ b/editor/translations/he.po @@ -78,6 +78,14 @@ msgstr "" msgid "Mirror" msgstr "" +#: editor/animation_bezier_editor.cpp editor/editor_profiler.cpp +msgid "Time:" +msgstr "זמן:" + +#: editor/animation_bezier_editor.cpp +msgid "Value:" +msgstr "" + #: editor/animation_bezier_editor.cpp msgid "Insert Key Here" msgstr "×”×›× ×¡ מפתח ×›×ן" @@ -166,14 +174,20 @@ msgstr "שקופיות ×”×”× ×¤×©×”" #: editor/animation_track_editor.cpp #, fuzzy -msgid "Add Track" -msgstr "הוספת רצועות חדשות." +msgid "Animation length (frames)" +msgstr "משך ×”×”× ×¤×©×” (×‘×©× ×™×•×ª)" #: editor/animation_track_editor.cpp -msgid "Animation Length Time (seconds)" +#, fuzzy +msgid "Animation length (seconds)" msgstr "משך ×”×”× ×¤×©×” (×‘×©× ×™×•×ª)" #: editor/animation_track_editor.cpp +#, fuzzy +msgid "Add Track" +msgstr "הוספת רצועות חדשות." + +#: editor/animation_track_editor.cpp msgid "Animation Looping" msgstr "תקריב ×”× ×¤×©×”" @@ -308,11 +322,13 @@ msgid "Create %d NEW tracks and insert keys?" msgstr "ליצור %d רצועות חדשות ×•×œ×”×›× ×™×¡ מפתחות?" #: editor/animation_track_editor.cpp editor/create_dialog.cpp -#: editor/editor_audio_buses.cpp editor/editor_plugin_settings.cpp -#: editor/plugin_config_dialog.cpp +#: editor/editor_audio_buses.cpp editor/editor_feature_profile.cpp +#: editor/editor_plugin_settings.cpp editor/plugin_config_dialog.cpp #: editor/plugins/abstract_polygon_2d_editor.cpp #: editor/plugins/mesh_instance_editor_plugin.cpp -#: editor/plugins/particles_editor_plugin.cpp editor/script_create_dialog.cpp +#: editor/plugins/particles_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_create_dialog.cpp msgid "Create" msgstr "יצירה" @@ -432,6 +448,23 @@ msgid "" msgstr "" #: editor/animation_track_editor.cpp +msgid "" +"This animation belongs to an imported scene, so changes to imported tracks " +"will not be saved.\n" +"\n" +"To enable the ability to add custom tracks, navigate to the scene's import " +"settings and set\n" +"\"Animation > Storage\" to \"Files\", enable \"Animation > Keep Custom Tracks" +"\", then re-import.\n" +"Alternatively, use an import preset that imports animations to separate " +"files." +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Warning: Editing imported animation" +msgstr "" + +#: editor/animation_track_editor.cpp msgid "Only show tracks from nodes selected in tree." msgstr "" @@ -571,7 +604,8 @@ msgstr "יחס מתיחה:" msgid "Select tracks to copy:" msgstr "" -#: editor/animation_track_editor.cpp editor/editor_properties.cpp +#: editor/animation_track_editor.cpp editor/editor_log.cpp +#: editor/editor_properties.cpp #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp @@ -640,6 +674,11 @@ msgstr "להחליף הכול" msgid "Selection Only" msgstr "בחירה בלבד" +#: editor/code_editor.cpp editor/plugins/script_text_editor.cpp +#: editor/plugins/text_editor.cpp +msgid "Standard" +msgstr "" + #: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/texture_region_editor_plugin.cpp #: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp @@ -665,19 +704,34 @@ msgid "Line and column numbers." msgstr "" #: editor/connections_dialog.cpp -msgid "Method in target Node must be specified!" +msgid "Method in target node must be specified." msgstr "" #: editor/connections_dialog.cpp msgid "" -"Target method not found! Specify a valid method or attach a script to target " -"Node." +"Target method not found. Specify a valid method or attach a script to the " +"target node." msgstr "" #: editor/connections_dialog.cpp -msgid "Connect To Node:" +#, fuzzy +msgid "Connect to Node:" +msgstr "התחברות למפרק:" + +#: editor/connections_dialog.cpp +#, fuzzy +msgid "Connect to Script:" msgstr "התחברות למפרק:" +#: editor/connections_dialog.cpp +#, fuzzy +msgid "From Signal:" +msgstr "×ותות:" + +#: editor/connections_dialog.cpp +msgid "Scene does not contain any script." +msgstr "" + #: editor/connections_dialog.cpp editor/editor_autoload_settings.cpp #: editor/groups_editor.cpp editor/plugins/item_list_editor_plugin.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_settings_editor.cpp @@ -685,10 +739,12 @@ msgid "Add" msgstr "הוספה" #: editor/connections_dialog.cpp editor/dependency_editor.cpp -#: editor/groups_editor.cpp editor/plugins/animation_player_editor_plugin.cpp +#: editor/editor_feature_profile.cpp editor/groups_editor.cpp +#: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp #: editor/plugins/resource_preloader_editor_plugin.cpp -#: editor/plugins/theme_editor_plugin.cpp editor/project_manager.cpp +#: editor/plugins/theme_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_manager.cpp #: editor/project_settings_editor.cpp msgid "Remove" msgstr "הסרה" @@ -702,21 +758,31 @@ msgid "Extra Call Arguments:" msgstr "" #: editor/connections_dialog.cpp -msgid "Path to Node:" -msgstr "× ×ª×™×‘ המפרק:" +msgid "Advanced" +msgstr "" #: editor/connections_dialog.cpp -msgid "Make Function" +msgid "Deferred" msgstr "" #: editor/connections_dialog.cpp -msgid "Deferred" +msgid "" +"Defers the signal, storing it in a queue and only firing it at idle time." msgstr "" #: editor/connections_dialog.cpp msgid "Oneshot" msgstr "" +#: editor/connections_dialog.cpp +msgid "Disconnects the signal after its first emission." +msgstr "" + +#: editor/connections_dialog.cpp +#, fuzzy +msgid "Cannot connect signal" +msgstr "שגי×ת חיבור" + #: editor/connections_dialog.cpp editor/dependency_editor.cpp #: editor/export_template_manager.cpp editor/groups_editor.cpp #: editor/plugins/animation_player_editor_plugin.cpp @@ -758,12 +824,12 @@ msgstr "× ×™×ª×•×§" #: editor/connections_dialog.cpp #, fuzzy -msgid "Connect Signal: " +msgid "Connect a Signal to a Method" msgstr "שגי×ת חיבור" #: editor/connections_dialog.cpp #, fuzzy -msgid "Edit Connection: " +msgid "Edit Connection:" msgstr "שגי×ת חיבור" #: editor/connections_dialog.cpp @@ -798,7 +864,6 @@ msgid "Change %s Type" msgstr "" #: editor/create_dialog.cpp editor/project_settings_editor.cpp -#: modules/visual_script/visual_script_editor.cpp msgid "Change" msgstr "×©×™× ×•×™" @@ -829,7 +894,8 @@ msgid "Matches:" msgstr "הת×מות:" #: editor/create_dialog.cpp editor/plugin_config_dialog.cpp -#: editor/plugins/asset_library_editor_plugin.cpp editor/property_selector.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/property_selector.cpp #: modules/visual_script/visual_script_property_selector.cpp msgid "Description:" msgstr "תי×ור:" @@ -845,13 +911,13 @@ msgstr "תלויות עבור:" #: editor/dependency_editor.cpp msgid "" "Scene '%s' is currently being edited.\n" -"Changes will not take effect unless reloaded." +"Changes will only take effect when reloaded." msgstr "" #: editor/dependency_editor.cpp msgid "" "Resource '%s' is in use.\n" -"Changes will take effect when reloaded." +"Changes will only take effect when reloaded." msgstr "" #: editor/dependency_editor.cpp @@ -943,21 +1009,14 @@ msgid "Permanently delete %d item(s)? (No undo!)" msgstr "" #: editor/dependency_editor.cpp -msgid "Owns" -msgstr "" - -#: editor/dependency_editor.cpp -msgid "Resources Without Explicit Ownership:" -msgstr "מש××‘×™× × ×˜×•×œ×™ בעלות מפורשת:" +#, fuzzy +msgid "Show Dependencies" +msgstr "תלויות" #: editor/dependency_editor.cpp editor/editor_node.cpp msgid "Orphan Resource Explorer" msgstr "דפדפן מש××‘×™× ×™×ª×•×ž×™×" -#: editor/dependency_editor.cpp -msgid "Delete selected files?" -msgstr "למחוק ×ת ×”×§×‘×¦×™× ×”× ×‘×—×¨×™×?" - #: editor/dependency_editor.cpp editor/editor_audio_buses.cpp #: editor/editor_file_dialog.cpp editor/editor_node.cpp #: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp @@ -966,6 +1025,14 @@ msgstr "למחוק ×ת ×”×§×‘×¦×™× ×”× ×‘×—×¨×™×?" msgid "Delete" msgstr "למחוק" +#: editor/dependency_editor.cpp +msgid "Owns" +msgstr "" + +#: editor/dependency_editor.cpp +msgid "Resources Without Explicit Ownership:" +msgstr "מש××‘×™× × ×˜×•×œ×™ בעלות מפורשת:" + #: editor/dictionary_property_edit.cpp msgid "Change Dictionary Key" msgstr "החלפת מפתח מילון" @@ -1076,7 +1143,7 @@ msgstr "החבילה ×”×•×ª×§× ×” בהצלחה!" msgid "Success!" msgstr "הצלחה!" -#: editor/editor_asset_installer.cpp +#: editor/editor_asset_installer.cpp editor/editor_node.cpp #: editor/plugins/asset_library_editor_plugin.cpp msgid "Install" msgstr "×”×ª×§× ×”" @@ -1203,8 +1270,12 @@ msgid "Open Audio Bus Layout" msgstr "פתיחת פריסת ×פיקי שמע" #: editor/editor_audio_buses.cpp -msgid "There is no 'res://default_bus_layout.tres' file." -msgstr "×ין קובץ ‚res://default_bus_layout.tres’." +msgid "There is no '%s' file." +msgstr "" + +#: editor/editor_audio_buses.cpp editor/plugins/canvas_item_editor_plugin.cpp +msgid "Layout" +msgstr "" #: editor/editor_audio_buses.cpp msgid "Invalid file, not an audio bus layout." @@ -1258,18 +1329,25 @@ msgid "Valid characters:" msgstr "×ª×•×•×™× ×ª×§×¤×™×:" #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing engine class name." +#, fuzzy +msgid "Must not collide with an existing engine class name." msgstr "×©× ×©×’×•×™. ×œ× ×™×›×•×œ לחפוף ×œ×©× ×ž×—×œ×§×ª ×ž× ×•×¢ קיימת." #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing buit-in type name." +#, fuzzy +msgid "Must not collide with an existing buit-in type name." msgstr "×©× ×©×’×•×™. ×œ× ×™×›×•×œ לחפוף ×œ×©× ×¡×•×’ ×ž×•×‘× ×” ×§×™×™×." #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing global constant name." +#, fuzzy +msgid "Must not collide with an existing global constant name." msgstr "×©× ×©×’×•×™. ×œ× ×™×›×•×œ לחפוף ×œ×©× ×§×‘×•×¢ גלובלי ×§×™×™×." #: editor/editor_autoload_settings.cpp +msgid "Keyword cannot be used as an autoload name." +msgstr "" + +#: editor/editor_autoload_settings.cpp msgid "Autoload '%s' already exists!" msgstr "×”×˜×¢×™× ×” ×”×וטומטית ‚%s’ כבר קיימת!" @@ -1297,11 +1375,12 @@ msgstr "הפעלה" msgid "Rearrange Autoloads" msgstr "סידור ×˜×¢×™× ×•×ª ×וטומטית מחדש" -#: editor/editor_autoload_settings.cpp -msgid "Invalid Path." +#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp +#, fuzzy +msgid "Invalid path." msgstr "× ×ª×™×‘ שגוי." -#: editor/editor_autoload_settings.cpp +#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp msgid "File does not exist." msgstr "הקובץ ×œ× ×§×™×™×." @@ -1352,7 +1431,8 @@ msgid "[unsaved]" msgstr "[×œ× × ×©×ž×¨]" #: editor/editor_dir_dialog.cpp -msgid "Please select a base directory first" +#, fuzzy +msgid "Please select a base directory first." msgstr "× × ×œ×‘×—×•×¨ ×ת תיקיית הבסיס תחילה" #: editor/editor_dir_dialog.cpp @@ -1360,7 +1440,8 @@ msgid "Choose a Directory" msgstr "× × ×œ×‘×—×•×¨ תיקייה" #: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp -#: editor/filesystem_dock.cpp scene/gui/file_dialog.cpp +#: editor/filesystem_dock.cpp editor/project_manager.cpp +#: scene/gui/file_dialog.cpp msgid "Create Folder" msgstr "יצירת תיקייה" @@ -1429,6 +1510,174 @@ msgstr "" msgid "Template file not found:" msgstr "קובץ ×”×ª×‘× ×™×ª ×œ× × ×ž×¦×:" +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "3D Editor" +msgstr "עורך" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Script Editor" +msgstr "פתיחת עורך סקריפטי×" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Asset Library" +msgstr "×™×™×¦×•× ×¡×¤×¨×™×”" + +#: editor/editor_feature_profile.cpp +msgid "Scene Tree Editing" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Import Dock" +msgstr "ייבו×" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Node Dock" +msgstr "×©× ×”×ž×¤×¨×§:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Filesystem Dock" +msgstr "מערכת קבצי×" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Erase profile '%s'? (no undo)" +msgstr "להחליף הכול" + +#: editor/editor_feature_profile.cpp +msgid "Profile must be a valid filename and must not contain '.'" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Profile with this name already exists." +msgstr "כבר ×§×™×™×ž×™× ×§×•×‘×¥ ×ו תיקייה ×‘×©× ×”×–×”." + +#: editor/editor_feature_profile.cpp +msgid "(Editor Disabled, Properties Disabled)" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "(Properties Disabled)" +msgstr "מ××¤×™×™× ×™×" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "(Editor Disabled)" +msgstr "מושבת" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Class Options:" +msgstr "תי×ור:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enable Contextual Editor" +msgstr "פתיחת העורך הב×" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enabled Properties:" +msgstr "מ××¤×™×™× ×™×" + +#: editor/editor_feature_profile.cpp +msgid "Enabled Features:" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enabled Classes:" +msgstr "חיפוש במחלקות" + +#: editor/editor_feature_profile.cpp +msgid "File '%s' format is invalid, import aborted." +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "" +"Profile '%s' already exists. Remote it first before importing, import " +"aborted." +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Error saving profile to path: '%s'." +msgstr "שגי××” בשמירה" + +#: editor/editor_feature_profile.cpp +msgid "Unset" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Current Profile" +msgstr "גרסה × ×•×›×—×™×ª:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Make Current" +msgstr "(× ×•×›×—×™)" + +#: editor/editor_feature_profile.cpp +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "New" +msgstr "חדש" + +#: editor/editor_feature_profile.cpp editor/editor_node.cpp +#: editor/plugins/asset_library_editor_plugin.cpp editor/project_manager.cpp +msgid "Import" +msgstr "ייבו×" + +#: editor/editor_feature_profile.cpp editor/editor_node.cpp +#: editor/project_export.cpp +msgid "Export" +msgstr "ייצו×" + +#: editor/editor_feature_profile.cpp +msgid "Available Profiles" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enabled Classes" +msgstr "חיפוש במחלקות" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Class Options" +msgstr "תי×ור" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "New profile name:" +msgstr "×©× ×”×ž×¤×¨×§:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Erase Profile" +msgstr "מחיקת שטח" + +#: editor/editor_feature_profile.cpp +msgid "Import Profile(s)" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Export Profile" +msgstr "×™×™×¦×•× ×ž×™×–×" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Manage Editor Feature Profiles" +msgstr "× ×™×”×•×œ ×ª×‘× ×™×•×ª ייצו×" + #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Select Current Folder" msgstr "× × ×œ×‘×—×•×¨ ×ת התיקייה ×”× ×•×›×—×™×ª" @@ -1451,8 +1700,8 @@ msgstr "העתקת × ×ª×™×‘" msgid "Open in File Manager" msgstr "הצגה ×‘×ž× ×”×œ הקבצי×" -#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp -#: editor/project_manager.cpp +#: editor/editor_file_dialog.cpp editor/editor_node.cpp +#: editor/filesystem_dock.cpp editor/project_manager.cpp #, fuzzy msgid "Show in File Manager" msgstr "הצגה ×‘×ž× ×”×œ הקבצי×" @@ -1512,7 +1761,7 @@ msgstr "התקדמות קדימה" msgid "Go Up" msgstr "עלייה למעלה" -#: editor/editor_file_dialog.cpp +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Toggle Hidden Files" msgstr "החלפת מצב תצוגה ×œ×§×‘×¦×™× ×ž×•×¡×ª×¨×™×" @@ -1546,8 +1795,9 @@ msgstr "המישור הקוד×" msgid "Next Folder" msgstr "יצירת תיקייה" -#: editor/editor_file_dialog.cpp -msgid "Go to parent folder" +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp +#, fuzzy +msgid "Go to parent folder." msgstr "מעבר לתיקייה שמעל" #: editor/editor_file_dialog.cpp @@ -1555,6 +1805,11 @@ msgstr "מעבר לתיקייה שמעל" msgid "(Un)favorite current folder." msgstr "×œ× × ×™×ª×Ÿ ליצור תיקייה." +#: editor/editor_file_dialog.cpp +#, fuzzy +msgid "Toggle visibility of hidden files." +msgstr "החלפת מצב תצוגה ×œ×§×‘×¦×™× ×ž×•×¡×ª×¨×™×" + #: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp #, fuzzy msgid "View items as a grid of thumbnails." @@ -1571,6 +1826,7 @@ msgstr "תיקיות וקבצי×:" #: editor/editor_file_dialog.cpp editor/plugins/sprite_editor_plugin.cpp #: editor/plugins/style_box_editor_plugin.cpp +#: editor/plugins/theme_editor_plugin.cpp msgid "Preview:" msgstr "תצוגה מקדימה:" @@ -1587,6 +1843,12 @@ msgid "ScanSources" msgstr "סריקת מקורות" #: editor/editor_file_system.cpp +msgid "" +"There are multiple importers for different types pointing to file %s, import " +"aborted" +msgstr "" + +#: editor/editor_file_system.cpp msgid "(Re)Importing Assets" msgstr "" @@ -1780,6 +2042,11 @@ msgstr "" msgid "Output:" msgstr "פלט:" +#: editor/editor_log.cpp editor/plugins/tile_map_editor_plugin.cpp +#, fuzzy +msgid "Copy Selection" +msgstr "הסרת הבחירה" + #: editor/editor_log.cpp editor/editor_profiler.cpp #: editor/editor_properties.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp @@ -1929,7 +2196,7 @@ msgstr "" #: editor/editor_node.cpp msgid "" "This resource belongs to a scene that was instanced or inherited.\n" -"Changes to it will not be kept when saving the current scene." +"Changes to it won't be kept when saving the current scene." msgstr "" #: editor/editor_node.cpp @@ -1942,7 +2209,7 @@ msgstr "" #: editor/editor_node.cpp msgid "" -"This scene was imported, so changes to it will not be kept.\n" +"This scene was imported, so changes to it won't be kept.\n" "Instancing it or inheriting will allow making changes to it.\n" "Please read the documentation relevant to importing scenes to better " "understand this workflow." @@ -1950,7 +2217,7 @@ msgstr "" #: editor/editor_node.cpp msgid "" -"This is a remote object so changes to it will not be kept.\n" +"This is a remote object, so changes to it won't be kept.\n" "Please read the documentation relevant to debugging to better understand " "this workflow." msgstr "" @@ -1960,27 +2227,6 @@ msgid "There is no defined scene to run." msgstr "×ין ×¡×¦× ×” מוגדרת להרצה." #: editor/editor_node.cpp -msgid "" -"No main scene has ever been defined, select one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" - -#: editor/editor_node.cpp -msgid "" -"Selected scene '%s' does not exist, select a valid one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" - -#: editor/editor_node.cpp -msgid "" -"Selected scene '%s' is not a scene file, select a valid one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" - -#: editor/editor_node.cpp msgid "Current scene was never saved, please save it prior to running." msgstr "×”×¡×¦× ×” ×”× ×•×›×—×™×ª ×ž×¢×•×œ× ×œ× × ×©×ž×¨×”, × × ×œ×©×ž×•×¨ ×ותה ×‘×˜×¨× ×”×”×¨×¦×”." @@ -1988,7 +2234,7 @@ msgstr "×”×¡×¦× ×” ×”× ×•×›×—×™×ª ×ž×¢×•×œ× ×œ× × ×©×ž×¨×”, × × ×œ×©×ž×•×¨ × msgid "Could not start subprocess!" msgstr "×œ× × ×™×ª×Ÿ להפעיל תהליך ×ž×©× ×”!" -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/filesystem_dock.cpp msgid "Open Scene" msgstr "פתיחת ×¡×¦× ×”" @@ -1997,6 +2243,11 @@ msgid "Open Base Scene" msgstr "פתיחת ×¡×¦× ×ª בסיס" #: editor/editor_node.cpp +#, fuzzy +msgid "Quick Open..." +msgstr "פתיחת ×¡×¦× ×” מהירה…" + +#: editor/editor_node.cpp msgid "Quick Open Scene..." msgstr "פתיחת ×¡×¦× ×” מהירה…" @@ -2161,6 +2412,27 @@ msgid "Clear Recent Scenes" msgstr "" #: editor/editor_node.cpp +msgid "" +"No main scene has ever been defined, select one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"Selected scene '%s' does not exist, select a valid one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"Selected scene '%s' is not a scene file, select a valid one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" + +#: editor/editor_node.cpp msgid "Save Layout" msgstr "" @@ -2189,6 +2461,19 @@ msgstr "× ×’×™× ×ª ×”×¡×¦× ×”" msgid "Close Tab" msgstr "לסגור ×œ×©×•× ×™×•×ª ×חרות" +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +msgid "Close Other Tabs" +msgstr "לסגור ×œ×©×•× ×™×•×ª ×חרות" + +#: editor/editor_node.cpp +msgid "Close Tabs to the Right" +msgstr "" + +#: editor/editor_node.cpp +#, fuzzy +msgid "Close All Tabs" +msgstr "לסגור הכול" + #: editor/editor_node.cpp msgid "Switch Scene Tab" msgstr "" @@ -2312,10 +2597,6 @@ msgstr "מיז×" msgid "Project Settings" msgstr "הגדרות מיז×" -#: editor/editor_node.cpp editor/project_export.cpp -msgid "Export" -msgstr "ייצו×" - #: editor/editor_node.cpp editor/plugins/tile_set_editor_plugin.cpp msgid "Tools" msgstr "כלי×" @@ -2326,6 +2607,10 @@ msgid "Open Project Data Folder" msgstr "לפתוח ×ת ×ž× ×”×œ המיזמי×?" #: editor/editor_node.cpp +msgid "Install Android Build Template" +msgstr "" + +#: editor/editor_node.cpp msgid "Quit to Project List" msgstr "יצי××” לרשימת המיזמי×" @@ -2434,6 +2719,11 @@ msgstr "" msgid "Open Editor Settings Folder" msgstr "הגדרות עורך" +#: editor/editor_node.cpp +#, fuzzy +msgid "Manage Editor Features" +msgstr "× ×™×”×•×œ ×ª×‘× ×™×•×ª ייצו×" + #: editor/editor_node.cpp editor/project_export.cpp msgid "Manage Export Templates" msgstr "× ×™×”×•×œ ×ª×‘× ×™×•×ª ייצו×" @@ -2446,6 +2736,7 @@ msgstr "עזרה" #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp #: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp #: editor/project_settings_editor.cpp editor/rename_dialog.cpp msgid "Search" msgstr "חיפוש" @@ -2537,11 +2828,6 @@ msgstr "עדכון ×©×™× ×•×™×™×" msgid "Disable Update Spinner" msgstr "השבתת שבשבת עדכון" -#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp -#: editor/project_manager.cpp -msgid "Import" -msgstr "ייבו×" - #: editor/editor_node.cpp msgid "FileSystem" msgstr "מערכת קבצי×" @@ -2568,6 +2854,28 @@ msgid "Don't Save" msgstr "×œ× ×œ×©×ž×•×¨" #: editor/editor_node.cpp +msgid "Android build template is missing, please install relevant templates." +msgstr "" + +#: editor/editor_node.cpp +#, fuzzy +msgid "Manage Templates" +msgstr "× ×™×”×•×œ ×ª×‘× ×™×•×ª ייצו×" + +#: editor/editor_node.cpp +msgid "" +"This will install the Android project for custom builds.\n" +"Note that, in order to use it, it needs to be enabled per export preset." +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"Android build template is already installed and it won't be overwritten.\n" +"Remove the \"build\" directory manually before attempting this operation " +"again." +msgstr "" + +#: editor/editor_node.cpp msgid "Import Templates From ZIP File" msgstr "×™×™×‘×•× ×ª×‘× ×™×•×ª מקובץ ZIP" @@ -2692,10 +3000,6 @@ msgid "Physics Frame %" msgstr "שקופית פיזיקלית %" #: editor/editor_profiler.cpp -msgid "Time:" -msgstr "זמן:" - -#: editor/editor_profiler.cpp msgid "Inclusive" msgstr "" @@ -2832,10 +3136,6 @@ msgid "Remove Item" msgstr "" #: editor/editor_run_native.cpp -msgid "Select device from the list" -msgstr "× × ×œ×‘×—×•×¨ התקן מהרשימה" - -#: editor/editor_run_native.cpp msgid "" "No runnable export preset found for this platform.\n" "Please add a runnable preset in the export menu." @@ -2869,6 +3169,10 @@ msgstr "שכחת ×ת השיטה ‚‎_run’?" msgid "Select Node(s) to Import" msgstr "× × ×œ×‘×—×•×¨ ×ž×¤×¨×§×™× ×œ×™×™×¦×•×" +#: editor/editor_sub_scene.cpp editor/project_manager.cpp +msgid "Browse" +msgstr "" + #: editor/editor_sub_scene.cpp msgid "Scene Path:" msgstr "× ×ª×™×‘ ×¡×¦× ×•×ª:" @@ -3032,6 +3336,10 @@ msgid "SSL Handshake Error" msgstr "שגי×ת לחיצת יד SSL" #: editor/export_template_manager.cpp +msgid "Uncompressing Android Build Sources" +msgstr "" + +#: editor/export_template_manager.cpp msgid "Current Version:" msgstr "גרסה × ×•×›×—×™×ª:" @@ -3048,7 +3356,8 @@ msgid "Remove Template" msgstr "הסרת ×ª×‘× ×™×ª" #: editor/export_template_manager.cpp -msgid "Select template file" +#, fuzzy +msgid "Select Template File" msgstr "בחירת קובץ ×ª×‘× ×™×ª" #: editor/export_template_manager.cpp @@ -3107,7 +3416,8 @@ msgid "No name provided." msgstr "×œ× ×¦×•×™×Ÿ ש×." #: editor/filesystem_dock.cpp -msgid "Provided name contains invalid characters" +#, fuzzy +msgid "Provided name contains invalid characters." msgstr "×”×©× ×©×¡×•×¤×§ מכיל ×ª×•×•×™× ×©×’×•×™×™×" #: editor/filesystem_dock.cpp @@ -3135,8 +3445,14 @@ msgid "Duplicating folder:" msgstr "תיקייה משוכפלת:" #: editor/filesystem_dock.cpp -msgid "Open Scene(s)" -msgstr "פתיחת ×¡×¦× ×•×ª" +#, fuzzy +msgid "New Inherited Scene" +msgstr "×¡×¦× ×” חדשה בירושה…" + +#: editor/filesystem_dock.cpp +#, fuzzy +msgid "Open Scenes" +msgstr "פתיחת ×¡×¦× ×”" #: editor/filesystem_dock.cpp msgid "Instance" @@ -3144,12 +3460,12 @@ msgstr "עותק" #: editor/filesystem_dock.cpp #, fuzzy -msgid "Add to favorites" +msgid "Add to Favorites" msgstr "מועדפי×:" #: editor/filesystem_dock.cpp #, fuzzy -msgid "Remove from favorites" +msgid "Remove from Favorites" msgstr "הסרה מקבוצה" #: editor/filesystem_dock.cpp @@ -3182,12 +3498,14 @@ msgstr "פתיחת סקריפט מהירה…" msgid "New Resource..." msgstr "שמירת המש×ב בתור…" -#: editor/filesystem_dock.cpp editor/script_editor_debugger.cpp +#: editor/filesystem_dock.cpp editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_editor_debugger.cpp #, fuzzy msgid "Expand All" msgstr "להרחיב הכול" -#: editor/filesystem_dock.cpp editor/script_editor_debugger.cpp +#: editor/filesystem_dock.cpp editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_editor_debugger.cpp #, fuzzy msgid "Collapse All" msgstr "×œ×¦×ž×¦× ×”×›×•×œ" @@ -3200,12 +3518,14 @@ msgid "Rename" msgstr "×©×™× ×•×™ ש×" #: editor/filesystem_dock.cpp -msgid "Previous Directory" -msgstr "התיקייה הקודמת" +#, fuzzy +msgid "Previous Folder/File" +msgstr "המישור הקוד×" #: editor/filesystem_dock.cpp -msgid "Next Directory" -msgstr "התיקייה הב××”" +#, fuzzy +msgid "Next Folder/File" +msgstr "יצירת תיקייה" #: editor/filesystem_dock.cpp msgid "Re-Scan Filesystem" @@ -3213,7 +3533,7 @@ msgstr "סריקת מערכת ×”×§×‘×¦×™× ×ž×—×“×©" #: editor/filesystem_dock.cpp #, fuzzy -msgid "Toggle split mode" +msgid "Toggle Split Mode" msgstr "החלפת מצב" #: editor/filesystem_dock.cpp @@ -3246,7 +3566,7 @@ msgstr "" msgid "Create Script" msgstr "יצירת סקריפט" -#: editor/find_in_files.cpp +#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp #, fuzzy msgid "Find in Files" msgstr "×יתור…" @@ -3265,6 +3585,12 @@ msgstr "יצירת תיקייה" msgid "Filters:" msgstr "" +#: editor/find_in_files.cpp +msgid "" +"Include the files with the following extensions. Add or remove them in " +"ProjectSettings." +msgstr "" + #: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp msgid "Find..." @@ -3723,7 +4049,7 @@ msgstr "×©× ×”× ×¤×©×” חדשה:" #: editor/plugins/animation_blend_space_2d_editor.cpp #, fuzzy -msgid "Triangle already exists" +msgid "Triangle already exists." msgstr "הפעולה ‚%s’ כבר קיימת!" #: editor/plugins/animation_blend_space_2d_editor.cpp @@ -3803,7 +4129,6 @@ msgid "Node Moved" msgstr "×©× ×”×ž×¤×¨×§:" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Unable to connect, port may be in use or connection may be invalid." msgstr "" @@ -3877,8 +4202,9 @@ msgid "Edit Filtered Tracks:" msgstr "" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -msgid "Enable filtering" -msgstr "" +#, fuzzy +msgid "Enable Filtering" +msgstr "×©×™× ×•×™" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Toggle Autoplay" @@ -3997,10 +4323,6 @@ msgid "Animation" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "New" -msgstr "חדש" - -#: editor/plugins/animation_player_editor_plugin.cpp #, fuzzy msgid "Edit Transitions..." msgstr "×ž×¢×‘×¨×•× ×™×" @@ -4019,12 +4341,13 @@ msgid "Autoplay on Load" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Onion Skinning" +msgid "Enable Onion Skinning" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Enable Onion Skinning" -msgstr "" +#, fuzzy +msgid "Onion Skinning Options" +msgstr "הגדרות הצמדה" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Directions" @@ -4578,13 +4901,19 @@ msgid "Move CanvasItem" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"Children of containers have their anchors and margins values overridden by " +"their parent." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Presets for the anchors and margins values of a Control node." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "" -"Children of containers have their anchors and margins values overridden by " -"their parent." +"When active, moving Control nodes changes their anchors instead of their " +"margins." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4600,10 +4929,52 @@ msgid "Change Anchors" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Lock Selected" +msgstr "בחירת מיקוד" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Unlock Selected" +msgstr "בחירת מיקוד" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Group Selected" +msgstr "הסרת הבחירה" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Ungroup Selected" +msgstr "הסרת הבחירה" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Paste Pose" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Create Custom Bone(s) from Node(s)" +msgstr "× ×’×™× ×ª ×¡×¦× ×” בהת×מה ×ישית" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Clear Bones" +msgstr "× ×’×™× ×ª ×¡×¦× ×” בהת×מה ×ישית" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Make IK Chain" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Clear IK Chain" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "" "Warning: Children of a container get their position and size determined only " "by their parent." @@ -4679,7 +5050,7 @@ msgid "Snapping Options" msgstr "הגדרות הצמדה" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to grid" +msgid "Snap to Grid" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4700,32 +5071,35 @@ msgid "Use Pixel Snap" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Smart snapping" +msgid "Smart Snapping" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to parent" +msgid "Snap to Parent" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node anchor" +msgid "Snap to Node Anchor" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node sides" -msgstr "" +#, fuzzy +msgid "Snap to Node Sides" +msgstr "מצב הצמדה (%s)" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node center" +msgid "Snap to Node Center" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to other nodes" -msgstr "" +#, fuzzy +msgid "Snap to Other Nodes" +msgstr "הדבקת מפרקי×" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to guides" -msgstr "" +#, fuzzy +msgid "Snap to Guides" +msgstr "מצב הצמדה (%s)" #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp @@ -4738,10 +5112,12 @@ msgid "Unlock the selected object (can be moved)." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Makes sure the object's children are not selectable." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Restores the object's children's ability to be selected." msgstr "" @@ -4755,14 +5131,6 @@ msgid "Show Bones" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Make IK Chain" -msgstr "" - -#: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Clear IK Chain" -msgstr "" - -#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Make Custom Bone(s) from Node(s)" msgstr "" @@ -4814,7 +5182,7 @@ msgid "Frame Selection" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Layout" +msgid "Preview Canvas Scale" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4867,6 +5235,11 @@ msgid "Divide grid step by 2" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Pan View" +msgstr "מבט ×חורי" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Add %s" msgstr "" @@ -4889,8 +5262,9 @@ msgid "Error instancing scene from %s" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Change default type" -msgstr "" +#, fuzzy +msgid "Change Default Type" +msgstr "×©×™× ×•×™ ערך בררת המחדל" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "" @@ -4977,19 +5351,19 @@ msgid "Create Emission Points From Node" msgstr "" #: editor/plugins/curve_editor_plugin.cpp -msgid "Flat0" +msgid "Flat 0" msgstr "" #: editor/plugins/curve_editor_plugin.cpp -msgid "Flat1" +msgid "Flat 1" msgstr "" -#: editor/plugins/curve_editor_plugin.cpp -msgid "Ease in" +#: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp +msgid "Ease In" msgstr "" -#: editor/plugins/curve_editor_plugin.cpp -msgid "Ease out" +#: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp +msgid "Ease Out" msgstr "" #: editor/plugins/curve_editor_plugin.cpp @@ -5009,24 +5383,29 @@ msgid "Load Curve Preset" msgstr "" #: editor/plugins/curve_editor_plugin.cpp -msgid "Add point" -msgstr "" +#, fuzzy +msgid "Add Point" +msgstr "הזזת × ×§×•×“×”" #: editor/plugins/curve_editor_plugin.cpp -msgid "Remove point" -msgstr "" +#, fuzzy +msgid "Remove Point" +msgstr "הסרת × ×§×•×“×” ×‘× ×ª×™×‘" #: editor/plugins/curve_editor_plugin.cpp -msgid "Left linear" -msgstr "" +#, fuzzy +msgid "Left Linear" +msgstr "×œ×™× ×™×רי" #: editor/plugins/curve_editor_plugin.cpp -msgid "Right linear" -msgstr "" +#, fuzzy +msgid "Right Linear" +msgstr "מבט ×™×ž× ×™" #: editor/plugins/curve_editor_plugin.cpp -msgid "Load preset" -msgstr "" +#, fuzzy +msgid "Load Preset" +msgstr "×˜×¢×™× ×ª מש×ב" #: editor/plugins/curve_editor_plugin.cpp msgid "Remove Curve Point" @@ -5081,14 +5460,19 @@ msgid "This doesn't work on scene root!" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Trimesh Shape" +msgid "Create Trimesh Static Shape" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Shape" +msgid "Failed creating shapes!" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp +#, fuzzy +msgid "Create Convex Shape(s)" +msgstr "יצירת %s חדש" + +#: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Navigation Mesh" msgstr "" @@ -5138,16 +5522,13 @@ msgid "Create Trimesh Static Body" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Static Body" -msgstr "" - -#: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Trimesh Collision Sibling" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Collision Sibling" -msgstr "" +#, fuzzy +msgid "Create Convex Collision Sibling(s)" +msgstr "יצירת מצולע" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Outline Mesh..." @@ -5300,6 +5681,12 @@ msgid "Create Navigation Polygon" msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp +#: editor/plugins/particles_editor_plugin.cpp +#, fuzzy +msgid "Convert to CPUParticles" +msgstr "המרה ל×ותיות גדולות" + +#: editor/plugins/particles_2d_editor_plugin.cpp #, fuzzy msgid "Generating Visibility Rect" msgstr "× ×•×¦×¨ ×ž×™×–× C#‎…" @@ -5314,12 +5701,6 @@ msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp #: editor/plugins/particles_editor_plugin.cpp -#, fuzzy -msgid "Convert to CPUParticles" -msgstr "המרה ל×ותיות גדולות" - -#: editor/plugins/particles_2d_editor_plugin.cpp -#: editor/plugins/particles_editor_plugin.cpp msgid "Generation Time (sec):" msgstr "" @@ -5457,7 +5838,7 @@ msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp editor/plugins/theme_editor_plugin.cpp -#: editor/project_export.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_export.cpp msgid "Options" msgstr "" @@ -5509,7 +5890,7 @@ msgstr "" #: editor/plugins/physical_bone_plugin.cpp #, fuzzy -msgid "Move joint" +msgid "Move Joint" msgstr "הזזת × ×§×•×“×”" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5754,7 +6135,6 @@ msgid "Open in Editor" msgstr "" #: editor/plugins/resource_preloader_editor_plugin.cpp -#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Load Resource" msgstr "×˜×¢×™× ×ª מש×ב" @@ -5854,6 +6234,11 @@ msgid "%s Class Reference" msgstr "" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp +msgid "Find Next" +msgstr "×יתור הב×" + +#: editor/plugins/script_editor_plugin.cpp msgid "Toggle alphabetical sorting of the method list." msgstr "" @@ -5937,10 +6322,6 @@ msgstr "סגירת מסמכי×" msgid "Close All" msgstr "לסגור הכול" -#: editor/plugins/script_editor_plugin.cpp -msgid "Close Other Tabs" -msgstr "לסגור ×œ×©×•× ×™×•×ª ×חרות" - #: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp msgid "Run" msgstr "הרצה" @@ -5949,11 +6330,6 @@ msgstr "הרצה" msgid "Toggle Scripts Panel" msgstr "החלפת תצוגת ×—×œ×•× ×™×ª סקריפטי×" -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/script_text_editor.cpp -msgid "Find Next" -msgstr "×יתור הב×" - #: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp msgid "Step Over" msgstr "לצעוד מעל" @@ -5981,7 +6357,8 @@ msgid "Debug with External Editor" msgstr "× ×™×¤×•×™ שגי×ות ×¢× ×¢×•×¨×š ×—×™×¦×•× ×™" #: editor/plugins/script_editor_plugin.cpp -msgid "Open Godot online documentation" +#, fuzzy +msgid "Open Godot online documentation." msgstr "פתיחת התיעוד המקוון של Godot" #: editor/plugins/script_editor_plugin.cpp @@ -5989,7 +6366,7 @@ msgid "Request Docs" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Help improve the Godot documentation by giving feedback" +msgid "Help improve the Godot documentation by giving feedback." msgstr "" #: editor/plugins/script_editor_plugin.cpp @@ -6017,10 +6394,12 @@ msgstr "" "ב×ילו פעולות ×œ× ×§×•×˜?:" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp msgid "Reload" msgstr "×¨×¢× ×•×Ÿ" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp msgid "Resave" msgstr "שמירה מחדש" @@ -6035,6 +6414,30 @@ msgstr "חיפוש בעזרה" #: editor/plugins/script_text_editor.cpp #, fuzzy +msgid "Connections to method:" +msgstr "התחברות למפרק:" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Source" +msgstr "מש×ב" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Signal" +msgstr "×ותות" + +#: editor/plugins/script_text_editor.cpp +msgid "Target" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "" +"Missing connected method '%s' for signal '%s' from node '%s' to node '%s'." +msgstr "" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy msgid "Line" msgstr "שורה:" @@ -6047,10 +6450,6 @@ msgstr "" msgid "Go to Function" msgstr "מעבר ×œ×¤×•× ×§×¦×™×”â€¦" -#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp -msgid "Standard" -msgstr "" - #: editor/plugins/script_text_editor.cpp msgid "Only resources from filesystem can be dropped." msgstr "× ×™×ª×Ÿ להשמיט מש××‘×™× ×ž×ž×¢×¨×›×ª ×”×§×‘×¦×™× ×‘×œ×‘×“." @@ -6083,6 +6482,11 @@ msgstr "הגדלת ×ות ר××©×•× ×”" msgid "Syntax Highlighter" msgstr "" +#: editor/plugins/script_text_editor.cpp +#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp +msgid "Bookmarks" +msgstr "" + #: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" @@ -6110,6 +6514,26 @@ msgid "Toggle Comment" msgstr "החלפת מצב הערה" #: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Toggle Bookmark" +msgstr "החלפת מצב מבט חופשי" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Go to Next Bookmark" +msgstr "מעבר ×œ× ×§×•×“×ª העצירה הב××”" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Go to Previous Bookmark" +msgstr "מעבר ×œ× ×§×•×“×ª העצירה הקודמת" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Remove All Bookmarks" +msgstr "הסרת כל × ×§×•×“×•×ª העצירה" + +#: editor/plugins/script_text_editor.cpp msgid "Fold/Unfold Line" msgstr "צמצו×/הרחבה של שורה" @@ -6190,6 +6614,15 @@ msgid "Contextual Help" msgstr "עזרה תלוית הקשר" #: editor/plugins/shader_editor_plugin.cpp +#, fuzzy +msgid "" +"This shader has been modified on on disk.\n" +"What action should be taken?" +msgstr "" +"×”×§×‘×¦×™× ×”×‘××™× ×”× ×—×“×©×™× ×‘×›×•× ×Ÿ.\n" +"ב×ילו פעולות ×œ× ×§×•×˜?:" + +#: editor/plugins/shader_editor_plugin.cpp msgid "Shader" msgstr "" @@ -6538,7 +6971,8 @@ msgid "Right View" msgstr "מבט ×™×ž× ×™" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Switch Perspective/Orthogonal view" +#, fuzzy +msgid "Switch Perspective/Orthogonal View" msgstr "החלפה בין תצוגה פרספקטיבה/×× ×›×™×ª" #: editor/plugins/spatial_editor_plugin.cpp @@ -6578,11 +7012,12 @@ msgid "Toggle Freelook" msgstr "החלפת מצב מבט חופשי" #: editor/plugins/spatial_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Transform" msgstr "התמרה" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Snap object to floor" +msgid "Snap Object to Floor" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp @@ -6727,38 +7162,38 @@ msgid "Invalid geometry, can't replace by mesh." msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Invalid geometry, can't create polygon." -msgstr "" +#, fuzzy +msgid "Convert to Mesh2D" +msgstr "המרה ל×ותיות גדולות" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Invalid geometry, can't create collision polygon." +msgid "Invalid geometry, can't create polygon." msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Invalid geometry, can't create light occluder." -msgstr "" +#, fuzzy +msgid "Convert to Polygon2D" +msgstr "הזזת מצולע" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Sprite" +msgid "Invalid geometry, can't create collision polygon." msgstr "" #: editor/plugins/sprite_editor_plugin.cpp #, fuzzy -msgid "Convert to Mesh2D" -msgstr "המרה ל×ותיות גדולות" +msgid "Create CollisionPolygon2D Sibling" +msgstr "יצירת מצולע" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy -msgid "Convert to Polygon2D" -msgstr "הזזת מצולע" +msgid "Invalid geometry, can't create light occluder." +msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy -msgid "Create CollisionPolygon2D Sibling" -msgstr "יצירת מצולע" +msgid "Create LightOccluder2D Sibling" +msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Create LightOccluder2D Sibling" +msgid "Sprite" msgstr "" #: editor/plugins/sprite_editor_plugin.cpp @@ -6780,7 +7215,12 @@ msgid "Settings:" msgstr "הגדרות" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "ERROR: Couldn't load frame resource!" +#, fuzzy +msgid "No Frames Selected" +msgstr "מחובר" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Add %d Frame(s)" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp @@ -6788,6 +7228,10 @@ msgid "Add Frame" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "ERROR: Couldn't load frame resource!" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Resource clipboard is empty or not a texture!" msgstr "" @@ -6831,6 +7275,15 @@ msgid "Animation Frames:" msgstr "שקופיות ×”×”× ×¤×©×”" #: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Add a Texture from File" +msgstr "להסיר ×ת ×”×§×‘×¦×™× ×”× ×‘×—×¨×™× ×ž×”×ž×™×–×? (××™ ×פשר לשחזר)" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Add Frames from a Sprite Sheet" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Insert Empty (Before)" msgstr "" @@ -6847,6 +7300,29 @@ msgid "Move (After)" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Select Frames" +msgstr "בחירה" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Horizontal:" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Vertical:" +msgstr "קודקודי×" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Select/Clear All Frames" +msgstr "לבחור הכול" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Create Frames from Sprite Sheet" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "SpriteFrames" msgstr "" @@ -6911,13 +7387,14 @@ msgstr "" msgid "Remove All Items" msgstr "" -#: editor/plugins/theme_editor_plugin.cpp +#: editor/plugins/theme_editor_plugin.cpp editor/project_manager.cpp msgid "Remove All" msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "Edit theme..." -msgstr "" +#, fuzzy +msgid "Edit Theme" +msgstr "חברי×" #: editor/plugins/theme_editor_plugin.cpp msgid "Theme editing menu." @@ -6944,18 +7421,25 @@ msgid "Create From Current Editor Theme" msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "CheckBox Radio1" -msgstr "" +#, fuzzy +msgid "Toggle Button" +msgstr "כפתור עכבר" #: editor/plugins/theme_editor_plugin.cpp -msgid "CheckBox Radio2" -msgstr "" +#, fuzzy +msgid "Disabled Button" +msgstr "כפתור ×מצעי" #: editor/plugins/theme_editor_plugin.cpp msgid "Item" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Disabled Item" +msgstr "מושבת" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Check Item" msgstr "" @@ -6972,6 +7456,22 @@ msgid "Checked Radio Item" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +msgid "Named Sep." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Submenu" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Item 1" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Item 2" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Has" msgstr "" @@ -6980,8 +7480,9 @@ msgid "Many" msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "Has,Many,Options" -msgstr "" +#, fuzzy +msgid "Disabled LineEdit" +msgstr "מושבת" #: editor/plugins/theme_editor_plugin.cpp msgid "Tab 1" @@ -6996,6 +7497,18 @@ msgid "Tab 3" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +msgid "Editable Item" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Subtree" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Has,Many,Options" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Data Type:" msgstr "" @@ -7029,6 +7542,7 @@ msgid "Fix Invalid Tiles" msgstr "×©× ×©×’×•×™." #: editor/plugins/tile_map_editor_plugin.cpp +#: modules/gridmap/grid_map_editor_plugin.cpp #, fuzzy msgid "Cut Selection" msgstr "בחירת מיקוד" @@ -7071,39 +7585,48 @@ msgid "Mirror Y" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp +msgid "Disable Autotile" +msgstr "" + +#: editor/plugins/tile_map_editor_plugin.cpp +msgid "Enable Priority" +msgstr "" + +#: editor/plugins/tile_map_editor_plugin.cpp msgid "Paint Tile" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Pick Tile" +msgid "" +"Shift+RMB: Line Draw\n" +"Shift+Ctrl+RMB: Rectangle Paint" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy -msgid "Copy Selection" -msgstr "הסרת הבחירה" +msgid "Pick Tile" +msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp #, fuzzy -msgid "Rotate left" +msgid "Rotate Left" msgstr "הטיית מצולע" #: editor/plugins/tile_map_editor_plugin.cpp #, fuzzy -msgid "Rotate right" +msgid "Rotate Right" msgstr "הטיית מצולע" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Flip horizontally" +msgid "Flip Horizontally" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Flip vertically" +msgid "Flip Vertically" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp #, fuzzy -msgid "Clear transform" +msgid "Clear Transform" msgstr "התמרה" #: editor/plugins/tile_set_editor_plugin.cpp @@ -7142,6 +7665,45 @@ msgid "Select the previous shape, subtile, or Tile." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Region Mode" +msgstr "מצב גולמי" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Collision Mode" +msgstr "עריכת מצולע" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Occlusion Mode" +msgstr "עריכת מצולע" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Navigation Mode" +msgstr "עריכת מצולע" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Bitmask Mode" +msgstr "מצב גולמי" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Priority Mode" +msgstr "×™×™×¦×•× ×ž×™×–×" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Icon Mode" +msgstr "מצב ×©×™× ×•×™ ×§× ×” מידה (R)" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Z Index Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp msgid "Copy bitmask." msgstr "" @@ -7229,6 +7791,7 @@ msgstr "מחיקת × ×§×•×“×•×ª" msgid "" "LMB: Set bit on.\n" "RMB: Set bit off.\n" +"Shift+LMB: Set wildcard bit.\n" "Click on another Tile to edit it." msgstr "" @@ -7350,6 +7913,76 @@ msgid "TileSet" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Add input +" +msgstr "הוספת ×ירוע" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add output +" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector" +msgstr "חוקר" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Add input port" +msgstr "מועדפי×:" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add output port" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change input port type" +msgstr "×©×™× ×•×™ ×©× ×§×œ×˜" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change output port type" +msgstr "×©×™× ×•×™ ×©× ×§×œ×˜" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change input port name" +msgstr "×©×™× ×•×™ ×©× ×§×œ×˜" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change output port name" +msgstr "×©×™× ×•×™ ×©× ×§×œ×˜" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Remove input port" +msgstr "הסרת × ×§×•×“×” ×‘× ×ª×™×‘" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Remove output port" +msgstr "הסרת × ×§×•×“×” ×‘× ×ª×™×‘" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Set expression" +msgstr "גרסה × ×•×›×—×™×ª:" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Resize VisualShader node" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Set Uniform Name" msgstr "" @@ -7391,6 +8024,847 @@ msgid "Light" msgstr "ימין" #: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Create Shader Node" +msgstr "יצירת תיקייה" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Color function." +msgstr "מעבר ×œ×¤×•× ×§×¦×™×”â€¦" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Color operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Grayscale function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts HSV vector to RGB equivalent." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts RGB vector to HSV equivalent." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Sepia function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Burn operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Darken operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Difference operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Dodge operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "HardLight operator" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Lighten operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Overlay operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Screen operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "SoftLight operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Color constant." +msgstr "קבוע" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Color uniform." +msgstr "התמרה" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns an associated vector if the provided scalars are equal, greater or " +"less." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns an associated vector if the provided boolean value is true or false." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'camera' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'inv_camera' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'inv_projection' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'normal' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'projection' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'time' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'viewport_size' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'world' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'texture_pixel_size' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Input parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'binormal' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'fragcoord' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_coord' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_uv' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'side' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'tangent' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv2' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'vertex' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'view' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'albedo' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'attenuation' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'diffuse' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_color' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'roughness' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'specular' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'transmission' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'modelview' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_size' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'tangent' input parameter for vertex and fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_pass' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_coord' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_pixel_size' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_uv' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_alpha' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_height' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_uv' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_vec' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'normal' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'shadow_color' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'extra' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'projection' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'vertex' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'world' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'active' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'custom' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'custom_alpha' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'delta' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'emission_transform' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'index' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'lifetime' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'restart' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'time' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'transform' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'velocity' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Scalar function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar operator." +msgstr "×©×™× ×•×™ ×§× ×” מידה (יחס):" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "E constant (2.718282). Represents the base of the natural logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Epsilon constant (0.00001). Smallest possible scalar number." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Phi constant (1.618034). Golden ratio." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi/4 constant (0.785398) or 45 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi/2 constant (1.570796) or 90 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi constant (3.141593) or 180 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Tau constant (6.283185) or 360 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Sqrt2 constant (1.414214). Square root of 2." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the absolute value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-tangent of the parameters." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Finds the nearest integer that is greater than or equal to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Constrains a value to lie between two further values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts a quantity in radians to degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-e Exponential." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-2 Exponential." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Finds the nearest integer less than or equal to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Computes the fractional part of the argument." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the inverse of the square root of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Natural logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-2 logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the greater of two values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the lesser of two values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Linear interpolation between two scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the opposite value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 - scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns the value of the first parameter raised to the power of the second." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts a quantity in degrees to radians." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 / scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the nearest integer to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the nearest even integer to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Clamps the value between 0.0 and 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Extracts the sign of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the square root of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( scalar(edge0), scalar(edge1), scalar(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if x is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( scalar(edge), scalar(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the truncated value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Adds scalar to scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Divides scalar by scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies scalar by scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the remainder of the two scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Subtracts scalar from scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Scalar constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar uniform." +msgstr "התמרה" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Perform the cubic texture lookup." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Perform the texture lookup." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Cubic texture uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "2D texture uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Transform function." +msgstr "התמרה" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) Calculate the outer product of a pair of vectors.\n" +"\n" +"OuterProduct treats the first parameter 'c' as a column vector (matrix with " +"one column) and the second parameter 'r' as a row vector (matrix with one " +"row) and does a linear algebraic matrix multiply 'c * r', yielding a matrix " +"whose number of rows is the number of components in 'c' and whose number of " +"columns is the number of components in 'r'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Composes transform from four vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Decomposes transform to four vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the determinant of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the inverse of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the transpose of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies transform by transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies vector by transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Transform constant." +msgstr "התמרה" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Transform uniform." +msgstr "התמרה" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector function." +msgstr "מעבר ×œ×¤×•× ×§×¦×™×”â€¦" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Composes vector from three scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Decomposes vector to three scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the cross product of two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the distance between two points." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the dot product of two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns a vector that points in the same direction as a reference vector. " +"The function has three vector parameters : N, the vector to orient, I, the " +"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 "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the length of a vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Linear interpolation between two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the normalize product of vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 - vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 / vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns a vector that points in the direction of reflection ( a : incident " +"vector, b : normal vector )." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns a vector that points in the direction of refraction." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( vector(edge0), vector(edge1), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if 'x' is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( scalar(edge0), scalar(edge1), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if 'x' is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( vector(edge), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( scalar(edge), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Adds vector to vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Divides vector by vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies vector by vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the remainder of the two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Subtracts vector from vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Custom Godot Shader Language expression, with custom amount of input and " +"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 "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns falloff based on the dot product of surface normal and view " +"direction of camera (pass associated inputs to it)." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) (Fragment/Light mode only) Scalar derivative function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) (Fragment/Light mode only) Vector derivative function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Derivative in 'x' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Derivative in 'x' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Derivative in 'y' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Derivative in 'y' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Sum of absolute derivative " +"in 'x' and 'y'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Sum of absolute derivative " +"in 'x' and 'y'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "VisualShader" msgstr "" @@ -7585,6 +9059,10 @@ msgid "Directory already contains a Godot project." msgstr "" #: editor/project_manager.cpp +msgid "New Game Project" +msgstr "" + +#: editor/project_manager.cpp msgid "Imported Project" msgstr "" @@ -7632,10 +9110,6 @@ msgid "Rename Project" msgstr "" #: editor/project_manager.cpp -msgid "New Game Project" -msgstr "" - -#: editor/project_manager.cpp msgid "Import Existing Project" msgstr "" @@ -7664,10 +9138,6 @@ msgid "Project Name:" msgstr "" #: editor/project_manager.cpp -msgid "Create folder" -msgstr "" - -#: editor/project_manager.cpp msgid "Project Path:" msgstr "" @@ -7676,10 +9146,6 @@ msgid "Project Installation Path:" msgstr "" #: editor/project_manager.cpp -msgid "Browse" -msgstr "" - -#: editor/project_manager.cpp msgid "Renderer:" msgstr "" @@ -7733,8 +9199,8 @@ msgid "" "\n" "If you proceed with opening it, it will be converted to Godot's current " "configuration file format.\n" -"Warning: You will not be able to open the project with previous versions of " -"the engine anymore." +"Warning: You won't be able to open the project with previous versions of the " +"engine anymore." msgstr "" #: editor/project_manager.cpp @@ -7745,8 +9211,8 @@ msgid "" "%s\n" "\n" "Do you want to convert it?\n" -"Warning: You will not be able to open the project with previous versions of " -"the engine anymore." +"Warning: You won't be able to open the project with previous versions of the " +"engine anymore." msgstr "" #: editor/project_manager.cpp @@ -7758,7 +9224,7 @@ msgstr "" #: editor/project_manager.cpp msgid "" "Can't run project: no main scene defined.\n" -"Please edit the project and set the main scene in \"Project Settings\" under " +"Please edit the project and set the main scene in the Project Settings under " "the \"Application\" category." msgstr "" @@ -7769,25 +9235,40 @@ msgid "" msgstr "" #: editor/project_manager.cpp -msgid "Are you sure to run more than one project?" +msgid "Are you sure to run %d projects at once?" msgstr "" #: editor/project_manager.cpp -msgid "Remove project from the list? (Folder contents will not be modified)" +msgid "" +"Remove %d projects from the list?\n" +"The project folders' contents won't be modified." msgstr "" #: editor/project_manager.cpp msgid "" +"Remove this project from the list?\n" +"The project folder's contents won't be modified." +msgstr "" + +#: editor/project_manager.cpp +msgid "" +"Remove all missing projects from the list? (Folders contents will not be " +"modified)" +msgstr "" + +#: editor/project_manager.cpp +#, fuzzy +msgid "" "Language changed.\n" -"The UI will update next time the editor or project manager starts." +"The interface will update after restarting the editor or project manager." msgstr "" "השפה הוחלפה.\n" "×ž× ×©×§ המשתמש יתעדכן ×‘×¤×¢× ×”×‘××” שהעורך ×ו ×ž× ×”×œ ×”×ž×™×–×ž×™× ×ž×ª×—×™×œ." #: editor/project_manager.cpp msgid "" -"You are about the scan %s folders for existing Godot projects. Do you " -"confirm?" +"Are you sure to scan %s folders for existing Godot projects?\n" +"This could take a while." msgstr "" #: editor/project_manager.cpp @@ -7811,6 +9292,11 @@ msgid "New Project" msgstr "×ž×™×–× ×—×“×©" #: editor/project_manager.cpp +#, fuzzy +msgid "Remove Missing" +msgstr "הסרת ×ª×‘× ×™×ª" + +#: editor/project_manager.cpp msgid "Templates" msgstr "×ª×‘× ×™×•×ª" @@ -7828,8 +9314,8 @@ msgstr "×œ× × ×™×ª×Ÿ להריץ מיז×" #: editor/project_manager.cpp msgid "" -"You don't currently have any projects.\n" -"Would you like to explore the official example projects in the Asset Library?" +"You currently don't have any projects.\n" +"Would you like to explore official example projects in the Asset Library?" msgstr "" #: editor/project_settings_editor.cpp @@ -7855,7 +9341,8 @@ msgid "" msgstr "" #: editor/project_settings_editor.cpp -msgid "Action '%s' already exists!" +#, fuzzy +msgid "An action with the name '%s' already exists." msgstr "הפעולה ‚%s’ כבר קיימת!" #: editor/project_settings_editor.cpp @@ -8015,10 +9502,6 @@ msgid "" msgstr "" #: editor/project_settings_editor.cpp -msgid "Already existing" -msgstr "" - -#: editor/project_settings_editor.cpp msgid "Add Input Action" msgstr "" @@ -8083,7 +9566,7 @@ msgid "Override For..." msgstr "" #: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp -msgid "Editor must be restarted for changes to take effect" +msgid "The editor must be restarted for changes to take effect." msgstr "" #: editor/project_settings_editor.cpp @@ -8144,12 +9627,14 @@ msgid "Locales Filter" msgstr "" #: editor/project_settings_editor.cpp -msgid "Show all locales" -msgstr "" +#, fuzzy +msgid "Show All Locales" +msgstr "×¦×ž×¦×•× ×›×œ השורות" #: editor/project_settings_editor.cpp -msgid "Show only selected locales" -msgstr "" +#, fuzzy +msgid "Show Selected Locales Only" +msgstr "בחירה בלבד" #: editor/project_settings_editor.cpp msgid "Filter mode:" @@ -8164,14 +9649,6 @@ msgid "AutoLoad" msgstr "" #: editor/property_editor.cpp -msgid "Ease In" -msgstr "" - -#: editor/property_editor.cpp -msgid "Ease Out" -msgstr "" - -#: editor/property_editor.cpp msgid "Zero" msgstr "" @@ -8245,8 +9722,9 @@ msgid "Suffix" msgstr "" #: editor/rename_dialog.cpp -msgid "Advanced options" -msgstr "" +#, fuzzy +msgid "Advanced Options" +msgstr "הגדרות הצמדה" #: editor/rename_dialog.cpp msgid "Substitute" @@ -8511,8 +9989,8 @@ msgstr "" #: editor/scene_tree_dock.cpp #, fuzzy -msgid "Custom Node" -msgstr "גזירת מפרקי×" +msgid "Other Node" +msgstr "מחיקת שורה" #: editor/scene_tree_dock.cpp msgid "Can't operate on nodes from a foreign scene!" @@ -8554,7 +10032,7 @@ msgstr "" #: editor/scene_tree_dock.cpp #, fuzzy -msgid "Open documentation" +msgid "Open Documentation" msgstr "פתיחת התיעוד המקוון של Godot" #: editor/scene_tree_dock.cpp @@ -8583,7 +10061,7 @@ msgstr "" msgid "Save Branch as Scene" msgstr "" -#: editor/scene_tree_dock.cpp +#: editor/scene_tree_dock.cpp editor/script_editor_debugger.cpp msgid "Copy Node Path" msgstr "" @@ -8627,6 +10105,21 @@ msgid "Toggle Visible" msgstr "החלפת מצב תצוגה ×œ×§×‘×¦×™× ×ž×•×¡×ª×¨×™×" #: editor/scene_tree_editor.cpp +#, fuzzy +msgid "Unlock Node" +msgstr "מצב ×”×–×–×” (W)" + +#: editor/scene_tree_editor.cpp +#, fuzzy +msgid "Button Group" +msgstr "כפתור 7" + +#: editor/scene_tree_editor.cpp +#, fuzzy +msgid "(Connecting From)" +msgstr "שגי×ת חיבור" + +#: editor/scene_tree_editor.cpp msgid "Node configuration warning:" msgstr "" @@ -8648,9 +10141,9 @@ msgid "" "Click to show groups dock." msgstr "" -#: editor/scene_tree_editor.cpp editor/script_create_dialog.cpp +#: editor/scene_tree_editor.cpp #, fuzzy -msgid "Open Script" +msgid "Open Script:" msgstr "הרצת סקריפט" #: editor/scene_tree_editor.cpp @@ -8696,73 +10189,81 @@ msgid "Select a Node" msgstr "" #: editor/script_create_dialog.cpp -msgid "Error loading template '%s'" -msgstr "" - -#: editor/script_create_dialog.cpp -msgid "Error - Could not create script in filesystem." -msgstr "" +#, fuzzy +msgid "Path is empty." +msgstr "לוח גזירי המש××‘×™× ×¨×™×§!" #: editor/script_create_dialog.cpp -msgid "Error loading script from %s" -msgstr "" +#, fuzzy +msgid "Filename is empty." +msgstr "לוח גזירי המש××‘×™× ×¨×™×§!" #: editor/script_create_dialog.cpp -msgid "N/A" -msgstr "" +#, fuzzy +msgid "Path is not local." +msgstr "×”× ×ª×™×‘ ×œ× ×ž×•×‘×™×œ מפרק!" #: editor/script_create_dialog.cpp #, fuzzy -msgid "Open Script/Choose Location" -msgstr "פתיחת עורך סקריפטי×" +msgid "Invalid base path." +msgstr "× ×ª×™×‘ שגוי." #: editor/script_create_dialog.cpp -msgid "Path is empty" -msgstr "" +#, fuzzy +msgid "A directory with the same name exists." +msgstr "כבר ×§×™×™×ž×™× ×§×•×‘×¥ ×ו תיקייה ×‘×©× ×”×–×”." #: editor/script_create_dialog.cpp #, fuzzy -msgid "Filename is empty" -msgstr "לוח גזירי המש××‘×™× ×¨×™×§!" +msgid "Invalid extension." +msgstr "יש להשתמש בסיומת ×ª×§× ×™×ª." #: editor/script_create_dialog.cpp -msgid "Path is not local" +msgid "Wrong extension chosen." msgstr "" #: editor/script_create_dialog.cpp -msgid "Invalid base path" +msgid "Error loading template '%s'" msgstr "" #: editor/script_create_dialog.cpp -msgid "Directory of the same name exists" +msgid "Error - Could not create script in filesystem." msgstr "" #: editor/script_create_dialog.cpp -msgid "File exists, will be reused" +msgid "Error loading script from %s" msgstr "" #: editor/script_create_dialog.cpp -msgid "Invalid extension" +msgid "N/A" msgstr "" #: editor/script_create_dialog.cpp -msgid "Wrong extension chosen" -msgstr "" +#, fuzzy +msgid "Open Script / Choose Location" +msgstr "פתיחת עורך סקריפטי×" #: editor/script_create_dialog.cpp -msgid "Invalid Path" -msgstr "" +#, fuzzy +msgid "Open Script" +msgstr "הרצת סקריפט" #: editor/script_create_dialog.cpp -msgid "Invalid class name" +msgid "File exists, it will be reused." msgstr "" #: editor/script_create_dialog.cpp -msgid "Invalid inherited parent name or path" -msgstr "" +#, fuzzy +msgid "Invalid class name." +msgstr "×©× ×©×’×•×™." + +#: editor/script_create_dialog.cpp +#, fuzzy +msgid "Invalid inherited parent name or path." +msgstr "×©× ×ž×פיין ×”××™× ×“×§×¡ שגוי." #: editor/script_create_dialog.cpp -msgid "Script valid" +msgid "Script is valid." msgstr "" #: editor/script_create_dialog.cpp @@ -8770,16 +10271,19 @@ msgid "Allowed: a-z, A-Z, 0-9 and _" msgstr "" #: editor/script_create_dialog.cpp -msgid "Built-in script (into scene file)" -msgstr "" +#, fuzzy +msgid "Built-in script (into scene file)." +msgstr "פעולות ×¢× ×§×•×‘×¦×™ ×¡×¦× ×•×ª." #: editor/script_create_dialog.cpp -msgid "Create new script file" -msgstr "" +#, fuzzy +msgid "Will create a new script file." +msgstr "יצירת %s חדש" #: editor/script_create_dialog.cpp -msgid "Load existing script file" -msgstr "" +#, fuzzy +msgid "Will load an existing script file." +msgstr "×˜×¢×™× ×ª פריסת ×פיקי שמע." #: editor/script_create_dialog.cpp msgid "Language" @@ -8909,6 +10413,10 @@ msgstr "" msgid "Set From Tree" msgstr "" +#: editor/script_editor_debugger.cpp +msgid "Export measures as CSV" +msgstr "" + #: editor/settings_config_dialog.cpp msgid "Erase Shortcut" msgstr "" @@ -9039,6 +10547,15 @@ msgid "GDNativeLibrary" msgstr "" #: 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 "השבתת שבשבת עדכון" + +#: modules/gdnative/gdnative_library_singleton_editor.cpp msgid "Library" msgstr "" @@ -9124,8 +10641,9 @@ msgid "GridMap Fill Selection" msgstr "כל הבחירה" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "GridMap Duplicate Selection" -msgstr "" +#, fuzzy +msgid "GridMap Paste Selection" +msgstr "כל הבחירה" #: modules/gridmap/grid_map_editor_plugin.cpp msgid "GridMap Paint" @@ -9192,18 +10710,6 @@ msgid "Cursor Clear Rotation" msgstr "מחיקת הטיית מצביע" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Create Area" -msgstr "יצירת שטח" - -#: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Create Exterior Connector" -msgstr "יצירת מחבר ×—×™×¦×•× ×™" - -#: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Erase Area" -msgstr "מחיקת שטח" - -#: modules/gridmap/grid_map_editor_plugin.cpp msgid "Clear Selection" msgstr "ביטול הבחירה" @@ -9558,15 +11064,7 @@ msgid "Available Nodes:" msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Select or create a function to edit graph" -msgstr "" - -#: modules/visual_script/visual_script_editor.cpp -msgid "Edit Signal Arguments:" -msgstr "" - -#: modules/visual_script/visual_script_editor.cpp -msgid "Edit Variable:" +msgid "Select or create a function to edit its graph." msgstr "" #: modules/visual_script/visual_script_editor.cpp @@ -9698,6 +11196,19 @@ msgid "Debug keystore not configured in the Editor Settings nor in the preset." msgstr "" #: platform/android/export/export.cpp +msgid "Custom build requires a valid Android SDK path in Editor Settings." +msgstr "" + +#: platform/android/export/export.cpp +msgid "Invalid Android SDK path for custom build in Editor Settings." +msgstr "" + +#: platform/android/export/export.cpp +msgid "" +"Android project is not installed for compiling. Install from Editor menu." +msgstr "" + +#: platform/android/export/export.cpp msgid "Invalid public key for APK expansion." msgstr "" @@ -9706,6 +11217,34 @@ msgstr "" msgid "Invalid package name:" msgstr "×©× ×©×’×•×™." +#: platform/android/export/export.cpp +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 "" +"Android build version mismatch:\n" +" Template installed: %s\n" +" Godot Version: %s\n" +"Please reinstall Android build template from 'Project' menu." +msgstr "" + +#: platform/android/export/export.cpp +msgid "Building Android Project (gradle)" +msgstr "" + +#: 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 "" + +#: platform/android/export/export.cpp +msgid "No build apk generated at: " +msgstr "" + #: platform/iphone/export/export.cpp msgid "Identifier is missing." msgstr "" @@ -9964,27 +11503,30 @@ msgid "ARVRCamera must have an ARVROrigin node as its parent" msgstr "ל־ARVRCamera חייב להיות מפרק ARVROrigin כהורה שלו" #: scene/3d/arvr_nodes.cpp -msgid "ARVRController must have an ARVROrigin node as its parent" -msgstr "" +#, fuzzy +msgid "ARVRController must have an ARVROrigin node as its parent." +msgstr "ל־ARVRCamera חייב להיות מפרק ARVROrigin כהורה שלו" #: scene/3d/arvr_nodes.cpp msgid "" -"The controller id must not be 0 or this controller will not be bound to an " -"actual controller" +"The controller ID must not be 0 or this controller won't be bound to an " +"actual controller." msgstr "" #: scene/3d/arvr_nodes.cpp -msgid "ARVRAnchor must have an ARVROrigin node as its parent" -msgstr "" +#, fuzzy +msgid "ARVRAnchor must have an ARVROrigin node as its parent." +msgstr "ל־ARVRCamera חייב להיות מפרק ARVROrigin כהורה שלו" #: scene/3d/arvr_nodes.cpp msgid "" -"The anchor id must not be 0 or this anchor will not be bound to an actual " -"anchor" +"The anchor ID must not be 0 or this anchor won't be bound to an actual " +"anchor." msgstr "" #: scene/3d/arvr_nodes.cpp -msgid "ARVROrigin requires an ARVRCamera child node" +#, fuzzy +msgid "ARVROrigin requires an ARVRCamera child node." msgstr "ARVROrigin דורש מפרק צ××¦× ×ž×¡×•×’ ARVRCamera" #: scene/3d/baked_lightmap.cpp @@ -10054,8 +11596,8 @@ msgstr "" #: scene/3d/cpu_particles.cpp msgid "" -"CPUParticles animation requires the usage of a SpatialMaterial with " -"\"Billboard Particles\" enabled." +"CPUParticles animation requires the usage of a SpatialMaterial whose " +"Billboard Mode is set to \"Particle Billboard\"." msgstr "" #: scene/3d/gi_probe.cpp @@ -10092,8 +11634,8 @@ msgstr "" #: scene/3d/particles.cpp msgid "" -"Particles animation requires the usage of a SpatialMaterial with \"Billboard " -"Particles\" enabled." +"Particles animation requires the usage of a SpatialMaterial whose Billboard " +"Mode is set to \"Particle Billboard\"." msgstr "" #: scene/3d/path.cpp @@ -10119,7 +11661,7 @@ msgid "Path property must point to a valid Spatial node to work." msgstr "" #: scene/3d/soft_body.cpp -msgid "This body will be ignored until you set a mesh" +msgid "This body will be ignored until you set a mesh." msgstr "" #: scene/3d/soft_body.cpp @@ -10219,7 +11761,7 @@ msgstr "הוספת הצבע ×”× ×•×›×—×™ כערכה" msgid "" "Container by itself serves no purpose unless a script configures it's " "children placement behavior.\n" -"If you dont't intend to add a script, then please use a plain 'Control' node " +"If you don't intend to add a script, then please use a plain 'Control' node " "instead." msgstr "" @@ -10231,11 +11773,6 @@ msgstr "" msgid "Please Confirm..." msgstr "× × ×œ×מת…" -#: scene/gui/file_dialog.cpp -#, fuzzy -msgid "Go to parent folder." -msgstr "מעבר לתיקייה שמעל" - #: scene/gui/popup.cpp msgid "" "Popups will hide by default unless you call popup() or any of the popup*() " @@ -10309,6 +11846,44 @@ msgstr "" msgid "Varyings can only be assigned in vertex function." msgstr "" +#: servers/visual/shader_language.cpp +msgid "Constants cannot be modified." +msgstr "" + +#~ msgid "Path to Node:" +#~ msgstr "× ×ª×™×‘ המפרק:" + +#~ msgid "Delete selected files?" +#~ msgstr "למחוק ×ת ×”×§×‘×¦×™× ×”× ×‘×—×¨×™×?" + +#~ msgid "There is no 'res://default_bus_layout.tres' file." +#~ msgstr "×ין קובץ ‚res://default_bus_layout.tres’." + +#~ msgid "Go to parent folder" +#~ msgstr "מעבר לתיקייה שמעל" + +#~ msgid "Select device from the list" +#~ msgstr "× × ×œ×‘×—×•×¨ התקן מהרשימה" + +#~ msgid "Open Scene(s)" +#~ msgstr "פתיחת ×¡×¦× ×•×ª" + +#~ msgid "Previous Directory" +#~ msgstr "התיקייה הקודמת" + +#~ msgid "Next Directory" +#~ msgstr "התיקייה הב××”" + +#, fuzzy +#~ msgid "Custom Node" +#~ msgstr "גזירת מפרקי×" + +#~ msgid "Create Area" +#~ msgstr "יצירת שטח" + +#~ msgid "Create Exterior Connector" +#~ msgstr "יצירת מחבר ×—×™×¦×•× ×™" + #, fuzzy #~ msgid "Snap (s): " #~ msgstr "צעד/×™×:" @@ -10378,9 +11953,6 @@ msgstr "" #~ msgid "Class List:" #~ msgstr "רשימת מחלקות:" -#~ msgid "Search Classes" -#~ msgstr "חיפוש במחלקות" - #~ msgid "Public Methods" #~ msgstr "שיטות ציבוריות" @@ -10427,18 +11999,9 @@ msgstr "" #~ msgid "Convert To Lowercase" #~ msgstr "המרה ל×ותיות ×§×˜× ×•×ª" -#~ msgid "Change Default Value" -#~ msgstr "×©×™× ×•×™ ערך בררת המחדל" - -#~ msgid "Change Input Name" -#~ msgstr "×©×™× ×•×™ ×©× ×§×œ×˜" - #~ msgid "Error: Missing Input Connections" #~ msgstr "שגי××”: ×—×¡×¨×™× ×—×™×‘×•×¨×™ קלט" -#~ msgid "Disabled" -#~ msgstr "מושבת" - #~ msgid "Set Transitions to:" #~ msgstr "הגדרת ×ž×¢×‘×¨×•× ×™× ×ל:" @@ -10469,9 +12032,6 @@ msgstr "" #~ msgid "OK :(" #~ msgstr "בסדר :(" -#~ msgid "Button 7" -#~ msgstr "כפתור 7" - #~ msgid "Button 8" #~ msgstr "כפתור 8" diff --git a/editor/translations/hi.po b/editor/translations/hi.po index f7bf57678d..601d09371e 100644 --- a/editor/translations/hi.po +++ b/editor/translations/hi.po @@ -5,12 +5,13 @@ # Abhas Kumar Sinha <abhaskumarsinha@gmail.com>, 2017. # Suryansh5545 <suryanshpathak5545@gmail.com>, 2018. # Vikram1323 <vikram1323@gmail.com>, 2018. +# vkubre <v@kubre.in>, 2019. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2018-12-13 14:40+0100\n" -"Last-Translator: Vikram1323 <vikram1323@gmail.com>\n" +"PO-Revision-Date: 2019-05-04 13:48+0000\n" +"Last-Translator: vkubre <v@kubre.in>\n" "Language-Team: Hindi <https://hosted.weblate.org/projects/godot-engine/godot/" "hi/>\n" "Language: hi\n" @@ -18,7 +19,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.7-dev\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -70,6 +71,14 @@ msgstr "संतà¥à¤²à¤¿à¤¤" #: editor/animation_bezier_editor.cpp msgid "Mirror" +msgstr "पà¥à¤°à¤¤à¤¿à¤®à¤¾" + +#: editor/animation_bezier_editor.cpp editor/editor_profiler.cpp +msgid "Time:" +msgstr "" + +#: editor/animation_bezier_editor.cpp +msgid "Value:" msgstr "" #: editor/animation_bezier_editor.cpp @@ -87,7 +96,7 @@ msgstr "चयनित फ़ाइलें हटाà¤à¤‚?" #: editor/animation_bezier_editor.cpp msgid "Add Bezier Point" -msgstr "" +msgstr "बेज़ियर पॉइंट तैयार करे" #: editor/animation_bezier_editor.cpp msgid "Move Bezier Points" @@ -161,14 +170,20 @@ msgstr "à¤à¤¨à¤¿à¤®à¥‡à¤¶à¤¨ पà¥à¤²à¥‡à¤¬à¥ˆà¤• टà¥à¤°à¥ˆà¤•" #: editor/animation_track_editor.cpp #, fuzzy -msgid "Add Track" -msgstr "टà¥à¤°à¥ˆà¤• जोड़ें" +msgid "Animation length (frames)" +msgstr "à¤à¤¨à¤¿à¤®à¥‡à¤¶à¤¨ लंबाई समय (सेकंडà¥à¤¸)" #: editor/animation_track_editor.cpp -msgid "Animation Length Time (seconds)" +#, fuzzy +msgid "Animation length (seconds)" msgstr "à¤à¤¨à¤¿à¤®à¥‡à¤¶à¤¨ लंबाई समय (सेकंडà¥à¤¸)" #: editor/animation_track_editor.cpp +#, fuzzy +msgid "Add Track" +msgstr "टà¥à¤°à¥ˆà¤• जोड़ें" + +#: editor/animation_track_editor.cpp msgid "Animation Looping" msgstr "à¤à¤¨à¤¿à¤®à¥‡à¤¶à¤¨ लूप" @@ -297,11 +312,13 @@ msgid "Create %d NEW tracks and insert keys?" msgstr "" #: editor/animation_track_editor.cpp editor/create_dialog.cpp -#: editor/editor_audio_buses.cpp editor/editor_plugin_settings.cpp -#: editor/plugin_config_dialog.cpp +#: editor/editor_audio_buses.cpp editor/editor_feature_profile.cpp +#: editor/editor_plugin_settings.cpp editor/plugin_config_dialog.cpp #: editor/plugins/abstract_polygon_2d_editor.cpp #: editor/plugins/mesh_instance_editor_plugin.cpp -#: editor/plugins/particles_editor_plugin.cpp editor/script_create_dialog.cpp +#: editor/plugins/particles_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_create_dialog.cpp msgid "Create" msgstr "" @@ -416,6 +433,23 @@ msgid "" msgstr "" #: editor/animation_track_editor.cpp +msgid "" +"This animation belongs to an imported scene, so changes to imported tracks " +"will not be saved.\n" +"\n" +"To enable the ability to add custom tracks, navigate to the scene's import " +"settings and set\n" +"\"Animation > Storage\" to \"Files\", enable \"Animation > Keep Custom Tracks" +"\", then re-import.\n" +"Alternatively, use an import preset that imports animations to separate " +"files." +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Warning: Editing imported animation" +msgstr "" + +#: editor/animation_track_editor.cpp msgid "Only show tracks from nodes selected in tree." msgstr "" @@ -550,7 +584,8 @@ msgstr "" msgid "Select tracks to copy:" msgstr "" -#: editor/animation_track_editor.cpp editor/editor_properties.cpp +#: editor/animation_track_editor.cpp editor/editor_log.cpp +#: editor/editor_properties.cpp #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp @@ -619,6 +654,11 @@ msgstr "" msgid "Selection Only" msgstr "" +#: editor/code_editor.cpp editor/plugins/script_text_editor.cpp +#: editor/plugins/text_editor.cpp +msgid "Standard" +msgstr "" + #: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/texture_region_editor_plugin.cpp #: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp @@ -644,20 +684,36 @@ msgid "Line and column numbers." msgstr "" #: editor/connections_dialog.cpp -msgid "Method in target Node must be specified!" +#, fuzzy +msgid "Method in target node must be specified." msgstr "लकà¥à¤·à¥à¤¯ नोड में विधि निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ किया जाना चाहिà¤!" #: editor/connections_dialog.cpp #, fuzzy msgid "" -"Target method not found! Specify a valid method or attach a script to target " -"Node." +"Target method not found. Specify a valid method or attach a script to the " +"target node." msgstr "" "लकà¥à¤·à¥à¤¯ विधि नहीं मिला! à¤à¤• वैध विधि निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ करें या नोड को लकà¥à¤·à¤¿à¤¤ करने के लिठà¤à¤• " "सà¥à¤•à¥à¤°à¤¿à¤ªà¥à¤Ÿ संलगà¥à¤¨ करें।" #: editor/connections_dialog.cpp -msgid "Connect To Node:" +#, fuzzy +msgid "Connect to Node:" +msgstr "जà¥à¤¡à¤¿à¤¯à¥‡" + +#: editor/connections_dialog.cpp +#, fuzzy +msgid "Connect to Script:" +msgstr "कनेकà¥à¤Ÿ करने के लिठसंकेत:" + +#: editor/connections_dialog.cpp +#, fuzzy +msgid "From Signal:" +msgstr "कनेकà¥à¤Ÿ करने के लिठसंकेत:" + +#: editor/connections_dialog.cpp +msgid "Scene does not contain any script." msgstr "" #: editor/connections_dialog.cpp editor/editor_autoload_settings.cpp @@ -667,10 +723,12 @@ msgid "Add" msgstr "जोड़ें" #: editor/connections_dialog.cpp editor/dependency_editor.cpp -#: editor/groups_editor.cpp editor/plugins/animation_player_editor_plugin.cpp +#: editor/editor_feature_profile.cpp editor/groups_editor.cpp +#: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp #: editor/plugins/resource_preloader_editor_plugin.cpp -#: editor/plugins/theme_editor_plugin.cpp editor/project_manager.cpp +#: editor/plugins/theme_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_manager.cpp #: editor/project_settings_editor.cpp msgid "Remove" msgstr "मिटाना" @@ -684,12 +742,9 @@ msgid "Extra Call Arguments:" msgstr "" #: editor/connections_dialog.cpp -msgid "Path to Node:" -msgstr "" - -#: editor/connections_dialog.cpp -msgid "Make Function" -msgstr "" +#, fuzzy +msgid "Advanced" +msgstr "संतà¥à¤²à¤¿à¤¤" #: editor/connections_dialog.cpp #, fuzzy @@ -697,9 +752,23 @@ msgid "Deferred" msgstr "सà¥à¤¥à¤—ित" #: editor/connections_dialog.cpp +msgid "" +"Defers the signal, storing it in a queue and only firing it at idle time." +msgstr "" + +#: editor/connections_dialog.cpp msgid "Oneshot" msgstr "" +#: editor/connections_dialog.cpp +msgid "Disconnects the signal after its first emission." +msgstr "" + +#: editor/connections_dialog.cpp +#, fuzzy +msgid "Cannot connect signal" +msgstr "कनेकà¥à¤Ÿ करने के लिठसंकेत:" + #: editor/connections_dialog.cpp editor/dependency_editor.cpp #: editor/export_template_manager.cpp editor/groups_editor.cpp #: editor/plugins/animation_player_editor_plugin.cpp @@ -746,12 +815,12 @@ msgstr "डिसà¥à¤•नेकà¥à¤Ÿ" #: editor/connections_dialog.cpp #, fuzzy -msgid "Connect Signal: " +msgid "Connect a Signal to a Method" msgstr "कनेकà¥à¤Ÿ करने के लिठसंकेत:" #: editor/connections_dialog.cpp #, fuzzy -msgid "Edit Connection: " +msgid "Edit Connection:" msgstr "परिवरà¥à¤¤à¤¨ वकà¥à¤° चयन" #: editor/connections_dialog.cpp @@ -784,7 +853,6 @@ msgid "Change %s Type" msgstr "" #: editor/create_dialog.cpp editor/project_settings_editor.cpp -#: modules/visual_script/visual_script_editor.cpp msgid "Change" msgstr "" @@ -817,7 +885,8 @@ msgid "Matches:" msgstr "à¤à¤• जैसा:" #: editor/create_dialog.cpp editor/plugin_config_dialog.cpp -#: editor/plugins/asset_library_editor_plugin.cpp editor/property_selector.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/property_selector.cpp #: modules/visual_script/visual_script_property_selector.cpp msgid "Description:" msgstr "विवरण:" @@ -832,17 +901,19 @@ msgid "Dependencies For:" msgstr "के लिठनिरà¥à¤à¤°à¤¤à¤¾:" #: editor/dependency_editor.cpp +#, fuzzy msgid "" "Scene '%s' is currently being edited.\n" -"Changes will not take effect unless reloaded." +"Changes will only take effect when reloaded." msgstr "" "दृशà¥à¤¯ '%s' वरà¥à¤¤à¤®à¤¾à¤¨ में संपादित किया जा रहा है।\n" "परिवरà¥à¤¤à¤¨ तब तक पà¥à¤°à¤à¤¾à¤µà¥€ नहीं होंगे जब तक कि पà¥à¤¨à¤ƒ लोड नहीं किठजाà¤à¤‚गे।" #: editor/dependency_editor.cpp +#, fuzzy msgid "" "Resource '%s' is in use.\n" -"Changes will take effect when reloaded." +"Changes will only take effect when reloaded." msgstr "" "संसाधन '%s' उपयोग में है\n" "पà¥à¤¨à¤ƒ लोड होने पर परिवरà¥à¤¤à¤¨ पà¥à¤°à¤à¤¾à¤µà¥€ होंगे।" @@ -941,22 +1012,15 @@ msgid "Permanently delete %d item(s)? (No undo!)" msgstr "%d आइटम को सà¥à¤¥à¤¾à¤¯à¥€ रूप से हटाà¤à¤‚? (नहीं पूरà¥à¤µà¤µà¤¤ करें!)" #: editor/dependency_editor.cpp -msgid "Owns" -msgstr "मालिक" - -#: editor/dependency_editor.cpp -msgid "Resources Without Explicit Ownership:" -msgstr "सà¥à¤ªà¤·à¥à¤Ÿ सà¥à¤µà¤¾à¤®à¤¿à¤¤à¥à¤µ के बिना संसाधन:" +#, fuzzy +msgid "Show Dependencies" +msgstr "निरà¥à¤à¤°à¤¤à¤¾" #: editor/dependency_editor.cpp editor/editor_node.cpp #, fuzzy msgid "Orphan Resource Explorer" msgstr "Orphan Resource Explorer" -#: editor/dependency_editor.cpp -msgid "Delete selected files?" -msgstr "चयनित फ़ाइलें हटाà¤à¤‚?" - #: editor/dependency_editor.cpp editor/editor_audio_buses.cpp #: editor/editor_file_dialog.cpp editor/editor_node.cpp #: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp @@ -965,6 +1029,14 @@ msgstr "चयनित फ़ाइलें हटाà¤à¤‚?" msgid "Delete" msgstr "को हटा दें" +#: editor/dependency_editor.cpp +msgid "Owns" +msgstr "मालिक" + +#: editor/dependency_editor.cpp +msgid "Resources Without Explicit Ownership:" +msgstr "सà¥à¤ªà¤·à¥à¤Ÿ सà¥à¤µà¤¾à¤®à¤¿à¤¤à¥à¤µ के बिना संसाधन:" + #: editor/dictionary_property_edit.cpp msgid "Change Dictionary Key" msgstr "शबà¥à¤¦à¤•ोश कà¥à¤‚जी बदलें" @@ -1082,7 +1154,7 @@ msgstr "पैकेज सफलतापूरà¥à¤µà¤• सà¥à¤¥à¤¾à¤ªà¤¿à¤¤ msgid "Success!" msgstr "सफलता!" -#: editor/editor_asset_installer.cpp +#: editor/editor_asset_installer.cpp editor/editor_node.cpp #: editor/plugins/asset_library_editor_plugin.cpp msgid "Install" msgstr "इंसà¥à¤Ÿà¥‰à¤²" @@ -1214,7 +1286,11 @@ msgid "Open Audio Bus Layout" msgstr "" #: editor/editor_audio_buses.cpp -msgid "There is no 'res://default_bus_layout.tres' file." +msgid "There is no '%s' file." +msgstr "" + +#: editor/editor_audio_buses.cpp editor/plugins/canvas_item_editor_plugin.cpp +msgid "Layout" msgstr "" #: editor/editor_audio_buses.cpp @@ -1268,15 +1344,19 @@ msgid "Valid characters:" msgstr "" #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing engine class name." +msgid "Must not collide with an existing engine class name." +msgstr "" + +#: editor/editor_autoload_settings.cpp +msgid "Must not collide with an existing buit-in type name." msgstr "" #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing buit-in type name." +msgid "Must not collide with an existing global constant name." msgstr "" #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing global constant name." +msgid "Keyword cannot be used as an autoload name." msgstr "" #: editor/editor_autoload_settings.cpp @@ -1307,11 +1387,12 @@ msgstr "" msgid "Rearrange Autoloads" msgstr "" -#: editor/editor_autoload_settings.cpp -msgid "Invalid Path." -msgstr "" +#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp +#, fuzzy +msgid "Invalid path." +msgstr "गलत फॉणà¥à¤Ÿ का आकार |" -#: editor/editor_autoload_settings.cpp +#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp msgid "File does not exist." msgstr "" @@ -1362,7 +1443,7 @@ msgid "[unsaved]" msgstr "" #: editor/editor_dir_dialog.cpp -msgid "Please select a base directory first" +msgid "Please select a base directory first." msgstr "" #: editor/editor_dir_dialog.cpp @@ -1370,7 +1451,8 @@ msgid "Choose a Directory" msgstr "" #: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp -#: editor/filesystem_dock.cpp scene/gui/file_dialog.cpp +#: editor/filesystem_dock.cpp editor/project_manager.cpp +#: scene/gui/file_dialog.cpp msgid "Create Folder" msgstr "" @@ -1438,6 +1520,157 @@ msgstr "" msgid "Template file not found:" msgstr "" +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "3D Editor" +msgstr "निरà¥à¤à¤°à¤¤à¤¾ संपादक" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Script Editor" +msgstr "निरà¥à¤à¤°à¤¤à¤¾ संपादक" + +#: editor/editor_feature_profile.cpp +msgid "Asset Library" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Scene Tree Editing" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Import Dock" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Node Dock" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Filesystem Dock" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Erase profile '%s'? (no undo)" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Profile must be a valid filename and must not contain '.'" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Profile with this name already exists." +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "(Editor Disabled, Properties Disabled)" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "(Properties Disabled)" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "(Editor Disabled)" +msgstr "बंद कर दिया गया है" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Class Options:" +msgstr "विवरण:" + +#: editor/editor_feature_profile.cpp +msgid "Enable Contextual Editor" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Enabled Properties:" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Enabled Features:" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Enabled Classes:" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "File '%s' format is invalid, import aborted." +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "" +"Profile '%s' already exists. Remote it first before importing, import " +"aborted." +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Error saving profile to path: '%s'." +msgstr "लोड हो रहा है तà¥à¤°à¥à¤Ÿà¤¿à¤¯à¤¾à¤!" + +#: editor/editor_feature_profile.cpp +msgid "Unset" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Current Profile" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Make Current" +msgstr "" + +#: editor/editor_feature_profile.cpp +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "New" +msgstr "" + +#: editor/editor_feature_profile.cpp editor/editor_node.cpp +#: editor/plugins/asset_library_editor_plugin.cpp editor/project_manager.cpp +msgid "Import" +msgstr "" + +#: editor/editor_feature_profile.cpp editor/editor_node.cpp +#: editor/project_export.cpp +msgid "Export" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Available Profiles" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Enabled Classes" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Class Options" +msgstr "विवरण:" + +#: editor/editor_feature_profile.cpp +msgid "New profile name:" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Erase Profile" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Import Profile(s)" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Export Profile" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Manage Editor Feature Profiles" +msgstr "" + #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Select Current Folder" msgstr "" @@ -1459,8 +1692,8 @@ msgstr "" msgid "Open in File Manager" msgstr "खोलो इसे" -#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp -#: editor/project_manager.cpp +#: editor/editor_file_dialog.cpp editor/editor_node.cpp +#: editor/filesystem_dock.cpp editor/project_manager.cpp msgid "Show in File Manager" msgstr "" @@ -1519,7 +1752,7 @@ msgstr "" msgid "Go Up" msgstr "" -#: editor/editor_file_dialog.cpp +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Toggle Hidden Files" msgstr "" @@ -1551,14 +1784,18 @@ msgstr "" msgid "Next Folder" msgstr "" -#: editor/editor_file_dialog.cpp -msgid "Go to parent folder" +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp +msgid "Go to parent folder." msgstr "" #: editor/editor_file_dialog.cpp msgid "(Un)favorite current folder." msgstr "" +#: editor/editor_file_dialog.cpp +msgid "Toggle visibility of hidden files." +msgstr "" + #: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp msgid "View items as a grid of thumbnails." msgstr "" @@ -1573,6 +1810,7 @@ msgstr "" #: editor/editor_file_dialog.cpp editor/plugins/sprite_editor_plugin.cpp #: editor/plugins/style_box_editor_plugin.cpp +#: editor/plugins/theme_editor_plugin.cpp msgid "Preview:" msgstr "" @@ -1589,6 +1827,12 @@ msgid "ScanSources" msgstr "" #: editor/editor_file_system.cpp +msgid "" +"There are multiple importers for different types pointing to file %s, import " +"aborted" +msgstr "" + +#: editor/editor_file_system.cpp msgid "(Re)Importing Assets" msgstr "" @@ -1771,6 +2015,11 @@ msgstr "" msgid "Output:" msgstr "" +#: editor/editor_log.cpp editor/plugins/tile_map_editor_plugin.cpp +#, fuzzy +msgid "Copy Selection" +msgstr "सà¤à¥€ खंड" + #: editor/editor_log.cpp editor/editor_profiler.cpp #: editor/editor_properties.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp @@ -1918,7 +2167,7 @@ msgstr "" #: editor/editor_node.cpp msgid "" "This resource belongs to a scene that was instanced or inherited.\n" -"Changes to it will not be kept when saving the current scene." +"Changes to it won't be kept when saving the current scene." msgstr "" #: editor/editor_node.cpp @@ -1929,7 +2178,7 @@ msgstr "" #: editor/editor_node.cpp msgid "" -"This scene was imported, so changes to it will not be kept.\n" +"This scene was imported, so changes to it won't be kept.\n" "Instancing it or inheriting will allow making changes to it.\n" "Please read the documentation relevant to importing scenes to better " "understand this workflow." @@ -1937,7 +2186,7 @@ msgstr "" #: editor/editor_node.cpp msgid "" -"This is a remote object so changes to it will not be kept.\n" +"This is a remote object, so changes to it won't be kept.\n" "Please read the documentation relevant to debugging to better understand " "this workflow." msgstr "" @@ -1947,27 +2196,6 @@ msgid "There is no defined scene to run." msgstr "" #: editor/editor_node.cpp -msgid "" -"No main scene has ever been defined, select one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" - -#: editor/editor_node.cpp -msgid "" -"Selected scene '%s' does not exist, select a valid one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" - -#: editor/editor_node.cpp -msgid "" -"Selected scene '%s' is not a scene file, select a valid one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" - -#: editor/editor_node.cpp msgid "Current scene was never saved, please save it prior to running." msgstr "" @@ -1975,7 +2203,7 @@ msgstr "" msgid "Could not start subprocess!" msgstr "" -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/filesystem_dock.cpp msgid "Open Scene" msgstr "" @@ -1984,6 +2212,11 @@ msgid "Open Base Scene" msgstr "" #: editor/editor_node.cpp +#, fuzzy +msgid "Quick Open..." +msgstr "खोलो इसे" + +#: editor/editor_node.cpp msgid "Quick Open Scene..." msgstr "" @@ -2145,6 +2378,27 @@ msgid "Clear Recent Scenes" msgstr "" #: editor/editor_node.cpp +msgid "" +"No main scene has ever been defined, select one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"Selected scene '%s' does not exist, select a valid one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"Selected scene '%s' is not a scene file, select a valid one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" + +#: editor/editor_node.cpp msgid "Save Layout" msgstr "" @@ -2171,6 +2425,19 @@ msgstr "" msgid "Close Tab" msgstr "बंद करे" +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +msgid "Close Other Tabs" +msgstr "" + +#: editor/editor_node.cpp +msgid "Close Tabs to the Right" +msgstr "" + +#: editor/editor_node.cpp +#, fuzzy +msgid "Close All Tabs" +msgstr "बंद करे" + #: editor/editor_node.cpp msgid "Switch Scene Tab" msgstr "" @@ -2293,10 +2560,6 @@ msgstr "" msgid "Project Settings" msgstr "" -#: editor/editor_node.cpp editor/project_export.cpp -msgid "Export" -msgstr "" - #: editor/editor_node.cpp editor/plugins/tile_set_editor_plugin.cpp msgid "Tools" msgstr "" @@ -2307,6 +2570,10 @@ msgid "Open Project Data Folder" msgstr "परियोजना के संसà¥à¤¥à¤¾à¤ªà¤•" #: editor/editor_node.cpp +msgid "Install Android Build Template" +msgstr "" + +#: editor/editor_node.cpp msgid "Quit to Project List" msgstr "" @@ -2411,6 +2678,10 @@ msgstr "" msgid "Open Editor Settings Folder" msgstr "" +#: editor/editor_node.cpp +msgid "Manage Editor Features" +msgstr "" + #: editor/editor_node.cpp editor/project_export.cpp msgid "Manage Export Templates" msgstr "" @@ -2423,6 +2694,7 @@ msgstr "" #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp #: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp #: editor/project_settings_editor.cpp editor/rename_dialog.cpp msgid "Search" msgstr "" @@ -2512,11 +2784,6 @@ msgstr "" msgid "Disable Update Spinner" msgstr "" -#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp -#: editor/project_manager.cpp -msgid "Import" -msgstr "" - #: editor/editor_node.cpp msgid "FileSystem" msgstr "" @@ -2542,6 +2809,27 @@ msgid "Don't Save" msgstr "" #: editor/editor_node.cpp +msgid "Android build template is missing, please install relevant templates." +msgstr "" + +#: editor/editor_node.cpp +msgid "Manage Templates" +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"This will install the Android project for custom builds.\n" +"Note that, in order to use it, it needs to be enabled per export preset." +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"Android build template is already installed and it won't be overwritten.\n" +"Remove the \"build\" directory manually before attempting this operation " +"again." +msgstr "" + +#: editor/editor_node.cpp msgid "Import Templates From ZIP File" msgstr "" @@ -2664,10 +2952,6 @@ msgid "Physics Frame %" msgstr "" #: editor/editor_profiler.cpp -msgid "Time:" -msgstr "" - -#: editor/editor_profiler.cpp msgid "Inclusive" msgstr "" @@ -2804,10 +3088,6 @@ msgid "Remove Item" msgstr "" #: editor/editor_run_native.cpp -msgid "Select device from the list" -msgstr "" - -#: editor/editor_run_native.cpp msgid "" "No runnable export preset found for this platform.\n" "Please add a runnable preset in the export menu." @@ -2841,6 +3121,10 @@ msgstr "" msgid "Select Node(s) to Import" msgstr "" +#: editor/editor_sub_scene.cpp editor/project_manager.cpp +msgid "Browse" +msgstr "" + #: editor/editor_sub_scene.cpp msgid "Scene Path:" msgstr "" @@ -3004,6 +3288,11 @@ msgid "SSL Handshake Error" msgstr "" #: editor/export_template_manager.cpp +#, fuzzy +msgid "Uncompressing Android Build Sources" +msgstr "असंपीड़ित संपतà¥à¤¤à¤¿à¤¯à¤¾à¤‚" + +#: editor/export_template_manager.cpp msgid "Current Version:" msgstr "" @@ -3020,8 +3309,9 @@ msgid "Remove Template" msgstr "" #: editor/export_template_manager.cpp -msgid "Select template file" -msgstr "" +#, fuzzy +msgid "Select Template File" +msgstr "चयनित फ़ाइलें हटाà¤à¤‚?" #: editor/export_template_manager.cpp msgid "Export Template Manager" @@ -3080,7 +3370,7 @@ msgid "No name provided." msgstr "" #: editor/filesystem_dock.cpp -msgid "Provided name contains invalid characters" +msgid "Provided name contains invalid characters." msgstr "" #: editor/filesystem_dock.cpp @@ -3110,21 +3400,27 @@ msgid "Duplicating folder:" msgstr "पà¥à¤°à¤¤à¤¿à¤²à¤¿à¤ªà¤¿" #: editor/filesystem_dock.cpp -msgid "Open Scene(s)" +msgid "New Inherited Scene" msgstr "" #: editor/filesystem_dock.cpp +#, fuzzy +msgid "Open Scenes" +msgstr "खोलो इसे" + +#: editor/filesystem_dock.cpp msgid "Instance" msgstr "" #: editor/filesystem_dock.cpp #, fuzzy -msgid "Add to favorites" +msgid "Add to Favorites" msgstr "पसंदीदा:" #: editor/filesystem_dock.cpp -msgid "Remove from favorites" -msgstr "" +#, fuzzy +msgid "Remove from Favorites" +msgstr "पसंदीदा:" #: editor/filesystem_dock.cpp msgid "Edit Dependencies..." @@ -3156,11 +3452,13 @@ msgstr "" msgid "New Resource..." msgstr "संसाधन" -#: editor/filesystem_dock.cpp editor/script_editor_debugger.cpp +#: editor/filesystem_dock.cpp editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_editor_debugger.cpp msgid "Expand All" msgstr "" -#: editor/filesystem_dock.cpp editor/script_editor_debugger.cpp +#: editor/filesystem_dock.cpp editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_editor_debugger.cpp msgid "Collapse All" msgstr "" @@ -3172,11 +3470,11 @@ msgid "Rename" msgstr "" #: editor/filesystem_dock.cpp -msgid "Previous Directory" +msgid "Previous Folder/File" msgstr "" #: editor/filesystem_dock.cpp -msgid "Next Directory" +msgid "Next Folder/File" msgstr "" #: editor/filesystem_dock.cpp @@ -3184,7 +3482,7 @@ msgid "Re-Scan Filesystem" msgstr "" #: editor/filesystem_dock.cpp -msgid "Toggle split mode" +msgid "Toggle Split Mode" msgstr "" #: editor/filesystem_dock.cpp @@ -3214,7 +3512,7 @@ msgstr "" msgid "Create Script" msgstr "" -#: editor/find_in_files.cpp +#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp msgid "Find in Files" msgstr "" @@ -3230,6 +3528,12 @@ msgstr "" msgid "Filters:" msgstr "" +#: editor/find_in_files.cpp +msgid "" +"Include the files with the following extensions. Add or remove them in " +"ProjectSettings." +msgstr "" + #: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp msgid "Find..." @@ -3667,7 +3971,7 @@ msgid "Open Animation Node" msgstr "" #: editor/plugins/animation_blend_space_2d_editor.cpp -msgid "Triangle already exists" +msgid "Triangle already exists." msgstr "" #: editor/plugins/animation_blend_space_2d_editor.cpp @@ -3743,7 +4047,6 @@ msgid "Node Moved" msgstr "" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Unable to connect, port may be in use or connection may be invalid." msgstr "" @@ -3814,7 +4117,7 @@ msgid "Edit Filtered Tracks:" msgstr "" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -msgid "Enable filtering" +msgid "Enable Filtering" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp @@ -3929,10 +4232,6 @@ msgid "Animation" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "New" -msgstr "" - -#: editor/plugins/animation_player_editor_plugin.cpp #, fuzzy msgid "Edit Transitions..." msgstr "अनà¥à¤µà¤¾à¤¦ में बदलाव करें:" @@ -3950,11 +4249,11 @@ msgid "Autoplay on Load" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Onion Skinning" +msgid "Enable Onion Skinning" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Enable Onion Skinning" +msgid "Onion Skinning Options" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp @@ -4502,13 +4801,19 @@ msgid "Move CanvasItem" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"Children of containers have their anchors and margins values overridden by " +"their parent." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Presets for the anchors and margins values of a Control node." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "" -"Children of containers have their anchors and margins values overridden by " -"their parent." +"When active, moving Control nodes changes their anchors instead of their " +"margins." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4524,10 +4829,49 @@ msgid "Change Anchors" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Lock Selected" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Unlock Selected" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Group Selected" +msgstr "सà¤à¥€ खंड" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Ungroup Selected" +msgstr "सà¤à¥€ खंड" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Paste Pose" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Create Custom Bone(s) from Node(s)" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Clear Bones" +msgstr "à¤à¤¨à¥€à¤®à¥‡à¤¶à¤¨ परिवरà¥à¤¤à¤¨ परिणत" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Make IK Chain" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Clear IK Chain" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "" "Warning: Children of a container get their position and size determined only " "by their parent." @@ -4600,7 +4944,7 @@ msgid "Snapping Options" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to grid" +msgid "Snap to Grid" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4621,31 +4965,31 @@ msgid "Use Pixel Snap" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Smart snapping" +msgid "Smart Snapping" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to parent" +msgid "Snap to Parent" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node anchor" +msgid "Snap to Node Anchor" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node sides" +msgid "Snap to Node Sides" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node center" +msgid "Snap to Node Center" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to other nodes" +msgid "Snap to Other Nodes" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to guides" +msgid "Snap to Guides" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4659,10 +5003,12 @@ msgid "Unlock the selected object (can be moved)." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Makes sure the object's children are not selectable." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Restores the object's children's ability to be selected." msgstr "" @@ -4675,14 +5021,6 @@ msgid "Show Bones" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Make IK Chain" -msgstr "" - -#: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Clear IK Chain" -msgstr "" - -#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Make Custom Bone(s) from Node(s)" msgstr "" @@ -4733,7 +5071,7 @@ msgid "Frame Selection" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Layout" +msgid "Preview Canvas Scale" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4786,6 +5124,10 @@ msgid "Divide grid step by 2" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Pan View" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Add %s" msgstr "" @@ -4808,7 +5150,7 @@ msgid "Error instancing scene from %s" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Change default type" +msgid "Change Default Type" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4895,19 +5237,19 @@ msgid "Create Emission Points From Node" msgstr "" #: editor/plugins/curve_editor_plugin.cpp -msgid "Flat0" +msgid "Flat 0" msgstr "" #: editor/plugins/curve_editor_plugin.cpp -msgid "Flat1" +msgid "Flat 1" msgstr "" -#: editor/plugins/curve_editor_plugin.cpp -msgid "Ease in" +#: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp +msgid "Ease In" msgstr "" -#: editor/plugins/curve_editor_plugin.cpp -msgid "Ease out" +#: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp +msgid "Ease Out" msgstr "" #: editor/plugins/curve_editor_plugin.cpp @@ -4927,23 +5269,25 @@ msgid "Load Curve Preset" msgstr "" #: editor/plugins/curve_editor_plugin.cpp -msgid "Add point" -msgstr "" +#, fuzzy +msgid "Add Point" +msgstr "पसंदीदा:" #: editor/plugins/curve_editor_plugin.cpp -msgid "Remove point" -msgstr "" +#, fuzzy +msgid "Remove Point" +msgstr "मिटाना" #: editor/plugins/curve_editor_plugin.cpp -msgid "Left linear" +msgid "Left Linear" msgstr "" #: editor/plugins/curve_editor_plugin.cpp -msgid "Right linear" +msgid "Right Linear" msgstr "" #: editor/plugins/curve_editor_plugin.cpp -msgid "Load preset" +msgid "Load Preset" msgstr "" #: editor/plugins/curve_editor_plugin.cpp @@ -4999,14 +5343,19 @@ msgid "This doesn't work on scene root!" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Trimesh Shape" +msgid "Create Trimesh Static Shape" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Shape" +msgid "Failed creating shapes!" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp +#, fuzzy +msgid "Create Convex Shape(s)" +msgstr "à¤à¤• नया बनाà¤à¤‚" + +#: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Navigation Mesh" msgstr "" @@ -5056,16 +5405,13 @@ msgid "Create Trimesh Static Body" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Static Body" -msgstr "" - -#: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Trimesh Collision Sibling" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Collision Sibling" -msgstr "" +#, fuzzy +msgid "Create Convex Collision Sibling(s)" +msgstr "सदसà¥à¤¯à¤¤à¤¾ बनाà¤à¤‚" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Outline Mesh..." @@ -5218,20 +5564,20 @@ msgid "Create Navigation Polygon" msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp -msgid "Generating Visibility Rect" +#: editor/plugins/particles_editor_plugin.cpp +msgid "Convert to CPUParticles" msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp -msgid "Generate Visibility Rect" +msgid "Generating Visibility Rect" msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp -msgid "Can only set point into a ParticlesMaterial process material" +msgid "Generate Visibility Rect" msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp -#: editor/plugins/particles_editor_plugin.cpp -msgid "Convert to CPUParticles" +msgid "Can only set point into a ParticlesMaterial process material" msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp @@ -5374,7 +5720,7 @@ msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp editor/plugins/theme_editor_plugin.cpp -#: editor/project_export.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_export.cpp msgid "Options" msgstr "" @@ -5425,7 +5771,7 @@ msgid "Split Segment (in curve)" msgstr "" #: editor/plugins/physical_bone_plugin.cpp -msgid "Move joint" +msgid "Move Joint" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5662,7 +6008,6 @@ msgid "Open in Editor" msgstr "" #: editor/plugins/resource_preloader_editor_plugin.cpp -#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Load Resource" msgstr "" @@ -5758,6 +6103,11 @@ msgid "%s Class Reference" msgstr "" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp +msgid "Find Next" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp msgid "Toggle alphabetical sorting of the method list." msgstr "" @@ -5839,10 +6189,6 @@ msgstr "" msgid "Close All" msgstr "" -#: editor/plugins/script_editor_plugin.cpp -msgid "Close Other Tabs" -msgstr "" - #: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp msgid "Run" msgstr "" @@ -5851,11 +6197,6 @@ msgstr "" msgid "Toggle Scripts Panel" msgstr "" -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/script_text_editor.cpp -msgid "Find Next" -msgstr "" - #: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp msgid "Step Over" msgstr "" @@ -5882,7 +6223,7 @@ msgid "Debug with External Editor" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Open Godot online documentation" +msgid "Open Godot online documentation." msgstr "" #: editor/plugins/script_editor_plugin.cpp @@ -5890,7 +6231,7 @@ msgid "Request Docs" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Help improve the Godot documentation by giving feedback" +msgid "Help improve the Godot documentation by giving feedback." msgstr "" #: editor/plugins/script_editor_plugin.cpp @@ -5916,10 +6257,12 @@ msgid "" msgstr "" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp msgid "Reload" msgstr "" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp msgid "Resave" msgstr "" @@ -5933,6 +6276,30 @@ msgid "Search Results" msgstr "खोज कर:" #: editor/plugins/script_text_editor.cpp +msgid "Connections to method:" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Source" +msgstr "संसाधन" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Signal" +msgstr "संकेत" + +#: editor/plugins/script_text_editor.cpp +msgid "Target" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "" +"Missing connected method '%s' for signal '%s' from node '%s' to node '%s'." +msgstr "जà¥à¤¡à¤¿à¤¯à¥‡ '%s' to '%s'" + +#: editor/plugins/script_text_editor.cpp #, fuzzy msgid "Line" msgstr "रेखा:" @@ -5946,10 +6313,6 @@ msgstr "" msgid "Go to Function" msgstr "कारà¥à¤¯à¥‹à¤‚:" -#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp -msgid "Standard" -msgstr "" - #: editor/plugins/script_text_editor.cpp msgid "Only resources from filesystem can be dropped." msgstr "" @@ -5982,6 +6345,11 @@ msgstr "" msgid "Syntax Highlighter" msgstr "" +#: editor/plugins/script_text_editor.cpp +#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp +msgid "Bookmarks" +msgstr "" + #: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" @@ -6009,6 +6377,22 @@ msgid "Toggle Comment" msgstr "" #: editor/plugins/script_text_editor.cpp +msgid "Toggle Bookmark" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Go to Next Bookmark" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Go to Previous Bookmark" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Remove All Bookmarks" +msgstr "" + +#: editor/plugins/script_text_editor.cpp msgid "Fold/Unfold Line" msgstr "" @@ -6082,6 +6466,12 @@ msgid "Contextual Help" msgstr "" #: editor/plugins/shader_editor_plugin.cpp +msgid "" +"This shader has been modified on on disk.\n" +"What action should be taken?" +msgstr "" + +#: editor/plugins/shader_editor_plugin.cpp msgid "Shader" msgstr "" @@ -6420,7 +6810,7 @@ msgid "Right View" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Switch Perspective/Orthogonal view" +msgid "Switch Perspective/Orthogonal View" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp @@ -6460,11 +6850,12 @@ msgid "Toggle Freelook" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Transform" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Snap object to floor" +msgid "Snap Object to Floor" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp @@ -6609,40 +7000,40 @@ msgid "Invalid geometry, can't replace by mesh." msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Invalid geometry, can't create polygon." -msgstr "" - -#: editor/plugins/sprite_editor_plugin.cpp -msgid "Invalid geometry, can't create collision polygon." +msgid "Convert to Mesh2D" msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Invalid geometry, can't create light occluder." +msgid "Invalid geometry, can't create polygon." msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Sprite" -msgstr "" +#, fuzzy +msgid "Convert to Polygon2D" +msgstr "सदसà¥à¤¯à¤¤à¤¾ बनाà¤à¤‚" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Convert to Mesh2D" +msgid "Invalid geometry, can't create collision polygon." msgstr "" #: editor/plugins/sprite_editor_plugin.cpp #, fuzzy -msgid "Convert to Polygon2D" +msgid "Create CollisionPolygon2D Sibling" msgstr "सदसà¥à¤¯à¤¤à¤¾ बनाà¤à¤‚" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy -msgid "Create CollisionPolygon2D Sibling" -msgstr "सदसà¥à¤¯à¤¤à¤¾ बनाà¤à¤‚" +msgid "Invalid geometry, can't create light occluder." +msgstr "" #: editor/plugins/sprite_editor_plugin.cpp msgid "Create LightOccluder2D Sibling" msgstr "" #: editor/plugins/sprite_editor_plugin.cpp +msgid "Sprite" +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp msgid "Simplification: " msgstr "" @@ -6659,7 +7050,12 @@ msgid "Settings:" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "ERROR: Couldn't load frame resource!" +#, fuzzy +msgid "No Frames Selected" +msgstr "जà¥à¤¡à¤¿à¤¯à¥‡" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Add %d Frame(s)" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp @@ -6667,6 +7063,10 @@ msgid "Add Frame" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "ERROR: Couldn't load frame resource!" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Resource clipboard is empty or not a texture!" msgstr "" @@ -6709,6 +7109,15 @@ msgid "Animation Frames:" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Add a Texture from File" +msgstr "परियोजना से चयनित फ़ाइलें निकालें? (कोई पूरà¥à¤µà¤µà¤¤ नहीं)" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Add Frames from a Sprite Sheet" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Insert Empty (Before)" msgstr "" @@ -6725,6 +7134,26 @@ msgid "Move (After)" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Select Frames" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Horizontal:" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Vertical:" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Select/Clear All Frames" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Create Frames from Sprite Sheet" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "SpriteFrames" msgstr "" @@ -6789,12 +7218,12 @@ msgstr "" msgid "Remove All Items" msgstr "" -#: editor/plugins/theme_editor_plugin.cpp +#: editor/plugins/theme_editor_plugin.cpp editor/project_manager.cpp msgid "Remove All" msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "Edit theme..." +msgid "Edit Theme" msgstr "" #: editor/plugins/theme_editor_plugin.cpp @@ -6822,18 +7251,24 @@ msgid "Create From Current Editor Theme" msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "CheckBox Radio1" +msgid "Toggle Button" msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "CheckBox Radio2" -msgstr "" +#, fuzzy +msgid "Disabled Button" +msgstr "बंद कर दिया गया है" #: editor/plugins/theme_editor_plugin.cpp msgid "Item" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Disabled Item" +msgstr "बंद कर दिया गया है" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Check Item" msgstr "" @@ -6850,6 +7285,22 @@ msgid "Checked Radio Item" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +msgid "Named Sep." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Submenu" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Item 1" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Item 2" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Has" msgstr "" @@ -6858,8 +7309,9 @@ msgid "Many" msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "Has,Many,Options" -msgstr "" +#, fuzzy +msgid "Disabled LineEdit" +msgstr "बंद कर दिया गया है" #: editor/plugins/theme_editor_plugin.cpp msgid "Tab 1" @@ -6874,6 +7326,18 @@ msgid "Tab 3" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +msgid "Editable Item" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Subtree" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Has,Many,Options" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Data Type:" msgstr "" @@ -6906,6 +7370,7 @@ msgid "Fix Invalid Tiles" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp +#: modules/gridmap/grid_map_editor_plugin.cpp #, fuzzy msgid "Cut Selection" msgstr "डà¥à¤ªà¥à¤²à¤¿à¤•ेट चयन" @@ -6947,37 +7412,46 @@ msgid "Mirror Y" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp +msgid "Disable Autotile" +msgstr "" + +#: editor/plugins/tile_map_editor_plugin.cpp +msgid "Enable Priority" +msgstr "" + +#: editor/plugins/tile_map_editor_plugin.cpp msgid "Paint Tile" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Pick Tile" +msgid "" +"Shift+RMB: Line Draw\n" +"Shift+Ctrl+RMB: Rectangle Paint" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy -msgid "Copy Selection" -msgstr "सà¤à¥€ खंड" +msgid "Pick Tile" +msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Rotate left" +msgid "Rotate Left" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Rotate right" +msgid "Rotate Right" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Flip horizontally" +msgid "Flip Horizontally" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Flip vertically" +msgid "Flip Vertically" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp #, fuzzy -msgid "Clear transform" +msgid "Clear Transform" msgstr "à¤à¤¨à¥€à¤®à¥‡à¤¶à¤¨ परिवरà¥à¤¤à¤¨ परिणत" #: editor/plugins/tile_set_editor_plugin.cpp @@ -7014,6 +7488,41 @@ msgid "Select the previous shape, subtile, or Tile." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp +msgid "Region Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Collision Mode" +msgstr "सदसà¥à¤¯à¤¤à¤¾ बनाà¤à¤‚" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Occlusion Mode" +msgstr "सदसà¥à¤¯à¤¤à¤¾ बनाà¤à¤‚" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Navigation Mode" +msgstr "सदसà¥à¤¯à¤¤à¤¾ बनाà¤à¤‚" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Bitmask Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Priority Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Icon Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Z Index Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp msgid "Copy bitmask." msgstr "" @@ -7099,6 +7608,7 @@ msgstr "सदसà¥à¤¯à¤¤à¤¾ बनाà¤à¤‚" msgid "" "LMB: Set bit on.\n" "RMB: Set bit off.\n" +"Shift+LMB: Set wildcard bit.\n" "Click on another Tile to edit it." msgstr "" @@ -7214,6 +7724,71 @@ msgid "TileSet" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add input +" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add output +" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Add input port" +msgstr "पसंदीदा:" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add output port" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change input port type" +msgstr "शबà¥à¤¦à¤•ोश कà¥à¤‚जी बदलें" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Change output port type" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change input port name" +msgstr "शबà¥à¤¦ बदलें मूलà¥à¤¯" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Change output port name" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Remove input port" +msgstr "मिटाना" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Remove output port" +msgstr "मिटाना" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Set expression" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Resize VisualShader node" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Set Uniform Name" msgstr "" @@ -7252,6 +7827,845 @@ msgid "Light" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Create Shader Node" +msgstr "à¤à¤• नया बनाà¤à¤‚" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Color function." +msgstr "कारà¥à¤¯à¥‹à¤‚:" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Color operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Grayscale function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts HSV vector to RGB equivalent." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts RGB vector to HSV equivalent." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Sepia function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Burn operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Darken operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Difference operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Dodge operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "HardLight operator" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Lighten operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Overlay operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Screen operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "SoftLight operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Color constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Color uniform." +msgstr "à¤à¤¨à¥€à¤®à¥‡à¤¶à¤¨ परिवरà¥à¤¤à¤¨ परिणत" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns an associated vector if the provided scalars are equal, greater or " +"less." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns an associated vector if the provided boolean value is true or false." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'camera' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'inv_camera' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'inv_projection' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'normal' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'projection' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'time' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'viewport_size' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'world' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'texture_pixel_size' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Input parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'binormal' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'fragcoord' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_coord' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_uv' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'side' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'tangent' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv2' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'vertex' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'view' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'albedo' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'attenuation' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'diffuse' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_color' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'roughness' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'specular' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'transmission' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'modelview' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_size' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'tangent' input parameter for vertex and fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_pass' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_coord' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_pixel_size' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_uv' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_alpha' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_height' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_uv' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_vec' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'normal' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'shadow_color' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'extra' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'projection' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'vertex' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'world' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'active' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'custom' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'custom_alpha' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'delta' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'emission_transform' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'index' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'lifetime' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'restart' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'time' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'transform' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'velocity' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Scalar function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Scalar operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "E constant (2.718282). Represents the base of the natural logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Epsilon constant (0.00001). Smallest possible scalar number." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Phi constant (1.618034). Golden ratio." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi/4 constant (0.785398) or 45 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi/2 constant (1.570796) or 90 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi constant (3.141593) or 180 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Tau constant (6.283185) or 360 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Sqrt2 constant (1.414214). Square root of 2." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the absolute value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-tangent of the parameters." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Finds the nearest integer that is greater than or equal to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Constrains a value to lie between two further values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts a quantity in radians to degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-e Exponential." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-2 Exponential." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Finds the nearest integer less than or equal to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Computes the fractional part of the argument." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the inverse of the square root of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Natural logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-2 logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the greater of two values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the lesser of two values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Linear interpolation between two scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the opposite value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 - scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns the value of the first parameter raised to the power of the second." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts a quantity in degrees to radians." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 / scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the nearest integer to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the nearest even integer to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Clamps the value between 0.0 and 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Extracts the sign of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the square root of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( scalar(edge0), scalar(edge1), scalar(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if x is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( scalar(edge), scalar(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the truncated value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Adds scalar to scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Divides scalar by scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies scalar by scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the remainder of the two scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Subtracts scalar from scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Scalar constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar uniform." +msgstr "à¤à¤¨à¥€à¤®à¥‡à¤¶à¤¨ परिवरà¥à¤¤à¤¨ परिणत" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Perform the cubic texture lookup." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Perform the texture lookup." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Cubic texture uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "2D texture uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Transform function." +msgstr "सदसà¥à¤¯à¤¤à¤¾ बनाà¤à¤‚" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) Calculate the outer product of a pair of vectors.\n" +"\n" +"OuterProduct treats the first parameter 'c' as a column vector (matrix with " +"one column) and the second parameter 'r' as a row vector (matrix with one " +"row) and does a linear algebraic matrix multiply 'c * r', yielding a matrix " +"whose number of rows is the number of components in 'c' and whose number of " +"columns is the number of components in 'r'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Composes transform from four vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Decomposes transform to four vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the determinant of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the inverse of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the transpose of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies transform by transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies vector by transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Transform constant." +msgstr "सदसà¥à¤¯à¤¤à¤¾ बनाà¤à¤‚" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Transform uniform." +msgstr "सदसà¥à¤¯à¤¤à¤¾ बनाà¤à¤‚" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector function." +msgstr "कारà¥à¤¯à¥‹à¤‚:" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Composes vector from three scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Decomposes vector to three scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the cross product of two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the distance between two points." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the dot product of two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns a vector that points in the same direction as a reference vector. " +"The function has three vector parameters : N, the vector to orient, I, the " +"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 "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the length of a vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Linear interpolation between two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the normalize product of vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 - vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 / vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns a vector that points in the direction of reflection ( a : incident " +"vector, b : normal vector )." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns a vector that points in the direction of refraction." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( vector(edge0), vector(edge1), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if 'x' is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( scalar(edge0), scalar(edge1), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if 'x' is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( vector(edge), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( scalar(edge), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Adds vector to vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Divides vector by vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies vector by vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the remainder of the two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Subtracts vector from vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Custom Godot Shader Language expression, with custom amount of input and " +"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 "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns falloff based on the dot product of surface normal and view " +"direction of camera (pass associated inputs to it)." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) (Fragment/Light mode only) Scalar derivative function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) (Fragment/Light mode only) Vector derivative function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Derivative in 'x' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Derivative in 'x' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Derivative in 'y' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Derivative in 'y' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Sum of absolute derivative " +"in 'x' and 'y'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Sum of absolute derivative " +"in 'x' and 'y'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "VisualShader" msgstr "" @@ -7439,6 +8853,10 @@ msgid "Directory already contains a Godot project." msgstr "" #: editor/project_manager.cpp +msgid "New Game Project" +msgstr "" + +#: editor/project_manager.cpp msgid "Imported Project" msgstr "" @@ -7486,10 +8904,6 @@ msgid "Rename Project" msgstr "" #: editor/project_manager.cpp -msgid "New Game Project" -msgstr "" - -#: editor/project_manager.cpp msgid "Import Existing Project" msgstr "" @@ -7520,10 +8934,6 @@ msgid "Project Name:" msgstr "" #: editor/project_manager.cpp -msgid "Create folder" -msgstr "" - -#: editor/project_manager.cpp msgid "Project Path:" msgstr "" @@ -7532,10 +8942,6 @@ msgid "Project Installation Path:" msgstr "" #: editor/project_manager.cpp -msgid "Browse" -msgstr "" - -#: editor/project_manager.cpp msgid "Renderer:" msgstr "" @@ -7588,8 +8994,8 @@ msgid "" "\n" "If you proceed with opening it, it will be converted to Godot's current " "configuration file format.\n" -"Warning: You will not be able to open the project with previous versions of " -"the engine anymore." +"Warning: You won't be able to open the project with previous versions of the " +"engine anymore." msgstr "" #: editor/project_manager.cpp @@ -7600,8 +9006,8 @@ msgid "" "%s\n" "\n" "Do you want to convert it?\n" -"Warning: You will not be able to open the project with previous versions of " -"the engine anymore." +"Warning: You won't be able to open the project with previous versions of the " +"engine anymore." msgstr "" #: editor/project_manager.cpp @@ -7613,7 +9019,7 @@ msgstr "" #: editor/project_manager.cpp msgid "" "Can't run project: no main scene defined.\n" -"Please edit the project and set the main scene in \"Project Settings\" under " +"Please edit the project and set the main scene in the Project Settings under " "the \"Application\" category." msgstr "" @@ -7624,23 +9030,37 @@ msgid "" msgstr "" #: editor/project_manager.cpp -msgid "Are you sure to run more than one project?" +msgid "Are you sure to run %d projects at once?" +msgstr "" + +#: editor/project_manager.cpp +msgid "" +"Remove %d projects from the list?\n" +"The project folders' contents won't be modified." msgstr "" #: editor/project_manager.cpp -msgid "Remove project from the list? (Folder contents will not be modified)" +msgid "" +"Remove this project from the list?\n" +"The project folder's contents won't be modified." +msgstr "" + +#: editor/project_manager.cpp +msgid "" +"Remove all missing projects from the list? (Folders contents will not be " +"modified)" msgstr "" #: editor/project_manager.cpp msgid "" "Language changed.\n" -"The UI will update next time the editor or project manager starts." +"The interface will update after restarting the editor or project manager." msgstr "" #: editor/project_manager.cpp msgid "" -"You are about the scan %s folders for existing Godot projects. Do you " -"confirm?" +"Are you sure to scan %s folders for existing Godot projects?\n" +"This could take a while." msgstr "" #: editor/project_manager.cpp @@ -7664,6 +9084,11 @@ msgid "New Project" msgstr "" #: editor/project_manager.cpp +#, fuzzy +msgid "Remove Missing" +msgstr "मिटाना" + +#: editor/project_manager.cpp msgid "Templates" msgstr "" @@ -7681,8 +9106,8 @@ msgstr "" #: editor/project_manager.cpp msgid "" -"You don't currently have any projects.\n" -"Would you like to explore the official example projects in the Asset Library?" +"You currently don't have any projects.\n" +"Would you like to explore official example projects in the Asset Library?" msgstr "" #: editor/project_settings_editor.cpp @@ -7708,7 +9133,7 @@ msgid "" msgstr "" #: editor/project_settings_editor.cpp -msgid "Action '%s' already exists!" +msgid "An action with the name '%s' already exists." msgstr "" #: editor/project_settings_editor.cpp @@ -7863,10 +9288,6 @@ msgid "" msgstr "" #: editor/project_settings_editor.cpp -msgid "Already existing" -msgstr "" - -#: editor/project_settings_editor.cpp msgid "Add Input Action" msgstr "" @@ -7931,7 +9352,7 @@ msgid "Override For..." msgstr "" #: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp -msgid "Editor must be restarted for changes to take effect" +msgid "The editor must be restarted for changes to take effect." msgstr "" #: editor/project_settings_editor.cpp @@ -7992,11 +9413,11 @@ msgid "Locales Filter" msgstr "" #: editor/project_settings_editor.cpp -msgid "Show all locales" +msgid "Show All Locales" msgstr "" #: editor/project_settings_editor.cpp -msgid "Show only selected locales" +msgid "Show Selected Locales Only" msgstr "" #: editor/project_settings_editor.cpp @@ -8012,14 +9433,6 @@ msgid "AutoLoad" msgstr "" #: editor/property_editor.cpp -msgid "Ease In" -msgstr "" - -#: editor/property_editor.cpp -msgid "Ease Out" -msgstr "" - -#: editor/property_editor.cpp msgid "Zero" msgstr "" @@ -8092,7 +9505,7 @@ msgid "Suffix" msgstr "" #: editor/rename_dialog.cpp -msgid "Advanced options" +msgid "Advanced Options" msgstr "" #: editor/rename_dialog.cpp @@ -8346,8 +9759,9 @@ msgid "User Interface" msgstr "" #: editor/scene_tree_dock.cpp -msgid "Custom Node" -msgstr "" +#, fuzzy +msgid "Other Node" +msgstr "को हटा दें" #: editor/scene_tree_dock.cpp msgid "Can't operate on nodes from a foreign scene!" @@ -8389,7 +9803,7 @@ msgid "Clear Inheritance" msgstr "" #: editor/scene_tree_dock.cpp -msgid "Open documentation" +msgid "Open Documentation" msgstr "" #: editor/scene_tree_dock.cpp @@ -8416,7 +9830,7 @@ msgstr "" msgid "Save Branch as Scene" msgstr "" -#: editor/scene_tree_dock.cpp +#: editor/scene_tree_dock.cpp editor/script_editor_debugger.cpp msgid "Copy Node Path" msgstr "" @@ -8459,6 +9873,19 @@ msgid "Toggle Visible" msgstr "" #: editor/scene_tree_editor.cpp +msgid "Unlock Node" +msgstr "" + +#: editor/scene_tree_editor.cpp +msgid "Button Group" +msgstr "" + +#: editor/scene_tree_editor.cpp +#, fuzzy +msgid "(Connecting From)" +msgstr "कनेकà¥à¤Ÿ करने के लिठसंकेत:" + +#: editor/scene_tree_editor.cpp msgid "Node configuration warning:" msgstr "" @@ -8480,9 +9907,10 @@ msgid "" "Click to show groups dock." msgstr "" -#: editor/scene_tree_editor.cpp editor/script_create_dialog.cpp -msgid "Open Script" -msgstr "" +#: editor/scene_tree_editor.cpp +#, fuzzy +msgid "Open Script:" +msgstr "निरà¥à¤à¤°à¤¤à¤¾ संपादक" #: editor/scene_tree_editor.cpp msgid "" @@ -8527,71 +9955,74 @@ msgid "Select a Node" msgstr "" #: editor/script_create_dialog.cpp -msgid "Error loading template '%s'" +msgid "Path is empty." msgstr "" #: editor/script_create_dialog.cpp -msgid "Error - Could not create script in filesystem." +msgid "Filename is empty." msgstr "" #: editor/script_create_dialog.cpp -msgid "Error loading script from %s" +msgid "Path is not local." msgstr "" #: editor/script_create_dialog.cpp -msgid "N/A" -msgstr "" +#, fuzzy +msgid "Invalid base path." +msgstr "गलत फॉणà¥à¤Ÿ का आकार |" #: editor/script_create_dialog.cpp -msgid "Open Script/Choose Location" +msgid "A directory with the same name exists." msgstr "" #: editor/script_create_dialog.cpp -msgid "Path is empty" -msgstr "" +#, fuzzy +msgid "Invalid extension." +msgstr "गलत फॉणà¥à¤Ÿ का आकार |" #: editor/script_create_dialog.cpp -msgid "Filename is empty" +msgid "Wrong extension chosen." msgstr "" #: editor/script_create_dialog.cpp -msgid "Path is not local" +msgid "Error loading template '%s'" msgstr "" #: editor/script_create_dialog.cpp -msgid "Invalid base path" +msgid "Error - Could not create script in filesystem." msgstr "" #: editor/script_create_dialog.cpp -msgid "Directory of the same name exists" +msgid "Error loading script from %s" msgstr "" #: editor/script_create_dialog.cpp -msgid "File exists, will be reused" +msgid "N/A" msgstr "" #: editor/script_create_dialog.cpp -msgid "Invalid extension" +msgid "Open Script / Choose Location" msgstr "" #: editor/script_create_dialog.cpp -msgid "Wrong extension chosen" +msgid "Open Script" msgstr "" #: editor/script_create_dialog.cpp -msgid "Invalid Path" +msgid "File exists, it will be reused." msgstr "" #: editor/script_create_dialog.cpp -msgid "Invalid class name" -msgstr "" +#, fuzzy +msgid "Invalid class name." +msgstr "गलत फॉणà¥à¤Ÿ का आकार |" #: editor/script_create_dialog.cpp -msgid "Invalid inherited parent name or path" +msgid "Invalid inherited parent name or path." msgstr "" #: editor/script_create_dialog.cpp -msgid "Script valid" +msgid "Script is valid." msgstr "" #: editor/script_create_dialog.cpp @@ -8599,15 +10030,16 @@ msgid "Allowed: a-z, A-Z, 0-9 and _" msgstr "" #: editor/script_create_dialog.cpp -msgid "Built-in script (into scene file)" +msgid "Built-in script (into scene file)." msgstr "" #: editor/script_create_dialog.cpp -msgid "Create new script file" -msgstr "" +#, fuzzy +msgid "Will create a new script file." +msgstr "à¤à¤• नया बनाà¤à¤‚" #: editor/script_create_dialog.cpp -msgid "Load existing script file" +msgid "Will load an existing script file." msgstr "" #: editor/script_create_dialog.cpp @@ -8738,6 +10170,10 @@ msgstr "" msgid "Set From Tree" msgstr "" +#: editor/script_editor_debugger.cpp +msgid "Export measures as CSV" +msgstr "" + #: editor/settings_config_dialog.cpp msgid "Erase Shortcut" msgstr "" @@ -8867,6 +10303,14 @@ msgid "GDNativeLibrary" msgstr "" #: modules/gdnative/gdnative_library_singleton_editor.cpp +msgid "Enabled GDNative Singleton" +msgstr "" + +#: modules/gdnative/gdnative_library_singleton_editor.cpp +msgid "Disabled GDNative Singleton" +msgstr "" + +#: modules/gdnative/gdnative_library_singleton_editor.cpp msgid "Library" msgstr "" @@ -8952,8 +10396,9 @@ msgid "GridMap Fill Selection" msgstr "सà¤à¥€ खंड" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "GridMap Duplicate Selection" -msgstr "" +#, fuzzy +msgid "GridMap Paste Selection" +msgstr "सà¤à¥€ खंड" #: modules/gridmap/grid_map_editor_plugin.cpp msgid "GridMap Paint" @@ -9020,18 +10465,6 @@ msgid "Cursor Clear Rotation" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Create Area" -msgstr "" - -#: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Create Exterior Connector" -msgstr "" - -#: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Erase Area" -msgstr "" - -#: modules/gridmap/grid_map_editor_plugin.cpp msgid "Clear Selection" msgstr "" @@ -9384,15 +10817,7 @@ msgid "Available Nodes:" msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Select or create a function to edit graph" -msgstr "" - -#: modules/visual_script/visual_script_editor.cpp -msgid "Edit Signal Arguments:" -msgstr "" - -#: modules/visual_script/visual_script_editor.cpp -msgid "Edit Variable:" +msgid "Select or create a function to edit its graph." msgstr "" #: modules/visual_script/visual_script_editor.cpp @@ -9522,6 +10947,19 @@ msgid "Debug keystore not configured in the Editor Settings nor in the preset." msgstr "" #: platform/android/export/export.cpp +msgid "Custom build requires a valid Android SDK path in Editor Settings." +msgstr "" + +#: platform/android/export/export.cpp +msgid "Invalid Android SDK path for custom build in Editor Settings." +msgstr "" + +#: platform/android/export/export.cpp +msgid "" +"Android project is not installed for compiling. Install from Editor menu." +msgstr "" + +#: platform/android/export/export.cpp msgid "Invalid public key for APK expansion." msgstr "" @@ -9530,6 +10968,34 @@ msgstr "" msgid "Invalid package name:" msgstr "गलत फॉणà¥à¤Ÿ का आकार |" +#: platform/android/export/export.cpp +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 "" +"Android build version mismatch:\n" +" Template installed: %s\n" +" Godot Version: %s\n" +"Please reinstall Android build template from 'Project' menu." +msgstr "" + +#: platform/android/export/export.cpp +msgid "Building Android Project (gradle)" +msgstr "" + +#: 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 "" + +#: platform/android/export/export.cpp +msgid "No build apk generated at: " +msgstr "" + #: platform/iphone/export/export.cpp msgid "Identifier is missing." msgstr "" @@ -9786,27 +11252,27 @@ msgid "ARVRCamera must have an ARVROrigin node as its parent" msgstr "" #: scene/3d/arvr_nodes.cpp -msgid "ARVRController must have an ARVROrigin node as its parent" +msgid "ARVRController must have an ARVROrigin node as its parent." msgstr "" #: scene/3d/arvr_nodes.cpp msgid "" -"The controller id must not be 0 or this controller will not be bound to an " -"actual controller" +"The controller ID must not be 0 or this controller won't be bound to an " +"actual controller." msgstr "" #: scene/3d/arvr_nodes.cpp -msgid "ARVRAnchor must have an ARVROrigin node as its parent" +msgid "ARVRAnchor must have an ARVROrigin node as its parent." msgstr "" #: scene/3d/arvr_nodes.cpp msgid "" -"The anchor id must not be 0 or this anchor will not be bound to an actual " -"anchor" +"The anchor ID must not be 0 or this anchor won't be bound to an actual " +"anchor." msgstr "" #: scene/3d/arvr_nodes.cpp -msgid "ARVROrigin requires an ARVRCamera child node" +msgid "ARVROrigin requires an ARVRCamera child node." msgstr "" #: scene/3d/baked_lightmap.cpp @@ -9876,8 +11342,8 @@ msgstr "" #: scene/3d/cpu_particles.cpp msgid "" -"CPUParticles animation requires the usage of a SpatialMaterial with " -"\"Billboard Particles\" enabled." +"CPUParticles animation requires the usage of a SpatialMaterial whose " +"Billboard Mode is set to \"Particle Billboard\"." msgstr "" #: scene/3d/gi_probe.cpp @@ -9914,8 +11380,8 @@ msgstr "" #: scene/3d/particles.cpp msgid "" -"Particles animation requires the usage of a SpatialMaterial with \"Billboard " -"Particles\" enabled." +"Particles animation requires the usage of a SpatialMaterial whose Billboard " +"Mode is set to \"Particle Billboard\"." msgstr "" #: scene/3d/path.cpp @@ -9940,7 +11406,7 @@ msgid "Path property must point to a valid Spatial node to work." msgstr "" #: scene/3d/soft_body.cpp -msgid "This body will be ignored until you set a mesh" +msgid "This body will be ignored until you set a mesh." msgstr "" #: scene/3d/soft_body.cpp @@ -10039,7 +11505,7 @@ msgstr "" msgid "" "Container by itself serves no purpose unless a script configures it's " "children placement behavior.\n" -"If you dont't intend to add a script, then please use a plain 'Control' node " +"If you don't intend to add a script, then please use a plain 'Control' node " "instead." msgstr "" @@ -10051,10 +11517,6 @@ msgstr "" msgid "Please Confirm..." msgstr "" -#: scene/gui/file_dialog.cpp -msgid "Go to parent folder." -msgstr "" - #: scene/gui/popup.cpp msgid "" "Popups will hide by default unless you call popup() or any of the popup*() " @@ -10128,6 +11590,10 @@ msgstr "" msgid "Varyings can only be assigned in vertex function." msgstr "" +#: servers/visual/shader_language.cpp +msgid "Constants cannot be modified." +msgstr "" + #~ msgid "Line:" #~ msgstr "रेखा:" @@ -10135,10 +11601,6 @@ msgstr "" #~ msgstr "सà¥à¤¤à¤‚à¤:" #, fuzzy -#~ msgid "Remove Split" -#~ msgstr "मिटाना" - -#, fuzzy #~ msgid "Zoom out" #~ msgstr "छोटा करो" @@ -10154,10 +11616,6 @@ msgstr "" #~ msgid "Match case" #~ msgstr "à¤à¤• जैसा:" -#, fuzzy -#~ msgid "Disabled" -#~ msgstr "बंद कर दिया गया है" - #~ msgid "Thanks!" #~ msgstr "धनà¥à¤¯à¤µà¤¾à¤¦!" diff --git a/editor/translations/hr.po b/editor/translations/hr.po index a7501f9b14..89729b2173 100644 --- a/editor/translations/hr.po +++ b/editor/translations/hr.po @@ -3,11 +3,12 @@ # Copyright (c) 2014-2019 Godot Engine contributors (cf. AUTHORS.md) # This file is distributed under the same license as the Godot source code. # Unlimited Creativity <marinosah1@gmail.com>, 2019. +# Patik <patrikfs5@gmail.com>, 2019. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" -"PO-Revision-Date: 2019-01-06 15:06+0000\n" -"Last-Translator: Unlimited Creativity <marinosah1@gmail.com>\n" +"PO-Revision-Date: 2019-05-20 11:49+0000\n" +"Last-Translator: Patik <patrikfs5@gmail.com>\n" "Language-Team: Croatian <https://hosted.weblate.org/projects/godot-engine/" "godot/hr/>\n" "Language: hr\n" @@ -15,7 +16,7 @@ msgstr "" "Content-Transfer-Encoding: 8-bit\n" "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" -"X-Generator: Weblate 3.4-dev\n" +"X-Generator: Weblate 3.7-dev\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -26,35 +27,35 @@ msgstr "Neispravni argument za convert(), upotrijebi konstantu TYPE_*" #: 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 "Nedovoljno byte-ova za dekodiranje byte-ova, ili neispravni format." #: core/math/expression.cpp msgid "Invalid input %i (not passed) in expression" -msgstr "" +msgstr "Neispravni ulaz %i (nije proslijeÄ‘en) u izrazu" #: core/math/expression.cpp msgid "self can't be used because instance is null (not passed)" -msgstr "" +msgstr "'self' nije moguće koristiti jer je instanca null (niÅ¡ta)" #: core/math/expression.cpp msgid "Invalid operands to operator %s, %s and %s." -msgstr "" +msgstr "Nevažeći operatori za operator %s, %s i %s." #: core/math/expression.cpp msgid "Invalid index of type %s for base type %s" -msgstr "" +msgstr "Nevažeći indeks za tip %s baznog tipa %s" #: core/math/expression.cpp msgid "Invalid named index '%s' for base type %s" -msgstr "" +msgstr "NevažeÄi imenovani indeks '%s' za bazni tip %s" #: core/math/expression.cpp msgid "Invalid arguments to construct '%s'" -msgstr "" +msgstr "Nevažeći argumenti za konstrukciju '%s'" #: core/math/expression.cpp msgid "On call to '%s':" -msgstr "" +msgstr "Pri pozivu '%s':" #: editor/animation_bezier_editor.cpp #: editor/plugins/asset_library_editor_plugin.cpp @@ -63,31 +64,39 @@ msgstr "" #: editor/animation_bezier_editor.cpp msgid "Balanced" -msgstr "" +msgstr "Balansiran" #: editor/animation_bezier_editor.cpp msgid "Mirror" msgstr "" +#: editor/animation_bezier_editor.cpp editor/editor_profiler.cpp +msgid "Time:" +msgstr "" + #: editor/animation_bezier_editor.cpp -msgid "Insert Key Here" +msgid "Value:" msgstr "" #: editor/animation_bezier_editor.cpp +msgid "Insert Key Here" +msgstr "Unesite kljuÄ ovdje" + +#: editor/animation_bezier_editor.cpp msgid "Duplicate Selected Key(s)" -msgstr "" +msgstr "Duplikati Odabranih KljuÄeva" #: editor/animation_bezier_editor.cpp msgid "Delete Selected Key(s)" -msgstr "" +msgstr "Brisati odabrani kljuÄ/odabrane kljuÄeve" #: editor/animation_bezier_editor.cpp msgid "Add Bezier Point" -msgstr "" +msgstr "Dodaj Bezier ToÄku" #: editor/animation_bezier_editor.cpp msgid "Move Bezier Points" -msgstr "" +msgstr "Pomakni Bezier ToÄke" #: editor/animation_bezier_editor.cpp editor/animation_track_editor.cpp msgid "Anim Duplicate Keys" @@ -151,45 +160,51 @@ msgid "Animation Playback Track" msgstr "" #: editor/animation_track_editor.cpp -msgid "Add Track" -msgstr "" +#, fuzzy +msgid "Animation length (frames)" +msgstr "Trajanje animacije (u sekundama)" #: editor/animation_track_editor.cpp -msgid "Animation Length Time (seconds)" -msgstr "" +#, fuzzy +msgid "Animation length (seconds)" +msgstr "Trajanje animacije (u sekundama)" + +#: editor/animation_track_editor.cpp +msgid "Add Track" +msgstr "Dodati stazu" #: editor/animation_track_editor.cpp msgid "Animation Looping" -msgstr "" +msgstr "Ponavljanje Animacije" #: editor/animation_track_editor.cpp #: modules/visual_script/visual_script_editor.cpp msgid "Functions:" -msgstr "" +msgstr "Funkcije:" #: editor/animation_track_editor.cpp msgid "Audio Clips:" -msgstr "" +msgstr "Audio Klipovi:" #: editor/animation_track_editor.cpp msgid "Anim Clips:" -msgstr "" +msgstr "Animacijski Klipovi:" #: editor/animation_track_editor.cpp msgid "Change Track Path" -msgstr "" +msgstr "Promijeni Put Staze" #: editor/animation_track_editor.cpp msgid "Toggle this track on/off." -msgstr "" +msgstr "Upali/ugasi ovu stazu." #: editor/animation_track_editor.cpp msgid "Update Mode (How this property is set)" -msgstr "" +msgstr "NaÄin ažuriranja (kako se ovo svojstvo postavlja)" #: editor/animation_track_editor.cpp msgid "Interpolation Mode" -msgstr "" +msgstr "NaÄin Interpolacije" #: editor/animation_track_editor.cpp msgid "Loop Wrap Mode (Interpolate end with beginning on loop)" @@ -197,27 +212,27 @@ msgstr "" #: editor/animation_track_editor.cpp msgid "Remove this track." -msgstr "" +msgstr "Ukloni ovu stazu." #: editor/animation_track_editor.cpp msgid "Time (s): " -msgstr "" +msgstr "Vrijeme/vremena: " #: editor/animation_track_editor.cpp msgid "Toggle Track Enabled" -msgstr "" +msgstr "Upali/Ugasi Stazu" #: editor/animation_track_editor.cpp msgid "Continuous" -msgstr "" +msgstr "Kontinuirano" #: editor/animation_track_editor.cpp msgid "Discrete" -msgstr "" +msgstr "Diskretno" #: editor/animation_track_editor.cpp msgid "Trigger" -msgstr "" +msgstr "OkidaÄ" #: editor/animation_track_editor.cpp msgid "Capture" @@ -225,16 +240,16 @@ msgstr "" #: editor/animation_track_editor.cpp msgid "Nearest" -msgstr "" +msgstr "Najbliži" #: editor/animation_track_editor.cpp editor/plugins/curve_editor_plugin.cpp #: editor/property_editor.cpp msgid "Linear" -msgstr "" +msgstr "Linearno" #: editor/animation_track_editor.cpp msgid "Cubic" -msgstr "" +msgstr "Kubno" #: editor/animation_track_editor.cpp msgid "Clamp Loop Interp" @@ -247,48 +262,50 @@ msgstr "" #: editor/animation_track_editor.cpp #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Insert Key" -msgstr "" +msgstr "Umetni KljuÄ" #: editor/animation_track_editor.cpp msgid "Duplicate Key(s)" -msgstr "" +msgstr "Duplicirani kljuÄ(evi)" #: editor/animation_track_editor.cpp msgid "Delete Key(s)" -msgstr "" +msgstr "ObriÅ¡i kljuÄ(eve)" #: editor/animation_track_editor.cpp msgid "Change Animation Update Mode" -msgstr "" +msgstr "Promijeni NaÄin Ažuriranja Animacije" #: editor/animation_track_editor.cpp msgid "Change Animation Interpolation Mode" -msgstr "" +msgstr "Promijeni NaÄin Interpolacije Animacije" #: editor/animation_track_editor.cpp msgid "Change Animation Loop Mode" -msgstr "" +msgstr "Promijeni NaÄin Ponavljanja Animacije" #: editor/animation_track_editor.cpp msgid "Remove Anim Track" -msgstr "" +msgstr "Ukloni Stazu Animacije" #: editor/animation_track_editor.cpp msgid "Create NEW track for %s and insert key?" -msgstr "" +msgstr "Stvori NOVU stazu za %s i umetni kljuÄ?" #: editor/animation_track_editor.cpp msgid "Create %d NEW tracks and insert keys?" -msgstr "" +msgstr "Napravi %d NOVIH staza i umetni kljuÄeve?" #: editor/animation_track_editor.cpp editor/create_dialog.cpp -#: editor/editor_audio_buses.cpp editor/editor_plugin_settings.cpp -#: editor/plugin_config_dialog.cpp +#: editor/editor_audio_buses.cpp editor/editor_feature_profile.cpp +#: editor/editor_plugin_settings.cpp editor/plugin_config_dialog.cpp #: editor/plugins/abstract_polygon_2d_editor.cpp #: editor/plugins/mesh_instance_editor_plugin.cpp -#: editor/plugins/particles_editor_plugin.cpp editor/script_create_dialog.cpp +#: editor/plugins/particles_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_create_dialog.cpp msgid "Create" -msgstr "" +msgstr "Stvori" #: editor/animation_track_editor.cpp msgid "Anim Insert" @@ -296,27 +313,27 @@ msgstr "" #: editor/animation_track_editor.cpp msgid "AnimationPlayer can't animate itself, only other players." -msgstr "" +msgstr "Animator ne može animirati sebe, samo druge animatore." #: editor/animation_track_editor.cpp msgid "Anim Create & Insert" -msgstr "" +msgstr "Anim Stvori & Umetni" #: editor/animation_track_editor.cpp msgid "Anim Insert Track & Key" -msgstr "" +msgstr "Anim Umetni Stazu & KljuÄ" #: editor/animation_track_editor.cpp msgid "Anim Insert Key" -msgstr "" +msgstr "Anim Umetni KljuÄ" #: editor/animation_track_editor.cpp msgid "Change Animation Step" -msgstr "" +msgstr "Promijeni Korak Animacije" #: editor/animation_track_editor.cpp msgid "Rearrange Tracks" -msgstr "" +msgstr "Preuredi Staze" #: editor/animation_track_editor.cpp msgid "Transform tracks only apply to Spatial-based nodes." @@ -336,23 +353,23 @@ msgstr "" #: editor/animation_track_editor.cpp msgid "An animation player can't animate itself, only other players." -msgstr "" +msgstr "Animator ne može animirati sebe, samo druge objekte." #: editor/animation_track_editor.cpp msgid "Not possible to add a new track without a root" -msgstr "" +msgstr "Nije moguće dodati novu stazu bez korijena" #: editor/animation_track_editor.cpp msgid "Add Bezier Track" -msgstr "" +msgstr "Dodaj Bezier Stazu" #: editor/animation_track_editor.cpp msgid "Track path is invalid, so can't add a key." -msgstr "" +msgstr "Nevažeći put staze, ne mogu dodati kljuÄ." #: editor/animation_track_editor.cpp msgid "Track is not of type Spatial, can't insert key" -msgstr "" +msgstr "Staza nije tipa Prostorna, ne mogu umetnuti kljuÄ" #: editor/animation_track_editor.cpp msgid "Add Transform Track Key" @@ -360,19 +377,19 @@ msgstr "" #: editor/animation_track_editor.cpp msgid "Add Track Key" -msgstr "" +msgstr "Dodaj KljuÄ Staze" #: editor/animation_track_editor.cpp msgid "Track path is invalid, so can't add a method key." -msgstr "" +msgstr "Nevažeći put staze, ne mogu dodati kljuÄ metode." #: editor/animation_track_editor.cpp msgid "Add Method Track Key" -msgstr "" +msgstr "Dodaj KljuÄ Metode Staze" #: editor/animation_track_editor.cpp msgid "Method not found in object: " -msgstr "" +msgstr "Metoda nije naÄ‘ena u objektu: " #: editor/animation_track_editor.cpp msgid "Anim Move Keys" @@ -380,30 +397,48 @@ msgstr "" #: editor/animation_track_editor.cpp msgid "Clipboard is empty" -msgstr "" +msgstr "MeÄ‘uspremnik je prazan" #: editor/animation_track_editor.cpp msgid "Paste Tracks" -msgstr "" +msgstr "Zalijepi Staze" #: editor/animation_track_editor.cpp msgid "Anim Scale Keys" -msgstr "" +msgstr "Anim Skaliraj KljuÄeve" #: editor/animation_track_editor.cpp msgid "" "This option does not work for Bezier editing, as it's only a single track." msgstr "" +"Ova opcija ne radi za editiranje Beziera, zato Å¡to je samo jedna staza." #: editor/animation_track_editor.cpp -msgid "Only show tracks from nodes selected in tree." +msgid "" +"This animation belongs to an imported scene, so changes to imported tracks " +"will not be saved.\n" +"\n" +"To enable the ability to add custom tracks, navigate to the scene's import " +"settings and set\n" +"\"Animation > Storage\" to \"Files\", enable \"Animation > Keep Custom Tracks" +"\", then re-import.\n" +"Alternatively, use an import preset that imports animations to separate " +"files." msgstr "" #: editor/animation_track_editor.cpp -msgid "Group tracks by node or display them as plain list." +msgid "Warning: Editing imported animation" msgstr "" #: editor/animation_track_editor.cpp +msgid "Only show tracks from nodes selected in tree." +msgstr "Pokaži samo staze Ävorova oznaÄenih u stablu." + +#: editor/animation_track_editor.cpp +msgid "Group tracks by node or display them as plain list." +msgstr "Grupiraj staze po Ävoru ili ih prikaži kao obiÄnu listu." + +#: editor/animation_track_editor.cpp msgid "Snap:" msgstr "" @@ -528,7 +563,8 @@ msgstr "" msgid "Select tracks to copy:" msgstr "" -#: editor/animation_track_editor.cpp editor/editor_properties.cpp +#: editor/animation_track_editor.cpp editor/editor_log.cpp +#: editor/editor_properties.cpp #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp @@ -596,6 +632,11 @@ msgstr "" msgid "Selection Only" msgstr "" +#: editor/code_editor.cpp editor/plugins/script_text_editor.cpp +#: editor/plugins/text_editor.cpp +msgid "Standard" +msgstr "" + #: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/texture_region_editor_plugin.cpp #: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp @@ -621,17 +662,29 @@ msgid "Line and column numbers." msgstr "" #: editor/connections_dialog.cpp -msgid "Method in target Node must be specified!" +msgid "Method in target node must be specified." msgstr "" #: editor/connections_dialog.cpp msgid "" -"Target method not found! Specify a valid method or attach a script to target " -"Node." +"Target method not found. Specify a valid method or attach a script to the " +"target node." +msgstr "" + +#: editor/connections_dialog.cpp +msgid "Connect to Node:" +msgstr "" + +#: editor/connections_dialog.cpp +msgid "Connect to Script:" msgstr "" #: editor/connections_dialog.cpp -msgid "Connect To Node:" +msgid "From Signal:" +msgstr "" + +#: editor/connections_dialog.cpp +msgid "Scene does not contain any script." msgstr "" #: editor/connections_dialog.cpp editor/editor_autoload_settings.cpp @@ -641,10 +694,12 @@ msgid "Add" msgstr "" #: editor/connections_dialog.cpp editor/dependency_editor.cpp -#: editor/groups_editor.cpp editor/plugins/animation_player_editor_plugin.cpp +#: editor/editor_feature_profile.cpp editor/groups_editor.cpp +#: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp #: editor/plugins/resource_preloader_editor_plugin.cpp -#: editor/plugins/theme_editor_plugin.cpp editor/project_manager.cpp +#: editor/plugins/theme_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_manager.cpp #: editor/project_settings_editor.cpp msgid "Remove" msgstr "" @@ -658,21 +713,31 @@ msgid "Extra Call Arguments:" msgstr "" #: editor/connections_dialog.cpp -msgid "Path to Node:" -msgstr "" +#, fuzzy +msgid "Advanced" +msgstr "Balansiran" #: editor/connections_dialog.cpp -msgid "Make Function" +msgid "Deferred" msgstr "" #: editor/connections_dialog.cpp -msgid "Deferred" +msgid "" +"Defers the signal, storing it in a queue and only firing it at idle time." msgstr "" #: editor/connections_dialog.cpp msgid "Oneshot" msgstr "" +#: editor/connections_dialog.cpp +msgid "Disconnects the signal after its first emission." +msgstr "" + +#: editor/connections_dialog.cpp +msgid "Cannot connect signal" +msgstr "" + #: editor/connections_dialog.cpp editor/dependency_editor.cpp #: editor/export_template_manager.cpp editor/groups_editor.cpp #: editor/plugins/animation_player_editor_plugin.cpp @@ -713,11 +778,11 @@ msgid "Disconnect" msgstr "" #: editor/connections_dialog.cpp -msgid "Connect Signal: " +msgid "Connect a Signal to a Method" msgstr "" #: editor/connections_dialog.cpp -msgid "Edit Connection: " +msgid "Edit Connection:" msgstr "" #: editor/connections_dialog.cpp @@ -749,7 +814,6 @@ msgid "Change %s Type" msgstr "" #: editor/create_dialog.cpp editor/project_settings_editor.cpp -#: modules/visual_script/visual_script_editor.cpp msgid "Change" msgstr "" @@ -780,7 +844,8 @@ msgid "Matches:" msgstr "" #: editor/create_dialog.cpp editor/plugin_config_dialog.cpp -#: editor/plugins/asset_library_editor_plugin.cpp editor/property_selector.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/property_selector.cpp #: modules/visual_script/visual_script_property_selector.cpp msgid "Description:" msgstr "" @@ -796,13 +861,13 @@ msgstr "" #: editor/dependency_editor.cpp msgid "" "Scene '%s' is currently being edited.\n" -"Changes will not take effect unless reloaded." +"Changes will only take effect when reloaded." msgstr "" #: editor/dependency_editor.cpp msgid "" "Resource '%s' is in use.\n" -"Changes will take effect when reloaded." +"Changes will only take effect when reloaded." msgstr "" #: editor/dependency_editor.cpp @@ -893,21 +958,13 @@ msgid "Permanently delete %d item(s)? (No undo!)" msgstr "" #: editor/dependency_editor.cpp -msgid "Owns" -msgstr "" - -#: editor/dependency_editor.cpp -msgid "Resources Without Explicit Ownership:" +msgid "Show Dependencies" msgstr "" #: editor/dependency_editor.cpp editor/editor_node.cpp msgid "Orphan Resource Explorer" msgstr "" -#: editor/dependency_editor.cpp -msgid "Delete selected files?" -msgstr "" - #: editor/dependency_editor.cpp editor/editor_audio_buses.cpp #: editor/editor_file_dialog.cpp editor/editor_node.cpp #: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp @@ -916,6 +973,14 @@ msgstr "" msgid "Delete" msgstr "" +#: editor/dependency_editor.cpp +msgid "Owns" +msgstr "" + +#: editor/dependency_editor.cpp +msgid "Resources Without Explicit Ownership:" +msgstr "" + #: editor/dictionary_property_edit.cpp msgid "Change Dictionary Key" msgstr "" @@ -1025,7 +1090,7 @@ msgstr "" msgid "Success!" msgstr "" -#: editor/editor_asset_installer.cpp +#: editor/editor_asset_installer.cpp editor/editor_node.cpp #: editor/plugins/asset_library_editor_plugin.cpp msgid "Install" msgstr "" @@ -1152,7 +1217,11 @@ msgid "Open Audio Bus Layout" msgstr "" #: editor/editor_audio_buses.cpp -msgid "There is no 'res://default_bus_layout.tres' file." +msgid "There is no '%s' file." +msgstr "" + +#: editor/editor_audio_buses.cpp editor/plugins/canvas_item_editor_plugin.cpp +msgid "Layout" msgstr "" #: editor/editor_audio_buses.cpp @@ -1206,15 +1275,19 @@ msgid "Valid characters:" msgstr "" #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing engine class name." +msgid "Must not collide with an existing engine class name." msgstr "" #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing buit-in type name." +msgid "Must not collide with an existing buit-in type name." msgstr "" #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing global constant name." +msgid "Must not collide with an existing global constant name." +msgstr "" + +#: editor/editor_autoload_settings.cpp +msgid "Keyword cannot be used as an autoload name." msgstr "" #: editor/editor_autoload_settings.cpp @@ -1245,11 +1318,11 @@ msgstr "" msgid "Rearrange Autoloads" msgstr "" -#: editor/editor_autoload_settings.cpp -msgid "Invalid Path." +#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp +msgid "Invalid path." msgstr "" -#: editor/editor_autoload_settings.cpp +#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp msgid "File does not exist." msgstr "" @@ -1300,7 +1373,7 @@ msgid "[unsaved]" msgstr "" #: editor/editor_dir_dialog.cpp -msgid "Please select a base directory first" +msgid "Please select a base directory first." msgstr "" #: editor/editor_dir_dialog.cpp @@ -1308,7 +1381,8 @@ msgid "Choose a Directory" msgstr "" #: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp -#: editor/filesystem_dock.cpp scene/gui/file_dialog.cpp +#: editor/filesystem_dock.cpp editor/project_manager.cpp +#: scene/gui/file_dialog.cpp msgid "Create Folder" msgstr "" @@ -1376,6 +1450,151 @@ msgstr "" msgid "Template file not found:" msgstr "" +#: editor/editor_feature_profile.cpp +msgid "3D Editor" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Script Editor" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Asset Library" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Scene Tree Editing" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Import Dock" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Node Dock" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Filesystem Dock" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Erase profile '%s'? (no undo)" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Profile must be a valid filename and must not contain '.'" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Profile with this name already exists." +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "(Editor Disabled, Properties Disabled)" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "(Properties Disabled)" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "(Editor Disabled)" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Class Options:" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Enable Contextual Editor" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Enabled Properties:" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Enabled Features:" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Enabled Classes:" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "File '%s' format is invalid, import aborted." +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "" +"Profile '%s' already exists. Remote it first before importing, import " +"aborted." +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Error saving profile to path: '%s'." +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Unset" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Current Profile" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Make Current" +msgstr "" + +#: editor/editor_feature_profile.cpp +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "New" +msgstr "" + +#: editor/editor_feature_profile.cpp editor/editor_node.cpp +#: editor/plugins/asset_library_editor_plugin.cpp editor/project_manager.cpp +msgid "Import" +msgstr "" + +#: editor/editor_feature_profile.cpp editor/editor_node.cpp +#: editor/project_export.cpp +msgid "Export" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Available Profiles" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Enabled Classes" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Class Options" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "New profile name:" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Erase Profile" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Import Profile(s)" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Export Profile" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Manage Editor Feature Profiles" +msgstr "" + #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Select Current Folder" msgstr "" @@ -1396,8 +1615,8 @@ msgstr "" msgid "Open in File Manager" msgstr "" -#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp -#: editor/project_manager.cpp +#: editor/editor_file_dialog.cpp editor/editor_node.cpp +#: editor/filesystem_dock.cpp editor/project_manager.cpp msgid "Show in File Manager" msgstr "" @@ -1456,7 +1675,7 @@ msgstr "" msgid "Go Up" msgstr "" -#: editor/editor_file_dialog.cpp +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Toggle Hidden Files" msgstr "" @@ -1488,14 +1707,18 @@ msgstr "" msgid "Next Folder" msgstr "" -#: editor/editor_file_dialog.cpp -msgid "Go to parent folder" +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp +msgid "Go to parent folder." msgstr "" #: editor/editor_file_dialog.cpp msgid "(Un)favorite current folder." msgstr "" +#: editor/editor_file_dialog.cpp +msgid "Toggle visibility of hidden files." +msgstr "" + #: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp msgid "View items as a grid of thumbnails." msgstr "" @@ -1510,6 +1733,7 @@ msgstr "" #: editor/editor_file_dialog.cpp editor/plugins/sprite_editor_plugin.cpp #: editor/plugins/style_box_editor_plugin.cpp +#: editor/plugins/theme_editor_plugin.cpp msgid "Preview:" msgstr "" @@ -1526,6 +1750,12 @@ msgid "ScanSources" msgstr "" #: editor/editor_file_system.cpp +msgid "" +"There are multiple importers for different types pointing to file %s, import " +"aborted" +msgstr "" + +#: editor/editor_file_system.cpp msgid "(Re)Importing Assets" msgstr "" @@ -1701,6 +1931,10 @@ msgstr "" msgid "Output:" msgstr "" +#: editor/editor_log.cpp editor/plugins/tile_map_editor_plugin.cpp +msgid "Copy Selection" +msgstr "" + #: editor/editor_log.cpp editor/editor_profiler.cpp #: editor/editor_properties.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp @@ -1848,7 +2082,7 @@ msgstr "" #: editor/editor_node.cpp msgid "" "This resource belongs to a scene that was instanced or inherited.\n" -"Changes to it will not be kept when saving the current scene." +"Changes to it won't be kept when saving the current scene." msgstr "" #: editor/editor_node.cpp @@ -1859,7 +2093,7 @@ msgstr "" #: editor/editor_node.cpp msgid "" -"This scene was imported, so changes to it will not be kept.\n" +"This scene was imported, so changes to it won't be kept.\n" "Instancing it or inheriting will allow making changes to it.\n" "Please read the documentation relevant to importing scenes to better " "understand this workflow." @@ -1867,7 +2101,7 @@ msgstr "" #: editor/editor_node.cpp msgid "" -"This is a remote object so changes to it will not be kept.\n" +"This is a remote object, so changes to it won't be kept.\n" "Please read the documentation relevant to debugging to better understand " "this workflow." msgstr "" @@ -1877,27 +2111,6 @@ msgid "There is no defined scene to run." msgstr "" #: editor/editor_node.cpp -msgid "" -"No main scene has ever been defined, select one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" - -#: editor/editor_node.cpp -msgid "" -"Selected scene '%s' does not exist, select a valid one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" - -#: editor/editor_node.cpp -msgid "" -"Selected scene '%s' is not a scene file, select a valid one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" - -#: editor/editor_node.cpp msgid "Current scene was never saved, please save it prior to running." msgstr "" @@ -1905,7 +2118,7 @@ msgstr "" msgid "Could not start subprocess!" msgstr "" -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/filesystem_dock.cpp msgid "Open Scene" msgstr "" @@ -1914,6 +2127,10 @@ msgid "Open Base Scene" msgstr "" #: editor/editor_node.cpp +msgid "Quick Open..." +msgstr "" + +#: editor/editor_node.cpp msgid "Quick Open Scene..." msgstr "" @@ -2075,6 +2292,27 @@ msgid "Clear Recent Scenes" msgstr "" #: editor/editor_node.cpp +msgid "" +"No main scene has ever been defined, select one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"Selected scene '%s' does not exist, select a valid one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"Selected scene '%s' is not a scene file, select a valid one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" + +#: editor/editor_node.cpp msgid "Save Layout" msgstr "" @@ -2100,6 +2338,18 @@ msgstr "" msgid "Close Tab" msgstr "" +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +msgid "Close Other Tabs" +msgstr "" + +#: editor/editor_node.cpp +msgid "Close Tabs to the Right" +msgstr "" + +#: editor/editor_node.cpp +msgid "Close All Tabs" +msgstr "" + #: editor/editor_node.cpp msgid "Switch Scene Tab" msgstr "" @@ -2222,10 +2472,6 @@ msgstr "" msgid "Project Settings" msgstr "" -#: editor/editor_node.cpp editor/project_export.cpp -msgid "Export" -msgstr "" - #: editor/editor_node.cpp editor/plugins/tile_set_editor_plugin.cpp msgid "Tools" msgstr "" @@ -2235,6 +2481,10 @@ msgid "Open Project Data Folder" msgstr "" #: editor/editor_node.cpp +msgid "Install Android Build Template" +msgstr "" + +#: editor/editor_node.cpp msgid "Quit to Project List" msgstr "" @@ -2339,6 +2589,10 @@ msgstr "" msgid "Open Editor Settings Folder" msgstr "" +#: editor/editor_node.cpp +msgid "Manage Editor Features" +msgstr "" + #: editor/editor_node.cpp editor/project_export.cpp msgid "Manage Export Templates" msgstr "" @@ -2351,6 +2605,7 @@ msgstr "" #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp #: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp #: editor/project_settings_editor.cpp editor/rename_dialog.cpp msgid "Search" msgstr "" @@ -2440,11 +2695,6 @@ msgstr "" msgid "Disable Update Spinner" msgstr "" -#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp -#: editor/project_manager.cpp -msgid "Import" -msgstr "" - #: editor/editor_node.cpp msgid "FileSystem" msgstr "" @@ -2470,6 +2720,27 @@ msgid "Don't Save" msgstr "" #: editor/editor_node.cpp +msgid "Android build template is missing, please install relevant templates." +msgstr "" + +#: editor/editor_node.cpp +msgid "Manage Templates" +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"This will install the Android project for custom builds.\n" +"Note that, in order to use it, it needs to be enabled per export preset." +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"Android build template is already installed and it won't be overwritten.\n" +"Remove the \"build\" directory manually before attempting this operation " +"again." +msgstr "" + +#: editor/editor_node.cpp msgid "Import Templates From ZIP File" msgstr "" @@ -2592,10 +2863,6 @@ msgid "Physics Frame %" msgstr "" #: editor/editor_profiler.cpp -msgid "Time:" -msgstr "" - -#: editor/editor_profiler.cpp msgid "Inclusive" msgstr "" @@ -2730,10 +2997,6 @@ msgid "Remove Item" msgstr "" #: editor/editor_run_native.cpp -msgid "Select device from the list" -msgstr "" - -#: editor/editor_run_native.cpp msgid "" "No runnable export preset found for this platform.\n" "Please add a runnable preset in the export menu." @@ -2767,6 +3030,10 @@ msgstr "" msgid "Select Node(s) to Import" msgstr "" +#: editor/editor_sub_scene.cpp editor/project_manager.cpp +msgid "Browse" +msgstr "" + #: editor/editor_sub_scene.cpp msgid "Scene Path:" msgstr "" @@ -2929,6 +3196,10 @@ msgid "SSL Handshake Error" msgstr "" #: editor/export_template_manager.cpp +msgid "Uncompressing Android Build Sources" +msgstr "" + +#: editor/export_template_manager.cpp msgid "Current Version:" msgstr "" @@ -2945,7 +3216,7 @@ msgid "Remove Template" msgstr "" #: editor/export_template_manager.cpp -msgid "Select template file" +msgid "Select Template File" msgstr "" #: editor/export_template_manager.cpp @@ -3001,7 +3272,7 @@ msgid "No name provided." msgstr "" #: editor/filesystem_dock.cpp -msgid "Provided name contains invalid characters" +msgid "Provided name contains invalid characters." msgstr "" #: editor/filesystem_dock.cpp @@ -3029,7 +3300,11 @@ msgid "Duplicating folder:" msgstr "" #: editor/filesystem_dock.cpp -msgid "Open Scene(s)" +msgid "New Inherited Scene" +msgstr "" + +#: editor/filesystem_dock.cpp +msgid "Open Scenes" msgstr "" #: editor/filesystem_dock.cpp @@ -3037,11 +3312,11 @@ msgid "Instance" msgstr "" #: editor/filesystem_dock.cpp -msgid "Add to favorites" +msgid "Add to Favorites" msgstr "" #: editor/filesystem_dock.cpp -msgid "Remove from favorites" +msgid "Remove from Favorites" msgstr "" #: editor/filesystem_dock.cpp @@ -3072,11 +3347,13 @@ msgstr "" msgid "New Resource..." msgstr "" -#: editor/filesystem_dock.cpp editor/script_editor_debugger.cpp +#: editor/filesystem_dock.cpp editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_editor_debugger.cpp msgid "Expand All" msgstr "" -#: editor/filesystem_dock.cpp editor/script_editor_debugger.cpp +#: editor/filesystem_dock.cpp editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_editor_debugger.cpp msgid "Collapse All" msgstr "" @@ -3088,11 +3365,11 @@ msgid "Rename" msgstr "" #: editor/filesystem_dock.cpp -msgid "Previous Directory" +msgid "Previous Folder/File" msgstr "" #: editor/filesystem_dock.cpp -msgid "Next Directory" +msgid "Next Folder/File" msgstr "" #: editor/filesystem_dock.cpp @@ -3100,7 +3377,7 @@ msgid "Re-Scan Filesystem" msgstr "" #: editor/filesystem_dock.cpp -msgid "Toggle split mode" +msgid "Toggle Split Mode" msgstr "" #: editor/filesystem_dock.cpp @@ -3129,7 +3406,7 @@ msgstr "" msgid "Create Script" msgstr "" -#: editor/find_in_files.cpp +#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp msgid "Find in Files" msgstr "" @@ -3145,6 +3422,12 @@ msgstr "" msgid "Filters:" msgstr "" +#: editor/find_in_files.cpp +msgid "" +"Include the files with the following extensions. Add or remove them in " +"ProjectSettings." +msgstr "" + #: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp msgid "Find..." @@ -3573,7 +3856,7 @@ msgid "Open Animation Node" msgstr "" #: editor/plugins/animation_blend_space_2d_editor.cpp -msgid "Triangle already exists" +msgid "Triangle already exists." msgstr "" #: editor/plugins/animation_blend_space_2d_editor.cpp @@ -3648,7 +3931,6 @@ msgid "Node Moved" msgstr "" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Unable to connect, port may be in use or connection may be invalid." msgstr "" @@ -3715,7 +3997,7 @@ msgid "Edit Filtered Tracks:" msgstr "" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -msgid "Enable filtering" +msgid "Enable Filtering" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp @@ -3830,10 +4112,6 @@ msgid "Animation" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "New" -msgstr "" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Edit Transitions..." msgstr "" @@ -3850,11 +4128,11 @@ msgid "Autoplay on Load" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Onion Skinning" +msgid "Enable Onion Skinning" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Enable Onion Skinning" +msgid "Onion Skinning Options" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp @@ -4394,13 +4672,19 @@ msgid "Move CanvasItem" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"Children of containers have their anchors and margins values overridden by " +"their parent." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Presets for the anchors and margins values of a Control node." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "" -"Children of containers have their anchors and margins values overridden by " -"their parent." +"When active, moving Control nodes changes their anchors instead of their " +"margins." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4416,10 +4700,46 @@ msgid "Change Anchors" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Lock Selected" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Unlock Selected" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Group Selected" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Ungroup Selected" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Paste Pose" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Create Custom Bone(s) from Node(s)" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Clear Bones" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Make IK Chain" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Clear IK Chain" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "" "Warning: Children of a container get their position and size determined only " "by their parent." @@ -4491,7 +4811,7 @@ msgid "Snapping Options" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to grid" +msgid "Snap to Grid" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4512,31 +4832,31 @@ msgid "Use Pixel Snap" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Smart snapping" +msgid "Smart Snapping" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to parent" +msgid "Snap to Parent" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node anchor" +msgid "Snap to Node Anchor" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node sides" +msgid "Snap to Node Sides" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node center" +msgid "Snap to Node Center" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to other nodes" +msgid "Snap to Other Nodes" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to guides" +msgid "Snap to Guides" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4550,10 +4870,12 @@ msgid "Unlock the selected object (can be moved)." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Makes sure the object's children are not selectable." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Restores the object's children's ability to be selected." msgstr "" @@ -4566,14 +4888,6 @@ msgid "Show Bones" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Make IK Chain" -msgstr "" - -#: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Clear IK Chain" -msgstr "" - -#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Make Custom Bone(s) from Node(s)" msgstr "" @@ -4624,7 +4938,7 @@ msgid "Frame Selection" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Layout" +msgid "Preview Canvas Scale" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4676,6 +4990,10 @@ msgid "Divide grid step by 2" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Pan View" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Add %s" msgstr "" @@ -4698,7 +5016,7 @@ msgid "Error instancing scene from %s" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Change default type" +msgid "Change Default Type" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4784,19 +5102,19 @@ msgid "Create Emission Points From Node" msgstr "" #: editor/plugins/curve_editor_plugin.cpp -msgid "Flat0" +msgid "Flat 0" msgstr "" #: editor/plugins/curve_editor_plugin.cpp -msgid "Flat1" +msgid "Flat 1" msgstr "" -#: editor/plugins/curve_editor_plugin.cpp -msgid "Ease in" +#: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp +msgid "Ease In" msgstr "" -#: editor/plugins/curve_editor_plugin.cpp -msgid "Ease out" +#: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp +msgid "Ease Out" msgstr "" #: editor/plugins/curve_editor_plugin.cpp @@ -4816,23 +5134,27 @@ msgid "Load Curve Preset" msgstr "" #: editor/plugins/curve_editor_plugin.cpp -msgid "Add point" -msgstr "" +#, fuzzy +msgid "Add Point" +msgstr "Dodaj Bezier ToÄku" #: editor/plugins/curve_editor_plugin.cpp -msgid "Remove point" -msgstr "" +#, fuzzy +msgid "Remove Point" +msgstr "Pomakni Bezier ToÄke" #: editor/plugins/curve_editor_plugin.cpp -msgid "Left linear" -msgstr "" +#, fuzzy +msgid "Left Linear" +msgstr "Linearno" #: editor/plugins/curve_editor_plugin.cpp -msgid "Right linear" -msgstr "" +#, fuzzy +msgid "Right Linear" +msgstr "Linearno" #: editor/plugins/curve_editor_plugin.cpp -msgid "Load preset" +msgid "Load Preset" msgstr "" #: editor/plugins/curve_editor_plugin.cpp @@ -4888,11 +5210,15 @@ msgid "This doesn't work on scene root!" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Trimesh Shape" +msgid "Create Trimesh Static Shape" +msgstr "" + +#: editor/plugins/mesh_instance_editor_plugin.cpp +msgid "Failed creating shapes!" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Shape" +msgid "Create Convex Shape(s)" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp @@ -4945,15 +5271,11 @@ msgid "Create Trimesh Static Body" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Static Body" -msgstr "" - -#: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Trimesh Collision Sibling" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Collision Sibling" +msgid "Create Convex Collision Sibling(s)" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp @@ -5107,20 +5429,20 @@ msgid "Create Navigation Polygon" msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp -msgid "Generating Visibility Rect" +#: editor/plugins/particles_editor_plugin.cpp +msgid "Convert to CPUParticles" msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp -msgid "Generate Visibility Rect" +msgid "Generating Visibility Rect" msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp -msgid "Can only set point into a ParticlesMaterial process material" +msgid "Generate Visibility Rect" msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp -#: editor/plugins/particles_editor_plugin.cpp -msgid "Convert to CPUParticles" +msgid "Can only set point into a ParticlesMaterial process material" msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp @@ -5262,7 +5584,7 @@ msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp editor/plugins/theme_editor_plugin.cpp -#: editor/project_export.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_export.cpp msgid "Options" msgstr "" @@ -5313,8 +5635,9 @@ msgid "Split Segment (in curve)" msgstr "" #: editor/plugins/physical_bone_plugin.cpp -msgid "Move joint" -msgstr "" +#, fuzzy +msgid "Move Joint" +msgstr "Pomakni Bezier ToÄke" #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "" @@ -5546,7 +5869,6 @@ msgid "Open in Editor" msgstr "" #: editor/plugins/resource_preloader_editor_plugin.cpp -#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Load Resource" msgstr "" @@ -5635,6 +5957,11 @@ msgid "%s Class Reference" msgstr "" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp +msgid "Find Next" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp msgid "Toggle alphabetical sorting of the method list." msgstr "" @@ -5715,10 +6042,6 @@ msgstr "" msgid "Close All" msgstr "" -#: editor/plugins/script_editor_plugin.cpp -msgid "Close Other Tabs" -msgstr "" - #: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp msgid "Run" msgstr "" @@ -5727,11 +6050,6 @@ msgstr "" msgid "Toggle Scripts Panel" msgstr "" -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/script_text_editor.cpp -msgid "Find Next" -msgstr "" - #: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp msgid "Step Over" msgstr "" @@ -5758,7 +6076,7 @@ msgid "Debug with External Editor" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Open Godot online documentation" +msgid "Open Godot online documentation." msgstr "" #: editor/plugins/script_editor_plugin.cpp @@ -5766,7 +6084,7 @@ msgid "Request Docs" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Help improve the Godot documentation by giving feedback" +msgid "Help improve the Godot documentation by giving feedback." msgstr "" #: editor/plugins/script_editor_plugin.cpp @@ -5792,10 +6110,12 @@ msgid "" msgstr "" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp msgid "Reload" msgstr "" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp msgid "Resave" msgstr "" @@ -5808,6 +6128,27 @@ msgid "Search Results" msgstr "" #: editor/plugins/script_text_editor.cpp +msgid "Connections to method:" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Source" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Signal" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Target" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "" +"Missing connected method '%s' for signal '%s' from node '%s' to node '%s'." +msgstr "" + +#: editor/plugins/script_text_editor.cpp msgid "Line" msgstr "" @@ -5819,10 +6160,6 @@ msgstr "" msgid "Go to Function" msgstr "" -#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp -msgid "Standard" -msgstr "" - #: editor/plugins/script_text_editor.cpp msgid "Only resources from filesystem can be dropped." msgstr "" @@ -5855,6 +6192,11 @@ msgstr "" msgid "Syntax Highlighter" msgstr "" +#: editor/plugins/script_text_editor.cpp +#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp +msgid "Bookmarks" +msgstr "" + #: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" @@ -5882,6 +6224,22 @@ msgid "Toggle Comment" msgstr "" #: editor/plugins/script_text_editor.cpp +msgid "Toggle Bookmark" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Go to Next Bookmark" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Go to Previous Bookmark" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Remove All Bookmarks" +msgstr "" + +#: editor/plugins/script_text_editor.cpp msgid "Fold/Unfold Line" msgstr "" @@ -5955,6 +6313,12 @@ msgid "Contextual Help" msgstr "" #: editor/plugins/shader_editor_plugin.cpp +msgid "" +"This shader has been modified on on disk.\n" +"What action should be taken?" +msgstr "" + +#: editor/plugins/shader_editor_plugin.cpp msgid "Shader" msgstr "" @@ -6292,7 +6656,7 @@ msgid "Right View" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Switch Perspective/Orthogonal view" +msgid "Switch Perspective/Orthogonal View" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp @@ -6332,11 +6696,12 @@ msgid "Toggle Freelook" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Transform" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Snap object to floor" +msgid "Snap Object to Floor" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp @@ -6477,35 +6842,35 @@ msgid "Invalid geometry, can't replace by mesh." msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Invalid geometry, can't create polygon." +msgid "Convert to Mesh2D" msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Invalid geometry, can't create collision polygon." +msgid "Invalid geometry, can't create polygon." msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Invalid geometry, can't create light occluder." +msgid "Convert to Polygon2D" msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Sprite" +msgid "Invalid geometry, can't create collision polygon." msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Convert to Mesh2D" +msgid "Create CollisionPolygon2D Sibling" msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Convert to Polygon2D" +msgid "Invalid geometry, can't create light occluder." msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Create CollisionPolygon2D Sibling" +msgid "Create LightOccluder2D Sibling" msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Create LightOccluder2D Sibling" +msgid "Sprite" msgstr "" #: editor/plugins/sprite_editor_plugin.cpp @@ -6525,7 +6890,11 @@ msgid "Settings:" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "ERROR: Couldn't load frame resource!" +msgid "No Frames Selected" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Add %d Frame(s)" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp @@ -6533,6 +6902,10 @@ msgid "Add Frame" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "ERROR: Couldn't load frame resource!" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Resource clipboard is empty or not a texture!" msgstr "" @@ -6573,6 +6946,14 @@ msgid "Animation Frames:" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Add a Texture from File" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Add Frames from a Sprite Sheet" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Insert Empty (Before)" msgstr "" @@ -6589,6 +6970,26 @@ msgid "Move (After)" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Select Frames" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Horizontal:" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Vertical:" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Select/Clear All Frames" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Create Frames from Sprite Sheet" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "SpriteFrames" msgstr "" @@ -6653,12 +7054,12 @@ msgstr "" msgid "Remove All Items" msgstr "" -#: editor/plugins/theme_editor_plugin.cpp +#: editor/plugins/theme_editor_plugin.cpp editor/project_manager.cpp msgid "Remove All" msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "Edit theme..." +msgid "Edit Theme" msgstr "" #: editor/plugins/theme_editor_plugin.cpp @@ -6686,11 +7087,11 @@ msgid "Create From Current Editor Theme" msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "CheckBox Radio1" +msgid "Toggle Button" msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "CheckBox Radio2" +msgid "Disabled Button" msgstr "" #: editor/plugins/theme_editor_plugin.cpp @@ -6698,6 +7099,10 @@ msgid "Item" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +msgid "Disabled Item" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Check Item" msgstr "" @@ -6714,6 +7119,22 @@ msgid "Checked Radio Item" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +msgid "Named Sep." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Submenu" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Item 1" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Item 2" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Has" msgstr "" @@ -6722,7 +7143,7 @@ msgid "Many" msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "Has,Many,Options" +msgid "Disabled LineEdit" msgstr "" #: editor/plugins/theme_editor_plugin.cpp @@ -6738,6 +7159,18 @@ msgid "Tab 3" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +msgid "Editable Item" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Subtree" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Has,Many,Options" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Data Type:" msgstr "" @@ -6770,6 +7203,7 @@ msgid "Fix Invalid Tiles" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp +#: modules/gridmap/grid_map_editor_plugin.cpp msgid "Cut Selection" msgstr "" @@ -6810,35 +7244,45 @@ msgid "Mirror Y" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp +msgid "Disable Autotile" +msgstr "" + +#: editor/plugins/tile_map_editor_plugin.cpp +msgid "Enable Priority" +msgstr "" + +#: editor/plugins/tile_map_editor_plugin.cpp msgid "Paint Tile" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Pick Tile" +msgid "" +"Shift+RMB: Line Draw\n" +"Shift+Ctrl+RMB: Rectangle Paint" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Copy Selection" +msgid "Pick Tile" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Rotate left" +msgid "Rotate Left" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Rotate right" +msgid "Rotate Right" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Flip horizontally" +msgid "Flip Horizontally" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Flip vertically" +msgid "Flip Vertically" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Clear transform" +msgid "Clear Transform" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp @@ -6874,6 +7318,41 @@ msgid "Select the previous shape, subtile, or Tile." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Region Mode" +msgstr "NaÄin Interpolacije" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Collision Mode" +msgstr "NaÄin Interpolacije" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Occlusion Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Navigation Mode" +msgstr "NaÄin Interpolacije" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Bitmask Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Priority Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Icon Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Z Index Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp msgid "Copy bitmask." msgstr "" @@ -6953,6 +7432,7 @@ msgstr "" msgid "" "LMB: Set bit on.\n" "RMB: Set bit off.\n" +"Shift+LMB: Set wildcard bit.\n" "Click on another Tile to edit it." msgstr "" @@ -7060,6 +7540,67 @@ msgid "TileSet" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add input +" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add output +" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add input port" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add output port" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change input port type" +msgstr "Promijeni Korak Animacije" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Change output port type" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Change input port name" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Change output port name" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Remove input port" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Remove output port" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Set expression" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Resize VisualShader node" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Set Uniform Name" msgstr "" @@ -7096,6 +7637,837 @@ msgid "Light" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Create Shader Node" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Color function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Color operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Grayscale function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts HSV vector to RGB equivalent." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts RGB vector to HSV equivalent." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Sepia function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Burn operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Darken operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Difference operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Dodge operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "HardLight operator" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Lighten operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Overlay operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Screen operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "SoftLight operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Color constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Color uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns an associated vector if the provided scalars are equal, greater or " +"less." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns an associated vector if the provided boolean value is true or false." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'camera' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'inv_camera' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'inv_projection' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'normal' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'projection' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'time' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'viewport_size' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'world' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'texture_pixel_size' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Input parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'binormal' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'fragcoord' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_coord' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_uv' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'side' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'tangent' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv2' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'vertex' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'view' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'albedo' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'attenuation' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'diffuse' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_color' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'roughness' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'specular' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'transmission' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'modelview' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_size' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'tangent' input parameter for vertex and fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_pass' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_coord' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_pixel_size' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_uv' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_alpha' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_height' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_uv' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_vec' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'normal' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'shadow_color' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'extra' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'projection' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'vertex' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'world' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'active' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'custom' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'custom_alpha' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'delta' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'emission_transform' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'index' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'lifetime' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'restart' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'time' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'transform' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'velocity' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Scalar function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Scalar operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "E constant (2.718282). Represents the base of the natural logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Epsilon constant (0.00001). Smallest possible scalar number." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Phi constant (1.618034). Golden ratio." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi/4 constant (0.785398) or 45 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi/2 constant (1.570796) or 90 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi constant (3.141593) or 180 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Tau constant (6.283185) or 360 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Sqrt2 constant (1.414214). Square root of 2." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the absolute value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-tangent of the parameters." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Finds the nearest integer that is greater than or equal to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Constrains a value to lie between two further values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts a quantity in radians to degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-e Exponential." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-2 Exponential." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Finds the nearest integer less than or equal to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Computes the fractional part of the argument." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the inverse of the square root of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Natural logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-2 logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the greater of two values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the lesser of two values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Linear interpolation between two scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the opposite value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 - scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns the value of the first parameter raised to the power of the second." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts a quantity in degrees to radians." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 / scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the nearest integer to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the nearest even integer to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Clamps the value between 0.0 and 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Extracts the sign of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the square root of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( scalar(edge0), scalar(edge1), scalar(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if x is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( scalar(edge), scalar(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the truncated value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Adds scalar to scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Divides scalar by scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies scalar by scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the remainder of the two scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Subtracts scalar from scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Scalar constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Scalar uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Perform the cubic texture lookup." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Perform the texture lookup." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Cubic texture uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "2D texture uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Transform function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) Calculate the outer product of a pair of vectors.\n" +"\n" +"OuterProduct treats the first parameter 'c' as a column vector (matrix with " +"one column) and the second parameter 'r' as a row vector (matrix with one " +"row) and does a linear algebraic matrix multiply 'c * r', yielding a matrix " +"whose number of rows is the number of components in 'c' and whose number of " +"columns is the number of components in 'r'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Composes transform from four vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Decomposes transform to four vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the determinant of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the inverse of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the transpose of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies transform by transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies vector by transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Transform constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Transform uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Composes vector from three scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Decomposes vector to three scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the cross product of two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the distance between two points." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the dot product of two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns a vector that points in the same direction as a reference vector. " +"The function has three vector parameters : N, the vector to orient, I, the " +"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 "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the length of a vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Linear interpolation between two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the normalize product of vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 - vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 / vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns a vector that points in the direction of reflection ( a : incident " +"vector, b : normal vector )." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns a vector that points in the direction of refraction." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( vector(edge0), vector(edge1), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if 'x' is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( scalar(edge0), scalar(edge1), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if 'x' is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( vector(edge), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( scalar(edge), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Adds vector to vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Divides vector by vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies vector by vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the remainder of the two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Subtracts vector from vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Custom Godot Shader Language expression, with custom amount of input and " +"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 "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns falloff based on the dot product of surface normal and view " +"direction of camera (pass associated inputs to it)." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) (Fragment/Light mode only) Scalar derivative function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) (Fragment/Light mode only) Vector derivative function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Derivative in 'x' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Derivative in 'x' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Derivative in 'y' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Derivative in 'y' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Sum of absolute derivative " +"in 'x' and 'y'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Sum of absolute derivative " +"in 'x' and 'y'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "VisualShader" msgstr "" @@ -7283,6 +8655,10 @@ msgid "Directory already contains a Godot project." msgstr "" #: editor/project_manager.cpp +msgid "New Game Project" +msgstr "" + +#: editor/project_manager.cpp msgid "Imported Project" msgstr "" @@ -7329,10 +8705,6 @@ msgid "Rename Project" msgstr "" #: editor/project_manager.cpp -msgid "New Game Project" -msgstr "" - -#: editor/project_manager.cpp msgid "Import Existing Project" msgstr "" @@ -7361,10 +8733,6 @@ msgid "Project Name:" msgstr "" #: editor/project_manager.cpp -msgid "Create folder" -msgstr "" - -#: editor/project_manager.cpp msgid "Project Path:" msgstr "" @@ -7373,10 +8741,6 @@ msgid "Project Installation Path:" msgstr "" #: editor/project_manager.cpp -msgid "Browse" -msgstr "" - -#: editor/project_manager.cpp msgid "Renderer:" msgstr "" @@ -7429,8 +8793,8 @@ msgid "" "\n" "If you proceed with opening it, it will be converted to Godot's current " "configuration file format.\n" -"Warning: You will not be able to open the project with previous versions of " -"the engine anymore." +"Warning: You won't be able to open the project with previous versions of the " +"engine anymore." msgstr "" #: editor/project_manager.cpp @@ -7441,8 +8805,8 @@ msgid "" "%s\n" "\n" "Do you want to convert it?\n" -"Warning: You will not be able to open the project with previous versions of " -"the engine anymore." +"Warning: You won't be able to open the project with previous versions of the " +"engine anymore." msgstr "" #: editor/project_manager.cpp @@ -7454,7 +8818,7 @@ msgstr "" #: editor/project_manager.cpp msgid "" "Can't run project: no main scene defined.\n" -"Please edit the project and set the main scene in \"Project Settings\" under " +"Please edit the project and set the main scene in the Project Settings under " "the \"Application\" category." msgstr "" @@ -7465,23 +8829,37 @@ msgid "" msgstr "" #: editor/project_manager.cpp -msgid "Are you sure to run more than one project?" +msgid "Are you sure to run %d projects at once?" msgstr "" #: editor/project_manager.cpp -msgid "Remove project from the list? (Folder contents will not be modified)" +msgid "" +"Remove %d projects from the list?\n" +"The project folders' contents won't be modified." +msgstr "" + +#: editor/project_manager.cpp +msgid "" +"Remove this project from the list?\n" +"The project folder's contents won't be modified." +msgstr "" + +#: editor/project_manager.cpp +msgid "" +"Remove all missing projects from the list? (Folders contents will not be " +"modified)" msgstr "" #: editor/project_manager.cpp msgid "" "Language changed.\n" -"The UI will update next time the editor or project manager starts." +"The interface will update after restarting the editor or project manager." msgstr "" #: editor/project_manager.cpp msgid "" -"You are about the scan %s folders for existing Godot projects. Do you " -"confirm?" +"Are you sure to scan %s folders for existing Godot projects?\n" +"This could take a while." msgstr "" #: editor/project_manager.cpp @@ -7505,6 +8883,10 @@ msgid "New Project" msgstr "" #: editor/project_manager.cpp +msgid "Remove Missing" +msgstr "" + +#: editor/project_manager.cpp msgid "Templates" msgstr "" @@ -7522,8 +8904,8 @@ msgstr "" #: editor/project_manager.cpp msgid "" -"You don't currently have any projects.\n" -"Would you like to explore the official example projects in the Asset Library?" +"You currently don't have any projects.\n" +"Would you like to explore official example projects in the Asset Library?" msgstr "" #: editor/project_settings_editor.cpp @@ -7549,7 +8931,7 @@ msgid "" msgstr "" #: editor/project_settings_editor.cpp -msgid "Action '%s' already exists!" +msgid "An action with the name '%s' already exists." msgstr "" #: editor/project_settings_editor.cpp @@ -7703,10 +9085,6 @@ msgid "" msgstr "" #: editor/project_settings_editor.cpp -msgid "Already existing" -msgstr "" - -#: editor/project_settings_editor.cpp msgid "Add Input Action" msgstr "" @@ -7771,7 +9149,7 @@ msgid "Override For..." msgstr "" #: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp -msgid "Editor must be restarted for changes to take effect" +msgid "The editor must be restarted for changes to take effect." msgstr "" #: editor/project_settings_editor.cpp @@ -7831,11 +9209,11 @@ msgid "Locales Filter" msgstr "" #: editor/project_settings_editor.cpp -msgid "Show all locales" +msgid "Show All Locales" msgstr "" #: editor/project_settings_editor.cpp -msgid "Show only selected locales" +msgid "Show Selected Locales Only" msgstr "" #: editor/project_settings_editor.cpp @@ -7851,14 +9229,6 @@ msgid "AutoLoad" msgstr "" #: editor/property_editor.cpp -msgid "Ease In" -msgstr "" - -#: editor/property_editor.cpp -msgid "Ease Out" -msgstr "" - -#: editor/property_editor.cpp msgid "Zero" msgstr "" @@ -7931,7 +9301,7 @@ msgid "Suffix" msgstr "" #: editor/rename_dialog.cpp -msgid "Advanced options" +msgid "Advanced Options" msgstr "" #: editor/rename_dialog.cpp @@ -8183,7 +9553,7 @@ msgid "User Interface" msgstr "" #: editor/scene_tree_dock.cpp -msgid "Custom Node" +msgid "Other Node" msgstr "" #: editor/scene_tree_dock.cpp @@ -8225,7 +9595,7 @@ msgid "Clear Inheritance" msgstr "" #: editor/scene_tree_dock.cpp -msgid "Open documentation" +msgid "Open Documentation" msgstr "" #: editor/scene_tree_dock.cpp @@ -8252,7 +9622,7 @@ msgstr "" msgid "Save Branch as Scene" msgstr "" -#: editor/scene_tree_dock.cpp +#: editor/scene_tree_dock.cpp editor/script_editor_debugger.cpp msgid "Copy Node Path" msgstr "" @@ -8295,6 +9665,18 @@ msgid "Toggle Visible" msgstr "" #: editor/scene_tree_editor.cpp +msgid "Unlock Node" +msgstr "" + +#: editor/scene_tree_editor.cpp +msgid "Button Group" +msgstr "" + +#: editor/scene_tree_editor.cpp +msgid "(Connecting From)" +msgstr "" + +#: editor/scene_tree_editor.cpp msgid "Node configuration warning:" msgstr "" @@ -8316,8 +9698,8 @@ msgid "" "Click to show groups dock." msgstr "" -#: editor/scene_tree_editor.cpp editor/script_create_dialog.cpp -msgid "Open Script" +#: editor/scene_tree_editor.cpp +msgid "Open Script:" msgstr "" #: editor/scene_tree_editor.cpp @@ -8363,71 +9745,73 @@ msgid "Select a Node" msgstr "" #: editor/script_create_dialog.cpp -msgid "Error loading template '%s'" -msgstr "" +#, fuzzy +msgid "Path is empty." +msgstr "MeÄ‘uspremnik je prazan" #: editor/script_create_dialog.cpp -msgid "Error - Could not create script in filesystem." -msgstr "" +#, fuzzy +msgid "Filename is empty." +msgstr "MeÄ‘uspremnik je prazan" #: editor/script_create_dialog.cpp -msgid "Error loading script from %s" +msgid "Path is not local." msgstr "" #: editor/script_create_dialog.cpp -msgid "N/A" +msgid "Invalid base path." msgstr "" #: editor/script_create_dialog.cpp -msgid "Open Script/Choose Location" +msgid "A directory with the same name exists." msgstr "" #: editor/script_create_dialog.cpp -msgid "Path is empty" +msgid "Invalid extension." msgstr "" #: editor/script_create_dialog.cpp -msgid "Filename is empty" +msgid "Wrong extension chosen." msgstr "" #: editor/script_create_dialog.cpp -msgid "Path is not local" +msgid "Error loading template '%s'" msgstr "" #: editor/script_create_dialog.cpp -msgid "Invalid base path" +msgid "Error - Could not create script in filesystem." msgstr "" #: editor/script_create_dialog.cpp -msgid "Directory of the same name exists" +msgid "Error loading script from %s" msgstr "" #: editor/script_create_dialog.cpp -msgid "File exists, will be reused" +msgid "N/A" msgstr "" #: editor/script_create_dialog.cpp -msgid "Invalid extension" +msgid "Open Script / Choose Location" msgstr "" #: editor/script_create_dialog.cpp -msgid "Wrong extension chosen" +msgid "Open Script" msgstr "" #: editor/script_create_dialog.cpp -msgid "Invalid Path" +msgid "File exists, it will be reused." msgstr "" #: editor/script_create_dialog.cpp -msgid "Invalid class name" +msgid "Invalid class name." msgstr "" #: editor/script_create_dialog.cpp -msgid "Invalid inherited parent name or path" +msgid "Invalid inherited parent name or path." msgstr "" #: editor/script_create_dialog.cpp -msgid "Script valid" +msgid "Script is valid." msgstr "" #: editor/script_create_dialog.cpp @@ -8435,15 +9819,15 @@ msgid "Allowed: a-z, A-Z, 0-9 and _" msgstr "" #: editor/script_create_dialog.cpp -msgid "Built-in script (into scene file)" +msgid "Built-in script (into scene file)." msgstr "" #: editor/script_create_dialog.cpp -msgid "Create new script file" +msgid "Will create a new script file." msgstr "" #: editor/script_create_dialog.cpp -msgid "Load existing script file" +msgid "Will load an existing script file." msgstr "" #: editor/script_create_dialog.cpp @@ -8574,6 +9958,10 @@ msgstr "" msgid "Set From Tree" msgstr "" +#: editor/script_editor_debugger.cpp +msgid "Export measures as CSV" +msgstr "" + #: editor/settings_config_dialog.cpp msgid "Erase Shortcut" msgstr "" @@ -8703,6 +10091,14 @@ msgid "GDNativeLibrary" msgstr "" #: modules/gdnative/gdnative_library_singleton_editor.cpp +msgid "Enabled GDNative Singleton" +msgstr "" + +#: modules/gdnative/gdnative_library_singleton_editor.cpp +msgid "Disabled GDNative Singleton" +msgstr "" + +#: modules/gdnative/gdnative_library_singleton_editor.cpp msgid "Library" msgstr "" @@ -8787,7 +10183,7 @@ msgid "GridMap Fill Selection" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "GridMap Duplicate Selection" +msgid "GridMap Paste Selection" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp @@ -8855,18 +10251,6 @@ msgid "Cursor Clear Rotation" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Create Area" -msgstr "" - -#: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Create Exterior Connector" -msgstr "" - -#: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Erase Area" -msgstr "" - -#: modules/gridmap/grid_map_editor_plugin.cpp msgid "Clear Selection" msgstr "" @@ -9217,15 +10601,7 @@ msgid "Available Nodes:" msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Select or create a function to edit graph" -msgstr "" - -#: modules/visual_script/visual_script_editor.cpp -msgid "Edit Signal Arguments:" -msgstr "" - -#: modules/visual_script/visual_script_editor.cpp -msgid "Edit Variable:" +msgid "Select or create a function to edit its graph." msgstr "" #: modules/visual_script/visual_script_editor.cpp @@ -9355,6 +10731,19 @@ msgid "Debug keystore not configured in the Editor Settings nor in the preset." msgstr "" #: platform/android/export/export.cpp +msgid "Custom build requires a valid Android SDK path in Editor Settings." +msgstr "" + +#: platform/android/export/export.cpp +msgid "Invalid Android SDK path for custom build in Editor Settings." +msgstr "" + +#: platform/android/export/export.cpp +msgid "" +"Android project is not installed for compiling. Install from Editor menu." +msgstr "" + +#: platform/android/export/export.cpp msgid "Invalid public key for APK expansion." msgstr "" @@ -9362,6 +10751,34 @@ msgstr "" msgid "Invalid package name:" msgstr "" +#: platform/android/export/export.cpp +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 "" +"Android build version mismatch:\n" +" Template installed: %s\n" +" Godot Version: %s\n" +"Please reinstall Android build template from 'Project' menu." +msgstr "" + +#: platform/android/export/export.cpp +msgid "Building Android Project (gradle)" +msgstr "" + +#: 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 "" + +#: platform/android/export/export.cpp +msgid "No build apk generated at: " +msgstr "" + #: platform/iphone/export/export.cpp msgid "Identifier is missing." msgstr "" @@ -9614,27 +11031,27 @@ msgid "ARVRCamera must have an ARVROrigin node as its parent" msgstr "" #: scene/3d/arvr_nodes.cpp -msgid "ARVRController must have an ARVROrigin node as its parent" +msgid "ARVRController must have an ARVROrigin node as its parent." msgstr "" #: scene/3d/arvr_nodes.cpp msgid "" -"The controller id must not be 0 or this controller will not be bound to an " -"actual controller" +"The controller ID must not be 0 or this controller won't be bound to an " +"actual controller." msgstr "" #: scene/3d/arvr_nodes.cpp -msgid "ARVRAnchor must have an ARVROrigin node as its parent" +msgid "ARVRAnchor must have an ARVROrigin node as its parent." msgstr "" #: scene/3d/arvr_nodes.cpp msgid "" -"The anchor id must not be 0 or this anchor will not be bound to an actual " -"anchor" +"The anchor ID must not be 0 or this anchor won't be bound to an actual " +"anchor." msgstr "" #: scene/3d/arvr_nodes.cpp -msgid "ARVROrigin requires an ARVRCamera child node" +msgid "ARVROrigin requires an ARVRCamera child node." msgstr "" #: scene/3d/baked_lightmap.cpp @@ -9704,8 +11121,8 @@ msgstr "" #: scene/3d/cpu_particles.cpp msgid "" -"CPUParticles animation requires the usage of a SpatialMaterial with " -"\"Billboard Particles\" enabled." +"CPUParticles animation requires the usage of a SpatialMaterial whose " +"Billboard Mode is set to \"Particle Billboard\"." msgstr "" #: scene/3d/gi_probe.cpp @@ -9742,8 +11159,8 @@ msgstr "" #: scene/3d/particles.cpp msgid "" -"Particles animation requires the usage of a SpatialMaterial with \"Billboard " -"Particles\" enabled." +"Particles animation requires the usage of a SpatialMaterial whose Billboard " +"Mode is set to \"Particle Billboard\"." msgstr "" #: scene/3d/path.cpp @@ -9768,7 +11185,7 @@ msgid "Path property must point to a valid Spatial node to work." msgstr "" #: scene/3d/soft_body.cpp -msgid "This body will be ignored until you set a mesh" +msgid "This body will be ignored until you set a mesh." msgstr "" #: scene/3d/soft_body.cpp @@ -9865,7 +11282,7 @@ msgstr "" msgid "" "Container by itself serves no purpose unless a script configures it's " "children placement behavior.\n" -"If you dont't intend to add a script, then please use a plain 'Control' node " +"If you don't intend to add a script, then please use a plain 'Control' node " "instead." msgstr "" @@ -9877,10 +11294,6 @@ msgstr "" msgid "Please Confirm..." msgstr "" -#: scene/gui/file_dialog.cpp -msgid "Go to parent folder." -msgstr "" - #: scene/gui/popup.cpp msgid "" "Popups will hide by default unless you call popup() or any of the popup*() " @@ -9952,3 +11365,7 @@ msgstr "" #: servers/visual/shader_language.cpp msgid "Varyings can only be assigned in vertex function." msgstr "" + +#: servers/visual/shader_language.cpp +msgid "Constants cannot be modified." +msgstr "" diff --git a/editor/translations/hu.po b/editor/translations/hu.po index 2f1aa1b660..fe752d1863 100644 --- a/editor/translations/hu.po +++ b/editor/translations/hu.po @@ -79,6 +79,15 @@ msgstr "" msgid "Mirror" msgstr "Hiba!" +#: editor/animation_bezier_editor.cpp editor/editor_profiler.cpp +msgid "Time:" +msgstr "IdÅ‘:" + +#: editor/animation_bezier_editor.cpp +#, fuzzy +msgid "Value:" +msgstr "Új név:" + #: editor/animation_bezier_editor.cpp #, fuzzy msgid "Insert Key Here" @@ -170,16 +179,21 @@ msgstr "Animáció lejátszásának leállÃtása. (S)" #: editor/animation_track_editor.cpp #, fuzzy -msgid "Add Track" -msgstr "Animáció nyomvonal hozzáadás" +msgid "Animation length (frames)" +msgstr "Animáció hossza (másodpercben)." #: editor/animation_track_editor.cpp #, fuzzy -msgid "Animation Length Time (seconds)" +msgid "Animation length (seconds)" msgstr "Animáció hossza (másodpercben)." #: editor/animation_track_editor.cpp #, fuzzy +msgid "Add Track" +msgstr "Animáció nyomvonal hozzáadás" + +#: editor/animation_track_editor.cpp +#, fuzzy msgid "Animation Looping" msgstr "Animáció nagyÃtás." @@ -315,11 +329,13 @@ msgid "Create %d NEW tracks and insert keys?" msgstr "Létrehoz %d ÚJ nyomvonalat és beilleszti a kulcsokat?" #: editor/animation_track_editor.cpp editor/create_dialog.cpp -#: editor/editor_audio_buses.cpp editor/editor_plugin_settings.cpp -#: editor/plugin_config_dialog.cpp +#: editor/editor_audio_buses.cpp editor/editor_feature_profile.cpp +#: editor/editor_plugin_settings.cpp editor/plugin_config_dialog.cpp #: editor/plugins/abstract_polygon_2d_editor.cpp #: editor/plugins/mesh_instance_editor_plugin.cpp -#: editor/plugins/particles_editor_plugin.cpp editor/script_create_dialog.cpp +#: editor/plugins/particles_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_create_dialog.cpp msgid "Create" msgstr "Létrehozás" @@ -437,6 +453,23 @@ msgid "" msgstr "" #: editor/animation_track_editor.cpp +msgid "" +"This animation belongs to an imported scene, so changes to imported tracks " +"will not be saved.\n" +"\n" +"To enable the ability to add custom tracks, navigate to the scene's import " +"settings and set\n" +"\"Animation > Storage\" to \"Files\", enable \"Animation > Keep Custom Tracks" +"\", then re-import.\n" +"Alternatively, use an import preset that imports animations to separate " +"files." +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Warning: Editing imported animation" +msgstr "" + +#: editor/animation_track_editor.cpp msgid "Only show tracks from nodes selected in tree." msgstr "" @@ -576,7 +609,8 @@ msgstr "Méretezési arány:" msgid "Select tracks to copy:" msgstr "" -#: editor/animation_track_editor.cpp editor/editor_properties.cpp +#: editor/animation_track_editor.cpp editor/editor_log.cpp +#: editor/editor_properties.cpp #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp @@ -645,6 +679,11 @@ msgstr "Mind Lecserélése" msgid "Selection Only" msgstr "Csak Kiválsztás" +#: editor/code_editor.cpp editor/plugins/script_text_editor.cpp +#: editor/plugins/text_editor.cpp +msgid "Standard" +msgstr "" + #: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/texture_region_editor_plugin.cpp #: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp @@ -670,21 +709,39 @@ msgid "Line and column numbers." msgstr "" #: editor/connections_dialog.cpp -msgid "Method in target Node must be specified!" +#, fuzzy +msgid "Method in target node must be specified." msgstr "Nevezze meg a metódust a cél Node-ban!" #: editor/connections_dialog.cpp +#, fuzzy msgid "" -"Target method not found! Specify a valid method or attach a script to target " -"Node." +"Target method not found. Specify a valid method or attach a script to the " +"target node." msgstr "" "Nem található a cél metódus! Nevezzen meg egy érvényes metódust, vagy " "csatoljon egy szkriptet a cél Node-hoz." #: editor/connections_dialog.cpp -msgid "Connect To Node:" +#, fuzzy +msgid "Connect to Node:" msgstr "Csatlakoztatás Node-hoz:" +#: editor/connections_dialog.cpp +#, fuzzy +msgid "Connect to Script:" +msgstr "Nem lehet csatlakozni a kiszolgálóhoz:" + +#: editor/connections_dialog.cpp +#, fuzzy +msgid "From Signal:" +msgstr "Jelzések:" + +#: editor/connections_dialog.cpp +#, fuzzy +msgid "Scene does not contain any script." +msgstr "A Node nem tartalmaz geometriát." + #: editor/connections_dialog.cpp editor/editor_autoload_settings.cpp #: editor/groups_editor.cpp editor/plugins/item_list_editor_plugin.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_settings_editor.cpp @@ -692,10 +749,12 @@ msgid "Add" msgstr "Hozzáad" #: editor/connections_dialog.cpp editor/dependency_editor.cpp -#: editor/groups_editor.cpp editor/plugins/animation_player_editor_plugin.cpp +#: editor/editor_feature_profile.cpp editor/groups_editor.cpp +#: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp #: editor/plugins/resource_preloader_editor_plugin.cpp -#: editor/plugins/theme_editor_plugin.cpp editor/project_manager.cpp +#: editor/plugins/theme_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_manager.cpp #: editor/project_settings_editor.cpp msgid "Remove" msgstr "EltávolÃt" @@ -709,21 +768,32 @@ msgid "Extra Call Arguments:" msgstr "További MeghÃvási Argumentumok:" #: editor/connections_dialog.cpp -msgid "Path to Node:" -msgstr "Út a Node-hoz:" - -#: editor/connections_dialog.cpp -msgid "Make Function" -msgstr "Funkció KészÃtése" +#, fuzzy +msgid "Advanced" +msgstr "Illesztési beállÃtások" #: editor/connections_dialog.cpp msgid "Deferred" msgstr "Elhalasztott" #: editor/connections_dialog.cpp +msgid "" +"Defers the signal, storing it in a queue and only firing it at idle time." +msgstr "" + +#: editor/connections_dialog.cpp msgid "Oneshot" msgstr "Egyszeri" +#: editor/connections_dialog.cpp +msgid "Disconnects the signal after its first emission." +msgstr "" + +#: editor/connections_dialog.cpp +#, fuzzy +msgid "Cannot connect signal" +msgstr "Csatlakoztató Jelzés:" + #: editor/connections_dialog.cpp editor/dependency_editor.cpp #: editor/export_template_manager.cpp editor/groups_editor.cpp #: editor/plugins/animation_player_editor_plugin.cpp @@ -766,12 +836,12 @@ msgstr "Szétkapcsol" #: editor/connections_dialog.cpp #, fuzzy -msgid "Connect Signal: " +msgid "Connect a Signal to a Method" msgstr "Csatlakoztató Jelzés:" #: editor/connections_dialog.cpp #, fuzzy -msgid "Edit Connection: " +msgid "Edit Connection:" msgstr "Kapcsolathiba" #: editor/connections_dialog.cpp @@ -806,7 +876,6 @@ msgid "Change %s Type" msgstr "%s TÃpusának Megváltoztatása" #: editor/create_dialog.cpp editor/project_settings_editor.cpp -#: modules/visual_script/visual_script_editor.cpp msgid "Change" msgstr "Változtatás" @@ -837,7 +906,8 @@ msgid "Matches:" msgstr "Találatok:" #: editor/create_dialog.cpp editor/plugin_config_dialog.cpp -#: editor/plugins/asset_library_editor_plugin.cpp editor/property_selector.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/property_selector.cpp #: modules/visual_script/visual_script_property_selector.cpp msgid "Description:" msgstr "LeÃrás:" @@ -851,17 +921,19 @@ msgid "Dependencies For:" msgstr "FüggÅ‘ségek:" #: editor/dependency_editor.cpp +#, fuzzy msgid "" "Scene '%s' is currently being edited.\n" -"Changes will not take effect unless reloaded." +"Changes will only take effect when reloaded." msgstr "" "'%s' Scene éppen szerkesztés alatt áll.\n" "A változások újratöltés után lépnek érvénybe." #: editor/dependency_editor.cpp +#, fuzzy msgid "" "Resource '%s' is in use.\n" -"Changes will take effect when reloaded." +"Changes will only take effect when reloaded." msgstr "" "'%s' forrás éppen használatban van.\n" "A változtatások akkor lépnek életbe, ha a forrást újratölti." @@ -957,21 +1029,14 @@ msgid "Permanently delete %d item(s)? (No undo!)" msgstr "Véglegesen törlöl %d elemet? (Nem visszavonható!)" #: editor/dependency_editor.cpp -msgid "Owns" -msgstr "Birtokol" - -#: editor/dependency_editor.cpp -msgid "Resources Without Explicit Ownership:" -msgstr "Források Explicit Tulajdonos Nélkül:" +#, fuzzy +msgid "Show Dependencies" +msgstr "FüggÅ‘ségek" #: editor/dependency_editor.cpp editor/editor_node.cpp msgid "Orphan Resource Explorer" msgstr "Ãrva Forrás KezelÅ‘" -#: editor/dependency_editor.cpp -msgid "Delete selected files?" -msgstr "Törli a kiválasztott fájlokat?" - #: editor/dependency_editor.cpp editor/editor_audio_buses.cpp #: editor/editor_file_dialog.cpp editor/editor_node.cpp #: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp @@ -980,6 +1045,14 @@ msgstr "Törli a kiválasztott fájlokat?" msgid "Delete" msgstr "Törlés" +#: editor/dependency_editor.cpp +msgid "Owns" +msgstr "Birtokol" + +#: editor/dependency_editor.cpp +msgid "Resources Without Explicit Ownership:" +msgstr "Források Explicit Tulajdonos Nélkül:" + #: editor/dictionary_property_edit.cpp msgid "Change Dictionary Key" msgstr "Szótár Kulcs MódosÃtása" @@ -1094,7 +1167,7 @@ msgstr "A Csomag TelepÃtése Sikeresen Megtörtént!" msgid "Success!" msgstr "Siker!" -#: editor/editor_asset_installer.cpp +#: editor/editor_asset_installer.cpp editor/editor_node.cpp #: editor/plugins/asset_library_editor_plugin.cpp msgid "Install" msgstr "TelepÃtés" @@ -1221,8 +1294,12 @@ msgid "Open Audio Bus Layout" msgstr "Hangbusz Elrendezés Megnyitása" #: editor/editor_audio_buses.cpp -msgid "There is no 'res://default_bus_layout.tres' file." -msgstr "Nincs 'res://default_bus_layout.tres' fájl." +msgid "There is no '%s' file." +msgstr "" + +#: editor/editor_audio_buses.cpp editor/plugins/canvas_item_editor_plugin.cpp +msgid "Layout" +msgstr "Elrendezés" #: editor/editor_audio_buses.cpp msgid "Invalid file, not an audio bus layout." @@ -1276,19 +1353,26 @@ msgid "Valid characters:" msgstr "Érvényes karakterek:" #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing engine class name." +#, fuzzy +msgid "Must not collide with an existing engine class name." msgstr "Érvénytelen név. Nem ütközhet egy már meglévÅ‘ motor osztálynévvel." #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing buit-in type name." +#, fuzzy +msgid "Must not collide with an existing buit-in type name." msgstr "Érvénytelen név. Nem ütközhet egy már meglévÅ‘ beépÃtett tÃpusnévvel." #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing global constant name." +#, fuzzy +msgid "Must not collide with an existing global constant name." msgstr "" "Érvénytelen név. Nem ütközhet egy már meglévÅ‘ globális konstans névvel." #: editor/editor_autoload_settings.cpp +msgid "Keyword cannot be used as an autoload name." +msgstr "" + +#: editor/editor_autoload_settings.cpp msgid "Autoload '%s' already exists!" msgstr "Már létezik '%s' AutoLoad!" @@ -1316,11 +1400,12 @@ msgstr "Engedélyezés" msgid "Rearrange Autoloads" msgstr "AutoLoad-ok Ãtrendezése" -#: editor/editor_autoload_settings.cpp -msgid "Invalid Path." +#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp +#, fuzzy +msgid "Invalid path." msgstr "Érvénytelen Elérési Út." -#: editor/editor_autoload_settings.cpp +#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp msgid "File does not exist." msgstr "A fájl nem létezik." @@ -1371,7 +1456,8 @@ msgid "[unsaved]" msgstr "[nincs mentve]" #: editor/editor_dir_dialog.cpp -msgid "Please select a base directory first" +#, fuzzy +msgid "Please select a base directory first." msgstr "Válasszon egy alap könyvtárat elÅ‘ször" #: editor/editor_dir_dialog.cpp @@ -1379,7 +1465,8 @@ msgid "Choose a Directory" msgstr "Válasszon egy Könyvtárat" #: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp -#: editor/filesystem_dock.cpp scene/gui/file_dialog.cpp +#: editor/filesystem_dock.cpp editor/project_manager.cpp +#: scene/gui/file_dialog.cpp msgid "Create Folder" msgstr "Mappa Létrehozása" @@ -1448,6 +1535,175 @@ msgstr "" msgid "Template file not found:" msgstr "Sablon fájl nem található:" +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "3D Editor" +msgstr "SzerkesztÅ‘" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Script Editor" +msgstr "Szkript SzerkesztÅ‘ Megnyitása" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Asset Library" +msgstr "Eszköz Könyvtár Megnyitása" + +#: editor/editor_feature_profile.cpp +msgid "Scene Tree Editing" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Import Dock" +msgstr "Importálás" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Node Dock" +msgstr "Mozgás Mód" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Filesystem Dock" +msgstr "Fájlrendszer" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Erase profile '%s'? (no undo)" +msgstr "Mind Lecserélése" + +#: editor/editor_feature_profile.cpp +msgid "Profile must be a valid filename and must not contain '.'" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Profile with this name already exists." +msgstr "Egy fájl vagy mappa már létezik a megadott névvel." + +#: editor/editor_feature_profile.cpp +msgid "(Editor Disabled, Properties Disabled)" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "(Properties Disabled)" +msgstr "Tulajdonságok" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "(Editor Disabled)" +msgstr "Tiltva" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Class Options:" +msgstr "LeÃrás:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enable Contextual Editor" +msgstr "KövetkezÅ‘ SzerkesztÅ‘ Megnyitása" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enabled Properties:" +msgstr "Tulajdonságok" + +#: editor/editor_feature_profile.cpp +msgid "Enabled Features:" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enabled Classes:" +msgstr "Osztályok Keresése" + +#: editor/editor_feature_profile.cpp +msgid "File '%s' format is invalid, import aborted." +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "" +"Profile '%s' already exists. Remote it first before importing, import " +"aborted." +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Error saving profile to path: '%s'." +msgstr "Hiba TileSet mentésekor!" + +#: editor/editor_feature_profile.cpp +msgid "Unset" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Current Profile" +msgstr "Jelenlegi Verzió:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Make Current" +msgstr "Jelenlegi:" + +#: editor/editor_feature_profile.cpp +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "New" +msgstr "Új" + +#: editor/editor_feature_profile.cpp editor/editor_node.cpp +#: editor/plugins/asset_library_editor_plugin.cpp editor/project_manager.cpp +msgid "Import" +msgstr "Importálás" + +#: editor/editor_feature_profile.cpp editor/editor_node.cpp +#: editor/project_export.cpp +msgid "Export" +msgstr "Exportálás" + +#: editor/editor_feature_profile.cpp +msgid "Available Profiles" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enabled Classes" +msgstr "Osztályok Keresése" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Class Options" +msgstr "LeÃrás" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "New profile name:" +msgstr "Új név:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Erase Profile" +msgstr "Jobb Egérgomb: Pont Törlése." + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Import Profile(s)" +msgstr "%d további fájl" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Export Profile" +msgstr "Projekt Exportálása" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Manage Editor Feature Profiles" +msgstr "Export Sablonok Kezelése" + #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Select Current Folder" msgstr "Aktuális Mappa Kiválasztása" @@ -1470,8 +1726,8 @@ msgstr "Útvonal másolása" msgid "Open in File Manager" msgstr "Mutat FájlkezelÅ‘ben" -#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp -#: editor/project_manager.cpp +#: editor/editor_file_dialog.cpp editor/editor_node.cpp +#: editor/filesystem_dock.cpp editor/project_manager.cpp #, fuzzy msgid "Show in File Manager" msgstr "Mutat FájlkezelÅ‘ben" @@ -1531,7 +1787,7 @@ msgstr "Ugrás ElÅ‘re" msgid "Go Up" msgstr "Ugrás Fel" -#: editor/editor_file_dialog.cpp +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Toggle Hidden Files" msgstr "Rejtett Fájlok MegjelenÃtése" @@ -1565,8 +1821,9 @@ msgstr "ElÅ‘zÅ‘ SÃk" msgid "Next Folder" msgstr "Mappa Létrehozása" -#: editor/editor_file_dialog.cpp -msgid "Go to parent folder" +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp +#, fuzzy +msgid "Go to parent folder." msgstr "Ugrás a szülÅ‘mappába" #: editor/editor_file_dialog.cpp @@ -1574,6 +1831,11 @@ msgstr "Ugrás a szülÅ‘mappába" msgid "(Un)favorite current folder." msgstr "Nem sikerült létrehozni a mappát." +#: editor/editor_file_dialog.cpp +#, fuzzy +msgid "Toggle visibility of hidden files." +msgstr "Rejtett Fájlok MegjelenÃtése" + #: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp #, fuzzy msgid "View items as a grid of thumbnails." @@ -1590,6 +1852,7 @@ msgstr "Könyvtárak és Fájlok:" #: editor/editor_file_dialog.cpp editor/plugins/sprite_editor_plugin.cpp #: editor/plugins/style_box_editor_plugin.cpp +#: editor/plugins/theme_editor_plugin.cpp msgid "Preview:" msgstr "ElÅ‘nézet:" @@ -1606,6 +1869,12 @@ msgid "ScanSources" msgstr "Források Vizsgálata" #: editor/editor_file_system.cpp +msgid "" +"There are multiple importers for different types pointing to file %s, import " +"aborted" +msgstr "" + +#: editor/editor_file_system.cpp msgid "(Re)Importing Assets" msgstr "Eszközök (Újra) Betöltése" @@ -1806,6 +2075,11 @@ msgstr "" msgid "Output:" msgstr "Kimenet:" +#: editor/editor_log.cpp editor/plugins/tile_map_editor_plugin.cpp +#, fuzzy +msgid "Copy Selection" +msgstr "Kiválasztás eltávolÃtás" + #: editor/editor_log.cpp editor/editor_profiler.cpp #: editor/editor_properties.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp @@ -1958,9 +2232,10 @@ msgstr "" "jobban megértse ezt a munkafolyamatot." #: editor/editor_node.cpp +#, fuzzy msgid "" "This resource belongs to a scene that was instanced or inherited.\n" -"Changes to it will not be kept when saving the current scene." +"Changes to it won't be kept when saving the current scene." msgstr "" "Ez az erÅ‘forrás egy olyan Scene-hez tartozik amit példányosÃtottak vagy " "örökölt.\n" @@ -1975,8 +2250,9 @@ msgstr "" "beállÃtásait az import panelen, és importálja újból." #: editor/editor_node.cpp +#, fuzzy msgid "" -"This scene was imported, so changes to it will not be kept.\n" +"This scene was imported, so changes to it won't be kept.\n" "Instancing it or inheriting will allow making changes to it.\n" "Please read the documentation relevant to importing scenes to better " "understand this workflow." @@ -1988,8 +2264,9 @@ msgstr "" "jobban megértse ezt a munkafolyamatot." #: editor/editor_node.cpp +#, fuzzy msgid "" -"This is a remote object so changes to it will not be kept.\n" +"This is a remote object, so changes to it won't be kept.\n" "Please read the documentation relevant to debugging to better understand " "this workflow." msgstr "" @@ -2003,37 +2280,6 @@ msgid "There is no defined scene to run." msgstr "Nincs meghatározva Scene a futtatáshoz." #: editor/editor_node.cpp -msgid "" -"No main scene has ever been defined, select one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" -"Nincs meghatározva fÅ‘jelenet, kiválaszt most egyet?\n" -"Ezt megváltoztathatja késÅ‘bb a \"Projekt BeállÃtásokban\" az \"Alkalmazás\" " -"kategóriában." - -#: editor/editor_node.cpp -msgid "" -"Selected scene '%s' does not exist, select a valid one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" -"A kiválasztott '%s' Scene nem létezik, kiválaszt most egy érvényeset?\n" -"Ezt megváltoztathatja késÅ‘bb a \"Projekt BeállÃtásokban\" az \"Alkalmazás\" " -"kategóriában." - -#: editor/editor_node.cpp -msgid "" -"Selected scene '%s' is not a scene file, select a valid one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" -"A kiválasztott '%s' Scene nem egy Scene fájl, kiválaszt most egy " -"érvényeset?\n" -"Ezt megváltoztathatja késÅ‘bb a \"Projekt BeállÃtásokban\" az \"Alkalmazás\" " -"kategóriában." - -#: editor/editor_node.cpp msgid "Current scene was never saved, please save it prior to running." msgstr "" "A jelenlegi Scene soha nem volt még mentve, mentse el a futtatás elÅ‘tt." @@ -2042,7 +2288,7 @@ msgstr "" msgid "Could not start subprocess!" msgstr "Az alprocesszt nem lehetett elindÃtani!" -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/filesystem_dock.cpp msgid "Open Scene" msgstr "Scene megnyitás" @@ -2051,6 +2297,11 @@ msgid "Open Base Scene" msgstr "Alap Scene megnyitás" #: editor/editor_node.cpp +#, fuzzy +msgid "Quick Open..." +msgstr "Jelenet gyors megnyitása..." + +#: editor/editor_node.cpp msgid "Quick Open Scene..." msgstr "Jelenet gyors megnyitása..." @@ -2233,6 +2484,37 @@ msgid "Clear Recent Scenes" msgstr "Legutóbbi Jelenetek Törlése" #: editor/editor_node.cpp +msgid "" +"No main scene has ever been defined, select one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" +"Nincs meghatározva fÅ‘jelenet, kiválaszt most egyet?\n" +"Ezt megváltoztathatja késÅ‘bb a \"Projekt BeállÃtásokban\" az \"Alkalmazás\" " +"kategóriában." + +#: editor/editor_node.cpp +msgid "" +"Selected scene '%s' does not exist, select a valid one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" +"A kiválasztott '%s' Scene nem létezik, kiválaszt most egy érvényeset?\n" +"Ezt megváltoztathatja késÅ‘bb a \"Projekt BeállÃtásokban\" az \"Alkalmazás\" " +"kategóriában." + +#: editor/editor_node.cpp +msgid "" +"Selected scene '%s' is not a scene file, select a valid one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" +"A kiválasztott '%s' Scene nem egy Scene fájl, kiválaszt most egy " +"érvényeset?\n" +"Ezt megváltoztathatja késÅ‘bb a \"Projekt BeállÃtásokban\" az \"Alkalmazás\" " +"kategóriában." + +#: editor/editor_node.cpp msgid "Save Layout" msgstr "Elrendezés Mentése" @@ -2261,6 +2543,19 @@ msgstr "Scene futtatás" msgid "Close Tab" msgstr "A Többi Lap Bezárása" +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +msgid "Close Other Tabs" +msgstr "A Többi Lap Bezárása" + +#: editor/editor_node.cpp +msgid "Close Tabs to the Right" +msgstr "" + +#: editor/editor_node.cpp +#, fuzzy +msgid "Close All Tabs" +msgstr "Mind Bezárása" + #: editor/editor_node.cpp msgid "Switch Scene Tab" msgstr "Scene fül váltás" @@ -2384,10 +2679,6 @@ msgstr "Projekt" msgid "Project Settings" msgstr "Projekt BeállÃtások" -#: editor/editor_node.cpp editor/project_export.cpp -msgid "Export" -msgstr "Exportálás" - #: editor/editor_node.cpp editor/plugins/tile_set_editor_plugin.cpp msgid "Tools" msgstr "Eszközök" @@ -2398,6 +2689,10 @@ msgid "Open Project Data Folder" msgstr "Megnyitja a ProjektkezelÅ‘t?" #: editor/editor_node.cpp +msgid "Install Android Build Template" +msgstr "" + +#: editor/editor_node.cpp msgid "Quit to Project List" msgstr "Kilépés a Projektlistába" @@ -2524,6 +2819,11 @@ msgstr "" msgid "Open Editor Settings Folder" msgstr "SzerkesztÅ‘ BeállÃtások" +#: editor/editor_node.cpp +#, fuzzy +msgid "Manage Editor Features" +msgstr "Export Sablonok Kezelése" + #: editor/editor_node.cpp editor/project_export.cpp msgid "Manage Export Templates" msgstr "Export Sablonok Kezelése" @@ -2536,6 +2836,7 @@ msgstr "Súgó" #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp #: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp #: editor/project_settings_editor.cpp editor/rename_dialog.cpp msgid "Search" msgstr "Keresés" @@ -2627,11 +2928,6 @@ msgstr "Változások FrissÃtése" msgid "Disable Update Spinner" msgstr "FrissÃtési Forgó Kikapcsolása" -#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp -#: editor/project_manager.cpp -msgid "Import" -msgstr "Importálás" - #: editor/editor_node.cpp msgid "FileSystem" msgstr "Fájlrendszer" @@ -2658,6 +2954,28 @@ msgid "Don't Save" msgstr "Nincs Mentés" #: editor/editor_node.cpp +msgid "Android build template is missing, please install relevant templates." +msgstr "" + +#: editor/editor_node.cpp +#, fuzzy +msgid "Manage Templates" +msgstr "Export Sablonok Kezelése" + +#: editor/editor_node.cpp +msgid "" +"This will install the Android project for custom builds.\n" +"Note that, in order to use it, it needs to be enabled per export preset." +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"Android build template is already installed and it won't be overwritten.\n" +"Remove the \"build\" directory manually before attempting this operation " +"again." +msgstr "" + +#: editor/editor_node.cpp msgid "Import Templates From ZIP File" msgstr "Sablonok Importálása ZIP Fájlból" @@ -2783,10 +3101,6 @@ msgid "Physics Frame %" msgstr "Fizika Keret %" #: editor/editor_profiler.cpp -msgid "Time:" -msgstr "IdÅ‘:" - -#: editor/editor_profiler.cpp msgid "Inclusive" msgstr "Befoglaló" @@ -2925,10 +3239,6 @@ msgid "Remove Item" msgstr "" #: editor/editor_run_native.cpp -msgid "Select device from the list" -msgstr "Válasszon készüléket a listából" - -#: editor/editor_run_native.cpp msgid "" "No runnable export preset found for this platform.\n" "Please add a runnable preset in the export menu." @@ -2964,6 +3274,10 @@ msgstr "Nem felejtette el a '_run' metódust?" msgid "Select Node(s) to Import" msgstr "Válassza ki az importálandó Node-okat" +#: editor/editor_sub_scene.cpp editor/project_manager.cpp +msgid "Browse" +msgstr "" + #: editor/editor_sub_scene.cpp msgid "Scene Path:" msgstr "Scene elérési Út:" @@ -3129,6 +3443,11 @@ msgid "SSL Handshake Error" msgstr "SSL-Kézfogás Hiba" #: editor/export_template_manager.cpp +#, fuzzy +msgid "Uncompressing Android Build Sources" +msgstr "Eszközök Kicsomagolása" + +#: editor/export_template_manager.cpp msgid "Current Version:" msgstr "Jelenlegi Verzió:" @@ -3145,7 +3464,8 @@ msgid "Remove Template" msgstr "Sablon EltávolÃtása" #: editor/export_template_manager.cpp -msgid "Select template file" +#, fuzzy +msgid "Select Template File" msgstr "Válasszon sablonfájlt" #: editor/export_template_manager.cpp @@ -3207,7 +3527,8 @@ msgid "No name provided." msgstr "Nincs név megadva." #: editor/filesystem_dock.cpp -msgid "Provided name contains invalid characters" +#, fuzzy +msgid "Provided name contains invalid characters." msgstr "A megadott név érvénytelen karaktereket tartalmaz" #: editor/filesystem_dock.cpp @@ -3235,8 +3556,14 @@ msgid "Duplicating folder:" msgstr "Mappa másolása:" #: editor/filesystem_dock.cpp -msgid "Open Scene(s)" -msgstr "Scene(k) megnyitás" +#, fuzzy +msgid "New Inherited Scene" +msgstr "Új örökölt Jelenet..." + +#: editor/filesystem_dock.cpp +#, fuzzy +msgid "Open Scenes" +msgstr "Scene megnyitás" #: editor/filesystem_dock.cpp msgid "Instance" @@ -3244,12 +3571,12 @@ msgstr "Példány" #: editor/filesystem_dock.cpp #, fuzzy -msgid "Add to favorites" +msgid "Add to Favorites" msgstr "Kedvencek:" #: editor/filesystem_dock.cpp #, fuzzy -msgid "Remove from favorites" +msgid "Remove from Favorites" msgstr "EltávolÃtás Csoportból" #: editor/filesystem_dock.cpp @@ -3282,12 +3609,14 @@ msgstr "Szkript gyors megnyitás..." msgid "New Resource..." msgstr "ErÅ‘forrás Mentése Másként..." -#: editor/filesystem_dock.cpp editor/script_editor_debugger.cpp +#: editor/filesystem_dock.cpp editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_editor_debugger.cpp #, fuzzy msgid "Expand All" msgstr "Összes kibontása" -#: editor/filesystem_dock.cpp editor/script_editor_debugger.cpp +#: editor/filesystem_dock.cpp editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_editor_debugger.cpp #, fuzzy msgid "Collapse All" msgstr "Összes összecsukása" @@ -3300,12 +3629,14 @@ msgid "Rename" msgstr "Ãtnevezés" #: editor/filesystem_dock.cpp -msgid "Previous Directory" -msgstr "ElÅ‘zÅ‘ Könyvtár" +#, fuzzy +msgid "Previous Folder/File" +msgstr "ElÅ‘zÅ‘ SÃk" #: editor/filesystem_dock.cpp -msgid "Next Directory" -msgstr "KövetkezÅ‘ Könyvtár" +#, fuzzy +msgid "Next Folder/File" +msgstr "Mappa Létrehozása" #: editor/filesystem_dock.cpp msgid "Re-Scan Filesystem" @@ -3313,7 +3644,7 @@ msgstr "Fájlrendszer Újra-vizsgálata" #: editor/filesystem_dock.cpp #, fuzzy -msgid "Toggle split mode" +msgid "Toggle Split Mode" msgstr "Mód Váltása" #: editor/filesystem_dock.cpp @@ -3346,7 +3677,7 @@ msgstr "" msgid "Create Script" msgstr "Szkript Létrehozása" -#: editor/find_in_files.cpp +#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp #, fuzzy msgid "Find in Files" msgstr "%d további fájl" @@ -3366,6 +3697,12 @@ msgstr "Mappa Létrehozása" msgid "Filters:" msgstr "SzűrÅ‘k..." +#: editor/find_in_files.cpp +msgid "" +"Include the files with the following extensions. Add or remove them in " +"ProjectSettings." +msgstr "" + #: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp msgid "Find..." @@ -3833,7 +4170,7 @@ msgstr "Animáció Node" #: editor/plugins/animation_blend_space_2d_editor.cpp #, fuzzy -msgid "Triangle already exists" +msgid "Triangle already exists." msgstr "HIBA: Animáció név már létezik!" #: editor/plugins/animation_blend_space_2d_editor.cpp @@ -3915,7 +4252,6 @@ msgid "Node Moved" msgstr "Mozgás Mód" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Unable to connect, port may be in use or connection may be invalid." msgstr "" @@ -3990,8 +4326,9 @@ msgid "Edit Filtered Tracks:" msgstr "SzűrÅ‘k Szerkesztése" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -msgid "Enable filtering" -msgstr "" +#, fuzzy +msgid "Enable Filtering" +msgstr "Animáció hossz változtatás" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Toggle Autoplay" @@ -4111,10 +4448,6 @@ msgid "Animation" msgstr "Animáció" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "New" -msgstr "Új" - -#: editor/plugins/animation_player_editor_plugin.cpp #, fuzzy msgid "Edit Transitions..." msgstr "Ãtmenetek" @@ -4133,14 +4466,15 @@ msgid "Autoplay on Load" msgstr "Lejátszás Betöltéskor" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Onion Skinning" -msgstr "MásolópapÃr Animáció (Onion Skinning)" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Enable Onion Skinning" msgstr "MásolópapÃr Mód Bekapcsolása" #: editor/plugins/animation_player_editor_plugin.cpp +#, fuzzy +msgid "Onion Skinning Options" +msgstr "MásolópapÃr Animáció (Onion Skinning)" + +#: editor/plugins/animation_player_editor_plugin.cpp msgid "Directions" msgstr "Irányok" @@ -4708,13 +5042,19 @@ msgid "Move CanvasItem" msgstr "CanvasItem Szerkesztése" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"Children of containers have their anchors and margins values overridden by " +"their parent." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Presets for the anchors and margins values of a Control node." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "" -"Children of containers have their anchors and margins values overridden by " -"their parent." +"When active, moving Control nodes changes their anchors instead of their " +"margins." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4730,10 +5070,51 @@ msgid "Change Anchors" msgstr "Horgonyok MódosÃtása" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Lock Selected" +msgstr "Kiválaszt" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Unlock Selected" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Group Selected" +msgstr "Kiválasztás eltávolÃtás" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Ungroup Selected" +msgstr "Kiválasztás eltávolÃtás" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Paste Pose" msgstr "Póz Beillesztése" #: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Create Custom Bone(s) from Node(s)" +msgstr "Kibocsátási Pontok Létrehozása A Mesh Alapján" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Clear Bones" +msgstr "Póz Törlése" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Make IK Chain" +msgstr "IK Lánc Létrehozása" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Clear IK Chain" +msgstr "IK Lánc Törlése" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "" "Warning: Children of a container get their position and size determined only " "by their parent." @@ -4813,7 +5194,8 @@ msgid "Snapping Options" msgstr "Illesztési beállÃtások" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to grid" +#, fuzzy +msgid "Snap to Grid" msgstr "Rácshoz illesztés" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4834,32 +5216,38 @@ msgid "Use Pixel Snap" msgstr "Pixelhez Illesztés" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Smart snapping" +#, fuzzy +msgid "Smart Snapping" msgstr "Intelligens illesztés" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to parent" +#, fuzzy +msgid "Snap to Parent" msgstr "Illesztés szülÅ‘höz" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node anchor" +#, fuzzy +msgid "Snap to Node Anchor" msgstr "Illesztés Node horgonyhoz" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node sides" +#, fuzzy +msgid "Snap to Node Sides" msgstr "Illesztés Node oldalakhoz" #: editor/plugins/canvas_item_editor_plugin.cpp #, fuzzy -msgid "Snap to node center" +msgid "Snap to Node Center" msgstr "Illesztés Node horgonyhoz" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to other nodes" +#, fuzzy +msgid "Snap to Other Nodes" msgstr "Illesztés más Node-okhoz" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to guides" +#, fuzzy +msgid "Snap to Guides" msgstr "Illesztés vezetÅ‘vonalakhoz" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4873,10 +5261,12 @@ msgid "Unlock the selected object (can be moved)." msgstr "A kiválasztott objektum feloldása (mozgathatóvá tétele)." #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Makes sure the object's children are not selectable." msgstr "Kiválaszthatatlanná teszi az objektum gyermekeit." #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Restores the object's children's ability to be selected." msgstr "Újra kiválaszthatóvá teszi az objektum gyermekeit." @@ -4890,14 +5280,6 @@ msgid "Show Bones" msgstr "Csontok Mutatása" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Make IK Chain" -msgstr "IK Lánc Létrehozása" - -#: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Clear IK Chain" -msgstr "IK Lánc Törlése" - -#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Make Custom Bone(s) from Node(s)" msgstr "" @@ -4949,8 +5331,8 @@ msgid "Frame Selection" msgstr "Kijelölés Keretezése" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Layout" -msgstr "Elrendezés" +msgid "Preview Canvas Scale" +msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Translation mask for inserting keys." @@ -5003,6 +5385,11 @@ msgid "Divide grid step by 2" msgstr "Rács Léptetés Mértékének Felezése" #: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Pan View" +msgstr "Nézet" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Add %s" msgstr "%s Hozzáadása" @@ -5025,7 +5412,8 @@ msgid "Error instancing scene from %s" msgstr "Hiba történt a Scene példányosÃtáskor %s-bÅ‘l" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Change default type" +#, fuzzy +msgid "Change Default Type" msgstr "Alapértelmezett tÃpus megváltoztatása" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -5115,20 +5503,22 @@ msgid "Create Emission Points From Node" msgstr "Kibocsátási pontok létrehozása a Node alapján" #: editor/plugins/curve_editor_plugin.cpp -msgid "Flat0" +#, fuzzy +msgid "Flat 0" msgstr "Lapos 0" #: editor/plugins/curve_editor_plugin.cpp -msgid "Flat1" +#, fuzzy +msgid "Flat 1" msgstr "Lapos 1" -#: editor/plugins/curve_editor_plugin.cpp -msgid "Ease in" -msgstr "Lassan Be" +#: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp +msgid "Ease In" +msgstr "" -#: editor/plugins/curve_editor_plugin.cpp -msgid "Ease out" -msgstr "Lassan Ki" +#: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp +msgid "Ease Out" +msgstr "" #: editor/plugins/curve_editor_plugin.cpp msgid "Smoothstep" @@ -5147,23 +5537,28 @@ msgid "Load Curve Preset" msgstr "ElÅ‘re BeállÃtott Görbe Betöltése" #: editor/plugins/curve_editor_plugin.cpp -msgid "Add point" +#, fuzzy +msgid "Add Point" msgstr "Pont hozzáadása" #: editor/plugins/curve_editor_plugin.cpp -msgid "Remove point" +#, fuzzy +msgid "Remove Point" msgstr "Pont eltávolÃtása" #: editor/plugins/curve_editor_plugin.cpp -msgid "Left linear" +#, fuzzy +msgid "Left Linear" msgstr "Bal lineáris" #: editor/plugins/curve_editor_plugin.cpp -msgid "Right linear" +#, fuzzy +msgid "Right Linear" msgstr "Jobb lineáris" #: editor/plugins/curve_editor_plugin.cpp -msgid "Load preset" +#, fuzzy +msgid "Load Preset" msgstr "ElÅ‘re beállÃtott betöltése" #: editor/plugins/curve_editor_plugin.cpp @@ -5219,11 +5614,17 @@ msgid "This doesn't work on scene root!" msgstr "Ez nem hajtható végre a gyökér Scene-en!" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Trimesh Shape" +#, fuzzy +msgid "Create Trimesh Static Shape" msgstr "Trimesh Alakzat Létrehozása" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Shape" +msgid "Failed creating shapes!" +msgstr "" + +#: editor/plugins/mesh_instance_editor_plugin.cpp +#, fuzzy +msgid "Create Convex Shape(s)" msgstr "Konvex Alakzat Létrehozása" #: editor/plugins/mesh_instance_editor_plugin.cpp @@ -5277,15 +5678,12 @@ msgid "Create Trimesh Static Body" msgstr "Trimesh Statikus Test Létrehozása" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Static Body" -msgstr "Konvex Statikus Test Létrehozása" - -#: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Trimesh Collision Sibling" msgstr "Trimesh Ütközési Testvér Létrehozása" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Collision Sibling" +#, fuzzy +msgid "Create Convex Collision Sibling(s)" msgstr "Konvex Ütközési Testvér Létrehozása" #: editor/plugins/mesh_instance_editor_plugin.cpp @@ -5440,6 +5838,12 @@ msgid "Create Navigation Polygon" msgstr "Navigációs Sokszög Létrehozása" #: editor/plugins/particles_2d_editor_plugin.cpp +#: editor/plugins/particles_editor_plugin.cpp +#, fuzzy +msgid "Convert to CPUParticles" +msgstr "Konvertálás Nagybetűsre" + +#: editor/plugins/particles_2d_editor_plugin.cpp #, fuzzy msgid "Generating Visibility Rect" msgstr "Láthatósági Téglalap Generálása" @@ -5454,12 +5858,6 @@ msgstr "Csak egy ParticlesMaterial feldolgozó anyagba állÃthat pontot" #: editor/plugins/particles_2d_editor_plugin.cpp #: editor/plugins/particles_editor_plugin.cpp -#, fuzzy -msgid "Convert to CPUParticles" -msgstr "Konvertálás Nagybetűsre" - -#: editor/plugins/particles_2d_editor_plugin.cpp -#: editor/plugins/particles_editor_plugin.cpp msgid "Generation Time (sec):" msgstr "Generálási IdÅ‘ (mp):" @@ -5599,7 +5997,7 @@ msgstr "Görbe Lezárása" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp editor/plugins/theme_editor_plugin.cpp -#: editor/project_export.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_export.cpp msgid "Options" msgstr "" @@ -5651,7 +6049,7 @@ msgstr "Szakasz Felosztása (görbén)" #: editor/plugins/physical_bone_plugin.cpp #, fuzzy -msgid "Move joint" +msgid "Move Joint" msgstr "Pont Mozgatása" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5903,7 +6301,6 @@ msgid "Open in Editor" msgstr "Megnyitás SzerkesztÅ‘ben" #: editor/plugins/resource_preloader_editor_plugin.cpp -#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Load Resource" msgstr "ErÅ‘forrás Betöltése" @@ -6005,6 +6402,11 @@ msgid "%s Class Reference" msgstr " Osztály Referencia" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp +msgid "Find Next" +msgstr "KövetkezÅ‘ Keresése" + +#: editor/plugins/script_editor_plugin.cpp msgid "Toggle alphabetical sorting of the method list." msgstr "" @@ -6088,10 +6490,6 @@ msgstr "Dokumentációs Lapok Bezárása" msgid "Close All" msgstr "Mind Bezárása" -#: editor/plugins/script_editor_plugin.cpp -msgid "Close Other Tabs" -msgstr "A Többi Lap Bezárása" - #: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp msgid "Run" msgstr "Futtatás" @@ -6100,11 +6498,6 @@ msgstr "Futtatás" msgid "Toggle Scripts Panel" msgstr "Szkript Panel MegjelenÃtése" -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/script_text_editor.cpp -msgid "Find Next" -msgstr "KövetkezÅ‘ Keresése" - #: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp msgid "Step Over" msgstr "Ãtlépés" @@ -6132,7 +6525,8 @@ msgid "Debug with External Editor" msgstr "Hibakeresés külsÅ‘ szerkesztÅ‘vel" #: editor/plugins/script_editor_plugin.cpp -msgid "Open Godot online documentation" +#, fuzzy +msgid "Open Godot online documentation." msgstr "Godot online dokumentáció megnyitása" #: editor/plugins/script_editor_plugin.cpp @@ -6140,7 +6534,7 @@ msgid "Request Docs" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Help improve the Godot documentation by giving feedback" +msgid "Help improve the Godot documentation by giving feedback." msgstr "" #: editor/plugins/script_editor_plugin.cpp @@ -6168,10 +6562,12 @@ msgstr "" "Mit szeretne lépni?:" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp msgid "Reload" msgstr "Újratöltés" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp msgid "Resave" msgstr "Újramentés" @@ -6186,6 +6582,31 @@ msgstr "Keresés Súgóban" #: editor/plugins/script_text_editor.cpp #, fuzzy +msgid "Connections to method:" +msgstr "Csatlakoztatás Node-hoz:" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Source" +msgstr "Forrás" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Signal" +msgstr "Jelzések" + +#: editor/plugins/script_text_editor.cpp +msgid "Target" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "" +"Missing connected method '%s' for signal '%s' from node '%s' to node '%s'." +msgstr "'%s' Lecsatlakoztatása '%s'-ról" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy msgid "Line" msgstr "Sor:" @@ -6198,10 +6619,6 @@ msgstr "" msgid "Go to Function" msgstr "Ugrás Funkcióra..." -#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp -msgid "Standard" -msgstr "" - #: editor/plugins/script_text_editor.cpp msgid "Only resources from filesystem can be dropped." msgstr "Csak a fájlrendszerbÅ‘l eredÅ‘ erÅ‘forrásokat lehet bedobni." @@ -6235,6 +6652,11 @@ msgstr "Szó Eleji Nagybetű" msgid "Syntax Highlighter" msgstr "" +#: editor/plugins/script_text_editor.cpp +#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp +msgid "Bookmarks" +msgstr "" + #: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" @@ -6262,6 +6684,26 @@ msgid "Toggle Comment" msgstr "Ãtváltás Megjegyzésre" #: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Toggle Bookmark" +msgstr "Töréspont Elhelyezése" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Go to Next Bookmark" +msgstr "Ugrás KövetkezÅ‘ Töréspontra" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Go to Previous Bookmark" +msgstr "Ugrás ElÅ‘zÅ‘ Töréspontra" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Remove All Bookmarks" +msgstr "Összes Töréspont EltávolÃtása" + +#: editor/plugins/script_text_editor.cpp msgid "Fold/Unfold Line" msgstr "Sor Összezárása / Kibontása" @@ -6342,6 +6784,15 @@ msgid "Contextual Help" msgstr "Kontextusérzékeny Súgó" #: editor/plugins/shader_editor_plugin.cpp +#, fuzzy +msgid "" +"This shader has been modified on on disk.\n" +"What action should be taken?" +msgstr "" +"A alábbi fájlok újabbak a lemezen.\n" +"Mit szeretne lépni?:" + +#: editor/plugins/shader_editor_plugin.cpp msgid "Shader" msgstr "Ãrnyaló" @@ -6686,7 +7137,7 @@ msgid "Right View" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Switch Perspective/Orthogonal view" +msgid "Switch Perspective/Orthogonal View" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp @@ -6726,12 +7177,14 @@ msgid "Toggle Freelook" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Transform" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Snap object to floor" -msgstr "" +#, fuzzy +msgid "Snap Object to Floor" +msgstr "Rácshoz illesztés" #: editor/plugins/spatial_editor_plugin.cpp msgid "Transform Dialog..." @@ -6876,42 +7329,42 @@ msgid "Invalid geometry, can't replace by mesh." msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Invalid geometry, can't create polygon." -msgstr "" - -#: editor/plugins/sprite_editor_plugin.cpp -msgid "Invalid geometry, can't create collision polygon." -msgstr "" - -#: editor/plugins/sprite_editor_plugin.cpp -msgid "Invalid geometry, can't create light occluder." -msgstr "" - -#: editor/plugins/sprite_editor_plugin.cpp -msgid "Sprite" -msgstr "" - -#: editor/plugins/sprite_editor_plugin.cpp #, fuzzy msgid "Convert to Mesh2D" msgstr "Konvertálás Nagybetűsre" #: editor/plugins/sprite_editor_plugin.cpp +msgid "Invalid geometry, can't create polygon." +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp #, fuzzy msgid "Convert to Polygon2D" msgstr "Sokszög Mozgatása" #: editor/plugins/sprite_editor_plugin.cpp +msgid "Invalid geometry, can't create collision polygon." +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp #, fuzzy msgid "Create CollisionPolygon2D Sibling" msgstr "Navigációs Sokszög Létrehozása" #: editor/plugins/sprite_editor_plugin.cpp +msgid "Invalid geometry, can't create light occluder." +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp #, fuzzy msgid "Create LightOccluder2D Sibling" msgstr "Ãrnyékoló Sokszög Létrehozása" #: editor/plugins/sprite_editor_plugin.cpp +msgid "Sprite" +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp msgid "Simplification: " msgstr "" @@ -6930,7 +7383,12 @@ msgid "Settings:" msgstr "SzerkesztÅ‘ BeállÃtások" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "ERROR: Couldn't load frame resource!" +#, fuzzy +msgid "No Frames Selected" +msgstr "Kijelölés Keretezése" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Add %d Frame(s)" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp @@ -6938,6 +7396,10 @@ msgid "Add Frame" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "ERROR: Couldn't load frame resource!" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Resource clipboard is empty or not a texture!" msgstr "" @@ -6981,6 +7443,15 @@ msgid "Animation Frames:" msgstr "Animáció Neve:" #: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Add a Texture from File" +msgstr "Kinyerés PixelbÅ‘l" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Add Frames from a Sprite Sheet" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Insert Empty (Before)" msgstr "" @@ -6997,6 +7468,28 @@ msgid "Move (After)" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Select Frames" +msgstr "Kiválasztó Mód" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Horizontal:" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Vertical:" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Select/Clear All Frames" +msgstr "Összes Kijelölése" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Create Frames from Sprite Sheet" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "SpriteFrames" msgstr "" @@ -7062,13 +7555,14 @@ msgstr "" msgid "Remove All Items" msgstr "" -#: editor/plugins/theme_editor_plugin.cpp +#: editor/plugins/theme_editor_plugin.cpp editor/project_manager.cpp msgid "Remove All" msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "Edit theme..." -msgstr "" +#, fuzzy +msgid "Edit Theme" +msgstr "Tagok" #: editor/plugins/theme_editor_plugin.cpp msgid "Theme editing menu." @@ -7095,18 +7589,25 @@ msgid "Create From Current Editor Theme" msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "CheckBox Radio1" -msgstr "" +#, fuzzy +msgid "Toggle Button" +msgstr "Automatikus Lejátszás Váltása" #: editor/plugins/theme_editor_plugin.cpp -msgid "CheckBox Radio2" -msgstr "" +#, fuzzy +msgid "Disabled Button" +msgstr "Tiltva" #: editor/plugins/theme_editor_plugin.cpp msgid "Item" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Disabled Item" +msgstr "Tiltva" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Check Item" msgstr "" @@ -7123,6 +7624,24 @@ msgid "Checked Radio Item" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +msgid "Named Sep." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Submenu" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Item 1" +msgstr "%d elem" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Item 2" +msgstr "%d elem" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Has" msgstr "" @@ -7131,8 +7650,9 @@ msgid "Many" msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "Has,Many,Options" -msgstr "" +#, fuzzy +msgid "Disabled LineEdit" +msgstr "Tiltva" #: editor/plugins/theme_editor_plugin.cpp msgid "Tab 1" @@ -7147,6 +7667,19 @@ msgid "Tab 3" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Editable Item" +msgstr "Rádió Elem" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Subtree" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Has,Many,Options" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Data Type:" msgstr "" @@ -7180,6 +7713,7 @@ msgid "Fix Invalid Tiles" msgstr "Érvénytelen név." #: editor/plugins/tile_map_editor_plugin.cpp +#: modules/gridmap/grid_map_editor_plugin.cpp #, fuzzy msgid "Cut Selection" msgstr "Kijelölés Középre" @@ -7222,39 +7756,49 @@ msgid "Mirror Y" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp +msgid "Disable Autotile" +msgstr "" + +#: editor/plugins/tile_map_editor_plugin.cpp +#, fuzzy +msgid "Enable Priority" +msgstr "SzűrÅ‘k Szerkesztése" + +#: editor/plugins/tile_map_editor_plugin.cpp msgid "Paint Tile" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Pick Tile" +msgid "" +"Shift+RMB: Line Draw\n" +"Shift+Ctrl+RMB: Rectangle Paint" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy -msgid "Copy Selection" -msgstr "Kiválasztás eltávolÃtás" +msgid "Pick Tile" +msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp #, fuzzy -msgid "Rotate left" +msgid "Rotate Left" msgstr "Forgató mód" #: editor/plugins/tile_map_editor_plugin.cpp #, fuzzy -msgid "Rotate right" +msgid "Rotate Right" msgstr "Sokszög Forgatása" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Flip horizontally" +msgid "Flip Horizontally" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Flip vertically" +msgid "Flip Vertically" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp #, fuzzy -msgid "Clear transform" +msgid "Clear Transform" msgstr "Animáció transzformáció változtatás" #: editor/plugins/tile_set_editor_plugin.cpp @@ -7293,6 +7837,46 @@ msgid "Select the previous shape, subtile, or Tile." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Region Mode" +msgstr "Forgató mód" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Collision Mode" +msgstr "Animáció Node" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Occlusion Mode" +msgstr "Sokszög Szerkesztése" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Navigation Mode" +msgstr "Navigációs Háló Létrehozása" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Bitmask Mode" +msgstr "Forgató mód" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Priority Mode" +msgstr "Projekt Exportálása" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Icon Mode" +msgstr "Pásztázás Mód" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Z Index Mode" +msgstr "Pásztázás Mód" + +#: editor/plugins/tile_set_editor_plugin.cpp msgid "Copy bitmask." msgstr "" @@ -7380,6 +7964,7 @@ msgstr "Pontok Törlése" msgid "" "LMB: Set bit on.\n" "RMB: Set bit off.\n" +"Shift+LMB: Set wildcard bit.\n" "Click on another Tile to edit it." msgstr "" @@ -7504,6 +8089,78 @@ msgid "TileSet" msgstr "TileSet-re..." #: 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 +" +msgstr "Bemenet Hozzáadása" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar" +msgstr "Skála:" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector" +msgstr "MegfigyelÅ‘" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Add input port" +msgstr "Bemenet Hozzáadása" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add output port" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change input port type" +msgstr "Alapértelmezett tÃpus megváltoztatása" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change output port type" +msgstr "Alapértelmezett tÃpus megváltoztatása" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change input port name" +msgstr "Animáció Nevének Megváltoztatása:" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Change output port name" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Remove input port" +msgstr "Pont eltávolÃtása" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Remove output port" +msgstr "Pont eltávolÃtása" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Set expression" +msgstr "Jelenlegi Verzió:" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Resize VisualShader node" +msgstr "Ãrnyaló" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Set Uniform Name" msgstr "" @@ -7545,6 +8202,857 @@ msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp #, fuzzy +msgid "Create Shader Node" +msgstr "Node létrehozás" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Color function." +msgstr "Ugrás Funkcióra..." + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Color operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Grayscale function." +msgstr "Funkció KészÃtése" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts HSV vector to RGB equivalent." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts RGB vector to HSV equivalent." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Sepia function." +msgstr "Funkció KészÃtése" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Burn operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Darken operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Difference operator." +msgstr "Csak A Különbségek" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Dodge operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "HardLight operator" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Lighten operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Overlay operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Screen operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "SoftLight operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Color constant." +msgstr "Ãllandó" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Color uniform." +msgstr "Animáció transzformáció változtatás" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns an associated vector if the provided scalars are equal, greater or " +"less." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns an associated vector if the provided boolean value is true or false." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Boolean constant." +msgstr "Vec állandó változtatás" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'camera' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'inv_camera' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'inv_projection' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'normal' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'projection' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'time' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'viewport_size' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'world' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'texture_pixel_size' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Input parameter." +msgstr "Illesztés szülÅ‘höz" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'binormal' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'fragcoord' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_coord' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_uv' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'side' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'tangent' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv2' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'vertex' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'view' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'albedo' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'attenuation' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'diffuse' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_color' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'roughness' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'specular' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'transmission' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'modelview' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_size' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'tangent' input parameter for vertex and fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_pass' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_coord' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_pixel_size' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_uv' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_alpha' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_height' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_uv' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_vec' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'normal' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'shadow_color' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'extra' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'projection' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'vertex' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'world' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'active' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'custom' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'custom_alpha' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'delta' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'emission_transform' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'index' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'lifetime' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'restart' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'time' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'transform' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'velocity' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar function." +msgstr "Skalár-függvény változtatás" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar operator." +msgstr "Skaláris kezelÅ‘ változtatás" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "E constant (2.718282). Represents the base of the natural logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Epsilon constant (0.00001). Smallest possible scalar number." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Phi constant (1.618034). Golden ratio." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi/4 constant (0.785398) or 45 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi/2 constant (1.570796) or 90 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi constant (3.141593) or 180 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Tau constant (6.283185) or 360 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Sqrt2 constant (1.414214). Square root of 2." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the absolute value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-tangent of the parameters." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Finds the nearest integer that is greater than or equal to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Constrains a value to lie between two further values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts a quantity in radians to degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-e Exponential." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-2 Exponential." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Finds the nearest integer less than or equal to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Computes the fractional part of the argument." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the inverse of the square root of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Natural logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-2 logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the greater of two values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the lesser of two values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Linear interpolation between two scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the opposite value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 - scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns the value of the first parameter raised to the power of the second." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts a quantity in degrees to radians." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 / scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the nearest integer to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the nearest even integer to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Clamps the value between 0.0 and 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Extracts the sign of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the square root of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( scalar(edge0), scalar(edge1), scalar(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if x is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( scalar(edge), scalar(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the truncated value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Adds scalar to scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Divides scalar by scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies scalar by scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the remainder of the two scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Subtracts scalar from scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar constant." +msgstr "Skaláris állandó változtatás" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar uniform." +msgstr "Egységes-skalár változtatás" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Perform the cubic texture lookup." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Perform the texture lookup." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Cubic texture uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "2D texture uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Transform function." +msgstr "Sokszög Létrehozása" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) Calculate the outer product of a pair of vectors.\n" +"\n" +"OuterProduct treats the first parameter 'c' as a column vector (matrix with " +"one column) and the second parameter 'r' as a row vector (matrix with one " +"row) and does a linear algebraic matrix multiply 'c * r', yielding a matrix " +"whose number of rows is the number of components in 'c' and whose number of " +"columns is the number of components in 'r'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Composes transform from four vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Decomposes transform to four vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the determinant of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the inverse of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the transpose of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies transform by transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies vector by transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Transform constant." +msgstr "Sokszög Létrehozása" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Transform uniform." +msgstr "Sokszög Létrehozása" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector function." +msgstr "Ugrás Funkcióra..." + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector operator." +msgstr "Vec kezelÅ‘ változtatás" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Composes vector from three scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Decomposes vector to three scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the cross product of two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the distance between two points." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the dot product of two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns a vector that points in the same direction as a reference vector. " +"The function has three vector parameters : N, the vector to orient, I, the " +"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 "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the length of a vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Linear interpolation between two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the normalize product of vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 - vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 / vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns a vector that points in the direction of reflection ( a : incident " +"vector, b : normal vector )." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns a vector that points in the direction of refraction." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( vector(edge0), vector(edge1), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if 'x' is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( scalar(edge0), scalar(edge1), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if 'x' is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( vector(edge), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( scalar(edge), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Adds vector to vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Divides vector by vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies vector by vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the remainder of the two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Subtracts vector from vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector constant." +msgstr "Vec állandó változtatás" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector uniform." +msgstr "Egységes-vektor változtatás" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Custom Godot Shader Language expression, with custom amount of input and " +"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 "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns falloff based on the dot product of surface normal and view " +"direction of camera (pass associated inputs to it)." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) (Fragment/Light mode only) Scalar derivative function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) (Fragment/Light mode only) Vector derivative function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Derivative in 'x' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Derivative in 'x' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Derivative in 'y' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Derivative in 'y' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Sum of absolute derivative " +"in 'x' and 'y'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Sum of absolute derivative " +"in 'x' and 'y'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy msgid "VisualShader" msgstr "Ãrnyaló" @@ -7740,6 +9248,10 @@ msgid "Directory already contains a Godot project." msgstr "" #: editor/project_manager.cpp +msgid "New Game Project" +msgstr "" + +#: editor/project_manager.cpp msgid "Imported Project" msgstr "" @@ -7786,10 +9298,6 @@ msgid "Rename Project" msgstr "" #: editor/project_manager.cpp -msgid "New Game Project" -msgstr "" - -#: editor/project_manager.cpp msgid "Import Existing Project" msgstr "MeglévÅ‘ Projekt Importálása" @@ -7818,10 +9326,6 @@ msgid "Project Name:" msgstr "" #: editor/project_manager.cpp -msgid "Create folder" -msgstr "" - -#: editor/project_manager.cpp msgid "Project Path:" msgstr "" @@ -7830,10 +9334,6 @@ msgid "Project Installation Path:" msgstr "" #: editor/project_manager.cpp -msgid "Browse" -msgstr "" - -#: editor/project_manager.cpp msgid "Renderer:" msgstr "" @@ -7887,8 +9387,8 @@ msgid "" "\n" "If you proceed with opening it, it will be converted to Godot's current " "configuration file format.\n" -"Warning: You will not be able to open the project with previous versions of " -"the engine anymore." +"Warning: You won't be able to open the project with previous versions of the " +"engine anymore." msgstr "" #: editor/project_manager.cpp @@ -7899,8 +9399,8 @@ msgid "" "%s\n" "\n" "Do you want to convert it?\n" -"Warning: You will not be able to open the project with previous versions of " -"the engine anymore." +"Warning: You won't be able to open the project with previous versions of the " +"engine anymore." msgstr "" #: editor/project_manager.cpp @@ -7910,11 +9410,15 @@ msgid "" msgstr "" #: editor/project_manager.cpp +#, fuzzy msgid "" "Can't run project: no main scene defined.\n" -"Please edit the project and set the main scene in \"Project Settings\" under " +"Please edit the project and set the main scene in the Project Settings under " "the \"Application\" category." msgstr "" +"Nincs meghatározva fÅ‘jelenet, kiválaszt most egyet?\n" +"Ezt megváltoztathatja késÅ‘bb a \"Projekt BeállÃtásokban\" az \"Alkalmazás\" " +"kategóriában." #: editor/project_manager.cpp msgid "" @@ -7923,23 +9427,37 @@ msgid "" msgstr "" #: editor/project_manager.cpp -msgid "Are you sure to run more than one project?" +msgid "Are you sure to run %d projects at once?" msgstr "" #: editor/project_manager.cpp -msgid "Remove project from the list? (Folder contents will not be modified)" +msgid "" +"Remove %d projects from the list?\n" +"The project folders' contents won't be modified." +msgstr "" + +#: editor/project_manager.cpp +msgid "" +"Remove this project from the list?\n" +"The project folder's contents won't be modified." +msgstr "" + +#: editor/project_manager.cpp +msgid "" +"Remove all missing projects from the list? (Folders contents will not be " +"modified)" msgstr "" #: editor/project_manager.cpp msgid "" "Language changed.\n" -"The UI will update next time the editor or project manager starts." +"The interface will update after restarting the editor or project manager." msgstr "" #: editor/project_manager.cpp msgid "" -"You are about the scan %s folders for existing Godot projects. Do you " -"confirm?" +"Are you sure to scan %s folders for existing Godot projects?\n" +"This could take a while." msgstr "" #: editor/project_manager.cpp @@ -7963,6 +9481,11 @@ msgid "New Project" msgstr "" #: editor/project_manager.cpp +#, fuzzy +msgid "Remove Missing" +msgstr "Pont eltávolÃtása" + +#: editor/project_manager.cpp msgid "Templates" msgstr "" @@ -7980,8 +9503,8 @@ msgstr "" #: editor/project_manager.cpp msgid "" -"You don't currently have any projects.\n" -"Would you like to explore the official example projects in the Asset Library?" +"You currently don't have any projects.\n" +"Would you like to explore official example projects in the Asset Library?" msgstr "" #: editor/project_settings_editor.cpp @@ -8007,8 +9530,9 @@ msgid "" msgstr "" #: editor/project_settings_editor.cpp -msgid "Action '%s' already exists!" -msgstr "" +#, fuzzy +msgid "An action with the name '%s' already exists." +msgstr "HIBA: Animáció név már létezik!" #: editor/project_settings_editor.cpp msgid "Rename Input Action Event" @@ -8162,10 +9686,6 @@ msgid "" msgstr "" #: editor/project_settings_editor.cpp -msgid "Already existing" -msgstr "" - -#: editor/project_settings_editor.cpp msgid "Add Input Action" msgstr "" @@ -8230,7 +9750,7 @@ msgid "Override For..." msgstr "" #: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp -msgid "Editor must be restarted for changes to take effect" +msgid "The editor must be restarted for changes to take effect." msgstr "" #: editor/project_settings_editor.cpp @@ -8291,12 +9811,14 @@ msgid "Locales Filter" msgstr "" #: editor/project_settings_editor.cpp -msgid "Show all locales" -msgstr "" +#, fuzzy +msgid "Show All Locales" +msgstr "Csontok Mutatása" #: editor/project_settings_editor.cpp -msgid "Show only selected locales" -msgstr "" +#, fuzzy +msgid "Show Selected Locales Only" +msgstr "Csak Kiválsztás" #: editor/project_settings_editor.cpp msgid "Filter mode:" @@ -8311,14 +9833,6 @@ msgid "AutoLoad" msgstr "" #: editor/property_editor.cpp -msgid "Ease In" -msgstr "" - -#: editor/property_editor.cpp -msgid "Ease Out" -msgstr "" - -#: editor/property_editor.cpp msgid "Zero" msgstr "" @@ -8393,7 +9907,7 @@ msgstr "" #: editor/rename_dialog.cpp #, fuzzy -msgid "Advanced options" +msgid "Advanced Options" msgstr "Illesztési beállÃtások" #: editor/rename_dialog.cpp @@ -8660,8 +10174,8 @@ msgstr "" #: editor/scene_tree_dock.cpp #, fuzzy -msgid "Custom Node" -msgstr "Node-ok Másolása" +msgid "Other Node" +msgstr "Node létrehozás" #: editor/scene_tree_dock.cpp msgid "Can't operate on nodes from a foreign scene!" @@ -8703,7 +10217,7 @@ msgstr "" #: editor/scene_tree_dock.cpp #, fuzzy -msgid "Open documentation" +msgid "Open Documentation" msgstr "Godot online dokumentáció megnyitása" #: editor/scene_tree_dock.cpp @@ -8732,7 +10246,7 @@ msgstr "" msgid "Save Branch as Scene" msgstr "" -#: editor/scene_tree_dock.cpp +#: editor/scene_tree_dock.cpp editor/script_editor_debugger.cpp msgid "Copy Node Path" msgstr "Node Útvonal Másolása" @@ -8776,6 +10290,21 @@ msgid "Toggle Visible" msgstr "Rejtett Fájlok MegjelenÃtése" #: editor/scene_tree_editor.cpp +#, fuzzy +msgid "Unlock Node" +msgstr "Egyszeri Node" + +#: editor/scene_tree_editor.cpp +#, fuzzy +msgid "Button Group" +msgstr "Hozzáadás Csoporthoz" + +#: editor/scene_tree_editor.cpp +#, fuzzy +msgid "(Connecting From)" +msgstr "Kapcsolathiba" + +#: editor/scene_tree_editor.cpp msgid "Node configuration warning:" msgstr "" @@ -8797,9 +10326,9 @@ msgid "" "Click to show groups dock." msgstr "" -#: editor/scene_tree_editor.cpp editor/script_create_dialog.cpp +#: editor/scene_tree_editor.cpp #, fuzzy -msgid "Open Script" +msgid "Open Script:" msgstr "Szkript Futtatása" #: editor/scene_tree_editor.cpp @@ -8845,90 +10374,101 @@ msgid "Select a Node" msgstr "" #: editor/script_create_dialog.cpp -msgid "Error loading template '%s'" -msgstr "" - -#: editor/script_create_dialog.cpp -msgid "Error - Could not create script in filesystem." -msgstr "" +#, fuzzy +msgid "Path is empty." +msgstr "A háló üres!" #: editor/script_create_dialog.cpp -msgid "Error loading script from %s" -msgstr "" +#, fuzzy +msgid "Filename is empty." +msgstr "A háló üres!" #: editor/script_create_dialog.cpp -msgid "N/A" -msgstr "" +#, fuzzy +msgid "Path is not local." +msgstr "Az út nem vezeti a csomópontot!" #: editor/script_create_dialog.cpp #, fuzzy -msgid "Open Script/Choose Location" -msgstr "Szkript SzerkesztÅ‘ Megnyitása" +msgid "Invalid base path." +msgstr "Érvénytelen Elérési Út." #: editor/script_create_dialog.cpp -msgid "Path is empty" -msgstr "" +#, fuzzy +msgid "A directory with the same name exists." +msgstr "Egy fájl vagy mappa már létezik a megadott névvel." #: editor/script_create_dialog.cpp #, fuzzy -msgid "Filename is empty" -msgstr "A háló üres!" +msgid "Invalid extension." +msgstr "Használjon érvényes kiterjesztést." #: editor/script_create_dialog.cpp -msgid "Path is not local" +msgid "Wrong extension chosen." msgstr "" #: editor/script_create_dialog.cpp -msgid "Invalid base path" +msgid "Error loading template '%s'" msgstr "" #: editor/script_create_dialog.cpp -msgid "Directory of the same name exists" +msgid "Error - Could not create script in filesystem." msgstr "" #: editor/script_create_dialog.cpp -msgid "File exists, will be reused" +msgid "Error loading script from %s" msgstr "" #: editor/script_create_dialog.cpp -msgid "Invalid extension" +msgid "N/A" msgstr "" #: editor/script_create_dialog.cpp -msgid "Wrong extension chosen" -msgstr "" +#, fuzzy +msgid "Open Script / Choose Location" +msgstr "Szkript SzerkesztÅ‘ Megnyitása" #: editor/script_create_dialog.cpp -msgid "Invalid Path" -msgstr "" +#, fuzzy +msgid "Open Script" +msgstr "Szkript Futtatása" #: editor/script_create_dialog.cpp -msgid "Invalid class name" +msgid "File exists, it will be reused." msgstr "" #: editor/script_create_dialog.cpp -msgid "Invalid inherited parent name or path" -msgstr "" +#, fuzzy +msgid "Invalid class name." +msgstr "Érvénytelen név." #: editor/script_create_dialog.cpp -msgid "Script valid" +msgid "Invalid inherited parent name or path." msgstr "" #: editor/script_create_dialog.cpp +#, fuzzy +msgid "Script is valid." +msgstr "Az animációs fa érvényes." + +#: editor/script_create_dialog.cpp msgid "Allowed: a-z, A-Z, 0-9 and _" msgstr "" #: editor/script_create_dialog.cpp -msgid "Built-in script (into scene file)" -msgstr "" +#, fuzzy +msgid "Built-in script (into scene file)." +msgstr "Műveletek Scene fájlokkal." #: editor/script_create_dialog.cpp -msgid "Create new script file" -msgstr "" +#, fuzzy +msgid "Will create a new script file." +msgstr "Új %s Létrehozása" #: editor/script_create_dialog.cpp -msgid "Load existing script file" -msgstr "" +#, fuzzy +msgid "Will load an existing script file." +msgstr "MeglévÅ‘ Busz Elrendezés betöltése." #: editor/script_create_dialog.cpp msgid "Language" @@ -9058,6 +10598,10 @@ msgstr "" msgid "Set From Tree" msgstr "" +#: editor/script_editor_debugger.cpp +msgid "Export measures as CSV" +msgstr "" + #: editor/settings_config_dialog.cpp #, fuzzy msgid "Erase Shortcut" @@ -9192,6 +10736,15 @@ msgid "GDNativeLibrary" msgstr "" #: 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 "FrissÃtési Forgó Kikapcsolása" + +#: modules/gdnative/gdnative_library_singleton_editor.cpp msgid "Library" msgstr "" @@ -9277,8 +10830,9 @@ msgid "GridMap Fill Selection" msgstr "Minden kiválasztás" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "GridMap Duplicate Selection" -msgstr "" +#, fuzzy +msgid "GridMap Paste Selection" +msgstr "Minden kiválasztás" #: modules/gridmap/grid_map_editor_plugin.cpp msgid "GridMap Paint" @@ -9345,18 +10899,6 @@ msgid "Cursor Clear Rotation" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Create Area" -msgstr "" - -#: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Create Exterior Connector" -msgstr "" - -#: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Erase Area" -msgstr "" - -#: modules/gridmap/grid_map_editor_plugin.cpp msgid "Clear Selection" msgstr "" @@ -9718,15 +11260,7 @@ msgid "Available Nodes:" msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Select or create a function to edit graph" -msgstr "" - -#: modules/visual_script/visual_script_editor.cpp -msgid "Edit Signal Arguments:" -msgstr "" - -#: modules/visual_script/visual_script_editor.cpp -msgid "Edit Variable:" +msgid "Select or create a function to edit its graph." msgstr "" #: modules/visual_script/visual_script_editor.cpp @@ -9858,6 +11392,19 @@ msgid "Debug keystore not configured in the Editor Settings nor in the preset." msgstr "" #: platform/android/export/export.cpp +msgid "Custom build requires a valid Android SDK path in Editor Settings." +msgstr "" + +#: platform/android/export/export.cpp +msgid "Invalid Android SDK path for custom build in Editor Settings." +msgstr "" + +#: platform/android/export/export.cpp +msgid "" +"Android project is not installed for compiling. Install from Editor menu." +msgstr "" + +#: platform/android/export/export.cpp msgid "Invalid public key for APK expansion." msgstr "" @@ -9866,6 +11413,34 @@ msgstr "" msgid "Invalid package name:" msgstr "Érvénytelen név." +#: platform/android/export/export.cpp +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 "" +"Android build version mismatch:\n" +" Template installed: %s\n" +" Godot Version: %s\n" +"Please reinstall Android build template from 'Project' menu." +msgstr "" + +#: platform/android/export/export.cpp +msgid "Building Android Project (gradle)" +msgstr "" + +#: 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 "" + +#: platform/android/export/export.cpp +msgid "No build apk generated at: " +msgstr "" + #: platform/iphone/export/export.cpp msgid "Identifier is missing." msgstr "" @@ -10123,27 +11698,27 @@ msgid "ARVRCamera must have an ARVROrigin node as its parent" msgstr "" #: scene/3d/arvr_nodes.cpp -msgid "ARVRController must have an ARVROrigin node as its parent" +msgid "ARVRController must have an ARVROrigin node as its parent." msgstr "" #: scene/3d/arvr_nodes.cpp msgid "" -"The controller id must not be 0 or this controller will not be bound to an " -"actual controller" +"The controller ID must not be 0 or this controller won't be bound to an " +"actual controller." msgstr "" #: scene/3d/arvr_nodes.cpp -msgid "ARVRAnchor must have an ARVROrigin node as its parent" +msgid "ARVRAnchor must have an ARVROrigin node as its parent." msgstr "" #: scene/3d/arvr_nodes.cpp msgid "" -"The anchor id must not be 0 or this anchor will not be bound to an actual " -"anchor" +"The anchor ID must not be 0 or this anchor won't be bound to an actual " +"anchor." msgstr "" #: scene/3d/arvr_nodes.cpp -msgid "ARVROrigin requires an ARVRCamera child node" +msgid "ARVROrigin requires an ARVRCamera child node." msgstr "" #: scene/3d/baked_lightmap.cpp @@ -10213,8 +11788,8 @@ msgstr "" #: scene/3d/cpu_particles.cpp msgid "" -"CPUParticles animation requires the usage of a SpatialMaterial with " -"\"Billboard Particles\" enabled." +"CPUParticles animation requires the usage of a SpatialMaterial whose " +"Billboard Mode is set to \"Particle Billboard\"." msgstr "" #: scene/3d/gi_probe.cpp @@ -10251,8 +11826,8 @@ msgstr "" #: scene/3d/particles.cpp msgid "" -"Particles animation requires the usage of a SpatialMaterial with \"Billboard " -"Particles\" enabled." +"Particles animation requires the usage of a SpatialMaterial whose Billboard " +"Mode is set to \"Particle Billboard\"." msgstr "" #: scene/3d/path.cpp @@ -10277,7 +11852,7 @@ msgid "Path property must point to a valid Spatial node to work." msgstr "" #: scene/3d/soft_body.cpp -msgid "This body will be ignored until you set a mesh" +msgid "This body will be ignored until you set a mesh." msgstr "" #: scene/3d/soft_body.cpp @@ -10381,7 +11956,7 @@ msgstr "" msgid "" "Container by itself serves no purpose unless a script configures it's " "children placement behavior.\n" -"If you dont't intend to add a script, then please use a plain 'Control' node " +"If you don't intend to add a script, then please use a plain 'Control' node " "instead." msgstr "" @@ -10393,11 +11968,6 @@ msgstr "Figyelem!" msgid "Please Confirm..." msgstr "Kérem ErÅ‘sÃtse Meg..." -#: scene/gui/file_dialog.cpp -#, fuzzy -msgid "Go to parent folder." -msgstr "Ugrás a szülÅ‘mappába" - #: scene/gui/popup.cpp msgid "" "Popups will hide by default unless you call popup() or any of the popup*() " @@ -10476,6 +12046,47 @@ msgstr "" msgid "Varyings can only be assigned in vertex function." msgstr "" +#: servers/visual/shader_language.cpp +msgid "Constants cannot be modified." +msgstr "" + +#~ msgid "Path to Node:" +#~ msgstr "Út a Node-hoz:" + +#~ msgid "Delete selected files?" +#~ msgstr "Törli a kiválasztott fájlokat?" + +#~ msgid "There is no 'res://default_bus_layout.tres' file." +#~ msgstr "Nincs 'res://default_bus_layout.tres' fájl." + +#~ 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" + +#~ msgid "Previous Directory" +#~ msgstr "ElÅ‘zÅ‘ Könyvtár" + +#~ msgid "Next Directory" +#~ msgstr "KövetkezÅ‘ Könyvtár" + +#~ msgid "Ease in" +#~ msgstr "Lassan Be" + +#~ msgid "Ease out" +#~ msgstr "Lassan Ki" + +#~ msgid "Create Convex Static Body" +#~ msgstr "Konvex Statikus Test Létrehozása" + +#, fuzzy +#~ msgid "Custom Node" +#~ msgstr "Node-ok Másolása" + #, fuzzy #~ msgid "Snap (s): " #~ msgstr "Lépés (mp):" @@ -10568,9 +12179,6 @@ msgstr "" #~ msgid "Class List:" #~ msgstr "Osztálylista:" -#~ msgid "Search Classes" -#~ msgstr "Osztályok Keresése" - #~ msgid "Public Methods" #~ msgstr "Publikus Metódusok" @@ -10628,21 +12236,9 @@ msgstr "" #~ msgid "Bake the navigation mesh." #~ msgstr "A navigációs mesh besütése." -#~ msgid "Change Scalar Constant" -#~ msgstr "Skaláris állandó változtatás" - -#~ msgid "Change Vec Constant" -#~ msgstr "Vec állandó változtatás" - #~ msgid "Change RGB Constant" #~ msgstr "RGB állandó változtatás" -#~ msgid "Change Scalar Operator" -#~ msgstr "Skaláris kezelÅ‘ változtatás" - -#~ msgid "Change Vec Operator" -#~ msgstr "Vec kezelÅ‘ változtatás" - #~ msgid "Change Vec Scalar Operator" #~ msgstr "Vektor skalár kezelÅ‘ változtatás" @@ -10652,18 +12248,9 @@ msgstr "" #~ msgid "Toggle Rot Only" #~ msgstr "Csak vörös kapcsolása" -#~ msgid "Change Scalar Function" -#~ msgstr "Skalár-függvény változtatás" - #~ msgid "Change Vec Function" #~ msgstr "Vektor-függvény változtatás" -#~ msgid "Change Scalar Uniform" -#~ msgstr "Egységes-skalár változtatás" - -#~ msgid "Change Vec Uniform" -#~ msgstr "Egységes-vektor változtatás" - #~ msgid "Change RGB Uniform" #~ msgstr "Egységes-RGB változtatás" @@ -10673,9 +12260,6 @@ msgstr "" #~ msgid "Modify Color Ramp" #~ msgstr "SzÃn Gradiens MódosÃtása" -#~ msgid "Disabled" -#~ msgstr "Tiltva" - #~ msgid "Move Anim Track Up" #~ msgstr "Animáció nyomvonal felfelé mozgatás" diff --git a/editor/translations/id.po b/editor/translations/id.po index 876990c0c1..283c0e3e61 100644 --- a/editor/translations/id.po +++ b/editor/translations/id.po @@ -88,6 +88,15 @@ msgstr "Seimbang" msgid "Mirror" msgstr "Cermin" +#: editor/animation_bezier_editor.cpp editor/editor_profiler.cpp +msgid "Time:" +msgstr "Waktu:" + +#: editor/animation_bezier_editor.cpp +#, fuzzy +msgid "Value:" +msgstr "Nama baru:" + #: editor/animation_bezier_editor.cpp msgid "Insert Key Here" msgstr "Sisipkan Key Disini" @@ -170,14 +179,20 @@ msgid "Animation Playback Track" msgstr "Track Pemutar Animasi" #: editor/animation_track_editor.cpp -msgid "Add Track" -msgstr "Tambah Track" +#, fuzzy +msgid "Animation length (frames)" +msgstr "Panjang Animasi (detik)" #: editor/animation_track_editor.cpp -msgid "Animation Length Time (seconds)" +#, fuzzy +msgid "Animation length (seconds)" msgstr "Panjang Animasi (detik)" #: editor/animation_track_editor.cpp +msgid "Add Track" +msgstr "Tambah Track" + +#: editor/animation_track_editor.cpp msgid "Animation Looping" msgstr "Perulangan Animasi" @@ -301,11 +316,13 @@ msgid "Create %d NEW tracks and insert keys?" msgstr "Buat track BARU %d dan masukkan tombol-tombol?" #: editor/animation_track_editor.cpp editor/create_dialog.cpp -#: editor/editor_audio_buses.cpp editor/editor_plugin_settings.cpp -#: editor/plugin_config_dialog.cpp +#: editor/editor_audio_buses.cpp editor/editor_feature_profile.cpp +#: editor/editor_plugin_settings.cpp editor/plugin_config_dialog.cpp #: editor/plugins/abstract_polygon_2d_editor.cpp #: editor/plugins/mesh_instance_editor_plugin.cpp -#: editor/plugins/particles_editor_plugin.cpp editor/script_create_dialog.cpp +#: editor/plugins/particles_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_create_dialog.cpp msgid "Create" msgstr "Buat" @@ -422,6 +439,23 @@ msgid "" msgstr "Opsi ini tidak bisa untuk mengedit Bezier, karena hanya satu track." #: editor/animation_track_editor.cpp +msgid "" +"This animation belongs to an imported scene, so changes to imported tracks " +"will not be saved.\n" +"\n" +"To enable the ability to add custom tracks, navigate to the scene's import " +"settings and set\n" +"\"Animation > Storage\" to \"Files\", enable \"Animation > Keep Custom Tracks" +"\", then re-import.\n" +"Alternatively, use an import preset that imports animations to separate " +"files." +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Warning: Editing imported animation" +msgstr "" + +#: editor/animation_track_editor.cpp msgid "Only show tracks from nodes selected in tree." msgstr "Hanya tampilkan track dari node terpilih dalam tree." @@ -555,7 +589,8 @@ msgstr "Rasio Skala:" msgid "Select tracks to copy:" msgstr "Pilih track untuk disalin:" -#: editor/animation_track_editor.cpp editor/editor_properties.cpp +#: editor/animation_track_editor.cpp editor/editor_log.cpp +#: editor/editor_properties.cpp #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp @@ -623,6 +658,11 @@ msgstr "Ganti Semua" msgid "Selection Only" msgstr "Hanya yang Dipilih" +#: editor/code_editor.cpp editor/plugins/script_text_editor.cpp +#: editor/plugins/text_editor.cpp +msgid "Standard" +msgstr "" + #: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/texture_region_editor_plugin.cpp #: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp @@ -648,21 +688,38 @@ msgid "Line and column numbers." msgstr "Nomor baris dan kolom." #: editor/connections_dialog.cpp -msgid "Method in target Node must be specified!" +#, fuzzy +msgid "Method in target node must be specified." msgstr "Method dalam Node target harus spesifik!" #: editor/connections_dialog.cpp +#, fuzzy msgid "" -"Target method not found! Specify a valid method or attach a script to target " -"Node." +"Target method not found. Specify a valid method or attach a script to the " +"target node." msgstr "" "Target metode tidak ditemukan! Tentukan metode yang sah atau lampirkan skrip " "ke target Node." #: editor/connections_dialog.cpp -msgid "Connect To Node:" +#, fuzzy +msgid "Connect to Node:" msgstr "Sambungkan Ke Node:" +#: editor/connections_dialog.cpp +#, fuzzy +msgid "Connect to Script:" +msgstr "Tidak bisa terhubung ke host:" + +#: editor/connections_dialog.cpp +#, fuzzy +msgid "From Signal:" +msgstr "Sinyal-sinyal:" + +#: editor/connections_dialog.cpp +msgid "Scene does not contain any script." +msgstr "" + #: editor/connections_dialog.cpp editor/editor_autoload_settings.cpp #: editor/groups_editor.cpp editor/plugins/item_list_editor_plugin.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_settings_editor.cpp @@ -670,10 +727,12 @@ msgid "Add" msgstr "Tambah" #: editor/connections_dialog.cpp editor/dependency_editor.cpp -#: editor/groups_editor.cpp editor/plugins/animation_player_editor_plugin.cpp +#: editor/editor_feature_profile.cpp editor/groups_editor.cpp +#: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp #: editor/plugins/resource_preloader_editor_plugin.cpp -#: editor/plugins/theme_editor_plugin.cpp editor/project_manager.cpp +#: editor/plugins/theme_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_manager.cpp #: editor/project_settings_editor.cpp msgid "Remove" msgstr "Hapus" @@ -687,21 +746,32 @@ msgid "Extra Call Arguments:" msgstr "Argumen-argumen Panggilan Ekstra:" #: editor/connections_dialog.cpp -msgid "Path to Node:" -msgstr "Path ke Node:" - -#: editor/connections_dialog.cpp -msgid "Make Function" -msgstr "Buat Fungsi" +#, fuzzy +msgid "Advanced" +msgstr "Seimbang" #: editor/connections_dialog.cpp msgid "Deferred" msgstr "Ditunda" #: editor/connections_dialog.cpp +msgid "" +"Defers the signal, storing it in a queue and only firing it at idle time." +msgstr "" + +#: editor/connections_dialog.cpp msgid "Oneshot" msgstr "Satu Waktu" +#: editor/connections_dialog.cpp +msgid "Disconnects the signal after its first emission." +msgstr "" + +#: editor/connections_dialog.cpp +#, fuzzy +msgid "Cannot connect signal" +msgstr "Sambungkan Sinyal: " + #: editor/connections_dialog.cpp editor/dependency_editor.cpp #: editor/export_template_manager.cpp editor/groups_editor.cpp #: editor/plugins/animation_player_editor_plugin.cpp @@ -742,11 +812,13 @@ msgid "Disconnect" msgstr "Putuskan" #: editor/connections_dialog.cpp -msgid "Connect Signal: " +#, fuzzy +msgid "Connect a Signal to a Method" msgstr "Sambungkan Sinyal: " #: editor/connections_dialog.cpp -msgid "Edit Connection: " +#, fuzzy +msgid "Edit Connection:" msgstr "Ubah koneksi: " #: editor/connections_dialog.cpp @@ -778,7 +850,6 @@ msgid "Change %s Type" msgstr "Ubah Tipe %s" #: editor/create_dialog.cpp editor/project_settings_editor.cpp -#: modules/visual_script/visual_script_editor.cpp msgid "Change" msgstr "Ubah" @@ -809,7 +880,8 @@ msgid "Matches:" msgstr "Kecocokan:" #: editor/create_dialog.cpp editor/plugin_config_dialog.cpp -#: editor/plugins/asset_library_editor_plugin.cpp editor/property_selector.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/property_selector.cpp #: modules/visual_script/visual_script_property_selector.cpp msgid "Description:" msgstr "Deskripsi:" @@ -823,17 +895,19 @@ msgid "Dependencies For:" msgstr "Ketergantungan Untuk:" #: editor/dependency_editor.cpp +#, fuzzy msgid "" "Scene '%s' is currently being edited.\n" -"Changes will not take effect unless reloaded." +"Changes will only take effect when reloaded." msgstr "" "Scene '%s' sedang disunting saat ini.\n" "Perubahan-perubahan tidak akan berefek kecuali dimuat ulang." #: editor/dependency_editor.cpp +#, fuzzy msgid "" "Resource '%s' is in use.\n" -"Changes will take effect when reloaded." +"Changes will only take effect when reloaded." msgstr "" "Resource '%s' sedang digunakan.\n" "Perubahan-perubahan akan terjadi ketika dimuat ulang." @@ -930,21 +1004,14 @@ msgid "Permanently delete %d item(s)? (No undo!)" msgstr "Hapus secara permanen %d item? (Tidak dapat dikembalikan!)" #: editor/dependency_editor.cpp -msgid "Owns" -msgstr "Memiliki" - -#: editor/dependency_editor.cpp -msgid "Resources Without Explicit Ownership:" -msgstr "Resource-resource tanpa kepemilikan yang jelas:" +#, fuzzy +msgid "Show Dependencies" +msgstr "Ketergantungan" #: editor/dependency_editor.cpp editor/editor_node.cpp msgid "Orphan Resource Explorer" msgstr "Penjelajah Resource Orphan" -#: editor/dependency_editor.cpp -msgid "Delete selected files?" -msgstr "Hapus file yang dipilih?" - #: editor/dependency_editor.cpp editor/editor_audio_buses.cpp #: editor/editor_file_dialog.cpp editor/editor_node.cpp #: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp @@ -953,6 +1020,14 @@ msgstr "Hapus file yang dipilih?" msgid "Delete" msgstr "Hapus" +#: editor/dependency_editor.cpp +msgid "Owns" +msgstr "Memiliki" + +#: editor/dependency_editor.cpp +msgid "Resources Without Explicit Ownership:" +msgstr "Resource-resource tanpa kepemilikan yang jelas:" + #: editor/dictionary_property_edit.cpp msgid "Change Dictionary Key" msgstr "Ubah Kunci Kamus" @@ -1066,7 +1141,7 @@ msgstr "Paket Sukses Terpasang!" msgid "Success!" msgstr "Sukses!" -#: editor/editor_asset_installer.cpp +#: editor/editor_asset_installer.cpp editor/editor_node.cpp #: editor/plugins/asset_library_editor_plugin.cpp msgid "Install" msgstr "Pasang" @@ -1193,8 +1268,13 @@ msgid "Open Audio Bus Layout" msgstr "Buka Layout Suara Bus" #: editor/editor_audio_buses.cpp -msgid "There is no 'res://default_bus_layout.tres' file." -msgstr "Tidak ada 'res://default_bus_layout.tres' berkas." +msgid "There is no '%s' file." +msgstr "" + +#: editor/editor_audio_buses.cpp editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Layout" +msgstr "Simpan Penampilan" #: editor/editor_audio_buses.cpp msgid "Invalid file, not an audio bus layout." @@ -1247,20 +1327,27 @@ msgid "Valid characters:" msgstr "Karakter sah:" #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing engine class name." +#, fuzzy +msgid "Must not collide with an existing engine class name." msgstr "" "Nama tidak valid. Tidak boleh sama dengan nama kelas bawaan engine yang ada." #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing buit-in type name." +#, fuzzy +msgid "Must not collide with an existing buit-in type name." msgstr "Nama tidak sah. Tidak boleh serupa dengan nama bawaan." #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing global constant name." +#, fuzzy +msgid "Must not collide with an existing global constant name." msgstr "" "Nama tidak sah. Tidak boleh serupa dengan nama konstanta global yang ada." #: editor/editor_autoload_settings.cpp +msgid "Keyword cannot be used as an autoload name." +msgstr "" + +#: editor/editor_autoload_settings.cpp msgid "Autoload '%s' already exists!" msgstr "Autoload '%s' telah ada!" @@ -1288,11 +1375,12 @@ msgstr "Aktifkan" msgid "Rearrange Autoloads" msgstr "Mengatur kembali Autoload-autoload" -#: editor/editor_autoload_settings.cpp -msgid "Invalid Path." +#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp +#, fuzzy +msgid "Invalid path." msgstr "Path Tidak Sah." -#: editor/editor_autoload_settings.cpp +#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp msgid "File does not exist." msgstr "File tidak ada." @@ -1343,7 +1431,8 @@ msgid "[unsaved]" msgstr "[belum disimpan]" #: editor/editor_dir_dialog.cpp -msgid "Please select a base directory first" +#, fuzzy +msgid "Please select a base directory first." msgstr "Slahkan pilih direktori kerja terlebih dahulu" #: editor/editor_dir_dialog.cpp @@ -1351,7 +1440,8 @@ msgid "Choose a Directory" msgstr "Pilih sebuah Direktori" #: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp -#: editor/filesystem_dock.cpp scene/gui/file_dialog.cpp +#: editor/filesystem_dock.cpp editor/project_manager.cpp +#: scene/gui/file_dialog.cpp msgid "Create Folder" msgstr "Buat Folder" @@ -1428,6 +1518,177 @@ msgstr "Templat rilis kustom tidak ditemukan." msgid "Template file not found:" msgstr "Templat berkas tidak ditemukan:" +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "3D Editor" +msgstr "Editor" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Script Editor" +msgstr "Buka Penyunting Skrip" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Asset Library" +msgstr "Buka Pustaka Aset" + +#: editor/editor_feature_profile.cpp +msgid "Scene Tree Editing" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Import Dock" +msgstr "Impor" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Node Dock" +msgstr "Nama Node:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Filesystem Dock" +msgstr "Berkas Sistem" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Erase profile '%s'? (no undo)" +msgstr "Ganti Semua" + +#: editor/editor_feature_profile.cpp +msgid "Profile must be a valid filename and must not contain '.'" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Profile with this name already exists." +msgstr "Sudah ada nama berkas atau folder seperti itu." + +#: editor/editor_feature_profile.cpp +msgid "(Editor Disabled, Properties Disabled)" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "(Properties Disabled)" +msgstr "Hanya Properti" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "(Editor Disabled)" +msgstr "Dinonaktifkan" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Class Options:" +msgstr "Deskripsi Kelas:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enable Contextual Editor" +msgstr "Buka Penyunting Selanjutnya" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enabled Properties:" +msgstr "Properti:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enabled Features:" +msgstr "Daftar Fungsi:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enabled Classes:" +msgstr "Cari Kelas" + +#: editor/editor_feature_profile.cpp +msgid "File '%s' format is invalid, import aborted." +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "" +"Profile '%s' already exists. Remote it first before importing, import " +"aborted." +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Error saving profile to path: '%s'." +msgstr "Error memuat font." + +#: editor/editor_feature_profile.cpp +msgid "Unset" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Current Profile" +msgstr "Versi sekarang:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Make Current" +msgstr "Saat ini:" + +#: editor/editor_feature_profile.cpp +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "New" +msgstr "Baru" + +#: editor/editor_feature_profile.cpp editor/editor_node.cpp +#: editor/plugins/asset_library_editor_plugin.cpp editor/project_manager.cpp +msgid "Import" +msgstr "Impor" + +#: editor/editor_feature_profile.cpp editor/editor_node.cpp +#: editor/project_export.cpp +msgid "Export" +msgstr "Ekspor" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Available Profiles" +msgstr "Node-node yang Tersedia:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enabled Classes" +msgstr "Cari Kelas" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Class Options" +msgstr "Deskripsi Kelas" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "New profile name:" +msgstr "Nama baru:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Erase Profile" +msgstr "Beri Skala Seleksi" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Import Profile(s)" +msgstr "%d file lagi" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Export Profile" +msgstr "Ekspor Projek" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Manage Editor Feature Profiles" +msgstr "Mengatur Templat Ekspor" + #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Select Current Folder" msgstr "Pilih Folder Saat Ini" @@ -1448,8 +1709,8 @@ msgstr "Salin Lokasi" msgid "Open in File Manager" msgstr "Tampilkan di Pengelola Berkas" -#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp -#: editor/project_manager.cpp +#: editor/editor_file_dialog.cpp editor/editor_node.cpp +#: editor/filesystem_dock.cpp editor/project_manager.cpp msgid "Show in File Manager" msgstr "Tampilkan di Manajer Berkas" @@ -1508,7 +1769,7 @@ msgstr "Maju" msgid "Go Up" msgstr "Naik" -#: editor/editor_file_dialog.cpp +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Toggle Hidden Files" msgstr "Beralih File Tersembunyi" @@ -1541,8 +1802,9 @@ msgstr "Tab sebelumnya" msgid "Next Folder" msgstr "Folder Berikutnya" -#: editor/editor_file_dialog.cpp -msgid "Go to parent folder" +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp +#, fuzzy +msgid "Go to parent folder." msgstr "Pergi ke direktori induk" #: editor/editor_file_dialog.cpp @@ -1550,6 +1812,11 @@ msgstr "Pergi ke direktori induk" msgid "(Un)favorite current folder." msgstr "Tidak dapat membuat folder." +#: editor/editor_file_dialog.cpp +#, fuzzy +msgid "Toggle visibility of hidden files." +msgstr "Beralih File Tersembunyi" + #: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp msgid "View items as a grid of thumbnails." msgstr "Tampilkan item sebagai grid thumbnail" @@ -1564,6 +1831,7 @@ msgstr "Direktori-direktori & File-file:" #: editor/editor_file_dialog.cpp editor/plugins/sprite_editor_plugin.cpp #: editor/plugins/style_box_editor_plugin.cpp +#: editor/plugins/theme_editor_plugin.cpp msgid "Preview:" msgstr "Pratinjau:" @@ -1580,6 +1848,12 @@ msgid "ScanSources" msgstr "Sumber Pemindaian" #: editor/editor_file_system.cpp +msgid "" +"There are multiple importers for different types pointing to file %s, import " +"aborted" +msgstr "" + +#: editor/editor_file_system.cpp msgid "(Re)Importing Assets" msgstr "Mengimpor ulang Aset" @@ -1762,6 +2036,11 @@ msgstr "Terapkan Bersamaan:" msgid "Output:" msgstr "Keluaran:" +#: editor/editor_log.cpp editor/plugins/tile_map_editor_plugin.cpp +#, fuzzy +msgid "Copy Selection" +msgstr "Hapus Pilihan" + #: editor/editor_log.cpp editor/editor_profiler.cpp #: editor/editor_properties.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp @@ -1920,9 +2199,10 @@ msgstr "" "kerja." #: editor/editor_node.cpp +#, fuzzy msgid "" "This resource belongs to a scene that was instanced or inherited.\n" -"Changes to it will not be kept when saving the current scene." +"Changes to it won't be kept when saving the current scene." msgstr "" "Sumber ini termasuk ke scene warisan.\n" "Perubahan tidak akan tersimpan ke scene ini." @@ -1936,8 +2216,9 @@ msgstr "" "panel impor dan impor kembali." #: editor/editor_node.cpp +#, fuzzy msgid "" -"This scene was imported, so changes to it will not be kept.\n" +"This scene was imported, so changes to it won't be kept.\n" "Instancing it or inheriting will allow making changes to it.\n" "Please read the documentation relevant to importing scenes to better " "understand this workflow." @@ -1948,8 +2229,9 @@ msgstr "" "tentang workflow ini." #: editor/editor_node.cpp +#, fuzzy msgid "" -"This is a remote object so changes to it will not be kept.\n" +"This is a remote object, so changes to it won't be kept.\n" "Please read the documentation relevant to debugging to better understand " "this workflow." msgstr "" @@ -1962,36 +2244,6 @@ msgid "There is no defined scene to run." msgstr "Tidak ada definisi scene untuk dijalankan." #: editor/editor_node.cpp -msgid "" -"No main scene has ever been defined, select one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" -"Tidak ada scene utama yang pernah didefinisikan, pilih satu?\n" -"Anda dapat mengubahnya nanti di \"Project Settings\" di bawah kategori " -"'application'." - -#: editor/editor_node.cpp -msgid "" -"Selected scene '%s' does not exist, select a valid one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" -"Scene '%s' tidak tersedia, pilih yang sah?\n" -"Anda dapat menggantinya kemudian di \"Pengaturan Proyek\" di bawah kategori " -"'aplikasi'." - -#: editor/editor_node.cpp -msgid "" -"Selected scene '%s' is not a scene file, select a valid one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" -"Scene '%s' bukanlah sebuah file scene, pilih yang sah?\n" -"Anda dapat menggantinya kemudian di \"Pengaturan Proyek\" di bawah kategori " -"'aplikasi'." - -#: editor/editor_node.cpp msgid "Current scene was never saved, please save it prior to running." msgstr "" "Scene saat ini belum pernah disimpan, mohon simpat dahulu untuk " @@ -2001,7 +2253,7 @@ msgstr "" msgid "Could not start subprocess!" msgstr "Tidak dapat memulai subprocess!" -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/filesystem_dock.cpp msgid "Open Scene" msgstr "Buka Scene" @@ -2010,6 +2262,11 @@ msgid "Open Base Scene" msgstr "Buka Scene Dasar" #: editor/editor_node.cpp +#, fuzzy +msgid "Quick Open..." +msgstr "Buka Cepat Scene..." + +#: editor/editor_node.cpp msgid "Quick Open Scene..." msgstr "Buka Cepat Scene..." @@ -2185,6 +2442,36 @@ msgid "Clear Recent Scenes" msgstr "Bersihkan Scenes baru-baru ini" #: editor/editor_node.cpp +msgid "" +"No main scene has ever been defined, select one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" +"Tidak ada scene utama yang pernah didefinisikan, pilih satu?\n" +"Anda dapat mengubahnya nanti di \"Project Settings\" di bawah kategori " +"'application'." + +#: editor/editor_node.cpp +msgid "" +"Selected scene '%s' does not exist, select a valid one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" +"Scene '%s' tidak tersedia, pilih yang sah?\n" +"Anda dapat menggantinya kemudian di \"Pengaturan Proyek\" di bawah kategori " +"'aplikasi'." + +#: editor/editor_node.cpp +msgid "" +"Selected scene '%s' is not a scene file, select a valid one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" +"Scene '%s' bukanlah sebuah file scene, pilih yang sah?\n" +"Anda dapat menggantinya kemudian di \"Pengaturan Proyek\" di bawah kategori " +"'aplikasi'." + +#: editor/editor_node.cpp msgid "Save Layout" msgstr "Simpan Penampilan" @@ -2210,6 +2497,19 @@ msgstr "Mainkan Scene Ini" msgid "Close Tab" msgstr "Tutup Tab" +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +msgid "Close Other Tabs" +msgstr "" + +#: editor/editor_node.cpp +msgid "Close Tabs to the Right" +msgstr "" + +#: editor/editor_node.cpp +#, fuzzy +msgid "Close All Tabs" +msgstr "Tutup Semua" + #: editor/editor_node.cpp msgid "Switch Scene Tab" msgstr "Pilih Tab Scene" @@ -2332,10 +2632,6 @@ msgstr "Proyek" msgid "Project Settings" msgstr "Pengaturan Proyek" -#: editor/editor_node.cpp editor/project_export.cpp -msgid "Export" -msgstr "Ekspor" - #: editor/editor_node.cpp editor/plugins/tile_set_editor_plugin.cpp msgid "Tools" msgstr "Alat-alat" @@ -2345,6 +2641,10 @@ msgid "Open Project Data Folder" msgstr "Buka Project Data Manager" #: editor/editor_node.cpp +msgid "Install Android Build Template" +msgstr "" + +#: editor/editor_node.cpp msgid "Quit to Project List" msgstr "Keluar ke daftar proyek" @@ -2470,6 +2770,11 @@ msgstr "Buka Folder Data Editor" msgid "Open Editor Settings Folder" msgstr "Buka Folder Pengaturan Editor" +#: editor/editor_node.cpp +#, fuzzy +msgid "Manage Editor Features" +msgstr "Mengatur Templat Ekspor" + #: editor/editor_node.cpp editor/project_export.cpp msgid "Manage Export Templates" msgstr "Mengatur Templat Ekspor" @@ -2482,6 +2787,7 @@ msgstr "Bantuan" #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp #: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp #: editor/project_settings_editor.cpp editor/rename_dialog.cpp msgid "Search" msgstr "Cari" @@ -2572,11 +2878,6 @@ msgstr "Perbarui Perubahan" msgid "Disable Update Spinner" msgstr "Nonaktifkan Perbaruan Spinner" -#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp -#: editor/project_manager.cpp -msgid "Import" -msgstr "Impor" - #: editor/editor_node.cpp msgid "FileSystem" msgstr "Berkas Sistem" @@ -2602,6 +2903,28 @@ msgid "Don't Save" msgstr "Jangan Simpan" #: editor/editor_node.cpp +msgid "Android build template is missing, please install relevant templates." +msgstr "" + +#: editor/editor_node.cpp +#, fuzzy +msgid "Manage Templates" +msgstr "Mengatur Templat Ekspor" + +#: editor/editor_node.cpp +msgid "" +"This will install the Android project for custom builds.\n" +"Note that, in order to use it, it needs to be enabled per export preset." +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"Android build template is already installed and it won't be overwritten.\n" +"Remove the \"build\" directory manually before attempting this operation " +"again." +msgstr "" + +#: editor/editor_node.cpp msgid "Import Templates From ZIP File" msgstr "Impor Templat dari Berkas ZIP" @@ -2724,10 +3047,6 @@ msgid "Physics Frame %" msgstr "Frame Fisika %" #: editor/editor_profiler.cpp -msgid "Time:" -msgstr "Waktu:" - -#: editor/editor_profiler.cpp msgid "Inclusive" msgstr "Inklusif" @@ -2878,10 +3197,6 @@ msgid "Remove Item" msgstr "Hapus item" #: editor/editor_run_native.cpp -msgid "Select device from the list" -msgstr "Pilih perangkat pada daftar" - -#: editor/editor_run_native.cpp msgid "" "No runnable export preset found for this platform.\n" "Please add a runnable preset in the export menu." @@ -2917,6 +3232,10 @@ msgstr "Apakah anda lupa dengan fungsi '_run' ?" msgid "Select Node(s) to Import" msgstr "Pilih node untuk diimpor" +#: editor/editor_sub_scene.cpp editor/project_manager.cpp +msgid "Browse" +msgstr "" + #: editor/editor_sub_scene.cpp msgid "Scene Path:" msgstr "Lokasi Scene:" @@ -3085,6 +3404,11 @@ msgid "SSL Handshake Error" msgstr "Kesalahan jabat tangan SSL" #: editor/export_template_manager.cpp +#, fuzzy +msgid "Uncompressing Android Build Sources" +msgstr "Membuka Aset Terkompresi" + +#: editor/export_template_manager.cpp msgid "Current Version:" msgstr "Versi sekarang:" @@ -3101,7 +3425,8 @@ msgid "Remove Template" msgstr "Hapus Templat" #: editor/export_template_manager.cpp -msgid "Select template file" +#, fuzzy +msgid "Select Template File" msgstr "Pilih berkas templat" #: editor/export_template_manager.cpp @@ -3164,7 +3489,8 @@ msgid "No name provided." msgstr "Nama masih kosong." #: editor/filesystem_dock.cpp -msgid "Provided name contains invalid characters" +#, fuzzy +msgid "Provided name contains invalid characters." msgstr "Nama yang dimasukkan tidak valid" #: editor/filesystem_dock.cpp @@ -3192,7 +3518,13 @@ msgid "Duplicating folder:" msgstr "Menggandakan folder:" #: editor/filesystem_dock.cpp -msgid "Open Scene(s)" +#, fuzzy +msgid "New Inherited Scene" +msgstr "Scene Turunan Baru..." + +#: editor/filesystem_dock.cpp +#, fuzzy +msgid "Open Scenes" msgstr "Buka Scene" #: editor/filesystem_dock.cpp @@ -3201,12 +3533,12 @@ msgstr "Instansi" #: editor/filesystem_dock.cpp #, fuzzy -msgid "Add to favorites" +msgid "Add to Favorites" msgstr "Favorit:" #: editor/filesystem_dock.cpp #, fuzzy -msgid "Remove from favorites" +msgid "Remove from Favorites" msgstr "Hapus dari Grup" #: editor/filesystem_dock.cpp @@ -3239,12 +3571,14 @@ msgstr "Scene Baru" msgid "New Resource..." msgstr "Simpan Resource Sebagai..." -#: editor/filesystem_dock.cpp editor/script_editor_debugger.cpp +#: editor/filesystem_dock.cpp editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_editor_debugger.cpp #, fuzzy msgid "Expand All" msgstr "Perluas semua" -#: editor/filesystem_dock.cpp editor/script_editor_debugger.cpp +#: editor/filesystem_dock.cpp editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_editor_debugger.cpp #, fuzzy msgid "Collapse All" msgstr "Ciutkan semua" @@ -3257,12 +3591,14 @@ msgid "Rename" msgstr "Ubah Nama" #: editor/filesystem_dock.cpp -msgid "Previous Directory" -msgstr "Direktori Sebelumnya" +#, fuzzy +msgid "Previous Folder/File" +msgstr "Tab sebelumnya" #: editor/filesystem_dock.cpp -msgid "Next Directory" -msgstr "Direktori Selanjutnya" +#, fuzzy +msgid "Next Folder/File" +msgstr "Folder Berikutnya" #: editor/filesystem_dock.cpp msgid "Re-Scan Filesystem" @@ -3270,7 +3606,7 @@ msgstr "Pindai Ulang Berkas Sistem" #: editor/filesystem_dock.cpp #, fuzzy -msgid "Toggle split mode" +msgid "Toggle Split Mode" msgstr "Beralih Mode" #: editor/filesystem_dock.cpp @@ -3303,7 +3639,7 @@ msgstr "Timpa" msgid "Create Script" msgstr "Buat Script" -#: editor/find_in_files.cpp +#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp #, fuzzy msgid "Find in Files" msgstr "%d file lagi" @@ -3323,6 +3659,12 @@ msgstr "Buat Folder" msgid "Filters:" msgstr "Filter:" +#: editor/find_in_files.cpp +msgid "" +"Include the files with the following extensions. Add or remove them in " +"ProjectSettings." +msgstr "" + #: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp msgid "Find..." @@ -3796,7 +4138,7 @@ msgstr "Nama Animasi Baru:" #: editor/plugins/animation_blend_space_2d_editor.cpp #, fuzzy -msgid "Triangle already exists" +msgid "Triangle already exists." msgstr "KESALAHAN: Nama animasi sudah ada!" #: editor/plugins/animation_blend_space_2d_editor.cpp @@ -3881,7 +4223,6 @@ msgid "Node Moved" msgstr "Nama Node:" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Unable to connect, port may be in use or connection may be invalid." msgstr "" "Tidak dapat terhubung, port mungkin sedang digunakan atau hubungan tidak sah." @@ -3962,7 +4303,8 @@ msgid "Edit Filtered Tracks:" msgstr "Sunting Filter" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -msgid "Enable filtering" +#, fuzzy +msgid "Enable Filtering" msgstr "Aktifkan penyaringan" #: editor/plugins/animation_player_editor_plugin.cpp @@ -4088,10 +4430,6 @@ msgid "Animation" msgstr "Animasi" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "New" -msgstr "Baru" - -#: editor/plugins/animation_player_editor_plugin.cpp #, fuzzy msgid "Edit Transitions..." msgstr "Transisi" @@ -4111,16 +4449,16 @@ msgid "Autoplay on Load" msgstr "Putar Otomatis saat Dimuat" #: editor/plugins/animation_player_editor_plugin.cpp -#, fuzzy -msgid "Onion Skinning" -msgstr "Onion Skinning" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Enable Onion Skinning" msgstr "Aktifkan Bayang-bayang" #: editor/plugins/animation_player_editor_plugin.cpp #, fuzzy +msgid "Onion Skinning Options" +msgstr "Onion Skinning" + +#: editor/plugins/animation_player_editor_plugin.cpp +#, fuzzy msgid "Directions" msgstr "Deskripsi:" @@ -4693,10 +5031,6 @@ msgid "Move CanvasItem" msgstr "Sunting CanvasItem" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Presets for the anchors and margins values of a Control node." -msgstr "Preset-preset untuk nilai jangkar dan pinggiran node Control." - -#: editor/plugins/canvas_item_editor_plugin.cpp msgid "" "Children of containers have their anchors and margins values overridden by " "their parent." @@ -4705,6 +5039,16 @@ msgstr "" "dengan milik orang-tua nya." #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Presets for the anchors and margins values of a Control node." +msgstr "Preset-preset untuk nilai jangkar dan pinggiran node Control." + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"When active, moving Control nodes changes their anchors instead of their " +"margins." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Anchors only" msgstr "Hanya jangkar-jangkar" @@ -4717,10 +5061,52 @@ msgid "Change Anchors" msgstr "Ubah Jangkar-jangkar" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Lock Selected" +msgstr "Semua pilihan" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Unlock Selected" +msgstr "Hapus yang Dipilih" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Group Selected" +msgstr "Hapus Pilihan" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Ungroup Selected" +msgstr "Hapus Pilihan" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Paste Pose" msgstr "Tempel Pose" #: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Create Custom Bone(s) from Node(s)" +msgstr "Buat Tulang Kustom(satu/lebih) dari Node(satu/lebih)" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Clear Bones" +msgstr "Mainkan Custom Scene" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Make IK Chain" +msgstr "Buat Rantai IK" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Clear IK Chain" +msgstr "Bersihkan Rantai IK" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "" "Warning: Children of a container get their position and size determined only " "by their parent." @@ -4800,7 +5186,8 @@ msgid "Snapping Options" msgstr "Opsi-opsi Snap" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to grid" +#, fuzzy +msgid "Snap to Grid" msgstr "Snap ke kotak-kotak" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4821,31 +5208,38 @@ msgid "Use Pixel Snap" msgstr "Gunakan Snap Piksel" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Smart snapping" +#, fuzzy +msgid "Smart Snapping" msgstr "Snap pintar" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to parent" +#, fuzzy +msgid "Snap to Parent" msgstr "Snap ke orang-tua" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node anchor" +#, fuzzy +msgid "Snap to Node Anchor" msgstr "Snap ke jangkar node" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node sides" +#, fuzzy +msgid "Snap to Node Sides" msgstr "Snap ke sisi-sisi node" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node center" +#, fuzzy +msgid "Snap to Node Center" msgstr "Snap ke tengah node" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to other nodes" +#, fuzzy +msgid "Snap to Other Nodes" msgstr "Snape ke node-node lain" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to guides" +#, fuzzy +msgid "Snap to Guides" msgstr "Snape ke garis-bantu" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4859,10 +5253,12 @@ msgid "Unlock the selected object (can be moved)." msgstr "Buka kunci objek terpilih (dapat di pindah)." #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Makes sure the object's children are not selectable." msgstr "Pastikan anak-anak objek tidak dapat diseleksi." #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Restores the object's children's ability to be selected." msgstr "Jadikan anak-anak object dapat di seleksi kembali." @@ -4876,14 +5272,6 @@ msgid "Show Bones" msgstr "Tampilkan Tulang-tulang" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Make IK Chain" -msgstr "Buat Rantai IK" - -#: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Clear IK Chain" -msgstr "Bersihkan Rantai IK" - -#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Make Custom Bone(s) from Node(s)" msgstr "Buat Tulang Kustom(satu/lebih) dari Node(satu/lebih)" @@ -4935,9 +5323,8 @@ msgid "Frame Selection" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy -msgid "Layout" -msgstr "Simpan Penampilan" +msgid "Preview Canvas Scale" +msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Translation mask for inserting keys." @@ -4990,6 +5377,11 @@ msgid "Divide grid step by 2" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Pan View" +msgstr "Tampilan Belakang." + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Add %s" msgstr "" @@ -5013,7 +5405,7 @@ msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp #, fuzzy -msgid "Change default type" +msgid "Change Default Type" msgstr "Ubah Tipe Nilai Array" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -5102,20 +5494,19 @@ msgid "Create Emission Points From Node" msgstr "" #: editor/plugins/curve_editor_plugin.cpp -msgid "Flat0" +msgid "Flat 0" msgstr "" #: editor/plugins/curve_editor_plugin.cpp -msgid "Flat1" +msgid "Flat 1" msgstr "" -#: editor/plugins/curve_editor_plugin.cpp -#, fuzzy -msgid "Ease in" -msgstr "Beri Skala Seleksi" +#: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp +msgid "Ease In" +msgstr "" -#: editor/plugins/curve_editor_plugin.cpp -msgid "Ease out" +#: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp +msgid "Ease Out" msgstr "" #: editor/plugins/curve_editor_plugin.cpp @@ -5136,26 +5527,28 @@ msgstr "" #: editor/plugins/curve_editor_plugin.cpp #, fuzzy -msgid "Add point" +msgid "Add Point" msgstr "Tambahkan Sinyal" #: editor/plugins/curve_editor_plugin.cpp #, fuzzy -msgid "Remove point" +msgid "Remove Point" msgstr "Hapus Sinyal" #: editor/plugins/curve_editor_plugin.cpp #, fuzzy -msgid "Left linear" +msgid "Left Linear" msgstr "Linier" #: editor/plugins/curve_editor_plugin.cpp -msgid "Right linear" -msgstr "" +#, fuzzy +msgid "Right Linear" +msgstr "Tampilan Kanan." #: editor/plugins/curve_editor_plugin.cpp -msgid "Load preset" -msgstr "" +#, fuzzy +msgid "Load Preset" +msgstr "Muat Galat" #: editor/plugins/curve_editor_plugin.cpp #, fuzzy @@ -5213,14 +5606,19 @@ msgid "This doesn't work on scene root!" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Trimesh Shape" +msgid "Create Trimesh Static Shape" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Shape" +msgid "Failed creating shapes!" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp +#, fuzzy +msgid "Create Convex Shape(s)" +msgstr "Buat Baru %s" + +#: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Navigation Mesh" msgstr "" @@ -5270,16 +5668,13 @@ msgid "Create Trimesh Static Body" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Static Body" -msgstr "" - -#: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Trimesh Collision Sibling" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Collision Sibling" -msgstr "" +#, fuzzy +msgid "Create Convex Collision Sibling(s)" +msgstr "Buat Bidang" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Outline Mesh..." @@ -5434,6 +5829,12 @@ msgid "Create Navigation Polygon" msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp +#: editor/plugins/particles_editor_plugin.cpp +#, fuzzy +msgid "Convert to CPUParticles" +msgstr "Sambungkan Ke Node:" + +#: editor/plugins/particles_2d_editor_plugin.cpp msgid "Generating Visibility Rect" msgstr "" @@ -5447,12 +5848,6 @@ msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp #: editor/plugins/particles_editor_plugin.cpp -#, fuzzy -msgid "Convert to CPUParticles" -msgstr "Sambungkan Ke Node:" - -#: editor/plugins/particles_2d_editor_plugin.cpp -#: editor/plugins/particles_editor_plugin.cpp msgid "Generation Time (sec):" msgstr "" @@ -5591,7 +5986,7 @@ msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp editor/plugins/theme_editor_plugin.cpp -#: editor/project_export.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_export.cpp msgid "Options" msgstr "" @@ -5647,7 +6042,7 @@ msgstr "" #: editor/plugins/physical_bone_plugin.cpp #, fuzzy -msgid "Move joint" +msgid "Move Joint" msgstr "Hapus Sinyal" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5894,7 +6289,6 @@ msgid "Open in Editor" msgstr "Buka dalam Penyunting" #: editor/plugins/resource_preloader_editor_plugin.cpp -#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Load Resource" msgstr "" @@ -5996,6 +6390,11 @@ msgid "%s Class Reference" msgstr "" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp +msgid "Find Next" +msgstr "Pencarian Selanjutnya" + +#: editor/plugins/script_editor_plugin.cpp msgid "Toggle alphabetical sorting of the method list." msgstr "" @@ -6082,10 +6481,6 @@ msgstr "Tutup Dokumentasi" msgid "Close All" msgstr "Tutup Semua" -#: editor/plugins/script_editor_plugin.cpp -msgid "Close Other Tabs" -msgstr "" - #: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp msgid "Run" msgstr "Jalankan" @@ -6095,11 +6490,6 @@ msgstr "Jalankan" msgid "Toggle Scripts Panel" msgstr "Beralih Favorit" -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/script_text_editor.cpp -msgid "Find Next" -msgstr "Pencarian Selanjutnya" - #: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp msgid "Step Over" msgstr "" @@ -6127,15 +6517,16 @@ msgid "Debug with External Editor" msgstr "Debug menggunakan penyunting eksternal" #: editor/plugins/script_editor_plugin.cpp -msgid "Open Godot online documentation" -msgstr "" +#, fuzzy +msgid "Open Godot online documentation." +msgstr "Buka baru-baru ini" #: editor/plugins/script_editor_plugin.cpp msgid "Request Docs" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Help improve the Godot documentation by giving feedback" +msgid "Help improve the Godot documentation by giving feedback." msgstr "" #: editor/plugins/script_editor_plugin.cpp @@ -6163,10 +6554,12 @@ msgid "" msgstr "" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp msgid "Reload" msgstr "" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp msgid "Resave" msgstr "" @@ -6181,6 +6574,31 @@ msgstr "Mencari Bantuan" #: editor/plugins/script_text_editor.cpp #, fuzzy +msgid "Connections to method:" +msgstr "Sambungkan Ke Node:" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Source" +msgstr "Resource" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Signal" +msgstr "Sinyal-sinyal" + +#: editor/plugins/script_text_editor.cpp +msgid "Target" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "" +"Missing connected method '%s' for signal '%s' from node '%s' to node '%s'." +msgstr "Memutuskan '%s' dari '%s'" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy msgid "Line" msgstr "Baris:" @@ -6193,10 +6611,6 @@ msgstr "" msgid "Go to Function" msgstr "Tambahkan Fungsi" -#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp -msgid "Standard" -msgstr "" - #: editor/plugins/script_text_editor.cpp msgid "Only resources from filesystem can be dropped." msgstr "" @@ -6229,6 +6643,11 @@ msgstr "" msgid "Syntax Highlighter" msgstr "" +#: editor/plugins/script_text_editor.cpp +#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp +msgid "Bookmarks" +msgstr "" + #: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" @@ -6258,6 +6677,26 @@ msgstr "" #: editor/plugins/script_text_editor.cpp #, fuzzy +msgid "Toggle Bookmark" +msgstr "Mode Layar Penuh" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Go to Next Bookmark" +msgstr "Lanjut ke Langkah Berikutnya" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Go to Previous Bookmark" +msgstr "Ke dokumen yang disunting sebelumnya." + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Remove All Bookmarks" +msgstr "Hapus Pilihan" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy msgid "Fold/Unfold Line" msgstr "Pergi ke Baris" @@ -6338,6 +6777,12 @@ msgid "Contextual Help" msgstr "" #: editor/plugins/shader_editor_plugin.cpp +msgid "" +"This shader has been modified on on disk.\n" +"What action should be taken?" +msgstr "" + +#: editor/plugins/shader_editor_plugin.cpp msgid "Shader" msgstr "" @@ -6693,7 +7138,7 @@ msgid "Right View" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Switch Perspective/Orthogonal view" +msgid "Switch Perspective/Orthogonal View" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp @@ -6735,11 +7180,12 @@ msgid "Toggle Freelook" msgstr "Mode Layar Penuh" #: editor/plugins/spatial_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Transform" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Snap object to floor" +msgid "Snap Object to Floor" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp @@ -6884,30 +7330,22 @@ msgid "Invalid geometry, can't replace by mesh." msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Invalid geometry, can't create polygon." -msgstr "" - -#: editor/plugins/sprite_editor_plugin.cpp -msgid "Invalid geometry, can't create collision polygon." -msgstr "" - -#: editor/plugins/sprite_editor_plugin.cpp -msgid "Invalid geometry, can't create light occluder." -msgstr "" +#, fuzzy +msgid "Convert to Mesh2D" +msgstr "Sambungkan Ke Node:" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Sprite" +msgid "Invalid geometry, can't create polygon." msgstr "" #: editor/plugins/sprite_editor_plugin.cpp #, fuzzy -msgid "Convert to Mesh2D" +msgid "Convert to Polygon2D" msgstr "Sambungkan Ke Node:" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy -msgid "Convert to Polygon2D" -msgstr "Sambungkan Ke Node:" +msgid "Invalid geometry, can't create collision polygon." +msgstr "" #: editor/plugins/sprite_editor_plugin.cpp #, fuzzy @@ -6915,10 +7353,18 @@ msgid "Create CollisionPolygon2D Sibling" msgstr "Buat Bidang" #: editor/plugins/sprite_editor_plugin.cpp +msgid "Invalid geometry, can't create light occluder." +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp msgid "Create LightOccluder2D Sibling" msgstr "" #: editor/plugins/sprite_editor_plugin.cpp +msgid "Sprite" +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp msgid "Simplification: " msgstr "" @@ -6937,7 +7383,12 @@ msgid "Settings:" msgstr "Mengatur..." #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "ERROR: Couldn't load frame resource!" +#, fuzzy +msgid "No Frames Selected" +msgstr "Tidak ada berkas dipilih!" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Add %d Frame(s)" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp @@ -6945,6 +7396,10 @@ msgid "Add Frame" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "ERROR: Couldn't load frame resource!" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Resource clipboard is empty or not a texture!" msgstr "" @@ -6988,6 +7443,15 @@ msgid "Animation Frames:" msgstr "Nama Animasi:" #: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Add a Texture from File" +msgstr "Tambahkan Node (Node-node) dari Tree" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Add Frames from a Sprite Sheet" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Insert Empty (Before)" msgstr "" @@ -7005,6 +7469,29 @@ msgid "Move (After)" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Select Frames" +msgstr "Mode Seleksi" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Horizontal:" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Vertical:" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Select/Clear All Frames" +msgstr "Pilih Semua" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Create Frames from Sprite Sheet" +msgstr "Buat dari Tema Editor Saat Ini" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "SpriteFrames" msgstr "" @@ -7071,13 +7558,14 @@ msgstr "" msgid "Remove All Items" msgstr "Hapus Pilihan" -#: editor/plugins/theme_editor_plugin.cpp +#: editor/plugins/theme_editor_plugin.cpp editor/project_manager.cpp #, fuzzy msgid "Remove All" msgstr "Hapus" #: editor/plugins/theme_editor_plugin.cpp -msgid "Edit theme..." +#, fuzzy +msgid "Edit Theme" msgstr "Sunting tema..." #: editor/plugins/theme_editor_plugin.cpp @@ -7107,18 +7595,25 @@ msgid "Create From Current Editor Theme" msgstr "Buat dari Tema Editor Saat Ini" #: editor/plugins/theme_editor_plugin.cpp -msgid "CheckBox Radio1" -msgstr "" +#, fuzzy +msgid "Toggle Button" +msgstr "Kondisikan Putar Otomatis" #: editor/plugins/theme_editor_plugin.cpp -msgid "CheckBox Radio2" -msgstr "" +#, fuzzy +msgid "Disabled Button" +msgstr "Dinonaktifkan" #: editor/plugins/theme_editor_plugin.cpp msgid "Item" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Disabled Item" +msgstr "Dinonaktifkan" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Check Item" msgstr "" @@ -7135,6 +7630,22 @@ msgid "Checked Radio Item" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +msgid "Named Sep." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Submenu" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Item 1" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Item 2" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Has" msgstr "" @@ -7143,8 +7654,9 @@ msgid "Many" msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "Has,Many,Options" -msgstr "" +#, fuzzy +msgid "Disabled LineEdit" +msgstr "Dinonaktifkan" #: editor/plugins/theme_editor_plugin.cpp msgid "Tab 1" @@ -7159,6 +7671,19 @@ msgid "Tab 3" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Editable Item" +msgstr "Edit Variabel:" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Subtree" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Has,Many,Options" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Data Type:" msgstr "" @@ -7193,6 +7718,7 @@ msgid "Fix Invalid Tiles" msgstr "Nama tidak sah." #: editor/plugins/tile_map_editor_plugin.cpp +#: modules/gridmap/grid_map_editor_plugin.cpp #, fuzzy msgid "Cut Selection" msgstr "Beri Skala Seleksi" @@ -7236,37 +7762,49 @@ msgid "Mirror Y" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Paint Tile" +msgid "Disable Autotile" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Pick Tile" -msgstr "" +#, fuzzy +msgid "Enable Priority" +msgstr "Sunting Filter" #: editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy -msgid "Copy Selection" -msgstr "Hapus Pilihan" +msgid "Paint Tile" +msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Rotate left" +msgid "" +"Shift+RMB: Line Draw\n" +"Shift+Ctrl+RMB: Rectangle Paint" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Rotate right" +msgid "Pick Tile" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Flip horizontally" +#, fuzzy +msgid "Rotate Left" +msgstr "Mode Putar" + +#: editor/plugins/tile_map_editor_plugin.cpp +#, fuzzy +msgid "Rotate Right" +msgstr "Mode Putar" + +#: editor/plugins/tile_map_editor_plugin.cpp +msgid "Flip Horizontally" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Flip vertically" +msgid "Flip Vertically" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp #, fuzzy -msgid "Clear transform" +msgid "Clear Transform" msgstr "Ubah Transformasi Animasi" #: editor/plugins/tile_set_editor_plugin.cpp @@ -7305,6 +7843,46 @@ msgid "Select the previous shape, subtile, or Tile." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Region Mode" +msgstr "Mode Putar" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Collision Mode" +msgstr "Mode Interpolasi" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Occlusion Mode" +msgstr "Sunting Bidang" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Navigation Mode" +msgstr "Node Animasi" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Bitmask Mode" +msgstr "Mode Putar" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Priority Mode" +msgstr "Ekspor Projek" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Icon Mode" +msgstr "Mode Geser Pandangan" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Z Index Mode" +msgstr "Mode Geser Pandangan" + +#: editor/plugins/tile_set_editor_plugin.cpp msgid "Copy bitmask." msgstr "" @@ -7394,6 +7972,7 @@ msgstr "Hapus Titik" msgid "" "LMB: Set bit on.\n" "RMB: Set bit off.\n" +"Shift+LMB: Set wildcard bit.\n" "Click on another Tile to edit it." msgstr "Simpan sumber yang sedang diatur." @@ -7519,6 +8098,79 @@ msgid "TileSet" msgstr "TileSet..." #: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Add input +" +msgstr "Tambah Masukan" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Add output +" +msgstr "Tambah Masukan" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar" +msgstr "Skala:" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector" +msgstr "Inspektur" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Add input port" +msgstr "Tambah Masukan" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add output port" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change input port type" +msgstr "Ubah Tipe Nilai Array" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change output port type" +msgstr "Ubah Tipe Nilai Array" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change input port name" +msgstr "Ubah Nilai Array" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change output port name" +msgstr "Ubah Nilai Array" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Remove input port" +msgstr "Hapus Sinyal" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Remove output port" +msgstr "Hapus Sinyal" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Set expression" +msgstr "Ubah Pernyataan" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Resize VisualShader node" +msgstr "Hapus Variabel" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Set Uniform Name" msgstr "" @@ -7560,6 +8212,852 @@ msgid "Light" msgstr "Kanan" #: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Create Shader Node" +msgstr "Buat Folder" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Color function." +msgstr "Tambahkan Fungsi" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Color operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Grayscale function." +msgstr "Buat Fungsi" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts HSV vector to RGB equivalent." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts RGB vector to HSV equivalent." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Sepia function." +msgstr "Namai kembali Fungsi" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Burn operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Darken operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Difference operator." +msgstr "Hanya yang berbeda" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Dodge operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "HardLight operator" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Lighten operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Overlay operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Screen operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "SoftLight operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Color constant." +msgstr "Konstan" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Color uniform." +msgstr "Ubah Transformasi Animasi" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns an associated vector if the provided scalars are equal, greater or " +"less." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns an associated vector if the provided boolean value is true or false." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'camera' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'inv_camera' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'inv_projection' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'normal' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'projection' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'time' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'viewport_size' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'world' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'texture_pixel_size' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Input parameter." +msgstr "Snap ke orang-tua" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'binormal' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'fragcoord' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_coord' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_uv' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'side' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'tangent' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv2' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'vertex' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'view' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'albedo' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'attenuation' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'diffuse' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_color' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'roughness' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'specular' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'transmission' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'modelview' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_size' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'tangent' input parameter for vertex and fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_pass' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_coord' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_pixel_size' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_uv' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_alpha' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_height' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_uv' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_vec' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'normal' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'shadow_color' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'extra' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'projection' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'vertex' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'world' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'active' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'custom' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'custom_alpha' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'delta' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'emission_transform' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'index' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'lifetime' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'restart' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'time' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'transform' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'velocity' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar function." +msgstr "Seleksi Skala" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Scalar operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "E constant (2.718282). Represents the base of the natural logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Epsilon constant (0.00001). Smallest possible scalar number." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Phi constant (1.618034). Golden ratio." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi/4 constant (0.785398) or 45 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi/2 constant (1.570796) or 90 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi constant (3.141593) or 180 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Tau constant (6.283185) or 360 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Sqrt2 constant (1.414214). Square root of 2." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the absolute value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-tangent of the parameters." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Finds the nearest integer that is greater than or equal to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Constrains a value to lie between two further values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts a quantity in radians to degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-e Exponential." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-2 Exponential." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Finds the nearest integer less than or equal to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Computes the fractional part of the argument." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the inverse of the square root of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Natural logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-2 logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the greater of two values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the lesser of two values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Linear interpolation between two scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the opposite value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 - scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns the value of the first parameter raised to the power of the second." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts a quantity in degrees to radians." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 / scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the nearest integer to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the nearest even integer to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Clamps the value between 0.0 and 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Extracts the sign of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the square root of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( scalar(edge0), scalar(edge1), scalar(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if x is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( scalar(edge), scalar(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the truncated value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Adds scalar to scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Divides scalar by scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies scalar by scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the remainder of the two scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Subtracts scalar from scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Scalar constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar uniform." +msgstr "Ubah Transformasi Animasi" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Perform the cubic texture lookup." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Perform the texture lookup." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Cubic texture uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "2D texture uniform." +msgstr "Format Tekstur" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Transform function." +msgstr "Buat Bidang" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) Calculate the outer product of a pair of vectors.\n" +"\n" +"OuterProduct treats the first parameter 'c' as a column vector (matrix with " +"one column) and the second parameter 'r' as a row vector (matrix with one " +"row) and does a linear algebraic matrix multiply 'c * r', yielding a matrix " +"whose number of rows is the number of components in 'c' and whose number of " +"columns is the number of components in 'r'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Composes transform from four vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Decomposes transform to four vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the determinant of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the inverse of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the transpose of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies transform by transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies vector by transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Transform constant." +msgstr "Buat Bidang" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Transform uniform." +msgstr "Buat Bidang" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector function." +msgstr "Hapus Fungsi" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Composes vector from three scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Decomposes vector to three scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the cross product of two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the distance between two points." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the dot product of two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns a vector that points in the same direction as a reference vector. " +"The function has three vector parameters : N, the vector to orient, I, the " +"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 "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the length of a vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Linear interpolation between two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the normalize product of vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 - vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 / vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns a vector that points in the direction of reflection ( a : incident " +"vector, b : normal vector )." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns a vector that points in the direction of refraction." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( vector(edge0), vector(edge1), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if 'x' is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( scalar(edge0), scalar(edge1), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if 'x' is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( vector(edge), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( scalar(edge), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Adds vector to vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Divides vector by vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies vector by vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the remainder of the two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Subtracts vector from vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Custom Godot Shader Language expression, with custom amount of input and " +"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 "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns falloff based on the dot product of surface normal and view " +"direction of camera (pass associated inputs to it)." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) (Fragment/Light mode only) Scalar derivative function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) (Fragment/Light mode only) Vector derivative function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Derivative in 'x' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Derivative in 'x' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Derivative in 'y' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Derivative in 'y' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Sum of absolute derivative " +"in 'x' and 'y'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Sum of absolute derivative " +"in 'x' and 'y'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "VisualShader" msgstr "" @@ -7763,6 +9261,11 @@ msgid "Directory already contains a Godot project." msgstr "" #: editor/project_manager.cpp +#, fuzzy +msgid "New Game Project" +msgstr "Projek Baru Permainan" + +#: editor/project_manager.cpp msgid "Imported Project" msgstr "" @@ -7812,11 +9315,6 @@ msgid "Rename Project" msgstr "Projek Baru Permainan" #: editor/project_manager.cpp -#, fuzzy -msgid "New Game Project" -msgstr "Projek Baru Permainan" - -#: editor/project_manager.cpp msgid "Import Existing Project" msgstr "Impor Projek yang Sudah Ada" @@ -7845,11 +9343,6 @@ msgid "Project Name:" msgstr "Nama Projek:" #: editor/project_manager.cpp -#, fuzzy -msgid "Create folder" -msgstr "Buat Folder" - -#: editor/project_manager.cpp msgid "Project Path:" msgstr "Lokasi Projek:" @@ -7859,10 +9352,6 @@ msgid "Project Installation Path:" msgstr "Lokasi Projek:" #: editor/project_manager.cpp -msgid "Browse" -msgstr "" - -#: editor/project_manager.cpp msgid "Renderer:" msgstr "" @@ -7917,8 +9406,8 @@ msgid "" "\n" "If you proceed with opening it, it will be converted to Godot's current " "configuration file format.\n" -"Warning: You will not be able to open the project with previous versions of " -"the engine anymore." +"Warning: You won't be able to open the project with previous versions of the " +"engine anymore." msgstr "" #: editor/project_manager.cpp @@ -7929,8 +9418,8 @@ msgid "" "%s\n" "\n" "Do you want to convert it?\n" -"Warning: You will not be able to open the project with previous versions of " -"the engine anymore." +"Warning: You won't be able to open the project with previous versions of the " +"engine anymore." msgstr "" #: editor/project_manager.cpp @@ -7943,7 +9432,7 @@ msgstr "" #, fuzzy msgid "" "Can't run project: no main scene defined.\n" -"Please edit the project and set the main scene in \"Project Settings\" under " +"Please edit the project and set the main scene in the Project Settings under " "the \"Application\" category." msgstr "" "Tidak ada scene utama yang pernah didefinisikan, pilih satu?\n" @@ -7958,23 +9447,37 @@ msgstr "" #: editor/project_manager.cpp #, fuzzy -msgid "Are you sure to run more than one project?" +msgid "Are you sure to run %d projects at once?" msgstr "Apakah Anda yakin menjalankan lebih dari satu projek?" #: editor/project_manager.cpp -msgid "Remove project from the list? (Folder contents will not be modified)" +msgid "" +"Remove %d projects from the list?\n" +"The project folders' contents won't be modified." +msgstr "" + +#: editor/project_manager.cpp +msgid "" +"Remove this project from the list?\n" +"The project folder's contents won't be modified." +msgstr "" + +#: editor/project_manager.cpp +msgid "" +"Remove all missing projects from the list? (Folders contents will not be " +"modified)" msgstr "" #: editor/project_manager.cpp msgid "" "Language changed.\n" -"The UI will update next time the editor or project manager starts." +"The interface will update after restarting the editor or project manager." msgstr "" #: editor/project_manager.cpp msgid "" -"You are about the scan %s folders for existing Godot projects. Do you " -"confirm?" +"Are you sure to scan %s folders for existing Godot projects?\n" +"This could take a while." msgstr "" #: editor/project_manager.cpp @@ -7999,6 +9502,11 @@ msgstr "Projek Baru" #: editor/project_manager.cpp #, fuzzy +msgid "Remove Missing" +msgstr "Hapus Sinyal" + +#: editor/project_manager.cpp +#, fuzzy msgid "Templates" msgstr "Hapus Pilihan" @@ -8017,8 +9525,8 @@ msgstr "Menyambungkan..." #: editor/project_manager.cpp msgid "" -"You don't currently have any projects.\n" -"Would you like to explore the official example projects in the Asset Library?" +"You currently don't have any projects.\n" +"Would you like to explore official example projects in the Asset Library?" msgstr "" #: editor/project_settings_editor.cpp @@ -8044,8 +9552,9 @@ msgid "" msgstr "" #: editor/project_settings_editor.cpp -msgid "Action '%s' already exists!" -msgstr "" +#, fuzzy +msgid "An action with the name '%s' already exists." +msgstr "KESALAHAN: Nama animasi sudah ada!" #: editor/project_settings_editor.cpp msgid "Rename Input Action Event" @@ -8209,10 +9718,6 @@ msgid "" msgstr "" #: editor/project_settings_editor.cpp -msgid "Already existing" -msgstr "" - -#: editor/project_settings_editor.cpp msgid "Add Input Action" msgstr "" @@ -8278,7 +9783,7 @@ msgid "Override For..." msgstr "" #: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp -msgid "Editor must be restarted for changes to take effect" +msgid "The editor must be restarted for changes to take effect." msgstr "" #: editor/project_settings_editor.cpp @@ -8339,12 +9844,14 @@ msgid "Locales Filter" msgstr "" #: editor/project_settings_editor.cpp -msgid "Show all locales" -msgstr "" +#, fuzzy +msgid "Show All Locales" +msgstr "Tampilkan Tulang-tulang" #: editor/project_settings_editor.cpp -msgid "Show only selected locales" -msgstr "" +#, fuzzy +msgid "Show Selected Locales Only" +msgstr "Hanya yang Dipilih" #: editor/project_settings_editor.cpp #, fuzzy @@ -8360,14 +9867,6 @@ msgid "AutoLoad" msgstr "" #: editor/property_editor.cpp -msgid "Ease In" -msgstr "" - -#: editor/property_editor.cpp -msgid "Ease Out" -msgstr "" - -#: editor/property_editor.cpp msgid "Zero" msgstr "" @@ -8447,8 +9946,9 @@ msgid "Suffix" msgstr "" #: editor/rename_dialog.cpp -msgid "Advanced options" -msgstr "" +#, fuzzy +msgid "Advanced Options" +msgstr "Opsi-opsi Snap" #: editor/rename_dialog.cpp msgid "Substitute" @@ -8714,8 +10214,8 @@ msgstr "" #: editor/scene_tree_dock.cpp #, fuzzy -msgid "Custom Node" -msgstr "Salin Resource" +msgid "Other Node" +msgstr "Metode Publik:" #: editor/scene_tree_dock.cpp msgid "Can't operate on nodes from a foreign scene!" @@ -8759,7 +10259,7 @@ msgstr "" #: editor/scene_tree_dock.cpp #, fuzzy -msgid "Open documentation" +msgid "Open Documentation" msgstr "Buka baru-baru ini" #: editor/scene_tree_dock.cpp @@ -8788,7 +10288,7 @@ msgstr "" msgid "Save Branch as Scene" msgstr "" -#: editor/scene_tree_dock.cpp +#: editor/scene_tree_dock.cpp editor/script_editor_debugger.cpp #, fuzzy msgid "Copy Node Path" msgstr "Salin Resource" @@ -8834,6 +10334,21 @@ msgid "Toggle Visible" msgstr "Beralih File Tersembunyi" #: editor/scene_tree_editor.cpp +#, fuzzy +msgid "Unlock Node" +msgstr "Metode Publik:" + +#: editor/scene_tree_editor.cpp +#, fuzzy +msgid "Button Group" +msgstr "Tambahkan ke Grup" + +#: editor/scene_tree_editor.cpp +#, fuzzy +msgid "(Connecting From)" +msgstr "Gangguan Koneksi" + +#: editor/scene_tree_editor.cpp msgid "Node configuration warning:" msgstr "" @@ -8855,9 +10370,9 @@ msgid "" "Click to show groups dock." msgstr "" -#: editor/scene_tree_editor.cpp editor/script_create_dialog.cpp +#: editor/scene_tree_editor.cpp #, fuzzy -msgid "Open Script" +msgid "Open Script:" msgstr "Buka Cepat Script..." #: editor/scene_tree_editor.cpp @@ -8904,95 +10419,105 @@ msgstr "" #: editor/script_create_dialog.cpp #, fuzzy -msgid "Error loading template '%s'" -msgstr "Error memuat font." +msgid "Path is empty." +msgstr "Papan klip kosong" #: editor/script_create_dialog.cpp #, fuzzy -msgid "Error - Could not create script in filesystem." -msgstr "Tidak dapat membuat folder." +msgid "Filename is empty." +msgstr "Papan klip kosong" #: editor/script_create_dialog.cpp #, fuzzy -msgid "Error loading script from %s" -msgstr "Error memuat font." - -#: editor/script_create_dialog.cpp -msgid "N/A" -msgstr "" +msgid "Path is not local." +msgstr "Path tidak menunjukkan Node!" #: editor/script_create_dialog.cpp #, fuzzy -msgid "Open Script/Choose Location" -msgstr "Buka Penyunting Skrip" +msgid "Invalid base path." +msgstr "Path Tidak Sah." #: editor/script_create_dialog.cpp -msgid "Path is empty" -msgstr "" +#, fuzzy +msgid "A directory with the same name exists." +msgstr "Sudah ada nama berkas atau folder seperti itu." #: editor/script_create_dialog.cpp -msgid "Filename is empty" -msgstr "" +#, fuzzy +msgid "Invalid extension." +msgstr "Harus menggunakan ekstensi yang sah." #: editor/script_create_dialog.cpp -msgid "Path is not local" +msgid "Wrong extension chosen." msgstr "" #: editor/script_create_dialog.cpp -msgid "Invalid base path" -msgstr "" +#, fuzzy +msgid "Error loading template '%s'" +msgstr "Error memuat font." #: editor/script_create_dialog.cpp -msgid "Directory of the same name exists" -msgstr "" +#, fuzzy +msgid "Error - Could not create script in filesystem." +msgstr "Tidak dapat membuat folder." #: editor/script_create_dialog.cpp #, fuzzy -msgid "File exists, will be reused" -msgstr "File telah ada, Overwrite?" +msgid "Error loading script from %s" +msgstr "Error memuat font." #: editor/script_create_dialog.cpp -msgid "Invalid extension" +msgid "N/A" msgstr "" #: editor/script_create_dialog.cpp -msgid "Wrong extension chosen" -msgstr "" +#, fuzzy +msgid "Open Script / Choose Location" +msgstr "Buka Penyunting Skrip" #: editor/script_create_dialog.cpp #, fuzzy -msgid "Invalid Path" -msgstr "Path Tidak Sah." +msgid "Open Script" +msgstr "Buka Cepat Script..." #: editor/script_create_dialog.cpp -msgid "Invalid class name" -msgstr "" +#, fuzzy +msgid "File exists, it will be reused." +msgstr "File telah ada, Overwrite?" + +#: editor/script_create_dialog.cpp +#, fuzzy +msgid "Invalid class name." +msgstr "Nama tidak sah." #: editor/script_create_dialog.cpp #, fuzzy -msgid "Invalid inherited parent name or path" +msgid "Invalid inherited parent name or path." msgstr "Nama properti index tidak sah." #: editor/script_create_dialog.cpp -msgid "Script valid" -msgstr "" +#, fuzzy +msgid "Script is valid." +msgstr "Pohon animasi valid." #: editor/script_create_dialog.cpp msgid "Allowed: a-z, A-Z, 0-9 and _" msgstr "" #: editor/script_create_dialog.cpp -msgid "Built-in script (into scene file)" -msgstr "" +#, fuzzy +msgid "Built-in script (into scene file)." +msgstr "Operasi dengan file scene." #: editor/script_create_dialog.cpp #, fuzzy -msgid "Create new script file" +msgid "Will create a new script file." msgstr "Buat Subskribsi" #: editor/script_create_dialog.cpp -msgid "Load existing script file" -msgstr "" +#, fuzzy +msgid "Will load an existing script file." +msgstr "Muat Layout Bus yang ada." #: editor/script_create_dialog.cpp msgid "Language" @@ -9129,6 +10654,10 @@ msgstr "" msgid "Set From Tree" msgstr "Menyetel Dari Keturunan" +#: editor/script_editor_debugger.cpp +msgid "Export measures as CSV" +msgstr "" + #: editor/settings_config_dialog.cpp #, fuzzy msgid "Erase Shortcut" @@ -9270,6 +10799,15 @@ msgid "GDNativeLibrary" msgstr "Ekspor Pustaka" #: 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" + +#: modules/gdnative/gdnative_library_singleton_editor.cpp #, fuzzy msgid "Library" msgstr "Ekspor Pustaka" @@ -9362,8 +10900,8 @@ msgstr "Hapus yang Dipilih" #: modules/gridmap/grid_map_editor_plugin.cpp #, fuzzy -msgid "GridMap Duplicate Selection" -msgstr "Duplikat Pilihan" +msgid "GridMap Paste Selection" +msgstr "Hapus yang Dipilih" #: modules/gridmap/grid_map_editor_plugin.cpp msgid "GridMap Paint" @@ -9432,19 +10970,6 @@ msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp #, fuzzy -msgid "Create Area" -msgstr "Buat Baru" - -#: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Create Exterior Connector" -msgstr "" - -#: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Erase Area" -msgstr "" - -#: modules/gridmap/grid_map_editor_plugin.cpp -#, fuzzy msgid "Clear Selection" msgstr "Beri Skala Seleksi" @@ -9829,18 +11354,11 @@ msgid "Available Nodes:" msgstr "Node-node yang Tersedia:" #: modules/visual_script/visual_script_editor.cpp -msgid "Select or create a function to edit graph" +#, fuzzy +msgid "Select or create a function to edit its graph." msgstr "Pilih atau ciptakan sebuah fungsi untuk mengedit grafik" #: modules/visual_script/visual_script_editor.cpp -msgid "Edit Signal Arguments:" -msgstr "Edit Argumen-argumen Sinyal:" - -#: modules/visual_script/visual_script_editor.cpp -msgid "Edit Variable:" -msgstr "Edit Variabel:" - -#: modules/visual_script/visual_script_editor.cpp msgid "Delete Selected" msgstr "Hapus yang Dipilih" @@ -9975,6 +11493,19 @@ msgid "Debug keystore not configured in the Editor Settings nor in the preset." msgstr "" #: platform/android/export/export.cpp +msgid "Custom build requires a valid Android SDK path in Editor Settings." +msgstr "" + +#: platform/android/export/export.cpp +msgid "Invalid Android SDK path for custom build in Editor Settings." +msgstr "" + +#: platform/android/export/export.cpp +msgid "" +"Android project is not installed for compiling. Install from Editor menu." +msgstr "" + +#: platform/android/export/export.cpp msgid "Invalid public key for APK expansion." msgstr "" @@ -9983,6 +11514,34 @@ msgstr "" msgid "Invalid package name:" msgstr "Nama tidak sah." +#: platform/android/export/export.cpp +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 "" +"Android build version mismatch:\n" +" Template installed: %s\n" +" Godot Version: %s\n" +"Please reinstall Android build template from 'Project' menu." +msgstr "" + +#: platform/android/export/export.cpp +msgid "Building Android Project (gradle)" +msgstr "" + +#: 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 "" + +#: platform/android/export/export.cpp +msgid "No build apk generated at: " +msgstr "" + #: platform/iphone/export/export.cpp msgid "Identifier is missing." msgstr "" @@ -10278,27 +11837,27 @@ msgid "ARVRCamera must have an ARVROrigin node as its parent" msgstr "" #: scene/3d/arvr_nodes.cpp -msgid "ARVRController must have an ARVROrigin node as its parent" +msgid "ARVRController must have an ARVROrigin node as its parent." msgstr "" #: scene/3d/arvr_nodes.cpp msgid "" -"The controller id must not be 0 or this controller will not be bound to an " -"actual controller" +"The controller ID must not be 0 or this controller won't be bound to an " +"actual controller." msgstr "" #: scene/3d/arvr_nodes.cpp -msgid "ARVRAnchor must have an ARVROrigin node as its parent" +msgid "ARVRAnchor must have an ARVROrigin node as its parent." msgstr "" #: scene/3d/arvr_nodes.cpp msgid "" -"The anchor id must not be 0 or this anchor will not be bound to an actual " -"anchor" +"The anchor ID must not be 0 or this anchor won't be bound to an actual " +"anchor." msgstr "" #: scene/3d/arvr_nodes.cpp -msgid "ARVROrigin requires an ARVRCamera child node" +msgid "ARVROrigin requires an ARVRCamera child node." msgstr "" #: scene/3d/baked_lightmap.cpp @@ -10378,8 +11937,8 @@ msgstr "" #: scene/3d/cpu_particles.cpp msgid "" -"CPUParticles animation requires the usage of a SpatialMaterial with " -"\"Billboard Particles\" enabled." +"CPUParticles animation requires the usage of a SpatialMaterial whose " +"Billboard Mode is set to \"Particle Billboard\"." msgstr "" #: scene/3d/gi_probe.cpp @@ -10420,8 +11979,8 @@ msgstr "" #: scene/3d/particles.cpp msgid "" -"Particles animation requires the usage of a SpatialMaterial with \"Billboard " -"Particles\" enabled." +"Particles animation requires the usage of a SpatialMaterial whose Billboard " +"Mode is set to \"Particle Billboard\"." msgstr "" #: scene/3d/path.cpp @@ -10452,7 +12011,7 @@ msgstr "" "bekerja." #: scene/3d/soft_body.cpp -msgid "This body will be ignored until you set a mesh" +msgid "This body will be ignored until you set a mesh." msgstr "" #: scene/3d/soft_body.cpp @@ -10558,7 +12117,7 @@ msgstr "Tambahkan warna yang sekarang sebagai preset" msgid "" "Container by itself serves no purpose unless a script configures it's " "children placement behavior.\n" -"If you dont't intend to add a script, then please use a plain 'Control' node " +"If you don't intend to add a script, then please use a plain 'Control' node " "instead." msgstr "" @@ -10570,11 +12129,6 @@ msgstr "Peringatan!" msgid "Please Confirm..." msgstr "Mohon konfirmasi..." -#: scene/gui/file_dialog.cpp -#, fuzzy -msgid "Go to parent folder." -msgstr "Pergi ke direktori induk" - #: scene/gui/popup.cpp msgid "" "Popups will hide by default unless you call popup() or any of the popup*() " @@ -10660,6 +12214,64 @@ msgstr "" msgid "Varyings can only be assigned in vertex function." msgstr "" +#: servers/visual/shader_language.cpp +msgid "Constants cannot be modified." +msgstr "" + +#~ msgid "Path to Node:" +#~ msgstr "Path ke Node:" + +#~ msgid "Delete selected files?" +#~ msgstr "Hapus file yang dipilih?" + +#~ msgid "There is no 'res://default_bus_layout.tres' file." +#~ msgstr "Tidak ada 'res://default_bus_layout.tres' berkas." + +#~ 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" + +#~ msgid "Previous Directory" +#~ msgstr "Direktori Sebelumnya" + +#~ msgid "Next Directory" +#~ msgstr "Direktori Selanjutnya" + +#, fuzzy +#~ msgid "Ease in" +#~ msgstr "Beri Skala Seleksi" + +#, fuzzy +#~ msgid "Create folder" +#~ msgstr "Buat Folder" + +#, fuzzy +#~ msgid "Custom Node" +#~ msgstr "Salin Resource" + +#, fuzzy +#~ msgid "Invalid Path" +#~ msgstr "Path Tidak Sah." + +#, fuzzy +#~ msgid "GridMap Duplicate Selection" +#~ msgstr "Duplikat Pilihan" + +#, fuzzy +#~ msgid "Create Area" +#~ msgstr "Buat Baru" + +#~ msgid "Edit Signal Arguments:" +#~ msgstr "Edit Argumen-argumen Sinyal:" + +#~ msgid "Edit Variable:" +#~ msgstr "Edit Variabel:" + #~ msgid "Instance the selected scene(s) as child of the selected node." #~ msgstr "Instance scene terpilih sebagai anak node saat ini." @@ -10743,9 +12355,6 @@ msgstr "" #~ msgid "Class List:" #~ msgstr "Daftar Class:" -#~ msgid "Search Classes" -#~ msgstr "Cari Kelas" - #~ msgid "Public Methods" #~ msgstr "Metode Publik" @@ -10795,9 +12404,6 @@ msgstr "" #~ msgid "Convert To Lowercase" #~ msgstr "Sambungkan Ke Node:" -#~ msgid "Disabled" -#~ msgstr "Dinonaktifkan" - #~ msgid "Move Anim Track Up" #~ msgstr "Pindah Trek Anim ke Atas" @@ -10951,10 +12557,6 @@ msgstr "" #~ msgstr "Panggil" #, fuzzy -#~ msgid "Edit Variable" -#~ msgstr "Edit Variabel:" - -#, fuzzy #~ msgid "Edit Signal" #~ msgstr "Mengedit Sinyal:" @@ -11003,12 +12605,6 @@ msgstr "" #~ msgstr "Daftar:" #, fuzzy -#~ msgid "" -#~ "\n" -#~ "Source: " -#~ msgstr "Resource" - -#, fuzzy #~ msgid "Add Point to Line2D" #~ msgstr "Pergi ke Barisan" @@ -11068,15 +12664,9 @@ msgstr "" #~ msgid "Pick New Name and Location For:" #~ msgstr "Tentukan Nama dan Lokasi Baru untuk:" -#~ msgid "No files selected!" -#~ msgstr "Tidak ada berkas dipilih!" - #~ msgid "Re-Import..." #~ msgstr "Impor Ulang..." -#~ msgid "Texture Format" -#~ msgstr "Format Tekstur" - #, fuzzy #~ msgid "Texture Options" #~ msgstr "Opsi Tekstur" diff --git a/editor/translations/is.po b/editor/translations/is.po index cc911642be..88a59309ff 100644 --- a/editor/translations/is.po +++ b/editor/translations/is.po @@ -71,6 +71,14 @@ msgstr "" msgid "Mirror" msgstr "" +#: editor/animation_bezier_editor.cpp editor/editor_profiler.cpp +msgid "Time:" +msgstr "" + +#: editor/animation_bezier_editor.cpp +msgid "Value:" +msgstr "" + #: editor/animation_bezier_editor.cpp msgid "Insert Key Here" msgstr "" @@ -159,15 +167,19 @@ msgid "Animation Playback Track" msgstr "" #: editor/animation_track_editor.cpp -#, fuzzy -msgid "Add Track" -msgstr "Anim bæta við lag" +msgid "Animation length (frames)" +msgstr "" #: editor/animation_track_editor.cpp -msgid "Animation Length Time (seconds)" +msgid "Animation length (seconds)" msgstr "" #: editor/animation_track_editor.cpp +#, fuzzy +msgid "Add Track" +msgstr "Anim bæta við lag" + +#: editor/animation_track_editor.cpp msgid "Animation Looping" msgstr "" @@ -299,11 +311,13 @@ msgid "Create %d NEW tracks and insert keys?" msgstr "" #: editor/animation_track_editor.cpp editor/create_dialog.cpp -#: editor/editor_audio_buses.cpp editor/editor_plugin_settings.cpp -#: editor/plugin_config_dialog.cpp +#: editor/editor_audio_buses.cpp editor/editor_feature_profile.cpp +#: editor/editor_plugin_settings.cpp editor/plugin_config_dialog.cpp #: editor/plugins/abstract_polygon_2d_editor.cpp #: editor/plugins/mesh_instance_editor_plugin.cpp -#: editor/plugins/particles_editor_plugin.cpp editor/script_create_dialog.cpp +#: editor/plugins/particles_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_create_dialog.cpp msgid "Create" msgstr "" @@ -418,6 +432,23 @@ msgid "" msgstr "" #: editor/animation_track_editor.cpp +msgid "" +"This animation belongs to an imported scene, so changes to imported tracks " +"will not be saved.\n" +"\n" +"To enable the ability to add custom tracks, navigate to the scene's import " +"settings and set\n" +"\"Animation > Storage\" to \"Files\", enable \"Animation > Keep Custom Tracks" +"\", then re-import.\n" +"Alternatively, use an import preset that imports animations to separate " +"files." +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Warning: Editing imported animation" +msgstr "" + +#: editor/animation_track_editor.cpp msgid "Only show tracks from nodes selected in tree." msgstr "" @@ -554,7 +585,8 @@ msgstr "" msgid "Select tracks to copy:" msgstr "" -#: editor/animation_track_editor.cpp editor/editor_properties.cpp +#: editor/animation_track_editor.cpp editor/editor_log.cpp +#: editor/editor_properties.cpp #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp @@ -623,6 +655,11 @@ msgstr "" msgid "Selection Only" msgstr "" +#: editor/code_editor.cpp editor/plugins/script_text_editor.cpp +#: editor/plugins/text_editor.cpp +msgid "Standard" +msgstr "" + #: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/texture_region_editor_plugin.cpp #: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp @@ -648,17 +685,29 @@ msgid "Line and column numbers." msgstr "" #: editor/connections_dialog.cpp -msgid "Method in target Node must be specified!" +msgid "Method in target node must be specified." msgstr "" #: editor/connections_dialog.cpp msgid "" -"Target method not found! Specify a valid method or attach a script to target " -"Node." +"Target method not found. Specify a valid method or attach a script to the " +"target node." msgstr "" #: editor/connections_dialog.cpp -msgid "Connect To Node:" +msgid "Connect to Node:" +msgstr "" + +#: editor/connections_dialog.cpp +msgid "Connect to Script:" +msgstr "" + +#: editor/connections_dialog.cpp +msgid "From Signal:" +msgstr "" + +#: editor/connections_dialog.cpp +msgid "Scene does not contain any script." msgstr "" #: editor/connections_dialog.cpp editor/editor_autoload_settings.cpp @@ -668,10 +717,12 @@ msgid "Add" msgstr "" #: editor/connections_dialog.cpp editor/dependency_editor.cpp -#: editor/groups_editor.cpp editor/plugins/animation_player_editor_plugin.cpp +#: editor/editor_feature_profile.cpp editor/groups_editor.cpp +#: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp #: editor/plugins/resource_preloader_editor_plugin.cpp -#: editor/plugins/theme_editor_plugin.cpp editor/project_manager.cpp +#: editor/plugins/theme_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_manager.cpp #: editor/project_settings_editor.cpp msgid "Remove" msgstr "" @@ -685,21 +736,30 @@ msgid "Extra Call Arguments:" msgstr "" #: editor/connections_dialog.cpp -msgid "Path to Node:" +msgid "Advanced" msgstr "" #: editor/connections_dialog.cpp -msgid "Make Function" +msgid "Deferred" msgstr "" #: editor/connections_dialog.cpp -msgid "Deferred" +msgid "" +"Defers the signal, storing it in a queue and only firing it at idle time." msgstr "" #: editor/connections_dialog.cpp msgid "Oneshot" msgstr "" +#: editor/connections_dialog.cpp +msgid "Disconnects the signal after its first emission." +msgstr "" + +#: editor/connections_dialog.cpp +msgid "Cannot connect signal" +msgstr "" + #: editor/connections_dialog.cpp editor/dependency_editor.cpp #: editor/export_template_manager.cpp editor/groups_editor.cpp #: editor/plugins/animation_player_editor_plugin.cpp @@ -740,11 +800,12 @@ msgid "Disconnect" msgstr "" #: editor/connections_dialog.cpp -msgid "Connect Signal: " +msgid "Connect a Signal to a Method" msgstr "" #: editor/connections_dialog.cpp -msgid "Edit Connection: " +#, fuzzy +msgid "Edit Connection:" msgstr "Breyta Tengingu: " #: editor/connections_dialog.cpp @@ -776,7 +837,6 @@ msgid "Change %s Type" msgstr "" #: editor/create_dialog.cpp editor/project_settings_editor.cpp -#: modules/visual_script/visual_script_editor.cpp msgid "Change" msgstr "" @@ -807,7 +867,8 @@ msgid "Matches:" msgstr "" #: editor/create_dialog.cpp editor/plugin_config_dialog.cpp -#: editor/plugins/asset_library_editor_plugin.cpp editor/property_selector.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/property_selector.cpp #: modules/visual_script/visual_script_property_selector.cpp msgid "Description:" msgstr "" @@ -823,13 +884,13 @@ msgstr "" #: editor/dependency_editor.cpp msgid "" "Scene '%s' is currently being edited.\n" -"Changes will not take effect unless reloaded." +"Changes will only take effect when reloaded." msgstr "" #: editor/dependency_editor.cpp msgid "" "Resource '%s' is in use.\n" -"Changes will take effect when reloaded." +"Changes will only take effect when reloaded." msgstr "" #: editor/dependency_editor.cpp @@ -920,21 +981,14 @@ msgid "Permanently delete %d item(s)? (No undo!)" msgstr "" #: editor/dependency_editor.cpp -msgid "Owns" -msgstr "" - -#: editor/dependency_editor.cpp -msgid "Resources Without Explicit Ownership:" -msgstr "" +#, fuzzy +msgid "Show Dependencies" +msgstr "Breyta" #: editor/dependency_editor.cpp editor/editor_node.cpp msgid "Orphan Resource Explorer" msgstr "" -#: editor/dependency_editor.cpp -msgid "Delete selected files?" -msgstr "" - #: editor/dependency_editor.cpp editor/editor_audio_buses.cpp #: editor/editor_file_dialog.cpp editor/editor_node.cpp #: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp @@ -943,6 +997,14 @@ msgstr "" msgid "Delete" msgstr "" +#: editor/dependency_editor.cpp +msgid "Owns" +msgstr "" + +#: editor/dependency_editor.cpp +msgid "Resources Without Explicit Ownership:" +msgstr "" + #: editor/dictionary_property_edit.cpp msgid "Change Dictionary Key" msgstr "" @@ -1052,7 +1114,7 @@ msgstr "" msgid "Success!" msgstr "" -#: editor/editor_asset_installer.cpp +#: editor/editor_asset_installer.cpp editor/editor_node.cpp #: editor/plugins/asset_library_editor_plugin.cpp msgid "Install" msgstr "" @@ -1179,7 +1241,11 @@ msgid "Open Audio Bus Layout" msgstr "" #: editor/editor_audio_buses.cpp -msgid "There is no 'res://default_bus_layout.tres' file." +msgid "There is no '%s' file." +msgstr "" + +#: editor/editor_audio_buses.cpp editor/plugins/canvas_item_editor_plugin.cpp +msgid "Layout" msgstr "" #: editor/editor_audio_buses.cpp @@ -1233,15 +1299,19 @@ msgid "Valid characters:" msgstr "" #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing engine class name." +msgid "Must not collide with an existing engine class name." +msgstr "" + +#: editor/editor_autoload_settings.cpp +msgid "Must not collide with an existing buit-in type name." msgstr "" #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing buit-in type name." +msgid "Must not collide with an existing global constant name." msgstr "" #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing global constant name." +msgid "Keyword cannot be used as an autoload name." msgstr "" #: editor/editor_autoload_settings.cpp @@ -1272,11 +1342,11 @@ msgstr "" msgid "Rearrange Autoloads" msgstr "" -#: editor/editor_autoload_settings.cpp -msgid "Invalid Path." +#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp +msgid "Invalid path." msgstr "" -#: editor/editor_autoload_settings.cpp +#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp msgid "File does not exist." msgstr "" @@ -1327,7 +1397,7 @@ msgid "[unsaved]" msgstr "" #: editor/editor_dir_dialog.cpp -msgid "Please select a base directory first" +msgid "Please select a base directory first." msgstr "" #: editor/editor_dir_dialog.cpp @@ -1335,7 +1405,8 @@ msgid "Choose a Directory" msgstr "" #: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp -#: editor/filesystem_dock.cpp scene/gui/file_dialog.cpp +#: editor/filesystem_dock.cpp editor/project_manager.cpp +#: scene/gui/file_dialog.cpp msgid "Create Folder" msgstr "" @@ -1403,6 +1474,153 @@ msgstr "" msgid "Template file not found:" msgstr "" +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "3D Editor" +msgstr "Breyta" + +#: editor/editor_feature_profile.cpp +msgid "Script Editor" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Asset Library" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Scene Tree Editing" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Import Dock" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Node Dock" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Filesystem Dock" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Erase profile '%s'? (no undo)" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Profile must be a valid filename and must not contain '.'" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Profile with this name already exists." +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "(Editor Disabled, Properties Disabled)" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "(Properties Disabled)" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "(Editor Disabled)" +msgstr "Óvirkt" + +#: editor/editor_feature_profile.cpp +msgid "Class Options:" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Enable Contextual Editor" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Enabled Properties:" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Enabled Features:" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Enabled Classes:" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "File '%s' format is invalid, import aborted." +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "" +"Profile '%s' already exists. Remote it first before importing, import " +"aborted." +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Error saving profile to path: '%s'." +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Unset" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Current Profile" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Make Current" +msgstr "" + +#: editor/editor_feature_profile.cpp +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "New" +msgstr "" + +#: editor/editor_feature_profile.cpp editor/editor_node.cpp +#: editor/plugins/asset_library_editor_plugin.cpp editor/project_manager.cpp +msgid "Import" +msgstr "" + +#: editor/editor_feature_profile.cpp editor/editor_node.cpp +#: editor/project_export.cpp +msgid "Export" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Available Profiles" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Enabled Classes" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Class Options" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "New profile name:" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Erase Profile" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Import Profile(s)" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Export Profile" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Manage Editor Feature Profiles" +msgstr "" + #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Select Current Folder" msgstr "" @@ -1424,8 +1642,8 @@ msgstr "" msgid "Open in File Manager" msgstr "Opna Verkefna Stjóra?" -#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp -#: editor/project_manager.cpp +#: editor/editor_file_dialog.cpp editor/editor_node.cpp +#: editor/filesystem_dock.cpp editor/project_manager.cpp msgid "Show in File Manager" msgstr "" @@ -1484,7 +1702,7 @@ msgstr "" msgid "Go Up" msgstr "" -#: editor/editor_file_dialog.cpp +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Toggle Hidden Files" msgstr "" @@ -1516,14 +1734,18 @@ msgstr "" msgid "Next Folder" msgstr "" -#: editor/editor_file_dialog.cpp -msgid "Go to parent folder" +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp +msgid "Go to parent folder." msgstr "" #: editor/editor_file_dialog.cpp msgid "(Un)favorite current folder." msgstr "" +#: editor/editor_file_dialog.cpp +msgid "Toggle visibility of hidden files." +msgstr "" + #: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp msgid "View items as a grid of thumbnails." msgstr "" @@ -1538,6 +1760,7 @@ msgstr "" #: editor/editor_file_dialog.cpp editor/plugins/sprite_editor_plugin.cpp #: editor/plugins/style_box_editor_plugin.cpp +#: editor/plugins/theme_editor_plugin.cpp msgid "Preview:" msgstr "" @@ -1554,6 +1777,12 @@ msgid "ScanSources" msgstr "" #: editor/editor_file_system.cpp +msgid "" +"There are multiple importers for different types pointing to file %s, import " +"aborted" +msgstr "" + +#: editor/editor_file_system.cpp msgid "(Re)Importing Assets" msgstr "" @@ -1729,6 +1958,11 @@ msgstr "" msgid "Output:" msgstr "" +#: editor/editor_log.cpp editor/plugins/tile_map_editor_plugin.cpp +#, fuzzy +msgid "Copy Selection" +msgstr "Fjarlægja val" + #: editor/editor_log.cpp editor/editor_profiler.cpp #: editor/editor_properties.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp @@ -1876,7 +2110,7 @@ msgstr "" #: editor/editor_node.cpp msgid "" "This resource belongs to a scene that was instanced or inherited.\n" -"Changes to it will not be kept when saving the current scene." +"Changes to it won't be kept when saving the current scene." msgstr "" #: editor/editor_node.cpp @@ -1887,7 +2121,7 @@ msgstr "" #: editor/editor_node.cpp msgid "" -"This scene was imported, so changes to it will not be kept.\n" +"This scene was imported, so changes to it won't be kept.\n" "Instancing it or inheriting will allow making changes to it.\n" "Please read the documentation relevant to importing scenes to better " "understand this workflow." @@ -1895,7 +2129,7 @@ msgstr "" #: editor/editor_node.cpp msgid "" -"This is a remote object so changes to it will not be kept.\n" +"This is a remote object, so changes to it won't be kept.\n" "Please read the documentation relevant to debugging to better understand " "this workflow." msgstr "" @@ -1905,27 +2139,6 @@ msgid "There is no defined scene to run." msgstr "" #: editor/editor_node.cpp -msgid "" -"No main scene has ever been defined, select one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" - -#: editor/editor_node.cpp -msgid "" -"Selected scene '%s' does not exist, select a valid one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" - -#: editor/editor_node.cpp -msgid "" -"Selected scene '%s' is not a scene file, select a valid one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" - -#: editor/editor_node.cpp msgid "Current scene was never saved, please save it prior to running." msgstr "" @@ -1933,7 +2146,7 @@ msgstr "" msgid "Could not start subprocess!" msgstr "" -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/filesystem_dock.cpp msgid "Open Scene" msgstr "" @@ -1942,6 +2155,10 @@ msgid "Open Base Scene" msgstr "" #: editor/editor_node.cpp +msgid "Quick Open..." +msgstr "" + +#: editor/editor_node.cpp msgid "Quick Open Scene..." msgstr "" @@ -2104,6 +2321,27 @@ msgid "Clear Recent Scenes" msgstr "" #: editor/editor_node.cpp +msgid "" +"No main scene has ever been defined, select one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"Selected scene '%s' does not exist, select a valid one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"Selected scene '%s' is not a scene file, select a valid one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" + +#: editor/editor_node.cpp msgid "Save Layout" msgstr "" @@ -2129,6 +2367,18 @@ msgstr "" msgid "Close Tab" msgstr "" +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +msgid "Close Other Tabs" +msgstr "" + +#: editor/editor_node.cpp +msgid "Close Tabs to the Right" +msgstr "" + +#: editor/editor_node.cpp +msgid "Close All Tabs" +msgstr "" + #: editor/editor_node.cpp msgid "Switch Scene Tab" msgstr "" @@ -2251,10 +2501,6 @@ msgstr "" msgid "Project Settings" msgstr "" -#: editor/editor_node.cpp editor/project_export.cpp -msgid "Export" -msgstr "" - #: editor/editor_node.cpp editor/plugins/tile_set_editor_plugin.cpp msgid "Tools" msgstr "" @@ -2264,6 +2510,10 @@ msgid "Open Project Data Folder" msgstr "" #: editor/editor_node.cpp +msgid "Install Android Build Template" +msgstr "" + +#: editor/editor_node.cpp msgid "Quit to Project List" msgstr "" @@ -2368,6 +2618,10 @@ msgstr "" msgid "Open Editor Settings Folder" msgstr "" +#: editor/editor_node.cpp +msgid "Manage Editor Features" +msgstr "" + #: editor/editor_node.cpp editor/project_export.cpp msgid "Manage Export Templates" msgstr "" @@ -2380,6 +2634,7 @@ msgstr "" #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp #: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp #: editor/project_settings_editor.cpp editor/rename_dialog.cpp msgid "Search" msgstr "" @@ -2469,11 +2724,6 @@ msgstr "" msgid "Disable Update Spinner" msgstr "" -#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp -#: editor/project_manager.cpp -msgid "Import" -msgstr "" - #: editor/editor_node.cpp msgid "FileSystem" msgstr "" @@ -2499,6 +2749,27 @@ msgid "Don't Save" msgstr "" #: editor/editor_node.cpp +msgid "Android build template is missing, please install relevant templates." +msgstr "" + +#: editor/editor_node.cpp +msgid "Manage Templates" +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"This will install the Android project for custom builds.\n" +"Note that, in order to use it, it needs to be enabled per export preset." +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"Android build template is already installed and it won't be overwritten.\n" +"Remove the \"build\" directory manually before attempting this operation " +"again." +msgstr "" + +#: editor/editor_node.cpp msgid "Import Templates From ZIP File" msgstr "" @@ -2621,10 +2892,6 @@ msgid "Physics Frame %" msgstr "" #: editor/editor_profiler.cpp -msgid "Time:" -msgstr "" - -#: editor/editor_profiler.cpp msgid "Inclusive" msgstr "" @@ -2759,10 +3026,6 @@ msgid "Remove Item" msgstr "" #: editor/editor_run_native.cpp -msgid "Select device from the list" -msgstr "" - -#: editor/editor_run_native.cpp msgid "" "No runnable export preset found for this platform.\n" "Please add a runnable preset in the export menu." @@ -2796,6 +3059,10 @@ msgstr "" msgid "Select Node(s) to Import" msgstr "" +#: editor/editor_sub_scene.cpp editor/project_manager.cpp +msgid "Browse" +msgstr "" + #: editor/editor_sub_scene.cpp msgid "Scene Path:" msgstr "" @@ -2958,6 +3225,10 @@ msgid "SSL Handshake Error" msgstr "" #: editor/export_template_manager.cpp +msgid "Uncompressing Android Build Sources" +msgstr "" + +#: editor/export_template_manager.cpp msgid "Current Version:" msgstr "" @@ -2974,7 +3245,7 @@ msgid "Remove Template" msgstr "" #: editor/export_template_manager.cpp -msgid "Select template file" +msgid "Select Template File" msgstr "" #: editor/export_template_manager.cpp @@ -3030,7 +3301,7 @@ msgid "No name provided." msgstr "" #: editor/filesystem_dock.cpp -msgid "Provided name contains invalid characters" +msgid "Provided name contains invalid characters." msgstr "" #: editor/filesystem_dock.cpp @@ -3058,7 +3329,11 @@ msgid "Duplicating folder:" msgstr "" #: editor/filesystem_dock.cpp -msgid "Open Scene(s)" +msgid "New Inherited Scene" +msgstr "" + +#: editor/filesystem_dock.cpp +msgid "Open Scenes" msgstr "" #: editor/filesystem_dock.cpp @@ -3066,11 +3341,11 @@ msgid "Instance" msgstr "" #: editor/filesystem_dock.cpp -msgid "Add to favorites" +msgid "Add to Favorites" msgstr "" #: editor/filesystem_dock.cpp -msgid "Remove from favorites" +msgid "Remove from Favorites" msgstr "" #: editor/filesystem_dock.cpp @@ -3102,11 +3377,13 @@ msgstr "" msgid "New Resource..." msgstr "" -#: editor/filesystem_dock.cpp editor/script_editor_debugger.cpp +#: editor/filesystem_dock.cpp editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_editor_debugger.cpp msgid "Expand All" msgstr "" -#: editor/filesystem_dock.cpp editor/script_editor_debugger.cpp +#: editor/filesystem_dock.cpp editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_editor_debugger.cpp msgid "Collapse All" msgstr "" @@ -3118,11 +3395,11 @@ msgid "Rename" msgstr "" #: editor/filesystem_dock.cpp -msgid "Previous Directory" +msgid "Previous Folder/File" msgstr "" #: editor/filesystem_dock.cpp -msgid "Next Directory" +msgid "Next Folder/File" msgstr "" #: editor/filesystem_dock.cpp @@ -3130,7 +3407,7 @@ msgid "Re-Scan Filesystem" msgstr "" #: editor/filesystem_dock.cpp -msgid "Toggle split mode" +msgid "Toggle Split Mode" msgstr "" #: editor/filesystem_dock.cpp @@ -3159,7 +3436,7 @@ msgstr "" msgid "Create Script" msgstr "" -#: editor/find_in_files.cpp +#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp msgid "Find in Files" msgstr "" @@ -3175,6 +3452,12 @@ msgstr "" msgid "Filters:" msgstr "" +#: editor/find_in_files.cpp +msgid "" +"Include the files with the following extensions. Add or remove them in " +"ProjectSettings." +msgstr "" + #: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp msgid "Find..." @@ -3605,7 +3888,7 @@ msgid "Open Animation Node" msgstr "" #: editor/plugins/animation_blend_space_2d_editor.cpp -msgid "Triangle already exists" +msgid "Triangle already exists." msgstr "" #: editor/plugins/animation_blend_space_2d_editor.cpp @@ -3681,7 +3964,6 @@ msgid "Node Moved" msgstr "" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Unable to connect, port may be in use or connection may be invalid." msgstr "" @@ -3750,7 +4032,7 @@ msgid "Edit Filtered Tracks:" msgstr "" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -msgid "Enable filtering" +msgid "Enable Filtering" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp @@ -3865,10 +4147,6 @@ msgid "Animation" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "New" -msgstr "" - -#: editor/plugins/animation_player_editor_plugin.cpp #, fuzzy msgid "Edit Transitions..." msgstr "Stillið breyting á:" @@ -3886,11 +4164,11 @@ msgid "Autoplay on Load" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Onion Skinning" +msgid "Enable Onion Skinning" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Enable Onion Skinning" +msgid "Onion Skinning Options" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp @@ -4435,13 +4713,19 @@ msgid "Move CanvasItem" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"Children of containers have their anchors and margins values overridden by " +"their parent." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Presets for the anchors and margins values of a Control node." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "" -"Children of containers have their anchors and margins values overridden by " -"their parent." +"When active, moving Control nodes changes their anchors instead of their " +"margins." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4457,10 +4741,49 @@ msgid "Change Anchors" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Lock Selected" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Unlock Selected" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Group Selected" +msgstr "Fjarlægja val" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Ungroup Selected" +msgstr "Fjarlægja val" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Paste Pose" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Create Custom Bone(s) from Node(s)" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Clear Bones" +msgstr "Breyta umbreytingu" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Make IK Chain" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Clear IK Chain" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "" "Warning: Children of a container get their position and size determined only " "by their parent." @@ -4532,7 +4855,7 @@ msgid "Snapping Options" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to grid" +msgid "Snap to Grid" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4553,31 +4876,31 @@ msgid "Use Pixel Snap" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Smart snapping" +msgid "Smart Snapping" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to parent" +msgid "Snap to Parent" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node anchor" +msgid "Snap to Node Anchor" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node sides" +msgid "Snap to Node Sides" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node center" +msgid "Snap to Node Center" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to other nodes" +msgid "Snap to Other Nodes" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to guides" +msgid "Snap to Guides" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4591,10 +4914,12 @@ msgid "Unlock the selected object (can be moved)." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Makes sure the object's children are not selectable." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Restores the object's children's ability to be selected." msgstr "" @@ -4607,14 +4932,6 @@ msgid "Show Bones" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Make IK Chain" -msgstr "" - -#: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Clear IK Chain" -msgstr "" - -#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Make Custom Bone(s) from Node(s)" msgstr "" @@ -4665,7 +4982,7 @@ msgid "Frame Selection" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Layout" +msgid "Preview Canvas Scale" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4717,6 +5034,10 @@ msgid "Divide grid step by 2" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Pan View" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Add %s" msgstr "" @@ -4739,7 +5060,7 @@ msgid "Error instancing scene from %s" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Change default type" +msgid "Change Default Type" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4825,19 +5146,19 @@ msgid "Create Emission Points From Node" msgstr "" #: editor/plugins/curve_editor_plugin.cpp -msgid "Flat0" +msgid "Flat 0" msgstr "" #: editor/plugins/curve_editor_plugin.cpp -msgid "Flat1" +msgid "Flat 1" msgstr "" -#: editor/plugins/curve_editor_plugin.cpp -msgid "Ease in" +#: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp +msgid "Ease In" msgstr "" -#: editor/plugins/curve_editor_plugin.cpp -msgid "Ease out" +#: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp +msgid "Ease Out" msgstr "" #: editor/plugins/curve_editor_plugin.cpp @@ -4857,23 +5178,25 @@ msgid "Load Curve Preset" msgstr "" #: editor/plugins/curve_editor_plugin.cpp -msgid "Add point" -msgstr "" +#, fuzzy +msgid "Add Point" +msgstr "Stillið breyting á:" #: editor/plugins/curve_editor_plugin.cpp -msgid "Remove point" -msgstr "" +#, fuzzy +msgid "Remove Point" +msgstr "Fjarlægja val" #: editor/plugins/curve_editor_plugin.cpp -msgid "Left linear" +msgid "Left Linear" msgstr "" #: editor/plugins/curve_editor_plugin.cpp -msgid "Right linear" +msgid "Right Linear" msgstr "" #: editor/plugins/curve_editor_plugin.cpp -msgid "Load preset" +msgid "Load Preset" msgstr "" #: editor/plugins/curve_editor_plugin.cpp @@ -4929,11 +5252,15 @@ msgid "This doesn't work on scene root!" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Trimesh Shape" +msgid "Create Trimesh Static Shape" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Shape" +msgid "Failed creating shapes!" +msgstr "" + +#: editor/plugins/mesh_instance_editor_plugin.cpp +msgid "Create Convex Shape(s)" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp @@ -4986,16 +5313,13 @@ msgid "Create Trimesh Static Body" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Static Body" -msgstr "" - -#: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Trimesh Collision Sibling" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Collision Sibling" -msgstr "" +#, fuzzy +msgid "Create Convex Collision Sibling(s)" +msgstr "Breyta Viðbót" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Outline Mesh..." @@ -5148,20 +5472,20 @@ msgid "Create Navigation Polygon" msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp -msgid "Generating Visibility Rect" +#: editor/plugins/particles_editor_plugin.cpp +msgid "Convert to CPUParticles" msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp -msgid "Generate Visibility Rect" +msgid "Generating Visibility Rect" msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp -msgid "Can only set point into a ParticlesMaterial process material" +msgid "Generate Visibility Rect" msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp -#: editor/plugins/particles_editor_plugin.cpp -msgid "Convert to CPUParticles" +msgid "Can only set point into a ParticlesMaterial process material" msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp @@ -5304,7 +5628,7 @@ msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp editor/plugins/theme_editor_plugin.cpp -#: editor/project_export.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_export.cpp msgid "Options" msgstr "" @@ -5355,8 +5679,9 @@ msgid "Split Segment (in curve)" msgstr "" #: editor/plugins/physical_bone_plugin.cpp -msgid "Move joint" -msgstr "" +#, fuzzy +msgid "Move Joint" +msgstr "Hreyfa Viðbótar Lykil" #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "" @@ -5590,7 +5915,6 @@ msgid "Open in Editor" msgstr "" #: editor/plugins/resource_preloader_editor_plugin.cpp -#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Load Resource" msgstr "" @@ -5679,6 +6003,11 @@ msgid "%s Class Reference" msgstr "" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp +msgid "Find Next" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp msgid "Toggle alphabetical sorting of the method list." msgstr "" @@ -5759,10 +6088,6 @@ msgstr "" msgid "Close All" msgstr "" -#: editor/plugins/script_editor_plugin.cpp -msgid "Close Other Tabs" -msgstr "" - #: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp msgid "Run" msgstr "" @@ -5771,11 +6096,6 @@ msgstr "" msgid "Toggle Scripts Panel" msgstr "" -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/script_text_editor.cpp -msgid "Find Next" -msgstr "" - #: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp msgid "Step Over" msgstr "" @@ -5802,7 +6122,7 @@ msgid "Debug with External Editor" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Open Godot online documentation" +msgid "Open Godot online documentation." msgstr "" #: editor/plugins/script_editor_plugin.cpp @@ -5810,7 +6130,7 @@ msgid "Request Docs" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Help improve the Godot documentation by giving feedback" +msgid "Help improve the Godot documentation by giving feedback." msgstr "" #: editor/plugins/script_editor_plugin.cpp @@ -5836,10 +6156,12 @@ msgid "" msgstr "" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp msgid "Reload" msgstr "" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp msgid "Resave" msgstr "" @@ -5852,6 +6174,27 @@ msgid "Search Results" msgstr "" #: editor/plugins/script_text_editor.cpp +msgid "Connections to method:" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Source" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Signal" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Target" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "" +"Missing connected method '%s' for signal '%s' from node '%s' to node '%s'." +msgstr "" + +#: editor/plugins/script_text_editor.cpp msgid "Line" msgstr "" @@ -5863,10 +6206,6 @@ msgstr "" msgid "Go to Function" msgstr "" -#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp -msgid "Standard" -msgstr "" - #: editor/plugins/script_text_editor.cpp msgid "Only resources from filesystem can be dropped." msgstr "" @@ -5899,6 +6238,11 @@ msgstr "" msgid "Syntax Highlighter" msgstr "" +#: editor/plugins/script_text_editor.cpp +#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp +msgid "Bookmarks" +msgstr "" + #: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" @@ -5926,6 +6270,22 @@ msgid "Toggle Comment" msgstr "" #: editor/plugins/script_text_editor.cpp +msgid "Toggle Bookmark" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Go to Next Bookmark" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Go to Previous Bookmark" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Remove All Bookmarks" +msgstr "" + +#: editor/plugins/script_text_editor.cpp msgid "Fold/Unfold Line" msgstr "" @@ -5999,6 +6359,12 @@ msgid "Contextual Help" msgstr "" #: editor/plugins/shader_editor_plugin.cpp +msgid "" +"This shader has been modified on on disk.\n" +"What action should be taken?" +msgstr "" + +#: editor/plugins/shader_editor_plugin.cpp msgid "Shader" msgstr "" @@ -6336,7 +6702,7 @@ msgid "Right View" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Switch Perspective/Orthogonal view" +msgid "Switch Perspective/Orthogonal View" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp @@ -6376,11 +6742,12 @@ msgid "Toggle Freelook" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Transform" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Snap object to floor" +msgid "Snap Object to Floor" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp @@ -6523,36 +6890,36 @@ msgid "Invalid geometry, can't replace by mesh." msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Invalid geometry, can't create polygon." +msgid "Convert to Mesh2D" msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Invalid geometry, can't create collision polygon." +msgid "Invalid geometry, can't create polygon." msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Invalid geometry, can't create light occluder." +msgid "Convert to Polygon2D" msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Sprite" +msgid "Invalid geometry, can't create collision polygon." msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Convert to Mesh2D" -msgstr "" +#, fuzzy +msgid "Create CollisionPolygon2D Sibling" +msgstr "Breyta Viðbót" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Convert to Polygon2D" +msgid "Invalid geometry, can't create light occluder." msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy -msgid "Create CollisionPolygon2D Sibling" -msgstr "Breyta Viðbót" +msgid "Create LightOccluder2D Sibling" +msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Create LightOccluder2D Sibling" +msgid "Sprite" msgstr "" #: editor/plugins/sprite_editor_plugin.cpp @@ -6572,7 +6939,11 @@ msgid "Settings:" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "ERROR: Couldn't load frame resource!" +msgid "No Frames Selected" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Add %d Frame(s)" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp @@ -6580,6 +6951,10 @@ msgid "Add Frame" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "ERROR: Couldn't load frame resource!" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Resource clipboard is empty or not a texture!" msgstr "" @@ -6621,6 +6996,15 @@ msgid "Animation Frames:" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Add a Texture from File" +msgstr "Fjarlægja val" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Add Frames from a Sprite Sheet" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Insert Empty (Before)" msgstr "" @@ -6637,6 +7021,26 @@ msgid "Move (After)" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Select Frames" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Horizontal:" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Vertical:" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Select/Clear All Frames" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Create Frames from Sprite Sheet" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "SpriteFrames" msgstr "" @@ -6701,12 +7105,12 @@ msgstr "" msgid "Remove All Items" msgstr "" -#: editor/plugins/theme_editor_plugin.cpp +#: editor/plugins/theme_editor_plugin.cpp editor/project_manager.cpp msgid "Remove All" msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "Edit theme..." +msgid "Edit Theme" msgstr "" #: editor/plugins/theme_editor_plugin.cpp @@ -6734,18 +7138,24 @@ msgid "Create From Current Editor Theme" msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "CheckBox Radio1" +msgid "Toggle Button" msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "CheckBox Radio2" -msgstr "" +#, fuzzy +msgid "Disabled Button" +msgstr "Óvirkt" #: editor/plugins/theme_editor_plugin.cpp msgid "Item" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Disabled Item" +msgstr "Óvirkt" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Check Item" msgstr "" @@ -6762,6 +7172,22 @@ msgid "Checked Radio Item" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +msgid "Named Sep." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Submenu" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Item 1" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Item 2" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Has" msgstr "" @@ -6770,8 +7196,9 @@ msgid "Many" msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "Has,Many,Options" -msgstr "" +#, fuzzy +msgid "Disabled LineEdit" +msgstr "Óvirkt" #: editor/plugins/theme_editor_plugin.cpp msgid "Tab 1" @@ -6786,6 +7213,18 @@ msgid "Tab 3" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +msgid "Editable Item" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Subtree" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Has,Many,Options" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Data Type:" msgstr "" @@ -6818,6 +7257,7 @@ msgid "Fix Invalid Tiles" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp +#: modules/gridmap/grid_map_editor_plugin.cpp #, fuzzy msgid "Cut Selection" msgstr "Afrita val" @@ -6859,37 +7299,46 @@ msgid "Mirror Y" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp +msgid "Disable Autotile" +msgstr "" + +#: editor/plugins/tile_map_editor_plugin.cpp +msgid "Enable Priority" +msgstr "" + +#: editor/plugins/tile_map_editor_plugin.cpp msgid "Paint Tile" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Pick Tile" +msgid "" +"Shift+RMB: Line Draw\n" +"Shift+Ctrl+RMB: Rectangle Paint" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy -msgid "Copy Selection" -msgstr "Fjarlægja val" +msgid "Pick Tile" +msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Rotate left" +msgid "Rotate Left" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Rotate right" +msgid "Rotate Right" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Flip horizontally" +msgid "Flip Horizontally" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Flip vertically" +msgid "Flip Vertically" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp #, fuzzy -msgid "Clear transform" +msgid "Clear Transform" msgstr "Breyta umbreytingu" #: editor/plugins/tile_set_editor_plugin.cpp @@ -6926,6 +7375,41 @@ msgid "Select the previous shape, subtile, or Tile." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp +msgid "Region Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Collision Mode" +msgstr "Breyta Viðbót" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Occlusion Mode" +msgstr "Breyta Viðbót" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Navigation Mode" +msgstr "Breyta Viðbót" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Bitmask Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Priority Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Icon Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Z Index Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp msgid "Copy bitmask." msgstr "" @@ -7009,6 +7493,7 @@ msgstr "Afrita val" msgid "" "LMB: Set bit on.\n" "RMB: Set bit off.\n" +"Shift+LMB: Set wildcard bit.\n" "Click on another Tile to edit it." msgstr "" @@ -7120,6 +7605,69 @@ msgid "TileSet" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add input +" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add output +" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add input port" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add output port" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change input port type" +msgstr "Anim breyting umskipti" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Change output port type" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Change input port name" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Change output port name" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Remove input port" +msgstr "Fjarlægja val" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Remove output port" +msgstr "Fjarlægja val" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Set expression" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Resize VisualShader node" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Set Uniform Name" msgstr "" @@ -7158,6 +7706,840 @@ msgid "Light" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Create Shader Node" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Color function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Color operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Grayscale function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts HSV vector to RGB equivalent." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts RGB vector to HSV equivalent." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Sepia function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Burn operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Darken operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Difference operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Dodge operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "HardLight operator" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Lighten operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Overlay operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Screen operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "SoftLight operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Color constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Color uniform." +msgstr "Breyta umbreytingu" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns an associated vector if the provided scalars are equal, greater or " +"less." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns an associated vector if the provided boolean value is true or false." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'camera' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'inv_camera' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'inv_projection' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'normal' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'projection' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'time' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'viewport_size' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'world' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'texture_pixel_size' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Input parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'binormal' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'fragcoord' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_coord' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_uv' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'side' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'tangent' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv2' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'vertex' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'view' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'albedo' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'attenuation' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'diffuse' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_color' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'roughness' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'specular' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'transmission' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'modelview' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_size' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'tangent' input parameter for vertex and fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_pass' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_coord' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_pixel_size' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_uv' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_alpha' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_height' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_uv' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_vec' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'normal' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'shadow_color' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'extra' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'projection' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'vertex' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'world' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'active' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'custom' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'custom_alpha' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'delta' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'emission_transform' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'index' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'lifetime' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'restart' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'time' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'transform' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'velocity' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar function." +msgstr "Val á kvarða" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Scalar operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "E constant (2.718282). Represents the base of the natural logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Epsilon constant (0.00001). Smallest possible scalar number." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Phi constant (1.618034). Golden ratio." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi/4 constant (0.785398) or 45 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi/2 constant (1.570796) or 90 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi constant (3.141593) or 180 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Tau constant (6.283185) or 360 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Sqrt2 constant (1.414214). Square root of 2." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the absolute value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-tangent of the parameters." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Finds the nearest integer that is greater than or equal to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Constrains a value to lie between two further values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts a quantity in radians to degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-e Exponential." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-2 Exponential." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Finds the nearest integer less than or equal to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Computes the fractional part of the argument." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the inverse of the square root of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Natural logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-2 logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the greater of two values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the lesser of two values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Linear interpolation between two scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the opposite value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 - scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns the value of the first parameter raised to the power of the second." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts a quantity in degrees to radians." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 / scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the nearest integer to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the nearest even integer to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Clamps the value between 0.0 and 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Extracts the sign of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the square root of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( scalar(edge0), scalar(edge1), scalar(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if x is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( scalar(edge), scalar(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the truncated value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Adds scalar to scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Divides scalar by scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies scalar by scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the remainder of the two scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Subtracts scalar from scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Scalar constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar uniform." +msgstr "Breyta umbreytingu" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Perform the cubic texture lookup." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Perform the texture lookup." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Cubic texture uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "2D texture uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Transform function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) Calculate the outer product of a pair of vectors.\n" +"\n" +"OuterProduct treats the first parameter 'c' as a column vector (matrix with " +"one column) and the second parameter 'r' as a row vector (matrix with one " +"row) and does a linear algebraic matrix multiply 'c * r', yielding a matrix " +"whose number of rows is the number of components in 'c' and whose number of " +"columns is the number of components in 'r'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Composes transform from four vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Decomposes transform to four vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the determinant of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the inverse of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the transpose of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies transform by transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies vector by transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Transform constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Transform uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Composes vector from three scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Decomposes vector to three scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the cross product of two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the distance between two points." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the dot product of two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns a vector that points in the same direction as a reference vector. " +"The function has three vector parameters : N, the vector to orient, I, the " +"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 "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the length of a vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Linear interpolation between two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the normalize product of vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 - vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 / vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns a vector that points in the direction of reflection ( a : incident " +"vector, b : normal vector )." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns a vector that points in the direction of refraction." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( vector(edge0), vector(edge1), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if 'x' is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( scalar(edge0), scalar(edge1), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if 'x' is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( vector(edge), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( scalar(edge), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Adds vector to vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Divides vector by vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies vector by vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the remainder of the two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Subtracts vector from vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Custom Godot Shader Language expression, with custom amount of input and " +"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 "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns falloff based on the dot product of surface normal and view " +"direction of camera (pass associated inputs to it)." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) (Fragment/Light mode only) Scalar derivative function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) (Fragment/Light mode only) Vector derivative function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Derivative in 'x' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Derivative in 'x' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Derivative in 'y' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Derivative in 'y' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Sum of absolute derivative " +"in 'x' and 'y'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Sum of absolute derivative " +"in 'x' and 'y'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "VisualShader" msgstr "" @@ -7345,6 +8727,10 @@ msgid "Directory already contains a Godot project." msgstr "" #: editor/project_manager.cpp +msgid "New Game Project" +msgstr "" + +#: editor/project_manager.cpp msgid "Imported Project" msgstr "" @@ -7391,10 +8777,6 @@ msgid "Rename Project" msgstr "" #: editor/project_manager.cpp -msgid "New Game Project" -msgstr "" - -#: editor/project_manager.cpp msgid "Import Existing Project" msgstr "" @@ -7423,10 +8805,6 @@ msgid "Project Name:" msgstr "" #: editor/project_manager.cpp -msgid "Create folder" -msgstr "" - -#: editor/project_manager.cpp msgid "Project Path:" msgstr "" @@ -7435,10 +8813,6 @@ msgid "Project Installation Path:" msgstr "" #: editor/project_manager.cpp -msgid "Browse" -msgstr "" - -#: editor/project_manager.cpp msgid "Renderer:" msgstr "" @@ -7491,8 +8865,8 @@ msgid "" "\n" "If you proceed with opening it, it will be converted to Godot's current " "configuration file format.\n" -"Warning: You will not be able to open the project with previous versions of " -"the engine anymore." +"Warning: You won't be able to open the project with previous versions of the " +"engine anymore." msgstr "" #: editor/project_manager.cpp @@ -7503,8 +8877,8 @@ msgid "" "%s\n" "\n" "Do you want to convert it?\n" -"Warning: You will not be able to open the project with previous versions of " -"the engine anymore." +"Warning: You won't be able to open the project with previous versions of the " +"engine anymore." msgstr "" #: editor/project_manager.cpp @@ -7516,7 +8890,7 @@ msgstr "" #: editor/project_manager.cpp msgid "" "Can't run project: no main scene defined.\n" -"Please edit the project and set the main scene in \"Project Settings\" under " +"Please edit the project and set the main scene in the Project Settings under " "the \"Application\" category." msgstr "" @@ -7527,25 +8901,40 @@ msgid "" msgstr "" #: editor/project_manager.cpp -msgid "Are you sure to run more than one project?" +msgid "Are you sure to run %d projects at once?" +msgstr "" + +#: editor/project_manager.cpp +msgid "" +"Remove %d projects from the list?\n" +"The project folders' contents won't be modified." +msgstr "" + +#: editor/project_manager.cpp +msgid "" +"Remove this project from the list?\n" +"The project folder's contents won't be modified." msgstr "" #: editor/project_manager.cpp -msgid "Remove project from the list? (Folder contents will not be modified)" +msgid "" +"Remove all missing projects from the list? (Folders contents will not be " +"modified)" msgstr "" #: editor/project_manager.cpp +#, fuzzy msgid "" "Language changed.\n" -"The UI will update next time the editor or project manager starts." +"The interface will update after restarting the editor or project manager." msgstr "" "Tungumáli breytt.\n" "Viðmótið mun uppfærast við næstu ræsingu á tóli eða verkefna stjóra." #: editor/project_manager.cpp msgid "" -"You are about the scan %s folders for existing Godot projects. Do you " -"confirm?" +"Are you sure to scan %s folders for existing Godot projects?\n" +"This could take a while." msgstr "" #: editor/project_manager.cpp @@ -7569,6 +8958,11 @@ msgid "New Project" msgstr "" #: editor/project_manager.cpp +#, fuzzy +msgid "Remove Missing" +msgstr "Fjarlægja val" + +#: editor/project_manager.cpp msgid "Templates" msgstr "" @@ -7586,8 +8980,8 @@ msgstr "" #: editor/project_manager.cpp msgid "" -"You don't currently have any projects.\n" -"Would you like to explore the official example projects in the Asset Library?" +"You currently don't have any projects.\n" +"Would you like to explore official example projects in the Asset Library?" msgstr "" #: editor/project_settings_editor.cpp @@ -7613,7 +9007,7 @@ msgid "" msgstr "" #: editor/project_settings_editor.cpp -msgid "Action '%s' already exists!" +msgid "An action with the name '%s' already exists." msgstr "" #: editor/project_settings_editor.cpp @@ -7767,10 +9161,6 @@ msgid "" msgstr "" #: editor/project_settings_editor.cpp -msgid "Already existing" -msgstr "" - -#: editor/project_settings_editor.cpp msgid "Add Input Action" msgstr "" @@ -7835,7 +9225,7 @@ msgid "Override For..." msgstr "" #: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp -msgid "Editor must be restarted for changes to take effect" +msgid "The editor must be restarted for changes to take effect." msgstr "" #: editor/project_settings_editor.cpp @@ -7896,11 +9286,11 @@ msgid "Locales Filter" msgstr "" #: editor/project_settings_editor.cpp -msgid "Show all locales" +msgid "Show All Locales" msgstr "" #: editor/project_settings_editor.cpp -msgid "Show only selected locales" +msgid "Show Selected Locales Only" msgstr "" #: editor/project_settings_editor.cpp @@ -7916,14 +9306,6 @@ msgid "AutoLoad" msgstr "" #: editor/property_editor.cpp -msgid "Ease In" -msgstr "" - -#: editor/property_editor.cpp -msgid "Ease Out" -msgstr "" - -#: editor/property_editor.cpp msgid "Zero" msgstr "" @@ -7997,7 +9379,7 @@ msgid "Suffix" msgstr "" #: editor/rename_dialog.cpp -msgid "Advanced options" +msgid "Advanced Options" msgstr "" #: editor/rename_dialog.cpp @@ -8249,8 +9631,9 @@ msgid "User Interface" msgstr "" #: editor/scene_tree_dock.cpp -msgid "Custom Node" -msgstr "" +#, fuzzy +msgid "Other Node" +msgstr "Anim DELETE-lyklar" #: editor/scene_tree_dock.cpp msgid "Can't operate on nodes from a foreign scene!" @@ -8291,7 +9674,7 @@ msgid "Clear Inheritance" msgstr "" #: editor/scene_tree_dock.cpp -msgid "Open documentation" +msgid "Open Documentation" msgstr "" #: editor/scene_tree_dock.cpp @@ -8318,7 +9701,7 @@ msgstr "" msgid "Save Branch as Scene" msgstr "" -#: editor/scene_tree_dock.cpp +#: editor/scene_tree_dock.cpp editor/script_editor_debugger.cpp msgid "Copy Node Path" msgstr "" @@ -8361,6 +9744,19 @@ msgid "Toggle Visible" msgstr "" #: editor/scene_tree_editor.cpp +#, fuzzy +msgid "Unlock Node" +msgstr "Hreyfa Viðbótar Lykil" + +#: editor/scene_tree_editor.cpp +msgid "Button Group" +msgstr "" + +#: editor/scene_tree_editor.cpp +msgid "(Connecting From)" +msgstr "" + +#: editor/scene_tree_editor.cpp msgid "Node configuration warning:" msgstr "" @@ -8382,8 +9778,8 @@ msgid "" "Click to show groups dock." msgstr "" -#: editor/scene_tree_editor.cpp editor/script_create_dialog.cpp -msgid "Open Script" +#: editor/scene_tree_editor.cpp +msgid "Open Script:" msgstr "" #: editor/scene_tree_editor.cpp @@ -8429,71 +9825,71 @@ msgid "Select a Node" msgstr "" #: editor/script_create_dialog.cpp -msgid "Error loading template '%s'" +msgid "Path is empty." msgstr "" #: editor/script_create_dialog.cpp -msgid "Error - Could not create script in filesystem." +msgid "Filename is empty." msgstr "" #: editor/script_create_dialog.cpp -msgid "Error loading script from %s" +msgid "Path is not local." msgstr "" #: editor/script_create_dialog.cpp -msgid "N/A" +msgid "Invalid base path." msgstr "" #: editor/script_create_dialog.cpp -msgid "Open Script/Choose Location" +msgid "A directory with the same name exists." msgstr "" #: editor/script_create_dialog.cpp -msgid "Path is empty" +msgid "Invalid extension." msgstr "" #: editor/script_create_dialog.cpp -msgid "Filename is empty" +msgid "Wrong extension chosen." msgstr "" #: editor/script_create_dialog.cpp -msgid "Path is not local" +msgid "Error loading template '%s'" msgstr "" #: editor/script_create_dialog.cpp -msgid "Invalid base path" +msgid "Error - Could not create script in filesystem." msgstr "" #: editor/script_create_dialog.cpp -msgid "Directory of the same name exists" +msgid "Error loading script from %s" msgstr "" #: editor/script_create_dialog.cpp -msgid "File exists, will be reused" +msgid "N/A" msgstr "" #: editor/script_create_dialog.cpp -msgid "Invalid extension" +msgid "Open Script / Choose Location" msgstr "" #: editor/script_create_dialog.cpp -msgid "Wrong extension chosen" +msgid "Open Script" msgstr "" #: editor/script_create_dialog.cpp -msgid "Invalid Path" +msgid "File exists, it will be reused." msgstr "" #: editor/script_create_dialog.cpp -msgid "Invalid class name" +msgid "Invalid class name." msgstr "" #: editor/script_create_dialog.cpp -msgid "Invalid inherited parent name or path" +msgid "Invalid inherited parent name or path." msgstr "" #: editor/script_create_dialog.cpp -msgid "Script valid" +msgid "Script is valid." msgstr "" #: editor/script_create_dialog.cpp @@ -8501,15 +9897,15 @@ msgid "Allowed: a-z, A-Z, 0-9 and _" msgstr "" #: editor/script_create_dialog.cpp -msgid "Built-in script (into scene file)" +msgid "Built-in script (into scene file)." msgstr "" #: editor/script_create_dialog.cpp -msgid "Create new script file" +msgid "Will create a new script file." msgstr "" #: editor/script_create_dialog.cpp -msgid "Load existing script file" +msgid "Will load an existing script file." msgstr "" #: editor/script_create_dialog.cpp @@ -8640,6 +10036,10 @@ msgstr "" msgid "Set From Tree" msgstr "" +#: editor/script_editor_debugger.cpp +msgid "Export measures as CSV" +msgstr "" + #: editor/settings_config_dialog.cpp msgid "Erase Shortcut" msgstr "" @@ -8769,6 +10169,14 @@ msgid "GDNativeLibrary" msgstr "" #: modules/gdnative/gdnative_library_singleton_editor.cpp +msgid "Enabled GDNative Singleton" +msgstr "" + +#: modules/gdnative/gdnative_library_singleton_editor.cpp +msgid "Disabled GDNative Singleton" +msgstr "" + +#: modules/gdnative/gdnative_library_singleton_editor.cpp msgid "Library" msgstr "" @@ -8854,8 +10262,9 @@ msgid "GridMap Fill Selection" msgstr "Allt úrvalið" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "GridMap Duplicate Selection" -msgstr "" +#, fuzzy +msgid "GridMap Paste Selection" +msgstr "Allt úrvalið" #: modules/gridmap/grid_map_editor_plugin.cpp msgid "GridMap Paint" @@ -8922,18 +10331,6 @@ msgid "Cursor Clear Rotation" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Create Area" -msgstr "" - -#: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Create Exterior Connector" -msgstr "" - -#: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Erase Area" -msgstr "" - -#: modules/gridmap/grid_map_editor_plugin.cpp msgid "Clear Selection" msgstr "" @@ -9285,15 +10682,7 @@ msgid "Available Nodes:" msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Select or create a function to edit graph" -msgstr "" - -#: modules/visual_script/visual_script_editor.cpp -msgid "Edit Signal Arguments:" -msgstr "" - -#: modules/visual_script/visual_script_editor.cpp -msgid "Edit Variable:" +msgid "Select or create a function to edit its graph." msgstr "" #: modules/visual_script/visual_script_editor.cpp @@ -9423,6 +10812,19 @@ msgid "Debug keystore not configured in the Editor Settings nor in the preset." msgstr "" #: platform/android/export/export.cpp +msgid "Custom build requires a valid Android SDK path in Editor Settings." +msgstr "" + +#: platform/android/export/export.cpp +msgid "Invalid Android SDK path for custom build in Editor Settings." +msgstr "" + +#: platform/android/export/export.cpp +msgid "" +"Android project is not installed for compiling. Install from Editor menu." +msgstr "" + +#: platform/android/export/export.cpp msgid "Invalid public key for APK expansion." msgstr "" @@ -9430,6 +10832,34 @@ msgstr "" msgid "Invalid package name:" msgstr "" +#: platform/android/export/export.cpp +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 "" +"Android build version mismatch:\n" +" Template installed: %s\n" +" Godot Version: %s\n" +"Please reinstall Android build template from 'Project' menu." +msgstr "" + +#: platform/android/export/export.cpp +msgid "Building Android Project (gradle)" +msgstr "" + +#: 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 "" + +#: platform/android/export/export.cpp +msgid "No build apk generated at: " +msgstr "" + #: platform/iphone/export/export.cpp msgid "Identifier is missing." msgstr "" @@ -9682,27 +11112,27 @@ msgid "ARVRCamera must have an ARVROrigin node as its parent" msgstr "" #: scene/3d/arvr_nodes.cpp -msgid "ARVRController must have an ARVROrigin node as its parent" +msgid "ARVRController must have an ARVROrigin node as its parent." msgstr "" #: scene/3d/arvr_nodes.cpp msgid "" -"The controller id must not be 0 or this controller will not be bound to an " -"actual controller" +"The controller ID must not be 0 or this controller won't be bound to an " +"actual controller." msgstr "" #: scene/3d/arvr_nodes.cpp -msgid "ARVRAnchor must have an ARVROrigin node as its parent" +msgid "ARVRAnchor must have an ARVROrigin node as its parent." msgstr "" #: scene/3d/arvr_nodes.cpp msgid "" -"The anchor id must not be 0 or this anchor will not be bound to an actual " -"anchor" +"The anchor ID must not be 0 or this anchor won't be bound to an actual " +"anchor." msgstr "" #: scene/3d/arvr_nodes.cpp -msgid "ARVROrigin requires an ARVRCamera child node" +msgid "ARVROrigin requires an ARVRCamera child node." msgstr "" #: scene/3d/baked_lightmap.cpp @@ -9772,8 +11202,8 @@ msgstr "" #: scene/3d/cpu_particles.cpp msgid "" -"CPUParticles animation requires the usage of a SpatialMaterial with " -"\"Billboard Particles\" enabled." +"CPUParticles animation requires the usage of a SpatialMaterial whose " +"Billboard Mode is set to \"Particle Billboard\"." msgstr "" #: scene/3d/gi_probe.cpp @@ -9810,8 +11240,8 @@ msgstr "" #: scene/3d/particles.cpp msgid "" -"Particles animation requires the usage of a SpatialMaterial with \"Billboard " -"Particles\" enabled." +"Particles animation requires the usage of a SpatialMaterial whose Billboard " +"Mode is set to \"Particle Billboard\"." msgstr "" #: scene/3d/path.cpp @@ -9836,7 +11266,7 @@ msgid "Path property must point to a valid Spatial node to work." msgstr "" #: scene/3d/soft_body.cpp -msgid "This body will be ignored until you set a mesh" +msgid "This body will be ignored until you set a mesh." msgstr "" #: scene/3d/soft_body.cpp @@ -9933,7 +11363,7 @@ msgstr "" msgid "" "Container by itself serves no purpose unless a script configures it's " "children placement behavior.\n" -"If you dont't intend to add a script, then please use a plain 'Control' node " +"If you don't intend to add a script, then please use a plain 'Control' node " "instead." msgstr "" @@ -9945,10 +11375,6 @@ msgstr "" msgid "Please Confirm..." msgstr "" -#: scene/gui/file_dialog.cpp -msgid "Go to parent folder." -msgstr "" - #: scene/gui/popup.cpp msgid "" "Popups will hide by default unless you call popup() or any of the popup*() " @@ -10021,13 +11447,9 @@ msgstr "" msgid "Varyings can only be assigned in vertex function." msgstr "" -#, fuzzy -#~ msgid "Remove Split" -#~ msgstr "Fjarlægja val" - -#, fuzzy -#~ msgid "Disabled" -#~ msgstr "Óvirkt" +#: servers/visual/shader_language.cpp +msgid "Constants cannot be modified." +msgstr "" #, fuzzy #~ msgid "Move Anim Track Up" diff --git a/editor/translations/it.po b/editor/translations/it.po index 3dbfa81714..6fd9d77343 100644 --- a/editor/translations/it.po +++ b/editor/translations/it.po @@ -33,12 +33,13 @@ # MassiminoilTrace <omino.gis@gmail.com>, 2019. # MARCO BANFI <mbanfi@gmail.com>, 2019. # Marco <rodomar705@gmail.com>, 2019. +# Davide Giuliano <davidegiuliano00@gmail.com>, 2019. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2019-04-14 13:04+0000\n" -"Last-Translator: Marco Galli <mrcgll98@gmail.com>\n" +"PO-Revision-Date: 2019-06-16 19:42+0000\n" +"Last-Translator: RHC <rhc.throwaway@gmail.com>\n" "Language-Team: Italian <https://hosted.weblate.org/projects/godot-engine/" "godot/it/>\n" "Language: it\n" @@ -46,7 +47,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.6-dev\n" +"X-Generator: Weblate 3.7-dev\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -102,6 +103,15 @@ msgstr "Bilanciato" msgid "Mirror" msgstr "Rifletti" +#: editor/animation_bezier_editor.cpp editor/editor_profiler.cpp +msgid "Time:" +msgstr "Tempo:" + +#: editor/animation_bezier_editor.cpp +#, fuzzy +msgid "Value:" +msgstr "Valore" + #: editor/animation_bezier_editor.cpp msgid "Insert Key Here" msgstr "Inserisci chiave" @@ -185,14 +195,20 @@ msgid "Animation Playback Track" msgstr "Traccia di riproduzione animazione" #: editor/animation_track_editor.cpp -msgid "Add Track" -msgstr "Aggiungi Traccia" +#, fuzzy +msgid "Animation length (frames)" +msgstr "Durata Animazione (in secondi)" #: editor/animation_track_editor.cpp -msgid "Animation Length Time (seconds)" +#, fuzzy +msgid "Animation length (seconds)" msgstr "Durata Animazione (in secondi)" #: editor/animation_track_editor.cpp +msgid "Add Track" +msgstr "Aggiungi Traccia" + +#: editor/animation_track_editor.cpp msgid "Animation Looping" msgstr "Ciclicità Animazione" @@ -316,11 +332,13 @@ msgid "Create %d NEW tracks and insert keys?" msgstr "Creare %d NUOVE tracce e inserire la chiave?" #: editor/animation_track_editor.cpp editor/create_dialog.cpp -#: editor/editor_audio_buses.cpp editor/editor_plugin_settings.cpp -#: editor/plugin_config_dialog.cpp +#: editor/editor_audio_buses.cpp editor/editor_feature_profile.cpp +#: editor/editor_plugin_settings.cpp editor/plugin_config_dialog.cpp #: editor/plugins/abstract_polygon_2d_editor.cpp #: editor/plugins/mesh_instance_editor_plugin.cpp -#: editor/plugins/particles_editor_plugin.cpp editor/script_create_dialog.cpp +#: editor/plugins/particles_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_create_dialog.cpp msgid "Create" msgstr "Crea" @@ -438,6 +456,23 @@ msgstr "" "tratta di una traccia singola." #: editor/animation_track_editor.cpp +msgid "" +"This animation belongs to an imported scene, so changes to imported tracks " +"will not be saved.\n" +"\n" +"To enable the ability to add custom tracks, navigate to the scene's import " +"settings and set\n" +"\"Animation > Storage\" to \"Files\", enable \"Animation > Keep Custom Tracks" +"\", then re-import.\n" +"Alternatively, use an import preset that imports animations to separate " +"files." +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Warning: Editing imported animation" +msgstr "" + +#: editor/animation_track_editor.cpp msgid "Only show tracks from nodes selected in tree." msgstr "Mostra solo le tracce dei nodi selezionati nell'albero." @@ -455,8 +490,9 @@ msgid "Animation step value." msgstr "Valore del passo dell'animazione." #: editor/animation_track_editor.cpp +#, fuzzy msgid "Seconds" -msgstr "" +msgstr "Secondi" #: editor/animation_track_editor.cpp msgid "FPS" @@ -571,7 +607,8 @@ msgstr "Fattore di scalatura:" msgid "Select tracks to copy:" msgstr "Seleziona le tracce da copiare:" -#: editor/animation_track_editor.cpp editor/editor_properties.cpp +#: editor/animation_track_editor.cpp editor/editor_log.cpp +#: editor/editor_properties.cpp #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp @@ -639,6 +676,11 @@ msgstr "Rimpiazza tutti" msgid "Selection Only" msgstr "Solo selezione" +#: editor/code_editor.cpp editor/plugins/script_text_editor.cpp +#: editor/plugins/text_editor.cpp +msgid "Standard" +msgstr "Standard" + #: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/texture_region_editor_plugin.cpp #: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp @@ -664,21 +706,39 @@ msgid "Line and column numbers." msgstr "Numeri di riga e colonna." #: editor/connections_dialog.cpp -msgid "Method in target Node must be specified!" +#, fuzzy +msgid "Method in target node must be specified." msgstr "Deve essere specificato il metodo nel nodo di target!" #: editor/connections_dialog.cpp +#, fuzzy msgid "" -"Target method not found! Specify a valid method or attach a script to target " -"Node." +"Target method not found. Specify a valid method or attach a script to the " +"target node." msgstr "" "Metodo di destinazione non trovato! Specifica un metodo valido o annetti uno " "script al nodo di destinazione." #: editor/connections_dialog.cpp -msgid "Connect To Node:" +#, fuzzy +msgid "Connect to Node:" msgstr "Connetti al nodo:" +#: editor/connections_dialog.cpp +#, fuzzy +msgid "Connect to Script:" +msgstr "Impossibile connetersi all'host:" + +#: editor/connections_dialog.cpp +#, fuzzy +msgid "From Signal:" +msgstr "Segnali:" + +#: editor/connections_dialog.cpp +#, fuzzy +msgid "Scene does not contain any script." +msgstr "Il nodo non contiene geometria." + #: editor/connections_dialog.cpp editor/editor_autoload_settings.cpp #: editor/groups_editor.cpp editor/plugins/item_list_editor_plugin.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_settings_editor.cpp @@ -686,10 +746,12 @@ msgid "Add" msgstr "Aggiungi" #: editor/connections_dialog.cpp editor/dependency_editor.cpp -#: editor/groups_editor.cpp editor/plugins/animation_player_editor_plugin.cpp +#: editor/editor_feature_profile.cpp editor/groups_editor.cpp +#: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp #: editor/plugins/resource_preloader_editor_plugin.cpp -#: editor/plugins/theme_editor_plugin.cpp editor/project_manager.cpp +#: editor/plugins/theme_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_manager.cpp #: editor/project_settings_editor.cpp msgid "Remove" msgstr "Rimuovi" @@ -703,21 +765,32 @@ msgid "Extra Call Arguments:" msgstr "Argomenti chiamata extra:" #: editor/connections_dialog.cpp -msgid "Path to Node:" -msgstr "Percorso per il nodo:" - -#: editor/connections_dialog.cpp -msgid "Make Function" -msgstr "Rendi funzione" +#, fuzzy +msgid "Advanced" +msgstr "Opzioni avanzate" #: editor/connections_dialog.cpp msgid "Deferred" msgstr "Differita" #: editor/connections_dialog.cpp +msgid "" +"Defers the signal, storing it in a queue and only firing it at idle time." +msgstr "" + +#: editor/connections_dialog.cpp msgid "Oneshot" msgstr "Oneshot" +#: editor/connections_dialog.cpp +msgid "Disconnects the signal after its first emission." +msgstr "" + +#: editor/connections_dialog.cpp +#, fuzzy +msgid "Cannot connect signal" +msgstr "Connetti il segnale: " + #: editor/connections_dialog.cpp editor/dependency_editor.cpp #: editor/export_template_manager.cpp editor/groups_editor.cpp #: editor/plugins/animation_player_editor_plugin.cpp @@ -758,11 +831,13 @@ msgid "Disconnect" msgstr "Disconnetti" #: editor/connections_dialog.cpp -msgid "Connect Signal: " +#, fuzzy +msgid "Connect a Signal to a Method" msgstr "Connetti il segnale: " #: editor/connections_dialog.cpp -msgid "Edit Connection: " +#, fuzzy +msgid "Edit Connection:" msgstr "Modifica connessione: " #: editor/connections_dialog.cpp @@ -794,7 +869,6 @@ msgid "Change %s Type" msgstr "Cambia tipo di %s" #: editor/create_dialog.cpp editor/project_settings_editor.cpp -#: modules/visual_script/visual_script_editor.cpp msgid "Change" msgstr "Cambia" @@ -825,7 +899,8 @@ msgid "Matches:" msgstr "Corrispondenze:" #: editor/create_dialog.cpp editor/plugin_config_dialog.cpp -#: editor/plugins/asset_library_editor_plugin.cpp editor/property_selector.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/property_selector.cpp #: modules/visual_script/visual_script_property_selector.cpp msgid "Description:" msgstr "Descrizione:" @@ -839,17 +914,19 @@ msgid "Dependencies For:" msgstr "Dipendenze per:" #: editor/dependency_editor.cpp +#, fuzzy msgid "" "Scene '%s' is currently being edited.\n" -"Changes will not take effect unless reloaded." +"Changes will only take effect when reloaded." msgstr "" "La scena '%s' è al momento in modifica.\n" "I cambiamenti non avranno effetto a meno che venga ricaricata." #: editor/dependency_editor.cpp +#, fuzzy msgid "" "Resource '%s' is in use.\n" -"Changes will take effect when reloaded." +"Changes will only take effect when reloaded." msgstr "" "La risorsa '%s' è in uso.\n" "I cambiamenti avranno effetto quando sarà ricaricata." @@ -945,21 +1022,14 @@ msgid "Permanently delete %d item(s)? (No undo!)" msgstr "Eliminare permanentemente %d elementi? (Non annullabile!)" #: editor/dependency_editor.cpp -msgid "Owns" -msgstr "Possiede" - -#: editor/dependency_editor.cpp -msgid "Resources Without Explicit Ownership:" -msgstr "Risorse non Possedute Esplicitamente:" +#, fuzzy +msgid "Show Dependencies" +msgstr "Dipendenze" #: editor/dependency_editor.cpp editor/editor_node.cpp msgid "Orphan Resource Explorer" msgstr "Esplora risorse orfane" -#: editor/dependency_editor.cpp -msgid "Delete selected files?" -msgstr "Eliminare i file selezionati?" - #: editor/dependency_editor.cpp editor/editor_audio_buses.cpp #: editor/editor_file_dialog.cpp editor/editor_node.cpp #: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp @@ -968,6 +1038,14 @@ msgstr "Eliminare i file selezionati?" msgid "Delete" msgstr "Elimina" +#: editor/dependency_editor.cpp +msgid "Owns" +msgstr "Possiede" + +#: editor/dependency_editor.cpp +msgid "Resources Without Explicit Ownership:" +msgstr "Risorse non Possedute Esplicitamente:" + #: editor/dictionary_property_edit.cpp msgid "Change Dictionary Key" msgstr "Cambia Chiave Dizionario" @@ -1081,7 +1159,7 @@ msgstr "Pacchetto installato con successo!" msgid "Success!" msgstr "Successo!" -#: editor/editor_asset_installer.cpp +#: editor/editor_asset_installer.cpp editor/editor_node.cpp #: editor/plugins/asset_library_editor_plugin.cpp msgid "Install" msgstr "Installa" @@ -1208,8 +1286,12 @@ msgid "Open Audio Bus Layout" msgstr "Apri disposizione bus audio" #: editor/editor_audio_buses.cpp -msgid "There is no 'res://default_bus_layout.tres' file." -msgstr "Non esiste il file 'res://default_bus_layout.tres'." +msgid "There is no '%s' file." +msgstr "" + +#: editor/editor_audio_buses.cpp editor/plugins/canvas_item_editor_plugin.cpp +msgid "Layout" +msgstr "Layout" #: editor/editor_audio_buses.cpp msgid "Invalid file, not an audio bus layout." @@ -1262,24 +1344,31 @@ msgid "Valid characters:" msgstr "Caratteri validi:" #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing engine class name." +#, fuzzy +msgid "Must not collide with an existing engine class name." msgstr "" "Nome non valido. Non deve essere in conflitto con un nome di classe " "dell'engine esistente." #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing buit-in type name." +#, fuzzy +msgid "Must not collide with an existing buit-in type name." msgstr "" "Nome non valido. Non deve essere in conflitto con un nome di tipo built-in " "esistente." #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing global constant name." +#, fuzzy +msgid "Must not collide with an existing global constant name." msgstr "" "Nome non valido. Non deve essere in conflitto con un nome di una costante " "globale esistente." #: editor/editor_autoload_settings.cpp +msgid "Keyword cannot be used as an autoload name." +msgstr "" + +#: editor/editor_autoload_settings.cpp msgid "Autoload '%s' already exists!" msgstr "Autoload '%s' esiste già !" @@ -1307,11 +1396,12 @@ msgstr "Abilita" msgid "Rearrange Autoloads" msgstr "Riordina gli Autoload" -#: editor/editor_autoload_settings.cpp -msgid "Invalid Path." +#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp +#, fuzzy +msgid "Invalid path." msgstr "Percorso non valido." -#: editor/editor_autoload_settings.cpp +#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp msgid "File does not exist." msgstr "File inesistente." @@ -1362,7 +1452,8 @@ msgid "[unsaved]" msgstr "[non salvato]" #: editor/editor_dir_dialog.cpp -msgid "Please select a base directory first" +#, fuzzy +msgid "Please select a base directory first." msgstr "Si prega di selezionare prima una cartella di base" #: editor/editor_dir_dialog.cpp @@ -1370,7 +1461,8 @@ msgid "Choose a Directory" msgstr "Scegli una cartella" #: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp -#: editor/filesystem_dock.cpp scene/gui/file_dialog.cpp +#: editor/filesystem_dock.cpp editor/project_manager.cpp +#: scene/gui/file_dialog.cpp msgid "Create Folder" msgstr "Crea cartella" @@ -1446,6 +1538,178 @@ msgstr "Template di release personalizzato non trovato." msgid "Template file not found:" msgstr "Template non trovato:" +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "3D Editor" +msgstr "Editor" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Script Editor" +msgstr "Apri Editor Script" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Asset Library" +msgstr "Apri Libreria degli Asset" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Scene Tree Editing" +msgstr "Scene Tree (Nodi):" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Import Dock" +msgstr "Importa" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Node Dock" +msgstr "Nodo Spostato" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Filesystem Dock" +msgstr "Filesystem" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Erase profile '%s'? (no undo)" +msgstr "Sostituisci tutto (no undo)" + +#: editor/editor_feature_profile.cpp +msgid "Profile must be a valid filename and must not contain '.'" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Profile with this name already exists." +msgstr "Un file o cartella con questo nome é già esistente." + +#: editor/editor_feature_profile.cpp +msgid "(Editor Disabled, Properties Disabled)" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "(Properties Disabled)" +msgstr "Solo le proprietà " + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "(Editor Disabled)" +msgstr "Clip Disabilitata" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Class Options:" +msgstr "Descrizione della classe:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enable Contextual Editor" +msgstr "Apri l'Editor successivo" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enabled Properties:" +msgstr "Proprietà :" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enabled Features:" +msgstr "Funzionalità " + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enabled Classes:" +msgstr "Cerca Classi" + +#: editor/editor_feature_profile.cpp +msgid "File '%s' format is invalid, import aborted." +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "" +"Profile '%s' already exists. Remote it first before importing, import " +"aborted." +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Error saving profile to path: '%s'." +msgstr "Errore caricamento template '%s'" + +#: editor/editor_feature_profile.cpp +msgid "Unset" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Current Profile" +msgstr "Versione Corrente:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Make Current" +msgstr "Corrente:" + +#: editor/editor_feature_profile.cpp +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "New" +msgstr "Nuovo" + +#: editor/editor_feature_profile.cpp editor/editor_node.cpp +#: editor/plugins/asset_library_editor_plugin.cpp editor/project_manager.cpp +msgid "Import" +msgstr "Importa" + +#: editor/editor_feature_profile.cpp editor/editor_node.cpp +#: editor/project_export.cpp +msgid "Export" +msgstr "Esporta" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Available Profiles" +msgstr "Nodi Disponibili:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enabled Classes" +msgstr "Cerca Classi" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Class Options" +msgstr "Descrizione della classe" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "New profile name:" +msgstr "Nuovo nome:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Erase Profile" +msgstr "Cancella Area" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Import Profile(s)" +msgstr "Progetto Importato" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Export Profile" +msgstr "Esporta progetto" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Manage Editor Feature Profiles" +msgstr "Gestisci template d'esportazione" + #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Select Current Folder" msgstr "Seleziona la cartella attuale" @@ -1466,8 +1730,8 @@ msgstr "Copia percorso" msgid "Open in File Manager" msgstr "Apri nel gestore file" -#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp -#: editor/project_manager.cpp +#: editor/editor_file_dialog.cpp editor/editor_node.cpp +#: editor/filesystem_dock.cpp editor/project_manager.cpp msgid "Show in File Manager" msgstr "Mostra nel gestore file" @@ -1526,7 +1790,7 @@ msgstr "Va' avanti" msgid "Go Up" msgstr "Va' su" -#: editor/editor_file_dialog.cpp +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Toggle Hidden Files" msgstr "Commuta visibilità file nascosti" @@ -1558,14 +1822,19 @@ msgstr "Cartella precedente" msgid "Next Folder" msgstr "Cartella successiva" -#: editor/editor_file_dialog.cpp -msgid "Go to parent folder" -msgstr "Va' alla cartella superiore" +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp +msgid "Go to parent folder." +msgstr "Vai alla cartella genitore." #: editor/editor_file_dialog.cpp msgid "(Un)favorite current folder." msgstr "Aggiungi/rimuovi cartella attuale dai preferiti." +#: editor/editor_file_dialog.cpp +#, fuzzy +msgid "Toggle visibility of hidden files." +msgstr "Commuta visibilità file nascosti" + #: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp msgid "View items as a grid of thumbnails." msgstr "Visualizza elementi come una griglia di miniature." @@ -1580,6 +1849,7 @@ msgstr "File e cartelle:" #: editor/editor_file_dialog.cpp editor/plugins/sprite_editor_plugin.cpp #: editor/plugins/style_box_editor_plugin.cpp +#: editor/plugins/theme_editor_plugin.cpp msgid "Preview:" msgstr "Anteprima:" @@ -1596,6 +1866,12 @@ msgid "ScanSources" msgstr "ScansionaSorgenti" #: editor/editor_file_system.cpp +msgid "" +"There are multiple importers for different types pointing to file %s, import " +"aborted" +msgstr "" + +#: editor/editor_file_system.cpp msgid "(Re)Importing Assets" msgstr "(Re)Importando gli asset" @@ -1778,6 +2054,10 @@ msgstr "Imposta multiplo:" msgid "Output:" msgstr "Output:" +#: editor/editor_log.cpp editor/plugins/tile_map_editor_plugin.cpp +msgid "Copy Selection" +msgstr "Copia Selezione" + #: editor/editor_log.cpp editor/editor_profiler.cpp #: editor/editor_properties.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp @@ -1823,7 +2103,7 @@ msgstr "Salva risorsa come..." #: editor/editor_node.cpp msgid "Can't open file for writing:" -msgstr "Impossibile aprire il file per la scrittura:" +msgstr "Impossibile aprire il file in scrittura:" #: editor/editor_node.cpp msgid "Requested file format unknown:" @@ -1936,9 +2216,10 @@ msgstr "" "scene per comprendere al meglio questo workflow." #: editor/editor_node.cpp +#, fuzzy msgid "" "This resource belongs to a scene that was instanced or inherited.\n" -"Changes to it will not be kept when saving the current scene." +"Changes to it won't be kept when saving the current scene." msgstr "" "Questa risorsa appartiene a una scena istanziata o ereditata.\n" "Le modifiche ad essa non verranno mantenute salvando la scena corrente." @@ -1952,8 +2233,9 @@ msgstr "" "impostazioni nel pannello di importazione e re-importala." #: editor/editor_node.cpp +#, fuzzy msgid "" -"This scene was imported, so changes to it will not be kept.\n" +"This scene was imported, so changes to it won't be kept.\n" "Instancing it or inheriting will allow making changes to it.\n" "Please read the documentation relevant to importing scenes to better " "understand this workflow." @@ -1965,8 +2247,9 @@ msgstr "" "scene per comprendere meglio questo workflow." #: editor/editor_node.cpp +#, fuzzy msgid "" -"This is a remote object so changes to it will not be kept.\n" +"This is a remote object, so changes to it won't be kept.\n" "Please read the documentation relevant to debugging to better understand " "this workflow." msgstr "" @@ -1980,36 +2263,6 @@ msgid "There is no defined scene to run." msgstr "Non c'è nessuna scena definita da eseguire." #: editor/editor_node.cpp -msgid "" -"No main scene has ever been defined, select one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" -"Nessuna scena principale è stata definita, selezionarne una?\n" -"Puoi cambiarla successivamente da \"Impostazioni progetto\" sotto la " -"categoria 'applicazioni'." - -#: editor/editor_node.cpp -msgid "" -"Selected scene '%s' does not exist, select a valid one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" -"La scena selezionata '%s' non esiste, sceglierne una valida?\n" -"Puoi cambiarla successivamente da \"Impostazioni progetto\" sotto la " -"categoria 'applicazioni'." - -#: editor/editor_node.cpp -msgid "" -"Selected scene '%s' is not a scene file, select a valid one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" -"La scena selezionata '%s non è un file scena, sceglierne una valida?\n" -"Puoi cambiarla successivamente da \"Impostazioni progetto\" sotto la " -"categoria 'applicazioni'." - -#: editor/editor_node.cpp msgid "Current scene was never saved, please save it prior to running." msgstr "" "La scena attuale non è mai stata salvata, si prega di salvarla prima di " @@ -2019,7 +2272,7 @@ msgstr "" msgid "Could not start subprocess!" msgstr "Impossibile avviare sottoprocesso!" -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/filesystem_dock.cpp msgid "Open Scene" msgstr "Apri scena" @@ -2028,16 +2281,21 @@ msgid "Open Base Scene" msgstr "Apri scena base" #: editor/editor_node.cpp +#, fuzzy +msgid "Quick Open..." +msgstr "Apri scena rapidamente..." + +#: editor/editor_node.cpp msgid "Quick Open Scene..." msgstr "Apri scena rapidamente..." #: editor/editor_node.cpp msgid "Quick Open Script..." -msgstr "Apri Script Rapido..." +msgstr "Apri script rapidamente..." #: editor/editor_node.cpp msgid "Save & Close" -msgstr "Salva e Chiudi" +msgstr "Salva e chiudi" #: editor/editor_node.cpp msgid "Save changes to '%s' before closing?" @@ -2053,7 +2311,7 @@ msgstr "È necessario un nodo radice per salvare la scena." #: editor/editor_node.cpp msgid "Save Scene As..." -msgstr "Salva Scena Come..." +msgstr "Salva scena con nome..." #: editor/editor_node.cpp msgid "No" @@ -2061,7 +2319,7 @@ msgstr "No" #: editor/editor_node.cpp msgid "Yes" -msgstr "Si" +msgstr "Sì" #: editor/editor_node.cpp msgid "This scene has never been saved. Save before running?" @@ -2089,7 +2347,7 @@ msgstr "Questa operazione non può essere eseguita senza un nodo selezionato." #: editor/editor_node.cpp msgid "Current scene not saved. Open anyway?" -msgstr "Scena corrente non salvata. Aprire comunque?" +msgstr "Scena attuale non salvata. Aprirla comunque?" #: editor/editor_node.cpp msgid "Can't reload a scene that was never saved." @@ -2105,7 +2363,7 @@ msgstr "Questa azione non può essere annullata. Ripristinare comunque?" #: editor/editor_node.cpp msgid "Quick Run Scene..." -msgstr "Esegui Scena Rapido..." +msgstr "Esegui scena rapidamente..." #: editor/editor_node.cpp msgid "Quit" @@ -2121,7 +2379,7 @@ msgstr "Aprire Gestione Progetti?" #: editor/editor_node.cpp msgid "Save & Quit" -msgstr "Salva e Esci" +msgstr "Salva ed esci" #: editor/editor_node.cpp msgid "Save changes to the following scene(s) before quitting?" @@ -2130,19 +2388,20 @@ msgstr "Salvare le modifiche alle scene seguenti prima di uscire?" #: editor/editor_node.cpp msgid "Save changes the following scene(s) before opening Project Manager?" msgstr "" -"Salvare le modifiche alle scene seguenti prima di aprire il Manager Progetti?" +"Salvare le modifiche alle scene seguenti prima di aprire la Gestione " +"progetti?" #: editor/editor_node.cpp msgid "" "This option is deprecated. Situations where refresh must be forced are now " "considered a bug. Please report." msgstr "" -"Questa opzione é deprecata. Situazioni dove un refresh é obbligatorio sono " -"ora considerate come bug. Si prega di effettuare un report." +"Questa opzione è deprecata. Situazioni dove un refresh è obbligatorio sono " +"ora considerate come bug. Si prega di segnalarlo." #: editor/editor_node.cpp msgid "Pick a Main Scene" -msgstr "Scegli una Scena Principale" +msgstr "Scegli una Scena principale" #: editor/editor_node.cpp msgid "Unable to enable addon plugin at: '%s' parsing of config failed." @@ -2186,9 +2445,9 @@ msgid "" "Scene '%s' was automatically imported, so it can't be modified.\n" "To make changes to it, a new inherited scene can be created." msgstr "" -"La scena '%s' é stata automaticamente importata, pertanto non puo essere " +"La scena '%s' è stata automaticamente importata, pertanto non può essere " "modificata.\n" -"Per effettuare cambiamenti, puo essere creata una nuova scena ereditata." +"Per modificarla, puoi essere creata una nuova scena ereditata." #: editor/editor_node.cpp msgid "" @@ -2205,7 +2464,37 @@ msgstr "La scena '%s' ha rotto le dipendenze:" #: editor/editor_node.cpp msgid "Clear Recent Scenes" -msgstr "Rimuovi Scene Recenti" +msgstr "Rimuovi scene recenti" + +#: editor/editor_node.cpp +msgid "" +"No main scene has ever been defined, select one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" +"Nessuna scena principale è stata definita, selezionarne una?\n" +"Puoi cambiarla successivamente da \"Impostazioni progetto\" sotto la " +"categoria 'applicazioni'." + +#: editor/editor_node.cpp +msgid "" +"Selected scene '%s' does not exist, select a valid one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" +"La scena selezionata '%s' non esiste, sceglierne una valida?\n" +"Puoi cambiarla successivamente da \"Impostazioni progetto\" sotto la " +"categoria 'applicazioni'." + +#: editor/editor_node.cpp +msgid "" +"Selected scene '%s' is not a scene file, select a valid one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" +"La scena selezionata '%s non è un file scena, sceglierne una valida?\n" +"Puoi cambiarla successivamente da \"Impostazioni progetto\" sotto la " +"categoria 'applicazioni'." #: editor/editor_node.cpp msgid "Save Layout" @@ -2223,7 +2512,7 @@ msgstr "Default" #: editor/editor_node.cpp editor/editor_properties.cpp #: editor/plugins/script_editor_plugin.cpp editor/property_editor.cpp msgid "Show in FileSystem" -msgstr "Mostra nel FileSystem" +msgstr "Mostra nel filesystem" #: editor/editor_node.cpp msgid "Play This Scene" @@ -2233,6 +2522,19 @@ msgstr "Esegui Scena" msgid "Close Tab" msgstr "Chiudi scheda" +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +msgid "Close Other Tabs" +msgstr "Chiudi le altre schede" + +#: editor/editor_node.cpp +msgid "Close Tabs to the Right" +msgstr "" + +#: editor/editor_node.cpp +#, fuzzy +msgid "Close All Tabs" +msgstr "Chiudi Tutto" + #: editor/editor_node.cpp msgid "Switch Scene Tab" msgstr "Cambia Tab di Scena" @@ -2255,11 +2557,11 @@ msgstr "Posizione dock" #: editor/editor_node.cpp msgid "Distraction Free Mode" -msgstr "Modalità Senza Distrazioni" +msgstr "Modalità senza distrazioni" #: editor/editor_node.cpp msgid "Toggle distraction-free mode." -msgstr "Abilita modalità senza distrazioni." +msgstr "Commuta modalità senza distrazioni." #: editor/editor_node.cpp msgid "Add a new scene." @@ -2283,7 +2585,7 @@ msgstr "Scheda precedente" #: editor/editor_node.cpp msgid "Filter Files..." -msgstr "Filtra Files..." +msgstr "Filtra file..." #: editor/editor_node.cpp msgid "Operations with scene files." @@ -2295,31 +2597,31 @@ msgstr "Nuova scena" #: editor/editor_node.cpp msgid "New Inherited Scene..." -msgstr "Nuova Scena Ereditata..." +msgstr "Nuova scena ereditata..." #: editor/editor_node.cpp msgid "Open Scene..." -msgstr "Apri Scena..." +msgstr "Apri scena..." #: editor/editor_node.cpp msgid "Save Scene" -msgstr "Salva Scena" +msgstr "Salva scena" #: editor/editor_node.cpp msgid "Save All Scenes" -msgstr "Salva tutte le Scene" +msgstr "Salva tutte le scene" #: editor/editor_node.cpp msgid "Close Scene" -msgstr "Chiudi Scena" +msgstr "Chiudi scena" #: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp msgid "Open Recent" -msgstr "Apri Recente" +msgstr "Apri recente" #: editor/editor_node.cpp msgid "Convert To..." -msgstr "Converti In..." +msgstr "Converti in..." #: editor/editor_node.cpp msgid "MeshLibrary..." @@ -2337,11 +2639,11 @@ msgstr "Annulla" #: editor/editor_node.cpp editor/plugins/script_text_editor.cpp #: scene/gui/line_edit.cpp scene/gui/text_edit.cpp msgid "Redo" -msgstr "Redo" +msgstr "Rifai" #: editor/editor_node.cpp msgid "Revert Scene" -msgstr "Ripristina Scena" +msgstr "Ripristina scena" #: editor/editor_node.cpp msgid "Miscellaneous project or scene-wide tools." @@ -2353,11 +2655,7 @@ msgstr "Progetto" #: editor/editor_node.cpp msgid "Project Settings" -msgstr "Impostazioni Progetto" - -#: editor/editor_node.cpp editor/project_export.cpp -msgid "Export" -msgstr "Esporta" +msgstr "Impostazioni progetto" #: editor/editor_node.cpp editor/plugins/tile_set_editor_plugin.cpp msgid "Tools" @@ -2368,8 +2666,12 @@ msgid "Open Project Data Folder" msgstr "Apri la cartella del progetto" #: editor/editor_node.cpp +msgid "Install Android Build Template" +msgstr "" + +#: editor/editor_node.cpp msgid "Quit to Project List" -msgstr "Esci alla Lista Progetti" +msgstr "Esci e torna alla lista progetti" #: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp #: editor/project_export.cpp @@ -2378,7 +2680,7 @@ msgstr "Debug" #: editor/editor_node.cpp msgid "Deploy with Remote Debug" -msgstr "Distribuzione con il Debug Remoto" +msgstr "Distribuzione con Debug remoto" #: editor/editor_node.cpp msgid "" @@ -2409,14 +2711,14 @@ msgstr "" #: editor/editor_node.cpp msgid "Visible Collision Shapes" -msgstr "Forme di Collisione Visibili" +msgstr "Forme di collisione visibili" #: 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 "" -"Le forme di collisione e i nodi di raycast (per il 2D e 3D) Saranno visibili " +"Le forme di collisione e i nodi di raycast (per il 2D e 3D) saranno visibili " "nel gioco in esecuzione se l'opzione è attiva." #: editor/editor_node.cpp @@ -2433,7 +2735,7 @@ msgstr "" #: editor/editor_node.cpp msgid "Sync Scene Changes" -msgstr "Sincronizza Cambiamenti Scena" +msgstr "Sincronizza cambiamenti scena" #: editor/editor_node.cpp msgid "" @@ -2444,12 +2746,12 @@ msgid "" msgstr "" "Quando questa opzione è attiva, qualsiasi cambiamento fatto alla scena " "nell'editor sarà replicato nel gioco in esecuzione.\n" -"Quando usata remotamente su un dispositivo, essa è più efficiente con il " +"Quando usata in remoto su un dispositivo, sarà più efficiente con un " "filesystem in rete." #: editor/editor_node.cpp msgid "Sync Script Changes" -msgstr "Sincronizza Cambiamenti Script" +msgstr "Sincronizza cambiamenti script" #: editor/editor_node.cpp msgid "" @@ -2460,7 +2762,7 @@ msgid "" msgstr "" "Quando questa opzione è attiva, qualsiasi script salvato verrà ricaricato " "nel gioco in esecuzione.\n" -"Quando usata remotamente su un dispositivo, essa è più efficiente con il " +"Quando usata in remoto su un dispositivo, sarà più efficiente con un " "filesystem in rete." #: editor/editor_node.cpp @@ -2469,31 +2771,36 @@ msgstr "Editor" #: editor/editor_node.cpp editor/settings_config_dialog.cpp msgid "Editor Settings" -msgstr "Impostazioni Editor" +msgstr "Impostazioni editor" #: editor/editor_node.cpp msgid "Editor Layout" -msgstr "Layout dell'Editor" +msgstr "Layout dell'editor" #: editor/editor_node.cpp msgid "Toggle Fullscreen" -msgstr "Abilita/Disabilita Fullscreen" +msgstr "Abilita/Disabilita modalità a schermo intero" #: editor/editor_node.cpp msgid "Open Editor Data/Settings Folder" -msgstr "Apri Cartella Dati/Impostazioni Editor" +msgstr "Apri cartella dati/impostazioni editor" #: editor/editor_node.cpp msgid "Open Editor Data Folder" -msgstr "Apri la Cartella Dati dell'Editor" +msgstr "Apri la cartella dati dell'editor" #: editor/editor_node.cpp msgid "Open Editor Settings Folder" -msgstr "Apri Cartella Impostazioni Editor" +msgstr "Apri cartella impostazioni editor" + +#: editor/editor_node.cpp +#, fuzzy +msgid "Manage Editor Features" +msgstr "Gestisci template d'esportazione" #: editor/editor_node.cpp editor/project_export.cpp msgid "Manage Export Templates" -msgstr "Gestisci Template d'Esportazione" +msgstr "Gestisci template d'esportazione" #: editor/editor_node.cpp msgid "Help" @@ -2503,21 +2810,22 @@ msgstr "Aiuto" #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp #: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp #: editor/project_settings_editor.cpp editor/rename_dialog.cpp msgid "Search" msgstr "Cerca" #: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp msgid "Online Docs" -msgstr "Documentazione Online" +msgstr "Documentazione online" #: editor/editor_node.cpp msgid "Q&A" -msgstr "Domande e Risposte" +msgstr "Domande e risposte" #: editor/editor_node.cpp msgid "Issue Tracker" -msgstr "Tracciatore Segnalazioni" +msgstr "Tracciatore segnalazioni" #: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp msgid "Community" @@ -2533,7 +2841,7 @@ msgstr "Esegui il progetto." #: editor/editor_node.cpp msgid "Play" -msgstr "Play" +msgstr "Esegui" #: editor/editor_node.cpp msgid "Pause the scene" @@ -2549,7 +2857,7 @@ msgstr "Ferma la scena." #: editor/editor_node.cpp editor/editor_profiler.cpp msgid "Stop" -msgstr "Stop" +msgstr "Ferma" #: editor/editor_node.cpp msgid "Play the edited scene." @@ -2557,7 +2865,7 @@ msgstr "Esegui la scena in modifica." #: editor/editor_node.cpp msgid "Play Scene" -msgstr "Esegui Scena" +msgstr "Esegui scena" #: editor/editor_node.cpp msgid "Play custom scene" @@ -2565,7 +2873,7 @@ msgstr "Esegui scena personalizzata" #: editor/editor_node.cpp msgid "Play Custom Scene" -msgstr "Esegui Scena Personalizzata" +msgstr "Esegui scena personalizzata" #: editor/editor_node.cpp msgid "Changing the video driver requires restarting the editor." @@ -2574,36 +2882,31 @@ msgstr "Il cambiamento dei driver video necessita il riavvio dell'editor." #: editor/editor_node.cpp editor/project_settings_editor.cpp #: editor/settings_config_dialog.cpp msgid "Save & Restart" -msgstr "Salva e Riavvia" +msgstr "Salva e riavvia" #: editor/editor_node.cpp msgid "Spins when the editor window redraws." -msgstr "Gira quando l'editor viene ridisegnato." +msgstr "Gira quando la finestra dell'editor viene ridisegnata." #: editor/editor_node.cpp msgid "Update Always" -msgstr "Aggiorna Sempre" +msgstr "Aggiorna sempre" #: editor/editor_node.cpp msgid "Update Changes" -msgstr "Aggiorna Cambiamenti" +msgstr "Aggiorna cambiamenti" #: editor/editor_node.cpp msgid "Disable Update Spinner" -msgstr "Disabilita lo Spinner di Update" - -#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp -#: editor/project_manager.cpp -msgid "Import" -msgstr "Importa" +msgstr "Disabilita l'icona girevole di aggiornamento" #: editor/editor_node.cpp msgid "FileSystem" -msgstr "FileSystem" +msgstr "Filesystem" #: editor/editor_node.cpp msgid "Inspector" -msgstr "Inspector" +msgstr "Ispettore" #: editor/editor_node.cpp msgid "Node" @@ -2611,7 +2914,7 @@ msgstr "Nodo" #: editor/editor_node.cpp msgid "Expand Bottom Panel" -msgstr "Espandi Pannello Inferiore" +msgstr "Espandi pannello inferiore" #: editor/editor_node.cpp scene/resources/visual_shader.cpp msgid "Output" @@ -2622,20 +2925,42 @@ msgid "Don't Save" msgstr "Non salvare" #: editor/editor_node.cpp +msgid "Android build template is missing, please install relevant templates." +msgstr "" + +#: editor/editor_node.cpp +#, fuzzy +msgid "Manage Templates" +msgstr "Gestisci template d'esportazione" + +#: editor/editor_node.cpp +msgid "" +"This will install the Android project for custom builds.\n" +"Note that, in order to use it, it needs to be enabled per export preset." +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"Android build template is already installed and it won't be overwritten.\n" +"Remove the \"build\" directory manually before attempting this operation " +"again." +msgstr "" + +#: editor/editor_node.cpp msgid "Import Templates From ZIP File" -msgstr "Importa templates Da File ZIP" +msgstr "Importa template da un file ZIP" #: editor/editor_node.cpp editor/project_export.cpp msgid "Export Project" -msgstr "Esporta Progetto" +msgstr "Esporta progetto" #: editor/editor_node.cpp msgid "Export Library" -msgstr "Esporta Libreria" +msgstr "Esporta libreria" #: editor/editor_node.cpp msgid "Merge With Existing" -msgstr "Unisci Con Esistente" +msgstr "Unisci con esistente" #: editor/editor_node.cpp msgid "Password:" @@ -2643,15 +2968,15 @@ msgstr "Password:" #: editor/editor_node.cpp msgid "Open & Run a Script" -msgstr "Apri e Esegui uno Script" +msgstr "Apri ed esegui uno script" #: editor/editor_node.cpp msgid "New Inherited" -msgstr "Nuova Ereditata" +msgstr "Nuova ereditata" #: editor/editor_node.cpp msgid "Load Errors" -msgstr "Carica Errori" +msgstr "Carica errori" #: editor/editor_node.cpp editor/plugins/tile_map_editor_plugin.cpp msgid "Select" @@ -2659,7 +2984,7 @@ msgstr "Seleziona" #: editor/editor_node.cpp msgid "Open 2D Editor" -msgstr "Apri Editor 2D" +msgstr "Apri editor 2D" #: editor/editor_node.cpp msgid "Open 3D Editor" @@ -2744,10 +3069,6 @@ msgid "Physics Frame %" msgstr "Frame della Fisica %" #: editor/editor_profiler.cpp -msgid "Time:" -msgstr "Tempo:" - -#: editor/editor_profiler.cpp msgid "Inclusive" msgstr "Inclusivo" @@ -2890,10 +3211,6 @@ msgid "Remove Item" msgstr "Rimuovi Elemento" #: editor/editor_run_native.cpp -msgid "Select device from the list" -msgstr "Seleziona il dispositivo dall'elenco" - -#: editor/editor_run_native.cpp msgid "" "No runnable export preset found for this platform.\n" "Please add a runnable preset in the export menu." @@ -2930,6 +3247,10 @@ msgstr "Hai dimenticato il metodo '_run'?" msgid "Select Node(s) to Import" msgstr "Scegli Nodo(i) da Importare" +#: editor/editor_sub_scene.cpp editor/project_manager.cpp +msgid "Browse" +msgstr "Sfoglia" + #: editor/editor_sub_scene.cpp msgid "Scene Path:" msgstr "Percorso Scena:" @@ -3096,6 +3417,11 @@ msgid "SSL Handshake Error" msgstr "Errore nell'Handshake SSL" #: editor/export_template_manager.cpp +#, fuzzy +msgid "Uncompressing Android Build Sources" +msgstr "Estrazione asset" + +#: editor/export_template_manager.cpp msgid "Current Version:" msgstr "Versione Corrente:" @@ -3112,7 +3438,8 @@ msgid "Remove Template" msgstr "Rimuovi Template" #: editor/export_template_manager.cpp -msgid "Select template file" +#, fuzzy +msgid "Select Template File" msgstr "Seleziona file template" #: editor/export_template_manager.cpp @@ -3173,7 +3500,8 @@ msgid "No name provided." msgstr "Nessun nome fornito." #: editor/filesystem_dock.cpp -msgid "Provided name contains invalid characters" +#, fuzzy +msgid "Provided name contains invalid characters." msgstr "Il nome fornito contiene caratteri non validi" #: editor/filesystem_dock.cpp @@ -3201,19 +3529,27 @@ msgid "Duplicating folder:" msgstr "Duplicando cartella:" #: editor/filesystem_dock.cpp -msgid "Open Scene(s)" -msgstr "Apri Scena/e" +#, fuzzy +msgid "New Inherited Scene" +msgstr "Nuova scena ereditata..." + +#: editor/filesystem_dock.cpp +#, fuzzy +msgid "Open Scenes" +msgstr "Apri scena" #: editor/filesystem_dock.cpp msgid "Instance" msgstr "Istanza" #: editor/filesystem_dock.cpp -msgid "Add to favorites" +#, fuzzy +msgid "Add to Favorites" msgstr "Aggiungi ai preferiti" #: editor/filesystem_dock.cpp -msgid "Remove from favorites" +#, fuzzy +msgid "Remove from Favorites" msgstr "Rimuovi dai preferiti" #: editor/filesystem_dock.cpp @@ -3244,11 +3580,13 @@ msgstr "Nuovo Script..." msgid "New Resource..." msgstr "Nuova Risorsa..." -#: editor/filesystem_dock.cpp editor/script_editor_debugger.cpp +#: editor/filesystem_dock.cpp editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_editor_debugger.cpp msgid "Expand All" msgstr "Espandi Tutto" -#: editor/filesystem_dock.cpp editor/script_editor_debugger.cpp +#: editor/filesystem_dock.cpp editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_editor_debugger.cpp msgid "Collapse All" msgstr "Comprimi Tutto" @@ -3260,19 +3598,22 @@ msgid "Rename" msgstr "Rinomina" #: editor/filesystem_dock.cpp -msgid "Previous Directory" -msgstr "Directory Precedente" +#, fuzzy +msgid "Previous Folder/File" +msgstr "Cartella precedente" #: editor/filesystem_dock.cpp -msgid "Next Directory" -msgstr "Directory Successiva" +#, fuzzy +msgid "Next Folder/File" +msgstr "Cartella successiva" #: editor/filesystem_dock.cpp msgid "Re-Scan Filesystem" msgstr "Re-Scan Filesystem" #: editor/filesystem_dock.cpp -msgid "Toggle split mode" +#, fuzzy +msgid "Toggle Split Mode" msgstr "Attiva/disattiva la modalità split" #: editor/filesystem_dock.cpp @@ -3303,7 +3644,7 @@ msgstr "Sovrascrivi" msgid "Create Script" msgstr "Crea Script" -#: editor/find_in_files.cpp +#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp msgid "Find in Files" msgstr "Trova nei File" @@ -3319,6 +3660,12 @@ msgstr "Cartella:" msgid "Filters:" msgstr "Filtri:" +#: editor/find_in_files.cpp +msgid "" +"Include the files with the following extensions. Add or remove them in " +"ProjectSettings." +msgstr "" + #: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp msgid "Find..." @@ -3759,7 +4106,8 @@ msgid "Open Animation Node" msgstr "Apri Nodo Animazione" #: editor/plugins/animation_blend_space_2d_editor.cpp -msgid "Triangle already exists" +#, fuzzy +msgid "Triangle already exists." msgstr "Il triangolo è già esistente" #: editor/plugins/animation_blend_space_2d_editor.cpp @@ -3834,7 +4182,6 @@ msgid "Node Moved" msgstr "Nodo Spostato" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Unable to connect, port may be in use or connection may be invalid." msgstr "" "Impossibile connettersi, la porta potrebbe essere in uso o la connessione " @@ -3909,7 +4256,8 @@ msgid "Edit Filtered Tracks:" msgstr "Modifica Tracce Filtrate:" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -msgid "Enable filtering" +#, fuzzy +msgid "Enable Filtering" msgstr "Abilita filtraggio" #: editor/plugins/animation_player_editor_plugin.cpp @@ -4025,10 +4373,6 @@ msgid "Animation" msgstr "Animazione" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "New" -msgstr "Nuovo" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Edit Transitions..." msgstr "Modifica Transizioni..." @@ -4045,15 +4389,15 @@ msgid "Autoplay on Load" msgstr "Autoplay al Caricamento" #: editor/plugins/animation_player_editor_plugin.cpp -#, fuzzy -msgid "Onion Skinning" -msgstr "Onion Skinning" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Enable Onion Skinning" msgstr "Abilita l'Onion Skinning" #: editor/plugins/animation_player_editor_plugin.cpp +#, fuzzy +msgid "Onion Skinning Options" +msgstr "Onion Skinning" + +#: editor/plugins/animation_player_editor_plugin.cpp msgid "Directions" msgstr "Direzioni" @@ -4603,10 +4947,6 @@ msgid "Move CanvasItem" msgstr "Sposta CanvasItem" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Presets for the anchors and margins values of a Control node." -msgstr "Preset per i valori di ancoraggio e margini di un nodo Control." - -#: editor/plugins/canvas_item_editor_plugin.cpp msgid "" "Children of containers have their anchors and margins values overridden by " "their parent." @@ -4615,6 +4955,16 @@ msgstr "" "sovrascritti dai loro genitori." #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Presets for the anchors and margins values of a Control node." +msgstr "Preset per i valori di ancoraggio e margini di un nodo Control." + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"When active, moving Control nodes changes their anchors instead of their " +"margins." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Anchors only" msgstr "Solo ancore" @@ -4627,10 +4977,52 @@ msgid "Change Anchors" msgstr "Cambia Ancore" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Lock Selected" +msgstr "Strumento Seleziona" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Unlock Selected" +msgstr "Elimina selezionati" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Group Selected" +msgstr "Copia Selezione" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Ungroup Selected" +msgstr "Copia Selezione" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Paste Pose" msgstr "Incolla Posa" #: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Create Custom Bone(s) from Node(s)" +msgstr "Crea ossa personalizzate a partire da uno o più nodi" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Clear Bones" +msgstr "Pulisci Posa" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Make IK Chain" +msgstr "Crea Catena IK" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Clear IK Chain" +msgstr "Elimina Catena IK" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "" "Warning: Children of a container get their position and size determined only " "by their parent." @@ -4708,7 +5100,8 @@ msgid "Snapping Options" msgstr "Opzioni di Snapping" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to grid" +#, fuzzy +msgid "Snap to Grid" msgstr "Snap alla griglia" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4729,31 +5122,38 @@ msgid "Use Pixel Snap" msgstr "Usa Pixel Snap" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Smart snapping" +#, fuzzy +msgid "Smart Snapping" msgstr "Snapping intelligente" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to parent" +#, fuzzy +msgid "Snap to Parent" msgstr "Snap su Genitore" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node anchor" +#, fuzzy +msgid "Snap to Node Anchor" msgstr "Snap su ancora nodo" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node sides" +#, fuzzy +msgid "Snap to Node Sides" msgstr "Snap sui lati del nodo" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node center" +#, fuzzy +msgid "Snap to Node Center" msgstr "Snap al centro del nodo" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to other nodes" +#, fuzzy +msgid "Snap to Other Nodes" msgstr "Snap ad altri nodi" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to guides" +#, fuzzy +msgid "Snap to Guides" msgstr "Snap sulle guide" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4767,10 +5167,12 @@ msgid "Unlock the selected object (can be moved)." msgstr "Sblocca l'oggetto selezionato (può essere mosso)." #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Makes sure the object's children are not selectable." msgstr "Accerta che I figli dell'oggetto non siano selezionabili." #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Restores the object's children's ability to be selected." msgstr "Ripristina l'abilità dei figli dell'oggetto di essere selezionati." @@ -4783,14 +5185,6 @@ msgid "Show Bones" msgstr "Mostra Ossa" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Make IK Chain" -msgstr "Crea Catena IK" - -#: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Clear IK Chain" -msgstr "Elimina Catena IK" - -#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Make Custom Bone(s) from Node(s)" msgstr "Crea ossa personalizzate a partire da uno o più nodi" @@ -4841,12 +5235,14 @@ msgid "Frame Selection" msgstr "Selezione Frame" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Layout" -msgstr "Layout" +#, fuzzy +msgid "Preview Canvas Scale" +msgstr "Anteprima Atlas" #: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy msgid "Translation mask for inserting keys." -msgstr "" +msgstr "Maschera di traduzione per inserimento chiavi" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Rotation mask for inserting keys." @@ -4895,6 +5291,11 @@ msgid "Divide grid step by 2" msgstr "Dividi per 2 il passo della griglia" #: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Pan View" +msgstr "Vista dal Retro" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Add %s" msgstr "Aggiungi %s" @@ -4917,7 +5318,8 @@ msgid "Error instancing scene from %s" msgstr "Errore istanziamento scena da %s" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Change default type" +#, fuzzy +msgid "Change Default Type" msgstr "Cambia tipo di default" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -5005,20 +5407,22 @@ msgid "Create Emission Points From Node" msgstr "Crea Punti Emissione Da Nodo" #: editor/plugins/curve_editor_plugin.cpp -msgid "Flat0" +#, fuzzy +msgid "Flat 0" msgstr "Flat0" #: editor/plugins/curve_editor_plugin.cpp -msgid "Flat1" +#, fuzzy +msgid "Flat 1" msgstr "Flat1" -#: editor/plugins/curve_editor_plugin.cpp -msgid "Ease in" -msgstr "Graduale in ingresso" +#: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp +msgid "Ease In" +msgstr "Ease In" -#: editor/plugins/curve_editor_plugin.cpp -msgid "Ease out" -msgstr "Graduale in uscita" +#: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp +msgid "Ease Out" +msgstr "Ease Out" #: editor/plugins/curve_editor_plugin.cpp msgid "Smoothstep" @@ -5037,23 +5441,28 @@ msgid "Load Curve Preset" msgstr "Carica Preset Curve" #: editor/plugins/curve_editor_plugin.cpp -msgid "Add point" +#, fuzzy +msgid "Add Point" msgstr "Aggiungi punto" #: editor/plugins/curve_editor_plugin.cpp -msgid "Remove point" +#, fuzzy +msgid "Remove Point" msgstr "Rimuovi punto" #: editor/plugins/curve_editor_plugin.cpp -msgid "Left linear" +#, fuzzy +msgid "Left Linear" msgstr "Lineare sinistra" #: editor/plugins/curve_editor_plugin.cpp -msgid "Right linear" +#, fuzzy +msgid "Right Linear" msgstr "Lineare destra" #: editor/plugins/curve_editor_plugin.cpp -msgid "Load preset" +#, fuzzy +msgid "Load Preset" msgstr "Carica preset" #: editor/plugins/curve_editor_plugin.cpp @@ -5109,11 +5518,17 @@ msgid "This doesn't work on scene root!" msgstr "Questo non funziona sulla root della scena!" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Trimesh Shape" +#, fuzzy +msgid "Create Trimesh Static Shape" msgstr "Crea Forma Trimesh" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Shape" +msgid "Failed creating shapes!" +msgstr "" + +#: editor/plugins/mesh_instance_editor_plugin.cpp +#, fuzzy +msgid "Create Convex Shape(s)" msgstr "Crea Forma Convessa" #: editor/plugins/mesh_instance_editor_plugin.cpp @@ -5167,15 +5582,12 @@ msgid "Create Trimesh Static Body" msgstr "Crea Corpo Statico Trimesh" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Static Body" -msgstr "Crea Corpo Statico Convesso" - -#: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Trimesh Collision Sibling" msgstr "Crea Fratello di Collisione Trimesh" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Collision Sibling" +#, fuzzy +msgid "Create Convex Collision Sibling(s)" msgstr "Crea Fratello di Collisione Convessa" #: editor/plugins/mesh_instance_editor_plugin.cpp @@ -5331,6 +5743,11 @@ msgid "Create Navigation Polygon" msgstr "Crea Poligono di Navigazione" #: editor/plugins/particles_2d_editor_plugin.cpp +#: editor/plugins/particles_editor_plugin.cpp +msgid "Convert to CPUParticles" +msgstr "Converti in CPUParticles" + +#: editor/plugins/particles_2d_editor_plugin.cpp msgid "Generating Visibility Rect" msgstr "Generazione del Rect di Visibilità " @@ -5346,11 +5763,6 @@ msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp #: editor/plugins/particles_editor_plugin.cpp -msgid "Convert to CPUParticles" -msgstr "Converti in CPUParticles" - -#: editor/plugins/particles_2d_editor_plugin.cpp -#: editor/plugins/particles_editor_plugin.cpp msgid "Generation Time (sec):" msgstr "Tempo di Generazione (sec):" @@ -5488,7 +5900,7 @@ msgstr "Chiudi curva" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp editor/plugins/theme_editor_plugin.cpp -#: editor/project_export.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_export.cpp msgid "Options" msgstr "Opzioni" @@ -5539,7 +5951,8 @@ msgid "Split Segment (in curve)" msgstr "Spezza Segmento (in curva)" #: editor/plugins/physical_bone_plugin.cpp -msgid "Move joint" +#, fuzzy +msgid "Move Joint" msgstr "Sposta articolazione" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5605,7 +6018,7 @@ msgstr "Trasforma Poligono" #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Paint Bone Weights" -msgstr "" +msgstr "Dipingi peso delle ossa" #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Open Polygon 2D UV editor." @@ -5782,7 +6195,6 @@ msgid "Open in Editor" msgstr "Apri nell Editor" #: editor/plugins/resource_preloader_editor_plugin.cpp -#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Load Resource" msgstr "Carica Risorsa" @@ -5872,6 +6284,11 @@ msgid "%s Class Reference" msgstr " Riferimento di Classe" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp +msgid "Find Next" +msgstr "Trova Successivo" + +#: editor/plugins/script_editor_plugin.cpp msgid "Toggle alphabetical sorting of the method list." msgstr "Ordina in ordine alfabetico la lista dei metodi." @@ -5952,10 +6369,6 @@ msgstr "Chiudi Documentazione" msgid "Close All" msgstr "Chiudi Tutto" -#: editor/plugins/script_editor_plugin.cpp -msgid "Close Other Tabs" -msgstr "Chiudi le altre schede" - #: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp msgid "Run" msgstr "Esegui" @@ -5964,11 +6377,6 @@ msgstr "Esegui" msgid "Toggle Scripts Panel" msgstr "Attiva Pannello Scripts" -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/script_text_editor.cpp -msgid "Find Next" -msgstr "Trova Successivo" - #: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp msgid "Step Over" msgstr "Passo Successivo" @@ -5995,16 +6403,18 @@ msgid "Debug with External Editor" msgstr "Debug con Editor Esterno" #: editor/plugins/script_editor_plugin.cpp -msgid "Open Godot online documentation" +#, fuzzy +msgid "Open Godot online documentation." msgstr "Apri la documentazione online di Godot" #: editor/plugins/script_editor_plugin.cpp msgid "Request Docs" -msgstr "" +msgstr "Documentazione richiesta" #: editor/plugins/script_editor_plugin.cpp -msgid "Help improve the Godot documentation by giving feedback" -msgstr "" +#, fuzzy +msgid "Help improve the Godot documentation by giving feedback." +msgstr "Aiutate a migliorare la documentazione di Godot fornendo feedback" #: editor/plugins/script_editor_plugin.cpp msgid "Search the reference documentation." @@ -6031,10 +6441,12 @@ msgstr "" "Che azione deve essere intrapresa?:" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp msgid "Reload" msgstr "Ricarica" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp msgid "Resave" msgstr "Risalva" @@ -6047,6 +6459,31 @@ msgid "Search Results" msgstr "Cerca Risultati" #: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Connections to method:" +msgstr "Connetti al nodo:" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Source" +msgstr "Sorgente:" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Signal" +msgstr "Segnali" + +#: editor/plugins/script_text_editor.cpp +msgid "Target" +msgstr "Target" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "" +"Missing connected method '%s' for signal '%s' from node '%s' to node '%s'." +msgstr "Nulla collegato all'ingresso '%s' del nodo '%s'." + +#: editor/plugins/script_text_editor.cpp msgid "Line" msgstr "Linea" @@ -6058,10 +6495,6 @@ msgstr "(ignora)" msgid "Go to Function" msgstr "Vai a Funzione" -#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp -msgid "Standard" -msgstr "Standard" - #: editor/plugins/script_text_editor.cpp msgid "Only resources from filesystem can be dropped." msgstr "Solo le risorse dal filesystem possono essere eliminate." @@ -6094,6 +6527,11 @@ msgstr "Aggiungi maiuscola iniziale" msgid "Syntax Highlighter" msgstr "Evidenziatore di Sintassi" +#: editor/plugins/script_text_editor.cpp +#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp +msgid "Bookmarks" +msgstr "" + #: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" @@ -6121,6 +6559,26 @@ msgid "Toggle Comment" msgstr "Cambia a Commento" #: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Toggle Bookmark" +msgstr "Abilita/Disabilita Vista libera" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Go to Next Bookmark" +msgstr "Vai a Breakpoint Successivo" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Go to Previous Bookmark" +msgstr "Vai a Breakpoint Precedente" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Remove All Bookmarks" +msgstr "Rimuovi tutti gli elementi" + +#: editor/plugins/script_text_editor.cpp msgid "Fold/Unfold Line" msgstr "Piega/Dispiega Linea" @@ -6194,6 +6652,15 @@ msgid "Contextual Help" msgstr "Aiuto Contestuale" #: editor/plugins/shader_editor_plugin.cpp +#, fuzzy +msgid "" +"This shader has been modified on on disk.\n" +"What action should be taken?" +msgstr "" +"I file seguenti sono più recenti su disco.\n" +"Che azione deve essere intrapresa?:" + +#: editor/plugins/shader_editor_plugin.cpp msgid "Shader" msgstr "Shader" @@ -6538,7 +7005,8 @@ msgid "Right View" msgstr "Vista Destra" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Switch Perspective/Orthogonal view" +#, fuzzy +msgid "Switch Perspective/Orthogonal View" msgstr "Cambia tra Vista Prospettiva/Ortogonale" #: editor/plugins/spatial_editor_plugin.cpp @@ -6578,11 +7046,13 @@ msgid "Toggle Freelook" msgstr "Abilita/Disabilita Vista libera" #: editor/plugins/spatial_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Transform" msgstr "Trasforma" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Snap object to floor" +#, fuzzy +msgid "Snap Object to Floor" msgstr "Posa l'oggetto sul suolo" #: editor/plugins/spatial_editor_plugin.cpp @@ -6730,37 +7200,33 @@ msgstr "Geometria non valida, impossibile sostituirla con una mesh." #: editor/plugins/sprite_editor_plugin.cpp #, fuzzy -msgid "Invalid geometry, can't create polygon." -msgstr "Geometria non valida, impossibile sostituirla con una mesh." +msgid "Convert to Mesh2D" +msgstr "Converti in Mesh 2D" #: editor/plugins/sprite_editor_plugin.cpp #, fuzzy -msgid "Invalid geometry, can't create collision polygon." +msgid "Invalid geometry, can't create polygon." msgstr "Geometria non valida, impossibile sostituirla con una mesh." #: editor/plugins/sprite_editor_plugin.cpp #, fuzzy -msgid "Invalid geometry, can't create light occluder." -msgstr "Geometria non valida, impossibile sostituirla con una mesh." - -#: editor/plugins/sprite_editor_plugin.cpp -msgid "Sprite" -msgstr "Sprite" +msgid "Convert to Polygon2D" +msgstr "Sposta Poligono" #: editor/plugins/sprite_editor_plugin.cpp #, fuzzy -msgid "Convert to Mesh2D" -msgstr "Converti in Mesh 2D" +msgid "Invalid geometry, can't create collision polygon." +msgstr "Geometria non valida, impossibile sostituirla con una mesh." #: editor/plugins/sprite_editor_plugin.cpp #, fuzzy -msgid "Convert to Polygon2D" -msgstr "Sposta Poligono" +msgid "Create CollisionPolygon2D Sibling" +msgstr "Crea Poligono di Collisione" #: editor/plugins/sprite_editor_plugin.cpp #, fuzzy -msgid "Create CollisionPolygon2D Sibling" -msgstr "Crea Poligono di Collisione" +msgid "Invalid geometry, can't create light occluder." +msgstr "Geometria non valida, impossibile sostituirla con una mesh." #: editor/plugins/sprite_editor_plugin.cpp #, fuzzy @@ -6768,6 +7234,10 @@ msgid "Create LightOccluder2D Sibling" msgstr "Crea Poligono di occlusione" #: editor/plugins/sprite_editor_plugin.cpp +msgid "Sprite" +msgstr "Sprite" + +#: editor/plugins/sprite_editor_plugin.cpp msgid "Simplification: " msgstr "Semplificazione: " @@ -6784,14 +7254,24 @@ msgid "Settings:" msgstr "Impostazioni:" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "ERROR: Couldn't load frame resource!" -msgstr "ERRORE: Impossibile caricare la risorsa frame!" +#, fuzzy +msgid "No Frames Selected" +msgstr "Selezione Frame" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Add %d Frame(s)" +msgstr "Aggiungi frame" #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Add Frame" msgstr "Aggiungi frame" #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "ERROR: Couldn't load frame resource!" +msgstr "ERRORE: Impossibile caricare la risorsa frame!" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Resource clipboard is empty or not a texture!" msgstr "Clipboard risorse vuota o non è una texture!" @@ -6832,6 +7312,15 @@ msgid "Animation Frames:" msgstr "Frame Animazione:" #: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Add a Texture from File" +msgstr "Aggiungi Texture al TileSet." + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Add Frames from a Sprite Sheet" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Insert Empty (Before)" msgstr "Inserisci Vuoto (Prima)" @@ -6848,6 +7337,31 @@ msgid "Move (After)" msgstr "Sposta (Dopo)" #: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Select Frames" +msgstr "Impila Frame" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Horizontal:" +msgstr "Ribalta in orizzontale" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Vertical:" +msgstr "Vertici" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Select/Clear All Frames" +msgstr "Seleziona tutti" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Create Frames from Sprite Sheet" +msgstr "Crea da Scena" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "SpriteFrames" msgstr "Sprite Frames" @@ -6912,12 +7426,13 @@ msgstr "Aggiungi Tutti" msgid "Remove All Items" msgstr "Rimuovi tutti gli elementi" -#: editor/plugins/theme_editor_plugin.cpp +#: editor/plugins/theme_editor_plugin.cpp editor/project_manager.cpp msgid "Remove All" msgstr "Rimuovi Tutto" #: editor/plugins/theme_editor_plugin.cpp -msgid "Edit theme..." +#, fuzzy +msgid "Edit Theme" msgstr "Modifica Tema…" #: editor/plugins/theme_editor_plugin.cpp @@ -6945,18 +7460,25 @@ msgid "Create From Current Editor Theme" msgstr "Crea da Tema Editor corrente" #: editor/plugins/theme_editor_plugin.cpp -msgid "CheckBox Radio1" -msgstr "CheckBox Radio1" +#, fuzzy +msgid "Toggle Button" +msgstr "Pulsante Mouse" #: editor/plugins/theme_editor_plugin.cpp -msgid "CheckBox Radio2" -msgstr "CheckBox Radio2" +#, fuzzy +msgid "Disabled Button" +msgstr "Pulsante Centrale" #: editor/plugins/theme_editor_plugin.cpp msgid "Item" msgstr "Elemento" #: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Disabled Item" +msgstr "Disabilitato" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Check Item" msgstr "Check Item" @@ -6973,6 +7495,24 @@ msgid "Checked Radio Item" msgstr "Elemento Radio Controllato" #: editor/plugins/theme_editor_plugin.cpp +msgid "Named Sep." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Submenu" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Item 1" +msgstr "Elemento" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Item 2" +msgstr "Elemento" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Has" msgstr "Ha" @@ -6981,8 +7521,9 @@ msgid "Many" msgstr "Molte" #: editor/plugins/theme_editor_plugin.cpp -msgid "Has,Many,Options" -msgstr "Ha,Molte,Opzioni" +#, fuzzy +msgid "Disabled LineEdit" +msgstr "Disabilitato" #: editor/plugins/theme_editor_plugin.cpp msgid "Tab 1" @@ -6997,6 +7538,19 @@ msgid "Tab 3" msgstr "Tab 3" #: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Editable Item" +msgstr "Figlio Modificabile" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Subtree" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Has,Many,Options" +msgstr "Ha,Molte,Opzioni" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Data Type:" msgstr "Tipo Dato:" @@ -7029,6 +7583,7 @@ msgid "Fix Invalid Tiles" msgstr "Correggi le Tile non Valide" #: editor/plugins/tile_map_editor_plugin.cpp +#: modules/gridmap/grid_map_editor_plugin.cpp msgid "Cut Selection" msgstr "Taglia Selezione" @@ -7069,35 +7624,52 @@ msgid "Mirror Y" msgstr "Specchia Y" #: editor/plugins/tile_map_editor_plugin.cpp +#, fuzzy +msgid "Disable Autotile" +msgstr "Auto Divisione" + +#: editor/plugins/tile_map_editor_plugin.cpp +#, fuzzy +msgid "Enable Priority" +msgstr "Modifica Priorità Tile" + +#: editor/plugins/tile_map_editor_plugin.cpp msgid "Paint Tile" msgstr "Disegna Tile" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Pick Tile" -msgstr "Preleva Tile" +msgid "" +"Shift+RMB: Line Draw\n" +"Shift+Ctrl+RMB: Rectangle Paint" +msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Copy Selection" -msgstr "Copia Selezione" +msgid "Pick Tile" +msgstr "Preleva Tile" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Rotate left" +#, fuzzy +msgid "Rotate Left" msgstr "Ruota a sinistra" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Rotate right" +#, fuzzy +msgid "Rotate Right" msgstr "Ruota a destra" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Flip horizontally" +#, fuzzy +msgid "Flip Horizontally" msgstr "Ribalta in orizzontale" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Flip vertically" +#, fuzzy +msgid "Flip Vertically" msgstr "Ribalta in verticale" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Clear transform" +#, fuzzy +msgid "Clear Transform" msgstr "Cancella la trasformazione" #: editor/plugins/tile_set_editor_plugin.cpp @@ -7133,6 +7705,46 @@ msgid "Select the previous shape, subtile, or Tile." msgstr "Seleziona la precedente forma, sottotile, o Tile." #: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Region Mode" +msgstr "Modalità esecuzione:" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Collision Mode" +msgstr "Modalità di Interpolazione" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Occlusion Mode" +msgstr "Modifica Poligono di Occlusione" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Navigation Mode" +msgstr "Crea Mesh di Navigazione" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Bitmask Mode" +msgstr "Modalità Rotazione" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Priority Mode" +msgstr "Modalità d'Esportazione:" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Icon Mode" +msgstr "Modalità di Pan" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Z Index Mode" +msgstr "Modalità di Pan" + +#: editor/plugins/tile_set_editor_plugin.cpp msgid "Copy bitmask." msgstr "Copia bitmask." @@ -7216,9 +7828,11 @@ msgid "Delete polygon." msgstr "Elimina poligono." #: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy msgid "" "LMB: Set bit on.\n" "RMB: Set bit off.\n" +"Shift+LMB: Set wildcard bit.\n" "Click on another Tile to edit it." msgstr "" "Tasto Sinistro Mouse: Imposta bit on.\n" @@ -7336,6 +7950,79 @@ msgid "TileSet" msgstr "TileSet" #: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Add input +" +msgstr "Aggiungi Input" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Add output +" +msgstr "Aggiungi Input" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar" +msgstr "Scala:" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector" +msgstr "Ispettore" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Add input port" +msgstr "Aggiungi Input" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add output port" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change input port type" +msgstr "Cambia tipo di default" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change output port type" +msgstr "Cambia tipo di default" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change input port name" +msgstr "Cambia Nome Input" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change output port name" +msgstr "Cambia Nome Input" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Remove input port" +msgstr "Rimuovi punto" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Remove output port" +msgstr "Rimuovi punto" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Set expression" +msgstr "Cambia Espressione" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Resize VisualShader node" +msgstr "VisualShader" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Set Uniform Name" msgstr "Imposta Nome Uniforme" @@ -7373,6 +8060,859 @@ msgid "Light" msgstr "Luce" #: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Create Shader Node" +msgstr "Crea Nodo" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Color function." +msgstr "Vai a Funzione" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Color operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Grayscale function." +msgstr "Rendi funzione" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts HSV vector to RGB equivalent." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts RGB vector to HSV equivalent." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Sepia function." +msgstr "Rinomina Funzione" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Burn operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Darken operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Difference operator." +msgstr "Solo le Differenze" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Dodge operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "HardLight operator" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Lighten operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Overlay operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Screen operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "SoftLight operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Color constant." +msgstr "Costante" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Color uniform." +msgstr "Cancella la trasformazione" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns an associated vector if the provided scalars are equal, greater or " +"less." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns an associated vector if the provided boolean value is true or false." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Boolean constant." +msgstr "Cambia Costante Vett." + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'camera' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'inv_camera' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'inv_projection' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'normal' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'projection' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'time' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'viewport_size' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'world' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'texture_pixel_size' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Input parameter." +msgstr "Snap su Genitore" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'binormal' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'fragcoord' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_coord' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_uv' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'side' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'tangent' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv2' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'vertex' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'view' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'albedo' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'attenuation' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'diffuse' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_color' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'roughness' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'specular' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'transmission' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'modelview' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_size' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'tangent' input parameter for vertex and fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_pass' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_coord' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_pixel_size' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_uv' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_alpha' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_height' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_uv' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_vec' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'normal' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'shadow_color' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'extra' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'projection' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'vertex' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'world' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'active' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'custom' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'custom_alpha' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'delta' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'emission_transform' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'index' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'lifetime' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'restart' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'time' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'transform' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'velocity' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar function." +msgstr "Cambia Funzione Scalare" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar operator." +msgstr "Cambia Operatore Scalare" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "E constant (2.718282). Represents the base of the natural logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Epsilon constant (0.00001). Smallest possible scalar number." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Phi constant (1.618034). Golden ratio." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi/4 constant (0.785398) or 45 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi/2 constant (1.570796) or 90 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi constant (3.141593) or 180 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Tau constant (6.283185) or 360 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Sqrt2 constant (1.414214). Square root of 2." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the absolute value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-tangent of the parameters." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Finds the nearest integer that is greater than or equal to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Constrains a value to lie between two further values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts a quantity in radians to degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-e Exponential." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-2 Exponential." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Finds the nearest integer less than or equal to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Computes the fractional part of the argument." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the inverse of the square root of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Natural logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-2 logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the greater of two values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the lesser of two values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Linear interpolation between two scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the opposite value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 - scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns the value of the first parameter raised to the power of the second." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts a quantity in degrees to radians." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 / scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the nearest integer to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the nearest even integer to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Clamps the value between 0.0 and 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Extracts the sign of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the square root of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( scalar(edge0), scalar(edge1), scalar(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if x is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( scalar(edge), scalar(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the truncated value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Adds scalar to scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Divides scalar by scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies scalar by scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the remainder of the two scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Subtracts scalar from scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar constant." +msgstr "Cambia Costante Scalare" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar uniform." +msgstr "Cambia Uniforme Scalare" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Perform the cubic texture lookup." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Perform the texture lookup." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Cubic texture uniform." +msgstr "Cambia Uniforme Texture" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "2D texture uniform." +msgstr "Cambia Uniforme Texture" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Transform function." +msgstr "Finestra di Transform..." + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) Calculate the outer product of a pair of vectors.\n" +"\n" +"OuterProduct treats the first parameter 'c' as a column vector (matrix with " +"one column) and the second parameter 'r' as a row vector (matrix with one " +"row) and does a linear algebraic matrix multiply 'c * r', yielding a matrix " +"whose number of rows is the number of components in 'c' and whose number of " +"columns is the number of components in 'r'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Composes transform from four vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Decomposes transform to four vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the determinant of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the inverse of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the transpose of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies transform by transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies vector by transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Transform constant." +msgstr "Transform Abortito." + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Transform uniform." +msgstr "Transform Abortito." + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector function." +msgstr "Assegnazione alla funzione." + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector operator." +msgstr "Cambia Operatore Vett." + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Composes vector from three scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Decomposes vector to three scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the cross product of two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the distance between two points." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the dot product of two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns a vector that points in the same direction as a reference vector. " +"The function has three vector parameters : N, the vector to orient, I, the " +"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 "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the length of a vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Linear interpolation between two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the normalize product of vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 - vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 / vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns a vector that points in the direction of reflection ( a : incident " +"vector, b : normal vector )." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns a vector that points in the direction of refraction." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( vector(edge0), vector(edge1), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if 'x' is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( scalar(edge0), scalar(edge1), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if 'x' is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( vector(edge), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( scalar(edge), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Adds vector to vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Divides vector by vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies vector by vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the remainder of the two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Subtracts vector from vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector constant." +msgstr "Cambia Costante Vett." + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector uniform." +msgstr "Assegnazione all'uniforme." + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Custom Godot Shader Language expression, with custom amount of input and " +"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 "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns falloff based on the dot product of surface normal and view " +"direction of camera (pass associated inputs to it)." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) (Fragment/Light mode only) Scalar derivative function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) (Fragment/Light mode only) Vector derivative function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Derivative in 'x' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Derivative in 'x' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Derivative in 'y' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Derivative in 'y' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Sum of absolute derivative " +"in 'x' and 'y'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Sum of absolute derivative " +"in 'x' and 'y'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "VisualShader" msgstr "VisualShader" @@ -7571,6 +9111,10 @@ msgid "Directory already contains a Godot project." msgstr "La Cartella contiene già un progetto di Godot." #: editor/project_manager.cpp +msgid "New Game Project" +msgstr "Nuovo Progetto di Gioco" + +#: editor/project_manager.cpp msgid "Imported Project" msgstr "Progetto Importato" @@ -7619,10 +9163,6 @@ msgid "Rename Project" msgstr "Rinomina progetto" #: editor/project_manager.cpp -msgid "New Game Project" -msgstr "Nuovo Progetto di Gioco" - -#: editor/project_manager.cpp msgid "Import Existing Project" msgstr "Importa Progetto Esistente" @@ -7651,10 +9191,6 @@ msgid "Project Name:" msgstr "Nome Progetto:" #: editor/project_manager.cpp -msgid "Create folder" -msgstr "Crea Cartella" - -#: editor/project_manager.cpp msgid "Project Path:" msgstr "Percorso Progetto:" @@ -7663,10 +9199,6 @@ msgid "Project Installation Path:" msgstr "Percorso Progetto di Installazione:" #: editor/project_manager.cpp -msgid "Browse" -msgstr "Sfoglia" - -#: editor/project_manager.cpp msgid "Renderer:" msgstr "Renderer:" @@ -7721,6 +9253,7 @@ msgid "Are you sure to open more than one project?" msgstr "Sei sicuro di voler aprire più di un progetto?" #: editor/project_manager.cpp +#, fuzzy msgid "" "The following project settings file does not specify the version of Godot " "through which it was created.\n" @@ -7729,8 +9262,8 @@ msgid "" "\n" "If you proceed with opening it, it will be converted to Godot's current " "configuration file format.\n" -"Warning: You will not be able to open the project with previous versions of " -"the engine anymore." +"Warning: You won't be able to open the project with previous versions of the " +"engine anymore." msgstr "" "Il seguente file delle impostazioni del progetto non specifica la versione " "di Godot attraverso cui è stato creato.\n" @@ -7743,6 +9276,7 @@ msgstr "" "precedenti del motore." #: editor/project_manager.cpp +#, fuzzy msgid "" "The following project settings file was generated by an older engine " "version, and needs to be converted for this version:\n" @@ -7750,8 +9284,8 @@ msgid "" "%s\n" "\n" "Do you want to convert it?\n" -"Warning: You will not be able to open the project with previous versions of " -"the engine anymore." +"Warning: You won't be able to open the project with previous versions of the " +"engine anymore." msgstr "" "Il seguente file delle impostazioni del progetto è stato generato da una " "versione precedente del motore e deve essere convertito per questa " @@ -7772,9 +9306,10 @@ msgstr "" "del motore, le cui impostazioni non sono compatibili con questa versione." #: editor/project_manager.cpp +#, fuzzy msgid "" "Can't run project: no main scene defined.\n" -"Please edit the project and set the main scene in \"Project Settings\" under " +"Please edit the project and set the main scene in the Project Settings under " "the \"Application\" category." msgstr "" "Non è possibile eseguire il progetto: nessuna scena principale definita.\n" @@ -7790,28 +9325,52 @@ msgstr "" "Per favore modifica il progetto per azionare l'importo iniziale." #: editor/project_manager.cpp -msgid "Are you sure to run more than one project?" +#, fuzzy +msgid "Are you sure to run %d projects at once?" msgstr "Sei sicuro di voler eseguire più di un progetto?" #: editor/project_manager.cpp -msgid "Remove project from the list? (Folder contents will not be modified)" +#, fuzzy +msgid "" +"Remove %d projects from the list?\n" +"The project folders' contents won't be modified." +msgstr "" +"Rimuovere progetto dalla lista? (I contenuti della cartella non saranno " +"modificati)" + +#: editor/project_manager.cpp +#, fuzzy +msgid "" +"Remove this project from the list?\n" +"The project folder's contents won't be modified." msgstr "" "Rimuovere progetto dalla lista? (I contenuti della cartella non saranno " "modificati)" #: editor/project_manager.cpp +#, fuzzy +msgid "" +"Remove all missing projects from the list? (Folders contents will not be " +"modified)" +msgstr "" +"Rimuovere progetto dalla lista? (I contenuti della cartella non saranno " +"modificati)" + +#: editor/project_manager.cpp +#, fuzzy msgid "" "Language changed.\n" -"The UI will update next time the editor or project manager starts." +"The interface will update after restarting the editor or project manager." msgstr "" "Lingua cambiata.\n" "L'interfaccia utente sarà aggiornata la prossima volta che l'editor o il " "project manager si avvia." #: editor/project_manager.cpp +#, fuzzy msgid "" -"You are about the scan %s folders for existing Godot projects. Do you " -"confirm?" +"Are you sure to scan %s folders for existing Godot projects?\n" +"This could take a while." msgstr "Stai per esaminare %s cartelle per progetti Godot esistenti. Confermi?" #: editor/project_manager.cpp @@ -7835,6 +9394,11 @@ msgid "New Project" msgstr "Nuovo Progetto" #: editor/project_manager.cpp +#, fuzzy +msgid "Remove Missing" +msgstr "Rimuovi punto" + +#: editor/project_manager.cpp msgid "Templates" msgstr "Templates" @@ -7851,9 +9415,10 @@ msgid "Can't run project" msgstr "Impossibile eseguire il progetto" #: editor/project_manager.cpp +#, fuzzy msgid "" -"You don't currently have any projects.\n" -"Would you like to explore the official example projects in the Asset Library?" +"You currently don't have any projects.\n" +"Would you like to explore official example projects in the Asset Library?" msgstr "" "Al momento non hai alcun progetto.\n" "Ti piacerebbe esplorare gli esempi ufficiali nella Libreria delle Risorse?" @@ -7883,7 +9448,8 @@ msgstr "" "'\\' oppure '\"'" #: editor/project_settings_editor.cpp -msgid "Action '%s' already exists!" +#, fuzzy +msgid "An action with the name '%s' already exists." msgstr "L'Azione '%s' esiste già !" #: editor/project_settings_editor.cpp @@ -8039,10 +9605,6 @@ msgstr "" "'\\' o '\"'." #: editor/project_settings_editor.cpp -msgid "Already existing" -msgstr "Già esistente" - -#: editor/project_settings_editor.cpp msgid "Add Input Action" msgstr "Aggiungi azione di input" @@ -8107,7 +9669,8 @@ msgid "Override For..." msgstr "Sovrascrivi Per..." #: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp -msgid "Editor must be restarted for changes to take effect" +#, fuzzy +msgid "The editor must be restarted for changes to take effect." msgstr "Per rendere effettive le modifiche è necessario un riavvio dell'editor" #: editor/project_settings_editor.cpp @@ -8167,11 +9730,13 @@ msgid "Locales Filter" msgstr "" #: editor/project_settings_editor.cpp -msgid "Show all locales" +#, fuzzy +msgid "Show All Locales" msgstr "Mostra tutte le lingue" #: editor/project_settings_editor.cpp -msgid "Show only selected locales" +#, fuzzy +msgid "Show Selected Locales Only" msgstr "Mostra solo le lingue selezionate" #: editor/project_settings_editor.cpp @@ -8187,14 +9752,6 @@ msgid "AutoLoad" msgstr "AutoLoad" #: editor/property_editor.cpp -msgid "Ease In" -msgstr "Ease In" - -#: editor/property_editor.cpp -msgid "Ease Out" -msgstr "Ease Out" - -#: editor/property_editor.cpp msgid "Zero" msgstr "Zero" @@ -8267,7 +9824,8 @@ msgid "Suffix" msgstr "Suffisso" #: editor/rename_dialog.cpp -msgid "Advanced options" +#, fuzzy +msgid "Advanced Options" msgstr "Opzioni avanzate" #: editor/rename_dialog.cpp @@ -8529,8 +10087,9 @@ msgid "User Interface" msgstr "Interfaccia Utente" #: editor/scene_tree_dock.cpp -msgid "Custom Node" -msgstr "Nodo Personalizzato" +#, fuzzy +msgid "Other Node" +msgstr "Elimina Nodo" #: editor/scene_tree_dock.cpp msgid "Can't operate on nodes from a foreign scene!" @@ -8573,7 +10132,8 @@ msgid "Clear Inheritance" msgstr "Liberare ereditarietà " #: editor/scene_tree_dock.cpp -msgid "Open documentation" +#, fuzzy +msgid "Open Documentation" msgstr "Apri la documentazione" #: editor/scene_tree_dock.cpp @@ -8600,7 +10160,7 @@ msgstr "Unisci Da Scena" msgid "Save Branch as Scene" msgstr "Salva Ramo come Scena" -#: editor/scene_tree_dock.cpp +#: editor/scene_tree_dock.cpp editor/script_editor_debugger.cpp msgid "Copy Node Path" msgstr "Copia Percorso Nodo" @@ -8645,6 +10205,21 @@ msgid "Toggle Visible" msgstr "Attiva/Disattiva Visibilità " #: editor/scene_tree_editor.cpp +#, fuzzy +msgid "Unlock Node" +msgstr "Seleziona Nodo" + +#: editor/scene_tree_editor.cpp +#, fuzzy +msgid "Button Group" +msgstr "Pulsante 7" + +#: editor/scene_tree_editor.cpp +#, fuzzy +msgid "(Connecting From)" +msgstr "Errore di Connessione" + +#: editor/scene_tree_editor.cpp msgid "Node configuration warning:" msgstr "Avviso confugurazione nodo:" @@ -8672,8 +10247,9 @@ msgstr "" "Il nodo e in un gruppo.\n" "Fai click per mostrare il dock gruppi." -#: editor/scene_tree_editor.cpp editor/script_create_dialog.cpp -msgid "Open Script" +#: editor/scene_tree_editor.cpp +#, fuzzy +msgid "Open Script:" msgstr "Apri Script" #: editor/scene_tree_editor.cpp @@ -8723,71 +10299,83 @@ msgid "Select a Node" msgstr "Scegli un Nodo" #: editor/script_create_dialog.cpp -msgid "Error loading template '%s'" -msgstr "Errore caricamento template '%s'" +#, fuzzy +msgid "Path is empty." +msgstr "Percorso vuoto" #: editor/script_create_dialog.cpp -msgid "Error - Could not create script in filesystem." -msgstr "Errore - Impossibile creare script in filesystem." +#, fuzzy +msgid "Filename is empty." +msgstr "Il nome del file è vuoto" #: editor/script_create_dialog.cpp -msgid "Error loading script from %s" -msgstr "Errore caricamento script da %s" +#, fuzzy +msgid "Path is not local." +msgstr "Percorso non locale" #: editor/script_create_dialog.cpp -msgid "N/A" -msgstr "N/A" +#, fuzzy +msgid "Invalid base path." +msgstr "Percorso di base invalido" #: editor/script_create_dialog.cpp -msgid "Open Script/Choose Location" -msgstr "Apri Script/Scegli Posizione" +#, fuzzy +msgid "A directory with the same name exists." +msgstr "Una cartella con lo stesso nome esiste già " #: editor/script_create_dialog.cpp -msgid "Path is empty" -msgstr "Percorso vuoto" +#, fuzzy +msgid "Invalid extension." +msgstr "Estensione Invalida" #: editor/script_create_dialog.cpp -msgid "Filename is empty" -msgstr "Il nome del file è vuoto" +#, fuzzy +msgid "Wrong extension chosen." +msgstr "Estensione scelta errata" #: editor/script_create_dialog.cpp -msgid "Path is not local" -msgstr "Percorso non locale" +msgid "Error loading template '%s'" +msgstr "Errore caricamento template '%s'" #: editor/script_create_dialog.cpp -msgid "Invalid base path" -msgstr "Percorso di base invalido" +msgid "Error - Could not create script in filesystem." +msgstr "Errore - Impossibile creare script in filesystem." #: editor/script_create_dialog.cpp -msgid "Directory of the same name exists" -msgstr "Una cartella con lo stesso nome esiste già " +msgid "Error loading script from %s" +msgstr "Errore caricamento script da %s" #: editor/script_create_dialog.cpp -msgid "File exists, will be reused" -msgstr "Il file esiste, sarà riutilizzato" +msgid "N/A" +msgstr "N/A" #: editor/script_create_dialog.cpp -msgid "Invalid extension" -msgstr "Estensione Invalida" +#, fuzzy +msgid "Open Script / Choose Location" +msgstr "Apri Script/Scegli Posizione" #: editor/script_create_dialog.cpp -msgid "Wrong extension chosen" -msgstr "Estensione scelta errata" +msgid "Open Script" +msgstr "Apri Script" #: editor/script_create_dialog.cpp -msgid "Invalid Path" -msgstr "Percorso Invalido" +#, fuzzy +msgid "File exists, it will be reused." +msgstr "Il file esiste, sarà riutilizzato" #: editor/script_create_dialog.cpp -msgid "Invalid class name" +#, fuzzy +msgid "Invalid class name." msgstr "Nome classe invalido" #: editor/script_create_dialog.cpp -msgid "Invalid inherited parent name or path" +#, fuzzy +msgid "Invalid inherited parent name or path." msgstr "Nome genitore ereditato o percorso invalido" #: editor/script_create_dialog.cpp -msgid "Script valid" +#, fuzzy +msgid "Script is valid." msgstr "Script valido" #: editor/script_create_dialog.cpp @@ -8795,15 +10383,18 @@ msgid "Allowed: a-z, A-Z, 0-9 and _" msgstr "Consentiti: a-z, A-Z, 0-9 e _" #: editor/script_create_dialog.cpp -msgid "Built-in script (into scene file)" +#, fuzzy +msgid "Built-in script (into scene file)." msgstr "Script built-in (nel file scena)" #: editor/script_create_dialog.cpp -msgid "Create new script file" +#, fuzzy +msgid "Will create a new script file." msgstr "Crea nuovo file script" #: editor/script_create_dialog.cpp -msgid "Load existing script file" +#, fuzzy +msgid "Will load an existing script file." msgstr "Carica file script esistente" #: editor/script_create_dialog.cpp @@ -8934,6 +10525,10 @@ msgstr "Modifica Root Live:" msgid "Set From Tree" msgstr "Imposta da Tree" +#: editor/script_editor_debugger.cpp +msgid "Export measures as CSV" +msgstr "" + #: editor/settings_config_dialog.cpp msgid "Erase Shortcut" msgstr "Cancella Scorciatoia" @@ -9063,6 +10658,15 @@ msgid "GDNativeLibrary" msgstr "GDNativeLibrary" #: 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 "Disabilita l'icona girevole di aggiornamento" + +#: modules/gdnative/gdnative_library_singleton_editor.cpp msgid "Library" msgstr "Libreria" @@ -9148,8 +10752,9 @@ msgid "GridMap Fill Selection" msgstr "GridMap Riempi Selezione" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "GridMap Duplicate Selection" -msgstr "GridMap Duplica Selezione" +#, fuzzy +msgid "GridMap Paste Selection" +msgstr "GridMap Elimina Selezione" #: modules/gridmap/grid_map_editor_plugin.cpp msgid "GridMap Paint" @@ -9216,18 +10821,6 @@ msgid "Cursor Clear Rotation" msgstr "Cursore Cancella Rotazione" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Create Area" -msgstr "Crea Area" - -#: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Create Exterior Connector" -msgstr "Crea Connettore Esterno" - -#: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Erase Area" -msgstr "Cancella Area" - -#: modules/gridmap/grid_map_editor_plugin.cpp msgid "Clear Selection" msgstr "Cancella Selezione" @@ -9588,18 +11181,11 @@ msgid "Available Nodes:" msgstr "Nodi Disponibili:" #: modules/visual_script/visual_script_editor.cpp -msgid "Select or create a function to edit graph" +#, fuzzy +msgid "Select or create a function to edit its graph." msgstr "Seleziona o crea una funzione per modificare il grafico" #: modules/visual_script/visual_script_editor.cpp -msgid "Edit Signal Arguments:" -msgstr "Modifica Argomenti Segnali:" - -#: modules/visual_script/visual_script_editor.cpp -msgid "Edit Variable:" -msgstr "Modifica Variabile:" - -#: modules/visual_script/visual_script_editor.cpp msgid "Delete Selected" msgstr "Elimina selezionati" @@ -9736,6 +11322,19 @@ msgstr "" "Debug keystore non configurato nelle Impostazioni dell'Editor né nel preset." #: platform/android/export/export.cpp +msgid "Custom build requires a valid Android SDK path in Editor Settings." +msgstr "" + +#: platform/android/export/export.cpp +msgid "Invalid Android SDK path for custom build in Editor Settings." +msgstr "" + +#: platform/android/export/export.cpp +msgid "" +"Android project is not installed for compiling. Install from Editor menu." +msgstr "" + +#: platform/android/export/export.cpp msgid "Invalid public key for APK expansion." msgstr "Chiave pubblica non valida per l'espansione dell'APK." @@ -9743,6 +11342,34 @@ msgstr "Chiave pubblica non valida per l'espansione dell'APK." msgid "Invalid package name:" msgstr "Nome del pacchetto non valido:" +#: platform/android/export/export.cpp +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 "" +"Android build version mismatch:\n" +" Template installed: %s\n" +" Godot Version: %s\n" +"Please reinstall Android build template from 'Project' menu." +msgstr "" + +#: platform/android/export/export.cpp +msgid "Building Android Project (gradle)" +msgstr "" + +#: 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 "" + +#: platform/android/export/export.cpp +msgid "No build apk generated at: " +msgstr "" + #: platform/iphone/export/export.cpp msgid "Identifier is missing." msgstr "L'identificatore è mancante." @@ -10066,31 +11693,36 @@ msgid "ARVRCamera must have an ARVROrigin node as its parent" msgstr "ARVRCamera deve avere un nodo ARVROrigin come suo genitore" #: scene/3d/arvr_nodes.cpp -msgid "ARVRController must have an ARVROrigin node as its parent" +#, fuzzy +msgid "ARVRController must have an ARVROrigin node as its parent." msgstr "ARVRController deve avere un nodo ARVROrigin come suo genitore" #: scene/3d/arvr_nodes.cpp +#, fuzzy msgid "" -"The controller id must not be 0 or this controller will not be bound to an " -"actual controller" +"The controller ID must not be 0 or this controller won't be bound to an " +"actual controller." msgstr "" "L'id del controller non deve essere 0 o questo controller non sarà legato ad " "un vero controller" #: scene/3d/arvr_nodes.cpp -msgid "ARVRAnchor must have an ARVROrigin node as its parent" +#, fuzzy +msgid "ARVRAnchor must have an ARVROrigin node as its parent." msgstr "ARVRAnchor deve avere un nodo ARVROrigin come suo genitore" #: scene/3d/arvr_nodes.cpp +#, fuzzy msgid "" -"The anchor id must not be 0 or this anchor will not be bound to an actual " -"anchor" +"The anchor ID must not be 0 or this anchor won't be bound to an actual " +"anchor." msgstr "" "L'id dell'ancora non deve essere 0 o questa ancora non sarà legata ad una " "vera ancora" #: scene/3d/arvr_nodes.cpp -msgid "ARVROrigin requires an ARVRCamera child node" +#, fuzzy +msgid "ARVROrigin requires an ARVRCamera child node." msgstr "ARVROrigin necessita di un nodo figlio ARVRCamera" #: scene/3d/baked_lightmap.cpp @@ -10172,10 +11804,13 @@ msgid "Nothing is visible because no mesh has been assigned." msgstr "Niente è visibile perché non è stata assegnata alcuna mesh." #: scene/3d/cpu_particles.cpp +#, fuzzy msgid "" -"CPUParticles animation requires the usage of a SpatialMaterial with " -"\"Billboard Particles\" enabled." +"CPUParticles animation requires the usage of a SpatialMaterial whose " +"Billboard Mode is set to \"Particle Billboard\"." msgstr "" +"L'animazione delle particelle richiede l'utilizzo di uno SpatialMaterial con " +"\"Billboard Particles\" abilitato." #: scene/3d/gi_probe.cpp msgid "Plotting Meshes" @@ -10221,8 +11856,8 @@ msgstr "Nulla é visibile perché le mesh non sono state assegnate ai draw pass. #: scene/3d/particles.cpp #, fuzzy msgid "" -"Particles animation requires the usage of a SpatialMaterial with \"Billboard " -"Particles\" enabled." +"Particles animation requires the usage of a SpatialMaterial whose Billboard " +"Mode is set to \"Particle Billboard\"." msgstr "" "L'animazione delle particelle richiede l'utilizzo di uno SpatialMaterial con " "\"Billboard Particles\" abilitato." @@ -10257,7 +11892,8 @@ msgstr "" "poter funzionare." #: scene/3d/soft_body.cpp -msgid "This body will be ignored until you set a mesh" +#, fuzzy +msgid "This body will be ignored until you set a mesh." msgstr "Questo corpo verrà ignorato finché non imposti una mesh" #: scene/3d/soft_body.cpp @@ -10369,7 +12005,7 @@ msgstr "Aggiungi il colore corrente come preset." msgid "" "Container by itself serves no purpose unless a script configures it's " "children placement behavior.\n" -"If you dont't intend to add a script, then please use a plain 'Control' node " +"If you don't intend to add a script, then please use a plain 'Control' node " "instead." msgstr "" "Il Contenitore da solo non serve a nessuno scopo a meno che uno script non " @@ -10385,10 +12021,6 @@ msgstr "Attenzione!" msgid "Please Confirm..." msgstr "Per Favore Conferma..." -#: scene/gui/file_dialog.cpp -msgid "Go to parent folder." -msgstr "Vai alla cartella genitore." - #: scene/gui/popup.cpp msgid "" "Popups will hide by default unless you call popup() or any of the popup*() " @@ -10474,6 +12106,76 @@ msgstr "Assegnazione all'uniforme." msgid "Varyings can only be assigned in vertex function." msgstr "Varyings può essere assegnato solo nella funzione del vertice." +#: servers/visual/shader_language.cpp +msgid "Constants cannot be modified." +msgstr "" + +#~ msgid "Path to Node:" +#~ msgstr "Percorso per il nodo:" + +#~ msgid "Delete selected files?" +#~ msgstr "Eliminare i file selezionati?" + +#~ msgid "There is no 'res://default_bus_layout.tres' file." +#~ msgstr "Non esiste il file 'res://default_bus_layout.tres'." + +#~ 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" + +#~ msgid "Previous Directory" +#~ msgstr "Directory Precedente" + +#~ msgid "Next Directory" +#~ msgstr "Directory Successiva" + +#~ msgid "Ease in" +#~ msgstr "Graduale in ingresso" + +#~ msgid "Ease out" +#~ msgstr "Graduale in uscita" + +#~ msgid "Create Convex Static Body" +#~ msgstr "Crea Corpo Statico Convesso" + +#~ msgid "CheckBox Radio1" +#~ msgstr "CheckBox Radio1" + +#~ msgid "CheckBox Radio2" +#~ msgstr "CheckBox Radio2" + +#~ msgid "Create folder" +#~ msgstr "Crea Cartella" + +#~ msgid "Already existing" +#~ msgstr "Già esistente" + +#~ msgid "Custom Node" +#~ msgstr "Nodo Personalizzato" + +#~ msgid "Invalid Path" +#~ msgstr "Percorso Invalido" + +#~ msgid "GridMap Duplicate Selection" +#~ msgstr "GridMap Duplica Selezione" + +#~ msgid "Create Area" +#~ msgstr "Crea Area" + +#~ msgid "Create Exterior Connector" +#~ msgstr "Crea Connettore Esterno" + +#~ msgid "Edit Signal Arguments:" +#~ msgstr "Modifica Argomenti Segnali:" + +#~ msgid "Edit Variable:" +#~ msgstr "Modifica Variabile:" + #~ msgid "Snap (s): " #~ msgstr "Snap (s): " @@ -10591,9 +12293,6 @@ msgstr "Varyings può essere assegnato solo nella funzione del vertice." #~ msgid "Class List:" #~ msgstr "Lista Classi:" -#~ msgid "Search Classes" -#~ msgstr "Cerca Classi" - #~ msgid "Public Methods" #~ msgstr "Metodi Pubblici" @@ -10675,9 +12374,6 @@ msgstr "Varyings può essere assegnato solo nella funzione del vertice." #~ msgid "Error:" #~ msgstr "Errore:" -#~ msgid "Source:" -#~ msgstr "Sorgente:" - #~ msgid "Function:" #~ msgstr "Funzione:" @@ -10700,21 +12396,9 @@ msgstr "Varyings può essere assegnato solo nella funzione del vertice." #~ msgid "Get" #~ msgstr "Get" -#~ msgid "Change Scalar Constant" -#~ msgstr "Cambia Costante Scalare" - -#~ msgid "Change Vec Constant" -#~ msgstr "Cambia Costante Vett." - #~ msgid "Change RGB Constant" #~ msgstr "Cambia Costante RGB" -#~ msgid "Change Scalar Operator" -#~ msgstr "Cambia Operatore Scalare" - -#~ msgid "Change Vec Operator" -#~ msgstr "Cambia Operatore Vett." - #~ msgid "Change Vec Scalar Operator" #~ msgstr "Cambia Operatore Scalare Vett." @@ -10724,15 +12408,9 @@ msgstr "Varyings può essere assegnato solo nella funzione del vertice." #~ msgid "Toggle Rot Only" #~ msgstr "Abilita Solo Rot" -#~ msgid "Change Scalar Function" -#~ msgstr "Cambia Funzione Scalare" - #~ msgid "Change Vec Function" #~ msgstr "Cambia Funzione Vett." -#~ msgid "Change Scalar Uniform" -#~ msgstr "Cambia Uniforme Scalare" - #~ msgid "Change Vec Uniform" #~ msgstr "Cambia Uniforme Vett." @@ -10745,9 +12423,6 @@ msgstr "Varyings può essere assegnato solo nella funzione del vertice." #~ msgid "Change XForm Uniform" #~ msgstr "Cambia Uniforme XForm" -#~ msgid "Change Texture Uniform" -#~ msgstr "Cambia Uniforme Texture" - #~ msgid "Change Cubemap Uniform" #~ msgstr "Cambia Uniforme Cubemap" @@ -10766,9 +12441,6 @@ msgstr "Varyings può essere assegnato solo nella funzione del vertice." #~ msgid "Modify Curve Map" #~ msgstr "Modifica la Mappa Curve" -#~ msgid "Change Input Name" -#~ msgstr "Cambia Nome Input" - #~ msgid "Connect Graph Nodes" #~ msgstr "Connetti Nodi Grafico" @@ -10796,9 +12468,6 @@ msgstr "Varyings può essere assegnato solo nella funzione del vertice." #~ msgid "Add Shader Graph Node" #~ msgstr "Aggiungi Nodo Grafico Shader" -#~ msgid "Disabled" -#~ msgstr "Disabilitato" - #~ msgid "Move Anim Track Up" #~ msgstr "Muovi Traccia Animazione Su" @@ -10983,16 +12652,9 @@ msgstr "Varyings può essere assegnato solo nella funzione del vertice." #~ msgstr "Nome elemento o ID:" #, fuzzy -#~ msgid "Autotiles" -#~ msgstr "Auto Divisione" - -#, fuzzy #~ msgid "Export templates for this platform are missing/corrupted: " #~ msgstr "Le export templates per questa piattaforma sono mancanti:" -#~ msgid "Button 7" -#~ msgstr "Pulsante 7" - #~ msgid "Button 8" #~ msgstr "Pulsante 8" @@ -11894,9 +13556,6 @@ msgstr "Varyings può essere assegnato solo nella funzione del vertice." #~ msgid "Project Export Settings" #~ msgstr "Impostazioni Esportazione Progetto" -#~ msgid "Target" -#~ msgstr "Target" - #~ msgid "Export to Platform" #~ msgstr "Esporta a Piattaforma" @@ -11951,9 +13610,6 @@ msgstr "Varyings può essere assegnato solo nella funzione del vertice." #~ msgid "Shrink By:" #~ msgstr "Riduci di:" -#~ msgid "Preview Atlas" -#~ msgstr "Anteprima Atlas" - #~ msgid "Images:" #~ msgstr "Immagini:" diff --git a/editor/translations/ja.po b/editor/translations/ja.po index 67a472c64d..91217afd8a 100644 --- a/editor/translations/ja.po +++ b/editor/translations/ja.po @@ -26,7 +26,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2019-04-19 16:33+0000\n" +"PO-Revision-Date: 2019-05-16 18:49+0000\n" "Last-Translator: Wataru Onuki <watonu@magadou.com>\n" "Language-Team: Japanese <https://hosted.weblate.org/projects/godot-engine/" "godot/ja/>\n" @@ -35,7 +35,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.6-dev\n" +"X-Generator: Weblate 3.7-dev\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -89,6 +89,15 @@ msgstr "ãƒãƒ©ãƒ³ã‚¹" msgid "Mirror" msgstr "ミラー" +#: editor/animation_bezier_editor.cpp editor/editor_profiler.cpp +msgid "Time:" +msgstr "時間:" + +#: editor/animation_bezier_editor.cpp +#, fuzzy +msgid "Value:" +msgstr "値" + #: editor/animation_bezier_editor.cpp msgid "Insert Key Here" msgstr "ã“ã“ã«ã‚ーを挿入" @@ -171,14 +180,20 @@ msgid "Animation Playback Track" msgstr "アニメーションå†ç”Ÿãƒˆãƒ©ãƒƒã‚¯" #: editor/animation_track_editor.cpp -msgid "Add Track" -msgstr "ãƒˆãƒ©ãƒƒã‚¯ã‚’è¿½åŠ " +#, fuzzy +msgid "Animation length (frames)" +msgstr "アニメーションã®é•·ã• (ç§’)" #: editor/animation_track_editor.cpp -msgid "Animation Length Time (seconds)" +#, fuzzy +msgid "Animation length (seconds)" msgstr "アニメーションã®é•·ã• (ç§’)" #: editor/animation_track_editor.cpp +msgid "Add Track" +msgstr "ãƒˆãƒ©ãƒƒã‚¯ã‚’è¿½åŠ " + +#: editor/animation_track_editor.cpp msgid "Animation Looping" msgstr "アニメーションループ" @@ -307,11 +322,13 @@ msgid "Create %d NEW tracks and insert keys?" msgstr "%d æ–°è¦ãƒˆãƒ©ãƒƒã‚¯ã‚’作æˆã—ã€ã‚ーを挿入ã—ã¾ã™ã‹ï¼Ÿ" #: editor/animation_track_editor.cpp editor/create_dialog.cpp -#: editor/editor_audio_buses.cpp editor/editor_plugin_settings.cpp -#: editor/plugin_config_dialog.cpp +#: editor/editor_audio_buses.cpp editor/editor_feature_profile.cpp +#: editor/editor_plugin_settings.cpp editor/plugin_config_dialog.cpp #: editor/plugins/abstract_polygon_2d_editor.cpp #: editor/plugins/mesh_instance_editor_plugin.cpp -#: editor/plugins/particles_editor_plugin.cpp editor/script_create_dialog.cpp +#: editor/plugins/particles_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_create_dialog.cpp msgid "Create" msgstr "作æˆ" @@ -436,6 +453,23 @@ msgid "" msgstr "ã“ã®ã‚ªãƒ—ションã¯å˜ä¸€ãƒˆãƒ©ãƒƒã‚¯ã§ã®ãƒ™ã‚¸ã‚§ç·¨é›†ã§ã¯æ©Ÿèƒ½ã—ã¾ã›ã‚“。" #: editor/animation_track_editor.cpp +msgid "" +"This animation belongs to an imported scene, so changes to imported tracks " +"will not be saved.\n" +"\n" +"To enable the ability to add custom tracks, navigate to the scene's import " +"settings and set\n" +"\"Animation > Storage\" to \"Files\", enable \"Animation > Keep Custom Tracks" +"\", then re-import.\n" +"Alternatively, use an import preset that imports animations to separate " +"files." +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Warning: Editing imported animation" +msgstr "" + +#: editor/animation_track_editor.cpp msgid "Only show tracks from nodes selected in tree." msgstr "ツリーã§é¸æŠžã—ãŸãƒŽãƒ¼ãƒ‰ã®ãƒˆãƒ©ãƒƒã‚¯ã®ã¿ã‚’表示ã—ã¾ã™ã€‚" @@ -570,7 +604,8 @@ msgstr "スケール比:" msgid "Select tracks to copy:" msgstr "コピーã™ã‚‹ãƒˆãƒ©ãƒƒã‚¯ã‚’é¸æŠž:" -#: editor/animation_track_editor.cpp editor/editor_properties.cpp +#: editor/animation_track_editor.cpp editor/editor_log.cpp +#: editor/editor_properties.cpp #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp @@ -639,6 +674,11 @@ msgstr "ã™ã¹ã¦ç½®æ›" msgid "Selection Only" msgstr "é¸æŠžç¯„å›²ã®ã¿" +#: editor/code_editor.cpp editor/plugins/script_text_editor.cpp +#: editor/plugins/text_editor.cpp +msgid "Standard" +msgstr "標準" + #: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/texture_region_editor_plugin.cpp #: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp @@ -664,21 +704,39 @@ msgid "Line and column numbers." msgstr "行番å·ã¨åˆ—番å·ã€‚" #: editor/connections_dialog.cpp -msgid "Method in target Node must be specified!" +#, fuzzy +msgid "Method in target node must be specified." msgstr "対象ノードã®ãƒ¡ã‚½ãƒƒãƒ‰ã‚’指定ã™ã‚‹å¿…è¦ãŒã‚りã¾ã™ï¼" #: editor/connections_dialog.cpp +#, fuzzy msgid "" -"Target method not found! Specify a valid method or attach a script to target " -"Node." +"Target method not found. Specify a valid method or attach a script to the " +"target node." msgstr "" "対象メソッドãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“ï¼æœ‰åйãªãƒ¡ã‚½ãƒƒãƒ‰ã‚’指定ã™ã‚‹ã‹ã€å¯¾è±¡ãƒŽãƒ¼ãƒ‰ã«ã‚¹ã‚¯ãƒª" "プトを添付ã—ã¦ãã ã•ã„。" #: editor/connections_dialog.cpp -msgid "Connect To Node:" +#, fuzzy +msgid "Connect to Node:" msgstr "ãƒŽãƒ¼ãƒ‰ã«æŽ¥ç¶š:" +#: editor/connections_dialog.cpp +#, fuzzy +msgid "Connect to Script:" +msgstr "ãƒ›ã‚¹ãƒˆã«æŽ¥ç¶šã§ãã¾ã›ã‚“:" + +#: editor/connections_dialog.cpp +#, fuzzy +msgid "From Signal:" +msgstr "シグナル:" + +#: editor/connections_dialog.cpp +#, fuzzy +msgid "Scene does not contain any script." +msgstr "ノードã¯ã‚¸ã‚ªãƒ¡ãƒˆãƒªãƒ¼ã‚’å«ã‚“ã§ã„ã¾ã›ã‚“。" + #: editor/connections_dialog.cpp editor/editor_autoload_settings.cpp #: editor/groups_editor.cpp editor/plugins/item_list_editor_plugin.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_settings_editor.cpp @@ -686,10 +744,12 @@ msgid "Add" msgstr "è¿½åŠ " #: editor/connections_dialog.cpp editor/dependency_editor.cpp -#: editor/groups_editor.cpp editor/plugins/animation_player_editor_plugin.cpp +#: editor/editor_feature_profile.cpp editor/groups_editor.cpp +#: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp #: editor/plugins/resource_preloader_editor_plugin.cpp -#: editor/plugins/theme_editor_plugin.cpp editor/project_manager.cpp +#: editor/plugins/theme_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_manager.cpp #: editor/project_settings_editor.cpp msgid "Remove" msgstr "除去" @@ -703,21 +763,32 @@ msgid "Extra Call Arguments:" msgstr "è¿½åŠ ã®å‘¼å‡ºã—引数:" #: editor/connections_dialog.cpp -msgid "Path to Node:" -msgstr "ノードã¸ã®ãƒ‘ス:" - -#: editor/connections_dialog.cpp -msgid "Make Function" -msgstr "関数を作æˆ" +#, fuzzy +msgid "Advanced" +msgstr "アニメーションã®ã‚ªãƒ—ション" #: editor/connections_dialog.cpp msgid "Deferred" msgstr "é…å»¶" #: editor/connections_dialog.cpp +msgid "" +"Defers the signal, storing it in a queue and only firing it at idle time." +msgstr "" + +#: editor/connections_dialog.cpp msgid "Oneshot" msgstr "å˜ç™º" +#: editor/connections_dialog.cpp +msgid "Disconnects the signal after its first emission." +msgstr "" + +#: editor/connections_dialog.cpp +#, fuzzy +msgid "Cannot connect signal" +msgstr "ã‚·ã‚°ãƒŠãƒ«ã®æŽ¥ç¶š: " + #: editor/connections_dialog.cpp editor/dependency_editor.cpp #: editor/export_template_manager.cpp editor/groups_editor.cpp #: editor/plugins/animation_player_editor_plugin.cpp @@ -758,11 +829,13 @@ msgid "Disconnect" msgstr "切æ–" #: editor/connections_dialog.cpp -msgid "Connect Signal: " +#, fuzzy +msgid "Connect a Signal to a Method" msgstr "ã‚·ã‚°ãƒŠãƒ«ã®æŽ¥ç¶š: " #: editor/connections_dialog.cpp -msgid "Edit Connection: " +#, fuzzy +msgid "Edit Connection:" msgstr "接続を編集: " #: editor/connections_dialog.cpp @@ -794,7 +867,6 @@ msgid "Change %s Type" msgstr "%s 型を変更" #: editor/create_dialog.cpp editor/project_settings_editor.cpp -#: modules/visual_script/visual_script_editor.cpp msgid "Change" msgstr "変更" @@ -825,7 +897,8 @@ msgid "Matches:" msgstr "一致:" #: editor/create_dialog.cpp editor/plugin_config_dialog.cpp -#: editor/plugins/asset_library_editor_plugin.cpp editor/property_selector.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/property_selector.cpp #: modules/visual_script/visual_script_property_selector.cpp msgid "Description:" msgstr "説明:" @@ -839,17 +912,19 @@ msgid "Dependencies For:" msgstr "次ã®ä¾å˜é–¢ä¿‚:" #: editor/dependency_editor.cpp +#, fuzzy msgid "" "Scene '%s' is currently being edited.\n" -"Changes will not take effect unless reloaded." +"Changes will only take effect when reloaded." msgstr "" "シーン '%s' ã¯ç¾åœ¨ç·¨é›†ä¸ã§ã™ã€‚\n" "å†èªè¾¼ã¿ã—ãªã„é™ã‚Šã€å¤‰æ›´ã¯åæ˜ ã•れã¾ã›ã‚“。" #: editor/dependency_editor.cpp +#, fuzzy msgid "" "Resource '%s' is in use.\n" -"Changes will take effect when reloaded." +"Changes will only take effect when reloaded." msgstr "" "リソース '%s' ã¯ä½¿ç”¨ä¸ã§ã™ã€‚\n" "変更ã¯å†èªè¾¼ã¿æ™‚ã«é©ç”¨ã•れã¾ã™ã€‚" @@ -944,21 +1019,14 @@ msgid "Permanently delete %d item(s)? (No undo!)" msgstr "%d 個ã®ã‚¢ã‚¤ãƒ†ãƒ を完全ã«å‰Šé™¤ã—ã¾ã™ã‹?ï¼ˆã€Œå…ƒã«æˆ»ã™ã€ä¸å¯!)" #: editor/dependency_editor.cpp -msgid "Owns" -msgstr "所有" - -#: editor/dependency_editor.cpp -msgid "Resources Without Explicit Ownership:" -msgstr "æ‰€æœ‰æ¨©ãŒæ˜Žç¤ºã•れã¦ã„ãªã„リソース:" +#, fuzzy +msgid "Show Dependencies" +msgstr "ä¾å˜é–¢ä¿‚" #: editor/dependency_editor.cpp editor/editor_node.cpp msgid "Orphan Resource Explorer" msgstr "å¤ç«‹ãƒªã‚½ãƒ¼ã‚¹ エクスプãƒãƒ¼ãƒ©ãƒ¼" -#: editor/dependency_editor.cpp -msgid "Delete selected files?" -msgstr "é¸æŠžã—ãŸãƒ•ァイルを削除ã—ã¾ã™ã‹ï¼Ÿ" - #: editor/dependency_editor.cpp editor/editor_audio_buses.cpp #: editor/editor_file_dialog.cpp editor/editor_node.cpp #: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp @@ -967,6 +1035,14 @@ msgstr "é¸æŠžã—ãŸãƒ•ァイルを削除ã—ã¾ã™ã‹ï¼Ÿ" msgid "Delete" msgstr "削除" +#: editor/dependency_editor.cpp +msgid "Owns" +msgstr "所有" + +#: editor/dependency_editor.cpp +msgid "Resources Without Explicit Ownership:" +msgstr "æ‰€æœ‰æ¨©ãŒæ˜Žç¤ºã•れã¦ã„ãªã„リソース:" + #: editor/dictionary_property_edit.cpp msgid "Change Dictionary Key" msgstr "Dictionary ã‚ーã®å¤‰æ›´" @@ -1079,7 +1155,7 @@ msgstr "パッケージã®ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã«æˆåŠŸã—ã¾ã—ãŸ!" msgid "Success!" msgstr "æˆåŠŸï¼" -#: editor/editor_asset_installer.cpp +#: editor/editor_asset_installer.cpp editor/editor_node.cpp #: editor/plugins/asset_library_editor_plugin.cpp msgid "Install" msgstr "インストール" @@ -1206,8 +1282,12 @@ msgid "Open Audio Bus Layout" msgstr "オーディオãƒã‚¹ã®ãƒ¬ã‚¤ã‚¢ã‚¦ãƒˆã‚’é–‹ã" #: editor/editor_audio_buses.cpp -msgid "There is no 'res://default_bus_layout.tres' file." -msgstr "'res://default_bus_layout.tres' ファイルãŒã‚りã¾ã›ã‚“。" +msgid "There is no '%s' file." +msgstr "" + +#: editor/editor_audio_buses.cpp editor/plugins/canvas_item_editor_plugin.cpp +msgid "Layout" +msgstr "レイアウト" #: editor/editor_audio_buses.cpp msgid "Invalid file, not an audio bus layout." @@ -1260,18 +1340,25 @@ msgid "Valid characters:" msgstr "æœ‰åŠ¹ãªæ–‡å—:" #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing engine class name." +#, fuzzy +msgid "Must not collide with an existing engine class name." msgstr "無効ãªåå‰ã§ã™ã€‚æ—¢å˜ã®ã‚¨ãƒ³ã‚¸ãƒ³ã‚¯ãƒ©ã‚¹åã¨é‡è¤‡ã—ã¦ã¯ã„ã‘ã¾ã›ã‚“。" #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing buit-in type name." +#, fuzzy +msgid "Must not collide with an existing buit-in type name." msgstr "無効ãªåå‰ã§ã™ã€‚æ—¢å˜ã®çµ„è¾¼ã¿åž‹åã¨é‡è¤‡ã—ã¦ã¯ã„ã‘ã¾ã›ã‚“。" #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing global constant name." +#, fuzzy +msgid "Must not collide with an existing global constant name." msgstr "無効ãªåå‰ã§ã™ã€‚æ—¢å˜ã®ã‚°ãƒãƒ¼ãƒãƒ«å®šæ•°åã¨é‡è¤‡ã—ã¦ã¯ã„ã‘ã¾ã›ã‚“。" #: editor/editor_autoload_settings.cpp +msgid "Keyword cannot be used as an autoload name." +msgstr "" + +#: editor/editor_autoload_settings.cpp msgid "Autoload '%s' already exists!" msgstr "自動èªè¾¼ã¿ '%s' ã¯æ—¢ã«å˜åœ¨ã—ã¾ã™ï¼" @@ -1299,11 +1386,12 @@ msgstr "有効" msgid "Rearrange Autoloads" msgstr "自動èªè¾¼ã¿ã®ä¸¦ã¹æ›¿ãˆ" -#: editor/editor_autoload_settings.cpp -msgid "Invalid Path." +#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp +#, fuzzy +msgid "Invalid path." msgstr "無効ãªãƒ‘スã§ã™ã€‚" -#: editor/editor_autoload_settings.cpp +#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp msgid "File does not exist." msgstr "ファイルãŒå˜åœ¨ã—ã¾ã›ã‚“。" @@ -1354,7 +1442,8 @@ msgid "[unsaved]" msgstr "[未ä¿å˜]" #: editor/editor_dir_dialog.cpp -msgid "Please select a base directory first" +#, fuzzy +msgid "Please select a base directory first." msgstr "ã¯ã˜ã‚ã«ãƒ™ãƒ¼ã‚¹ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã‚’é¸æŠžã—ã¦ãã ã•ã„" #: editor/editor_dir_dialog.cpp @@ -1362,7 +1451,8 @@ msgid "Choose a Directory" msgstr "ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã‚’é¸æŠž" #: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp -#: editor/filesystem_dock.cpp scene/gui/file_dialog.cpp +#: editor/filesystem_dock.cpp editor/project_manager.cpp +#: scene/gui/file_dialog.cpp msgid "Create Folder" msgstr "フォルダーを作æˆ" @@ -1395,33 +1485,31 @@ msgid "Packing" msgstr "パックã™ã‚‹" #: editor/editor_export.cpp -#, fuzzy msgid "" "Target platform requires 'ETC' texture compression for GLES2. Enable 'Import " "Etc' in Project Settings." msgstr "" "対象プラットフォームã§ã¯GLES2ã®ãŸã‚ã«'ETC'テクスãƒãƒ£åœ§ç¸®ãŒå¿…è¦ã§ã™ã€‚プãƒã‚¸ã‚§" -"クトè¨å®šã‚ˆã‚Šæœ‰åйã«ã—ã¦ãã ã•ã„。" +"クトè¨å®šã‚ˆã‚Š 'Import Etc' をオンã«ã—ã¦ãã ã•ã„。" #: editor/editor_export.cpp -#, fuzzy msgid "" "Target platform requires 'ETC2' texture compression for GLES3. Enable " "'Import Etc 2' in Project Settings." msgstr "" -"対象プラットフォームã§ã¯GLES2ã®ãŸã‚ã«'ETC'テクスãƒãƒ£åœ§ç¸®ãŒå¿…è¦ã§ã™ã€‚プãƒã‚¸ã‚§" -"クトè¨å®šã‚ˆã‚Šæœ‰åйã«ã—ã¦ãã ã•ã„。" +"対象プラットフォームã§ã¯GLES3ã®ãŸã‚ã«'ETC2'テクスãƒãƒ£åœ§ç¸®ãŒå¿…è¦ã§ã™ã€‚プãƒã‚¸ã‚§" +"クトè¨å®šã‚ˆã‚Š 'Import Etc 2' をオンã«ã—ã¦ãã ã•ã„。" #: editor/editor_export.cpp -#, fuzzy msgid "" "Target platform requires 'ETC' texture compression for the driver fallback " "to GLES2.\n" "Enable 'Import Etc' in Project Settings, or disable 'Driver Fallback " "Enabled'." msgstr "" -"対象プラットフォームã§ã¯GLES2ã®ãŸã‚ã«'ETC'テクスãƒãƒ£åœ§ç¸®ãŒå¿…è¦ã§ã™ã€‚プãƒã‚¸ã‚§" -"クトè¨å®šã‚ˆã‚Šæœ‰åйã«ã—ã¦ãã ã•ã„。" +"対象プラットフォームã§ã¯GLES2ã¸ãƒ•ォールãƒãƒƒã‚¯ã™ã‚‹ãŸã‚ã«'ETC'テクスãƒãƒ£åœ§ç¸®ãŒ" +"å¿…è¦ã§ã™ã€‚プãƒã‚¸ã‚§ã‚¯ãƒˆè¨å®šã‚ˆã‚Š 'Import Etc' をオンã«ã™ã‚‹ã‹ã€'Fallback To " +"Gles 2' をオフã«ã—ã¦ãã ã•ã„。" #: editor/editor_export.cpp platform/android/export/export.cpp #: platform/iphone/export/export.cpp platform/javascript/export/export.cpp @@ -1439,6 +1527,178 @@ msgstr "カスタムリリーステンプレートãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“。" msgid "Template file not found:" msgstr "テンプレートファイルãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“:" +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "3D Editor" +msgstr "エディタ" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Script Editor" +msgstr "スクリプトエディタを開ã" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Asset Library" +msgstr "アセットライブラリを開ã" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Scene Tree Editing" +msgstr "シーンツリー(ノード):" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Import Dock" +msgstr "インãƒãƒ¼ãƒˆ" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Node Dock" +msgstr "è¿½åŠ ã—ãŸã‚ーを移動" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Filesystem Dock" +msgstr "ファイルシステム" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Erase profile '%s'? (no undo)" +msgstr "ã™ã¹ã¦ç½®æ›ï¼ˆã€Œå…ƒã«æˆ»ã™ã€ä¸å¯ï¼‰" + +#: editor/editor_feature_profile.cpp +msgid "Profile must be a valid filename and must not contain '.'" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Profile with this name already exists." +msgstr "åŒåã®ãƒ•ァイルã¾ãŸã¯ãƒ•ォルダãŒã‚りã¾ã™ã€‚" + +#: editor/editor_feature_profile.cpp +msgid "(Editor Disabled, Properties Disabled)" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "(Properties Disabled)" +msgstr "プãƒãƒ‘ティã®ã¿" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "(Editor Disabled)" +msgstr "無効" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Class Options:" +msgstr "クラスã®èª¬æ˜Žï¼š" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enable Contextual Editor" +msgstr "次ã®ã‚¨ãƒ‡ã‚£ã‚¿ã‚’é–‹ã" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enabled Properties:" +msgstr "プãƒãƒ‘ティ:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enabled Features:" +msgstr "テクスãƒãƒ£" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enabled Classes:" +msgstr "ã‚¯ãƒ©ã‚¹ã®æ¤œç´¢" + +#: editor/editor_feature_profile.cpp +msgid "File '%s' format is invalid, import aborted." +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "" +"Profile '%s' already exists. Remote it first before importing, import " +"aborted." +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Error saving profile to path: '%s'." +msgstr "テンプレート %s èªã¿è¾¼ã¿ã‚¨ãƒ©ãƒ¼" + +#: editor/editor_feature_profile.cpp +msgid "Unset" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Current Profile" +msgstr "ç¾åœ¨ã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Make Current" +msgstr "ç¾åœ¨:" + +#: editor/editor_feature_profile.cpp +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "New" +msgstr "æ–°è¦" + +#: editor/editor_feature_profile.cpp editor/editor_node.cpp +#: editor/plugins/asset_library_editor_plugin.cpp editor/project_manager.cpp +msgid "Import" +msgstr "インãƒãƒ¼ãƒˆ" + +#: editor/editor_feature_profile.cpp editor/editor_node.cpp +#: editor/project_export.cpp +msgid "Export" +msgstr "エクスãƒãƒ¼ãƒˆ" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Available Profiles" +msgstr "利用å¯èƒ½ãªãƒŽãƒ¼ãƒ‰:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enabled Classes" +msgstr "ã‚¯ãƒ©ã‚¹ã®æ¤œç´¢" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Class Options" +msgstr "クラスã®èª¬æ˜Ž" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "New profile name:" +msgstr "æ–°ã—ã„åå‰:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Erase Profile" +msgstr "タイルマップを消去" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Import Profile(s)" +msgstr "インãƒãƒ¼ãƒˆã•れãŸãƒ—ãƒã‚¸ã‚§ã‚¯ãƒˆ" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Export Profile" +msgstr "プãƒã‚¸ã‚§ã‚¯ãƒˆã®ã‚¨ã‚¯ã‚¹ãƒãƒ¼ãƒˆ" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Manage Editor Feature Profiles" +msgstr "エクスãƒãƒ¼ãƒˆãƒ†ãƒ³ãƒ—レートã®ç®¡ç†" + #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Select Current Folder" msgstr "ç¾åœ¨ã®ãƒ•ã‚©ãƒ«ãƒ€ãƒ¼ã‚’é¸æŠž" @@ -1459,8 +1719,8 @@ msgstr "パスをコピー" msgid "Open in File Manager" msgstr "ファイルマãƒãƒ¼ã‚¸ãƒ£ãƒ¼ã§é–‹ã" -#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp -#: editor/project_manager.cpp +#: editor/editor_file_dialog.cpp editor/editor_node.cpp +#: editor/filesystem_dock.cpp editor/project_manager.cpp msgid "Show in File Manager" msgstr "ファイルマãƒãƒ¼ã‚¸ãƒ£ãƒ¼ã§è¡¨ç¤º" @@ -1519,7 +1779,7 @@ msgstr "進む" msgid "Go Up" msgstr "上ã¸" -#: editor/editor_file_dialog.cpp +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Toggle Hidden Files" msgstr "éš ã—ファイルã®åˆ‡ã‚Šæ›¿ãˆ" @@ -1553,8 +1813,9 @@ msgstr "å‰ã®åºŠé¢" msgid "Next Folder" msgstr "次ã®åºŠé¢" -#: editor/editor_file_dialog.cpp -msgid "Go to parent folder" +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp +#, fuzzy +msgid "Go to parent folder." msgstr "親フォルダã¸" #: editor/editor_file_dialog.cpp @@ -1562,6 +1823,11 @@ msgstr "親フォルダã¸" msgid "(Un)favorite current folder." msgstr "フォルダを作æˆã§ãã¾ã›ã‚“ã§ã—ãŸã€‚" +#: editor/editor_file_dialog.cpp +#, fuzzy +msgid "Toggle visibility of hidden files." +msgstr "éš ã—ファイルã®åˆ‡ã‚Šæ›¿ãˆ" + #: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp msgid "View items as a grid of thumbnails." msgstr "アイテムをサムãƒã‚¤ãƒ«ã§ã‚°ãƒªãƒƒãƒ‰è¡¨ç¤ºã™ã‚‹ã€‚" @@ -1576,6 +1842,7 @@ msgstr "ディレクトリã¨ãƒ•ァイル:" #: editor/editor_file_dialog.cpp editor/plugins/sprite_editor_plugin.cpp #: editor/plugins/style_box_editor_plugin.cpp +#: editor/plugins/theme_editor_plugin.cpp msgid "Preview:" msgstr "プレビュー:" @@ -1592,6 +1859,12 @@ msgid "ScanSources" msgstr "スã‚ャンソース" #: editor/editor_file_system.cpp +msgid "" +"There are multiple importers for different types pointing to file %s, import " +"aborted" +msgstr "" + +#: editor/editor_file_system.cpp msgid "(Re)Importing Assets" msgstr "アセットを(å†)インãƒãƒ¼ãƒˆä¸" @@ -1774,6 +2047,11 @@ msgstr "複数è¨å®š:" msgid "Output:" msgstr "出力:" +#: editor/editor_log.cpp editor/plugins/tile_map_editor_plugin.cpp +#, fuzzy +msgid "Copy Selection" +msgstr "é¸æŠžã—ã¦ã„ã‚‹ã‚‚ã®ã‚’削除" + #: editor/editor_log.cpp editor/editor_profiler.cpp #: editor/editor_properties.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp @@ -1928,9 +2206,10 @@ msgstr "" "ントをãŠèªã¿ãã ã•ã„。" #: editor/editor_node.cpp +#, fuzzy msgid "" "This resource belongs to a scene that was instanced or inherited.\n" -"Changes to it will not be kept when saving the current scene." +"Changes to it won't be kept when saving the current scene." msgstr "" "ã“ã®ãƒªã‚½ãƒ¼ã‚¹ã¯ã€ã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹åŒ–ã¾ãŸã¯ç¶™æ‰¿ã•れãŸã‚·ãƒ¼ãƒ³ã«å±žã—ã¦ã„ã¾ã™ã€‚\n" "ç¾åœ¨ã®ã‚·ãƒ¼ãƒ³ã‚’ä¿å˜ã—ã¦ã‚‚ã€å¤‰æ›´å†…容ã¯ä¿æŒã•れã¾ã›ã‚“。" @@ -1944,8 +2223,9 @@ msgstr "" "を変更ã—ã€å†åº¦ã‚¤ãƒ³ãƒãƒ¼ãƒˆã—ã¦ãã ã•ã„。" #: editor/editor_node.cpp +#, fuzzy msgid "" -"This scene was imported, so changes to it will not be kept.\n" +"This scene was imported, so changes to it won't be kept.\n" "Instancing it or inheriting will allow making changes to it.\n" "Please read the documentation relevant to importing scenes to better " "understand this workflow." @@ -1956,8 +2236,9 @@ msgstr "" "ントをãŠèªã¿ãã ã•ã„。" #: editor/editor_node.cpp +#, fuzzy msgid "" -"This is a remote object so changes to it will not be kept.\n" +"This is a remote object, so changes to it won't be kept.\n" "Please read the documentation relevant to debugging to better understand " "this workflow." msgstr "" @@ -1970,34 +2251,6 @@ msgid "There is no defined scene to run." msgstr "実行ã™ã‚‹ã‚·ãƒ¼ãƒ³ãŒå®šç¾©ã•れã¦ã„ã¾ã›ã‚“。" #: editor/editor_node.cpp -msgid "" -"No main scene has ever been defined, select one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" -"メインシーンãŒå®šç¾©ã•れã¦ã„ã¾ã›ã‚“ã€‚é¸æŠžã—ã¾ã™ã‹?\n" -"'アプリケーション' カテゴリã®ä¸‹ã® \"プãƒã‚¸ã‚§ã‚¯ãƒˆè¨å®š\" ã‹ã‚‰ã‚‚変更ã§ãã¾ã™ã€‚" - -#: editor/editor_node.cpp -msgid "" -"Selected scene '%s' does not exist, select a valid one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" -"é¸æŠžã—ãŸã‚·ãƒ¼ãƒ³ '%s' ã¯å˜åœ¨ã—ã¾ã›ã‚“。有効ãªã‚·ãƒ¼ãƒ³ã‚’é¸æŠžã—ã¾ã™ã‹?\n" -"'アプリケーション' カテゴリã®ä¸‹ã® \"プãƒã‚¸ã‚§ã‚¯ãƒˆè¨å®š\" ã§å¾Œã‹ã‚‰å¤‰æ›´ã§ãã¾ã™ã€‚" - -#: editor/editor_node.cpp -msgid "" -"Selected scene '%s' is not a scene file, select a valid one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" -"é¸æŠžã—ãŸã‚·ãƒ¼ãƒ³ '%s' ã¯ã‚·ãƒ¼ãƒ³ãƒ•ァイルã§ã¯ã‚りã¾ã›ã‚“。有効ãªã‚·ãƒ¼ãƒ³ã‚’é¸æŠžã—ã¾ã™" -"ã‹?\n" -"'アプリケーション' カテゴリã®ä¸‹ã® \"プãƒã‚¸ã‚§ã‚¯ãƒˆè¨å®š\" ã§å¾Œã‹ã‚‰å¤‰æ›´ã§ãã¾ã™ã€‚" - -#: editor/editor_node.cpp msgid "Current scene was never saved, please save it prior to running." msgstr "ç¾åœ¨ã®ã‚·ãƒ¼ãƒ³ã¯ä¿å˜ã•れã¾ã›ã‚“ã§ã—ãŸã€‚実行ã™ã‚‹å‰ã«ä¿å˜ã—ã¦ãã ã•ã„。" @@ -2005,7 +2258,7 @@ msgstr "ç¾åœ¨ã®ã‚·ãƒ¼ãƒ³ã¯ä¿å˜ã•れã¾ã›ã‚“ã§ã—ãŸã€‚実行ã™ã‚‹å‰ã« msgid "Could not start subprocess!" msgstr "サブプãƒã‚»ã‚¹ã‚’é–‹å§‹ã§ãã¾ã›ã‚“ã§ã—ãŸ!" -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/filesystem_dock.cpp msgid "Open Scene" msgstr "シーンを開ã" @@ -2014,6 +2267,11 @@ msgid "Open Base Scene" msgstr "基本シーンを開ã" #: editor/editor_node.cpp +#, fuzzy +msgid "Quick Open..." +msgstr "シーンã®ã‚¯ã‚¤ãƒƒã‚¯ã‚ªãƒ¼ãƒ—ン..." + +#: editor/editor_node.cpp msgid "Quick Open Scene..." msgstr "シーンã®ã‚¯ã‚¤ãƒƒã‚¯ã‚ªãƒ¼ãƒ—ン..." @@ -2193,6 +2451,34 @@ msgid "Clear Recent Scenes" msgstr "最近開ã„ãŸã‚·ãƒ¼ãƒ³ã®å±¥æ´ã‚’クリア" #: editor/editor_node.cpp +msgid "" +"No main scene has ever been defined, select one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" +"メインシーンãŒå®šç¾©ã•れã¦ã„ã¾ã›ã‚“ã€‚é¸æŠžã—ã¾ã™ã‹?\n" +"'アプリケーション' カテゴリã®ä¸‹ã® \"プãƒã‚¸ã‚§ã‚¯ãƒˆè¨å®š\" ã‹ã‚‰ã‚‚変更ã§ãã¾ã™ã€‚" + +#: editor/editor_node.cpp +msgid "" +"Selected scene '%s' does not exist, select a valid one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" +"é¸æŠžã—ãŸã‚·ãƒ¼ãƒ³ '%s' ã¯å˜åœ¨ã—ã¾ã›ã‚“。有効ãªã‚·ãƒ¼ãƒ³ã‚’é¸æŠžã—ã¾ã™ã‹?\n" +"'アプリケーション' カテゴリã®ä¸‹ã® \"プãƒã‚¸ã‚§ã‚¯ãƒˆè¨å®š\" ã§å¾Œã‹ã‚‰å¤‰æ›´ã§ãã¾ã™ã€‚" + +#: editor/editor_node.cpp +msgid "" +"Selected scene '%s' is not a scene file, select a valid one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" +"é¸æŠžã—ãŸã‚·ãƒ¼ãƒ³ '%s' ã¯ã‚·ãƒ¼ãƒ³ãƒ•ァイルã§ã¯ã‚りã¾ã›ã‚“。有効ãªã‚·ãƒ¼ãƒ³ã‚’é¸æŠžã—ã¾ã™" +"ã‹?\n" +"'アプリケーション' カテゴリã®ä¸‹ã® \"プãƒã‚¸ã‚§ã‚¯ãƒˆè¨å®š\" ã§å¾Œã‹ã‚‰å¤‰æ›´ã§ãã¾ã™ã€‚" + +#: editor/editor_node.cpp msgid "Save Layout" msgstr "レイアウトをä¿å˜" @@ -2218,6 +2504,19 @@ msgstr "シーンをプレイ" msgid "Close Tab" msgstr "タブを閉ã˜ã‚‹" +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +msgid "Close Other Tabs" +msgstr "ä»–ã®ã‚¿ãƒ–ã‚’é–‰ã˜ã‚‹" + +#: editor/editor_node.cpp +msgid "Close Tabs to the Right" +msgstr "" + +#: editor/editor_node.cpp +#, fuzzy +msgid "Close All Tabs" +msgstr "ã™ã¹ã¦é–‰ã˜ã‚‹" + #: editor/editor_node.cpp msgid "Switch Scene Tab" msgstr "シーンタブを切り替ãˆ" @@ -2340,10 +2639,6 @@ msgstr "プãƒã‚¸ã‚§ã‚¯ãƒˆ" msgid "Project Settings" msgstr "プãƒã‚¸ã‚§ã‚¯ãƒˆè¨å®š" -#: editor/editor_node.cpp editor/project_export.cpp -msgid "Export" -msgstr "エクスãƒãƒ¼ãƒˆ" - #: editor/editor_node.cpp editor/plugins/tile_set_editor_plugin.cpp msgid "Tools" msgstr "ツール" @@ -2353,6 +2648,10 @@ msgid "Open Project Data Folder" msgstr "プãƒã‚¸ã‚§ã‚¯ãƒˆã®ãƒ‡ãƒ¼ã‚¿ãƒ•ォルダを開ã" #: editor/editor_node.cpp +msgid "Install Android Build Template" +msgstr "" + +#: editor/editor_node.cpp msgid "Quit to Project List" msgstr "終了ã—ã¦ãƒ—ãƒã‚¸ã‚§ã‚¯ãƒˆä¸€è¦§ã‚’é–‹ã" @@ -2475,6 +2774,11 @@ msgstr "エディタã®ãƒ‡ãƒ¼ã‚¿ãƒ•ォルダを開ã" msgid "Open Editor Settings Folder" msgstr "エディタè¨å®šã®ãƒ•ォルダを開ã" +#: editor/editor_node.cpp +#, fuzzy +msgid "Manage Editor Features" +msgstr "エクスãƒãƒ¼ãƒˆãƒ†ãƒ³ãƒ—レートã®ç®¡ç†" + #: editor/editor_node.cpp editor/project_export.cpp msgid "Manage Export Templates" msgstr "エクスãƒãƒ¼ãƒˆãƒ†ãƒ³ãƒ—レートã®ç®¡ç†" @@ -2487,6 +2791,7 @@ msgstr "ヘルプ" #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp #: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp #: editor/project_settings_editor.cpp editor/rename_dialog.cpp msgid "Search" msgstr "検索" @@ -2576,11 +2881,6 @@ msgstr "å¤‰æ›´æ™‚ã«æ›´æ–°" msgid "Disable Update Spinner" msgstr "アップデートスピナーを無効化" -#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp -#: editor/project_manager.cpp -msgid "Import" -msgstr "インãƒãƒ¼ãƒˆ" - #: editor/editor_node.cpp msgid "FileSystem" msgstr "ファイルシステム" @@ -2606,6 +2906,28 @@ msgid "Don't Save" msgstr "ä¿å˜ã—ãªã„" #: editor/editor_node.cpp +msgid "Android build template is missing, please install relevant templates." +msgstr "" + +#: editor/editor_node.cpp +#, fuzzy +msgid "Manage Templates" +msgstr "エクスãƒãƒ¼ãƒˆãƒ†ãƒ³ãƒ—レートã®ç®¡ç†" + +#: editor/editor_node.cpp +msgid "" +"This will install the Android project for custom builds.\n" +"Note that, in order to use it, it needs to be enabled per export preset." +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"Android build template is already installed and it won't be overwritten.\n" +"Remove the \"build\" directory manually before attempting this operation " +"again." +msgstr "" + +#: editor/editor_node.cpp msgid "Import Templates From ZIP File" msgstr "ZIPファイルã‹ã‚‰ãƒ†ãƒ³ãƒ—レートをインãƒãƒ¼ãƒˆ" @@ -2728,10 +3050,6 @@ msgid "Physics Frame %" msgstr "物ç†ãƒ•レーム%" #: editor/editor_profiler.cpp -msgid "Time:" -msgstr "時間:" - -#: editor/editor_profiler.cpp msgid "Inclusive" msgstr "å«" @@ -2870,10 +3188,6 @@ msgid "Remove Item" msgstr "アイテムを除去" #: editor/editor_run_native.cpp -msgid "Select device from the list" -msgstr "一覧ã‹ã‚‰ãƒ‡ãƒã‚¤ã‚¹ã‚’é¸æŠž" - -#: editor/editor_run_native.cpp msgid "" "No runnable export preset found for this platform.\n" "Please add a runnable preset in the export menu." @@ -2909,6 +3223,10 @@ msgstr "'_run' メソッドを忘れã¦ã„ã¾ã›ã‚“ã‹ï¼Ÿ" msgid "Select Node(s) to Import" msgstr "インãƒãƒ¼ãƒˆã™ã‚‹ãƒŽãƒ¼ãƒ‰ã‚’é¸æŠž" +#: editor/editor_sub_scene.cpp editor/project_manager.cpp +msgid "Browse" +msgstr "å‚ç…§" + #: editor/editor_sub_scene.cpp msgid "Scene Path:" msgstr "シーンã®ãƒ‘ス:" @@ -3075,6 +3393,11 @@ msgid "SSL Handshake Error" msgstr "SSL ãƒãƒ³ãƒ‰ã‚·ã‚§ã‚¤ã‚¯ã‚¨ãƒ©ãƒ¼" #: editor/export_template_manager.cpp +#, fuzzy +msgid "Uncompressing Android Build Sources" +msgstr "アセットを展開" + +#: editor/export_template_manager.cpp msgid "Current Version:" msgstr "ç¾åœ¨ã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³:" @@ -3091,7 +3414,8 @@ msgid "Remove Template" msgstr "テンプレートを除去" #: editor/export_template_manager.cpp -msgid "Select template file" +#, fuzzy +msgid "Select Template File" msgstr "ãƒ†ãƒ³ãƒ—ãƒ¬ãƒ¼ãƒˆãƒ•ã‚¡ã‚¤ãƒ«ã‚’é¸æŠž" #: editor/export_template_manager.cpp @@ -3153,7 +3477,8 @@ msgid "No name provided." msgstr "åå‰ãŒä»˜ã„ã¦ã„ã¾ã›ã‚“。" #: editor/filesystem_dock.cpp -msgid "Provided name contains invalid characters" +#, fuzzy +msgid "Provided name contains invalid characters." msgstr "åå‰ã«ä½¿ç”¨ã§ããªã„æ–‡å—ãŒå«ã¾ã‚Œã¦ã„ã¾ã™" #: editor/filesystem_dock.cpp @@ -3181,7 +3506,13 @@ msgid "Duplicating folder:" msgstr "フォルダを複製:" #: editor/filesystem_dock.cpp -msgid "Open Scene(s)" +#, fuzzy +msgid "New Inherited Scene" +msgstr "æ–°ã—ã„継承ã—ãŸã‚·ãƒ¼ãƒ³..." + +#: editor/filesystem_dock.cpp +#, fuzzy +msgid "Open Scenes" msgstr "シーンを開ã" #: editor/filesystem_dock.cpp @@ -3189,11 +3520,13 @@ msgid "Instance" msgstr "インスタンス" #: editor/filesystem_dock.cpp -msgid "Add to favorites" +#, fuzzy +msgid "Add to Favorites" msgstr "ãŠæ°—ã«å…¥ã‚Šã«è¿½åŠ " #: editor/filesystem_dock.cpp -msgid "Remove from favorites" +#, fuzzy +msgid "Remove from Favorites" msgstr "ãŠæ°—ã«å…¥ã‚Šã‹ã‚‰å‰Šé™¤" #: editor/filesystem_dock.cpp @@ -3224,11 +3557,13 @@ msgstr "æ–°è¦ã‚¹ã‚¯ãƒªãƒ—ト..." msgid "New Resource..." msgstr "æ–°è¦ãƒªã‚½ãƒ¼ã‚¹..." -#: editor/filesystem_dock.cpp editor/script_editor_debugger.cpp +#: editor/filesystem_dock.cpp editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_editor_debugger.cpp msgid "Expand All" msgstr "ã™ã¹ã¦å±•é–‹" -#: editor/filesystem_dock.cpp editor/script_editor_debugger.cpp +#: editor/filesystem_dock.cpp editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_editor_debugger.cpp msgid "Collapse All" msgstr "ã™ã¹ã¦æŠ˜ã‚ŠãŸãŸã‚€" @@ -3240,19 +3575,22 @@ msgid "Rename" msgstr "åå‰ã®å¤‰æ›´" #: editor/filesystem_dock.cpp -msgid "Previous Directory" -msgstr "å‰ã®ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒª" +#, fuzzy +msgid "Previous Folder/File" +msgstr "å‰ã®åºŠé¢" #: editor/filesystem_dock.cpp -msgid "Next Directory" -msgstr "次ã®ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒª" +#, fuzzy +msgid "Next Folder/File" +msgstr "次ã®åºŠé¢" #: editor/filesystem_dock.cpp msgid "Re-Scan Filesystem" msgstr "ファイルシステムをå†ã‚¹ã‚ャン" #: editor/filesystem_dock.cpp -msgid "Toggle split mode" +#, fuzzy +msgid "Toggle Split Mode" msgstr "分割モード切り替ãˆ" #: editor/filesystem_dock.cpp @@ -3283,7 +3621,7 @@ msgstr "上書ã" msgid "Create Script" msgstr "スクリプト作æˆ" -#: editor/find_in_files.cpp +#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp msgid "Find in Files" msgstr "複数ファイル内を検索" @@ -3299,6 +3637,12 @@ msgstr "フォルダ:" msgid "Filters:" msgstr "フィルター:" +#: editor/find_in_files.cpp +msgid "" +"Include the files with the following extensions. Add or remove them in " +"ProjectSettings." +msgstr "" + #: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp msgid "Find..." @@ -3740,7 +4084,8 @@ msgid "Open Animation Node" msgstr "アニメーションノードを開ã" #: editor/plugins/animation_blend_space_2d_editor.cpp -msgid "Triangle already exists" +#, fuzzy +msgid "Triangle already exists." msgstr "ä¸‰è§’å½¢ãŒæ—¢ã«å˜åœ¨ã—ã¾ã™" #: editor/plugins/animation_blend_space_2d_editor.cpp @@ -3824,7 +4169,6 @@ msgid "Node Moved" msgstr "è¿½åŠ ã—ãŸã‚ーを移動" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Unable to connect, port may be in use or connection may be invalid." msgstr "接続ã§ãã¾ã›ã‚“。ãƒãƒ¼ãƒˆãŒä½¿ç”¨ä¸ã‹ã€æŽ¥ç¶šãŒç„¡åйã§ã‚ã‚‹å¯èƒ½æ€§ãŒã‚りã¾ã™ã€‚" @@ -3901,7 +4245,8 @@ msgid "Edit Filtered Tracks:" msgstr "フィルタリング済トラックã®ç·¨é›†:" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -msgid "Enable filtering" +#, fuzzy +msgid "Enable Filtering" msgstr "フィルタリングを有効化" #: editor/plugins/animation_player_editor_plugin.cpp @@ -4016,10 +4361,6 @@ msgid "Animation" msgstr "アニメーション" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "New" -msgstr "æ–°è¦" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Edit Transitions..." msgstr "トランジションã®ç·¨é›†..." @@ -4036,14 +4377,15 @@ msgid "Autoplay on Load" msgstr "èªè¾¼ã¿å¾Œã€è‡ªå‹•å†ç”Ÿ" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Onion Skinning" -msgstr "オニオンスã‚ン" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Enable Onion Skinning" msgstr "オニオンスã‚ンを有効ã«ã™ã‚‹" #: editor/plugins/animation_player_editor_plugin.cpp +#, fuzzy +msgid "Onion Skinning Options" +msgstr "オニオンスã‚ン" + +#: editor/plugins/animation_player_editor_plugin.cpp msgid "Directions" msgstr "æ–¹å‘" @@ -4599,13 +4941,19 @@ msgid "Move CanvasItem" msgstr "CanvasItemを移動" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"Children of containers have their anchors and margins values overridden by " +"their parent." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Presets for the anchors and margins values of a Control node." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "" -"Children of containers have their anchors and margins values overridden by " -"their parent." +"When active, moving Control nodes changes their anchors instead of their " +"margins." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4621,10 +4969,52 @@ msgid "Change Anchors" msgstr "アンカーを変更" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Lock Selected" +msgstr "é¸æŠžãƒ„ãƒ¼ãƒ«" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Unlock Selected" +msgstr "é¸æŠžæ¸ˆã¿ã‚’削除" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Group Selected" +msgstr "é¸æŠžã—ã¦ã„ã‚‹ã‚‚ã®ã‚’削除" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Ungroup Selected" +msgstr "é¸æŠžã—ã¦ã„ã‚‹ã‚‚ã®ã‚’削除" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Paste Pose" msgstr "ãƒãƒ¼ã‚ºã‚’貼り付ã‘" #: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Create Custom Bone(s) from Node(s)" +msgstr "メッシュã‹ã‚‰æ”¾å‡ºç‚¹ã‚’生æˆ" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Clear Bones" +msgstr "ãƒãƒ¼ã‚ºã‚’クリアã™ã‚‹" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Make IK Chain" +msgstr "IKãƒã‚§ãƒ¼ãƒ³ã‚’作æˆ" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Clear IK Chain" +msgstr "IKãƒã‚§ãƒ¼ãƒ³ã‚’クリア" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "" "Warning: Children of a container get their position and size determined only " "by their parent." @@ -4702,7 +5092,8 @@ msgid "Snapping Options" msgstr "スナッピングオプション" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to grid" +#, fuzzy +msgid "Snap to Grid" msgstr "グリッドã«ã‚¹ãƒŠãƒƒãƒ—" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4723,31 +5114,38 @@ msgid "Use Pixel Snap" msgstr "ピクセルスナップを使用" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Smart snapping" +#, fuzzy +msgid "Smart Snapping" msgstr "スマートスナップ" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to parent" +#, fuzzy +msgid "Snap to Parent" msgstr "親ã«ã‚¹ãƒŠãƒƒãƒ—" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node anchor" +#, fuzzy +msgid "Snap to Node Anchor" msgstr "ノードアンカーã«ã‚¹ãƒŠãƒƒãƒ—" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node sides" +#, fuzzy +msgid "Snap to Node Sides" msgstr "ノードå´é¢ã«ã‚¹ãƒŠãƒƒãƒ—" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node center" +#, fuzzy +msgid "Snap to Node Center" msgstr "ノードã®ä¸å¿ƒã«ã‚¹ãƒŠãƒƒãƒ—" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to other nodes" +#, fuzzy +msgid "Snap to Other Nodes" msgstr "ä»–ã®ãƒŽãƒ¼ãƒ‰ã«ã‚¹ãƒŠãƒƒãƒ—" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to guides" +#, fuzzy +msgid "Snap to Guides" msgstr "ガイドã«ã‚¹ãƒŠãƒƒãƒ—" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4761,10 +5159,12 @@ msgid "Unlock the selected object (can be moved)." msgstr "é¸æŠžã—ãŸã‚ªãƒ–ジェクトをアンãƒãƒƒã‚¯ (移動å¯èƒ½ã«ã™ã‚‹)。" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Makes sure the object's children are not selectable." msgstr "オブジェクトã®åã‚’é¸æŠžä¸å¯ã«ã™ã‚‹ã€‚" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Restores the object's children's ability to be selected." msgstr "オブジェクトã®åã‚’é¸æŠžå¯èƒ½ã«æˆ»ã™ã€‚" @@ -4777,14 +5177,6 @@ msgid "Show Bones" msgstr "ボーンを表示ã™ã‚‹" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Make IK Chain" -msgstr "IKãƒã‚§ãƒ¼ãƒ³ã‚’作æˆ" - -#: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Clear IK Chain" -msgstr "IKãƒã‚§ãƒ¼ãƒ³ã‚’クリア" - -#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Make Custom Bone(s) from Node(s)" msgstr "" @@ -4837,8 +5229,8 @@ msgid "Frame Selection" msgstr "é¸æŠžå¯¾è±¡ã‚’ãƒ•ãƒ¬ãƒ¼ãƒ ã®ä¸å¤®ã«" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Layout" -msgstr "レイアウト" +msgid "Preview Canvas Scale" +msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Translation mask for inserting keys." @@ -4892,6 +5284,11 @@ msgid "Divide grid step by 2" msgstr "グリッドステップをåŠåˆ†ã«ã™ã‚‹" #: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Pan View" +msgstr "後é¢å›³" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Add %s" msgstr "%s ã‚’è¿½åŠ " @@ -4916,7 +5313,7 @@ msgstr "%sシーンã®ã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹åŒ–エラー" #: editor/plugins/canvas_item_editor_plugin.cpp #, fuzzy -msgid "Change default type" +msgid "Change Default Type" msgstr "é…列ã®å€¤ã®ç¨®é¡žã®å¤‰æ›´" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -5008,21 +5405,21 @@ msgid "Create Emission Points From Node" msgstr "ノードã‹ã‚‰æ”¾å‡ºç‚¹ã‚’生æˆ" #: editor/plugins/curve_editor_plugin.cpp -msgid "Flat0" +#, fuzzy +msgid "Flat 0" msgstr "フラット0" #: editor/plugins/curve_editor_plugin.cpp -msgid "Flat1" +#, fuzzy +msgid "Flat 1" msgstr "フラット1" -#: editor/plugins/curve_editor_plugin.cpp -#, fuzzy -msgid "Ease in" +#: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp +msgid "Ease In" msgstr "イージング(Ease In)" -#: editor/plugins/curve_editor_plugin.cpp -#, fuzzy -msgid "Ease out" +#: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp +msgid "Ease Out" msgstr "イージング(Ease Out)" #: editor/plugins/curve_editor_plugin.cpp @@ -5043,25 +5440,28 @@ msgid "Load Curve Preset" msgstr "カーブã®ãƒ—リセットをèªã¿è¾¼ã‚€" #: editor/plugins/curve_editor_plugin.cpp -msgid "Add point" +#, fuzzy +msgid "Add Point" msgstr "ç‚¹ã‚’è¿½åŠ " #: editor/plugins/curve_editor_plugin.cpp -msgid "Remove point" +#, fuzzy +msgid "Remove Point" msgstr "ãƒã‚¤ãƒ³ãƒˆã‚’除去" #: editor/plugins/curve_editor_plugin.cpp #, fuzzy -msgid "Left linear" +msgid "Left Linear" msgstr "ç‰é€Ÿ" #: editor/plugins/curve_editor_plugin.cpp #, fuzzy -msgid "Right linear" +msgid "Right Linear" msgstr "å³å´é¢å›³" #: editor/plugins/curve_editor_plugin.cpp -msgid "Load preset" +#, fuzzy +msgid "Load Preset" msgstr "åˆæœŸè¨å®šå€¤ã‚’èªã¿è¾¼ã‚€" #: editor/plugins/curve_editor_plugin.cpp @@ -5120,11 +5520,16 @@ msgstr "シーンã®ãƒ«ãƒ¼ãƒˆã§ã¯æ©Ÿèƒ½ã—ã¾ã›ã‚“!" #: editor/plugins/mesh_instance_editor_plugin.cpp #, fuzzy -msgid "Create Trimesh Shape" +msgid "Create Trimesh Static Shape" msgstr "三角形メッシュ ã®ã‚·ã‚§ã‚¤ãƒ—を生æˆ" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Shape" +msgid "Failed creating shapes!" +msgstr "" + +#: editor/plugins/mesh_instance_editor_plugin.cpp +#, fuzzy +msgid "Create Convex Shape(s)" msgstr "凸状シェイプを生æˆ" #: editor/plugins/mesh_instance_editor_plugin.cpp @@ -5179,16 +5584,12 @@ msgid "Create Trimesh Static Body" msgstr "スタティック(ä¸å¤‰ï¼‰ä¸‰è§’形メッシュ ボディを作æˆ" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Static Body" -msgstr "スタティック(ä¸å¤‰ï¼‰å‡¸çŠ¶ãƒœãƒ‡ã‚£ã‚’ç”Ÿæˆ" - -#: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Trimesh Collision Sibling" msgstr "三角形メッシュ兄弟コリジョンを生æˆ" #: editor/plugins/mesh_instance_editor_plugin.cpp #, fuzzy -msgid "Create Convex Collision Sibling" +msgid "Create Convex Collision Sibling(s)" msgstr "凸型兄弟コリジョンを生æˆ" #: editor/plugins/mesh_instance_editor_plugin.cpp @@ -5356,6 +5757,11 @@ msgid "Create Navigation Polygon" msgstr "ナビゲーションãƒãƒªã‚´ãƒ³ã‚’生æˆ" #: editor/plugins/particles_2d_editor_plugin.cpp +#: editor/plugins/particles_editor_plugin.cpp +msgid "Convert to CPUParticles" +msgstr "CPUパーティクルã«å¤‰æ›" + +#: editor/plugins/particles_2d_editor_plugin.cpp #, fuzzy msgid "Generating Visibility Rect" msgstr "å¯è¦–性ã®çŸ©å½¢ã‚’生æˆ" @@ -5371,11 +5777,6 @@ msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp #: editor/plugins/particles_editor_plugin.cpp -msgid "Convert to CPUParticles" -msgstr "CPUパーティクルã«å¤‰æ›" - -#: editor/plugins/particles_2d_editor_plugin.cpp -#: editor/plugins/particles_editor_plugin.cpp msgid "Generation Time (sec):" msgstr "ç”Ÿæˆæ™‚é–“ (ç§’):" @@ -5527,7 +5928,7 @@ msgstr "曲線を閉ã˜ã‚‹" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp editor/plugins/theme_editor_plugin.cpp -#: editor/project_export.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_export.cpp msgid "Options" msgstr "オプション" @@ -5582,7 +5983,8 @@ msgid "Split Segment (in curve)" msgstr "分割ã™ã‚‹(曲線を)" #: editor/plugins/physical_bone_plugin.cpp -msgid "Move joint" +#, fuzzy +msgid "Move Joint" msgstr "ジョイントを移動" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5827,7 +6229,6 @@ msgid "Open in Editor" msgstr "エディタã§é–‹ã" #: editor/plugins/resource_preloader_editor_plugin.cpp -#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Load Resource" msgstr "リソースをèªã¿è¾¼ã‚€" @@ -5924,6 +6325,11 @@ msgid "%s Class Reference" msgstr " クラスリファレンス" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp +msgid "Find Next" +msgstr "次を検索" + +#: editor/plugins/script_editor_plugin.cpp msgid "Toggle alphabetical sorting of the method list." msgstr "メソッドリストã®ã‚¢ãƒ«ãƒ•ã‚¡ãƒ™ãƒƒãƒˆé †ã‚½ãƒ¼ãƒˆã‚’åˆ‡ã‚Šæ›¿ãˆã‚‹ã€‚" @@ -6004,10 +6410,6 @@ msgstr "ドã‚ュメントを閉ã˜ã‚‹" msgid "Close All" msgstr "ã™ã¹ã¦é–‰ã˜ã‚‹" -#: editor/plugins/script_editor_plugin.cpp -msgid "Close Other Tabs" -msgstr "ä»–ã®ã‚¿ãƒ–ã‚’é–‰ã˜ã‚‹" - #: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp msgid "Run" msgstr "実行" @@ -6016,11 +6418,6 @@ msgstr "実行" msgid "Toggle Scripts Panel" msgstr "スクリプトパãƒãƒ«ã‚’切り替ãˆ" -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/script_text_editor.cpp -msgid "Find Next" -msgstr "次を検索" - #: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp msgid "Step Over" msgstr "ステップオーãƒãƒ¼" @@ -6047,7 +6444,8 @@ msgid "Debug with External Editor" msgstr "外部エディタã§ãƒ‡ãƒãƒƒã‚°" #: editor/plugins/script_editor_plugin.cpp -msgid "Open Godot online documentation" +#, fuzzy +msgid "Open Godot online documentation." msgstr "Godotã®ã‚ªãƒ³ãƒ©ã‚¤ãƒ³æ–‡æ›¸ã‚’é–‹ã" #: editor/plugins/script_editor_plugin.cpp @@ -6055,7 +6453,7 @@ msgid "Request Docs" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Help improve the Godot documentation by giving feedback" +msgid "Help improve the Godot documentation by giving feedback." msgstr "" #: editor/plugins/script_editor_plugin.cpp @@ -6084,10 +6482,12 @@ msgstr "" "ã©ã†ã—ã¾ã™ã‹?:" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp msgid "Reload" msgstr "å†èªè¾¼" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp msgid "Resave" msgstr "å†ä¿å˜" @@ -6101,6 +6501,32 @@ msgstr "æ¤œç´¢çµæžœ" #: editor/plugins/script_text_editor.cpp #, fuzzy +msgid "Connections to method:" +msgstr "ãƒŽãƒ¼ãƒ‰ã«æŽ¥ç¶š:" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Source" +msgstr "ソース:" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Signal" +msgstr "シグナル" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Target" +msgstr "ターゲットã®ãƒ‘ス:" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "" +"Missing connected method '%s' for signal '%s' from node '%s' to node '%s'." +msgstr "'%s' ã‚’ '%s' ã«æŽ¥ç¶š" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy msgid "Line" msgstr "ライン:" @@ -6112,10 +6538,6 @@ msgstr "(無視)" msgid "Go to Function" msgstr "関数ã«ç§»å‹•" -#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp -msgid "Standard" -msgstr "標準" - #: editor/plugins/script_text_editor.cpp msgid "Only resources from filesystem can be dropped." msgstr "ファイルシステムã®ãƒªã‚½ãƒ¼ã‚¹ã®ã¿ãƒ‰ãƒãƒƒãƒ—ã§ãã¾ã™." @@ -6148,6 +6570,11 @@ msgstr "å˜èªžã®å…ˆé æ–‡å—を大文å—ã«" msgid "Syntax Highlighter" msgstr "シンタックスãƒã‚¤ãƒ©ã‚¤ãƒˆ" +#: editor/plugins/script_text_editor.cpp +#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp +msgid "Bookmarks" +msgstr "" + #: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" @@ -6175,6 +6602,26 @@ msgid "Toggle Comment" msgstr "コメントã®åˆ‡ã‚Šæ›¿ãˆ" #: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Toggle Bookmark" +msgstr "フリールックã®åˆ‡ã‚Šæ›¿ãˆ" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Go to Next Bookmark" +msgstr "次ã®ãƒ–レークãƒã‚¤ãƒ³ãƒˆã«ç§»å‹•" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Go to Previous Bookmark" +msgstr "å‰ã®ãƒ–レークãƒã‚¤ãƒ³ãƒˆã«ç§»å‹•" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Remove All Bookmarks" +msgstr "ã™ã¹ã¦ã®ã‚¢ã‚¤ãƒ†ãƒ を除去" + +#: editor/plugins/script_text_editor.cpp msgid "Fold/Unfold Line" msgstr "行を折りãŸãŸã‚€/展開ã™ã‚‹" @@ -6249,6 +6696,15 @@ msgid "Contextual Help" msgstr "文脈å‚照ヘルプ" #: editor/plugins/shader_editor_plugin.cpp +#, fuzzy +msgid "" +"This shader has been modified on on disk.\n" +"What action should be taken?" +msgstr "" +"次ã®ãƒ•ァイルã¯ã€ã‚ˆã‚Šæ–°ã—ã„版ãŒãƒ‡ã‚£ã‚¹ã‚¯ã«å˜åœ¨ã—ã¾ã™\n" +"ã©ã†ã—ã¾ã™ã‹?:" + +#: editor/plugins/shader_editor_plugin.cpp msgid "Shader" msgstr "シェーダー" @@ -6605,7 +7061,8 @@ msgid "Right View" msgstr "å³å´é¢å›³" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Switch Perspective/Orthogonal view" +#, fuzzy +msgid "Switch Perspective/Orthogonal View" msgstr "é€è¦–投影/並行投影ã®åˆ‡ã‚Šæ›¿ãˆ" #: editor/plugins/spatial_editor_plugin.cpp @@ -6645,12 +7102,14 @@ msgid "Toggle Freelook" msgstr "フリールックã®åˆ‡ã‚Šæ›¿ãˆ" #: editor/plugins/spatial_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp #, fuzzy msgid "Transform" msgstr "トランスフォーム" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Snap object to floor" +#, fuzzy +msgid "Snap Object to Floor" msgstr "オブジェクトを底é¢ã«ã‚¹ãƒŠãƒƒãƒ—" #: editor/plugins/spatial_editor_plugin.cpp @@ -6800,42 +7259,42 @@ msgid "Invalid geometry, can't replace by mesh." msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Invalid geometry, can't create polygon." -msgstr "" - -#: editor/plugins/sprite_editor_plugin.cpp -msgid "Invalid geometry, can't create collision polygon." -msgstr "" - -#: editor/plugins/sprite_editor_plugin.cpp -msgid "Invalid geometry, can't create light occluder." -msgstr "" - -#: editor/plugins/sprite_editor_plugin.cpp -msgid "Sprite" -msgstr "スプライト" - -#: editor/plugins/sprite_editor_plugin.cpp #, fuzzy msgid "Convert to Mesh2D" msgstr "2Dメッシュã«å¤‰æ›" #: editor/plugins/sprite_editor_plugin.cpp +msgid "Invalid geometry, can't create polygon." +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp #, fuzzy msgid "Convert to Polygon2D" msgstr "ãƒãƒªã‚´ãƒ³ã‚’移動" #: editor/plugins/sprite_editor_plugin.cpp +msgid "Invalid geometry, can't create collision polygon." +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp #, fuzzy msgid "Create CollisionPolygon2D Sibling" msgstr "コリジョン ãƒãƒªã‚´ãƒ³ã‚’生æˆ" #: editor/plugins/sprite_editor_plugin.cpp +msgid "Invalid geometry, can't create light occluder." +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp #, fuzzy msgid "Create LightOccluder2D Sibling" msgstr "オクルーダーãƒãƒªã‚´ãƒ³ã‚’生æˆ" #: editor/plugins/sprite_editor_plugin.cpp +msgid "Sprite" +msgstr "スプライト" + +#: editor/plugins/sprite_editor_plugin.cpp msgid "Simplification: " msgstr "" @@ -6854,8 +7313,13 @@ msgstr "è¨å®š:" #: editor/plugins/sprite_frames_editor_plugin.cpp #, fuzzy -msgid "ERROR: Couldn't load frame resource!" -msgstr "エラー:フレームリソースをèªã¿è¾¼ã‚ã¾ã›ã‚“ã§ã—ãŸ!" +msgid "No Frames Selected" +msgstr "é¸æŠžå¯¾è±¡ã‚’ãƒ•ãƒ¬ãƒ¼ãƒ ã®ä¸å¤®ã«" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Add %d Frame(s)" +msgstr "ãƒ•ãƒ¬ãƒ¼ãƒ ã‚’è¿½åŠ " #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Add Frame" @@ -6863,6 +7327,11 @@ msgstr "ãƒ•ãƒ¬ãƒ¼ãƒ ã‚’è¿½åŠ " #: editor/plugins/sprite_frames_editor_plugin.cpp #, fuzzy +msgid "ERROR: Couldn't load frame resource!" +msgstr "エラー:フレームリソースをèªã¿è¾¼ã‚ã¾ã›ã‚“ã§ã—ãŸ!" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy msgid "Resource clipboard is empty or not a texture!" msgstr "リソースクリップボードã¯ç©ºã‹ã€ãƒ†ã‚¯ã‚¹ãƒãƒ£ä»¥å¤–ã§ã™!" @@ -6903,6 +7372,15 @@ msgid "Animation Frames:" msgstr "アニメーション フレーム:" #: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Add a Texture from File" +msgstr "シーンã‹ã‚‰ã®ãƒŽãƒ¼ãƒ‰" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Add Frames from a Sprite Sheet" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Insert Empty (Before)" msgstr "空を挿入 (å‰)" @@ -6922,6 +7400,30 @@ msgstr "å·¦ã«ç§»å‹•" #: editor/plugins/sprite_frames_editor_plugin.cpp #, fuzzy +msgid "Select Frames" +msgstr "スタックフレーム" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Horizontal:" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Vertical:" +msgstr "é ‚ç‚¹" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Select/Clear All Frames" +msgstr "ã™ã¹ã¦é¸æŠž" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Create Frames from Sprite Sheet" +msgstr "シーンã‹ã‚‰ç”Ÿæˆ" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy msgid "SpriteFrames" msgstr "スタックフレーム" @@ -6990,12 +7492,13 @@ msgstr "ã™ã¹ã¦ã‚’è¿½åŠ " msgid "Remove All Items" msgstr "ã™ã¹ã¦ã®ã‚¢ã‚¤ãƒ†ãƒ を除去" -#: editor/plugins/theme_editor_plugin.cpp +#: editor/plugins/theme_editor_plugin.cpp editor/project_manager.cpp msgid "Remove All" msgstr "ã™ã¹ã¦é™¤åŽ»" #: editor/plugins/theme_editor_plugin.cpp -msgid "Edit theme..." +#, fuzzy +msgid "Edit Theme" msgstr "テーマを編集..." #: editor/plugins/theme_editor_plugin.cpp @@ -7025,19 +7528,24 @@ msgstr "空ã®ã‚¨ãƒ‡ã‚£ã‚¿ãƒ†ãƒ³ãƒ—レートを生æˆ" #: editor/plugins/theme_editor_plugin.cpp #, fuzzy -msgid "CheckBox Radio1" -msgstr "ãƒã‚§ãƒƒã‚¯ãƒœãƒƒã‚¯ã‚¹ã€€Radio1" +msgid "Toggle Button" +msgstr "マウスボタン" #: editor/plugins/theme_editor_plugin.cpp #, fuzzy -msgid "CheckBox Radio2" -msgstr "ãƒã‚§ãƒƒã‚¯ãƒœãƒƒã‚¯ã‚¹ã€€Radio2" +msgid "Disabled Button" +msgstr "ä¸å¤®ãƒœã‚¿ãƒ³" #: editor/plugins/theme_editor_plugin.cpp msgid "Item" msgstr "アイテム" #: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Disabled Item" +msgstr "無効" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Check Item" msgstr "アイテムをãƒã‚§ãƒƒã‚¯" @@ -7056,6 +7564,24 @@ msgid "Checked Radio Item" msgstr "ãƒã‚§ãƒƒã‚¯æ¸ˆã¿ã‚¢ã‚¤ãƒ†ãƒ " #: editor/plugins/theme_editor_plugin.cpp +msgid "Named Sep." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Submenu" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Item 1" +msgstr "アイテム" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Item 2" +msgstr "アイテム" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Has" msgstr "" @@ -7065,8 +7591,8 @@ msgstr "" #: editor/plugins/theme_editor_plugin.cpp #, fuzzy -msgid "Has,Many,Options" -msgstr "オプション" +msgid "Disabled LineEdit" +msgstr "無効" #: editor/plugins/theme_editor_plugin.cpp msgid "Tab 1" @@ -7082,6 +7608,20 @@ msgstr "タブ3" #: editor/plugins/theme_editor_plugin.cpp #, fuzzy +msgid "Editable Item" +msgstr "編集å¯èƒ½ãªå" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Subtree" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Has,Many,Options" +msgstr "オプション" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy msgid "Data Type:" msgstr "データã®åž‹(Type):" @@ -7116,6 +7656,7 @@ msgid "Fix Invalid Tiles" msgstr "無効ãªåå‰ã§ã™." #: editor/plugins/tile_map_editor_plugin.cpp +#: modules/gridmap/grid_map_editor_plugin.cpp #, fuzzy msgid "Cut Selection" msgstr "é¸æŠžå¯¾è±¡ã‚’ä¸å¤®ã«" @@ -7160,39 +7701,50 @@ msgid "Mirror Y" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp +#, fuzzy +msgid "Disable Autotile" +msgstr "自動スライス" + +#: editor/plugins/tile_map_editor_plugin.cpp +#, fuzzy +msgid "Enable Priority" +msgstr "タイル プãƒãƒ‘ティを編集" + +#: editor/plugins/tile_map_editor_plugin.cpp msgid "Paint Tile" msgstr "タイルを塗る" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Pick Tile" -msgstr "ã‚¿ã‚¤ãƒ«ã‚’é¸æŠž" +msgid "" +"Shift+RMB: Line Draw\n" +"Shift+Ctrl+RMB: Rectangle Paint" +msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy -msgid "Copy Selection" -msgstr "é¸æŠžã—ã¦ã„ã‚‹ã‚‚ã®ã‚’削除" +msgid "Pick Tile" +msgstr "ã‚¿ã‚¤ãƒ«ã‚’é¸æŠž" #: editor/plugins/tile_map_editor_plugin.cpp #, fuzzy -msgid "Rotate left" +msgid "Rotate Left" msgstr "回転モード" #: editor/plugins/tile_map_editor_plugin.cpp #, fuzzy -msgid "Rotate right" +msgid "Rotate Right" msgstr "å³ã«ç§»å‹•" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Flip horizontally" +msgid "Flip Horizontally" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Flip vertically" +msgid "Flip Vertically" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp #, fuzzy -msgid "Clear transform" +msgid "Clear Transform" msgstr "トランスフォーム" #: editor/plugins/tile_set_editor_plugin.cpp @@ -7232,6 +7784,46 @@ msgid "Select the previous shape, subtile, or Tile." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Region Mode" +msgstr "実行モード:" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Collision Mode" +msgstr "補間モード" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Occlusion Mode" +msgstr "オクルージョン ãƒãƒªã‚´ãƒ³ã‚’編集" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Navigation Mode" +msgstr "ナビゲーションメッシュを生æˆ" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Bitmask Mode" +msgstr "回転モード" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Priority Mode" +msgstr "エクスãƒãƒ¼ãƒˆã®ãƒ¢ãƒ¼ãƒ‰:" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Icon Mode" +msgstr "パンモード" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Z Index Mode" +msgstr "パンモード" + +#: editor/plugins/tile_set_editor_plugin.cpp msgid "Copy bitmask." msgstr "" @@ -7320,6 +7912,7 @@ msgstr "ãƒãƒªã‚´ãƒ³ã‚’削除。" msgid "" "LMB: Set bit on.\n" "RMB: Set bit off.\n" +"Shift+LMB: Set wildcard bit.\n" "Click on another Tile to edit it." msgstr "ç¾åœ¨ç·¨é›†ä¸ã®ãƒªã‚½ãƒ¼ã‚¹ã‚’ä¿å˜ã™ã‚‹" @@ -7434,6 +8027,79 @@ msgid "TileSet" msgstr "タイルセット..." #: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Add input +" +msgstr "å…¥åŠ›ã‚’è¿½åŠ " + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Add output +" +msgstr "å…¥åŠ›ã‚’è¿½åŠ " + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar" +msgstr "スケール:" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector" +msgstr "インスペクタ" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Add input port" +msgstr "å…¥åŠ›ã‚’è¿½åŠ " + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add output port" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change input port type" +msgstr "é…列ã®å€¤ã®ç¨®é¡žã®å¤‰æ›´" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change output port type" +msgstr "é…列ã®å€¤ã®ç¨®é¡žã®å¤‰æ›´" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change input port name" +msgstr "入力ã®åå‰ã‚’変更" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change output port name" +msgstr "入力ã®åå‰ã‚’変更" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Remove input port" +msgstr "ãƒã‚¤ãƒ³ãƒˆã‚’除去" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Remove output port" +msgstr "ãƒã‚¤ãƒ³ãƒˆã‚’除去" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Set expression" +msgstr "å¼ã‚’変更" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Resize VisualShader node" +msgstr "シェーダー" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Set Uniform Name" msgstr "" @@ -7477,6 +8143,859 @@ msgstr "å³å´é¢" #: editor/plugins/visual_shader_editor_plugin.cpp #, fuzzy +msgid "Create Shader Node" +msgstr "ノードを生æˆ" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Color function." +msgstr "関数ã«ç§»å‹•" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Color operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Grayscale function." +msgstr "関数を作æˆ" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts HSV vector to RGB equivalent." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts RGB vector to HSV equivalent." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Sepia function." +msgstr "関数åを変更" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Burn operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Darken operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Difference operator." +msgstr "差分ã®ã¿" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Dodge operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "HardLight operator" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Lighten operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Overlay operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Screen operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "SoftLight operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Color constant." +msgstr "コンスタント" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Color uniform." +msgstr "トランスフォーム" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns an associated vector if the provided scalars are equal, greater or " +"less." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns an associated vector if the provided boolean value is true or false." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Boolean constant." +msgstr "ベクトル定数を変更" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'camera' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'inv_camera' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'inv_projection' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'normal' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'projection' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'time' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'viewport_size' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'world' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'texture_pixel_size' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Input parameter." +msgstr "親ã«ã‚¹ãƒŠãƒƒãƒ—" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'binormal' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'fragcoord' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_coord' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_uv' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'side' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'tangent' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv2' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'vertex' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'view' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'albedo' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'attenuation' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'diffuse' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_color' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'roughness' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'specular' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'transmission' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'modelview' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_size' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'tangent' input parameter for vertex and fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_pass' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_coord' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_pixel_size' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_uv' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_alpha' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_height' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_uv' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_vec' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'normal' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'shadow_color' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'extra' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'projection' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'vertex' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'world' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'active' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'custom' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'custom_alpha' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'delta' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'emission_transform' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'index' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'lifetime' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'restart' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'time' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'transform' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'velocity' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar function." +msgstr "スカラ関数を変更" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar operator." +msgstr "スカラ演算åを変更" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "E constant (2.718282). Represents the base of the natural logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Epsilon constant (0.00001). Smallest possible scalar number." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Phi constant (1.618034). Golden ratio." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi/4 constant (0.785398) or 45 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi/2 constant (1.570796) or 90 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi constant (3.141593) or 180 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Tau constant (6.283185) or 360 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Sqrt2 constant (1.414214). Square root of 2." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the absolute value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-tangent of the parameters." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Finds the nearest integer that is greater than or equal to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Constrains a value to lie between two further values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts a quantity in radians to degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-e Exponential." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-2 Exponential." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Finds the nearest integer less than or equal to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Computes the fractional part of the argument." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the inverse of the square root of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Natural logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-2 logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the greater of two values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the lesser of two values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Linear interpolation between two scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the opposite value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 - scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns the value of the first parameter raised to the power of the second." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts a quantity in degrees to radians." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 / scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the nearest integer to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the nearest even integer to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Clamps the value between 0.0 and 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Extracts the sign of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the square root of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( scalar(edge0), scalar(edge1), scalar(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if x is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( scalar(edge), scalar(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the truncated value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Adds scalar to scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Divides scalar by scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies scalar by scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the remainder of the two scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Subtracts scalar from scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar constant." +msgstr "スカラ定数を変更" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar uniform." +msgstr "スカラUniformを変更" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Perform the cubic texture lookup." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Perform the texture lookup." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Cubic texture uniform." +msgstr "テクスãƒãƒ£Uniformを変更" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "2D texture uniform." +msgstr "テクスãƒãƒ£Uniformを変更" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Transform function." +msgstr "トランスフォームã®ãƒ€ã‚¤ã‚¢ãƒã‚°..." + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) Calculate the outer product of a pair of vectors.\n" +"\n" +"OuterProduct treats the first parameter 'c' as a column vector (matrix with " +"one column) and the second parameter 'r' as a row vector (matrix with one " +"row) and does a linear algebraic matrix multiply 'c * r', yielding a matrix " +"whose number of rows is the number of components in 'c' and whose number of " +"columns is the number of components in 'r'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Composes transform from four vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Decomposes transform to four vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the determinant of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the inverse of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the transpose of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies transform by transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies vector by transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Transform constant." +msgstr "トランスフォームã¯ä¸æ¢ã•れã¾ã—ãŸ." + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Transform uniform." +msgstr "トランスフォームã¯ä¸æ¢ã•れã¾ã—ãŸ." + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector function." +msgstr "関数ã«ç§»å‹•..." + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector operator." +msgstr "ベクトル演算åを変更" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Composes vector from three scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Decomposes vector to three scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the cross product of two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the distance between two points." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the dot product of two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns a vector that points in the same direction as a reference vector. " +"The function has three vector parameters : N, the vector to orient, I, the " +"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 "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the length of a vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Linear interpolation between two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the normalize product of vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 - vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 / vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns a vector that points in the direction of reflection ( a : incident " +"vector, b : normal vector )." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns a vector that points in the direction of refraction." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( vector(edge0), vector(edge1), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if 'x' is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( scalar(edge0), scalar(edge1), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if 'x' is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( vector(edge), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( scalar(edge), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Adds vector to vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Divides vector by vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies vector by vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the remainder of the two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Subtracts vector from vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector constant." +msgstr "ベクトル定数を変更" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector uniform." +msgstr "uniform ã¸ã®å‰²ã‚Šå½“ã¦ã€‚" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Custom Godot Shader Language expression, with custom amount of input and " +"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 "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns falloff based on the dot product of surface normal and view " +"direction of camera (pass associated inputs to it)." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) (Fragment/Light mode only) Scalar derivative function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) (Fragment/Light mode only) Vector derivative function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Derivative in 'x' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Derivative in 'x' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Derivative in 'y' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Derivative in 'y' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Sum of absolute derivative " +"in 'x' and 'y'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Sum of absolute derivative " +"in 'x' and 'y'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy msgid "VisualShader" msgstr "シェーダー" @@ -7684,6 +9203,10 @@ msgid "Directory already contains a Godot project." msgstr "ディレクトリã«ã¯Godotプãƒã‚¸ã‚§ã‚¯ãƒˆãŒã™ã§ã«å«ã¾ã‚Œã¦ã„ã¾ã™ã€‚" #: editor/project_manager.cpp +msgid "New Game Project" +msgstr "æ–°ã—ã„ゲームプãƒã‚¸ã‚§ã‚¯ãƒˆ" + +#: editor/project_manager.cpp msgid "Imported Project" msgstr "インãƒãƒ¼ãƒˆã•れãŸãƒ—ãƒã‚¸ã‚§ã‚¯ãƒˆ" @@ -7733,10 +9256,6 @@ msgid "Rename Project" msgstr "プãƒã‚¸ã‚§ã‚¯ãƒˆåã®å¤‰æ›´" #: editor/project_manager.cpp -msgid "New Game Project" -msgstr "æ–°ã—ã„ゲームプãƒã‚¸ã‚§ã‚¯ãƒˆ" - -#: editor/project_manager.cpp msgid "Import Existing Project" msgstr "æ—¢å˜ã®ãƒ—ãƒã‚¸ã‚§ã‚¯ãƒˆã‚’インãƒãƒ¼ãƒˆ" @@ -7765,10 +9284,6 @@ msgid "Project Name:" msgstr "プãƒã‚¸ã‚§ã‚¯ãƒˆå:" #: editor/project_manager.cpp -msgid "Create folder" -msgstr "フォルダを作æˆ" - -#: editor/project_manager.cpp msgid "Project Path:" msgstr "プãƒã‚¸ã‚§ã‚¯ãƒˆãƒ‘ス:" @@ -7777,10 +9292,6 @@ msgid "Project Installation Path:" msgstr "プãƒã‚¸ã‚§ã‚¯ãƒˆã®ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ãƒ‘ス:" #: editor/project_manager.cpp -msgid "Browse" -msgstr "å‚ç…§" - -#: editor/project_manager.cpp msgid "Renderer:" msgstr "レンダラー:" @@ -7834,6 +9345,7 @@ msgid "Are you sure to open more than one project?" msgstr "複数ã®ãƒ—ãƒã‚¸ã‚§ã‚¯ãƒˆã‚’é–‹ã„ã¦ã‚‚よã‚ã—ã„ã§ã™ã‹?" #: editor/project_manager.cpp +#, fuzzy msgid "" "The following project settings file does not specify the version of Godot " "through which it was created.\n" @@ -7842,11 +9354,19 @@ msgid "" "\n" "If you proceed with opening it, it will be converted to Godot's current " "configuration file format.\n" -"Warning: You will not be able to open the project with previous versions of " -"the engine anymore." +"Warning: You won't be able to open the project with previous versions of the " +"engine anymore." msgstr "" +"以下ã®ãƒ—ãƒã‚¸ã‚§ã‚¯ãƒˆè¨å®šãƒ•ァイルã¯ã€å¤ã„ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã®ã‚¨ãƒ³ã‚¸ãƒ³ã«ã‚ˆã‚Šç”Ÿæˆã•れã¦ãŠ" +"りã€ç¾åœ¨ã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³ç”¨ã«å¤‰æ›ãŒå¿…è¦ã§ã™:\n" +"\n" +"%s\n" +"\n" +"変æ›ã—ã¾ã™ã‹?\n" +"è¦å‘Š: プãƒã‚¸ã‚§ã‚¯ãƒˆã¯æ—§ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã®ã‚¨ãƒ³ã‚¸ãƒ³ã§é–‹ãã“ã¨ãŒã§ããªããªã‚Šã¾ã™ã€‚" #: editor/project_manager.cpp +#, fuzzy msgid "" "The following project settings file was generated by an older engine " "version, and needs to be converted for this version:\n" @@ -7854,8 +9374,8 @@ msgid "" "%s\n" "\n" "Do you want to convert it?\n" -"Warning: You will not be able to open the project with previous versions of " -"the engine anymore." +"Warning: You won't be able to open the project with previous versions of the " +"engine anymore." msgstr "" "以下ã®ãƒ—ãƒã‚¸ã‚§ã‚¯ãƒˆè¨å®šãƒ•ァイルã¯ã€å¤ã„ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã®ã‚¨ãƒ³ã‚¸ãƒ³ã«ã‚ˆã‚Šç”Ÿæˆã•れã¦ãŠ" "りã€ç¾åœ¨ã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³ç”¨ã«å¤‰æ›ãŒå¿…è¦ã§ã™:\n" @@ -7872,9 +9392,10 @@ msgid "" msgstr "" #: editor/project_manager.cpp +#, fuzzy msgid "" "Can't run project: no main scene defined.\n" -"Please edit the project and set the main scene in \"Project Settings\" under " +"Please edit the project and set the main scene in the Project Settings under " "the \"Application\" category." msgstr "" "é¸æŠžã—ãŸã‚·ãƒ¼ãƒ³ '%s' ã¯ã€ã‚·ãƒ¼ãƒ³ ファイルã§ã¯ã‚りã¾ã›ã‚“ã€æœ‰åйãªã‚‚ã®ã‚’é¸æŠžã—ã¦ã„" @@ -7888,26 +9409,47 @@ msgid "" msgstr "" #: editor/project_manager.cpp -msgid "Are you sure to run more than one project?" +#, fuzzy +msgid "Are you sure to run %d projects at once?" msgstr "複数ã®ãƒ—ãƒã‚¸ã‚§ã‚¯ãƒˆã‚’実行ã—ã¦ã‚‚よã‚ã—ã„ã§ã™ã‹?" #: editor/project_manager.cpp -msgid "Remove project from the list? (Folder contents will not be modified)" +#, fuzzy +msgid "" +"Remove %d projects from the list?\n" +"The project folders' contents won't be modified." msgstr "" "一覧ã‹ã‚‰ãƒ—ãƒã‚¸ã‚§ã‚¯ãƒˆã‚’削除ã—ã¾ã™ã‹ï¼Ÿï¼ˆãƒ•ォルダーã®å†…容ã¯å¤‰æ›´ã•れã¾ã›ã‚“)" #: editor/project_manager.cpp +#, fuzzy +msgid "" +"Remove this project from the list?\n" +"The project folder's contents won't be modified." +msgstr "" +"一覧ã‹ã‚‰ãƒ—ãƒã‚¸ã‚§ã‚¯ãƒˆã‚’削除ã—ã¾ã™ã‹ï¼Ÿï¼ˆãƒ•ォルダーã®å†…容ã¯å¤‰æ›´ã•れã¾ã›ã‚“)" + +#: editor/project_manager.cpp +#, fuzzy +msgid "" +"Remove all missing projects from the list? (Folders contents will not be " +"modified)" +msgstr "" +"一覧ã‹ã‚‰ãƒ—ãƒã‚¸ã‚§ã‚¯ãƒˆã‚’削除ã—ã¾ã™ã‹ï¼Ÿï¼ˆãƒ•ォルダーã®å†…容ã¯å¤‰æ›´ã•れã¾ã›ã‚“)" + +#: editor/project_manager.cpp +#, fuzzy msgid "" "Language changed.\n" -"The UI will update next time the editor or project manager starts." +"The interface will update after restarting the editor or project manager." msgstr "" "言語ãŒå¤‰æ›´ã•れã¾ã—ãŸã€‚\n" "エディターã¾ãŸã¯ãƒ—ãƒã‚¸ã‚§ã‚¯ãƒˆãƒžãƒãƒ¼ã‚¸ãƒ£ãƒ¼å†èµ·å‹•後ã«UIãŒæ›´æ–°ã•れã¾ã™ã€‚" #: editor/project_manager.cpp msgid "" -"You are about the scan %s folders for existing Godot projects. Do you " -"confirm?" +"Are you sure to scan %s folders for existing Godot projects?\n" +"This could take a while." msgstr "" #: editor/project_manager.cpp @@ -7931,6 +9473,11 @@ msgid "New Project" msgstr "æ–°è¦ãƒ—ãƒã‚¸ã‚§ã‚¯ãƒˆ" #: editor/project_manager.cpp +#, fuzzy +msgid "Remove Missing" +msgstr "ãƒã‚¤ãƒ³ãƒˆã‚’除去" + +#: editor/project_manager.cpp msgid "Templates" msgstr "テンプレート" @@ -7947,9 +9494,10 @@ msgid "Can't run project" msgstr "プãƒã‚¸ã‚§ã‚¯ãƒˆã‚’実行ã§ãã¾ã›ã‚“" #: editor/project_manager.cpp +#, fuzzy msgid "" -"You don't currently have any projects.\n" -"Would you like to explore the official example projects in the Asset Library?" +"You currently don't have any projects.\n" +"Would you like to explore official example projects in the Asset Library?" msgstr "" "プãƒã‚¸ã‚§ã‚¯ãƒˆãŒä½•も登録ã•れã¦ã„ã¾ã›ã‚“。\n" "アセットライブラリã§å…¬å¼ã®ã‚µãƒ³ãƒ—ルプãƒã‚¸ã‚§ã‚¯ãƒˆã‚’ãƒã‚§ãƒƒã‚¯ã—ã¾ã™ã‹ï¼Ÿ" @@ -7979,7 +9527,8 @@ msgid "" msgstr "" #: editor/project_settings_editor.cpp -msgid "Action '%s' already exists!" +#, fuzzy +msgid "An action with the name '%s' already exists." msgstr "アクション'%s'ã¯æ—¢ã«ã‚りã¾ã™!" #: editor/project_settings_editor.cpp @@ -8150,10 +9699,6 @@ msgstr "" "ãã¾ã›ã‚“。" #: editor/project_settings_editor.cpp -msgid "Already existing" -msgstr "æ—¢ã«å˜åœ¨ã—ã¾ã™" - -#: editor/project_settings_editor.cpp #, fuzzy msgid "Add Input Action" msgstr "å…¥åŠ›ã‚¢ã‚¯ã‚·ãƒ§ãƒ³ã‚’è¿½åŠ " @@ -8224,7 +9769,8 @@ msgid "Override For..." msgstr "" #: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp -msgid "Editor must be restarted for changes to take effect" +#, fuzzy +msgid "The editor must be restarted for changes to take effect." msgstr "変更を有効ã«ã™ã‚‹ã«ã¯ã€ã‚¨ãƒ‡ã‚£ã‚¿ã‚’å†èµ·å‹•ã™ã‚‹å¿…è¦ãŒã‚りã¾ã™" #: editor/project_settings_editor.cpp @@ -8284,11 +9830,13 @@ msgid "Locales Filter" msgstr "ãƒã‚±ãƒ¼ãƒ«ãƒ•ィルター" #: editor/project_settings_editor.cpp -msgid "Show all locales" +#, fuzzy +msgid "Show All Locales" msgstr "ã™ã¹ã¦ã®ãƒã‚±ãƒ¼ãƒ«ã‚’表示ã™ã‚‹" #: editor/project_settings_editor.cpp -msgid "Show only selected locales" +#, fuzzy +msgid "Show Selected Locales Only" msgstr "é¸æŠžã—ãŸãƒã‚±ãƒ¼ãƒ«ã®ã¿è¡¨ç¤º" #: editor/project_settings_editor.cpp @@ -8304,14 +9852,6 @@ msgid "AutoLoad" msgstr "自動èªã¿è¾¼ã¿" #: editor/property_editor.cpp -msgid "Ease In" -msgstr "イージング(Ease In)" - -#: editor/property_editor.cpp -msgid "Ease Out" -msgstr "イージング(Ease Out)" - -#: editor/property_editor.cpp #, fuzzy msgid "Zero" msgstr "(イージング)無ã—" @@ -8391,7 +9931,7 @@ msgstr "サフィックス" #: editor/rename_dialog.cpp #, fuzzy -msgid "Advanced options" +msgid "Advanced Options" msgstr "アニメーションã®ã‚ªãƒ—ション" #: editor/rename_dialog.cpp @@ -8658,8 +10198,9 @@ msgid "User Interface" msgstr "ユーザーインターフェース" #: editor/scene_tree_dock.cpp -msgid "Custom Node" -msgstr "カスタムノード" +#, fuzzy +msgid "Other Node" +msgstr "ノードを削除" #: editor/scene_tree_dock.cpp #, fuzzy @@ -8705,7 +10246,8 @@ msgid "Clear Inheritance" msgstr "継承をクリア" #: editor/scene_tree_dock.cpp -msgid "Open documentation" +#, fuzzy +msgid "Open Documentation" msgstr "ドã‚ュメントを開ã" #: editor/scene_tree_dock.cpp @@ -8733,7 +10275,7 @@ msgstr "シーンã‹ã‚‰ãƒžãƒ¼ã‚¸" msgid "Save Branch as Scene" msgstr "ブランãƒã‚’シーンã¨ã—ã¦ä¿å˜" -#: editor/scene_tree_dock.cpp +#: editor/scene_tree_dock.cpp editor/script_editor_debugger.cpp msgid "Copy Node Path" msgstr "ノードã®ãƒ‘スをコピー" @@ -8781,6 +10323,21 @@ msgstr "å¯è¦–性ã®åˆ‡ã‚Šæ›¿ãˆ" #: editor/scene_tree_editor.cpp #, fuzzy +msgid "Unlock Node" +msgstr "ãƒŽãƒ¼ãƒ‰ã‚’é¸æŠž" + +#: editor/scene_tree_editor.cpp +#, fuzzy +msgid "Button Group" +msgstr "ボタン7" + +#: editor/scene_tree_editor.cpp +#, fuzzy +msgid "(Connecting From)" +msgstr "接続エラー" + +#: editor/scene_tree_editor.cpp +#, fuzzy msgid "Node configuration warning:" msgstr "ノードã®è¨å®šã«é–¢ã™ã‚‹è¦å‘Š:" @@ -8809,8 +10366,9 @@ msgstr "" "ノードã¯ã‚°ãƒ«ãƒ¼ãƒ—ã«å±žã—ã¦ã„ã¾ã™.\n" "クリックã—ã¦ã‚°ãƒ«ãƒ¼ãƒ—ã®ãƒ‰ãƒƒã‚¯ã‚’表示ã—ã¦ãã ã•ã„." -#: editor/scene_tree_editor.cpp editor/script_create_dialog.cpp -msgid "Open Script" +#: editor/scene_tree_editor.cpp +#, fuzzy +msgid "Open Script:" msgstr "スクリプトを開ã" #: editor/scene_tree_editor.cpp @@ -8862,76 +10420,84 @@ msgid "Select a Node" msgstr "ãƒŽãƒ¼ãƒ‰ã‚’é¸æŠž" #: editor/script_create_dialog.cpp -msgid "Error loading template '%s'" -msgstr "テンプレート %s èªã¿è¾¼ã¿ã‚¨ãƒ©ãƒ¼" - -#: editor/script_create_dialog.cpp -msgid "Error - Could not create script in filesystem." -msgstr "エラー - ファイルシステムã«ã‚¹ã‚¯ãƒªãƒ—トを作æˆã§ãã¾ã›ã‚“ã§ã—ãŸã€‚" +#, fuzzy +msgid "Path is empty." +msgstr "パスãŒã‚りã¾ã›ã‚“" #: editor/script_create_dialog.cpp #, fuzzy -msgid "Error loading script from %s" -msgstr "フォントèªã¿è¾¼ã¿ã‚¨ãƒ©ãƒ¼ã€‚" +msgid "Filename is empty." +msgstr "ファイルåãŒç©ºã§ã™" #: editor/script_create_dialog.cpp -msgid "N/A" -msgstr "N/A" +#, fuzzy +msgid "Path is not local." +msgstr "パスã¯ãƒãƒ¼ã‚«ãƒ«ã§ã¯ã‚りã¾ã›ã‚“" #: editor/script_create_dialog.cpp #, fuzzy -msgid "Open Script/Choose Location" -msgstr "スクリプトエディタを開ã" +msgid "Invalid base path." +msgstr "無効ãªãƒ™ãƒ¼ã‚¹ パス" #: editor/script_create_dialog.cpp -msgid "Path is empty" -msgstr "パスãŒã‚りã¾ã›ã‚“" +#, fuzzy +msgid "A directory with the same name exists." +msgstr "åŒã˜åå‰ã®ãƒ•ォルダãŒã‚りã¾ã™" #: editor/script_create_dialog.cpp -msgid "Filename is empty" -msgstr "ファイルåãŒç©ºã§ã™" +#, fuzzy +msgid "Invalid extension." +msgstr "ç„¡åŠ¹ãªæ‹¡å¼µåã§ã™" #: editor/script_create_dialog.cpp #, fuzzy -msgid "Path is not local" -msgstr "パスã¯ãƒãƒ¼ã‚«ãƒ«ã§ã¯ã‚りã¾ã›ã‚“" +msgid "Wrong extension chosen." +msgstr "æ‹¡å¼µåãŒèª¤ã£ã¦ã„ã¾ã™" #: editor/script_create_dialog.cpp -msgid "Invalid base path" -msgstr "無効ãªãƒ™ãƒ¼ã‚¹ パス" +msgid "Error loading template '%s'" +msgstr "テンプレート %s èªã¿è¾¼ã¿ã‚¨ãƒ©ãƒ¼" #: editor/script_create_dialog.cpp -msgid "Directory of the same name exists" -msgstr "åŒã˜åå‰ã®ãƒ•ォルダãŒã‚りã¾ã™" +msgid "Error - Could not create script in filesystem." +msgstr "エラー - ファイルシステムã«ã‚¹ã‚¯ãƒªãƒ—トを作æˆã§ãã¾ã›ã‚“ã§ã—ãŸã€‚" #: editor/script_create_dialog.cpp #, fuzzy -msgid "File exists, will be reused" -msgstr "ãƒ•ã‚¡ã‚¤ãƒ«ãŒæ—¢ã«å˜åœ¨ã—ã¾ã™ã€‚上書ãã—ã¾ã™ã‹ï¼Ÿ" +msgid "Error loading script from %s" +msgstr "フォントèªã¿è¾¼ã¿ã‚¨ãƒ©ãƒ¼ã€‚" #: editor/script_create_dialog.cpp -msgid "Invalid extension" -msgstr "ç„¡åŠ¹ãªæ‹¡å¼µåã§ã™" +msgid "N/A" +msgstr "N/A" #: editor/script_create_dialog.cpp -msgid "Wrong extension chosen" -msgstr "æ‹¡å¼µåãŒèª¤ã£ã¦ã„ã¾ã™" +#, fuzzy +msgid "Open Script / Choose Location" +msgstr "スクリプトエディタを開ã" #: editor/script_create_dialog.cpp -msgid "Invalid Path" -msgstr "無効ãªãƒ‘ス" +msgid "Open Script" +msgstr "スクリプトを開ã" #: editor/script_create_dialog.cpp -msgid "Invalid class name" +#, fuzzy +msgid "File exists, it will be reused." +msgstr "ãƒ•ã‚¡ã‚¤ãƒ«ãŒæ—¢ã«å˜åœ¨ã—ã¾ã™ã€‚上書ãã—ã¾ã™ã‹ï¼Ÿ" + +#: editor/script_create_dialog.cpp +#, fuzzy +msgid "Invalid class name." msgstr "䏿£ãªã‚¯ãƒ©ã‚¹å" #: editor/script_create_dialog.cpp #, fuzzy -msgid "Invalid inherited parent name or path" +msgid "Invalid inherited parent name or path." msgstr "継承ã—ãŸè¦ªã®åå‰ã‹ãƒ‘スãŒä¸æ£ã§ã™" #: editor/script_create_dialog.cpp -msgid "Script valid" +#, fuzzy +msgid "Script is valid." msgstr "æ£å½“ãªã‚¹ã‚¯ãƒªãƒ—ト" #: editor/script_create_dialog.cpp @@ -8939,15 +10505,18 @@ msgid "Allowed: a-z, A-Z, 0-9 and _" msgstr "使用å¯èƒ½: a-z, A-Z, 0-9 㨠_" #: editor/script_create_dialog.cpp -msgid "Built-in script (into scene file)" +#, fuzzy +msgid "Built-in script (into scene file)." msgstr "組ã¿è¾¼ã¿ã‚¹ã‚¯ãƒªãƒ—ト(シーンファイルã®ï¼‰" #: editor/script_create_dialog.cpp -msgid "Create new script file" +#, fuzzy +msgid "Will create a new script file." msgstr "æ–°è¦ã‚¹ã‚¯ãƒªãƒ—トファイルを作æˆ" #: editor/script_create_dialog.cpp -msgid "Load existing script file" +#, fuzzy +msgid "Will load an existing script file." msgstr "æ—¢å˜ã®ã‚¹ã‚¯ãƒªãƒ—トファイルをèªã¿è¾¼ã‚€" #: editor/script_create_dialog.cpp @@ -9082,6 +10651,10 @@ msgstr "" msgid "Set From Tree" msgstr "" +#: editor/script_editor_debugger.cpp +msgid "Export measures as CSV" +msgstr "" + #: editor/settings_config_dialog.cpp #, fuzzy msgid "Erase Shortcut" @@ -9226,6 +10799,15 @@ msgid "GDNativeLibrary" msgstr "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 "アップデートスピナーを無効化" + +#: modules/gdnative/gdnative_library_singleton_editor.cpp msgid "Library" msgstr "ライブラリ" @@ -9320,8 +10902,8 @@ msgstr "é¸æŠžç¯„å›²ã‚’æ¶ˆåŽ»" #: modules/gridmap/grid_map_editor_plugin.cpp #, fuzzy -msgid "GridMap Duplicate Selection" -msgstr "é¸æŠžç¯„å›²ã‚’è¤‡è£½" +msgid "GridMap Paste Selection" +msgstr "é¸æŠžç¯„å›²ã‚’æ¶ˆåŽ»" #: modules/gridmap/grid_map_editor_plugin.cpp #, fuzzy @@ -9394,21 +10976,6 @@ msgid "Cursor Clear Rotation" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp -#, fuzzy -msgid "Create Area" -msgstr "æ–°è¦ã«ç”Ÿæˆ" - -#: modules/gridmap/grid_map_editor_plugin.cpp -#, fuzzy -msgid "Create Exterior Connector" -msgstr "æ–°ã—ã„プãƒã‚¸ã‚§ã‚¯ãƒˆã‚’作る" - -#: modules/gridmap/grid_map_editor_plugin.cpp -#, fuzzy -msgid "Erase Area" -msgstr "タイルマップを消去" - -#: modules/gridmap/grid_map_editor_plugin.cpp msgid "Clear Selection" msgstr "é¸æŠžã‚’ã‚¯ãƒªã‚¢" @@ -9802,18 +11369,11 @@ msgid "Available Nodes:" msgstr "利用å¯èƒ½ãªãƒŽãƒ¼ãƒ‰:" #: modules/visual_script/visual_script_editor.cpp -msgid "Select or create a function to edit graph" +#, fuzzy +msgid "Select or create a function to edit its graph." msgstr "グラフを編集ã™ã‚‹é–¢æ•°ã‚’é¸æŠžã¾ãŸã¯ç”Ÿæˆ" #: modules/visual_script/visual_script_editor.cpp -msgid "Edit Signal Arguments:" -msgstr "シグナルã®å¼•数を編集:" - -#: modules/visual_script/visual_script_editor.cpp -msgid "Edit Variable:" -msgstr "変数を編集:" - -#: modules/visual_script/visual_script_editor.cpp msgid "Delete Selected" msgstr "é¸æŠžæ¸ˆã¿ã‚’削除" @@ -9954,6 +11514,19 @@ msgid "Debug keystore not configured in the Editor Settings nor in the preset." msgstr "" #: platform/android/export/export.cpp +msgid "Custom build requires a valid Android SDK path in Editor Settings." +msgstr "" + +#: platform/android/export/export.cpp +msgid "Invalid Android SDK path for custom build in Editor Settings." +msgstr "" + +#: platform/android/export/export.cpp +msgid "" +"Android project is not installed for compiling. Install from Editor menu." +msgstr "" + +#: platform/android/export/export.cpp msgid "Invalid public key for APK expansion." msgstr "APK expansion ã®å…¬é–‹éµãŒç„¡åйã§ã™ã€‚" @@ -9961,6 +11534,34 @@ msgstr "APK expansion ã®å…¬é–‹éµãŒç„¡åйã§ã™ã€‚" msgid "Invalid package name:" msgstr "無効ãªãƒ‘ッケージå:" +#: platform/android/export/export.cpp +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 "" +"Android build version mismatch:\n" +" Template installed: %s\n" +" Godot Version: %s\n" +"Please reinstall Android build template from 'Project' menu." +msgstr "" + +#: platform/android/export/export.cpp +msgid "Building Android Project (gradle)" +msgstr "" + +#: 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 "" + +#: platform/android/export/export.cpp +msgid "No build apk generated at: " +msgstr "" + #: platform/iphone/export/export.cpp msgid "Identifier is missing." msgstr "è˜åˆ¥åãŒã‚りã¾ã›ã‚“。" @@ -10255,27 +11856,30 @@ msgid "ARVRCamera must have an ARVROrigin node as its parent" msgstr "ARVRCameraã¯ARVROriginãƒŽãƒ¼ãƒ‰ã‚’è¦ªã«æŒã¤å¿…è¦ãŒã‚りã¾ã™" #: scene/3d/arvr_nodes.cpp -msgid "ARVRController must have an ARVROrigin node as its parent" +#, fuzzy +msgid "ARVRController must have an ARVROrigin node as its parent." msgstr "ARVRControllerã¯ARVROriginãƒŽãƒ¼ãƒ‰ã‚’è¦ªã«æŒã¤å¿…è¦ãŒã‚りã¾ã™" #: scene/3d/arvr_nodes.cpp msgid "" -"The controller id must not be 0 or this controller will not be bound to an " -"actual controller" +"The controller ID must not be 0 or this controller won't be bound to an " +"actual controller." msgstr "" #: scene/3d/arvr_nodes.cpp -msgid "ARVRAnchor must have an ARVROrigin node as its parent" +#, fuzzy +msgid "ARVRAnchor must have an ARVROrigin node as its parent." msgstr "ARVRAnchorã¯ARVROriginã‚’è¦ªã«æŒã¤å¿…è¦ãŒã‚りã¾ã™" #: scene/3d/arvr_nodes.cpp msgid "" -"The anchor id must not be 0 or this anchor will not be bound to an actual " -"anchor" +"The anchor ID must not be 0 or this anchor won't be bound to an actual " +"anchor." msgstr "" #: scene/3d/arvr_nodes.cpp -msgid "ARVROrigin requires an ARVRCamera child node" +#, fuzzy +msgid "ARVROrigin requires an ARVRCamera child node." msgstr "ARVROriginã¯ARVRCameraåノードãŒå¿…è¦ã§ã™" #: scene/3d/baked_lightmap.cpp @@ -10359,8 +11963,8 @@ msgstr "æç”»ãƒ‘スã®ãŸã‚ã®ãƒ¡ãƒƒã‚·ãƒ¥ãŒæŒ‡å®šã•れã¦ã„ã¾ã›ã‚“ã®ã§ #: scene/3d/cpu_particles.cpp msgid "" -"CPUParticles animation requires the usage of a SpatialMaterial with " -"\"Billboard Particles\" enabled." +"CPUParticles animation requires the usage of a SpatialMaterial whose " +"Billboard Mode is set to \"Particle Billboard\"." msgstr "" #: scene/3d/gi_probe.cpp @@ -10403,8 +12007,8 @@ msgstr "æç”»ãƒ‘スã®ãŸã‚ã®ãƒ¡ãƒƒã‚·ãƒ¥ãŒæŒ‡å®šã•れã¦ã„ã¾ã›ã‚“ã®ã§ #: scene/3d/particles.cpp msgid "" -"Particles animation requires the usage of a SpatialMaterial with \"Billboard " -"Particles\" enabled." +"Particles animation requires the usage of a SpatialMaterial whose Billboard " +"Mode is set to \"Particle Billboard\"." msgstr "" #: scene/3d/path.cpp @@ -10432,7 +12036,7 @@ msgstr "" "ã™ã€‚" #: scene/3d/soft_body.cpp -msgid "This body will be ignored until you set a mesh" +msgid "This body will be ignored until you set a mesh." msgstr "" #: scene/3d/soft_body.cpp @@ -10543,7 +12147,7 @@ msgstr "ç¾åœ¨ã®è‰²ã‚’プリセットã¨ã—ã¦è¿½åŠ " msgid "" "Container by itself serves no purpose unless a script configures it's " "children placement behavior.\n" -"If you dont't intend to add a script, then please use a plain 'Control' node " +"If you don't intend to add a script, then please use a plain 'Control' node " "instead." msgstr "" @@ -10555,11 +12159,6 @@ msgstr "è¦å‘Š!" msgid "Please Confirm..." msgstr "確èª..." -#: scene/gui/file_dialog.cpp -#, fuzzy -msgid "Go to parent folder." -msgstr "親フォルダã¸" - #: scene/gui/popup.cpp msgid "" "Popups will hide by default unless you call popup() or any of the popup*() " @@ -10647,6 +12246,83 @@ msgstr "uniform ã¸ã®å‰²ã‚Šå½“ã¦ã€‚" msgid "Varyings can only be assigned in vertex function." msgstr "Varyingã¯é ‚点関数ã«ã®ã¿å‰²ã‚Šå½“ã¦ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚" +#: servers/visual/shader_language.cpp +msgid "Constants cannot be modified." +msgstr "" + +#~ msgid "Path to Node:" +#~ msgstr "ノードã¸ã®ãƒ‘ス:" + +#~ msgid "Delete selected files?" +#~ msgstr "é¸æŠžã—ãŸãƒ•ァイルを削除ã—ã¾ã™ã‹ï¼Ÿ" + +#~ msgid "There is no 'res://default_bus_layout.tres' file." +#~ msgstr "'res://default_bus_layout.tres' ファイルãŒã‚りã¾ã›ã‚“。" + +#~ msgid "Go to parent folder" +#~ msgstr "親フォルダã¸" + +#~ msgid "Select device from the list" +#~ msgstr "一覧ã‹ã‚‰ãƒ‡ãƒã‚¤ã‚¹ã‚’é¸æŠž" + +#~ msgid "Open Scene(s)" +#~ msgstr "シーンを開ã" + +#~ msgid "Previous Directory" +#~ msgstr "å‰ã®ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒª" + +#~ msgid "Next Directory" +#~ msgstr "次ã®ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒª" + +#, fuzzy +#~ msgid "Ease in" +#~ msgstr "イージング(Ease In)" + +#, fuzzy +#~ msgid "Ease out" +#~ msgstr "イージング(Ease Out)" + +#~ msgid "Create Convex Static Body" +#~ msgstr "スタティック(ä¸å¤‰ï¼‰å‡¸çŠ¶ãƒœãƒ‡ã‚£ã‚’ç”Ÿæˆ" + +#, fuzzy +#~ msgid "CheckBox Radio1" +#~ msgstr "ãƒã‚§ãƒƒã‚¯ãƒœãƒƒã‚¯ã‚¹ã€€Radio1" + +#, fuzzy +#~ msgid "CheckBox Radio2" +#~ msgstr "ãƒã‚§ãƒƒã‚¯ãƒœãƒƒã‚¯ã‚¹ã€€Radio2" + +#~ msgid "Create folder" +#~ msgstr "フォルダを作æˆ" + +#~ msgid "Already existing" +#~ msgstr "æ—¢ã«å˜åœ¨ã—ã¾ã™" + +#~ msgid "Custom Node" +#~ msgstr "カスタムノード" + +#~ msgid "Invalid Path" +#~ msgstr "無効ãªãƒ‘ス" + +#, fuzzy +#~ msgid "GridMap Duplicate Selection" +#~ msgstr "é¸æŠžç¯„å›²ã‚’è¤‡è£½" + +#, fuzzy +#~ msgid "Create Area" +#~ msgstr "æ–°è¦ã«ç”Ÿæˆ" + +#, fuzzy +#~ msgid "Create Exterior Connector" +#~ msgstr "æ–°ã—ã„プãƒã‚¸ã‚§ã‚¯ãƒˆã‚’作る" + +#~ msgid "Edit Signal Arguments:" +#~ msgstr "シグナルã®å¼•数を編集:" + +#~ msgid "Edit Variable:" +#~ msgstr "変数を編集:" + #~ msgid "Snap (s): " #~ msgstr "スナップ (ç§’): " @@ -10763,9 +12439,6 @@ msgstr "Varyingã¯é ‚点関数ã«ã®ã¿å‰²ã‚Šå½“ã¦ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚" #~ msgid "Class List:" #~ msgstr "クラス一覧:" -#~ msgid "Search Classes" -#~ msgstr "ã‚¯ãƒ©ã‚¹ã®æ¤œç´¢" - #~ msgid "Public Methods" #~ msgstr "パブリックメソッド" @@ -10845,9 +12518,6 @@ msgstr "Varyingã¯é ‚点関数ã«ã®ã¿å‰²ã‚Šå½“ã¦ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚" #~ msgid "Error:" #~ msgstr "エラー:" -#~ msgid "Source:" -#~ msgstr "ソース:" - #~ msgid "Function:" #~ msgstr "関数:" @@ -10872,26 +12542,10 @@ msgstr "Varyingã¯é ‚点関数ã«ã®ã¿å‰²ã‚Šå½“ã¦ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚" #~ msgstr "Getメソッド" #, fuzzy -#~ msgid "Change Scalar Constant" -#~ msgstr "スカラ定数を変更" - -#, fuzzy -#~ msgid "Change Vec Constant" -#~ msgstr "ベクトル定数を変更" - -#, fuzzy #~ msgid "Change RGB Constant" #~ msgstr "RGB定数を変更" #, fuzzy -#~ msgid "Change Scalar Operator" -#~ msgstr "スカラ演算åを変更" - -#, fuzzy -#~ msgid "Change Vec Operator" -#~ msgstr "ベクトル演算åを変更" - -#, fuzzy #~ msgid "Change Vec Scalar Operator" #~ msgstr "ベクトル・スカラ演算åを変更" @@ -10903,16 +12557,9 @@ msgstr "Varyingã¯é ‚点関数ã«ã®ã¿å‰²ã‚Šå½“ã¦ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚" #~ msgstr "回転ã®ã¿å¤‰æ›´" #, fuzzy -#~ msgid "Change Scalar Function" -#~ msgstr "スカラ関数を変更" - -#, fuzzy #~ msgid "Change Vec Function" #~ msgstr "ベクトル関数を変更" -#~ msgid "Change Scalar Uniform" -#~ msgstr "スカラUniformを変更" - #~ msgid "Change Vec Uniform" #~ msgstr "ベクトルUniformを変更" @@ -10925,9 +12572,6 @@ msgstr "Varyingã¯é ‚点関数ã«ã®ã¿å‰²ã‚Šå½“ã¦ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚" #~ msgid "Change XForm Uniform" #~ msgstr "XForm Uniformを変更" -#~ msgid "Change Texture Uniform" -#~ msgstr "テクスãƒãƒ£Uniformを変更" - #~ msgid "Change Cubemap Uniform" #~ msgstr "ã‚ューブマップUniformを変更" @@ -10948,9 +12592,6 @@ msgstr "Varyingã¯é ‚点関数ã«ã®ã¿å‰²ã‚Šå½“ã¦ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚" #~ msgid "Modify Curve Map" #~ msgstr "カーブマップを修æ£" -#~ msgid "Change Input Name" -#~ msgstr "入力ã®åå‰ã‚’変更" - #, fuzzy #~ msgid "Connect Graph Nodes" #~ msgstr "グラフノードを接続" @@ -10983,9 +12624,6 @@ msgstr "Varyingã¯é ‚点関数ã«ã®ã¿å‰²ã‚Šå½“ã¦ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚" #~ msgid "Add Shader Graph Node" #~ msgstr "ã‚·ã‚§ãƒ¼ãƒ€ãƒ¼ã‚°ãƒ©ãƒ•ãƒŽãƒ¼ãƒ‰ã‚’è¿½åŠ " -#~ msgid "Disabled" -#~ msgstr "無効" - #~ msgid "Move Anim Track Up" #~ msgstr "Anim トラックを上ã«ç§»å‹•" @@ -11182,17 +12820,10 @@ msgstr "Varyingã¯é ‚点関数ã«ã®ã¿å‰²ã‚Šå½“ã¦ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚" #~ msgstr "アイテムã®åå‰ã‹ID:" #, fuzzy -#~ msgid "Autotiles" -#~ msgstr "自動スライス" - -#, fuzzy #~ msgid "Export templates for this platform are missing/corrupted: " #~ msgstr "" #~ "ã“ã®ãƒ—ラットフォームã«å‘ã‘ã¦ã®ã‚¨ã‚¯ã‚¹ãƒãƒ¼ãƒˆã®ãƒ†ãƒ³ãƒ—レートãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“:" -#~ msgid "Button 7" -#~ msgstr "ボタン7" - #~ msgid "Button 8" #~ msgstr "ボタン8" @@ -11492,10 +13123,6 @@ msgstr "Varyingã¯é ‚点関数ã«ã®ã¿å‰²ã‚Šå½“ã¦ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚" #~ msgstr "ソースã®ãƒ†ã‚¯ã‚¹ãƒãƒ£:" #, fuzzy -#~ msgid "Target Path:" -#~ msgstr "ターゲットã®ãƒ‘ス:" - -#, fuzzy #~ msgid "Accept" #~ msgstr "å—å–OK" diff --git a/editor/translations/ka.po b/editor/translations/ka.po index 26eabd113b..0eff93389d 100644 --- a/editor/translations/ka.po +++ b/editor/translations/ka.po @@ -73,6 +73,14 @@ msgstr "დáƒáƒ‘áƒáƒšáƒáƒœáƒ¡áƒ”ბული" msgid "Mirror" msgstr "სáƒáƒ კე" +#: editor/animation_bezier_editor.cpp editor/editor_profiler.cpp +msgid "Time:" +msgstr "" + +#: editor/animation_bezier_editor.cpp +msgid "Value:" +msgstr "" + #: editor/animation_bezier_editor.cpp #, fuzzy msgid "Insert Key Here" @@ -162,15 +170,20 @@ msgid "Animation Playback Track" msgstr "" #: editor/animation_track_editor.cpp -msgid "Add Track" -msgstr "áƒáƒœáƒ˜áƒ›áƒáƒªáƒ˜áƒ˜áƒ¡ თრექის დáƒáƒ›áƒáƒ¢áƒ”ბáƒ" +#, fuzzy +msgid "Animation length (frames)" +msgstr "áƒáƒœáƒ˜áƒ›áƒáƒªáƒ˜áƒ˜áƒ¡ ხáƒáƒœáƒ’რძლივáƒáƒ‘რ(წáƒáƒ›áƒ”ბში)." #: editor/animation_track_editor.cpp #, fuzzy -msgid "Animation Length Time (seconds)" +msgid "Animation length (seconds)" msgstr "áƒáƒœáƒ˜áƒ›áƒáƒªáƒ˜áƒ˜áƒ¡ ხáƒáƒœáƒ’რძლივáƒáƒ‘რ(წáƒáƒ›áƒ”ბში)." #: editor/animation_track_editor.cpp +msgid "Add Track" +msgstr "áƒáƒœáƒ˜áƒ›áƒáƒªáƒ˜áƒ˜áƒ¡ თრექის დáƒáƒ›áƒáƒ¢áƒ”ბáƒ" + +#: editor/animation_track_editor.cpp #, fuzzy msgid "Animation Looping" msgstr "áƒáƒœáƒ˜áƒ›áƒáƒªáƒ˜áƒ˜áƒ¡ ბრუნვáƒ" @@ -307,11 +320,13 @@ msgid "Create %d NEW tracks and insert keys?" msgstr "áƒáƒ®áƒáƒšáƒ˜ %d ჩáƒáƒœáƒáƒ¬áƒ”რების შექმნრდრგáƒáƒ¡áƒáƒ¦áƒ”ბების ჩáƒáƒ¡áƒ›áƒ?" #: editor/animation_track_editor.cpp editor/create_dialog.cpp -#: editor/editor_audio_buses.cpp editor/editor_plugin_settings.cpp -#: editor/plugin_config_dialog.cpp +#: editor/editor_audio_buses.cpp editor/editor_feature_profile.cpp +#: editor/editor_plugin_settings.cpp editor/plugin_config_dialog.cpp #: editor/plugins/abstract_polygon_2d_editor.cpp #: editor/plugins/mesh_instance_editor_plugin.cpp -#: editor/plugins/particles_editor_plugin.cpp editor/script_create_dialog.cpp +#: editor/plugins/particles_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_create_dialog.cpp msgid "Create" msgstr "შექმნáƒ" @@ -433,6 +448,23 @@ msgid "" msgstr "" #: editor/animation_track_editor.cpp +msgid "" +"This animation belongs to an imported scene, so changes to imported tracks " +"will not be saved.\n" +"\n" +"To enable the ability to add custom tracks, navigate to the scene's import " +"settings and set\n" +"\"Animation > Storage\" to \"Files\", enable \"Animation > Keep Custom Tracks" +"\", then re-import.\n" +"Alternatively, use an import preset that imports animations to separate " +"files." +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Warning: Editing imported animation" +msgstr "" + +#: editor/animation_track_editor.cpp msgid "Only show tracks from nodes selected in tree." msgstr "მხáƒáƒšáƒáƒ“ áƒáƒ©áƒ•ენე ჩáƒáƒœáƒáƒ¬áƒ”რები კვáƒáƒœáƒ«áƒ”ბიდáƒáƒœ მáƒáƒœáƒ˜áƒ¨áƒœáƒ£áƒšáƒ˜ ხეში." @@ -569,7 +601,8 @@ msgstr "მáƒáƒ¡áƒ¨áƒ¢áƒáƒ‘ის თáƒáƒœáƒáƒ¤áƒáƒ დáƒáƒ‘áƒ:" msgid "Select tracks to copy:" msgstr "" -#: editor/animation_track_editor.cpp editor/editor_properties.cpp +#: editor/animation_track_editor.cpp editor/editor_log.cpp +#: editor/editor_properties.cpp #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp @@ -638,6 +671,11 @@ msgstr "ყველáƒáƒ¡ ჩáƒáƒœáƒáƒªáƒ•ლებáƒ" msgid "Selection Only" msgstr "მáƒáƒœáƒ˜áƒ¨áƒœáƒ£áƒšáƒ˜ მხáƒáƒšáƒáƒ“" +#: editor/code_editor.cpp editor/plugins/script_text_editor.cpp +#: editor/plugins/text_editor.cpp +msgid "Standard" +msgstr "" + #: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/texture_region_editor_plugin.cpp #: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp @@ -663,21 +701,38 @@ msgid "Line and column numbers." msgstr "" #: editor/connections_dialog.cpp -msgid "Method in target Node must be specified!" +#, fuzzy +msgid "Method in target node must be specified." msgstr "სáƒáƒ›áƒ˜áƒ–ნე კვáƒáƒœáƒ«áƒ¨áƒ˜ მეთáƒáƒ“ი უნდრიყáƒáƒ¡ გáƒáƒœáƒ¡áƒáƒ–ღვრული!" #: editor/connections_dialog.cpp +#, fuzzy msgid "" -"Target method not found! Specify a valid method or attach a script to target " -"Node." +"Target method not found. Specify a valid method or attach a script to the " +"target node." msgstr "" "სáƒáƒ›áƒ˜áƒ–ნე მეთáƒáƒ“ი ვერმáƒáƒ˜áƒ«áƒ”ბნáƒ! დáƒáƒáƒ™áƒáƒœáƒ™áƒ ეტეთ მეთáƒáƒ“ი áƒáƒœ მიáƒáƒ‘ით სკრიპტი სáƒáƒ›áƒ˜áƒ–ნე " "კვáƒáƒœáƒ«áƒ–ე." #: editor/connections_dialog.cpp -msgid "Connect To Node:" +#, fuzzy +msgid "Connect to Node:" msgstr "კვáƒáƒœáƒ«áƒ—áƒáƒœ დáƒáƒ™áƒáƒ•შირებáƒ:" +#: editor/connections_dialog.cpp +#, fuzzy +msgid "Connect to Script:" +msgstr "კვáƒáƒœáƒ«áƒ—áƒáƒœ დáƒáƒ™áƒáƒ•შირებáƒ:" + +#: editor/connections_dialog.cpp +#, fuzzy +msgid "From Signal:" +msgstr "დáƒáƒ›áƒáƒ™áƒáƒ•შირებელი სიგნáƒáƒšáƒ˜:" + +#: editor/connections_dialog.cpp +msgid "Scene does not contain any script." +msgstr "" + #: editor/connections_dialog.cpp editor/editor_autoload_settings.cpp #: editor/groups_editor.cpp editor/plugins/item_list_editor_plugin.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_settings_editor.cpp @@ -685,10 +740,12 @@ msgid "Add" msgstr "დáƒáƒ›áƒáƒ¢áƒ”ბáƒ" #: editor/connections_dialog.cpp editor/dependency_editor.cpp -#: editor/groups_editor.cpp editor/plugins/animation_player_editor_plugin.cpp +#: editor/editor_feature_profile.cpp editor/groups_editor.cpp +#: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp #: editor/plugins/resource_preloader_editor_plugin.cpp -#: editor/plugins/theme_editor_plugin.cpp editor/project_manager.cpp +#: editor/plugins/theme_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_manager.cpp #: editor/project_settings_editor.cpp msgid "Remove" msgstr "მáƒáƒ¨áƒáƒ ებáƒ" @@ -702,21 +759,32 @@ msgid "Extra Call Arguments:" msgstr "დáƒáƒ›áƒáƒ¢áƒ”ბითი გáƒáƒ›áƒáƒ«áƒáƒ®áƒ”ბის áƒáƒ გუმენტები:" #: editor/connections_dialog.cpp -msgid "Path to Node:" -msgstr "გზრკვáƒáƒœáƒ«áƒáƒ›áƒ“ე:" - -#: editor/connections_dialog.cpp -msgid "Make Function" -msgstr "ფუნქციის შექმნáƒ" +#, fuzzy +msgid "Advanced" +msgstr "დáƒáƒ‘áƒáƒšáƒáƒœáƒ¡áƒ”ბული" #: editor/connections_dialog.cpp msgid "Deferred" msgstr "გáƒáƒ“áƒáƒ“ებული" #: editor/connections_dialog.cpp +msgid "" +"Defers the signal, storing it in a queue and only firing it at idle time." +msgstr "" + +#: editor/connections_dialog.cpp msgid "Oneshot" msgstr "ერთი გáƒáƒ¡áƒ áƒáƒšáƒ˜áƒ—" +#: editor/connections_dialog.cpp +msgid "Disconnects the signal after its first emission." +msgstr "" + +#: editor/connections_dialog.cpp +#, fuzzy +msgid "Cannot connect signal" +msgstr "დáƒáƒ›áƒáƒ™áƒáƒ•შირებელი სიგნáƒáƒšáƒ˜:" + #: editor/connections_dialog.cpp editor/dependency_editor.cpp #: editor/export_template_manager.cpp editor/groups_editor.cpp #: editor/plugins/animation_player_editor_plugin.cpp @@ -759,12 +827,12 @@ msgstr "კáƒáƒ•შირის გáƒáƒ¬áƒ§áƒ•ეტáƒ" #: editor/connections_dialog.cpp #, fuzzy -msgid "Connect Signal: " +msgid "Connect a Signal to a Method" msgstr "დáƒáƒ›áƒáƒ™áƒáƒ•შირებელი სიგნáƒáƒšáƒ˜:" #: editor/connections_dialog.cpp #, fuzzy -msgid "Edit Connection: " +msgid "Edit Connection:" msgstr "მáƒáƒœáƒ˜áƒ¨áƒ•ნის მრუდის ცვლილებáƒ" #: editor/connections_dialog.cpp @@ -797,7 +865,6 @@ msgid "Change %s Type" msgstr "%s ტიპის ცვლილებáƒ" #: editor/create_dialog.cpp editor/project_settings_editor.cpp -#: modules/visual_script/visual_script_editor.cpp msgid "Change" msgstr "ცვლილებáƒ" @@ -828,7 +895,8 @@ msgid "Matches:" msgstr "დáƒáƒ›áƒ—ხვევები:" #: editor/create_dialog.cpp editor/plugin_config_dialog.cpp -#: editor/plugins/asset_library_editor_plugin.cpp editor/property_selector.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/property_selector.cpp #: modules/visual_script/visual_script_property_selector.cpp msgid "Description:" msgstr "áƒáƒ¦áƒ¬áƒ”რáƒ:" @@ -842,17 +910,19 @@ msgid "Dependencies For:" msgstr "დáƒáƒ›áƒáƒ™áƒ˜áƒ“ებულებáƒ:" #: editor/dependency_editor.cpp +#, fuzzy msgid "" "Scene '%s' is currently being edited.\n" -"Changes will not take effect unless reloaded." +"Changes will only take effect when reloaded." msgstr "" "სცენრ'%s' áƒáƒ›áƒŸáƒáƒ›áƒáƒ“ áƒáƒ ის შესწáƒáƒ ების რეჟიმში.\n" "ცვლილებები áƒáƒ იქნებრეფექტური გáƒáƒ“áƒáƒ¢áƒ•ირთáƒáƒ›áƒ“ე." #: editor/dependency_editor.cpp +#, fuzzy msgid "" "Resource '%s' is in use.\n" -"Changes will take effect when reloaded." +"Changes will only take effect when reloaded." msgstr "" "რესურსი '%s' გáƒáƒ›áƒáƒ§áƒ”ნებáƒáƒ¨áƒ˜áƒ.\n" "ცვლილებები ძáƒáƒšáƒáƒ¨áƒ˜ შევრგáƒáƒ“áƒáƒ¢áƒ•ირთვიდáƒáƒœ." @@ -948,21 +1018,14 @@ msgid "Permanently delete %d item(s)? (No undo!)" msgstr "სáƒáƒ›áƒ£áƒ“áƒáƒ›áƒáƒ“ წáƒáƒ•შáƒáƒšáƒáƒ— %d ნივთები? (უკáƒáƒœ დáƒáƒ‘რუნებრშეუძლებელიáƒ)" #: editor/dependency_editor.cpp -msgid "Owns" -msgstr "ფლáƒáƒ‘ს" - -#: editor/dependency_editor.cpp -msgid "Resources Without Explicit Ownership:" -msgstr "რესურსები გáƒáƒ›áƒáƒ™áƒ•ეთილი მფლáƒáƒ‘ელის გáƒáƒ ეშე:" +#, fuzzy +msgid "Show Dependencies" +msgstr "დáƒáƒ›áƒáƒ™áƒ˜áƒ“ებულებები" #: editor/dependency_editor.cpp editor/editor_node.cpp msgid "Orphan Resource Explorer" msgstr "áƒáƒ‘áƒáƒšáƒ˜ რესურსების მáƒáƒ«áƒ˜áƒ”ბელი" -#: editor/dependency_editor.cpp -msgid "Delete selected files?" -msgstr "წáƒáƒ•შáƒáƒšáƒáƒ— მáƒáƒœáƒ˜áƒ¨áƒœáƒ£áƒšáƒ˜ ფáƒáƒ˜áƒšáƒ”ბი?" - #: editor/dependency_editor.cpp editor/editor_audio_buses.cpp #: editor/editor_file_dialog.cpp editor/editor_node.cpp #: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp @@ -971,6 +1034,14 @@ msgstr "წáƒáƒ•შáƒáƒšáƒáƒ— მáƒáƒœáƒ˜áƒ¨áƒœáƒ£áƒšáƒ˜ ფáƒáƒ˜áƒšáƒ”ბá msgid "Delete" msgstr "წáƒáƒ¨áƒšáƒ" +#: editor/dependency_editor.cpp +msgid "Owns" +msgstr "ფლáƒáƒ‘ს" + +#: editor/dependency_editor.cpp +msgid "Resources Without Explicit Ownership:" +msgstr "რესურსები გáƒáƒ›áƒáƒ™áƒ•ეთილი მფლáƒáƒ‘ელის გáƒáƒ ეშე:" + #: editor/dictionary_property_edit.cpp msgid "Change Dictionary Key" msgstr "ლექსიკáƒáƒœáƒ˜áƒ¡ გáƒáƒ¡áƒáƒ¦áƒ”ბის შეცვლáƒ" @@ -1085,7 +1156,7 @@ msgstr "პáƒáƒ™áƒ”ტი დáƒáƒ§áƒ”ნდრწáƒáƒ მáƒáƒ¢áƒ”ბით! msgid "Success!" msgstr "წáƒáƒ მáƒáƒ¢áƒ”ბáƒ!" -#: editor/editor_asset_installer.cpp +#: editor/editor_asset_installer.cpp editor/editor_node.cpp #: editor/plugins/asset_library_editor_plugin.cpp msgid "Install" msgstr "დáƒáƒ§áƒ”ნებáƒ" @@ -1212,7 +1283,11 @@ msgid "Open Audio Bus Layout" msgstr "" #: editor/editor_audio_buses.cpp -msgid "There is no 'res://default_bus_layout.tres' file." +msgid "There is no '%s' file." +msgstr "" + +#: editor/editor_audio_buses.cpp editor/plugins/canvas_item_editor_plugin.cpp +msgid "Layout" msgstr "" #: editor/editor_audio_buses.cpp @@ -1266,15 +1341,19 @@ msgid "Valid characters:" msgstr "" #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing engine class name." +msgid "Must not collide with an existing engine class name." +msgstr "" + +#: editor/editor_autoload_settings.cpp +msgid "Must not collide with an existing buit-in type name." msgstr "" #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing buit-in type name." +msgid "Must not collide with an existing global constant name." msgstr "" #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing global constant name." +msgid "Keyword cannot be used as an autoload name." msgstr "" #: editor/editor_autoload_settings.cpp @@ -1305,11 +1384,12 @@ msgstr "" msgid "Rearrange Autoloads" msgstr "" -#: editor/editor_autoload_settings.cpp -msgid "Invalid Path." -msgstr "" +#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp +#, fuzzy +msgid "Invalid path." +msgstr "áƒáƒ áƒáƒ¡áƒ¬áƒáƒ ი ფáƒáƒœáƒ¢áƒ˜áƒ¡ ზáƒáƒ›áƒ." -#: editor/editor_autoload_settings.cpp +#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp msgid "File does not exist." msgstr "" @@ -1360,7 +1440,7 @@ msgid "[unsaved]" msgstr "" #: editor/editor_dir_dialog.cpp -msgid "Please select a base directory first" +msgid "Please select a base directory first." msgstr "" #: editor/editor_dir_dialog.cpp @@ -1368,7 +1448,8 @@ msgid "Choose a Directory" msgstr "" #: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp -#: editor/filesystem_dock.cpp scene/gui/file_dialog.cpp +#: editor/filesystem_dock.cpp editor/project_manager.cpp +#: scene/gui/file_dialog.cpp msgid "Create Folder" msgstr "" @@ -1436,6 +1517,160 @@ msgstr "" msgid "Template file not found:" msgstr "" +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "3D Editor" +msgstr "დáƒáƒ›áƒáƒ™áƒ˜áƒ“ებულებების შემსწáƒáƒ ებელი" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Script Editor" +msgstr "დáƒáƒ›áƒáƒ™áƒ˜áƒ“ებულებების შემსწáƒáƒ ებელი" + +#: editor/editor_feature_profile.cpp +msgid "Asset Library" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Scene Tree Editing" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Import Dock" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Node Dock" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Filesystem Dock" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Erase profile '%s'? (no undo)" +msgstr "ყველáƒáƒ¡ ჩáƒáƒœáƒáƒªáƒ•ლებáƒ" + +#: editor/editor_feature_profile.cpp +msgid "Profile must be a valid filename and must not contain '.'" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Profile with this name already exists." +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "(Editor Disabled, Properties Disabled)" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "(Properties Disabled)" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "(Editor Disabled)" +msgstr "გáƒáƒ›áƒáƒ თული" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Class Options:" +msgstr "áƒáƒ¦áƒ¬áƒ”რáƒ:" + +#: editor/editor_feature_profile.cpp +msgid "Enable Contextual Editor" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enabled Properties:" +msgstr "áƒáƒœáƒ˜áƒ›áƒáƒªáƒ˜áƒ˜áƒ¡ . პáƒáƒ áƒáƒ›áƒ”ტრები." + +#: editor/editor_feature_profile.cpp +msgid "Enabled Features:" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Enabled Classes:" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "File '%s' format is invalid, import aborted." +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "" +"Profile '%s' already exists. Remote it first before importing, import " +"aborted." +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Error saving profile to path: '%s'." +msgstr "ჩáƒáƒ¢áƒ•ირთვის შეცდáƒáƒ›áƒ”ბი!" + +#: editor/editor_feature_profile.cpp +msgid "Unset" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Current Profile" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Make Current" +msgstr "ფუნქციის შექმნáƒ" + +#: editor/editor_feature_profile.cpp +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "New" +msgstr "" + +#: editor/editor_feature_profile.cpp editor/editor_node.cpp +#: editor/plugins/asset_library_editor_plugin.cpp editor/project_manager.cpp +msgid "Import" +msgstr "" + +#: editor/editor_feature_profile.cpp editor/editor_node.cpp +#: editor/project_export.cpp +msgid "Export" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Available Profiles" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Enabled Classes" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Class Options" +msgstr "áƒáƒ¦áƒ¬áƒ”რáƒ:" + +#: editor/editor_feature_profile.cpp +msgid "New profile name:" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Erase Profile" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Import Profile(s)" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Export Profile" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Manage Editor Feature Profiles" +msgstr "" + #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Select Current Folder" msgstr "" @@ -1457,8 +1692,8 @@ msgstr "" msgid "Open in File Manager" msgstr "გáƒáƒ®áƒ¡áƒœáƒ˜áƒšáƒ˜" -#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp -#: editor/project_manager.cpp +#: editor/editor_file_dialog.cpp editor/editor_node.cpp +#: editor/filesystem_dock.cpp editor/project_manager.cpp msgid "Show in File Manager" msgstr "" @@ -1517,7 +1752,7 @@ msgstr "" msgid "Go Up" msgstr "" -#: editor/editor_file_dialog.cpp +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Toggle Hidden Files" msgstr "" @@ -1549,14 +1784,18 @@ msgstr "" msgid "Next Folder" msgstr "" -#: editor/editor_file_dialog.cpp -msgid "Go to parent folder" +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp +msgid "Go to parent folder." msgstr "" #: editor/editor_file_dialog.cpp msgid "(Un)favorite current folder." msgstr "" +#: editor/editor_file_dialog.cpp +msgid "Toggle visibility of hidden files." +msgstr "" + #: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp msgid "View items as a grid of thumbnails." msgstr "" @@ -1571,6 +1810,7 @@ msgstr "" #: editor/editor_file_dialog.cpp editor/plugins/sprite_editor_plugin.cpp #: editor/plugins/style_box_editor_plugin.cpp +#: editor/plugins/theme_editor_plugin.cpp msgid "Preview:" msgstr "" @@ -1587,6 +1827,12 @@ msgid "ScanSources" msgstr "" #: editor/editor_file_system.cpp +msgid "" +"There are multiple importers for different types pointing to file %s, import " +"aborted" +msgstr "" + +#: editor/editor_file_system.cpp msgid "(Re)Importing Assets" msgstr "" @@ -1772,6 +2018,11 @@ msgstr "" msgid "Output:" msgstr "" +#: editor/editor_log.cpp editor/plugins/tile_map_editor_plugin.cpp +#, fuzzy +msgid "Copy Selection" +msgstr "მáƒáƒœáƒ˜áƒ¨áƒ•ნის მáƒáƒ¨áƒáƒ ებáƒ" + #: editor/editor_log.cpp editor/editor_profiler.cpp #: editor/editor_properties.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp @@ -1919,7 +2170,7 @@ msgstr "" #: editor/editor_node.cpp msgid "" "This resource belongs to a scene that was instanced or inherited.\n" -"Changes to it will not be kept when saving the current scene." +"Changes to it won't be kept when saving the current scene." msgstr "" #: editor/editor_node.cpp @@ -1930,7 +2181,7 @@ msgstr "" #: editor/editor_node.cpp msgid "" -"This scene was imported, so changes to it will not be kept.\n" +"This scene was imported, so changes to it won't be kept.\n" "Instancing it or inheriting will allow making changes to it.\n" "Please read the documentation relevant to importing scenes to better " "understand this workflow." @@ -1938,7 +2189,7 @@ msgstr "" #: editor/editor_node.cpp msgid "" -"This is a remote object so changes to it will not be kept.\n" +"This is a remote object, so changes to it won't be kept.\n" "Please read the documentation relevant to debugging to better understand " "this workflow." msgstr "" @@ -1948,27 +2199,6 @@ msgid "There is no defined scene to run." msgstr "" #: editor/editor_node.cpp -msgid "" -"No main scene has ever been defined, select one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" - -#: editor/editor_node.cpp -msgid "" -"Selected scene '%s' does not exist, select a valid one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" - -#: editor/editor_node.cpp -msgid "" -"Selected scene '%s' is not a scene file, select a valid one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" - -#: editor/editor_node.cpp msgid "Current scene was never saved, please save it prior to running." msgstr "" @@ -1976,7 +2206,7 @@ msgstr "" msgid "Could not start subprocess!" msgstr "" -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/filesystem_dock.cpp msgid "Open Scene" msgstr "" @@ -1985,6 +2215,11 @@ msgid "Open Base Scene" msgstr "" #: editor/editor_node.cpp +#, fuzzy +msgid "Quick Open..." +msgstr "გáƒáƒ®áƒ¡áƒœáƒ˜áƒšáƒ˜" + +#: editor/editor_node.cpp msgid "Quick Open Scene..." msgstr "" @@ -2146,6 +2381,27 @@ msgid "Clear Recent Scenes" msgstr "" #: editor/editor_node.cpp +msgid "" +"No main scene has ever been defined, select one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"Selected scene '%s' does not exist, select a valid one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"Selected scene '%s' is not a scene file, select a valid one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" + +#: editor/editor_node.cpp msgid "Save Layout" msgstr "" @@ -2172,6 +2428,19 @@ msgstr "" msgid "Close Tab" msgstr "დáƒáƒ®áƒ£áƒ ვáƒ" +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +msgid "Close Other Tabs" +msgstr "" + +#: editor/editor_node.cpp +msgid "Close Tabs to the Right" +msgstr "" + +#: editor/editor_node.cpp +#, fuzzy +msgid "Close All Tabs" +msgstr "დáƒáƒ®áƒ£áƒ ვáƒ" + #: editor/editor_node.cpp msgid "Switch Scene Tab" msgstr "" @@ -2294,10 +2563,6 @@ msgstr "" msgid "Project Settings" msgstr "" -#: editor/editor_node.cpp editor/project_export.cpp -msgid "Export" -msgstr "" - #: editor/editor_node.cpp editor/plugins/tile_set_editor_plugin.cpp msgid "Tools" msgstr "" @@ -2308,6 +2573,10 @@ msgid "Open Project Data Folder" msgstr "პრáƒáƒ”ქტის დáƒáƒ›áƒ¤áƒ£áƒ«áƒœáƒ”ბლები" #: editor/editor_node.cpp +msgid "Install Android Build Template" +msgstr "" + +#: editor/editor_node.cpp msgid "Quit to Project List" msgstr "" @@ -2412,6 +2681,10 @@ msgstr "" msgid "Open Editor Settings Folder" msgstr "" +#: editor/editor_node.cpp +msgid "Manage Editor Features" +msgstr "" + #: editor/editor_node.cpp editor/project_export.cpp msgid "Manage Export Templates" msgstr "" @@ -2424,6 +2697,7 @@ msgstr "" #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp #: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp #: editor/project_settings_editor.cpp editor/rename_dialog.cpp msgid "Search" msgstr "" @@ -2513,11 +2787,6 @@ msgstr "" msgid "Disable Update Spinner" msgstr "" -#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp -#: editor/project_manager.cpp -msgid "Import" -msgstr "" - #: editor/editor_node.cpp msgid "FileSystem" msgstr "" @@ -2543,6 +2812,27 @@ msgid "Don't Save" msgstr "" #: editor/editor_node.cpp +msgid "Android build template is missing, please install relevant templates." +msgstr "" + +#: editor/editor_node.cpp +msgid "Manage Templates" +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"This will install the Android project for custom builds.\n" +"Note that, in order to use it, it needs to be enabled per export preset." +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"Android build template is already installed and it won't be overwritten.\n" +"Remove the \"build\" directory manually before attempting this operation " +"again." +msgstr "" + +#: editor/editor_node.cpp msgid "Import Templates From ZIP File" msgstr "" @@ -2665,10 +2955,6 @@ msgid "Physics Frame %" msgstr "" #: editor/editor_profiler.cpp -msgid "Time:" -msgstr "" - -#: editor/editor_profiler.cpp msgid "Inclusive" msgstr "" @@ -2805,10 +3091,6 @@ msgid "Remove Item" msgstr "" #: editor/editor_run_native.cpp -msgid "Select device from the list" -msgstr "" - -#: editor/editor_run_native.cpp msgid "" "No runnable export preset found for this platform.\n" "Please add a runnable preset in the export menu." @@ -2842,6 +3124,10 @@ msgstr "" msgid "Select Node(s) to Import" msgstr "" +#: editor/editor_sub_scene.cpp editor/project_manager.cpp +msgid "Browse" +msgstr "" + #: editor/editor_sub_scene.cpp msgid "Scene Path:" msgstr "" @@ -3004,6 +3290,11 @@ msgid "SSL Handshake Error" msgstr "" #: editor/export_template_manager.cpp +#, fuzzy +msgid "Uncompressing Android Build Sources" +msgstr "áƒáƒ¥áƒ¢áƒ˜áƒ•ების áƒáƒ áƒáƒ™áƒáƒ›áƒžáƒ ესირებáƒ" + +#: editor/export_template_manager.cpp msgid "Current Version:" msgstr "" @@ -3020,8 +3311,9 @@ msgid "Remove Template" msgstr "" #: editor/export_template_manager.cpp -msgid "Select template file" -msgstr "" +#, fuzzy +msgid "Select Template File" +msgstr "წáƒáƒ•შáƒáƒšáƒáƒ— მáƒáƒœáƒ˜áƒ¨áƒœáƒ£áƒšáƒ˜ ფáƒáƒ˜áƒšáƒ”ბი?" #: editor/export_template_manager.cpp msgid "Export Template Manager" @@ -3077,7 +3369,7 @@ msgid "No name provided." msgstr "" #: editor/filesystem_dock.cpp -msgid "Provided name contains invalid characters" +msgid "Provided name contains invalid characters." msgstr "" #: editor/filesystem_dock.cpp @@ -3105,21 +3397,27 @@ msgid "Duplicating folder:" msgstr "" #: editor/filesystem_dock.cpp -msgid "Open Scene(s)" +msgid "New Inherited Scene" msgstr "" #: editor/filesystem_dock.cpp +#, fuzzy +msgid "Open Scenes" +msgstr "გáƒáƒ®áƒ¡áƒœáƒ˜áƒšáƒ˜" + +#: editor/filesystem_dock.cpp msgid "Instance" msgstr "" #: editor/filesystem_dock.cpp #, fuzzy -msgid "Add to favorites" +msgid "Add to Favorites" msgstr "სáƒáƒ§áƒ•áƒáƒ ლები:" #: editor/filesystem_dock.cpp -msgid "Remove from favorites" -msgstr "" +#, fuzzy +msgid "Remove from Favorites" +msgstr "სáƒáƒ§áƒ•áƒáƒ ლები:" #: editor/filesystem_dock.cpp msgid "Edit Dependencies..." @@ -3150,11 +3448,13 @@ msgstr "" msgid "New Resource..." msgstr "რესურსი" -#: editor/filesystem_dock.cpp editor/script_editor_debugger.cpp +#: editor/filesystem_dock.cpp editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_editor_debugger.cpp msgid "Expand All" msgstr "" -#: editor/filesystem_dock.cpp editor/script_editor_debugger.cpp +#: editor/filesystem_dock.cpp editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_editor_debugger.cpp #, fuzzy msgid "Collapse All" msgstr "ყველáƒáƒ¡ ჩáƒáƒœáƒáƒªáƒ•ლებáƒ" @@ -3167,11 +3467,11 @@ msgid "Rename" msgstr "" #: editor/filesystem_dock.cpp -msgid "Previous Directory" +msgid "Previous Folder/File" msgstr "" #: editor/filesystem_dock.cpp -msgid "Next Directory" +msgid "Next Folder/File" msgstr "" #: editor/filesystem_dock.cpp @@ -3179,7 +3479,7 @@ msgid "Re-Scan Filesystem" msgstr "" #: editor/filesystem_dock.cpp -msgid "Toggle split mode" +msgid "Toggle Split Mode" msgstr "" #: editor/filesystem_dock.cpp @@ -3209,7 +3509,7 @@ msgstr "" msgid "Create Script" msgstr "" -#: editor/find_in_files.cpp +#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp msgid "Find in Files" msgstr "" @@ -3225,6 +3525,12 @@ msgstr "" msgid "Filters:" msgstr "" +#: editor/find_in_files.cpp +msgid "" +"Include the files with the following extensions. Add or remove them in " +"ProjectSettings." +msgstr "" + #: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp msgid "Find..." @@ -3663,7 +3969,7 @@ msgid "Open Animation Node" msgstr "áƒáƒœáƒ˜áƒ›áƒáƒªáƒ˜áƒ˜áƒ¡ áƒáƒžáƒ¢áƒ˜áƒ›áƒ˜áƒ–áƒáƒªáƒ˜áƒ" #: editor/plugins/animation_blend_space_2d_editor.cpp -msgid "Triangle already exists" +msgid "Triangle already exists." msgstr "" #: editor/plugins/animation_blend_space_2d_editor.cpp @@ -3739,7 +4045,6 @@ msgid "Node Moved" msgstr "" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Unable to connect, port may be in use or connection may be invalid." msgstr "" @@ -3812,8 +4117,9 @@ msgid "Edit Filtered Tracks:" msgstr "" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -msgid "Enable filtering" -msgstr "" +#, fuzzy +msgid "Enable Filtering" +msgstr "áƒáƒœáƒ˜áƒ› სიგრძის შეცვლáƒ" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Toggle Autoplay" @@ -3928,10 +4234,6 @@ msgid "Animation" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "New" -msgstr "" - -#: editor/plugins/animation_player_editor_plugin.cpp #, fuzzy msgid "Edit Transitions..." msgstr "გáƒáƒ“áƒáƒ¡áƒ•ლები" @@ -3949,11 +4251,11 @@ msgid "Autoplay on Load" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Onion Skinning" +msgid "Enable Onion Skinning" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Enable Onion Skinning" +msgid "Onion Skinning Options" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp @@ -4500,13 +4802,19 @@ msgid "Move CanvasItem" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"Children of containers have their anchors and margins values overridden by " +"their parent." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Presets for the anchors and margins values of a Control node." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "" -"Children of containers have their anchors and margins values overridden by " -"their parent." +"When active, moving Control nodes changes their anchors instead of their " +"margins." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4522,10 +4830,49 @@ msgid "Change Anchors" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Lock Selected" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Unlock Selected" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Group Selected" +msgstr "მáƒáƒœáƒ˜áƒ¨áƒ•ნის მáƒáƒ¨áƒáƒ ებáƒ" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Ungroup Selected" +msgstr "მáƒáƒœáƒ˜áƒ¨áƒ•ნის მáƒáƒ¨áƒáƒ ებáƒ" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Paste Pose" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Create Custom Bone(s) from Node(s)" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Clear Bones" +msgstr "áƒáƒœáƒ˜áƒ›áƒáƒªáƒ˜áƒ˜áƒ¡ გáƒáƒ დáƒáƒ¥áƒ›áƒœáƒ˜áƒ¡ ცვლილებáƒ" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Make IK Chain" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Clear IK Chain" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "" "Warning: Children of a container get their position and size determined only " "by their parent." @@ -4599,7 +4946,7 @@ msgid "Snapping Options" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to grid" +msgid "Snap to Grid" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4620,31 +4967,31 @@ msgid "Use Pixel Snap" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Smart snapping" +msgid "Smart Snapping" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to parent" +msgid "Snap to Parent" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node anchor" +msgid "Snap to Node Anchor" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node sides" +msgid "Snap to Node Sides" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node center" +msgid "Snap to Node Center" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to other nodes" +msgid "Snap to Other Nodes" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to guides" +msgid "Snap to Guides" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4658,10 +5005,12 @@ msgid "Unlock the selected object (can be moved)." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Makes sure the object's children are not selectable." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Restores the object's children's ability to be selected." msgstr "" @@ -4675,14 +5024,6 @@ msgid "Show Bones" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Make IK Chain" -msgstr "" - -#: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Clear IK Chain" -msgstr "" - -#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Make Custom Bone(s) from Node(s)" msgstr "" @@ -4733,7 +5074,7 @@ msgid "Frame Selection" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Layout" +msgid "Preview Canvas Scale" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4787,6 +5128,10 @@ msgid "Divide grid step by 2" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Pan View" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Add %s" msgstr "" @@ -4809,8 +5154,9 @@ msgid "Error instancing scene from %s" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Change default type" -msgstr "" +#, fuzzy +msgid "Change Default Type" +msgstr "%s ტიპის ცვლილებáƒ" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "" @@ -4896,19 +5242,19 @@ msgid "Create Emission Points From Node" msgstr "" #: editor/plugins/curve_editor_plugin.cpp -msgid "Flat0" +msgid "Flat 0" msgstr "" #: editor/plugins/curve_editor_plugin.cpp -msgid "Flat1" +msgid "Flat 1" msgstr "" -#: editor/plugins/curve_editor_plugin.cpp -msgid "Ease in" +#: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp +msgid "Ease In" msgstr "" -#: editor/plugins/curve_editor_plugin.cpp -msgid "Ease out" +#: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp +msgid "Ease Out" msgstr "" #: editor/plugins/curve_editor_plugin.cpp @@ -4928,23 +5274,27 @@ msgid "Load Curve Preset" msgstr "" #: editor/plugins/curve_editor_plugin.cpp -msgid "Add point" -msgstr "" +#, fuzzy +msgid "Add Point" +msgstr "სáƒáƒ§áƒ•áƒáƒ ლები:" #: editor/plugins/curve_editor_plugin.cpp -msgid "Remove point" -msgstr "" +#, fuzzy +msgid "Remove Point" +msgstr "მáƒáƒœáƒ˜áƒ¨áƒ•ნის მáƒáƒ¨áƒáƒ ებáƒ" #: editor/plugins/curve_editor_plugin.cpp -msgid "Left linear" -msgstr "" +#, fuzzy +msgid "Left Linear" +msgstr "წრფივი" #: editor/plugins/curve_editor_plugin.cpp -msgid "Right linear" -msgstr "" +#, fuzzy +msgid "Right Linear" +msgstr "წრფივი" #: editor/plugins/curve_editor_plugin.cpp -msgid "Load preset" +msgid "Load Preset" msgstr "" #: editor/plugins/curve_editor_plugin.cpp @@ -5000,14 +5350,19 @@ msgid "This doesn't work on scene root!" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Trimesh Shape" +msgid "Create Trimesh Static Shape" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Shape" +msgid "Failed creating shapes!" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp +#, fuzzy +msgid "Create Convex Shape(s)" +msgstr "áƒáƒ®áƒáƒšáƒ˜ %s შექმნáƒ" + +#: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Navigation Mesh" msgstr "" @@ -5057,16 +5412,13 @@ msgid "Create Trimesh Static Body" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Static Body" -msgstr "" - -#: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Trimesh Collision Sibling" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Collision Sibling" -msgstr "" +#, fuzzy +msgid "Create Convex Collision Sibling(s)" +msgstr "შექმნáƒ" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Outline Mesh..." @@ -5219,20 +5571,20 @@ msgid "Create Navigation Polygon" msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp -msgid "Generating Visibility Rect" +#: editor/plugins/particles_editor_plugin.cpp +msgid "Convert to CPUParticles" msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp -msgid "Generate Visibility Rect" +msgid "Generating Visibility Rect" msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp -msgid "Can only set point into a ParticlesMaterial process material" +msgid "Generate Visibility Rect" msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp -#: editor/plugins/particles_editor_plugin.cpp -msgid "Convert to CPUParticles" +msgid "Can only set point into a ParticlesMaterial process material" msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp @@ -5375,7 +5727,7 @@ msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp editor/plugins/theme_editor_plugin.cpp -#: editor/project_export.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_export.cpp msgid "Options" msgstr "" @@ -5426,7 +5778,7 @@ msgid "Split Segment (in curve)" msgstr "" #: editor/plugins/physical_bone_plugin.cpp -msgid "Move joint" +msgid "Move Joint" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5663,7 +6015,6 @@ msgid "Open in Editor" msgstr "" #: editor/plugins/resource_preloader_editor_plugin.cpp -#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Load Resource" msgstr "" @@ -5758,6 +6109,11 @@ msgid "%s Class Reference" msgstr "" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp +msgid "Find Next" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp msgid "Toggle alphabetical sorting of the method list." msgstr "" @@ -5839,10 +6195,6 @@ msgstr "" msgid "Close All" msgstr "" -#: editor/plugins/script_editor_plugin.cpp -msgid "Close Other Tabs" -msgstr "" - #: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp msgid "Run" msgstr "" @@ -5851,11 +6203,6 @@ msgstr "" msgid "Toggle Scripts Panel" msgstr "" -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/script_text_editor.cpp -msgid "Find Next" -msgstr "" - #: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp msgid "Step Over" msgstr "" @@ -5882,7 +6229,7 @@ msgid "Debug with External Editor" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Open Godot online documentation" +msgid "Open Godot online documentation." msgstr "" #: editor/plugins/script_editor_plugin.cpp @@ -5890,7 +6237,7 @@ msgid "Request Docs" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Help improve the Godot documentation by giving feedback" +msgid "Help improve the Godot documentation by giving feedback." msgstr "" #: editor/plugins/script_editor_plugin.cpp @@ -5916,10 +6263,12 @@ msgid "" msgstr "" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp msgid "Reload" msgstr "" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp msgid "Resave" msgstr "" @@ -5934,6 +6283,31 @@ msgstr "ძებნáƒ:" #: editor/plugins/script_text_editor.cpp #, fuzzy +msgid "Connections to method:" +msgstr "კვáƒáƒœáƒ«áƒ—áƒáƒœ დáƒáƒ™áƒáƒ•შირებáƒ:" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Source" +msgstr "რესურსი" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Signal" +msgstr "სიგნáƒáƒšáƒ”ბი" + +#: editor/plugins/script_text_editor.cpp +msgid "Target" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "" +"Missing connected method '%s' for signal '%s' from node '%s' to node '%s'." +msgstr "'%s' დრ'%s' შáƒáƒ ის კáƒáƒ•შირის გáƒáƒ¬áƒ§áƒ•ეტáƒ" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy msgid "Line" msgstr "ხáƒáƒ–ი:" @@ -5946,10 +6320,6 @@ msgstr "" msgid "Go to Function" msgstr "ფუნქციის შექმნáƒ" -#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp -msgid "Standard" -msgstr "" - #: editor/plugins/script_text_editor.cpp msgid "Only resources from filesystem can be dropped." msgstr "" @@ -5982,6 +6352,11 @@ msgstr "" msgid "Syntax Highlighter" msgstr "" +#: editor/plugins/script_text_editor.cpp +#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp +msgid "Bookmarks" +msgstr "" + #: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" @@ -6009,6 +6384,24 @@ msgid "Toggle Comment" msgstr "" #: editor/plugins/script_text_editor.cpp +msgid "Toggle Bookmark" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Go to Next Bookmark" +msgstr "მáƒáƒ›áƒ“ევნრნáƒáƒ‘იჯზე გáƒáƒ“áƒáƒ¡áƒ•ლáƒ" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Go to Previous Bookmark" +msgstr "წინáƒáƒ›áƒ“ებáƒáƒ ე ნáƒáƒ‘იჯზე გáƒáƒ“áƒáƒ¡áƒ•ლáƒ" + +#: editor/plugins/script_text_editor.cpp +msgid "Remove All Bookmarks" +msgstr "" + +#: editor/plugins/script_text_editor.cpp msgid "Fold/Unfold Line" msgstr "" @@ -6086,6 +6479,12 @@ msgid "Contextual Help" msgstr "" #: editor/plugins/shader_editor_plugin.cpp +msgid "" +"This shader has been modified on on disk.\n" +"What action should be taken?" +msgstr "" + +#: editor/plugins/shader_editor_plugin.cpp msgid "Shader" msgstr "" @@ -6423,7 +6822,7 @@ msgid "Right View" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Switch Perspective/Orthogonal view" +msgid "Switch Perspective/Orthogonal View" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp @@ -6463,11 +6862,12 @@ msgid "Toggle Freelook" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Transform" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Snap object to floor" +msgid "Snap Object to Floor" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp @@ -6612,40 +7012,40 @@ msgid "Invalid geometry, can't replace by mesh." msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Invalid geometry, can't create polygon." -msgstr "" - -#: editor/plugins/sprite_editor_plugin.cpp -msgid "Invalid geometry, can't create collision polygon." +msgid "Convert to Mesh2D" msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Invalid geometry, can't create light occluder." +msgid "Invalid geometry, can't create polygon." msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Sprite" -msgstr "" +#, fuzzy +msgid "Convert to Polygon2D" +msgstr "შექმნáƒ" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Convert to Mesh2D" +msgid "Invalid geometry, can't create collision polygon." msgstr "" #: editor/plugins/sprite_editor_plugin.cpp #, fuzzy -msgid "Convert to Polygon2D" +msgid "Create CollisionPolygon2D Sibling" msgstr "შექმნáƒ" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy -msgid "Create CollisionPolygon2D Sibling" -msgstr "შექმნáƒ" +msgid "Invalid geometry, can't create light occluder." +msgstr "" #: editor/plugins/sprite_editor_plugin.cpp msgid "Create LightOccluder2D Sibling" msgstr "" #: editor/plugins/sprite_editor_plugin.cpp +msgid "Sprite" +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp msgid "Simplification: " msgstr "" @@ -6662,7 +7062,12 @@ msgid "Settings:" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "ERROR: Couldn't load frame resource!" +#, fuzzy +msgid "No Frames Selected" +msgstr "დáƒáƒ™áƒáƒ•შირებáƒ" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Add %d Frame(s)" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp @@ -6670,6 +7075,10 @@ msgid "Add Frame" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "ERROR: Couldn't load frame resource!" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Resource clipboard is empty or not a texture!" msgstr "" @@ -6713,6 +7122,15 @@ msgid "Animation Frames:" msgstr "áƒáƒœáƒ˜áƒ›áƒáƒªáƒ˜áƒ˜áƒ¡ . პáƒáƒ áƒáƒ›áƒ”ტრები." #: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Add a Texture from File" +msgstr "მáƒáƒœáƒ˜áƒ¨áƒœáƒ£áƒšáƒ˜ თრექის წáƒáƒ¨áƒšáƒ." + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Add Frames from a Sprite Sheet" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Insert Empty (Before)" msgstr "" @@ -6729,6 +7147,26 @@ msgid "Move (After)" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Select Frames" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Horizontal:" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Vertical:" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Select/Clear All Frames" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Create Frames from Sprite Sheet" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "SpriteFrames" msgstr "" @@ -6793,12 +7231,12 @@ msgstr "" msgid "Remove All Items" msgstr "" -#: editor/plugins/theme_editor_plugin.cpp +#: editor/plugins/theme_editor_plugin.cpp editor/project_manager.cpp msgid "Remove All" msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "Edit theme..." +msgid "Edit Theme" msgstr "" #: editor/plugins/theme_editor_plugin.cpp @@ -6826,18 +7264,24 @@ msgid "Create From Current Editor Theme" msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "CheckBox Radio1" +msgid "Toggle Button" msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "CheckBox Radio2" -msgstr "" +#, fuzzy +msgid "Disabled Button" +msgstr "გáƒáƒ›áƒáƒ თული" #: editor/plugins/theme_editor_plugin.cpp msgid "Item" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Disabled Item" +msgstr "გáƒáƒ›áƒáƒ თული" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Check Item" msgstr "" @@ -6854,6 +7298,22 @@ msgid "Checked Radio Item" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +msgid "Named Sep." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Submenu" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Item 1" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Item 2" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Has" msgstr "" @@ -6862,8 +7322,9 @@ msgid "Many" msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "Has,Many,Options" -msgstr "" +#, fuzzy +msgid "Disabled LineEdit" +msgstr "გáƒáƒ›áƒáƒ თული" #: editor/plugins/theme_editor_plugin.cpp msgid "Tab 1" @@ -6878,6 +7339,18 @@ msgid "Tab 3" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +msgid "Editable Item" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Subtree" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Has,Many,Options" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Data Type:" msgstr "" @@ -6910,6 +7383,7 @@ msgid "Fix Invalid Tiles" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp +#: modules/gridmap/grid_map_editor_plugin.cpp #, fuzzy msgid "Cut Selection" msgstr "მáƒáƒœáƒ˜áƒ¨áƒ•ნის áƒáƒ¡áƒšáƒ˜áƒ¡ შექმნáƒ" @@ -6951,37 +7425,46 @@ msgid "Mirror Y" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp +msgid "Disable Autotile" +msgstr "" + +#: editor/plugins/tile_map_editor_plugin.cpp +msgid "Enable Priority" +msgstr "" + +#: editor/plugins/tile_map_editor_plugin.cpp msgid "Paint Tile" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Pick Tile" +msgid "" +"Shift+RMB: Line Draw\n" +"Shift+Ctrl+RMB: Rectangle Paint" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy -msgid "Copy Selection" -msgstr "მáƒáƒœáƒ˜áƒ¨áƒ•ნის მáƒáƒ¨áƒáƒ ებáƒ" +msgid "Pick Tile" +msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Rotate left" +msgid "Rotate Left" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Rotate right" +msgid "Rotate Right" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Flip horizontally" +msgid "Flip Horizontally" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Flip vertically" +msgid "Flip Vertically" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp #, fuzzy -msgid "Clear transform" +msgid "Clear Transform" msgstr "áƒáƒœáƒ˜áƒ›áƒáƒªáƒ˜áƒ˜áƒ¡ გáƒáƒ დáƒáƒ¥áƒ›áƒœáƒ˜áƒ¡ ცვლილებáƒ" #: editor/plugins/tile_set_editor_plugin.cpp @@ -7018,6 +7501,43 @@ msgid "Select the previous shape, subtile, or Tile." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Region Mode" +msgstr "ინტერპáƒáƒšáƒáƒªáƒ˜áƒ˜áƒ¡ რეჟიმი" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Collision Mode" +msgstr "ინტერპáƒáƒšáƒáƒªáƒ˜áƒ˜áƒ¡ რეჟიმი" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Occlusion Mode" +msgstr "შექმნáƒ" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Navigation Mode" +msgstr "შექმნáƒ" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Bitmask Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Priority Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Icon Mode" +msgstr "მáƒáƒ¡áƒ¨áƒ¢áƒáƒ‘ის თáƒáƒœáƒáƒ¤áƒáƒ დáƒáƒ‘áƒ:" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Z Index Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp msgid "Copy bitmask." msgstr "" @@ -7103,6 +7623,7 @@ msgstr "შექმნáƒ" msgid "" "LMB: Set bit on.\n" "RMB: Set bit off.\n" +"Shift+LMB: Set wildcard bit.\n" "Click on another Tile to edit it." msgstr "" @@ -7218,6 +7739,71 @@ msgid "TileSet" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add input +" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add output +" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Add input port" +msgstr "სáƒáƒ§áƒ•áƒáƒ ლები:" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add output port" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change input port type" +msgstr "%s ტიპის ცვლილებáƒ" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Change output port type" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change input port name" +msgstr "ლექსიკáƒáƒœáƒ˜áƒ¡ მნიშვნელáƒáƒ‘ის შეცვლáƒ" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Change output port name" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Remove input port" +msgstr "მáƒáƒœáƒ˜áƒ¨áƒ•ნის მáƒáƒ¨áƒáƒ ებáƒ" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Remove output port" +msgstr "მáƒáƒœáƒ˜áƒ¨áƒ•ნის მáƒáƒ¨áƒáƒ ებáƒ" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Set expression" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Resize VisualShader node" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Set Uniform Name" msgstr "" @@ -7256,6 +7842,849 @@ msgid "Light" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Create Shader Node" +msgstr "კვáƒáƒœáƒ«áƒ—áƒáƒœ დáƒáƒ™áƒáƒ•შირებáƒ:" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Color function." +msgstr "ფუნქციის შექმნáƒ" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Color operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Grayscale function." +msgstr "ფუნქციის შექმნáƒ" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts HSV vector to RGB equivalent." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts RGB vector to HSV equivalent." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Sepia function." +msgstr "ფუნქციის შექმნáƒ" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Burn operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Darken operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Difference operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Dodge operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "HardLight operator" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Lighten operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Overlay operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Screen operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "SoftLight operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Color constant." +msgstr "მუდმივი" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Color uniform." +msgstr "áƒáƒœáƒ˜áƒ›áƒáƒªáƒ˜áƒ˜áƒ¡ გáƒáƒ დáƒáƒ¥áƒ›áƒœáƒ˜áƒ¡ ცვლილებáƒ" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns an associated vector if the provided scalars are equal, greater or " +"less." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns an associated vector if the provided boolean value is true or false." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'camera' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'inv_camera' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'inv_projection' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'normal' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'projection' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'time' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'viewport_size' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'world' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'texture_pixel_size' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Input parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'binormal' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'fragcoord' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_coord' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_uv' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'side' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'tangent' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv2' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'vertex' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'view' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'albedo' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'attenuation' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'diffuse' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_color' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'roughness' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'specular' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'transmission' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'modelview' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_size' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'tangent' input parameter for vertex and fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_pass' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_coord' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_pixel_size' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_uv' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_alpha' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_height' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_uv' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_vec' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'normal' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'shadow_color' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'extra' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'projection' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'vertex' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'world' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'active' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'custom' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'custom_alpha' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'delta' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'emission_transform' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'index' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'lifetime' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'restart' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'time' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'transform' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'velocity' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar function." +msgstr "მáƒáƒœáƒ˜áƒ¨áƒ•ნის მáƒáƒ¡áƒ¨áƒ¢áƒáƒ‘ის ცვლილებáƒ" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Scalar operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "E constant (2.718282). Represents the base of the natural logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Epsilon constant (0.00001). Smallest possible scalar number." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Phi constant (1.618034). Golden ratio." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi/4 constant (0.785398) or 45 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi/2 constant (1.570796) or 90 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi constant (3.141593) or 180 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Tau constant (6.283185) or 360 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Sqrt2 constant (1.414214). Square root of 2." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the absolute value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-tangent of the parameters." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Finds the nearest integer that is greater than or equal to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Constrains a value to lie between two further values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts a quantity in radians to degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-e Exponential." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-2 Exponential." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Finds the nearest integer less than or equal to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Computes the fractional part of the argument." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the inverse of the square root of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Natural logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-2 logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the greater of two values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the lesser of two values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Linear interpolation between two scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the opposite value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 - scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns the value of the first parameter raised to the power of the second." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts a quantity in degrees to radians." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 / scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the nearest integer to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the nearest even integer to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Clamps the value between 0.0 and 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Extracts the sign of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the square root of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( scalar(edge0), scalar(edge1), scalar(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if x is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( scalar(edge), scalar(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the truncated value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Adds scalar to scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Divides scalar by scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies scalar by scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the remainder of the two scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Subtracts scalar from scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Scalar constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar uniform." +msgstr "áƒáƒœáƒ˜áƒ›áƒáƒªáƒ˜áƒ˜áƒ¡ გáƒáƒ დáƒáƒ¥áƒ›áƒœáƒ˜áƒ¡ ცვლილებáƒ" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Perform the cubic texture lookup." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Perform the texture lookup." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Cubic texture uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "2D texture uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Transform function." +msgstr "შექმნáƒ" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) Calculate the outer product of a pair of vectors.\n" +"\n" +"OuterProduct treats the first parameter 'c' as a column vector (matrix with " +"one column) and the second parameter 'r' as a row vector (matrix with one " +"row) and does a linear algebraic matrix multiply 'c * r', yielding a matrix " +"whose number of rows is the number of components in 'c' and whose number of " +"columns is the number of components in 'r'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Composes transform from four vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Decomposes transform to four vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the determinant of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the inverse of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the transpose of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies transform by transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies vector by transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Transform constant." +msgstr "შექმნáƒ" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Transform uniform." +msgstr "შექმნáƒ" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector function." +msgstr "ფუნქციის შექმნáƒ" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Composes vector from three scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Decomposes vector to three scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the cross product of two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the distance between two points." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the dot product of two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns a vector that points in the same direction as a reference vector. " +"The function has three vector parameters : N, the vector to orient, I, the " +"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 "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the length of a vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Linear interpolation between two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the normalize product of vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 - vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 / vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns a vector that points in the direction of reflection ( a : incident " +"vector, b : normal vector )." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns a vector that points in the direction of refraction." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( vector(edge0), vector(edge1), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if 'x' is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( scalar(edge0), scalar(edge1), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if 'x' is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( vector(edge), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( scalar(edge), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Adds vector to vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Divides vector by vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies vector by vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the remainder of the two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Subtracts vector from vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Custom Godot Shader Language expression, with custom amount of input and " +"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 "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns falloff based on the dot product of surface normal and view " +"direction of camera (pass associated inputs to it)." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) (Fragment/Light mode only) Scalar derivative function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) (Fragment/Light mode only) Vector derivative function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Derivative in 'x' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Derivative in 'x' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Derivative in 'y' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Derivative in 'y' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Sum of absolute derivative " +"in 'x' and 'y'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Sum of absolute derivative " +"in 'x' and 'y'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "VisualShader" msgstr "" @@ -7443,6 +8872,10 @@ msgid "Directory already contains a Godot project." msgstr "" #: editor/project_manager.cpp +msgid "New Game Project" +msgstr "" + +#: editor/project_manager.cpp msgid "Imported Project" msgstr "" @@ -7489,10 +8922,6 @@ msgid "Rename Project" msgstr "" #: editor/project_manager.cpp -msgid "New Game Project" -msgstr "" - -#: editor/project_manager.cpp msgid "Import Existing Project" msgstr "" @@ -7521,10 +8950,6 @@ msgid "Project Name:" msgstr "" #: editor/project_manager.cpp -msgid "Create folder" -msgstr "" - -#: editor/project_manager.cpp msgid "Project Path:" msgstr "" @@ -7533,10 +8958,6 @@ msgid "Project Installation Path:" msgstr "" #: editor/project_manager.cpp -msgid "Browse" -msgstr "" - -#: editor/project_manager.cpp msgid "Renderer:" msgstr "" @@ -7589,8 +9010,8 @@ msgid "" "\n" "If you proceed with opening it, it will be converted to Godot's current " "configuration file format.\n" -"Warning: You will not be able to open the project with previous versions of " -"the engine anymore." +"Warning: You won't be able to open the project with previous versions of the " +"engine anymore." msgstr "" #: editor/project_manager.cpp @@ -7601,8 +9022,8 @@ msgid "" "%s\n" "\n" "Do you want to convert it?\n" -"Warning: You will not be able to open the project with previous versions of " -"the engine anymore." +"Warning: You won't be able to open the project with previous versions of the " +"engine anymore." msgstr "" #: editor/project_manager.cpp @@ -7614,7 +9035,7 @@ msgstr "" #: editor/project_manager.cpp msgid "" "Can't run project: no main scene defined.\n" -"Please edit the project and set the main scene in \"Project Settings\" under " +"Please edit the project and set the main scene in the Project Settings under " "the \"Application\" category." msgstr "" @@ -7625,23 +9046,37 @@ msgid "" msgstr "" #: editor/project_manager.cpp -msgid "Are you sure to run more than one project?" +msgid "Are you sure to run %d projects at once?" msgstr "" #: editor/project_manager.cpp -msgid "Remove project from the list? (Folder contents will not be modified)" +msgid "" +"Remove %d projects from the list?\n" +"The project folders' contents won't be modified." +msgstr "" + +#: editor/project_manager.cpp +msgid "" +"Remove this project from the list?\n" +"The project folder's contents won't be modified." +msgstr "" + +#: editor/project_manager.cpp +msgid "" +"Remove all missing projects from the list? (Folders contents will not be " +"modified)" msgstr "" #: editor/project_manager.cpp msgid "" "Language changed.\n" -"The UI will update next time the editor or project manager starts." +"The interface will update after restarting the editor or project manager." msgstr "" #: editor/project_manager.cpp msgid "" -"You are about the scan %s folders for existing Godot projects. Do you " -"confirm?" +"Are you sure to scan %s folders for existing Godot projects?\n" +"This could take a while." msgstr "" #: editor/project_manager.cpp @@ -7665,6 +9100,11 @@ msgid "New Project" msgstr "" #: editor/project_manager.cpp +#, fuzzy +msgid "Remove Missing" +msgstr "მáƒáƒ¨áƒáƒ ებáƒ" + +#: editor/project_manager.cpp msgid "Templates" msgstr "" @@ -7682,8 +9122,8 @@ msgstr "" #: editor/project_manager.cpp msgid "" -"You don't currently have any projects.\n" -"Would you like to explore the official example projects in the Asset Library?" +"You currently don't have any projects.\n" +"Would you like to explore official example projects in the Asset Library?" msgstr "" #: editor/project_settings_editor.cpp @@ -7709,7 +9149,7 @@ msgid "" msgstr "" #: editor/project_settings_editor.cpp -msgid "Action '%s' already exists!" +msgid "An action with the name '%s' already exists." msgstr "" #: editor/project_settings_editor.cpp @@ -7864,10 +9304,6 @@ msgid "" msgstr "" #: editor/project_settings_editor.cpp -msgid "Already existing" -msgstr "" - -#: editor/project_settings_editor.cpp msgid "Add Input Action" msgstr "" @@ -7932,7 +9368,7 @@ msgid "Override For..." msgstr "" #: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp -msgid "Editor must be restarted for changes to take effect" +msgid "The editor must be restarted for changes to take effect." msgstr "" #: editor/project_settings_editor.cpp @@ -7993,12 +9429,13 @@ msgid "Locales Filter" msgstr "" #: editor/project_settings_editor.cpp -msgid "Show all locales" +msgid "Show All Locales" msgstr "" #: editor/project_settings_editor.cpp -msgid "Show only selected locales" -msgstr "" +#, fuzzy +msgid "Show Selected Locales Only" +msgstr "მáƒáƒœáƒ˜áƒ¨áƒœáƒ£áƒšáƒ˜ მხáƒáƒšáƒáƒ“" #: editor/project_settings_editor.cpp msgid "Filter mode:" @@ -8013,14 +9450,6 @@ msgid "AutoLoad" msgstr "" #: editor/property_editor.cpp -msgid "Ease In" -msgstr "" - -#: editor/property_editor.cpp -msgid "Ease Out" -msgstr "" - -#: editor/property_editor.cpp msgid "Zero" msgstr "" @@ -8094,7 +9523,7 @@ msgid "Suffix" msgstr "" #: editor/rename_dialog.cpp -msgid "Advanced options" +msgid "Advanced Options" msgstr "" #: editor/rename_dialog.cpp @@ -8349,8 +9778,9 @@ msgid "User Interface" msgstr "" #: editor/scene_tree_dock.cpp -msgid "Custom Node" -msgstr "" +#, fuzzy +msgid "Other Node" +msgstr "წáƒáƒ¨áƒšáƒ" #: editor/scene_tree_dock.cpp msgid "Can't operate on nodes from a foreign scene!" @@ -8391,7 +9821,7 @@ msgid "Clear Inheritance" msgstr "" #: editor/scene_tree_dock.cpp -msgid "Open documentation" +msgid "Open Documentation" msgstr "" #: editor/scene_tree_dock.cpp @@ -8418,7 +9848,7 @@ msgstr "" msgid "Save Branch as Scene" msgstr "" -#: editor/scene_tree_dock.cpp +#: editor/scene_tree_dock.cpp editor/script_editor_debugger.cpp msgid "Copy Node Path" msgstr "" @@ -8461,6 +9891,19 @@ msgid "Toggle Visible" msgstr "" #: editor/scene_tree_editor.cpp +msgid "Unlock Node" +msgstr "" + +#: editor/scene_tree_editor.cpp +msgid "Button Group" +msgstr "" + +#: editor/scene_tree_editor.cpp +#, fuzzy +msgid "(Connecting From)" +msgstr "დáƒáƒ›áƒáƒ™áƒáƒ•შირებელი სიგნáƒáƒšáƒ˜:" + +#: editor/scene_tree_editor.cpp msgid "Node configuration warning:" msgstr "" @@ -8482,9 +9925,10 @@ msgid "" "Click to show groups dock." msgstr "" -#: editor/scene_tree_editor.cpp editor/script_create_dialog.cpp -msgid "Open Script" -msgstr "" +#: editor/scene_tree_editor.cpp +#, fuzzy +msgid "Open Script:" +msgstr "დáƒáƒ›áƒáƒ™áƒ˜áƒ“ებულებების შემსწáƒáƒ ებელი" #: editor/scene_tree_editor.cpp msgid "" @@ -8529,71 +9973,76 @@ msgid "Select a Node" msgstr "" #: editor/script_create_dialog.cpp -msgid "Error loading template '%s'" -msgstr "" +#, fuzzy +msgid "Path is empty." +msgstr "ბუფერი ცáƒáƒ იელიáƒ" #: editor/script_create_dialog.cpp -msgid "Error - Could not create script in filesystem." -msgstr "" +#, fuzzy +msgid "Filename is empty." +msgstr "ბუფერი ცáƒáƒ იელიáƒ" #: editor/script_create_dialog.cpp -msgid "Error loading script from %s" +msgid "Path is not local." msgstr "" #: editor/script_create_dialog.cpp -msgid "N/A" -msgstr "" +#, fuzzy +msgid "Invalid base path." +msgstr "áƒáƒ áƒáƒ¡áƒ¬áƒáƒ ი ფáƒáƒœáƒ¢áƒ˜áƒ¡ ზáƒáƒ›áƒ." #: editor/script_create_dialog.cpp -msgid "Open Script/Choose Location" +msgid "A directory with the same name exists." msgstr "" #: editor/script_create_dialog.cpp -msgid "Path is empty" -msgstr "" +#, fuzzy +msgid "Invalid extension." +msgstr "áƒáƒ áƒáƒ¡áƒ¬áƒáƒ ი ფáƒáƒœáƒ¢áƒ˜áƒ¡ ზáƒáƒ›áƒ." #: editor/script_create_dialog.cpp -msgid "Filename is empty" +msgid "Wrong extension chosen." msgstr "" #: editor/script_create_dialog.cpp -msgid "Path is not local" +msgid "Error loading template '%s'" msgstr "" #: editor/script_create_dialog.cpp -msgid "Invalid base path" +msgid "Error - Could not create script in filesystem." msgstr "" #: editor/script_create_dialog.cpp -msgid "Directory of the same name exists" +msgid "Error loading script from %s" msgstr "" #: editor/script_create_dialog.cpp -msgid "File exists, will be reused" +msgid "N/A" msgstr "" #: editor/script_create_dialog.cpp -msgid "Invalid extension" +msgid "Open Script / Choose Location" msgstr "" #: editor/script_create_dialog.cpp -msgid "Wrong extension chosen" +msgid "Open Script" msgstr "" #: editor/script_create_dialog.cpp -msgid "Invalid Path" +msgid "File exists, it will be reused." msgstr "" #: editor/script_create_dialog.cpp -msgid "Invalid class name" -msgstr "" +#, fuzzy +msgid "Invalid class name." +msgstr "áƒáƒ áƒáƒ¡áƒ¬áƒáƒ ი ფáƒáƒœáƒ¢áƒ˜áƒ¡ ზáƒáƒ›áƒ." #: editor/script_create_dialog.cpp -msgid "Invalid inherited parent name or path" +msgid "Invalid inherited parent name or path." msgstr "" #: editor/script_create_dialog.cpp -msgid "Script valid" +msgid "Script is valid." msgstr "" #: editor/script_create_dialog.cpp @@ -8601,15 +10050,16 @@ msgid "Allowed: a-z, A-Z, 0-9 and _" msgstr "" #: editor/script_create_dialog.cpp -msgid "Built-in script (into scene file)" +msgid "Built-in script (into scene file)." msgstr "" #: editor/script_create_dialog.cpp -msgid "Create new script file" -msgstr "" +#, fuzzy +msgid "Will create a new script file." +msgstr "áƒáƒ®áƒáƒšáƒ˜ %s შექმნáƒ" #: editor/script_create_dialog.cpp -msgid "Load existing script file" +msgid "Will load an existing script file." msgstr "" #: editor/script_create_dialog.cpp @@ -8740,6 +10190,10 @@ msgstr "" msgid "Set From Tree" msgstr "" +#: editor/script_editor_debugger.cpp +msgid "Export measures as CSV" +msgstr "" + #: editor/settings_config_dialog.cpp msgid "Erase Shortcut" msgstr "" @@ -8869,6 +10323,14 @@ msgid "GDNativeLibrary" msgstr "" #: modules/gdnative/gdnative_library_singleton_editor.cpp +msgid "Enabled GDNative Singleton" +msgstr "" + +#: modules/gdnative/gdnative_library_singleton_editor.cpp +msgid "Disabled GDNative Singleton" +msgstr "" + +#: modules/gdnative/gdnative_library_singleton_editor.cpp msgid "Library" msgstr "" @@ -8954,8 +10416,9 @@ msgid "GridMap Fill Selection" msgstr "ყველრმáƒáƒœáƒ˜áƒ¨áƒœáƒ•áƒ" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "GridMap Duplicate Selection" -msgstr "" +#, fuzzy +msgid "GridMap Paste Selection" +msgstr "ყველრმáƒáƒœáƒ˜áƒ¨áƒœáƒ•áƒ" #: modules/gridmap/grid_map_editor_plugin.cpp msgid "GridMap Paint" @@ -9022,18 +10485,6 @@ msgid "Cursor Clear Rotation" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Create Area" -msgstr "" - -#: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Create Exterior Connector" -msgstr "" - -#: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Erase Area" -msgstr "" - -#: modules/gridmap/grid_map_editor_plugin.cpp msgid "Clear Selection" msgstr "" @@ -9387,15 +10838,7 @@ msgid "Available Nodes:" msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Select or create a function to edit graph" -msgstr "" - -#: modules/visual_script/visual_script_editor.cpp -msgid "Edit Signal Arguments:" -msgstr "" - -#: modules/visual_script/visual_script_editor.cpp -msgid "Edit Variable:" +msgid "Select or create a function to edit its graph." msgstr "" #: modules/visual_script/visual_script_editor.cpp @@ -9525,6 +10968,19 @@ msgid "Debug keystore not configured in the Editor Settings nor in the preset." msgstr "" #: platform/android/export/export.cpp +msgid "Custom build requires a valid Android SDK path in Editor Settings." +msgstr "" + +#: platform/android/export/export.cpp +msgid "Invalid Android SDK path for custom build in Editor Settings." +msgstr "" + +#: platform/android/export/export.cpp +msgid "" +"Android project is not installed for compiling. Install from Editor menu." +msgstr "" + +#: platform/android/export/export.cpp msgid "Invalid public key for APK expansion." msgstr "" @@ -9533,6 +10989,34 @@ msgstr "" msgid "Invalid package name:" msgstr "áƒáƒ áƒáƒ¡áƒ¬áƒáƒ ი ფáƒáƒœáƒ¢áƒ˜áƒ¡ ზáƒáƒ›áƒ." +#: platform/android/export/export.cpp +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 "" +"Android build version mismatch:\n" +" Template installed: %s\n" +" Godot Version: %s\n" +"Please reinstall Android build template from 'Project' menu." +msgstr "" + +#: platform/android/export/export.cpp +msgid "Building Android Project (gradle)" +msgstr "" + +#: 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 "" + +#: platform/android/export/export.cpp +msgid "No build apk generated at: " +msgstr "" + #: platform/iphone/export/export.cpp msgid "Identifier is missing." msgstr "" @@ -9789,27 +11273,27 @@ msgid "ARVRCamera must have an ARVROrigin node as its parent" msgstr "" #: scene/3d/arvr_nodes.cpp -msgid "ARVRController must have an ARVROrigin node as its parent" +msgid "ARVRController must have an ARVROrigin node as its parent." msgstr "" #: scene/3d/arvr_nodes.cpp msgid "" -"The controller id must not be 0 or this controller will not be bound to an " -"actual controller" +"The controller ID must not be 0 or this controller won't be bound to an " +"actual controller." msgstr "" #: scene/3d/arvr_nodes.cpp -msgid "ARVRAnchor must have an ARVROrigin node as its parent" +msgid "ARVRAnchor must have an ARVROrigin node as its parent." msgstr "" #: scene/3d/arvr_nodes.cpp msgid "" -"The anchor id must not be 0 or this anchor will not be bound to an actual " -"anchor" +"The anchor ID must not be 0 or this anchor won't be bound to an actual " +"anchor." msgstr "" #: scene/3d/arvr_nodes.cpp -msgid "ARVROrigin requires an ARVRCamera child node" +msgid "ARVROrigin requires an ARVRCamera child node." msgstr "" #: scene/3d/baked_lightmap.cpp @@ -9879,8 +11363,8 @@ msgstr "" #: scene/3d/cpu_particles.cpp msgid "" -"CPUParticles animation requires the usage of a SpatialMaterial with " -"\"Billboard Particles\" enabled." +"CPUParticles animation requires the usage of a SpatialMaterial whose " +"Billboard Mode is set to \"Particle Billboard\"." msgstr "" #: scene/3d/gi_probe.cpp @@ -9917,8 +11401,8 @@ msgstr "" #: scene/3d/particles.cpp msgid "" -"Particles animation requires the usage of a SpatialMaterial with \"Billboard " -"Particles\" enabled." +"Particles animation requires the usage of a SpatialMaterial whose Billboard " +"Mode is set to \"Particle Billboard\"." msgstr "" #: scene/3d/path.cpp @@ -9943,7 +11427,7 @@ msgid "Path property must point to a valid Spatial node to work." msgstr "" #: scene/3d/soft_body.cpp -msgid "This body will be ignored until you set a mesh" +msgid "This body will be ignored until you set a mesh." msgstr "" #: scene/3d/soft_body.cpp @@ -10044,7 +11528,7 @@ msgstr "" msgid "" "Container by itself serves no purpose unless a script configures it's " "children placement behavior.\n" -"If you dont't intend to add a script, then please use a plain 'Control' node " +"If you don't intend to add a script, then please use a plain 'Control' node " "instead." msgstr "" @@ -10056,10 +11540,6 @@ msgstr "" msgid "Please Confirm..." msgstr "" -#: scene/gui/file_dialog.cpp -msgid "Go to parent folder." -msgstr "" - #: scene/gui/popup.cpp msgid "" "Popups will hide by default unless you call popup() or any of the popup*() " @@ -10133,6 +11613,13 @@ msgstr "" msgid "Varyings can only be assigned in vertex function." msgstr "" +#: servers/visual/shader_language.cpp +msgid "Constants cannot be modified." +msgstr "" + +#~ msgid "Path to Node:" +#~ msgstr "გზრკვáƒáƒœáƒ«áƒáƒ›áƒ“ე:" + #~ msgid "Line:" #~ msgstr "ხáƒáƒ–ი:" @@ -10140,10 +11627,6 @@ msgstr "" #~ msgstr "სვეტი:" #, fuzzy -#~ msgid "Remove Split" -#~ msgstr "მáƒáƒœáƒ˜áƒ¨áƒ•ნის მáƒáƒ¨áƒáƒ ებáƒ" - -#, fuzzy #~ msgid "Zoom out" #~ msgstr "ზუმის დáƒáƒžáƒáƒ¢áƒáƒ áƒáƒ•ებáƒ" @@ -10163,9 +11646,6 @@ msgstr "" #~ msgid "Match case" #~ msgstr "სáƒáƒ¥áƒ›áƒ˜áƒ¡ დáƒáƒ›áƒ—ხვევáƒ" -#~ msgid "Disabled" -#~ msgstr "გáƒáƒ›áƒáƒ თული" - #~ msgid "Move Anim Track Up" #~ msgstr "áƒáƒœáƒ˜áƒ›áƒáƒªáƒ˜áƒ˜áƒ¡ თრექის ზემáƒáƒ— გáƒáƒ“áƒáƒáƒ“გილებáƒ" diff --git a/editor/translations/ko.po b/editor/translations/ko.po index eb7964f81d..44699e75e8 100644 --- a/editor/translations/ko.po +++ b/editor/translations/ko.po @@ -17,8 +17,8 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2019-04-05 13:04+0000\n" -"Last-Translator: moolow <copyhyeon@gmail.com>\n" +"PO-Revision-Date: 2019-06-16 19:42+0000\n" +"Last-Translator: ì†¡íƒœì„ <xotjq237@gmail.com>\n" "Language-Team: Korean <https://hosted.weblate.org/projects/godot-engine/" "godot/ko/>\n" "Language: ko\n" @@ -26,7 +26,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.6-dev\n" +"X-Generator: Weblate 3.7-dev\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -81,6 +81,15 @@ msgstr "ê· í˜•" msgid "Mirror" msgstr "거울" +#: editor/animation_bezier_editor.cpp editor/editor_profiler.cpp +msgid "Time:" +msgstr "시간:" + +#: editor/animation_bezier_editor.cpp +#, fuzzy +msgid "Value:" +msgstr "ê°’" + #: editor/animation_bezier_editor.cpp msgid "Insert Key Here" msgstr "ì—¬ê¸°ì— í‚¤ë¥¼ 삽입" @@ -163,12 +172,16 @@ msgid "Animation Playback Track" msgstr "ì• ë‹ˆë©”ì´ì…˜ ìž¬ìƒ íŠ¸ëž™" #: editor/animation_track_editor.cpp -msgid "Add Track" -msgstr "트랙 추가" +msgid "Animation length (frames)" +msgstr "ì• ë‹ˆë©”ì´ì…˜ ê¸¸ì´ (í”„ë ˆìž„)" + +#: editor/animation_track_editor.cpp +msgid "Animation length (seconds)" +msgstr "ì• ë‹ˆë©”ì´ì…˜ ê¸¸ì´ (ì´ˆ)" #: editor/animation_track_editor.cpp -msgid "Animation Length Time (seconds)" -msgstr "ì• ë‹ˆë©”ì´ì…˜ ê¸¸ì´ ì‹œê°„ (ì´ˆ)" +msgid "Add Track" +msgstr "트랙 추가" #: editor/animation_track_editor.cpp msgid "Animation Looping" @@ -250,11 +263,11 @@ msgstr "입방형" #: editor/animation_track_editor.cpp msgid "Clamp Loop Interp" -msgstr "í´ëž¨í”„ 루프 ì¸í„°í”„리터" +msgstr "루프 ë³´ê°„ ê³ ì •" #: editor/animation_track_editor.cpp msgid "Wrap Loop Interp" -msgstr "ëž© 루프 ì¸í„°í”„리터" +msgstr "루프 ë³´ê°„ ê°ì¶”기" #: editor/animation_track_editor.cpp #: editor/plugins/canvas_item_editor_plugin.cpp @@ -294,11 +307,13 @@ msgid "Create %d NEW tracks and insert keys?" msgstr "%dê°œì˜ ìƒˆ íŠ¸ëž™ì„ ìƒì„±í•˜ê³ 키를 ì‚½ìž…í•˜ì‹œê² ìŠµë‹ˆê¹Œ?" #: editor/animation_track_editor.cpp editor/create_dialog.cpp -#: editor/editor_audio_buses.cpp editor/editor_plugin_settings.cpp -#: editor/plugin_config_dialog.cpp +#: editor/editor_audio_buses.cpp editor/editor_feature_profile.cpp +#: editor/editor_plugin_settings.cpp editor/plugin_config_dialog.cpp #: editor/plugins/abstract_polygon_2d_editor.cpp #: editor/plugins/mesh_instance_editor_plugin.cpp -#: editor/plugins/particles_editor_plugin.cpp editor/script_create_dialog.cpp +#: editor/plugins/particles_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_create_dialog.cpp msgid "Create" msgstr "만들기" @@ -414,6 +429,23 @@ msgid "" msgstr "ì´ ì˜µì…˜ì€ ë² ì§€ì–´ 편집ì—서 ë‹¨ì¼ íŠ¸ëž™ì´ê¸° 때문ì—, ìž‘ë™í•˜ì§€ 않습니다." #: editor/animation_track_editor.cpp +msgid "" +"This animation belongs to an imported scene, so changes to imported tracks " +"will not be saved.\n" +"\n" +"To enable the ability to add custom tracks, navigate to the scene's import " +"settings and set\n" +"\"Animation > Storage\" to \"Files\", enable \"Animation > Keep Custom Tracks" +"\", then re-import.\n" +"Alternatively, use an import preset that imports animations to separate " +"files." +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Warning: Editing imported animation" +msgstr "" + +#: editor/animation_track_editor.cpp msgid "Only show tracks from nodes selected in tree." msgstr "트리ì—서 ì„ íƒí•œ ë…¸ë“œì˜ íŠ¸ëž™ë§Œ 표시합니다." @@ -422,9 +454,8 @@ msgid "Group tracks by node or display them as plain list." msgstr "노드 별로 ê·¸ë£¹ì„ íŠ¸ëž™ 하거나 ì¼ë°˜ 목ë¡ìœ¼ë¡œ 표시합니다." #: editor/animation_track_editor.cpp -#, fuzzy msgid "Snap:" -msgstr "스냅" +msgstr "스냅:" #: editor/animation_track_editor.cpp msgid "Animation step value." @@ -432,7 +463,7 @@ msgstr "ì• ë‹ˆë©”ì´ì…˜ 단계 ê°’." #: editor/animation_track_editor.cpp msgid "Seconds" -msgstr "" +msgstr "ì´ˆ" #: editor/animation_track_editor.cpp msgid "FPS" @@ -547,7 +578,8 @@ msgstr "ìŠ¤ì¼€ì¼ ë¹„ìœ¨:" msgid "Select tracks to copy:" msgstr "ë³µì‚¬í• íŠ¸ëž™ ì„ íƒ:" -#: editor/animation_track_editor.cpp editor/editor_properties.cpp +#: editor/animation_track_editor.cpp editor/editor_log.cpp +#: editor/editor_properties.cpp #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp @@ -615,6 +647,11 @@ msgstr "ì „ì²´ 바꾸기" msgid "Selection Only" msgstr "ì„ íƒ ì˜ì—ë§Œ" +#: editor/code_editor.cpp editor/plugins/script_text_editor.cpp +#: editor/plugins/text_editor.cpp +msgid "Standard" +msgstr "표준" + #: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/texture_region_editor_plugin.cpp #: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp @@ -640,21 +677,39 @@ msgid "Line and column numbers." msgstr "ë¼ì¸ ë° ì»¬ëŸ¼ 번호." #: editor/connections_dialog.cpp -msgid "Method in target Node must be specified!" +#, fuzzy +msgid "Method in target node must be specified." msgstr "ëŒ€ìƒ ë…¸ë“œì˜ ë©”ì„œë“œë¥¼ 명시해야 합니다!" #: editor/connections_dialog.cpp +#, fuzzy msgid "" -"Target method not found! Specify a valid method or attach a script to target " -"Node." +"Target method not found. Specify a valid method or attach a script to the " +"target node." msgstr "" "ëŒ€ìƒ ë©”ì„œë“œë¥¼ ì°¾ì„ ìˆ˜ 없습니다! ìœ íš¨í•œ 메서드를 ì§€ì •í•˜ê±°ë‚˜, ëŒ€ìƒ ë…¸ë“œì— ìŠ¤í¬" "립트를 추가하세요." #: editor/connections_dialog.cpp -msgid "Connect To Node:" +#, fuzzy +msgid "Connect to Node:" msgstr "ì—°ê²°í• ë…¸ë“œ:" +#: editor/connections_dialog.cpp +#, fuzzy +msgid "Connect to Script:" +msgstr "í˜¸ìŠ¤íŠ¸ì— ì—°ê²°í• ìˆ˜ ì—†ìŒ:" + +#: editor/connections_dialog.cpp +#, fuzzy +msgid "From Signal:" +msgstr "시그ë„:" + +#: editor/connections_dialog.cpp +#, fuzzy +msgid "Scene does not contain any script." +msgstr "노드가 지오미트리를 í¬í•¨í•˜ê³ 있지 않습니다." + #: editor/connections_dialog.cpp editor/editor_autoload_settings.cpp #: editor/groups_editor.cpp editor/plugins/item_list_editor_plugin.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_settings_editor.cpp @@ -662,10 +717,12 @@ msgid "Add" msgstr "추가" #: editor/connections_dialog.cpp editor/dependency_editor.cpp -#: editor/groups_editor.cpp editor/plugins/animation_player_editor_plugin.cpp +#: editor/editor_feature_profile.cpp editor/groups_editor.cpp +#: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp #: editor/plugins/resource_preloader_editor_plugin.cpp -#: editor/plugins/theme_editor_plugin.cpp editor/project_manager.cpp +#: editor/plugins/theme_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_manager.cpp #: editor/project_settings_editor.cpp msgid "Remove" msgstr "ì‚ì œ" @@ -679,21 +736,32 @@ msgid "Extra Call Arguments:" msgstr "별ë„ì˜ í˜¸ì¶œ ì¸ìˆ˜:" #: editor/connections_dialog.cpp -msgid "Path to Node:" -msgstr "노드 경로:" - -#: editor/connections_dialog.cpp -msgid "Make Function" -msgstr "함수 만들기" +#, fuzzy +msgid "Advanced" +msgstr "ê³ ê¸‰ 옵션" #: editor/connections_dialog.cpp msgid "Deferred" msgstr "지연" #: editor/connections_dialog.cpp +msgid "" +"Defers the signal, storing it in a queue and only firing it at idle time." +msgstr "" + +#: editor/connections_dialog.cpp msgid "Oneshot" msgstr "1회" +#: editor/connections_dialog.cpp +msgid "Disconnects the signal after its first emission." +msgstr "" + +#: editor/connections_dialog.cpp +#, fuzzy +msgid "Cannot connect signal" +msgstr "ì‹œê·¸ë„ ì—°ê²°: " + #: editor/connections_dialog.cpp editor/dependency_editor.cpp #: editor/export_template_manager.cpp editor/groups_editor.cpp #: editor/plugins/animation_player_editor_plugin.cpp @@ -734,11 +802,13 @@ msgid "Disconnect" msgstr "ì—°ê²°í•´ì œ" #: editor/connections_dialog.cpp -msgid "Connect Signal: " +#, fuzzy +msgid "Connect a Signal to a Method" msgstr "ì‹œê·¸ë„ ì—°ê²°: " #: editor/connections_dialog.cpp -msgid "Edit Connection: " +#, fuzzy +msgid "Edit Connection:" msgstr "ì—°ê²° 편집 " #: editor/connections_dialog.cpp @@ -770,7 +840,6 @@ msgid "Change %s Type" msgstr "%s(으)로 타입 변경" #: editor/create_dialog.cpp editor/project_settings_editor.cpp -#: modules/visual_script/visual_script_editor.cpp msgid "Change" msgstr "변경" @@ -801,7 +870,8 @@ msgid "Matches:" msgstr "ì¼ì¹˜:" #: editor/create_dialog.cpp editor/plugin_config_dialog.cpp -#: editor/plugins/asset_library_editor_plugin.cpp editor/property_selector.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/property_selector.cpp #: modules/visual_script/visual_script_property_selector.cpp msgid "Description:" msgstr "설명:" @@ -815,17 +885,19 @@ msgid "Dependencies For:" msgstr "ì¢…ì† ê´€ê³„:" #: editor/dependency_editor.cpp +#, fuzzy msgid "" "Scene '%s' is currently being edited.\n" -"Changes will not take effect unless reloaded." +"Changes will only take effect when reloaded." msgstr "" "씬 '%s'ì´(ê°€) 현재 편집 중입니다.\n" "다시 불러올 때 변경 사í•ì´ ì ìš©ë©ë‹ˆë‹¤." #: editor/dependency_editor.cpp +#, fuzzy msgid "" "Resource '%s' is in use.\n" -"Changes will take effect when reloaded." +"Changes will only take effect when reloaded." msgstr "" "리소스 '%s'ì´(ê°€) 사용 중입니다.\n" "다시 불러올 때 변경 사í•ì´ ì ìš©ë©ë‹ˆë‹¤." @@ -920,21 +992,14 @@ msgid "Permanently delete %d item(s)? (No undo!)" msgstr "%dê°œ í•ëª©ì„ ì˜êµ¬ì 으로 ì‚ì œí•˜ì‹œê² ìŠµë‹ˆê¹Œ? (ë˜ëŒë¦¬ê¸° 불가)" #: editor/dependency_editor.cpp -msgid "Owns" -msgstr "ì†Œìœ " - -#: editor/dependency_editor.cpp -msgid "Resources Without Explicit Ownership:" -msgstr "명확하게 사용ë˜ì§€ ì•Šì€ ë¦¬ì†ŒìŠ¤:" +#, fuzzy +msgid "Show Dependencies" +msgstr "ì¢…ì† ê´€ê³„" #: editor/dependency_editor.cpp editor/editor_node.cpp msgid "Orphan Resource Explorer" msgstr "미사용 리소스 íƒìƒ‰ê¸°" -#: editor/dependency_editor.cpp -msgid "Delete selected files?" -msgstr "ì„ íƒëœ 파ì¼ë“¤ì„ ì‚ì œí•˜ì‹œê² ìŠµë‹ˆê¹Œ?" - #: editor/dependency_editor.cpp editor/editor_audio_buses.cpp #: editor/editor_file_dialog.cpp editor/editor_node.cpp #: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp @@ -943,6 +1008,14 @@ msgstr "ì„ íƒëœ 파ì¼ë“¤ì„ ì‚ì œí•˜ì‹œê² ìŠµë‹ˆê¹Œ?" msgid "Delete" msgstr "ì‚ì œ" +#: editor/dependency_editor.cpp +msgid "Owns" +msgstr "ì†Œìœ " + +#: editor/dependency_editor.cpp +msgid "Resources Without Explicit Ownership:" +msgstr "명확하게 사용ë˜ì§€ ì•Šì€ ë¦¬ì†ŒìŠ¤:" + #: editor/dictionary_property_edit.cpp msgid "Change Dictionary Key" msgstr "Dictionary 키 변경" @@ -1055,7 +1128,7 @@ msgstr "패키지가 성공ì 으로 설치ë˜ì—ˆìŠµë‹ˆë‹¤!" msgid "Success!" msgstr "성공!" -#: editor/editor_asset_installer.cpp +#: editor/editor_asset_installer.cpp editor/editor_node.cpp #: editor/plugins/asset_library_editor_plugin.cpp msgid "Install" msgstr "설치" @@ -1182,8 +1255,12 @@ msgid "Open Audio Bus Layout" msgstr "오디오 버스 ë ˆì´ì•„웃 열기" #: editor/editor_audio_buses.cpp -msgid "There is no 'res://default_bus_layout.tres' file." -msgstr "'res://default_bus_layout.tres' 파ì¼ì´ 없습니다." +msgid "There is no '%s' file." +msgstr "" + +#: editor/editor_audio_buses.cpp editor/plugins/canvas_item_editor_plugin.cpp +msgid "Layout" +msgstr "ë ˆì´ì•„웃" #: editor/editor_audio_buses.cpp msgid "Invalid file, not an audio bus layout." @@ -1236,20 +1313,27 @@ msgid "Valid characters:" msgstr "ìœ íš¨í•œ 문ìž:" #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing engine class name." +#, fuzzy +msgid "Must not collide with an existing engine class name." msgstr "" "ìœ íš¨í•˜ì§€ ì•Šì€ ì´ë¦„입니다. ì—”ì§„ì— ì¡´ìž¬í•˜ëŠ” í´ëž˜ìФ ì´ë¦„ê³¼ ì¶©ëŒí•˜ì§€ 않아야 합니" "다." #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing buit-in type name." +#, fuzzy +msgid "Must not collide with an existing buit-in type name." msgstr "ìœ íš¨í•˜ì§€ ì•Šì€ ì´ë¦„입니다. 내장 타입 ì´ë¦„ê³¼ ì¶©ëŒí•˜ì§€ 않아야 합니다." #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing global constant name." +#, fuzzy +msgid "Must not collide with an existing global constant name." msgstr "ìœ íš¨í•˜ì§€ ì•Šì€ ì´ë¦„입니다. ì „ì— ìƒìˆ˜ ì´ë¦„ê³¼ ì¶©ëŒí•˜ì§€ 않아야 합니다." #: editor/editor_autoload_settings.cpp +msgid "Keyword cannot be used as an autoload name." +msgstr "" + +#: editor/editor_autoload_settings.cpp msgid "Autoload '%s' already exists!" msgstr "ì˜¤í† ë¡œë“œì— '%s'ì´(ê°€) ì´ë¯¸ 존재합니다!" @@ -1277,11 +1361,12 @@ msgstr "활성화" msgid "Rearrange Autoloads" msgstr "ì˜¤í† ë¡œë“œ ìž¬ì •ë ¬" -#: editor/editor_autoload_settings.cpp -msgid "Invalid Path." +#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp +#, fuzzy +msgid "Invalid path." msgstr "ìœ íš¨í•˜ì§€ ì•Šì€ ê²½ë¡œ." -#: editor/editor_autoload_settings.cpp +#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp msgid "File does not exist." msgstr "파ì¼ì´ 존재하지 않습니다." @@ -1332,7 +1417,8 @@ msgid "[unsaved]" msgstr "[ì €ìž¥ë˜ì§€ 않ìŒ]" #: editor/editor_dir_dialog.cpp -msgid "Please select a base directory first" +#, fuzzy +msgid "Please select a base directory first." msgstr "ë¨¼ì € 기본 ë””ë ‰í† ë¦¬ë¥¼ ì„ íƒí•´ì£¼ì„¸ìš”" #: editor/editor_dir_dialog.cpp @@ -1340,7 +1426,8 @@ msgid "Choose a Directory" msgstr "ë””ë ‰í† ë¦¬ ì„ íƒ" #: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp -#: editor/filesystem_dock.cpp scene/gui/file_dialog.cpp +#: editor/filesystem_dock.cpp editor/project_manager.cpp +#: scene/gui/file_dialog.cpp msgid "Create Folder" msgstr "í´ë” 만들기" @@ -1416,6 +1503,178 @@ msgstr "커스텀 릴리즈 í…œí”Œë¦¿ì„ ì°¾ì„ ìˆ˜ 없습니다." msgid "Template file not found:" msgstr "í…œí”Œë¦¿ì„ ì°¾ì„ ìˆ˜ 없습니다:" +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "3D Editor" +msgstr "ì—디터" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Script Editor" +msgstr "스í¬ë¦½íЏ ì—디터 열기" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Asset Library" +msgstr "ì—ì…‹ ë¼ì´ë¸ŒëŸ¬ë¦¬ 열기" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Scene Tree Editing" +msgstr "씬 트리 (노드):" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Import Dock" +msgstr "ê°€ì ¸ì˜¤ê¸°" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Node Dock" +msgstr "노드 ì´ë™ë¨" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Filesystem Dock" +msgstr "íŒŒì¼ ì‹œìŠ¤í…œ" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Erase profile '%s'? (no undo)" +msgstr "ì „ì²´ 바꾸기 (ì·¨ì†Œí• ìˆ˜ ì—†ìŒ)" + +#: editor/editor_feature_profile.cpp +msgid "Profile must be a valid filename and must not contain '.'" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Profile with this name already exists." +msgstr "파ì¼ì´ë‚˜ í´ë”ê°€ 해당 ì´ë¦„ì„ ì‚¬ìš©ì¤‘ìž…ë‹ˆë‹¤." + +#: editor/editor_feature_profile.cpp +msgid "(Editor Disabled, Properties Disabled)" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "(Properties Disabled)" +msgstr "ì†ì„±ë§Œ" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "(Editor Disabled)" +msgstr "í´ë¦½ 사용 안함" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Class Options:" +msgstr "í´ëž˜ìФ 설명:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enable Contextual Editor" +msgstr "ë‹¤ìŒ ì—디터 열기" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enabled Properties:" +msgstr "ì†ì„±:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enabled Features:" +msgstr "기능" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enabled Classes:" +msgstr "í´ëž˜ìФ 검색" + +#: editor/editor_feature_profile.cpp +msgid "File '%s' format is invalid, import aborted." +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "" +"Profile '%s' already exists. Remote it first before importing, import " +"aborted." +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Error saving profile to path: '%s'." +msgstr "'%s' 템플릿 불러오기 오류" + +#: editor/editor_feature_profile.cpp +msgid "Unset" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Current Profile" +msgstr "현재 ë²„ì „:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Make Current" +msgstr "현재:" + +#: editor/editor_feature_profile.cpp +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "New" +msgstr "새 파ì¼" + +#: editor/editor_feature_profile.cpp editor/editor_node.cpp +#: editor/plugins/asset_library_editor_plugin.cpp editor/project_manager.cpp +msgid "Import" +msgstr "ê°€ì ¸ì˜¤ê¸°" + +#: editor/editor_feature_profile.cpp editor/editor_node.cpp +#: editor/project_export.cpp +msgid "Export" +msgstr "내보내기" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Available Profiles" +msgstr "사용 가능한 노드:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enabled Classes" +msgstr "í´ëž˜ìФ 검색" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Class Options" +msgstr "í´ëž˜ìФ 설명" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "New profile name:" +msgstr "새 ì´ë¦„:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Erase Profile" +msgstr "ì˜ì— 지우기" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Import Profile(s)" +msgstr "ê°€ì ¸ì˜¨ 프로ì 트" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Export Profile" +msgstr "프로ì 트 내보내기" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Manage Editor Feature Profiles" +msgstr "내보내기 템플릿 관리" + #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Select Current Folder" msgstr "현재 í´ë” ì„ íƒ" @@ -1436,8 +1695,8 @@ msgstr "경로 복사" msgid "Open in File Manager" msgstr "íŒŒì¼ íƒìƒ‰ê¸°ì—서 열기" -#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp -#: editor/project_manager.cpp +#: editor/editor_file_dialog.cpp editor/editor_node.cpp +#: editor/filesystem_dock.cpp editor/project_manager.cpp msgid "Show in File Manager" msgstr "íŒŒì¼ íƒìƒ‰ê¸°ì—서 보기" @@ -1496,7 +1755,7 @@ msgstr "앞으로 가기" msgid "Go Up" msgstr "위로 가기" -#: editor/editor_file_dialog.cpp +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Toggle Hidden Files" msgstr "숨김 íŒŒì¼ í† ê¸€" @@ -1528,14 +1787,19 @@ msgstr "ì´ì „ í´ë”" msgid "Next Folder" msgstr "ë‹¤ìŒ í´ë”" -#: editor/editor_file_dialog.cpp -msgid "Go to parent folder" -msgstr "부모 í´ë”로 ì´ë™" +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp +msgid "Go to parent folder." +msgstr "부모 í´ë”로 ì´ë™í•©ë‹ˆë‹¤." #: editor/editor_file_dialog.cpp msgid "(Un)favorite current folder." msgstr "현재 í´ë”를 ì¦ê²¨ì°¾ê¸° (안) 합니다." +#: editor/editor_file_dialog.cpp +#, fuzzy +msgid "Toggle visibility of hidden files." +msgstr "숨김 íŒŒì¼ í† ê¸€" + #: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp msgid "View items as a grid of thumbnails." msgstr "ì¸ë„¤ì¼ 바둑íŒìœ¼ë¡œ 보기." @@ -1550,6 +1814,7 @@ msgstr "ë””ë ‰í† ë¦¬ì™€ 파ì¼:" #: editor/editor_file_dialog.cpp editor/plugins/sprite_editor_plugin.cpp #: editor/plugins/style_box_editor_plugin.cpp +#: editor/plugins/theme_editor_plugin.cpp msgid "Preview:" msgstr "미리보기:" @@ -1566,6 +1831,12 @@ msgid "ScanSources" msgstr "소스 조사" #: editor/editor_file_system.cpp +msgid "" +"There are multiple importers for different types pointing to file %s, import " +"aborted" +msgstr "" + +#: editor/editor_file_system.cpp msgid "(Re)Importing Assets" msgstr "ì—ì…‹ (다시) ê°€ì ¸ì˜¤ê¸°" @@ -1748,6 +2019,10 @@ msgstr "다중 ì„¤ì •:" msgid "Output:" msgstr "ì¶œë ¥:" +#: editor/editor_log.cpp editor/plugins/tile_map_editor_plugin.cpp +msgid "Copy Selection" +msgstr "ì„ íƒ ë³µì‚¬" + #: editor/editor_log.cpp editor/editor_profiler.cpp #: editor/editor_properties.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp @@ -1902,9 +2177,10 @@ msgstr "" "를 확ì¸í•´ì£¼ì‹ì‹œì˜¤." #: editor/editor_node.cpp +#, fuzzy msgid "" "This resource belongs to a scene that was instanced or inherited.\n" -"Changes to it will not be kept when saving the current scene." +"Changes to it won't be kept when saving the current scene." msgstr "" "ì´ ë¦¬ì†ŒìŠ¤ëŠ” ì¸ìŠ¤í„´ìŠ¤ ë˜ì—ˆê±°ë‚˜ ìƒì†ëœ ê²ƒì— ì†í•©ë‹ˆë‹¤.\n" "ì´ ë¦¬ì†ŒìŠ¤ì— ëŒ€í•œ ìˆ˜ì •ì€ í˜„ìž¬ ì”¬ì„ ì €ìž¥í•˜ëŠ” 경우 ìœ ì§€ë˜ì§€ 않습니다." @@ -1918,8 +2194,9 @@ msgstr "" "변경한 ë’¤ 다시 ê°€ì ¸ì˜¤ì‹ì‹œì˜¤." #: editor/editor_node.cpp +#, fuzzy msgid "" -"This scene was imported, so changes to it will not be kept.\n" +"This scene was imported, so changes to it won't be kept.\n" "Instancing it or inheriting will allow making changes to it.\n" "Please read the documentation relevant to importing scenes to better " "understand this workflow." @@ -1930,8 +2207,9 @@ msgstr "" "를 확ì¸í•´ì£¼ì‹ì‹œì˜¤." #: editor/editor_node.cpp +#, fuzzy msgid "" -"This is a remote object so changes to it will not be kept.\n" +"This is a remote object, so changes to it won't be kept.\n" "Please read the documentation relevant to debugging to better understand " "this workflow." msgstr "" @@ -1944,33 +2222,6 @@ msgid "There is no defined scene to run." msgstr "실행하기 위해 ì •ì˜ëœ ì”¬ì´ ì—†ìŠµë‹ˆë‹¤." #: editor/editor_node.cpp -msgid "" -"No main scene has ever been defined, select one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" -"ë©”ì¸ ì”¬ì´ ì§€ì •ë˜ì§€ 않았습니다. ì„ íƒí•˜ì‹œê² 습니까?\n" -"ë‚˜ì¤‘ì— \"프로ì 트 ì„¤ì •\"ì˜ 'application' í•목ì—서 ë³€ê²½í• ìˆ˜ 있습니다." - -#: editor/editor_node.cpp -msgid "" -"Selected scene '%s' does not exist, select a valid one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" -"ì„ íƒí•œ '%s' ì”¬ì´ ì¡´ìž¬í•˜ì§€ 않습니다. 다시 ì„ íƒí•˜ì‹œê² 습니까?\n" -"ë‚˜ì¤‘ì— \"프로ì 트 ì„¤ì •\"ì˜ 'application' í•목ì—서 ë³€ê²½í• ìˆ˜ 있습니다." - -#: editor/editor_node.cpp -msgid "" -"Selected scene '%s' is not a scene file, select a valid one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" -"ì„ íƒí•œ '%s' ì”¬ì´ ì”¬ 파ì¼ì´ 아닙니다. 다시 ì„ íƒí•˜ì‹œê² 습니까?\n" -"ë‚˜ì¤‘ì— \"프로ì 트 ì„¤ì •\"ì˜ 'application' í•목ì—서 ë³€ê²½í• ìˆ˜ 있습니다." - -#: editor/editor_node.cpp msgid "Current scene was never saved, please save it prior to running." msgstr "현재 ì”¬ì´ ì €ìž¥ë˜ì§€ 않았습니다. ì‹¤í–‰ì „ì— ì €ìž¥í•´ì£¼ì„¸ìš”." @@ -1978,7 +2229,7 @@ msgstr "현재 ì”¬ì´ ì €ìž¥ë˜ì§€ 않았습니다. ì‹¤í–‰ì „ì— ì €ìž¥í•´ì£¼ì„¸ msgid "Could not start subprocess!" msgstr "서브 프로세스를 ì‹œìž‘í• ìˆ˜ 없습니다!" -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/filesystem_dock.cpp msgid "Open Scene" msgstr "씬 열기" @@ -1987,6 +2238,11 @@ msgid "Open Base Scene" msgstr "기본 씬 열기" #: editor/editor_node.cpp +#, fuzzy +msgid "Quick Open..." +msgstr "ë¹ ë¥¸ 씬 열기..." + +#: editor/editor_node.cpp msgid "Quick Open Scene..." msgstr "ë¹ ë¥¸ 씬 열기..." @@ -2160,6 +2416,33 @@ msgid "Clear Recent Scenes" msgstr "최근 씬 지우기" #: editor/editor_node.cpp +msgid "" +"No main scene has ever been defined, select one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" +"ë©”ì¸ ì”¬ì´ ì§€ì •ë˜ì§€ 않았습니다. ì„ íƒí•˜ì‹œê² 습니까?\n" +"ë‚˜ì¤‘ì— \"프로ì 트 ì„¤ì •\"ì˜ 'application' í•목ì—서 ë³€ê²½í• ìˆ˜ 있습니다." + +#: editor/editor_node.cpp +msgid "" +"Selected scene '%s' does not exist, select a valid one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" +"ì„ íƒí•œ '%s' ì”¬ì´ ì¡´ìž¬í•˜ì§€ 않습니다. 다시 ì„ íƒí•˜ì‹œê² 습니까?\n" +"ë‚˜ì¤‘ì— \"프로ì 트 ì„¤ì •\"ì˜ 'application' í•목ì—서 ë³€ê²½í• ìˆ˜ 있습니다." + +#: editor/editor_node.cpp +msgid "" +"Selected scene '%s' is not a scene file, select a valid one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" +"ì„ íƒí•œ '%s' ì”¬ì´ ì”¬ 파ì¼ì´ 아닙니다. 다시 ì„ íƒí•˜ì‹œê² 습니까?\n" +"ë‚˜ì¤‘ì— \"프로ì 트 ì„¤ì •\"ì˜ 'application' í•목ì—서 ë³€ê²½í• ìˆ˜ 있습니다." + +#: editor/editor_node.cpp msgid "Save Layout" msgstr "ë ˆì´ì•„웃 ì €ìž¥" @@ -2185,6 +2468,19 @@ msgstr "ì´ ì”¬ì„ ì‹¤í–‰" msgid "Close Tab" msgstr "íƒ ë‹«ê¸°" +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +msgid "Close Other Tabs" +msgstr "다른 íƒ ë‹«ê¸°" + +#: editor/editor_node.cpp +msgid "Close Tabs to the Right" +msgstr "" + +#: editor/editor_node.cpp +#, fuzzy +msgid "Close All Tabs" +msgstr "ëª¨ë‘ ë‹«ê¸°" + #: editor/editor_node.cpp msgid "Switch Scene Tab" msgstr "씬 íƒ ì „í™˜" @@ -2307,10 +2603,6 @@ msgstr "프로ì 트" msgid "Project Settings" msgstr "프로ì 트 ì„¤ì •" -#: editor/editor_node.cpp editor/project_export.cpp -msgid "Export" -msgstr "내보내기" - #: editor/editor_node.cpp editor/plugins/tile_set_editor_plugin.cpp msgid "Tools" msgstr "ë„구" @@ -2320,6 +2612,10 @@ msgid "Open Project Data Folder" msgstr "프로ì 트 ë°ì´í„° í´ë” 열기" #: editor/editor_node.cpp +msgid "Install Android Build Template" +msgstr "" + +#: editor/editor_node.cpp msgid "Quit to Project List" msgstr "종료 후 프로ì 트 ëª©ë¡ ì—´ê¸°" @@ -2444,6 +2740,11 @@ msgstr "ì—디터 ë°ì´í„° í´ë” 열기" msgid "Open Editor Settings Folder" msgstr "ì—디터 ì„¤ì • í´ë” 열기" +#: editor/editor_node.cpp +#, fuzzy +msgid "Manage Editor Features" +msgstr "내보내기 템플릿 관리" + #: editor/editor_node.cpp editor/project_export.cpp msgid "Manage Export Templates" msgstr "내보내기 템플릿 관리" @@ -2456,6 +2757,7 @@ msgstr "ë„움ë§" #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp #: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp #: editor/project_settings_editor.cpp editor/rename_dialog.cpp msgid "Search" msgstr "검색" @@ -2545,11 +2847,6 @@ msgstr "변경사í•ë§Œ ì—…ë°ì´íЏ" msgid "Disable Update Spinner" msgstr "ì—…ë°ì´íЏ 스피너 비활성화" -#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp -#: editor/project_manager.cpp -msgid "Import" -msgstr "ê°€ì ¸ì˜¤ê¸°" - #: editor/editor_node.cpp msgid "FileSystem" msgstr "íŒŒì¼ ì‹œìŠ¤í…œ" @@ -2575,6 +2872,28 @@ msgid "Don't Save" msgstr "ì €ìž¥í•˜ì§€ 않ìŒ" #: editor/editor_node.cpp +msgid "Android build template is missing, please install relevant templates." +msgstr "" + +#: editor/editor_node.cpp +#, fuzzy +msgid "Manage Templates" +msgstr "내보내기 템플릿 관리" + +#: editor/editor_node.cpp +msgid "" +"This will install the Android project for custom builds.\n" +"Note that, in order to use it, it needs to be enabled per export preset." +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"Android build template is already installed and it won't be overwritten.\n" +"Remove the \"build\" directory manually before attempting this operation " +"again." +msgstr "" + +#: editor/editor_node.cpp msgid "Import Templates From ZIP File" msgstr "ZIP 파ì¼ë¡œë¶€í„° í…œí”Œë¦¿ì„ ê°€ì ¸ì˜¤ê¸°" @@ -2697,10 +3016,6 @@ msgid "Physics Frame %" msgstr "물리 í”„ë ˆìž„ %" #: editor/editor_profiler.cpp -msgid "Time:" -msgstr "시간:" - -#: editor/editor_profiler.cpp msgid "Inclusive" msgstr "í¬í•¨" @@ -2841,10 +3156,6 @@ msgid "Remove Item" msgstr "ì•„ì´í…œ ì‚ì œ" #: editor/editor_run_native.cpp -msgid "Select device from the list" -msgstr "목ë¡ì—서 기기를 ì„ íƒí•˜ì„¸ìš”" - -#: editor/editor_run_native.cpp msgid "" "No runnable export preset found for this platform.\n" "Please add a runnable preset in the export menu." @@ -2880,6 +3191,10 @@ msgstr "'_run' 메서드를 잊으셨습니까?" msgid "Select Node(s) to Import" msgstr "ê°€ì ¸ì˜¬ 노드들 ì„ íƒ" +#: editor/editor_sub_scene.cpp editor/project_manager.cpp +msgid "Browse" +msgstr "찾아보기" + #: editor/editor_sub_scene.cpp msgid "Scene Path:" msgstr "씬 경로:" @@ -3046,6 +3361,11 @@ msgid "SSL Handshake Error" msgstr "SSL 핸드ì‰ì´í¬ 오류" #: editor/export_template_manager.cpp +#, fuzzy +msgid "Uncompressing Android Build Sources" +msgstr "ì—ì…‹ ì••ì¶•í•´ì œ" + +#: editor/export_template_manager.cpp msgid "Current Version:" msgstr "현재 ë²„ì „:" @@ -3062,7 +3382,8 @@ msgid "Remove Template" msgstr "템플릿 ì‚ì œ" #: editor/export_template_manager.cpp -msgid "Select template file" +#, fuzzy +msgid "Select Template File" msgstr "템플릿 íŒŒì¼ ì„ íƒ" #: editor/export_template_manager.cpp @@ -3119,7 +3440,8 @@ msgid "No name provided." msgstr "ì´ë¦„ì´ ì œê³µë˜ì§€ 않았습니다." #: editor/filesystem_dock.cpp -msgid "Provided name contains invalid characters" +#, fuzzy +msgid "Provided name contains invalid characters." msgstr "ì´ë¦„ì— ìœ íš¨í•˜ì§€ ì•Šì€ ë¬¸ìžê°€ í¬í•¨ë¨" #: editor/filesystem_dock.cpp @@ -3147,19 +3469,27 @@ msgid "Duplicating folder:" msgstr "ë³µì œ ì¤‘ì¸ í´ë”:" #: editor/filesystem_dock.cpp -msgid "Open Scene(s)" -msgstr "씬(들) 열기" +#, fuzzy +msgid "New Inherited Scene" +msgstr "새 ìƒì† 씬..." + +#: editor/filesystem_dock.cpp +#, fuzzy +msgid "Open Scenes" +msgstr "씬 열기" #: editor/filesystem_dock.cpp msgid "Instance" msgstr "ì¸ìŠ¤í„´ìŠ¤" #: editor/filesystem_dock.cpp -msgid "Add to favorites" +#, fuzzy +msgid "Add to Favorites" msgstr "ì¦ê²¨ì°¾ê¸°ë¡œ 추가" #: editor/filesystem_dock.cpp -msgid "Remove from favorites" +#, fuzzy +msgid "Remove from Favorites" msgstr "ì¦ê²¨ì°¾ê¸°ì—서 ì‚ì œ" #: editor/filesystem_dock.cpp @@ -3190,11 +3520,13 @@ msgstr "새 스í¬ë¦½íЏ..." msgid "New Resource..." msgstr "새 리소스..." -#: editor/filesystem_dock.cpp editor/script_editor_debugger.cpp +#: editor/filesystem_dock.cpp editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_editor_debugger.cpp msgid "Expand All" msgstr "ëª¨ë‘ í™•ìž¥" -#: editor/filesystem_dock.cpp editor/script_editor_debugger.cpp +#: editor/filesystem_dock.cpp editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_editor_debugger.cpp msgid "Collapse All" msgstr "ëª¨ë‘ ì ‘ê¸°" @@ -3206,19 +3538,22 @@ msgid "Rename" msgstr "ì´ë¦„ 변경" #: editor/filesystem_dock.cpp -msgid "Previous Directory" -msgstr "ì´ì „ ë””ë ‰í† ë¦¬" +#, fuzzy +msgid "Previous Folder/File" +msgstr "ì´ì „ í´ë”" #: editor/filesystem_dock.cpp -msgid "Next Directory" -msgstr "ë‹¤ìŒ ë””ë ‰í† ë¦¬" +#, fuzzy +msgid "Next Folder/File" +msgstr "ë‹¤ìŒ í´ë”" #: editor/filesystem_dock.cpp msgid "Re-Scan Filesystem" msgstr "íŒŒì¼ ì‹œìŠ¤í…œ 재검사" #: editor/filesystem_dock.cpp -msgid "Toggle split mode" +#, fuzzy +msgid "Toggle Split Mode" msgstr "ë¶„í• ëª¨ë“œ í† ê¸€" #: editor/filesystem_dock.cpp @@ -3249,7 +3584,7 @@ msgstr "ë®ì–´ 쓰기" msgid "Create Script" msgstr "스í¬ë¦½íЏ 만들기" -#: editor/find_in_files.cpp +#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp msgid "Find in Files" msgstr "파ì¼ì—서 찾기" @@ -3265,6 +3600,12 @@ msgstr "í´ë”:" msgid "Filters:" msgstr "í•„í„°:" +#: editor/find_in_files.cpp +msgid "" +"Include the files with the following extensions. Add or remove them in " +"ProjectSettings." +msgstr "" + #: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp msgid "Find..." @@ -3702,7 +4043,8 @@ msgid "Open Animation Node" msgstr "ì• ë‹ˆë©”ì´ì…˜ 노드 열기" #: editor/plugins/animation_blend_space_2d_editor.cpp -msgid "Triangle already exists" +#, fuzzy +msgid "Triangle already exists." msgstr "삼ê°í˜•ì´ ì´ë¯¸ 존재함" #: editor/plugins/animation_blend_space_2d_editor.cpp @@ -3777,7 +4119,6 @@ msgid "Node Moved" msgstr "노드 ì´ë™ë¨" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Unable to connect, port may be in use or connection may be invalid." msgstr "ì—°ê²°í• ìˆ˜ 없습니다, í¬íŠ¸ê°€ 사용 중ì´ê±°ë‚˜ ìœ íš¨í•˜ì§€ 않는 연결입니다." @@ -3847,7 +4188,8 @@ msgid "Edit Filtered Tracks:" msgstr "í•„í„° 트랙 편집:" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -msgid "Enable filtering" +#, fuzzy +msgid "Enable Filtering" msgstr "í•„í„° 활성화" #: editor/plugins/animation_player_editor_plugin.cpp @@ -3962,10 +4304,6 @@ msgid "Animation" msgstr "ì• ë‹ˆë©”ì´ì…˜" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "New" -msgstr "새 파ì¼" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Edit Transitions..." msgstr "ì „í™˜ 편집..." @@ -3982,14 +4320,15 @@ msgid "Autoplay on Load" msgstr "불러올 시 ìžë™ 재ìƒ" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Onion Skinning" -msgstr "어니언 스키ë‹" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Enable Onion Skinning" msgstr "어니언 ìŠ¤í‚¤ë‹ í™œì„±í™”" #: editor/plugins/animation_player_editor_plugin.cpp +#, fuzzy +msgid "Onion Skinning Options" +msgstr "어니언 스키ë‹" + +#: editor/plugins/animation_player_editor_plugin.cpp msgid "Directions" msgstr "ë°©í–¥" @@ -4536,14 +4875,20 @@ msgid "Move CanvasItem" msgstr "CanvasItem ì´ë™" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"Children of containers have their anchors and margins values overridden by " +"their parent." +msgstr "컨테ì´ë„ˆì˜ ìžë…€ëŠ” ë¶€ëª¨ì— ì˜í•´ ê·¸ë“¤ì˜ ì•µì»¤ì™€ 여백 ê°’ì´ ìž¬ì •ì˜ë©ë‹ˆë‹¤." + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Presets for the anchors and margins values of a Control node." msgstr "Control ë…¸ë“œì˜ ì•µì»¤ì™€ 여백 ê°’ì˜ í”„ë¦¬ì…‹." #: editor/plugins/canvas_item_editor_plugin.cpp msgid "" -"Children of containers have their anchors and margins values overridden by " -"their parent." -msgstr "컨테ì´ë„ˆì˜ ìžë…€ëŠ” ë¶€ëª¨ì— ì˜í•´ ê·¸ë“¤ì˜ ì•µì»¤ì™€ 여백 ê°’ì´ ìž¬ì •ì˜ë©ë‹ˆë‹¤." +"When active, moving Control nodes changes their anchors instead of their " +"margins." +msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Anchors only" @@ -4558,10 +4903,52 @@ msgid "Change Anchors" msgstr "앵커 변경" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Lock Selected" +msgstr "ì„ íƒ íˆ´" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Unlock Selected" +msgstr "ì„ íƒ í•목 ì‚ì œ" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Group Selected" +msgstr "ì„ íƒ ë³µì‚¬" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Ungroup Selected" +msgstr "ì„ íƒ ë³µì‚¬" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Paste Pose" msgstr "í¬ì¦ˆ 붙여넣기" #: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Create Custom Bone(s) from Node(s)" +msgstr "노드ì—서 커스텀 본 만들기" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Clear Bones" +msgstr "í¬ì¦ˆ ì •ë¦¬" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Make IK Chain" +msgstr "IK ì²´ì¸ ë§Œë“¤ê¸°" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Clear IK Chain" +msgstr "IK ì²´ì¸ ì§€ìš°ê¸°" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "" "Warning: Children of a container get their position and size determined only " "by their parent." @@ -4635,7 +5022,8 @@ msgid "Snapping Options" msgstr "스냅 옵션" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to grid" +#, fuzzy +msgid "Snap to Grid" msgstr "격ìžì— 스냅" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4656,31 +5044,38 @@ msgid "Use Pixel Snap" msgstr "픽셀 스냅 사용" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Smart snapping" +#, fuzzy +msgid "Smart Snapping" msgstr "스마트 스냅" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to parent" +#, fuzzy +msgid "Snap to Parent" msgstr "ë¶€ëª¨ì— ìŠ¤ëƒ…" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node anchor" +#, fuzzy +msgid "Snap to Node Anchor" msgstr "노드 ì•µì»¤ì— ìŠ¤ëƒ…" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node sides" +#, fuzzy +msgid "Snap to Node Sides" msgstr "노드 ì˜†ì— ìŠ¤ëƒ…" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node center" +#, fuzzy +msgid "Snap to Node Center" msgstr "노드 ì¤‘ì‹¬ì— ìŠ¤ëƒ…" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to other nodes" +#, fuzzy +msgid "Snap to Other Nodes" msgstr "다른 ë…¸ë“œì— ìŠ¤ëƒ…" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to guides" +#, fuzzy +msgid "Snap to Guides" msgstr "ê°€ì´ë“œì— 스냅" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4694,10 +5089,12 @@ msgid "Unlock the selected object (can be moved)." msgstr "ì„ íƒëœ 오브ì 트를 ìž ê¸ˆ í•´ì œí•©ë‹ˆë‹¤ (ì´ë™ê°€ëŠ¥)." #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Makes sure the object's children are not selectable." msgstr "오브ì íŠ¸ì˜ ìžì‹ë…¸ë“œê°€ ì„ íƒë 수 ì—†ë„ë¡ ì„¤ì •í•©ë‹ˆë‹¤." #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Restores the object's children's ability to be selected." msgstr "오브ì íŠ¸ì˜ ìžì‹ë…¸ë“œê°€ ì„ íƒë 수 있ë„ë¡ ë³µì›í•©ë‹ˆë‹¤." @@ -4710,14 +5107,6 @@ msgid "Show Bones" msgstr "뼈대 보기" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Make IK Chain" -msgstr "IK ì²´ì¸ ë§Œë“¤ê¸°" - -#: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Clear IK Chain" -msgstr "IK ì²´ì¸ ì§€ìš°ê¸°" - -#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Make Custom Bone(s) from Node(s)" msgstr "노드ì—서 커스텀 본 만들기" @@ -4768,25 +5157,25 @@ msgid "Frame Selection" msgstr "ì„ íƒ í•목 화면 꽉차게 표시" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Layout" -msgstr "ë ˆì´ì•„웃" +#, fuzzy +msgid "Preview Canvas Scale" +msgstr "ì•„í‹€ë¼ìФ 미리보기" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Translation mask for inserting keys." -msgstr "" +msgstr "키를 삽입하기 위한 ì „í™˜ 마스í¬." #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Rotation mask for inserting keys." -msgstr "" +msgstr "키를 삽입하기 위한 íšŒì „ 마스í¬." #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Scale mask for inserting keys." -msgstr "" +msgstr "키를 삽입하기 위한 규모 마스í¬." #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Insert keys (based on mask)." -msgstr "키 삽입 (Ins 키)" +msgstr "키 삽입 (ë§ˆìŠ¤í¬ ê¸°ì¤€)." #: editor/plugins/canvas_item_editor_plugin.cpp msgid "" @@ -4795,11 +5184,13 @@ msgid "" "Keys are only added to existing tracks, no new tracks will be created.\n" "Keys must be inserted manually for the first time." msgstr "" +"물체가 ì „í™˜ë 때 ìžë™ìœ¼ë¡œ 키를 삽입합니다, íšŒì „ ë˜ëŠ” 규모 (ë§ˆìŠ¤í¬ ê¸°ì¤€).\n" +"키는 기존 트랙ì—ë§Œ 추가ë˜ë©°, 새 íŠ¸ëž™ì´ ë§Œë“¤ì–´ì§€ì§€ 않습니다.\n" +"처ìŒì— 키는 수ë™ìœ¼ë¡œ 삽입하여야 합니다." #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Auto Insert Key" -msgstr "ì• ë‹ˆë©”ì´ì…˜ 키 삽입" +msgstr "ìžë™ 키 삽입" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Insert Key (Existing Tracks)" @@ -4822,6 +5213,11 @@ msgid "Divide grid step by 2" msgstr "ê²©ìž ë‹¨ê³„ë¥¼ 반으로 ê°ì†Œ" #: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Pan View" +msgstr "후면 ë·°" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Add %s" msgstr "%s 추가" @@ -4844,7 +5240,8 @@ msgid "Error instancing scene from %s" msgstr "'%s'ì—서 씬 ì¸ìŠ¤í„´ìŠ¤ 중 오류" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Change default type" +#, fuzzy +msgid "Change Default Type" msgstr "기본 타입 변경" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4932,20 +5329,22 @@ msgid "Create Emission Points From Node" msgstr "노드로부터 ì—미터 í¬ì¸íЏ 만들기" #: editor/plugins/curve_editor_plugin.cpp -msgid "Flat0" +#, fuzzy +msgid "Flat 0" msgstr "플랫0" #: editor/plugins/curve_editor_plugin.cpp -msgid "Flat1" +#, fuzzy +msgid "Flat 1" msgstr "플랫1" -#: editor/plugins/curve_editor_plugin.cpp -msgid "Ease in" -msgstr "완화 in" +#: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp +msgid "Ease In" +msgstr "ê°ì†" -#: editor/plugins/curve_editor_plugin.cpp -msgid "Ease out" -msgstr "완화 out" +#: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp +msgid "Ease Out" +msgstr "ê°€ì†" #: editor/plugins/curve_editor_plugin.cpp msgid "Smoothstep" @@ -4964,23 +5363,28 @@ msgid "Load Curve Preset" msgstr "커브 프리셋 불러오기" #: editor/plugins/curve_editor_plugin.cpp -msgid "Add point" +#, fuzzy +msgid "Add Point" msgstr "í¬ì¸íЏ 추가" #: editor/plugins/curve_editor_plugin.cpp -msgid "Remove point" +#, fuzzy +msgid "Remove Point" msgstr "í¬ì¸íЏ ì‚ì œ" #: editor/plugins/curve_editor_plugin.cpp -msgid "Left linear" +#, fuzzy +msgid "Left Linear" msgstr "왼쪽 ì„ í˜•" #: editor/plugins/curve_editor_plugin.cpp -msgid "Right linear" +#, fuzzy +msgid "Right Linear" msgstr "오른쪽 ì„ í˜•" #: editor/plugins/curve_editor_plugin.cpp -msgid "Load preset" +#, fuzzy +msgid "Load Preset" msgstr "프리셋 불러오기" #: editor/plugins/curve_editor_plugin.cpp @@ -5036,11 +5440,17 @@ msgid "This doesn't work on scene root!" msgstr "씬 루트ì—서는 í• ìˆ˜ 없습니다!" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Trimesh Shape" +#, fuzzy +msgid "Create Trimesh Static Shape" msgstr "Trimesh 모양 만들기" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Shape" +msgid "Failed creating shapes!" +msgstr "" + +#: editor/plugins/mesh_instance_editor_plugin.cpp +#, fuzzy +msgid "Create Convex Shape(s)" msgstr "Convex 모양 만들기" #: editor/plugins/mesh_instance_editor_plugin.cpp @@ -5093,15 +5503,12 @@ msgid "Create Trimesh Static Body" msgstr "Trimesh Static Body 만들기" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Static Body" -msgstr "Convex Static Body 만들기" - -#: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Trimesh Collision Sibling" msgstr "Trimesh ì¶©ëŒ í˜•ì œ 만들기" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Collision Sibling" +#, fuzzy +msgid "Create Convex Collision Sibling(s)" msgstr "Convex ì¶©ëŒ í˜•ì œ 만들기" #: editor/plugins/mesh_instance_editor_plugin.cpp @@ -5255,6 +5662,11 @@ msgid "Create Navigation Polygon" msgstr "내비게ì´ì…˜ í´ë¦¬ê³¤ 만들기" #: editor/plugins/particles_2d_editor_plugin.cpp +#: editor/plugins/particles_editor_plugin.cpp +msgid "Convert to CPUParticles" +msgstr "CPU파티í´ë¡œ 변환" + +#: editor/plugins/particles_2d_editor_plugin.cpp msgid "Generating Visibility Rect" msgstr "가시성 ì§ì‚¬ê°í˜• 만들기" @@ -5268,11 +5680,6 @@ msgstr "ì˜¤ì§ ParticlesMaterial 프로세스 메테리얼 ì•ˆì˜ í¬ì¸íŠ¸ë§Œ ì #: editor/plugins/particles_2d_editor_plugin.cpp #: editor/plugins/particles_editor_plugin.cpp -msgid "Convert to CPUParticles" -msgstr "CPU파티í´ë¡œ 변환" - -#: editor/plugins/particles_2d_editor_plugin.cpp -#: editor/plugins/particles_editor_plugin.cpp msgid "Generation Time (sec):" msgstr "ìƒì„± 시간 (ì´ˆ):" @@ -5410,7 +5817,7 @@ msgstr "커브 닫기" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp editor/plugins/theme_editor_plugin.cpp -#: editor/project_export.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_export.cpp msgid "Options" msgstr "옵션" @@ -5461,7 +5868,8 @@ msgid "Split Segment (in curve)" msgstr "ì„ ë¶„ ë¶„í• (커브)" #: editor/plugins/physical_bone_plugin.cpp -msgid "Move joint" +#, fuzzy +msgid "Move Joint" msgstr "ê´€ì ˆ ì´ë™" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5700,7 +6108,6 @@ msgid "Open in Editor" msgstr "ì—디터ì—서 열기" #: editor/plugins/resource_preloader_editor_plugin.cpp -#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Load Resource" msgstr "리소스 불러오기" @@ -5785,9 +6192,13 @@ msgid "Save Theme As..." msgstr "테마 다른 ì´ë¦„으로 ì €ìž¥..." #: editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "%s Class Reference" -msgstr " í´ëž˜ìФ ë ˆí¼ëŸ°ìФ" +msgstr "%s í´ëž˜ìФ 참조" + +#: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp +msgid "Find Next" +msgstr "ë‹¤ìŒ ì°¾ê¸°" #: editor/plugins/script_editor_plugin.cpp msgid "Toggle alphabetical sorting of the method list." @@ -5870,10 +6281,6 @@ msgstr "문서 닫기" msgid "Close All" msgstr "ëª¨ë‘ ë‹«ê¸°" -#: editor/plugins/script_editor_plugin.cpp -msgid "Close Other Tabs" -msgstr "다른 íƒ ë‹«ê¸°" - #: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp msgid "Run" msgstr "실행" @@ -5882,11 +6289,6 @@ msgstr "실행" msgid "Toggle Scripts Panel" msgstr "스í¬ë¦½íЏ íŒ¨ë„ í† ê¸€" -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/script_text_editor.cpp -msgid "Find Next" -msgstr "ë‹¤ìŒ ì°¾ê¸°" - #: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp msgid "Step Over" msgstr "한 ë‹¨ê³„ì‹ ì½”ë“œ 실행" @@ -5913,7 +6315,8 @@ msgid "Debug with External Editor" msgstr "외부 ì—디터로 디버깅" #: editor/plugins/script_editor_plugin.cpp -msgid "Open Godot online documentation" +#, fuzzy +msgid "Open Godot online documentation." msgstr "Godot 온ë¼ì¸ 문서 열기" #: editor/plugins/script_editor_plugin.cpp @@ -5921,7 +6324,8 @@ msgid "Request Docs" msgstr "문서 ìš”ì²" #: editor/plugins/script_editor_plugin.cpp -msgid "Help improve the Godot documentation by giving feedback" +#, fuzzy +msgid "Help improve the Godot documentation by giving feedback." msgstr "피드백으로 Godot 문서를 ê°œì„ í•˜ëŠ”ë° ë„ì›€ì„ ì£¼ì„¸ìš”" #: editor/plugins/script_editor_plugin.cpp @@ -5949,10 +6353,12 @@ msgstr "" "ì–´ë–¤ ìž‘ì—…ì„ ìˆ˜í–‰í•˜ì‹œê² ìŠµë‹ˆê¹Œ?:" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp msgid "Reload" msgstr "다시 불러오기" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp msgid "Resave" msgstr "다시 ì €ìž¥" @@ -5965,6 +6371,31 @@ msgid "Search Results" msgstr "검색 ê²°ê³¼" #: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Connections to method:" +msgstr "ì—°ê²°í• ë…¸ë“œ:" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Source" +msgstr "소스:" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Signal" +msgstr "시그ë„" + +#: editor/plugins/script_text_editor.cpp +msgid "Target" +msgstr "대ìƒ" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "" +"Missing connected method '%s' for signal '%s' from node '%s' to node '%s'." +msgstr "노드 '%s'ì˜ '%s' ìž…ë ¥ì— ì•„ë¬´ê²ƒë„ ì—°ê²°ë˜ì§€ 않ìŒ." + +#: editor/plugins/script_text_editor.cpp msgid "Line" msgstr "ë¼ì¸" @@ -5976,10 +6407,6 @@ msgstr "(무시함)" msgid "Go to Function" msgstr "함수로 ì´ë™" -#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp -msgid "Standard" -msgstr "표준" - #: editor/plugins/script_text_editor.cpp msgid "Only resources from filesystem can be dropped." msgstr "íŒŒì¼ ì‹œìŠ¤í…œì—서 ê°€ì ¸ì˜¨ 리소스만 드ëží• 수 있습니다." @@ -6012,6 +6439,11 @@ msgstr "대문ìžë¡œ 시작" msgid "Syntax Highlighter" msgstr "구문 ê°•ì¡°" +#: editor/plugins/script_text_editor.cpp +#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp +msgid "Bookmarks" +msgstr "" + #: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" @@ -6039,6 +6471,26 @@ msgid "Toggle Comment" msgstr "ì£¼ì„ í† ê¸€" #: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Toggle Bookmark" +msgstr "ìžìœ 시ì í† ê¸€" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Go to Next Bookmark" +msgstr "ë‹¤ìŒ ì¤‘ë‹¨ì 으로 ì´ë™" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Go to Previous Bookmark" +msgstr "ì´ì „ 중단ì 으로 ì´ë™" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Remove All Bookmarks" +msgstr "ëª¨ë“ í•목 ì‚ì œ" + +#: editor/plugins/script_text_editor.cpp msgid "Fold/Unfold Line" msgstr "ë¼ì¸ 펼치기/ì ‘ê¸°" @@ -6112,6 +6564,15 @@ msgid "Contextual Help" msgstr "ë„ì›€ë§ ë³´ê¸°" #: editor/plugins/shader_editor_plugin.cpp +#, fuzzy +msgid "" +"This shader has been modified on on disk.\n" +"What action should be taken?" +msgstr "" +"다ìŒì˜ 파ì¼ë“¤ì´ 디스í¬ìƒ ë” ìµœì‹ ìž…ë‹ˆë‹¤.\n" +"ì–´ë–¤ ìž‘ì—…ì„ ìˆ˜í–‰í•˜ì‹œê² ìŠµë‹ˆê¹Œ?:" + +#: editor/plugins/shader_editor_plugin.cpp msgid "Shader" msgstr "ì…°ì´ë”" @@ -6420,7 +6881,7 @@ msgstr "í¬ê¸° ì¡°ì ˆ 모드 (R)" #: editor/plugins/spatial_editor_plugin.cpp msgid "Local Coords" -msgstr "로컬 좌표" +msgstr "ì§€ì— ì¢Œí‘œ" #: editor/plugins/spatial_editor_plugin.cpp msgid "Local Space Mode (%s)" @@ -6455,7 +6916,8 @@ msgid "Right View" msgstr "우측 ë·°" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Switch Perspective/Orthogonal view" +#, fuzzy +msgid "Switch Perspective/Orthogonal View" msgstr "ì›ê·¼/ì§êµ ë·° ì „í™˜" #: editor/plugins/spatial_editor_plugin.cpp @@ -6495,11 +6957,13 @@ msgid "Toggle Freelook" msgstr "ìžìœ 시ì í† ê¸€" #: editor/plugins/spatial_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Transform" msgstr "변형" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Snap object to floor" +#, fuzzy +msgid "Snap Object to Floor" msgstr "물체를 ë°”ë‹¥ì— ìŠ¤ëƒ…" #: editor/plugins/spatial_editor_plugin.cpp @@ -6612,24 +7076,20 @@ msgid "Nameless gizmo" msgstr "ì´ë¦„없는 오브ì íŠ¸ì˜ ì¤‘ì‹¬ì " #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy msgid "Create Mesh2D" -msgstr "2D 메시 만들기" +msgstr "Mesh2D 만들기" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy msgid "Create Polygon2D" -msgstr "í´ë¦¬ê³¤3D 만들기" +msgstr "Polygon2D 만들기" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy msgid "Create CollisionPolygon2D" -msgstr "내비게ì´ì…˜ ì¶©ëŒ í´ë¦¬ê³¤ 만들기" +msgstr "CollisionPolygon2D 만들기" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy msgid "Create LightOccluder2D" -msgstr "Occluder í´ë¦¬ê³¤ 만들기" +msgstr "LightOccluder2D 만들기" #: editor/plugins/sprite_editor_plugin.cpp msgid "Sprite is empty!" @@ -6641,46 +7101,39 @@ msgstr "스프ë¼ì´íŠ¸ê°€ ì• ë‹ˆë©”ì´ì…˜ í”„ë ˆìž„ì„ ì‚¬ìš©í•´ì„œ 메시로 ì #: editor/plugins/sprite_editor_plugin.cpp msgid "Invalid geometry, can't replace by mesh." -msgstr "ìœ íš¨í•˜ì§€ ì•Šì€ í˜•ìƒ, 메시로 ëŒ€ì²´í• ìˆ˜ 없습니다." +msgstr "ìž˜ëª»ëœ í˜•íƒœ, 메시로 ëŒ€ì²´í• ìˆ˜ 없습니다." #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy -msgid "Invalid geometry, can't create polygon." -msgstr "ìœ íš¨í•˜ì§€ ì•Šì€ í˜•ìƒ, 메시로 ëŒ€ì²´í• ìˆ˜ 없습니다." +msgid "Convert to Mesh2D" +msgstr "Mesh2D로 ì „í™˜" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy -msgid "Invalid geometry, can't create collision polygon." -msgstr "ìœ íš¨í•˜ì§€ ì•Šì€ í˜•ìƒ, 메시로 ëŒ€ì²´í• ìˆ˜ 없습니다." +msgid "Invalid geometry, can't create polygon." +msgstr "ìž˜ëª»ëœ í˜•íƒœ, í´ë¦¬ê³¤ì„ 만들 수 없습니다." #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy -msgid "Invalid geometry, can't create light occluder." -msgstr "ìœ íš¨í•˜ì§€ ì•Šì€ í˜•ìƒ, 메시로 ëŒ€ì²´í• ìˆ˜ 없습니다." +msgid "Convert to Polygon2D" +msgstr "Polygon2D로 ì „í™˜" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Sprite" -msgstr "스프ë¼ì´íЏ" +msgid "Invalid geometry, can't create collision polygon." +msgstr "ìž˜ëª»ëœ í˜•íƒœ, ì¶©ëŒ í´ë¦¬ê³¤ì„ 만들 수 없습니다." #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy -msgid "Convert to Mesh2D" -msgstr "2D 메시로 ì „í™˜" +msgid "Create CollisionPolygon2D Sibling" +msgstr "CollisionPolygon2D 노드 만들기" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy -msgid "Convert to Polygon2D" -msgstr "í´ë¦¬ê³¤ ì´ë™" +msgid "Invalid geometry, can't create light occluder." +msgstr "ìž˜ëª»ëœ í˜•íƒœ, 조명 ì–´í´ë£¨ë”를 만들 수 없습니다." #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy -msgid "Create CollisionPolygon2D Sibling" -msgstr "내비게ì´ì…˜ ì¶©ëŒ í´ë¦¬ê³¤ 만들기" +msgid "Create LightOccluder2D Sibling" +msgstr "LightOccluder2D 노드 만들기" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy -msgid "Create LightOccluder2D Sibling" -msgstr "Occluder í´ë¦¬ê³¤ 만들기" +msgid "Sprite" +msgstr "스프ë¼ì´íЏ" #: editor/plugins/sprite_editor_plugin.cpp msgid "Simplification: " @@ -6699,14 +7152,24 @@ msgid "Settings:" msgstr "ì„¤ì •:" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "ERROR: Couldn't load frame resource!" -msgstr "오류: í”„ë ˆìž„ 리소스를 불러올 수 없습니다!" +#, fuzzy +msgid "No Frames Selected" +msgstr "ì„ íƒ í•목 화면 꽉차게 표시" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Add %d Frame(s)" +msgstr "í”„ë ˆìž„ 추가" #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Add Frame" msgstr "í”„ë ˆìž„ 추가" #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "ERROR: Couldn't load frame resource!" +msgstr "오류: í”„ë ˆìž„ 리소스를 불러올 수 없습니다!" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Resource clipboard is empty or not a texture!" msgstr "리소스 í´ë¦½ë³´ë“œê°€ 비었거나 í…스ì³ê°€ 아닙니다!" @@ -6747,6 +7210,15 @@ msgid "Animation Frames:" msgstr "ì• ë‹ˆë©”ì´ì…˜ í”„ë ˆìž„:" #: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Add a Texture from File" +msgstr "TileSetì— í…ìŠ¤ì³ ì¶”ê°€í•˜ê¸°." + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Add Frames from a Sprite Sheet" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Insert Empty (Before)" msgstr "빈 í”„ë ˆìž„ 삽입 (ì´ì „)" @@ -6763,6 +7235,31 @@ msgid "Move (After)" msgstr "ì´ë™ (ì´í›„)" #: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Select Frames" +msgstr "ìŠ¤íƒ í”„ë ˆìž„" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Horizontal:" +msgstr "가로로 뒤집기" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Vertical:" +msgstr "버틱스" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Select/Clear All Frames" +msgstr "ì „ì²´ì„ íƒ" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Create Frames from Sprite Sheet" +msgstr "씬으로부터 만들기" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "SpriteFrames" msgstr "스프ë¼ì´íЏ í”„ë ˆìž„" @@ -6827,12 +7324,13 @@ msgstr "ëª¨ë‘ ì¶”ê°€" msgid "Remove All Items" msgstr "ëª¨ë“ í•목 ì‚ì œ" -#: editor/plugins/theme_editor_plugin.cpp +#: editor/plugins/theme_editor_plugin.cpp editor/project_manager.cpp msgid "Remove All" msgstr "ëª¨ë‘ ì‚ì œ" #: editor/plugins/theme_editor_plugin.cpp -msgid "Edit theme..." +#, fuzzy +msgid "Edit Theme" msgstr "테마 편집..." #: editor/plugins/theme_editor_plugin.cpp @@ -6860,18 +7358,25 @@ msgid "Create From Current Editor Theme" msgstr "현재 ì—디터 테마로부터 만들기" #: editor/plugins/theme_editor_plugin.cpp -msgid "CheckBox Radio1" -msgstr "ì²´í¬ë°•스 ë¼ë””오1" +#, fuzzy +msgid "Toggle Button" +msgstr "마우스 버튼" #: editor/plugins/theme_editor_plugin.cpp -msgid "CheckBox Radio2" -msgstr "ì²´í¬ë°•스 ë¼ë””오2" +#, fuzzy +msgid "Disabled Button" +msgstr "ê°€ìš´ë° ë²„íŠ¼" #: editor/plugins/theme_editor_plugin.cpp msgid "Item" msgstr "í•목" #: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Disabled Item" +msgstr "비활성화ë¨" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Check Item" msgstr "í•목 확ì¸" @@ -6888,6 +7393,24 @@ msgid "Checked Radio Item" msgstr "ë¼ë””오 í•목 확ì¸ë¨" #: editor/plugins/theme_editor_plugin.cpp +msgid "Named Sep." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Submenu" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Item 1" +msgstr "í•목" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Item 2" +msgstr "í•목" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Has" msgstr "가진다" @@ -6896,8 +7419,9 @@ msgid "Many" msgstr "ë§Žì€" #: editor/plugins/theme_editor_plugin.cpp -msgid "Has,Many,Options" -msgstr "ë§Žì€,옵션,갖춤" +#, fuzzy +msgid "Disabled LineEdit" +msgstr "비활성화ë¨" #: editor/plugins/theme_editor_plugin.cpp msgid "Tab 1" @@ -6912,6 +7436,19 @@ msgid "Tab 3" msgstr "íƒ 3" #: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Editable Item" +msgstr "ìžì‹ë…¸ë“œ 편집 가능" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Subtree" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Has,Many,Options" +msgstr "ë§Žì€,옵션,갖춤" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Data Type:" msgstr "ë°ì´í„° 타입:" @@ -6944,6 +7481,7 @@ msgid "Fix Invalid Tiles" msgstr "ìž˜ëª»ëœ íƒ€ì¼ ìˆ˜ì •" #: editor/plugins/tile_map_editor_plugin.cpp +#: modules/gridmap/grid_map_editor_plugin.cpp msgid "Cut Selection" msgstr "ì„ íƒ ìž˜ë¼ë‚´ê¸°" @@ -6984,35 +7522,52 @@ msgid "Mirror Y" msgstr "Yì¶• 뒤집기" #: editor/plugins/tile_map_editor_plugin.cpp +#, fuzzy +msgid "Disable Autotile" +msgstr "ìžë™ 타ì¼" + +#: editor/plugins/tile_map_editor_plugin.cpp +#, fuzzy +msgid "Enable Priority" +msgstr "í•„í„° ìš°ì„ ìˆœìœ„ 편집" + +#: editor/plugins/tile_map_editor_plugin.cpp msgid "Paint Tile" msgstr "íƒ€ì¼ ì¹ í•˜ê¸°" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Pick Tile" -msgstr "íƒ€ì¼ ì„ íƒ" +msgid "" +"Shift+RMB: Line Draw\n" +"Shift+Ctrl+RMB: Rectangle Paint" +msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Copy Selection" -msgstr "ì„ íƒ ë³µì‚¬" +msgid "Pick Tile" +msgstr "íƒ€ì¼ ì„ íƒ" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Rotate left" +#, fuzzy +msgid "Rotate Left" msgstr "왼쪽으로 íšŒì „" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Rotate right" +#, fuzzy +msgid "Rotate Right" msgstr "오른쪽으로 íšŒì „" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Flip horizontally" +#, fuzzy +msgid "Flip Horizontally" msgstr "가로로 뒤집기" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Flip vertically" +#, fuzzy +msgid "Flip Vertically" msgstr "세로로 뒤집기" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Clear transform" +#, fuzzy +msgid "Clear Transform" msgstr "변형 지우기" #: editor/plugins/tile_set_editor_plugin.cpp @@ -7048,6 +7603,46 @@ msgid "Select the previous shape, subtile, or Tile." msgstr "ì´ì „ 모양, 하위 타ì¼, í˜¹ì€ íƒ€ì¼ì„ ì„ íƒí•˜ì„¸ìš”." #: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Region Mode" +msgstr "실행 모드:" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Collision Mode" +msgstr "ë³´ê°„ 모드" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Occlusion Mode" +msgstr "ì–´í´ë£¨ì „ í´ë¦¬ê³¤ 편집" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Navigation Mode" +msgstr "내비게ì´ì…˜ 메시 만들기" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Bitmask Mode" +msgstr "íšŒì „ 모드" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Priority Mode" +msgstr "내보내기 모드:" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Icon Mode" +msgstr "팬 모드" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Z Index Mode" +msgstr "팬 모드" + +#: editor/plugins/tile_set_editor_plugin.cpp msgid "Copy bitmask." msgstr "비트 ë§ˆìŠ¤í¬ ë³µì‚¬í•˜ê¸°." @@ -7130,9 +7725,11 @@ msgid "Delete polygon." msgstr "í´ë¦¬ê³¤ ì‚ì œí•˜ê¸°." #: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy msgid "" "LMB: Set bit on.\n" "RMB: Set bit off.\n" +"Shift+LMB: Set wildcard bit.\n" "Click on another Tile to edit it." msgstr "" "좌í´ë¦: 비트 켜기를 ì„¤ì •í•¨.\n" @@ -7250,6 +7847,79 @@ msgid "TileSet" msgstr "타ì¼ì…‹" #: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Add input +" +msgstr "ìž…ë ¥ 추가" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Add output +" +msgstr "ìž…ë ¥ 추가" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar" +msgstr "í¬ê¸°:" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector" +msgstr "ì¸ìŠ¤íŽ™í„°" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Add input port" +msgstr "ìž…ë ¥ 추가" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add output port" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change input port type" +msgstr "기본 타입 변경" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change output port type" +msgstr "기본 타입 변경" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change input port name" +msgstr "ìž…ë ¥ ì´ë¦„ 변경" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change output port name" +msgstr "ìž…ë ¥ ì´ë¦„ 변경" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Remove input port" +msgstr "í¬ì¸íЏ ì‚ì œ" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Remove output port" +msgstr "í¬ì¸íЏ ì‚ì œ" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Set expression" +msgstr "í‘œí˜„ì‹ ë³€ê²½" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Resize VisualShader node" +msgstr "비주얼 ì…°ì´ë”" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Set Uniform Name" msgstr "í†µì¼ ì´ë¦„ ì„¤ì •" @@ -7266,7 +7936,6 @@ msgid "Duplicate Nodes" msgstr "노드 ë³µì œ" #: editor/plugins/visual_shader_editor_plugin.cpp -#, fuzzy msgid "Delete Nodes" msgstr "노드 ì‚ì œ" @@ -7287,6 +7956,859 @@ msgid "Light" msgstr "ë¹›" #: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Create Shader Node" +msgstr "노드 만들기" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Color function." +msgstr "함수로 ì´ë™" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Color operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Grayscale function." +msgstr "함수 만들기" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts HSV vector to RGB equivalent." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts RGB vector to HSV equivalent." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Sepia function." +msgstr "함수명 변경" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Burn operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Darken operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Difference operator." +msgstr "변경사í•ë§Œ" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Dodge operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "HardLight operator" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Lighten operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Overlay operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Screen operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "SoftLight operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Color constant." +msgstr "ë¹„ì„ í˜•" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Color uniform." +msgstr "변형 지우기" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns an associated vector if the provided scalars are equal, greater or " +"less." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns an associated vector if the provided boolean value is true or false." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Boolean constant." +msgstr "Vec ìƒìˆ˜ 변경" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'camera' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'inv_camera' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'inv_projection' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'normal' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'projection' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'time' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'viewport_size' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'world' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'texture_pixel_size' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Input parameter." +msgstr "ë¶€ëª¨ì— ìŠ¤ëƒ…" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'binormal' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'fragcoord' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_coord' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_uv' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'side' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'tangent' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv2' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'vertex' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'view' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'albedo' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'attenuation' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'diffuse' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_color' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'roughness' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'specular' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'transmission' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'modelview' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_size' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'tangent' input parameter for vertex and fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_pass' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_coord' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_pixel_size' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_uv' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_alpha' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_height' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_uv' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_vec' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'normal' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'shadow_color' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'extra' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'projection' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'vertex' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'world' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'active' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'custom' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'custom_alpha' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'delta' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'emission_transform' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'index' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'lifetime' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'restart' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'time' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'transform' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'velocity' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar function." +msgstr "Scalar 함수 변경" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar operator." +msgstr "Scalar ì—°ì‚°ìž ë³€ê²½" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "E constant (2.718282). Represents the base of the natural logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Epsilon constant (0.00001). Smallest possible scalar number." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Phi constant (1.618034). Golden ratio." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi/4 constant (0.785398) or 45 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi/2 constant (1.570796) or 90 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi constant (3.141593) or 180 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Tau constant (6.283185) or 360 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Sqrt2 constant (1.414214). Square root of 2." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the absolute value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-tangent of the parameters." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Finds the nearest integer that is greater than or equal to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Constrains a value to lie between two further values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts a quantity in radians to degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-e Exponential." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-2 Exponential." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Finds the nearest integer less than or equal to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Computes the fractional part of the argument." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the inverse of the square root of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Natural logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-2 logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the greater of two values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the lesser of two values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Linear interpolation between two scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the opposite value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 - scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns the value of the first parameter raised to the power of the second." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts a quantity in degrees to radians." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 / scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the nearest integer to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the nearest even integer to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Clamps the value between 0.0 and 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Extracts the sign of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the square root of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( scalar(edge0), scalar(edge1), scalar(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if x is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( scalar(edge), scalar(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the truncated value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Adds scalar to scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Divides scalar by scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies scalar by scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the remainder of the two scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Subtracts scalar from scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar constant." +msgstr "Scalar ìƒìˆ˜ 변경" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar uniform." +msgstr "Scalar uniform 변경" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Perform the cubic texture lookup." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Perform the texture lookup." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Cubic texture uniform." +msgstr "í…ìŠ¤ì³ uniform 변경" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "2D texture uniform." +msgstr "í…ìŠ¤ì³ uniform 변경" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Transform function." +msgstr "변형 대화 ìƒìž..." + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) Calculate the outer product of a pair of vectors.\n" +"\n" +"OuterProduct treats the first parameter 'c' as a column vector (matrix with " +"one column) and the second parameter 'r' as a row vector (matrix with one " +"row) and does a linear algebraic matrix multiply 'c * r', yielding a matrix " +"whose number of rows is the number of components in 'c' and whose number of " +"columns is the number of components in 'r'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Composes transform from four vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Decomposes transform to four vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the determinant of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the inverse of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the transpose of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies transform by transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies vector by transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Transform constant." +msgstr "변형 중단." + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Transform uniform." +msgstr "변형 중단." + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector function." +msgstr "í•¨ìˆ˜ì— ë°°ì¹˜í•¨." + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector operator." +msgstr "Vec ì—°ì‚°ìž ë³€ê²½" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Composes vector from three scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Decomposes vector to three scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the cross product of two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the distance between two points." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the dot product of two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns a vector that points in the same direction as a reference vector. " +"The function has three vector parameters : N, the vector to orient, I, the " +"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 "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the length of a vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Linear interpolation between two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the normalize product of vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 - vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 / vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns a vector that points in the direction of reflection ( a : incident " +"vector, b : normal vector )." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns a vector that points in the direction of refraction." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( vector(edge0), vector(edge1), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if 'x' is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( scalar(edge0), scalar(edge1), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if 'x' is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( vector(edge), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( scalar(edge), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Adds vector to vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Divides vector by vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies vector by vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the remainder of the two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Subtracts vector from vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector constant." +msgstr "Vec ìƒìˆ˜ 변경" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector uniform." +msgstr "ê· ì¼í•˜ê²Œ 배치함." + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Custom Godot Shader Language expression, with custom amount of input and " +"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 "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns falloff based on the dot product of surface normal and view " +"direction of camera (pass associated inputs to it)." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) (Fragment/Light mode only) Scalar derivative function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) (Fragment/Light mode only) Vector derivative function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Derivative in 'x' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Derivative in 'x' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Derivative in 'y' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Derivative in 'y' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Sum of absolute derivative " +"in 'x' and 'y'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Sum of absolute derivative " +"in 'x' and 'y'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "VisualShader" msgstr "비주얼 ì…°ì´ë”" @@ -7479,6 +9001,10 @@ msgid "Directory already contains a Godot project." msgstr "ë””ë ‰í† ë¦¬ì— Godot 프로ì 트가 ì´ë¯¸ 있습니다." #: editor/project_manager.cpp +msgid "New Game Project" +msgstr "새 게임 프로ì 트" + +#: editor/project_manager.cpp msgid "Imported Project" msgstr "ê°€ì ¸ì˜¨ 프로ì 트" @@ -7527,10 +9053,6 @@ msgid "Rename Project" msgstr "프로ì 트 ì´ë¦„ 변경" #: editor/project_manager.cpp -msgid "New Game Project" -msgstr "새 게임 프로ì 트" - -#: editor/project_manager.cpp msgid "Import Existing Project" msgstr "기존 프로ì 트 ê°€ì ¸ì˜¤ê¸°" @@ -7559,10 +9081,6 @@ msgid "Project Name:" msgstr "프로ì 트 명:" #: editor/project_manager.cpp -msgid "Create folder" -msgstr "í´ë” 만들기" - -#: editor/project_manager.cpp msgid "Project Path:" msgstr "프로ì 트 경로:" @@ -7571,10 +9089,6 @@ msgid "Project Installation Path:" msgstr "프로ì 트 설치 경로:" #: editor/project_manager.cpp -msgid "Browse" -msgstr "찾아보기" - -#: editor/project_manager.cpp msgid "Renderer:" msgstr "ë Œë”러:" @@ -7627,6 +9141,7 @@ msgid "Are you sure to open more than one project?" msgstr "ë‘ê°œ ì´ìƒì˜ 프로ì 트를 ì—´ë ¤ëŠ” ê²ƒì´ í™•ì‹¤í•©ë‹ˆê¹Œ?" #: editor/project_manager.cpp +#, fuzzy msgid "" "The following project settings file does not specify the version of Godot " "through which it was created.\n" @@ -7635,8 +9150,8 @@ msgid "" "\n" "If you proceed with opening it, it will be converted to Godot's current " "configuration file format.\n" -"Warning: You will not be able to open the project with previous versions of " -"the engine anymore." +"Warning: You won't be able to open the project with previous versions of the " +"engine anymore." msgstr "" "ë‹¤ìŒ í”„ë¡œì 트 ì„¤ì • 파ì¼ì€ ì´ ë²„ì „ì˜ Godot로 ìƒì„±ë˜ì§€ 않았습니다.\n" "↵\n" @@ -7646,6 +9161,7 @@ msgstr "" "ê²½ê³ : ì´ì „ ë²„ì „ì˜ ì—”ì§„ìœ¼ë¡œ ë” ì´ìƒ ì—´ 수 없게 ë 것입니다." #: editor/project_manager.cpp +#, fuzzy msgid "" "The following project settings file was generated by an older engine " "version, and needs to be converted for this version:\n" @@ -7653,8 +9169,8 @@ msgid "" "%s\n" "\n" "Do you want to convert it?\n" -"Warning: You will not be able to open the project with previous versions of " -"the engine anymore." +"Warning: You won't be able to open the project with previous versions of the " +"engine anymore." msgstr "" "다ìŒì˜ 프로ì 트 ì„¤ì • 파ì¼ì€ ì´ì „ ë²„ì „ì—서 ìƒì„±ëœ 것으로, ë‹¤ìŒ ë²„ì „ì— ë§žê²Œ ë³€" "환해야 합니다:\n" @@ -7673,9 +9189,10 @@ msgstr "" "ì§€ 않습니다." #: editor/project_manager.cpp +#, fuzzy msgid "" "Can't run project: no main scene defined.\n" -"Please edit the project and set the main scene in \"Project Settings\" under " +"Please edit the project and set the main scene in the Project Settings under " "the \"Application\" category." msgstr "" "프로ì 트를 ì‹¤í–‰í• ìˆ˜ 없습니다: ë©”ì¸ ì”¬ì´ ì§€ì •ë˜ì§€ 않았습니다.\n" @@ -7691,26 +9208,48 @@ msgstr "" "프로ì 트를 편집하여 최초 ê°€ì ¸ì˜¤ê¸°ê°€ 실행ë˜ë„ë¡ í•˜ì„¸ìš”." #: editor/project_manager.cpp -msgid "Are you sure to run more than one project?" +#, fuzzy +msgid "Are you sure to run %d projects at once?" msgstr "ë‘ ê°œ ì´ìƒì˜ 프로ì 트를 ì‹¤í–‰í•˜ë ¤ëŠ” ê²ƒì´ í™•ì‹¤í•©ë‹ˆê¹Œ?" #: editor/project_manager.cpp -msgid "Remove project from the list? (Folder contents will not be modified)" +#, fuzzy +msgid "" +"Remove %d projects from the list?\n" +"The project folders' contents won't be modified." msgstr "" "목ë¡ì—서 프로ì 트를 ì‚ì œí•˜ì‹œê² ìŠµë‹ˆê¹Œ? (í´ë”ì˜ ë‚´ìš©ë¬¼ì€ ì‚¬ë¼ì§€ì§€ 않습니다)" #: editor/project_manager.cpp +#, fuzzy +msgid "" +"Remove this project from the list?\n" +"The project folder's contents won't be modified." +msgstr "" +"목ë¡ì—서 프로ì 트를 ì‚ì œí•˜ì‹œê² ìŠµë‹ˆê¹Œ? (í´ë”ì˜ ë‚´ìš©ë¬¼ì€ ì‚¬ë¼ì§€ì§€ 않습니다)" + +#: editor/project_manager.cpp +#, fuzzy +msgid "" +"Remove all missing projects from the list? (Folders contents will not be " +"modified)" +msgstr "" +"목ë¡ì—서 프로ì 트를 ì‚ì œí•˜ì‹œê² ìŠµë‹ˆê¹Œ? (í´ë”ì˜ ë‚´ìš©ë¬¼ì€ ì‚¬ë¼ì§€ì§€ 않습니다)" + +#: editor/project_manager.cpp +#, fuzzy msgid "" "Language changed.\n" -"The UI will update next time the editor or project manager starts." +"The interface will update after restarting the editor or project manager." msgstr "" "언어가 변경ë˜ì—ˆìŠµë‹ˆë‹¤.\n" "UI는 ì—디터나 프로ì 트 ë§¤ë‹ˆì €ê°€ ë‹¤ìŒ ë²ˆì— ì‹¤í–‰ë 때 ì—…ë°ì´íЏ ë©ë‹ˆë‹¤." #: editor/project_manager.cpp +#, fuzzy msgid "" -"You are about the scan %s folders for existing Godot projects. Do you " -"confirm?" +"Are you sure to scan %s folders for existing Godot projects?\n" +"This could take a while." msgstr "%sì—서 기존 Godot 프로ì íŠ¸ë“¤ì„ ìŠ¤ìº”í•˜ë ¤ê³ í•©ë‹ˆë‹¤. ì§„í–‰í•˜ì‹œê² ìŠµë‹ˆê¹Œ?" #: editor/project_manager.cpp @@ -7734,6 +9273,11 @@ msgid "New Project" msgstr "새 프로ì 트" #: editor/project_manager.cpp +#, fuzzy +msgid "Remove Missing" +msgstr "í¬ì¸íЏ ì‚ì œ" + +#: editor/project_manager.cpp msgid "Templates" msgstr "템플릿" @@ -7750,9 +9294,10 @@ msgid "Can't run project" msgstr "프로ì 트를 ì‹¤í–‰í• ìˆ˜ ì—†ìŒ" #: editor/project_manager.cpp +#, fuzzy msgid "" -"You don't currently have any projects.\n" -"Would you like to explore the official example projects in the Asset Library?" +"You currently don't have any projects.\n" +"Would you like to explore official example projects in the Asset Library?" msgstr "" "프로ì 트가 현재 í•˜ë‚˜ë„ ì—†ìŠµë‹ˆë‹¤.\n" "ì—ì…‹ ë¼ì´ë¸ŒëŸ¬ë¦¬ì—서 ê³µì‹ ì˜ˆì œ 프로ì 트를 ì°¾ì•„ë³´ì‹œê² ìŠµë‹ˆê¹Œ?" @@ -7782,7 +9327,8 @@ msgstr "" "안 ë©ë‹ˆë‹¤" #: editor/project_settings_editor.cpp -msgid "Action '%s' already exists!" +#, fuzzy +msgid "An action with the name '%s' already exists." msgstr "ì•¡ì…˜ '%s'ì´(ê°€) ì´ë¯¸ 존재합니다!" #: editor/project_settings_editor.cpp @@ -7938,10 +9484,6 @@ msgstr "" "ë˜ë©´ 안 ë©ë‹ˆë‹¤." #: editor/project_settings_editor.cpp -msgid "Already existing" -msgstr "ì´ë¯¸ 존재함" - -#: editor/project_settings_editor.cpp msgid "Add Input Action" msgstr "ìž…ë ¥ ì•¡ì…˜ 추가" @@ -8006,7 +9548,8 @@ msgid "Override For..." msgstr "ìž¬ì •ì˜..." #: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp -msgid "Editor must be restarted for changes to take effect" +#, fuzzy +msgid "The editor must be restarted for changes to take effect." msgstr "변경 사í•ì„ ì ìš©í•˜ë ¤ë©´ ì—디터를 다시 실행해야 합니다" #: editor/project_settings_editor.cpp @@ -8066,11 +9609,13 @@ msgid "Locales Filter" msgstr "ë¡œì¼€ì¼ í•„í„°" #: editor/project_settings_editor.cpp -msgid "Show all locales" +#, fuzzy +msgid "Show All Locales" msgstr "ëª¨ë“ ë¡œì¼€ì¼ ë³´ê¸°" #: editor/project_settings_editor.cpp -msgid "Show only selected locales" +#, fuzzy +msgid "Show Selected Locales Only" msgstr "ì„ íƒí•œ 로케ì¼ë§Œ 표시" #: editor/project_settings_editor.cpp @@ -8086,14 +9631,6 @@ msgid "AutoLoad" msgstr "ì˜¤í† ë¡œë“œ" #: editor/property_editor.cpp -msgid "Ease In" -msgstr "ê°ì†" - -#: editor/property_editor.cpp -msgid "Ease Out" -msgstr "ê°€ì†" - -#: editor/property_editor.cpp msgid "Zero" msgstr "등ì†" @@ -8166,7 +9703,8 @@ msgid "Suffix" msgstr "ì ‘ë¯¸ì‚¬" #: editor/rename_dialog.cpp -msgid "Advanced options" +#, fuzzy +msgid "Advanced Options" msgstr "ê³ ê¸‰ 옵션" #: editor/rename_dialog.cpp @@ -8427,8 +9965,9 @@ msgid "User Interface" msgstr "ì‚¬ìš©ìž ì¸í„°íŽ˜ì´ìФ" #: editor/scene_tree_dock.cpp -msgid "Custom Node" -msgstr "커스텀 노드" +#, fuzzy +msgid "Other Node" +msgstr "노드 ì‚ì œ" #: editor/scene_tree_dock.cpp msgid "Can't operate on nodes from a foreign scene!" @@ -8470,7 +10009,8 @@ msgid "Clear Inheritance" msgstr "ìƒì† 지우기" #: editor/scene_tree_dock.cpp -msgid "Open documentation" +#, fuzzy +msgid "Open Documentation" msgstr "문서 열기" #: editor/scene_tree_dock.cpp @@ -8497,7 +10037,7 @@ msgstr "다른 씬ì—서 ê°€ì ¸ì˜¤ê¸°" msgid "Save Branch as Scene" msgstr "ì„ íƒ ë…¸ë“œë¥¼ 다른 씬으로 ì €ìž¥" -#: editor/scene_tree_dock.cpp +#: editor/scene_tree_dock.cpp editor/script_editor_debugger.cpp msgid "Copy Node Path" msgstr "노드 경로 복사" @@ -8541,6 +10081,21 @@ msgid "Toggle Visible" msgstr "ë³´ì´ê¸° í† ê¸€" #: editor/scene_tree_editor.cpp +#, fuzzy +msgid "Unlock Node" +msgstr "노드 ì„ íƒ" + +#: editor/scene_tree_editor.cpp +#, fuzzy +msgid "Button Group" +msgstr "버튼 7" + +#: editor/scene_tree_editor.cpp +#, fuzzy +msgid "(Connecting From)" +msgstr "ì—°ê²° 오류" + +#: editor/scene_tree_editor.cpp msgid "Node configuration warning:" msgstr "노드 ë°°ì—´ ê²½ê³ :" @@ -8568,8 +10123,9 @@ msgstr "" "노드가 그룹 ì•ˆì— ìžˆìŠµë‹ˆë‹¤.\n" "í´ë¦í•´ì„œ 그룹 ë…ì„ ë³´ì‹ì‹œì˜¤." -#: editor/scene_tree_editor.cpp editor/script_create_dialog.cpp -msgid "Open Script" +#: editor/scene_tree_editor.cpp +#, fuzzy +msgid "Open Script:" msgstr "스í¬ë¦½íЏ 열기" #: editor/scene_tree_editor.cpp @@ -8621,71 +10177,83 @@ msgid "Select a Node" msgstr "노드 ì„ íƒ" #: editor/script_create_dialog.cpp -msgid "Error loading template '%s'" -msgstr "'%s' 템플릿 불러오기 오류" +#, fuzzy +msgid "Path is empty." +msgstr "경로가 비어 있ìŒ" #: editor/script_create_dialog.cpp -msgid "Error - Could not create script in filesystem." -msgstr "오류 - íŒŒì¼ ì‹œìŠ¤í…œì— ìŠ¤í¬ë¦½íŠ¸ë¥¼ ìƒì„±í• 수 없습니다." +#, fuzzy +msgid "Filename is empty." +msgstr "íŒŒì¼ ì´ë¦„ì´ ë¹„ì—ˆìŠµë‹ˆë‹¤" #: editor/script_create_dialog.cpp -msgid "Error loading script from %s" -msgstr "'%s' 스í¬ë¦½íЏ 로딩 중 오류" +#, fuzzy +msgid "Path is not local." +msgstr "경로가 ë¡œì»¬ì´ ì•„ë‹˜" #: editor/script_create_dialog.cpp -msgid "N/A" -msgstr "해당 ì—†ìŒ" +#, fuzzy +msgid "Invalid base path." +msgstr "ìœ íš¨í•˜ì§€ ì•Šì€ ê¸°ë³¸ 경로" #: editor/script_create_dialog.cpp -msgid "Open Script/Choose Location" -msgstr "스í¬ë¦½íЏ 열기/위치 ì„ íƒ" +#, fuzzy +msgid "A directory with the same name exists." +msgstr "ê°™ì€ ì´ë¦„ì˜ ë””ë ‰í† ë¦¬ê°€ 존재함" #: editor/script_create_dialog.cpp -msgid "Path is empty" -msgstr "경로가 비어 있ìŒ" +#, fuzzy +msgid "Invalid extension." +msgstr "ìœ íš¨í•˜ì§€ ì•Šì€ í™•ìž¥ìž" #: editor/script_create_dialog.cpp -msgid "Filename is empty" -msgstr "íŒŒì¼ ì´ë¦„ì´ ë¹„ì—ˆìŠµë‹ˆë‹¤" +#, fuzzy +msgid "Wrong extension chosen." +msgstr "ìž˜ëª»ëœ í™•ìž¥ìž ì„ íƒ" #: editor/script_create_dialog.cpp -msgid "Path is not local" -msgstr "경로가 ë¡œì»¬ì´ ì•„ë‹˜" +msgid "Error loading template '%s'" +msgstr "'%s' 템플릿 불러오기 오류" #: editor/script_create_dialog.cpp -msgid "Invalid base path" -msgstr "ìœ íš¨í•˜ì§€ ì•Šì€ ê¸°ë³¸ 경로" +msgid "Error - Could not create script in filesystem." +msgstr "오류 - íŒŒì¼ ì‹œìŠ¤í…œì— ìŠ¤í¬ë¦½íŠ¸ë¥¼ ìƒì„±í• 수 없습니다." #: editor/script_create_dialog.cpp -msgid "Directory of the same name exists" -msgstr "ê°™ì€ ì´ë¦„ì˜ ë””ë ‰í† ë¦¬ê°€ 존재함" +msgid "Error loading script from %s" +msgstr "'%s' 스í¬ë¦½íЏ 로딩 중 오류" #: editor/script_create_dialog.cpp -msgid "File exists, will be reused" -msgstr "파ì¼ì´ 존재하여, 재사용합니다" +msgid "N/A" +msgstr "해당 ì—†ìŒ" #: editor/script_create_dialog.cpp -msgid "Invalid extension" -msgstr "ìœ íš¨í•˜ì§€ ì•Šì€ í™•ìž¥ìž" +#, fuzzy +msgid "Open Script / Choose Location" +msgstr "스í¬ë¦½íЏ 열기/위치 ì„ íƒ" #: editor/script_create_dialog.cpp -msgid "Wrong extension chosen" -msgstr "ìž˜ëª»ëœ í™•ìž¥ìž ì„ íƒ" +msgid "Open Script" +msgstr "스í¬ë¦½íЏ 열기" #: editor/script_create_dialog.cpp -msgid "Invalid Path" -msgstr "ìœ íš¨í•˜ì§€ ì•Šì€ ê²½ë¡œ" +#, fuzzy +msgid "File exists, it will be reused." +msgstr "파ì¼ì´ 존재하여, 재사용합니다" #: editor/script_create_dialog.cpp -msgid "Invalid class name" +#, fuzzy +msgid "Invalid class name." msgstr "ìœ íš¨í•˜ì§€ ì•Šì€ í´ëž˜ìŠ¤ëª…" #: editor/script_create_dialog.cpp -msgid "Invalid inherited parent name or path" +#, fuzzy +msgid "Invalid inherited parent name or path." msgstr "ìœ íš¨í•˜ì§€ ì•Šì€ ìƒì†ëœ 부모 ì´ë¦„ ë˜ëŠ” 경로" #: editor/script_create_dialog.cpp -msgid "Script valid" +#, fuzzy +msgid "Script is valid." msgstr "ìœ íš¨í•œ 스í¬ë¦½íЏ" #: editor/script_create_dialog.cpp @@ -8693,15 +10261,18 @@ msgid "Allowed: a-z, A-Z, 0-9 and _" msgstr "허용ë¨:a-z, A-z, 0-9 ê·¸ë¦¬ê³ _" #: editor/script_create_dialog.cpp -msgid "Built-in script (into scene file)" +#, fuzzy +msgid "Built-in script (into scene file)." msgstr "(씬 íŒŒì¼ ì•ˆì—) ë‚´ìž¥ëœ ìŠ¤í¬ë¦½íЏ" #: editor/script_create_dialog.cpp -msgid "Create new script file" +#, fuzzy +msgid "Will create a new script file." msgstr "새 스í¬ë¦½íЏ íŒŒì¼ ë§Œë“¤ê¸°" #: editor/script_create_dialog.cpp -msgid "Load existing script file" +#, fuzzy +msgid "Will load an existing script file." msgstr "기존 스í¬ë¦½íЏ íŒŒì¼ ë¶ˆëŸ¬ì˜¤ê¸°" #: editor/script_create_dialog.cpp @@ -8832,6 +10403,10 @@ msgstr "실시간 편집 루트:" msgid "Set From Tree" msgstr "트리로부터 ì„¤ì •" +#: editor/script_editor_debugger.cpp +msgid "Export measures as CSV" +msgstr "" + #: editor/settings_config_dialog.cpp msgid "Erase Shortcut" msgstr "단축키 지우기" @@ -8961,6 +10536,15 @@ msgid "GDNativeLibrary" msgstr "GD네ì´í‹°ë¸Œ ë¼ì´ë¸ŒëŸ¬ë¦¬" #: 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 "ì—…ë°ì´íЏ 스피너 비활성화" + +#: modules/gdnative/gdnative_library_singleton_editor.cpp msgid "Library" msgstr "ë¼ì´ë¸ŒëŸ¬ë¦¬" @@ -8974,7 +10558,7 @@ msgstr "ë¼ì´ë¸ŒëŸ¬ë¦¬ë“¤: " #: modules/gdnative/register_types.cpp msgid "GDNative" -msgstr "GD네ì´í‹°ë¸Œ" +msgstr "GDNative" #: modules/gdscript/gdscript_functions.cpp msgid "Step argument is zero!" @@ -9047,8 +10631,9 @@ msgid "GridMap Fill Selection" msgstr "그리드맵 채우기 ì„ íƒ" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "GridMap Duplicate Selection" -msgstr "그리드맵 ì„ íƒ ë³µì œ" +#, fuzzy +msgid "GridMap Paste Selection" +msgstr "그리드맵 ì„ íƒ ì‚ì œ" #: modules/gridmap/grid_map_editor_plugin.cpp msgid "GridMap Paint" @@ -9115,18 +10700,6 @@ msgid "Cursor Clear Rotation" msgstr "커서 íšŒì „ 지우기" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Create Area" -msgstr "ì˜ì— 만들기" - -#: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Create Exterior Connector" -msgstr "외부 커넥터 만들기" - -#: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Erase Area" -msgstr "ì˜ì— 지우기" - -#: modules/gridmap/grid_map_editor_plugin.cpp msgid "Clear Selection" msgstr "ì„ íƒ ì§€ìš°ê¸°" @@ -9488,18 +11061,11 @@ msgid "Available Nodes:" msgstr "사용 가능한 노드:" #: modules/visual_script/visual_script_editor.cpp -msgid "Select or create a function to edit graph" +#, fuzzy +msgid "Select or create a function to edit its graph." msgstr "그래프를 편집하기 위한 함수를 ì„ íƒí•˜ê±°ë‚˜ 만들기" #: modules/visual_script/visual_script_editor.cpp -msgid "Edit Signal Arguments:" -msgstr "ì‹œê·¸ë„ ì¸ìˆ˜ 편집:" - -#: modules/visual_script/visual_script_editor.cpp -msgid "Edit Variable:" -msgstr "변수 편집:" - -#: modules/visual_script/visual_script_editor.cpp msgid "Delete Selected" msgstr "ì„ íƒ í•목 ì‚ì œ" @@ -9630,6 +11196,19 @@ msgid "Debug keystore not configured in the Editor Settings nor in the preset." msgstr "Debug keystoreì´ ì—디터 ì„¤ì • ë˜ëŠ” 프리셋ì—서 구성ë˜ì§€ 않았습니다." #: platform/android/export/export.cpp +msgid "Custom build requires a valid Android SDK path in Editor Settings." +msgstr "" + +#: platform/android/export/export.cpp +msgid "Invalid Android SDK path for custom build in Editor Settings." +msgstr "" + +#: platform/android/export/export.cpp +msgid "" +"Android project is not installed for compiling. Install from Editor menu." +msgstr "" + +#: platform/android/export/export.cpp msgid "Invalid public key for APK expansion." msgstr "APK í™•ìž¥ì— ìœ íš¨í•˜ì§€ ì•Šì€ ê³µìš© 키입니다." @@ -9637,6 +11216,34 @@ msgstr "APK í™•ìž¥ì— ìœ íš¨í•˜ì§€ ì•Šì€ ê³µìš© 키입니다." msgid "Invalid package name:" msgstr "ìœ íš¨í•˜ì§€ ì•Šì€ íŒ¨í‚¤ì§€ ì´ë¦„:" +#: platform/android/export/export.cpp +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 "" +"Android build version mismatch:\n" +" Template installed: %s\n" +" Godot Version: %s\n" +"Please reinstall Android build template from 'Project' menu." +msgstr "" + +#: platform/android/export/export.cpp +msgid "Building Android Project (gradle)" +msgstr "" + +#: 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 "" + +#: platform/android/export/export.cpp +msgid "No build apk generated at: " +msgstr "" + #: platform/iphone/export/export.cpp msgid "Identifier is missing." msgstr "ì‹ë³„ìžê°€ 없습니다." @@ -9928,27 +11535,32 @@ msgid "ARVRCamera must have an ARVROrigin node as its parent" msgstr "ARVRCamera는 반드시 ARVROrigin 노드를 부모로 ê°€ì§€ê³ ìžˆì–´ì•¼ 함" #: scene/3d/arvr_nodes.cpp -msgid "ARVRController must have an ARVROrigin node as its parent" +#, fuzzy +msgid "ARVRController must have an ARVROrigin node as its parent." msgstr "ARVRController는 반드시 ARVROrigin 노드를 부모로 ê°€ì§€ê³ ìžˆì–´ì•¼ 함" #: scene/3d/arvr_nodes.cpp +#, fuzzy msgid "" -"The controller id must not be 0 or this controller will not be bound to an " -"actual controller" +"The controller ID must not be 0 or this controller won't be bound to an " +"actual controller." msgstr "컨트롤러 idê°€ 0ì´ ë˜ë©´ 컨트롤러가 ì‹¤ì œ ì»¨íŠ¸ë¡¤ëŸ¬ì— ë°”ì¸ë”©í•˜ì§€ 않게 ë¨" #: scene/3d/arvr_nodes.cpp -msgid "ARVRAnchor must have an ARVROrigin node as its parent" +#, fuzzy +msgid "ARVRAnchor must have an ARVROrigin node as its parent." msgstr "ARVRAnchor는 반드시 ARVROrigin 노드를 부모로 ê°€ì§€ê³ ìžˆì–´ì•¼ 함" #: scene/3d/arvr_nodes.cpp +#, fuzzy msgid "" -"The anchor id must not be 0 or this anchor will not be bound to an actual " -"anchor" +"The anchor ID must not be 0 or this anchor won't be bound to an actual " +"anchor." msgstr "앵커 idê°€ 0ì´ ë˜ë©´ 앵커가 ì‹¤ì œ ì•µì»¤ì— ë°”ì¸ë”©í•˜ì§€ 않게 ë¨" #: scene/3d/arvr_nodes.cpp -msgid "ARVROrigin requires an ARVRCamera child node" +#, fuzzy +msgid "ARVROrigin requires an ARVRCamera child node." msgstr "ARVROriginì€ ARVRCamera ìžì‹ 노드를 요구 함" #: scene/3d/baked_lightmap.cpp @@ -10031,9 +11643,10 @@ msgid "Nothing is visible because no mesh has been assigned." msgstr "ì§€ì •ëœ ë©”ì‹œê°€ 없으므로 메시를 ë³¼ 수 없습니다." #: scene/3d/cpu_particles.cpp +#, fuzzy msgid "" -"CPUParticles animation requires the usage of a SpatialMaterial with " -"\"Billboard Particles\" enabled." +"CPUParticles animation requires the usage of a SpatialMaterial whose " +"Billboard Mode is set to \"Particle Billboard\"." msgstr "" "CPUParticles ì• ë‹ˆë©”ì´ì…˜ì„ ì‚¬ìš©í•˜ë ¤ë©´ \"Billboard Particles\"ì´ í™œì„±í™”ëœ " "SpatialMaterialì´ í•„ìš”í•©ë‹ˆë‹¤." @@ -10080,9 +11693,10 @@ msgid "" msgstr "ë©”ì‹œë“¤ì„ íŒ¨ìŠ¤ë¥¼ 그리ë„ë¡ í• ë‹¹í•˜ì§€ 않았으므로 ë³´ì´ì§€ 않습니다." #: scene/3d/particles.cpp +#, fuzzy msgid "" -"Particles animation requires the usage of a SpatialMaterial with \"Billboard " -"Particles\" enabled." +"Particles animation requires the usage of a SpatialMaterial whose Billboard " +"Mode is set to \"Particle Billboard\"." msgstr "" "Particles ì• ë‹ˆë©”ì´ì…˜ì„ ì‚¬ìš©í•˜ë ¤ë©´ \"Billboard Particles\"ì´ í™œì„±í™”ëœ " "SpatialMaterialì´ í•„ìš”í•©ë‹ˆë‹¤." @@ -10114,7 +11728,8 @@ msgid "Path property must point to a valid Spatial node to work." msgstr "Path ì†ì„±ì€ ìœ íš¨í•œ Spatial 노드를 가리켜야 합니다." #: scene/3d/soft_body.cpp -msgid "This body will be ignored until you set a mesh" +#, fuzzy +msgid "This body will be ignored until you set a mesh." msgstr "ì´ ë°”ë””ëŠ” 메시를 ì„¤ì •í• ë•Œ 까지 무시ë©ë‹ˆë‹¤" #: scene/3d/soft_body.cpp @@ -10220,10 +11835,11 @@ msgid "Add current color as a preset." msgstr "현재 색ìƒì„ 프리셋으로 추가합니다." #: scene/gui/container.cpp +#, fuzzy msgid "" "Container by itself serves no purpose unless a script configures it's " "children placement behavior.\n" -"If you dont't intend to add a script, then please use a plain 'Control' node " +"If you don't intend to add a script, then please use a plain 'Control' node " "instead." msgstr "" "컨테ì´ë„ˆ ìžì²´ëŠ” ìžì‹ 배치 í–‰ë™ì„ 구성하지 않는 한 ìš©ë„ê°€ 없습니다.\n" @@ -10237,10 +11853,6 @@ msgstr "ê²½ê³ !" msgid "Please Confirm..." msgstr "확ì¸í•´ì£¼ì„¸ìš”..." -#: scene/gui/file_dialog.cpp -msgid "Go to parent folder." -msgstr "부모 í´ë”로 ì´ë™í•©ë‹ˆë‹¤." - #: scene/gui/popup.cpp msgid "" "Popups will hide by default unless you call popup() or any of the popup*() " @@ -10324,6 +11936,76 @@ msgstr "ê· ì¼í•˜ê²Œ 배치함." msgid "Varyings can only be assigned in vertex function." msgstr "Varyings는 ì˜¤ì§ ë²„í…스 함수ì—서만 ì§€ì •í• ìˆ˜ 있습니다." +#: servers/visual/shader_language.cpp +msgid "Constants cannot be modified." +msgstr "" + +#~ msgid "Path to Node:" +#~ msgstr "노드 경로:" + +#~ msgid "Delete selected files?" +#~ msgstr "ì„ íƒëœ 파ì¼ë“¤ì„ ì‚ì œí•˜ì‹œê² ìŠµë‹ˆê¹Œ?" + +#~ msgid "There is no 'res://default_bus_layout.tres' file." +#~ msgstr "'res://default_bus_layout.tres' 파ì¼ì´ 없습니다." + +#~ msgid "Go to parent folder" +#~ msgstr "부모 í´ë”로 ì´ë™" + +#~ msgid "Select device from the list" +#~ msgstr "목ë¡ì—서 기기를 ì„ íƒí•˜ì„¸ìš”" + +#~ msgid "Open Scene(s)" +#~ msgstr "씬(들) 열기" + +#~ msgid "Previous Directory" +#~ msgstr "ì´ì „ ë””ë ‰í† ë¦¬" + +#~ msgid "Next Directory" +#~ msgstr "ë‹¤ìŒ ë””ë ‰í† ë¦¬" + +#~ msgid "Ease in" +#~ msgstr "완화 in" + +#~ msgid "Ease out" +#~ msgstr "완화 out" + +#~ msgid "Create Convex Static Body" +#~ msgstr "Convex Static Body 만들기" + +#~ msgid "CheckBox Radio1" +#~ msgstr "ì²´í¬ë°•스 ë¼ë””오1" + +#~ msgid "CheckBox Radio2" +#~ msgstr "ì²´í¬ë°•스 ë¼ë””오2" + +#~ msgid "Create folder" +#~ msgstr "í´ë” 만들기" + +#~ msgid "Already existing" +#~ msgstr "ì´ë¯¸ 존재함" + +#~ msgid "Custom Node" +#~ msgstr "커스텀 노드" + +#~ msgid "Invalid Path" +#~ msgstr "ìœ íš¨í•˜ì§€ ì•Šì€ ê²½ë¡œ" + +#~ msgid "GridMap Duplicate Selection" +#~ msgstr "그리드맵 ì„ íƒ ë³µì œ" + +#~ msgid "Create Area" +#~ msgstr "ì˜ì— 만들기" + +#~ msgid "Create Exterior Connector" +#~ msgstr "외부 커넥터 만들기" + +#~ msgid "Edit Signal Arguments:" +#~ msgstr "ì‹œê·¸ë„ ì¸ìˆ˜ 편집:" + +#~ msgid "Edit Variable:" +#~ msgstr "변수 편집:" + #~ msgid "Snap (s): " #~ msgstr "스냅: " @@ -10443,9 +12125,6 @@ msgstr "Varyings는 ì˜¤ì§ ë²„í…스 함수ì—서만 ì§€ì •í• ìˆ˜ 있습니다. #~ msgid "Class List:" #~ msgstr "í´ëž˜ìФ 목ë¡:" -#~ msgid "Search Classes" -#~ msgstr "í´ëž˜ìФ 검색" - #~ msgid "Public Methods" #~ msgstr "공개 메서드" @@ -10520,9 +12199,6 @@ msgstr "Varyings는 ì˜¤ì§ ë²„í…스 함수ì—서만 ì§€ì •í• ìˆ˜ 있습니다. #~ msgid "Error:" #~ msgstr "ì—러:" -#~ msgid "Source:" -#~ msgstr "소스:" - #~ msgid "Function:" #~ msgstr "함수:" @@ -10544,21 +12220,9 @@ msgstr "Varyings는 ì˜¤ì§ ë²„í…스 함수ì—서만 ì§€ì •í• ìˆ˜ 있습니다. #~ msgid "Get" #~ msgstr "Get" -#~ msgid "Change Scalar Constant" -#~ msgstr "Scalar ìƒìˆ˜ 변경" - -#~ msgid "Change Vec Constant" -#~ msgstr "Vec ìƒìˆ˜ 변경" - #~ msgid "Change RGB Constant" #~ msgstr "RGB ìƒìˆ˜ 변경" -#~ msgid "Change Scalar Operator" -#~ msgstr "Scalar ì—°ì‚°ìž ë³€ê²½" - -#~ msgid "Change Vec Operator" -#~ msgstr "Vec ì—°ì‚°ìž ë³€ê²½" - #~ msgid "Change Vec Scalar Operator" #~ msgstr "Vec Scalar ì—°ì‚°ìž ë³€ê²½" @@ -10568,15 +12232,9 @@ msgstr "Varyings는 ì˜¤ì§ ë²„í…스 함수ì—서만 ì§€ì •í• ìˆ˜ 있습니다. #~ msgid "Toggle Rot Only" #~ msgstr "ì˜¤ì§ íšŒì „ í† ê¸€" -#~ msgid "Change Scalar Function" -#~ msgstr "Scalar 함수 변경" - #~ msgid "Change Vec Function" #~ msgstr "Vec 함수 변경" -#~ msgid "Change Scalar Uniform" -#~ msgstr "Scalar uniform 변경" - #~ msgid "Change Vec Uniform" #~ msgstr "Vec uniform 변경" @@ -10589,9 +12247,6 @@ msgstr "Varyings는 ì˜¤ì§ ë²„í…스 함수ì—서만 ì§€ì •í• ìˆ˜ 있습니다. #~ msgid "Change XForm Uniform" #~ msgstr "XForm uniform 변경" -#~ msgid "Change Texture Uniform" -#~ msgstr "í…ìŠ¤ì³ uniform 변경" - #~ msgid "Change Cubemap Uniform" #~ msgstr "í브맵 uniform 변경" @@ -10610,9 +12265,6 @@ msgstr "Varyings는 ì˜¤ì§ ë²„í…스 함수ì—서만 ì§€ì •í• ìˆ˜ 있습니다. #~ msgid "Modify Curve Map" #~ msgstr "커브맵 ìˆ˜ì •" -#~ msgid "Change Input Name" -#~ msgstr "ìž…ë ¥ ì´ë¦„ 변경" - #~ msgid "Connect Graph Nodes" #~ msgstr "그래프 노드 ì—°ê²°" @@ -10640,9 +12292,6 @@ msgstr "Varyings는 ì˜¤ì§ ë²„í…스 함수ì—서만 ì§€ì •í• ìˆ˜ 있습니다. #~ msgid "Add Shader Graph Node" #~ msgstr "ì…°ì´ë” 그래프 노드 추가" -#~ msgid "Disabled" -#~ msgstr "비활성화ë¨" - #~ msgid "Move Anim Track Up" #~ msgstr "ì• ë‹ˆë©”ì´ì…˜ 트랙 위로 ì´ë™" @@ -10826,15 +12475,9 @@ msgstr "Varyings는 ì˜¤ì§ ë²„í…스 함수ì—서만 ì§€ì •í• ìˆ˜ 있습니다. #~ msgid "Item name or ID:" #~ msgstr "ì•„ì´í…œ ì´ë¦„ ë˜ëŠ” ì•„ì´ë””:" -#~ msgid "Autotiles" -#~ msgstr "ìžë™ 타ì¼" - #~ msgid "Export templates for this platform are missing/corrupted: " #~ msgstr "ì´ í”Œëž«í¼ì— 대한 내보내기 í…œí”Œë¦¿ì´ ì—†ê±°ë‚˜ ì†ìƒë¨: " -#~ msgid "Button 7" -#~ msgstr "버튼 7" - #~ msgid "Button 8" #~ msgstr "버튼 8" @@ -11682,9 +13325,6 @@ msgstr "Varyings는 ì˜¤ì§ ë²„í…스 함수ì—서만 ì§€ì •í• ìˆ˜ 있습니다. #~ msgid "Project Export Settings" #~ msgstr "프로ì 트 내보내기 ì„¤ì •" -#~ msgid "Target" -#~ msgstr "대ìƒ" - #~ msgid "Export to Platform" #~ msgstr "플랫í¼ìœ¼ë¡œ 내보내기" @@ -11739,9 +13379,6 @@ msgstr "Varyings는 ì˜¤ì§ ë²„í…스 함수ì—서만 ì§€ì •í• ìˆ˜ 있습니다. #~ msgid "Shrink By:" #~ msgstr "ì´ë¯¸ì§€ 줄ì´ê¸°:" -#~ msgid "Preview Atlas" -#~ msgstr "ì•„í‹€ë¼ìФ 미리보기" - #~ msgid "Images:" #~ msgstr "ì´ë¯¸ì§€:" diff --git a/editor/translations/lt.po b/editor/translations/lt.po index 22fe1747e6..4fbba5cd26 100644 --- a/editor/translations/lt.po +++ b/editor/translations/lt.po @@ -72,6 +72,15 @@ msgstr "" msgid "Mirror" msgstr "" +#: editor/animation_bezier_editor.cpp editor/editor_profiler.cpp +msgid "Time:" +msgstr "TrukmÄ—:" + +#: editor/animation_bezier_editor.cpp +#, fuzzy +msgid "Value:" +msgstr "Naujas pavadinimas:" + #: editor/animation_bezier_editor.cpp msgid "Insert Key Here" msgstr "" @@ -158,12 +167,18 @@ msgstr "" #: editor/animation_track_editor.cpp #, fuzzy -msgid "Add Track" -msgstr "Animacija: PridÄ—ti Takelį" +msgid "Animation length (frames)" +msgstr "Animacija" #: editor/animation_track_editor.cpp -msgid "Animation Length Time (seconds)" -msgstr "" +#, fuzzy +msgid "Animation length (seconds)" +msgstr "Animacijos Nodas" + +#: editor/animation_track_editor.cpp +#, fuzzy +msgid "Add Track" +msgstr "Animacija: PridÄ—ti Takelį" #: editor/animation_track_editor.cpp #, fuzzy @@ -298,11 +313,13 @@ msgid "Create %d NEW tracks and insert keys?" msgstr "" #: editor/animation_track_editor.cpp editor/create_dialog.cpp -#: editor/editor_audio_buses.cpp editor/editor_plugin_settings.cpp -#: editor/plugin_config_dialog.cpp +#: editor/editor_audio_buses.cpp editor/editor_feature_profile.cpp +#: editor/editor_plugin_settings.cpp editor/plugin_config_dialog.cpp #: editor/plugins/abstract_polygon_2d_editor.cpp #: editor/plugins/mesh_instance_editor_plugin.cpp -#: editor/plugins/particles_editor_plugin.cpp editor/script_create_dialog.cpp +#: editor/plugins/particles_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_create_dialog.cpp msgid "Create" msgstr "Sukurti" @@ -416,6 +433,23 @@ msgid "" msgstr "" #: editor/animation_track_editor.cpp +msgid "" +"This animation belongs to an imported scene, so changes to imported tracks " +"will not be saved.\n" +"\n" +"To enable the ability to add custom tracks, navigate to the scene's import " +"settings and set\n" +"\"Animation > Storage\" to \"Files\", enable \"Animation > Keep Custom Tracks" +"\", then re-import.\n" +"Alternatively, use an import preset that imports animations to separate " +"files." +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Warning: Editing imported animation" +msgstr "" + +#: editor/animation_track_editor.cpp msgid "Only show tracks from nodes selected in tree." msgstr "" @@ -552,7 +586,8 @@ msgstr "" msgid "Select tracks to copy:" msgstr "" -#: editor/animation_track_editor.cpp editor/editor_properties.cpp +#: editor/animation_track_editor.cpp editor/editor_log.cpp +#: editor/editor_properties.cpp #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp @@ -621,6 +656,11 @@ msgstr "" msgid "Selection Only" msgstr "" +#: editor/code_editor.cpp editor/plugins/script_text_editor.cpp +#: editor/plugins/text_editor.cpp +msgid "Standard" +msgstr "" + #: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/texture_region_editor_plugin.cpp #: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp @@ -646,21 +686,38 @@ msgid "Line and column numbers." msgstr "" #: editor/connections_dialog.cpp -msgid "Method in target Node must be specified!" +#, fuzzy +msgid "Method in target node must be specified." msgstr "Metodas pasirinktame Node turi bÅ«ti nurodytas!" #: editor/connections_dialog.cpp +#, fuzzy msgid "" -"Target method not found! Specify a valid method or attach a script to target " -"Node." +"Target method not found. Specify a valid method or attach a script to the " +"target node." msgstr "" "Pasirinktas metodas nerastas! Nurodykite galiojantį metodÄ… arba prijunkite " "skriptÄ… prie pasirinkto Nodo." #: editor/connections_dialog.cpp -msgid "Connect To Node:" +#, fuzzy +msgid "Connect to Node:" msgstr "Prijunkite prie Nodo:" +#: editor/connections_dialog.cpp +#, fuzzy +msgid "Connect to Script:" +msgstr "Prijunkite prie Nodo:" + +#: editor/connections_dialog.cpp +#, fuzzy +msgid "From Signal:" +msgstr "Signalai" + +#: editor/connections_dialog.cpp +msgid "Scene does not contain any script." +msgstr "" + #: editor/connections_dialog.cpp editor/editor_autoload_settings.cpp #: editor/groups_editor.cpp editor/plugins/item_list_editor_plugin.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_settings_editor.cpp @@ -668,10 +725,12 @@ msgid "Add" msgstr "PridÄ—ti" #: editor/connections_dialog.cpp editor/dependency_editor.cpp -#: editor/groups_editor.cpp editor/plugins/animation_player_editor_plugin.cpp +#: editor/editor_feature_profile.cpp editor/groups_editor.cpp +#: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp #: editor/plugins/resource_preloader_editor_plugin.cpp -#: editor/plugins/theme_editor_plugin.cpp editor/project_manager.cpp +#: editor/plugins/theme_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_manager.cpp #: editor/project_settings_editor.cpp msgid "Remove" msgstr "Panaikinti" @@ -685,21 +744,30 @@ msgid "Extra Call Arguments:" msgstr "Papildomi IÅ¡kvietimo Argumentai:" #: editor/connections_dialog.cpp -msgid "Path to Node:" -msgstr "Kelias iki Nodo:" +msgid "Advanced" +msgstr "" #: editor/connections_dialog.cpp -msgid "Make Function" +msgid "Deferred" msgstr "" #: editor/connections_dialog.cpp -msgid "Deferred" +msgid "" +"Defers the signal, storing it in a queue and only firing it at idle time." msgstr "" #: editor/connections_dialog.cpp msgid "Oneshot" msgstr "" +#: editor/connections_dialog.cpp +msgid "Disconnects the signal after its first emission." +msgstr "" + +#: editor/connections_dialog.cpp +msgid "Cannot connect signal" +msgstr "" + #: editor/connections_dialog.cpp editor/dependency_editor.cpp #: editor/export_template_manager.cpp editor/groups_editor.cpp #: editor/plugins/animation_player_editor_plugin.cpp @@ -742,11 +810,11 @@ msgid "Disconnect" msgstr "Atsijungti" #: editor/connections_dialog.cpp -msgid "Connect Signal: " +msgid "Connect a Signal to a Method" msgstr "" #: editor/connections_dialog.cpp -msgid "Edit Connection: " +msgid "Edit Connection:" msgstr "" #: editor/connections_dialog.cpp @@ -780,7 +848,6 @@ msgid "Change %s Type" msgstr "" #: editor/create_dialog.cpp editor/project_settings_editor.cpp -#: modules/visual_script/visual_script_editor.cpp msgid "Change" msgstr "" @@ -812,7 +879,8 @@ msgid "Matches:" msgstr "" #: editor/create_dialog.cpp editor/plugin_config_dialog.cpp -#: editor/plugins/asset_library_editor_plugin.cpp editor/property_selector.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/property_selector.cpp #: modules/visual_script/visual_script_property_selector.cpp msgid "Description:" msgstr "ApraÅ¡ymas:" @@ -828,13 +896,13 @@ msgstr "" #: editor/dependency_editor.cpp msgid "" "Scene '%s' is currently being edited.\n" -"Changes will not take effect unless reloaded." +"Changes will only take effect when reloaded." msgstr "" #: editor/dependency_editor.cpp msgid "" "Resource '%s' is in use.\n" -"Changes will take effect when reloaded." +"Changes will only take effect when reloaded." msgstr "" #: editor/dependency_editor.cpp @@ -925,21 +993,13 @@ msgid "Permanently delete %d item(s)? (No undo!)" msgstr "" #: editor/dependency_editor.cpp -msgid "Owns" -msgstr "" - -#: editor/dependency_editor.cpp -msgid "Resources Without Explicit Ownership:" +msgid "Show Dependencies" msgstr "" #: editor/dependency_editor.cpp editor/editor_node.cpp msgid "Orphan Resource Explorer" msgstr "" -#: editor/dependency_editor.cpp -msgid "Delete selected files?" -msgstr "" - #: editor/dependency_editor.cpp editor/editor_audio_buses.cpp #: editor/editor_file_dialog.cpp editor/editor_node.cpp #: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp @@ -948,6 +1008,14 @@ msgstr "" msgid "Delete" msgstr "" +#: editor/dependency_editor.cpp +msgid "Owns" +msgstr "" + +#: editor/dependency_editor.cpp +msgid "Resources Without Explicit Ownership:" +msgstr "" + #: editor/dictionary_property_edit.cpp msgid "Change Dictionary Key" msgstr "" @@ -1057,7 +1125,7 @@ msgstr "" msgid "Success!" msgstr "" -#: editor/editor_asset_installer.cpp +#: editor/editor_asset_installer.cpp editor/editor_node.cpp #: editor/plugins/asset_library_editor_plugin.cpp msgid "Install" msgstr "" @@ -1184,7 +1252,11 @@ msgid "Open Audio Bus Layout" msgstr "" #: editor/editor_audio_buses.cpp -msgid "There is no 'res://default_bus_layout.tres' file." +msgid "There is no '%s' file." +msgstr "" + +#: editor/editor_audio_buses.cpp editor/plugins/canvas_item_editor_plugin.cpp +msgid "Layout" msgstr "" #: editor/editor_audio_buses.cpp @@ -1238,15 +1310,19 @@ msgid "Valid characters:" msgstr "" #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing engine class name." +msgid "Must not collide with an existing engine class name." msgstr "" #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing buit-in type name." +msgid "Must not collide with an existing buit-in type name." msgstr "" #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing global constant name." +msgid "Must not collide with an existing global constant name." +msgstr "" + +#: editor/editor_autoload_settings.cpp +msgid "Keyword cannot be used as an autoload name." msgstr "" #: editor/editor_autoload_settings.cpp @@ -1277,11 +1353,12 @@ msgstr "" msgid "Rearrange Autoloads" msgstr "" -#: editor/editor_autoload_settings.cpp -msgid "Invalid Path." -msgstr "" +#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp +#, fuzzy +msgid "Invalid path." +msgstr "Netinkamas Å¡rifto dydis." -#: editor/editor_autoload_settings.cpp +#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp msgid "File does not exist." msgstr "" @@ -1332,7 +1409,7 @@ msgid "[unsaved]" msgstr "" #: editor/editor_dir_dialog.cpp -msgid "Please select a base directory first" +msgid "Please select a base directory first." msgstr "" #: editor/editor_dir_dialog.cpp @@ -1340,7 +1417,8 @@ msgid "Choose a Directory" msgstr "" #: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp -#: editor/filesystem_dock.cpp scene/gui/file_dialog.cpp +#: editor/filesystem_dock.cpp editor/project_manager.cpp +#: scene/gui/file_dialog.cpp msgid "Create Folder" msgstr "" @@ -1408,6 +1486,164 @@ msgstr "" msgid "Template file not found:" msgstr "" +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "3D Editor" +msgstr "Atidaryti 3D Editorių" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Script Editor" +msgstr "Atidaryti Skriptų Editorių" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Asset Library" +msgstr "Atidaryti Resursų BibliotekÄ…" + +#: editor/editor_feature_profile.cpp +msgid "Scene Tree Editing" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Import Dock" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Node Dock" +msgstr "Naujas pavadinimas:" + +#: editor/editor_feature_profile.cpp +msgid "Filesystem Dock" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Erase profile '%s'? (no undo)" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Profile must be a valid filename and must not contain '.'" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Profile with this name already exists." +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "(Editor Disabled, Properties Disabled)" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "(Properties Disabled)" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "(Editor Disabled)" +msgstr "IÅ¡jungta" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Class Options:" +msgstr "ApraÅ¡ymas:" + +#: editor/editor_feature_profile.cpp +msgid "Enable Contextual Editor" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enabled Properties:" +msgstr "Animacija" + +#: editor/editor_feature_profile.cpp +msgid "Enabled Features:" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Enabled Classes:" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "File '%s' format is invalid, import aborted." +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "" +"Profile '%s' already exists. Remote it first before importing, import " +"aborted." +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Error saving profile to path: '%s'." +msgstr "Ä®vyko klaida kraunant Å¡riftÄ…." + +#: editor/editor_feature_profile.cpp +msgid "Unset" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Current Profile" +msgstr "PradÄ—ti ProfiliavimÄ…" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Make Current" +msgstr "(Esama)" + +#: editor/editor_feature_profile.cpp +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "New" +msgstr "" + +#: editor/editor_feature_profile.cpp editor/editor_node.cpp +#: editor/plugins/asset_library_editor_plugin.cpp editor/project_manager.cpp +msgid "Import" +msgstr "" + +#: editor/editor_feature_profile.cpp editor/editor_node.cpp +#: editor/project_export.cpp +msgid "Export" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Available Profiles" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Enabled Classes" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Class Options" +msgstr "ApraÅ¡ymas:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "New profile name:" +msgstr "Naujas pavadinimas:" + +#: editor/editor_feature_profile.cpp +msgid "Erase Profile" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Import Profile(s)" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Export Profile" +msgstr "Importuoti iÅ¡ Nodo:" + +#: editor/editor_feature_profile.cpp +msgid "Manage Editor Feature Profiles" +msgstr "" + #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Select Current Folder" msgstr "" @@ -1430,8 +1666,8 @@ msgstr "" msgid "Open in File Manager" msgstr "Atidaryti" -#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp -#: editor/project_manager.cpp +#: editor/editor_file_dialog.cpp editor/editor_node.cpp +#: editor/filesystem_dock.cpp editor/project_manager.cpp msgid "Show in File Manager" msgstr "" @@ -1490,7 +1726,7 @@ msgstr "" msgid "Go Up" msgstr "" -#: editor/editor_file_dialog.cpp +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Toggle Hidden Files" msgstr "" @@ -1524,14 +1760,18 @@ msgstr "Pasirinkite Nodus, kuriuos norite importuoti" msgid "Next Folder" msgstr "Pasirinkite Nodus, kuriuos norite importuoti" -#: editor/editor_file_dialog.cpp -msgid "Go to parent folder" +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp +msgid "Go to parent folder." msgstr "" #: editor/editor_file_dialog.cpp msgid "(Un)favorite current folder." msgstr "" +#: editor/editor_file_dialog.cpp +msgid "Toggle visibility of hidden files." +msgstr "" + #: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp msgid "View items as a grid of thumbnails." msgstr "" @@ -1546,6 +1786,7 @@ msgstr "" #: editor/editor_file_dialog.cpp editor/plugins/sprite_editor_plugin.cpp #: editor/plugins/style_box_editor_plugin.cpp +#: editor/plugins/theme_editor_plugin.cpp msgid "Preview:" msgstr "" @@ -1562,6 +1803,12 @@ msgid "ScanSources" msgstr "" #: editor/editor_file_system.cpp +msgid "" +"There are multiple importers for different types pointing to file %s, import " +"aborted" +msgstr "" + +#: editor/editor_file_system.cpp msgid "(Re)Importing Assets" msgstr "" @@ -1745,6 +1992,11 @@ msgstr "" msgid "Output:" msgstr "" +#: editor/editor_log.cpp editor/plugins/tile_map_editor_plugin.cpp +#, fuzzy +msgid "Copy Selection" +msgstr "Panaikinti pasirinkimÄ…" + #: editor/editor_log.cpp editor/editor_profiler.cpp #: editor/editor_properties.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp @@ -1892,7 +2144,7 @@ msgstr "" #: editor/editor_node.cpp msgid "" "This resource belongs to a scene that was instanced or inherited.\n" -"Changes to it will not be kept when saving the current scene." +"Changes to it won't be kept when saving the current scene." msgstr "" #: editor/editor_node.cpp @@ -1903,7 +2155,7 @@ msgstr "" #: editor/editor_node.cpp msgid "" -"This scene was imported, so changes to it will not be kept.\n" +"This scene was imported, so changes to it won't be kept.\n" "Instancing it or inheriting will allow making changes to it.\n" "Please read the documentation relevant to importing scenes to better " "understand this workflow." @@ -1911,7 +2163,7 @@ msgstr "" #: editor/editor_node.cpp msgid "" -"This is a remote object so changes to it will not be kept.\n" +"This is a remote object, so changes to it won't be kept.\n" "Please read the documentation relevant to debugging to better understand " "this workflow." msgstr "" @@ -1921,27 +2173,6 @@ msgid "There is no defined scene to run." msgstr "" #: editor/editor_node.cpp -msgid "" -"No main scene has ever been defined, select one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" - -#: editor/editor_node.cpp -msgid "" -"Selected scene '%s' does not exist, select a valid one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" - -#: editor/editor_node.cpp -msgid "" -"Selected scene '%s' is not a scene file, select a valid one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" - -#: editor/editor_node.cpp msgid "Current scene was never saved, please save it prior to running." msgstr "" @@ -1949,7 +2180,7 @@ msgstr "" msgid "Could not start subprocess!" msgstr "" -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/filesystem_dock.cpp msgid "Open Scene" msgstr "" @@ -1958,6 +2189,11 @@ msgid "Open Base Scene" msgstr "" #: editor/editor_node.cpp +#, fuzzy +msgid "Quick Open..." +msgstr "Atidaryti" + +#: editor/editor_node.cpp msgid "Quick Open Scene..." msgstr "" @@ -2119,6 +2355,27 @@ msgid "Clear Recent Scenes" msgstr "" #: editor/editor_node.cpp +msgid "" +"No main scene has ever been defined, select one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"Selected scene '%s' does not exist, select a valid one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"Selected scene '%s' is not a scene file, select a valid one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" + +#: editor/editor_node.cpp msgid "Save Layout" msgstr "" @@ -2145,6 +2402,19 @@ msgstr "" msgid "Close Tab" msgstr "Uždaryti" +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +msgid "Close Other Tabs" +msgstr "" + +#: editor/editor_node.cpp +msgid "Close Tabs to the Right" +msgstr "" + +#: editor/editor_node.cpp +#, fuzzy +msgid "Close All Tabs" +msgstr "Uždaryti" + #: editor/editor_node.cpp msgid "Switch Scene Tab" msgstr "" @@ -2267,10 +2537,6 @@ msgstr "" msgid "Project Settings" msgstr "" -#: editor/editor_node.cpp editor/project_export.cpp -msgid "Export" -msgstr "" - #: editor/editor_node.cpp editor/plugins/tile_set_editor_plugin.cpp msgid "Tools" msgstr "" @@ -2280,6 +2546,10 @@ msgid "Open Project Data Folder" msgstr "" #: editor/editor_node.cpp +msgid "Install Android Build Template" +msgstr "" + +#: editor/editor_node.cpp msgid "Quit to Project List" msgstr "" @@ -2384,6 +2654,10 @@ msgstr "" msgid "Open Editor Settings Folder" msgstr "" +#: editor/editor_node.cpp +msgid "Manage Editor Features" +msgstr "" + #: editor/editor_node.cpp editor/project_export.cpp msgid "Manage Export Templates" msgstr "" @@ -2396,6 +2670,7 @@ msgstr "" #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp #: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp #: editor/project_settings_editor.cpp editor/rename_dialog.cpp msgid "Search" msgstr "" @@ -2485,11 +2760,6 @@ msgstr "" msgid "Disable Update Spinner" msgstr "" -#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp -#: editor/project_manager.cpp -msgid "Import" -msgstr "" - #: editor/editor_node.cpp msgid "FileSystem" msgstr "" @@ -2515,6 +2785,27 @@ msgid "Don't Save" msgstr "" #: editor/editor_node.cpp +msgid "Android build template is missing, please install relevant templates." +msgstr "" + +#: editor/editor_node.cpp +msgid "Manage Templates" +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"This will install the Android project for custom builds.\n" +"Note that, in order to use it, it needs to be enabled per export preset." +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"Android build template is already installed and it won't be overwritten.\n" +"Remove the \"build\" directory manually before attempting this operation " +"again." +msgstr "" + +#: editor/editor_node.cpp msgid "Import Templates From ZIP File" msgstr "" @@ -2640,10 +2931,6 @@ msgid "Physics Frame %" msgstr "Fizikos Kadro %" #: editor/editor_profiler.cpp -msgid "Time:" -msgstr "TrukmÄ—:" - -#: editor/editor_profiler.cpp msgid "Inclusive" msgstr "" @@ -2783,10 +3070,6 @@ msgid "Remove Item" msgstr "" #: editor/editor_run_native.cpp -msgid "Select device from the list" -msgstr "" - -#: editor/editor_run_native.cpp msgid "" "No runnable export preset found for this platform.\n" "Please add a runnable preset in the export menu." @@ -2820,6 +3103,10 @@ msgstr "GalbÅ«t jÅ«s pamirÅ¡ote '_run' metodÄ…?" msgid "Select Node(s) to Import" msgstr "Pasirinkite Nodus, kuriuos norite importuoti" +#: editor/editor_sub_scene.cpp editor/project_manager.cpp +msgid "Browse" +msgstr "" + #: editor/editor_sub_scene.cpp msgid "Scene Path:" msgstr "Kelias iki Scenos:" @@ -2984,6 +3271,10 @@ msgid "SSL Handshake Error" msgstr "" #: editor/export_template_manager.cpp +msgid "Uncompressing Android Build Sources" +msgstr "" + +#: editor/export_template_manager.cpp msgid "Current Version:" msgstr "" @@ -3000,8 +3291,9 @@ msgid "Remove Template" msgstr "" #: editor/export_template_manager.cpp -msgid "Select template file" -msgstr "" +#, fuzzy +msgid "Select Template File" +msgstr "Pasirinkite Nodus, kuriuos norite importuoti" #: editor/export_template_manager.cpp msgid "Export Template Manager" @@ -3059,7 +3351,7 @@ msgid "No name provided." msgstr "" #: editor/filesystem_dock.cpp -msgid "Provided name contains invalid characters" +msgid "Provided name contains invalid characters." msgstr "" #: editor/filesystem_dock.cpp @@ -3089,21 +3381,27 @@ msgid "Duplicating folder:" msgstr "Duplikuoti" #: editor/filesystem_dock.cpp -msgid "Open Scene(s)" +msgid "New Inherited Scene" msgstr "" #: editor/filesystem_dock.cpp +#, fuzzy +msgid "Open Scenes" +msgstr "Atidaryti Skriptų Editorių" + +#: editor/filesystem_dock.cpp msgid "Instance" msgstr "" #: editor/filesystem_dock.cpp #, fuzzy -msgid "Add to favorites" +msgid "Add to Favorites" msgstr "MÄ—gstamiausi:" #: editor/filesystem_dock.cpp -msgid "Remove from favorites" -msgstr "" +#, fuzzy +msgid "Remove from Favorites" +msgstr "MÄ—gstamiausi:" #: editor/filesystem_dock.cpp msgid "Edit Dependencies..." @@ -3134,11 +3432,13 @@ msgstr "" msgid "New Resource..." msgstr "" -#: editor/filesystem_dock.cpp editor/script_editor_debugger.cpp +#: editor/filesystem_dock.cpp editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_editor_debugger.cpp msgid "Expand All" msgstr "" -#: editor/filesystem_dock.cpp editor/script_editor_debugger.cpp +#: editor/filesystem_dock.cpp editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_editor_debugger.cpp msgid "Collapse All" msgstr "" @@ -3150,19 +3450,21 @@ msgid "Rename" msgstr "" #: editor/filesystem_dock.cpp -msgid "Previous Directory" -msgstr "" +#, fuzzy +msgid "Previous Folder/File" +msgstr "Pasirinkite Nodus, kuriuos norite importuoti" #: editor/filesystem_dock.cpp -msgid "Next Directory" -msgstr "" +#, fuzzy +msgid "Next Folder/File" +msgstr "Pasirinkite Nodus, kuriuos norite importuoti" #: editor/filesystem_dock.cpp msgid "Re-Scan Filesystem" msgstr "" #: editor/filesystem_dock.cpp -msgid "Toggle split mode" +msgid "Toggle Split Mode" msgstr "" #: editor/filesystem_dock.cpp @@ -3191,7 +3493,7 @@ msgstr "" msgid "Create Script" msgstr "" -#: editor/find_in_files.cpp +#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp #, fuzzy msgid "Find in Files" msgstr "Filtrai..." @@ -3209,6 +3511,12 @@ msgstr "" msgid "Filters:" msgstr "Filtrai..." +#: editor/find_in_files.cpp +msgid "" +"Include the files with the following extensions. Add or remove them in " +"ProjectSettings." +msgstr "" + #: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp msgid "Find..." @@ -3647,7 +3955,7 @@ msgid "Open Animation Node" msgstr "Animacijos Nodas" #: editor/plugins/animation_blend_space_2d_editor.cpp -msgid "Triangle already exists" +msgid "Triangle already exists." msgstr "" #: editor/plugins/animation_blend_space_2d_editor.cpp @@ -3724,7 +4032,6 @@ msgid "Node Moved" msgstr "Naujas pavadinimas:" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Unable to connect, port may be in use or connection may be invalid." msgstr "" @@ -3796,7 +4103,7 @@ msgid "Edit Filtered Tracks:" msgstr "Redaguoti Filtrus" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -msgid "Enable filtering" +msgid "Enable Filtering" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp @@ -3912,10 +4219,6 @@ msgid "Animation" msgstr "Animacija" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "New" -msgstr "" - -#: editor/plugins/animation_player_editor_plugin.cpp #, fuzzy msgid "Edit Transitions..." msgstr "Importuoti Animacijas..." @@ -3933,11 +4236,11 @@ msgid "Autoplay on Load" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Onion Skinning" +msgid "Enable Onion Skinning" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Enable Onion Skinning" +msgid "Onion Skinning Options" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp @@ -4492,13 +4795,19 @@ msgid "Move CanvasItem" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"Children of containers have their anchors and margins values overridden by " +"their parent." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Presets for the anchors and margins values of a Control node." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "" -"Children of containers have their anchors and margins values overridden by " -"their parent." +"When active, moving Control nodes changes their anchors instead of their " +"margins." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4514,10 +4823,49 @@ msgid "Change Anchors" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Lock Selected" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Unlock Selected" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Group Selected" +msgstr "Panaikinti pasirinkimÄ…" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Ungroup Selected" +msgstr "Panaikinti pasirinkimÄ…" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Paste Pose" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Create Custom Bone(s) from Node(s)" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Clear Bones" +msgstr "Animacija: Pakeisti TransformacijÄ…" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Make IK Chain" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Clear IK Chain" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "" "Warning: Children of a container get their position and size determined only " "by their parent." @@ -4591,7 +4939,7 @@ msgid "Snapping Options" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to grid" +msgid "Snap to Grid" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4612,31 +4960,31 @@ msgid "Use Pixel Snap" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Smart snapping" +msgid "Smart Snapping" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to parent" +msgid "Snap to Parent" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node anchor" +msgid "Snap to Node Anchor" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node sides" +msgid "Snap to Node Sides" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node center" +msgid "Snap to Node Center" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to other nodes" +msgid "Snap to Other Nodes" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to guides" +msgid "Snap to Guides" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4650,10 +4998,12 @@ msgid "Unlock the selected object (can be moved)." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Makes sure the object's children are not selectable." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Restores the object's children's ability to be selected." msgstr "" @@ -4666,14 +5016,6 @@ msgid "Show Bones" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Make IK Chain" -msgstr "" - -#: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Clear IK Chain" -msgstr "" - -#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Make Custom Bone(s) from Node(s)" msgstr "" @@ -4724,7 +5066,7 @@ msgid "Frame Selection" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Layout" +msgid "Preview Canvas Scale" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4776,6 +5118,10 @@ msgid "Divide grid step by 2" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Pan View" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Add %s" msgstr "" @@ -4798,7 +5144,7 @@ msgid "Error instancing scene from %s" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Change default type" +msgid "Change Default Type" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4885,19 +5231,19 @@ msgid "Create Emission Points From Node" msgstr "" #: editor/plugins/curve_editor_plugin.cpp -msgid "Flat0" +msgid "Flat 0" msgstr "" #: editor/plugins/curve_editor_plugin.cpp -msgid "Flat1" +msgid "Flat 1" msgstr "" -#: editor/plugins/curve_editor_plugin.cpp -msgid "Ease in" +#: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp +msgid "Ease In" msgstr "" -#: editor/plugins/curve_editor_plugin.cpp -msgid "Ease out" +#: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp +msgid "Ease Out" msgstr "" #: editor/plugins/curve_editor_plugin.cpp @@ -4917,23 +5263,25 @@ msgid "Load Curve Preset" msgstr "" #: editor/plugins/curve_editor_plugin.cpp -msgid "Add point" -msgstr "" +#, fuzzy +msgid "Add Point" +msgstr "MÄ—gstamiausi:" #: editor/plugins/curve_editor_plugin.cpp -msgid "Remove point" -msgstr "" +#, fuzzy +msgid "Remove Point" +msgstr "Panaikinti pasirinkimÄ…" #: editor/plugins/curve_editor_plugin.cpp -msgid "Left linear" +msgid "Left Linear" msgstr "" #: editor/plugins/curve_editor_plugin.cpp -msgid "Right linear" +msgid "Right Linear" msgstr "" #: editor/plugins/curve_editor_plugin.cpp -msgid "Load preset" +msgid "Load Preset" msgstr "" #: editor/plugins/curve_editor_plugin.cpp @@ -4989,14 +5337,19 @@ msgid "This doesn't work on scene root!" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Trimesh Shape" +msgid "Create Trimesh Static Shape" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Shape" +msgid "Failed creating shapes!" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp +#, fuzzy +msgid "Create Convex Shape(s)" +msgstr "Sukurti NaujÄ…" + +#: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Navigation Mesh" msgstr "" @@ -5046,16 +5399,13 @@ msgid "Create Trimesh Static Body" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Static Body" -msgstr "" - -#: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Trimesh Collision Sibling" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Collision Sibling" -msgstr "" +#, fuzzy +msgid "Create Convex Collision Sibling(s)" +msgstr "Keisti Poligono SkalÄ™" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Outline Mesh..." @@ -5208,20 +5558,20 @@ msgid "Create Navigation Polygon" msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp -msgid "Generating Visibility Rect" +#: editor/plugins/particles_editor_plugin.cpp +msgid "Convert to CPUParticles" msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp -msgid "Generate Visibility Rect" +msgid "Generating Visibility Rect" msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp -msgid "Can only set point into a ParticlesMaterial process material" +msgid "Generate Visibility Rect" msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp -#: editor/plugins/particles_editor_plugin.cpp -msgid "Convert to CPUParticles" +msgid "Can only set point into a ParticlesMaterial process material" msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp @@ -5363,7 +5713,7 @@ msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp editor/plugins/theme_editor_plugin.cpp -#: editor/project_export.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_export.cpp msgid "Options" msgstr "" @@ -5414,8 +5764,9 @@ msgid "Split Segment (in curve)" msgstr "" #: editor/plugins/physical_bone_plugin.cpp -msgid "Move joint" -msgstr "" +#, fuzzy +msgid "Move Joint" +msgstr "Mix Nodas" #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "" @@ -5655,7 +6006,6 @@ msgid "Open in Editor" msgstr "" #: editor/plugins/resource_preloader_editor_plugin.cpp -#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Load Resource" msgstr "" @@ -5751,6 +6101,11 @@ msgid "%s Class Reference" msgstr "" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp +msgid "Find Next" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp msgid "Toggle alphabetical sorting of the method list." msgstr "" @@ -5833,10 +6188,6 @@ msgstr "" msgid "Close All" msgstr "" -#: editor/plugins/script_editor_plugin.cpp -msgid "Close Other Tabs" -msgstr "" - #: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp msgid "Run" msgstr "" @@ -5845,11 +6196,6 @@ msgstr "" msgid "Toggle Scripts Panel" msgstr "" -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/script_text_editor.cpp -msgid "Find Next" -msgstr "" - #: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp msgid "Step Over" msgstr "" @@ -5876,7 +6222,7 @@ msgid "Debug with External Editor" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Open Godot online documentation" +msgid "Open Godot online documentation." msgstr "" #: editor/plugins/script_editor_plugin.cpp @@ -5884,7 +6230,7 @@ msgid "Request Docs" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Help improve the Godot documentation by giving feedback" +msgid "Help improve the Godot documentation by giving feedback." msgstr "" #: editor/plugins/script_editor_plugin.cpp @@ -5910,10 +6256,12 @@ msgid "" msgstr "" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp msgid "Reload" msgstr "" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp msgid "Resave" msgstr "" @@ -5927,6 +6275,30 @@ msgstr "" #: editor/plugins/script_text_editor.cpp #, fuzzy +msgid "Connections to method:" +msgstr "Prijunkite prie Nodo:" + +#: editor/plugins/script_text_editor.cpp +msgid "Source" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Signal" +msgstr "Signalai" + +#: editor/plugins/script_text_editor.cpp +msgid "Target" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "" +"Missing connected method '%s' for signal '%s' from node '%s' to node '%s'." +msgstr "Prijungti '%s' prie '%s'" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy msgid "Line" msgstr "Linija:" @@ -5938,10 +6310,6 @@ msgstr "" msgid "Go to Function" msgstr "" -#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp -msgid "Standard" -msgstr "" - #: editor/plugins/script_text_editor.cpp msgid "Only resources from filesystem can be dropped." msgstr "" @@ -5974,6 +6342,11 @@ msgstr "" msgid "Syntax Highlighter" msgstr "" +#: editor/plugins/script_text_editor.cpp +#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp +msgid "Bookmarks" +msgstr "" + #: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" @@ -6001,6 +6374,22 @@ msgid "Toggle Comment" msgstr "" #: editor/plugins/script_text_editor.cpp +msgid "Toggle Bookmark" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Go to Next Bookmark" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Go to Previous Bookmark" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Remove All Bookmarks" +msgstr "" + +#: editor/plugins/script_text_editor.cpp msgid "Fold/Unfold Line" msgstr "" @@ -6075,6 +6464,12 @@ msgid "Contextual Help" msgstr "" #: editor/plugins/shader_editor_plugin.cpp +msgid "" +"This shader has been modified on on disk.\n" +"What action should be taken?" +msgstr "" + +#: editor/plugins/shader_editor_plugin.cpp msgid "Shader" msgstr "" @@ -6413,7 +6808,7 @@ msgid "Right View" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Switch Perspective/Orthogonal view" +msgid "Switch Perspective/Orthogonal View" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp @@ -6453,11 +6848,12 @@ msgid "Toggle Freelook" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Transform" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Snap object to floor" +msgid "Snap Object to Floor" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp @@ -6602,40 +6998,40 @@ msgid "Invalid geometry, can't replace by mesh." msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Invalid geometry, can't create polygon." -msgstr "" - -#: editor/plugins/sprite_editor_plugin.cpp -msgid "Invalid geometry, can't create collision polygon." +msgid "Convert to Mesh2D" msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Invalid geometry, can't create light occluder." +msgid "Invalid geometry, can't create polygon." msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Sprite" -msgstr "" +#, fuzzy +msgid "Convert to Polygon2D" +msgstr "Keisti Poligono SkalÄ™" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Convert to Mesh2D" +msgid "Invalid geometry, can't create collision polygon." msgstr "" #: editor/plugins/sprite_editor_plugin.cpp #, fuzzy -msgid "Convert to Polygon2D" +msgid "Create CollisionPolygon2D Sibling" msgstr "Keisti Poligono SkalÄ™" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy -msgid "Create CollisionPolygon2D Sibling" -msgstr "Keisti Poligono SkalÄ™" +msgid "Invalid geometry, can't create light occluder." +msgstr "" #: editor/plugins/sprite_editor_plugin.cpp msgid "Create LightOccluder2D Sibling" msgstr "" #: editor/plugins/sprite_editor_plugin.cpp +msgid "Sprite" +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp msgid "Simplification: " msgstr "" @@ -6653,7 +7049,11 @@ msgid "Settings:" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "ERROR: Couldn't load frame resource!" +msgid "No Frames Selected" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Add %d Frame(s)" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp @@ -6661,6 +7061,10 @@ msgid "Add Frame" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "ERROR: Couldn't load frame resource!" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Resource clipboard is empty or not a texture!" msgstr "" @@ -6704,6 +7108,15 @@ msgid "Animation Frames:" msgstr "Animacija" #: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Add a Texture from File" +msgstr "Panaikinti pasirinkimÄ…" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Add Frames from a Sprite Sheet" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Insert Empty (Before)" msgstr "" @@ -6720,6 +7133,26 @@ msgid "Move (After)" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Select Frames" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Horizontal:" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Vertical:" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Select/Clear All Frames" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Create Frames from Sprite Sheet" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "SpriteFrames" msgstr "" @@ -6784,13 +7217,14 @@ msgstr "" msgid "Remove All Items" msgstr "" -#: editor/plugins/theme_editor_plugin.cpp +#: editor/plugins/theme_editor_plugin.cpp editor/project_manager.cpp msgid "Remove All" msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "Edit theme..." -msgstr "" +#, fuzzy +msgid "Edit Theme" +msgstr "Redaguoti Filtrus" #: editor/plugins/theme_editor_plugin.cpp msgid "Theme editing menu." @@ -6817,18 +7251,24 @@ msgid "Create From Current Editor Theme" msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "CheckBox Radio1" +msgid "Toggle Button" msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "CheckBox Radio2" -msgstr "" +#, fuzzy +msgid "Disabled Button" +msgstr "IÅ¡jungta" #: editor/plugins/theme_editor_plugin.cpp msgid "Item" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Disabled Item" +msgstr "IÅ¡jungta" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Check Item" msgstr "" @@ -6845,6 +7285,22 @@ msgid "Checked Radio Item" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +msgid "Named Sep." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Submenu" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Item 1" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Item 2" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Has" msgstr "" @@ -6853,8 +7309,9 @@ msgid "Many" msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "Has,Many,Options" -msgstr "" +#, fuzzy +msgid "Disabled LineEdit" +msgstr "IÅ¡jungta" #: editor/plugins/theme_editor_plugin.cpp msgid "Tab 1" @@ -6869,6 +7326,19 @@ msgid "Tab 3" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Editable Item" +msgstr "Redaguoti Filtrus" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Subtree" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Has,Many,Options" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Data Type:" msgstr "" @@ -6901,6 +7371,7 @@ msgid "Fix Invalid Tiles" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp +#: modules/gridmap/grid_map_editor_plugin.cpp #, fuzzy msgid "Cut Selection" msgstr "Panaikinti pasirinkimÄ…" @@ -6942,37 +7413,47 @@ msgid "Mirror Y" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp +msgid "Disable Autotile" +msgstr "" + +#: editor/plugins/tile_map_editor_plugin.cpp +#, fuzzy +msgid "Enable Priority" +msgstr "Redaguoti Filtrus" + +#: editor/plugins/tile_map_editor_plugin.cpp msgid "Paint Tile" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Pick Tile" +msgid "" +"Shift+RMB: Line Draw\n" +"Shift+Ctrl+RMB: Rectangle Paint" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy -msgid "Copy Selection" -msgstr "Panaikinti pasirinkimÄ…" +msgid "Pick Tile" +msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Rotate left" +msgid "Rotate Left" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Rotate right" +msgid "Rotate Right" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Flip horizontally" +msgid "Flip Horizontally" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Flip vertically" +msgid "Flip Vertically" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp #, fuzzy -msgid "Clear transform" +msgid "Clear Transform" msgstr "Animacija: Pakeisti TransformacijÄ…" #: editor/plugins/tile_set_editor_plugin.cpp @@ -7009,6 +7490,44 @@ msgid "Select the previous shape, subtile, or Tile." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Region Mode" +msgstr "Animacijos Nodas" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Collision Mode" +msgstr "Animacijos Nodas" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Occlusion Mode" +msgstr "Priedai" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Navigation Mode" +msgstr "Animacijos Nodas" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Bitmask Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Priority Mode" +msgstr "Importuoti iÅ¡ Nodo:" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Icon Mode" +msgstr "TimeScale Nodas" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Z Index Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp msgid "Copy bitmask." msgstr "" @@ -7094,6 +7613,7 @@ msgstr "Keisti Poligono SkalÄ™" msgid "" "LMB: Set bit on.\n" "RMB: Set bit off.\n" +"Shift+LMB: Set wildcard bit.\n" "Click on another Tile to edit it." msgstr "" @@ -7212,6 +7732,71 @@ msgid "TileSet" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add input +" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add output +" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar" +msgstr "SkalÄ—:" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Add input port" +msgstr "MÄ—gstamiausi:" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add output port" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change input port type" +msgstr "Animacijos Nodas" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Change output port type" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Change input port name" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Change output port name" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Remove input port" +msgstr "Panaikinti pasirinkimÄ…" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Remove output port" +msgstr "Panaikinti pasirinkimÄ…" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Set expression" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Resize VisualShader node" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Set Uniform Name" msgstr "" @@ -7250,6 +7835,845 @@ msgid "Light" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Create Shader Node" +msgstr "Prijunkite prie Nodo:" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Color function." +msgstr "Panaikinti pasirinkimÄ…" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Color operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Grayscale function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts HSV vector to RGB equivalent." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts RGB vector to HSV equivalent." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Sepia function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Burn operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Darken operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Difference operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Dodge operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "HardLight operator" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Lighten operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Overlay operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Screen operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "SoftLight operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Color constant." +msgstr "Konstanta" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Color uniform." +msgstr "Animacija: Pakeisti TransformacijÄ…" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns an associated vector if the provided scalars are equal, greater or " +"less." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns an associated vector if the provided boolean value is true or false." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'camera' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'inv_camera' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'inv_projection' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'normal' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'projection' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'time' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'viewport_size' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'world' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'texture_pixel_size' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Input parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'binormal' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'fragcoord' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_coord' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_uv' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'side' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'tangent' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv2' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'vertex' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'view' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'albedo' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'attenuation' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'diffuse' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_color' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'roughness' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'specular' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'transmission' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'modelview' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_size' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'tangent' input parameter for vertex and fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_pass' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_coord' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_pixel_size' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_uv' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_alpha' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_height' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_uv' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_vec' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'normal' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'shadow_color' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'extra' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'projection' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'vertex' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'world' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'active' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'custom' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'custom_alpha' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'delta' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'emission_transform' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'index' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'lifetime' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'restart' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'time' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'transform' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'velocity' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Scalar function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Scalar operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "E constant (2.718282). Represents the base of the natural logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Epsilon constant (0.00001). Smallest possible scalar number." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Phi constant (1.618034). Golden ratio." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi/4 constant (0.785398) or 45 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi/2 constant (1.570796) or 90 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi constant (3.141593) or 180 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Tau constant (6.283185) or 360 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Sqrt2 constant (1.414214). Square root of 2." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the absolute value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-tangent of the parameters." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Finds the nearest integer that is greater than or equal to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Constrains a value to lie between two further values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts a quantity in radians to degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-e Exponential." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-2 Exponential." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Finds the nearest integer less than or equal to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Computes the fractional part of the argument." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the inverse of the square root of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Natural logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-2 logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the greater of two values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the lesser of two values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Linear interpolation between two scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the opposite value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 - scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns the value of the first parameter raised to the power of the second." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts a quantity in degrees to radians." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 / scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the nearest integer to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the nearest even integer to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Clamps the value between 0.0 and 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Extracts the sign of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the square root of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( scalar(edge0), scalar(edge1), scalar(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if x is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( scalar(edge), scalar(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the truncated value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Adds scalar to scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Divides scalar by scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies scalar by scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the remainder of the two scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Subtracts scalar from scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Scalar constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar uniform." +msgstr "Animacija: Pakeisti TransformacijÄ…" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Perform the cubic texture lookup." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Perform the texture lookup." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Cubic texture uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "2D texture uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Transform function." +msgstr "Keisti Poligono SkalÄ™" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) Calculate the outer product of a pair of vectors.\n" +"\n" +"OuterProduct treats the first parameter 'c' as a column vector (matrix with " +"one column) and the second parameter 'r' as a row vector (matrix with one " +"row) and does a linear algebraic matrix multiply 'c * r', yielding a matrix " +"whose number of rows is the number of components in 'c' and whose number of " +"columns is the number of components in 'r'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Composes transform from four vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Decomposes transform to four vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the determinant of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the inverse of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the transpose of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies transform by transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies vector by transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Transform constant." +msgstr "Keisti Poligono SkalÄ™" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Transform uniform." +msgstr "Keisti Poligono SkalÄ™" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Composes vector from three scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Decomposes vector to three scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the cross product of two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the distance between two points." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the dot product of two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns a vector that points in the same direction as a reference vector. " +"The function has three vector parameters : N, the vector to orient, I, the " +"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 "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the length of a vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Linear interpolation between two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the normalize product of vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 - vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 / vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns a vector that points in the direction of reflection ( a : incident " +"vector, b : normal vector )." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns a vector that points in the direction of refraction." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( vector(edge0), vector(edge1), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if 'x' is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( scalar(edge0), scalar(edge1), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if 'x' is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( vector(edge), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( scalar(edge), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Adds vector to vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Divides vector by vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies vector by vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the remainder of the two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Subtracts vector from vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Custom Godot Shader Language expression, with custom amount of input and " +"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 "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns falloff based on the dot product of surface normal and view " +"direction of camera (pass associated inputs to it)." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) (Fragment/Light mode only) Scalar derivative function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) (Fragment/Light mode only) Vector derivative function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Derivative in 'x' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Derivative in 'x' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Derivative in 'y' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Derivative in 'y' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Sum of absolute derivative " +"in 'x' and 'y'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Sum of absolute derivative " +"in 'x' and 'y'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "VisualShader" msgstr "" @@ -7442,6 +8866,10 @@ msgid "Directory already contains a Godot project." msgstr "" #: editor/project_manager.cpp +msgid "New Game Project" +msgstr "" + +#: editor/project_manager.cpp msgid "Imported Project" msgstr "" @@ -7489,10 +8917,6 @@ msgid "Rename Project" msgstr "" #: editor/project_manager.cpp -msgid "New Game Project" -msgstr "" - -#: editor/project_manager.cpp msgid "Import Existing Project" msgstr "" @@ -7524,10 +8948,6 @@ msgid "Project Name:" msgstr "" #: editor/project_manager.cpp -msgid "Create folder" -msgstr "" - -#: editor/project_manager.cpp msgid "Project Path:" msgstr "" @@ -7536,10 +8956,6 @@ msgid "Project Installation Path:" msgstr "" #: editor/project_manager.cpp -msgid "Browse" -msgstr "" - -#: editor/project_manager.cpp msgid "Renderer:" msgstr "" @@ -7592,8 +9008,8 @@ msgid "" "\n" "If you proceed with opening it, it will be converted to Godot's current " "configuration file format.\n" -"Warning: You will not be able to open the project with previous versions of " -"the engine anymore." +"Warning: You won't be able to open the project with previous versions of the " +"engine anymore." msgstr "" #: editor/project_manager.cpp @@ -7604,8 +9020,8 @@ msgid "" "%s\n" "\n" "Do you want to convert it?\n" -"Warning: You will not be able to open the project with previous versions of " -"the engine anymore." +"Warning: You won't be able to open the project with previous versions of the " +"engine anymore." msgstr "" #: editor/project_manager.cpp @@ -7617,7 +9033,7 @@ msgstr "" #: editor/project_manager.cpp msgid "" "Can't run project: no main scene defined.\n" -"Please edit the project and set the main scene in \"Project Settings\" under " +"Please edit the project and set the main scene in the Project Settings under " "the \"Application\" category." msgstr "" @@ -7628,23 +9044,37 @@ msgid "" msgstr "" #: editor/project_manager.cpp -msgid "Are you sure to run more than one project?" +msgid "Are you sure to run %d projects at once?" +msgstr "" + +#: editor/project_manager.cpp +msgid "" +"Remove %d projects from the list?\n" +"The project folders' contents won't be modified." +msgstr "" + +#: editor/project_manager.cpp +msgid "" +"Remove this project from the list?\n" +"The project folder's contents won't be modified." msgstr "" #: editor/project_manager.cpp -msgid "Remove project from the list? (Folder contents will not be modified)" +msgid "" +"Remove all missing projects from the list? (Folders contents will not be " +"modified)" msgstr "" #: editor/project_manager.cpp msgid "" "Language changed.\n" -"The UI will update next time the editor or project manager starts." +"The interface will update after restarting the editor or project manager." msgstr "" #: editor/project_manager.cpp msgid "" -"You are about the scan %s folders for existing Godot projects. Do you " -"confirm?" +"Are you sure to scan %s folders for existing Godot projects?\n" +"This could take a while." msgstr "" #: editor/project_manager.cpp @@ -7668,6 +9098,11 @@ msgid "New Project" msgstr "" #: editor/project_manager.cpp +#, fuzzy +msgid "Remove Missing" +msgstr "Panaikinti" + +#: editor/project_manager.cpp msgid "Templates" msgstr "" @@ -7685,8 +9120,8 @@ msgstr "" #: editor/project_manager.cpp msgid "" -"You don't currently have any projects.\n" -"Would you like to explore the official example projects in the Asset Library?" +"You currently don't have any projects.\n" +"Would you like to explore official example projects in the Asset Library?" msgstr "" #: editor/project_settings_editor.cpp @@ -7712,7 +9147,7 @@ msgid "" msgstr "" #: editor/project_settings_editor.cpp -msgid "Action '%s' already exists!" +msgid "An action with the name '%s' already exists." msgstr "" #: editor/project_settings_editor.cpp @@ -7866,10 +9301,6 @@ msgid "" msgstr "" #: editor/project_settings_editor.cpp -msgid "Already existing" -msgstr "" - -#: editor/project_settings_editor.cpp msgid "Add Input Action" msgstr "" @@ -7934,7 +9365,7 @@ msgid "Override For..." msgstr "" #: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp -msgid "Editor must be restarted for changes to take effect" +msgid "The editor must be restarted for changes to take effect." msgstr "" #: editor/project_settings_editor.cpp @@ -7995,11 +9426,11 @@ msgid "Locales Filter" msgstr "" #: editor/project_settings_editor.cpp -msgid "Show all locales" +msgid "Show All Locales" msgstr "" #: editor/project_settings_editor.cpp -msgid "Show only selected locales" +msgid "Show Selected Locales Only" msgstr "" #: editor/project_settings_editor.cpp @@ -8015,14 +9446,6 @@ msgid "AutoLoad" msgstr "" #: editor/property_editor.cpp -msgid "Ease In" -msgstr "" - -#: editor/property_editor.cpp -msgid "Ease Out" -msgstr "" - -#: editor/property_editor.cpp msgid "Zero" msgstr "" @@ -8096,7 +9519,7 @@ msgid "Suffix" msgstr "" #: editor/rename_dialog.cpp -msgid "Advanced options" +msgid "Advanced Options" msgstr "" #: editor/rename_dialog.cpp @@ -8353,8 +9776,8 @@ msgstr "" #: editor/scene_tree_dock.cpp #, fuzzy -msgid "Custom Node" -msgstr "Transition Nodas" +msgid "Other Node" +msgstr "IÅ¡trinti EfektÄ…" #: editor/scene_tree_dock.cpp msgid "Can't operate on nodes from a foreign scene!" @@ -8395,7 +9818,7 @@ msgid "Clear Inheritance" msgstr "" #: editor/scene_tree_dock.cpp -msgid "Open documentation" +msgid "Open Documentation" msgstr "" #: editor/scene_tree_dock.cpp @@ -8423,7 +9846,7 @@ msgstr "" msgid "Save Branch as Scene" msgstr "" -#: editor/scene_tree_dock.cpp +#: editor/scene_tree_dock.cpp editor/script_editor_debugger.cpp msgid "Copy Node Path" msgstr "" @@ -8466,6 +9889,19 @@ msgid "Toggle Visible" msgstr "" #: editor/scene_tree_editor.cpp +#, fuzzy +msgid "Unlock Node" +msgstr "OneShot Nodas" + +#: editor/scene_tree_editor.cpp +msgid "Button Group" +msgstr "" + +#: editor/scene_tree_editor.cpp +msgid "(Connecting From)" +msgstr "" + +#: editor/scene_tree_editor.cpp msgid "Node configuration warning:" msgstr "" @@ -8487,9 +9923,9 @@ msgid "" "Click to show groups dock." msgstr "" -#: editor/scene_tree_editor.cpp editor/script_create_dialog.cpp +#: editor/scene_tree_editor.cpp #, fuzzy -msgid "Open Script" +msgid "Open Script:" msgstr "Atidaryti Skriptų Editorių" #: editor/scene_tree_editor.cpp @@ -8535,72 +9971,76 @@ msgid "Select a Node" msgstr "" #: editor/script_create_dialog.cpp -msgid "Error loading template '%s'" +msgid "Path is empty." msgstr "" #: editor/script_create_dialog.cpp -msgid "Error - Could not create script in filesystem." +msgid "Filename is empty." msgstr "" #: editor/script_create_dialog.cpp -msgid "Error loading script from %s" -msgstr "" - -#: editor/script_create_dialog.cpp -msgid "N/A" +msgid "Path is not local." msgstr "" #: editor/script_create_dialog.cpp #, fuzzy -msgid "Open Script/Choose Location" -msgstr "Atidaryti Skriptų Editorių" +msgid "Invalid base path." +msgstr "Netinkamas Å¡rifto dydis." #: editor/script_create_dialog.cpp -msgid "Path is empty" +msgid "A directory with the same name exists." msgstr "" #: editor/script_create_dialog.cpp -msgid "Filename is empty" -msgstr "" +#, fuzzy +msgid "Invalid extension." +msgstr "Netinkamas Å¡rifto dydis." #: editor/script_create_dialog.cpp -msgid "Path is not local" +msgid "Wrong extension chosen." msgstr "" #: editor/script_create_dialog.cpp -msgid "Invalid base path" +msgid "Error loading template '%s'" msgstr "" #: editor/script_create_dialog.cpp -msgid "Directory of the same name exists" +msgid "Error - Could not create script in filesystem." msgstr "" #: editor/script_create_dialog.cpp -msgid "File exists, will be reused" +msgid "Error loading script from %s" msgstr "" #: editor/script_create_dialog.cpp -msgid "Invalid extension" +msgid "N/A" msgstr "" #: editor/script_create_dialog.cpp -msgid "Wrong extension chosen" -msgstr "" +#, fuzzy +msgid "Open Script / Choose Location" +msgstr "Atidaryti Skriptų Editorių" #: editor/script_create_dialog.cpp -msgid "Invalid Path" -msgstr "" +#, fuzzy +msgid "Open Script" +msgstr "Atidaryti Skriptų Editorių" #: editor/script_create_dialog.cpp -msgid "Invalid class name" +msgid "File exists, it will be reused." msgstr "" #: editor/script_create_dialog.cpp -msgid "Invalid inherited parent name or path" +#, fuzzy +msgid "Invalid class name." +msgstr "Netinkamas Å¡rifto dydis." + +#: editor/script_create_dialog.cpp +msgid "Invalid inherited parent name or path." msgstr "" #: editor/script_create_dialog.cpp -msgid "Script valid" +msgid "Script is valid." msgstr "" #: editor/script_create_dialog.cpp @@ -8608,15 +10048,16 @@ msgid "Allowed: a-z, A-Z, 0-9 and _" msgstr "" #: editor/script_create_dialog.cpp -msgid "Built-in script (into scene file)" +msgid "Built-in script (into scene file)." msgstr "" #: editor/script_create_dialog.cpp -msgid "Create new script file" -msgstr "" +#, fuzzy +msgid "Will create a new script file." +msgstr "Sukurti NaujÄ…" #: editor/script_create_dialog.cpp -msgid "Load existing script file" +msgid "Will load an existing script file." msgstr "" #: editor/script_create_dialog.cpp @@ -8747,6 +10188,10 @@ msgstr "" msgid "Set From Tree" msgstr "" +#: editor/script_editor_debugger.cpp +msgid "Export measures as CSV" +msgstr "" + #: editor/settings_config_dialog.cpp msgid "Erase Shortcut" msgstr "" @@ -8876,6 +10321,14 @@ msgid "GDNativeLibrary" msgstr "" #: modules/gdnative/gdnative_library_singleton_editor.cpp +msgid "Enabled GDNative Singleton" +msgstr "" + +#: modules/gdnative/gdnative_library_singleton_editor.cpp +msgid "Disabled GDNative Singleton" +msgstr "" + +#: modules/gdnative/gdnative_library_singleton_editor.cpp msgid "Library" msgstr "" @@ -8961,8 +10414,9 @@ msgid "GridMap Fill Selection" msgstr "Visas Pasirinkimas" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "GridMap Duplicate Selection" -msgstr "" +#, fuzzy +msgid "GridMap Paste Selection" +msgstr "Visas Pasirinkimas" #: modules/gridmap/grid_map_editor_plugin.cpp msgid "GridMap Paint" @@ -9029,18 +10483,6 @@ msgid "Cursor Clear Rotation" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Create Area" -msgstr "" - -#: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Create Exterior Connector" -msgstr "" - -#: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Erase Area" -msgstr "" - -#: modules/gridmap/grid_map_editor_plugin.cpp msgid "Clear Selection" msgstr "Panaikinti pasirinkimÄ…" @@ -9394,15 +10836,7 @@ msgid "Available Nodes:" msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Select or create a function to edit graph" -msgstr "" - -#: modules/visual_script/visual_script_editor.cpp -msgid "Edit Signal Arguments:" -msgstr "" - -#: modules/visual_script/visual_script_editor.cpp -msgid "Edit Variable:" +msgid "Select or create a function to edit its graph." msgstr "" #: modules/visual_script/visual_script_editor.cpp @@ -9533,6 +10967,19 @@ msgid "Debug keystore not configured in the Editor Settings nor in the preset." msgstr "" #: platform/android/export/export.cpp +msgid "Custom build requires a valid Android SDK path in Editor Settings." +msgstr "" + +#: platform/android/export/export.cpp +msgid "Invalid Android SDK path for custom build in Editor Settings." +msgstr "" + +#: platform/android/export/export.cpp +msgid "" +"Android project is not installed for compiling. Install from Editor menu." +msgstr "" + +#: platform/android/export/export.cpp msgid "Invalid public key for APK expansion." msgstr "" @@ -9541,6 +10988,34 @@ msgstr "" msgid "Invalid package name:" msgstr "Netinkamas Å¡rifto dydis." +#: platform/android/export/export.cpp +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 "" +"Android build version mismatch:\n" +" Template installed: %s\n" +" Godot Version: %s\n" +"Please reinstall Android build template from 'Project' menu." +msgstr "" + +#: platform/android/export/export.cpp +msgid "Building Android Project (gradle)" +msgstr "" + +#: 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 "" + +#: platform/android/export/export.cpp +msgid "No build apk generated at: " +msgstr "" + #: platform/iphone/export/export.cpp msgid "Identifier is missing." msgstr "" @@ -9797,27 +11272,27 @@ msgid "ARVRCamera must have an ARVROrigin node as its parent" msgstr "" #: scene/3d/arvr_nodes.cpp -msgid "ARVRController must have an ARVROrigin node as its parent" +msgid "ARVRController must have an ARVROrigin node as its parent." msgstr "" #: scene/3d/arvr_nodes.cpp msgid "" -"The controller id must not be 0 or this controller will not be bound to an " -"actual controller" +"The controller ID must not be 0 or this controller won't be bound to an " +"actual controller." msgstr "" #: scene/3d/arvr_nodes.cpp -msgid "ARVRAnchor must have an ARVROrigin node as its parent" +msgid "ARVRAnchor must have an ARVROrigin node as its parent." msgstr "" #: scene/3d/arvr_nodes.cpp msgid "" -"The anchor id must not be 0 or this anchor will not be bound to an actual " -"anchor" +"The anchor ID must not be 0 or this anchor won't be bound to an actual " +"anchor." msgstr "" #: scene/3d/arvr_nodes.cpp -msgid "ARVROrigin requires an ARVRCamera child node" +msgid "ARVROrigin requires an ARVRCamera child node." msgstr "" #: scene/3d/baked_lightmap.cpp @@ -9887,8 +11362,8 @@ msgstr "" #: scene/3d/cpu_particles.cpp msgid "" -"CPUParticles animation requires the usage of a SpatialMaterial with " -"\"Billboard Particles\" enabled." +"CPUParticles animation requires the usage of a SpatialMaterial whose " +"Billboard Mode is set to \"Particle Billboard\"." msgstr "" #: scene/3d/gi_probe.cpp @@ -9927,8 +11402,8 @@ msgstr "" #: scene/3d/particles.cpp msgid "" -"Particles animation requires the usage of a SpatialMaterial with \"Billboard " -"Particles\" enabled." +"Particles animation requires the usage of a SpatialMaterial whose Billboard " +"Mode is set to \"Particle Billboard\"." msgstr "" #: scene/3d/path.cpp @@ -9953,7 +11428,7 @@ msgid "Path property must point to a valid Spatial node to work." msgstr "" #: scene/3d/soft_body.cpp -msgid "This body will be ignored until you set a mesh" +msgid "This body will be ignored until you set a mesh." msgstr "" #: scene/3d/soft_body.cpp @@ -10055,7 +11530,7 @@ msgstr "" msgid "" "Container by itself serves no purpose unless a script configures it's " "children placement behavior.\n" -"If you dont't intend to add a script, then please use a plain 'Control' node " +"If you don't intend to add a script, then please use a plain 'Control' node " "instead." msgstr "" @@ -10067,10 +11542,6 @@ msgstr "Ä®spÄ—jimas!" msgid "Please Confirm..." msgstr "PraÅ¡ome Patvirtinti..." -#: scene/gui/file_dialog.cpp -msgid "Go to parent folder." -msgstr "" - #: scene/gui/popup.cpp msgid "" "Popups will hide by default unless you call popup() or any of the popup*() " @@ -10144,6 +11615,17 @@ msgstr "" msgid "Varyings can only be assigned in vertex function." msgstr "" +#: servers/visual/shader_language.cpp +msgid "Constants cannot be modified." +msgstr "" + +#~ msgid "Path to Node:" +#~ msgstr "Kelias iki Nodo:" + +#, fuzzy +#~ msgid "Custom Node" +#~ msgstr "Transition Nodas" + #~ msgid "Line:" #~ msgstr "Linija:" @@ -10151,10 +11633,6 @@ msgstr "" #~ msgstr "Stulpelis:" #, fuzzy -#~ msgid "Remove Split" -#~ msgstr "Panaikinti pasirinkimÄ…" - -#, fuzzy #~ msgid "Zoom out" #~ msgstr "Nutolinti" @@ -10166,9 +11644,6 @@ msgstr "" #~ msgid "Zoom:" #~ msgstr "Priartinti" -#~ msgid "Disabled" -#~ msgstr "IÅ¡jungta" - #~ msgid "Move Anim Track Up" #~ msgstr "Animacija: Perkelti Takelį AukÅ¡tyn" @@ -10185,8 +11660,5 @@ msgstr "" #~ msgid "Stop Profiling" #~ msgstr "Baigti ProfiliavimÄ…" -#~ msgid "Start Profiling" -#~ msgstr "PradÄ—ti ProfiliavimÄ…" - #~ msgid "last" #~ msgstr "paskutinis" diff --git a/editor/translations/lv.po b/editor/translations/lv.po index a8acaaf300..88a44ac770 100644 --- a/editor/translations/lv.po +++ b/editor/translations/lv.po @@ -72,6 +72,14 @@ msgstr "BalancÄ“ts" msgid "Mirror" msgstr "" +#: editor/animation_bezier_editor.cpp editor/editor_profiler.cpp +msgid "Time:" +msgstr "" + +#: editor/animation_bezier_editor.cpp +msgid "Value:" +msgstr "" + #: editor/animation_bezier_editor.cpp msgid "Insert Key Here" msgstr "" @@ -157,14 +165,20 @@ msgid "Animation Playback Track" msgstr "AnimÄcijas atskaņoÅ¡anas celiņs" #: editor/animation_track_editor.cpp -msgid "Add Track" -msgstr "Pievienot celiņu" +#, fuzzy +msgid "Animation length (frames)" +msgstr "AnimÄcijas Garums (sekundes)" #: editor/animation_track_editor.cpp -msgid "Animation Length Time (seconds)" +#, fuzzy +msgid "Animation length (seconds)" msgstr "AnimÄcijas Garums (sekundes)" #: editor/animation_track_editor.cpp +msgid "Add Track" +msgstr "Pievienot celiņu" + +#: editor/animation_track_editor.cpp msgid "Animation Looping" msgstr "AnimÄciju Cilpa" @@ -291,11 +305,13 @@ msgid "Create %d NEW tracks and insert keys?" msgstr "Izveidot %d JAUNU celiņu un ievietot atslÄ“gievietni?" #: editor/animation_track_editor.cpp editor/create_dialog.cpp -#: editor/editor_audio_buses.cpp editor/editor_plugin_settings.cpp -#: editor/plugin_config_dialog.cpp +#: editor/editor_audio_buses.cpp editor/editor_feature_profile.cpp +#: editor/editor_plugin_settings.cpp editor/plugin_config_dialog.cpp #: editor/plugins/abstract_polygon_2d_editor.cpp #: editor/plugins/mesh_instance_editor_plugin.cpp -#: editor/plugins/particles_editor_plugin.cpp editor/script_create_dialog.cpp +#: editor/plugins/particles_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_create_dialog.cpp msgid "Create" msgstr "Izveidot" @@ -415,6 +431,23 @@ msgid "" msgstr "" #: editor/animation_track_editor.cpp +msgid "" +"This animation belongs to an imported scene, so changes to imported tracks " +"will not be saved.\n" +"\n" +"To enable the ability to add custom tracks, navigate to the scene's import " +"settings and set\n" +"\"Animation > Storage\" to \"Files\", enable \"Animation > Keep Custom Tracks" +"\", then re-import.\n" +"Alternatively, use an import preset that imports animations to separate " +"files." +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Warning: Editing imported animation" +msgstr "" + +#: editor/animation_track_editor.cpp msgid "Only show tracks from nodes selected in tree." msgstr "RÄdÄ«t celiņus tikai no mezgliem izvÄ“lÄ“tajÄ kokÄ." @@ -551,7 +584,8 @@ msgstr "MÄ“roga AttiecÄ«ba:" msgid "Select tracks to copy:" msgstr "" -#: editor/animation_track_editor.cpp editor/editor_properties.cpp +#: editor/animation_track_editor.cpp editor/editor_log.cpp +#: editor/editor_properties.cpp #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp @@ -620,6 +654,11 @@ msgstr "" msgid "Selection Only" msgstr "" +#: editor/code_editor.cpp editor/plugins/script_text_editor.cpp +#: editor/plugins/text_editor.cpp +msgid "Standard" +msgstr "" + #: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/texture_region_editor_plugin.cpp #: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp @@ -645,17 +684,32 @@ msgid "Line and column numbers." msgstr "" #: editor/connections_dialog.cpp -msgid "Method in target Node must be specified!" +msgid "Method in target node must be specified." msgstr "" #: editor/connections_dialog.cpp msgid "" -"Target method not found! Specify a valid method or attach a script to target " -"Node." +"Target method not found. Specify a valid method or attach a script to the " +"target node." msgstr "" #: editor/connections_dialog.cpp -msgid "Connect To Node:" +#, fuzzy +msgid "Connect to Node:" +msgstr "Savienot" + +#: editor/connections_dialog.cpp +#, fuzzy +msgid "Connect to Script:" +msgstr "Savieno SignÄlu:" + +#: editor/connections_dialog.cpp +#, fuzzy +msgid "From Signal:" +msgstr "Savieno SignÄlu:" + +#: editor/connections_dialog.cpp +msgid "Scene does not contain any script." msgstr "" #: editor/connections_dialog.cpp editor/editor_autoload_settings.cpp @@ -665,10 +719,12 @@ msgid "Add" msgstr "Pievienot" #: editor/connections_dialog.cpp editor/dependency_editor.cpp -#: editor/groups_editor.cpp editor/plugins/animation_player_editor_plugin.cpp +#: editor/editor_feature_profile.cpp editor/groups_editor.cpp +#: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp #: editor/plugins/resource_preloader_editor_plugin.cpp -#: editor/plugins/theme_editor_plugin.cpp editor/project_manager.cpp +#: editor/plugins/theme_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_manager.cpp #: editor/project_settings_editor.cpp msgid "Remove" msgstr "Noņemt" @@ -682,21 +738,32 @@ msgid "Extra Call Arguments:" msgstr "" #: editor/connections_dialog.cpp -msgid "Path to Node:" -msgstr "" +#, fuzzy +msgid "Advanced" +msgstr "BalancÄ“ts" #: editor/connections_dialog.cpp -msgid "Make Function" -msgstr "Izveidot Funkciju" +msgid "Deferred" +msgstr "" #: editor/connections_dialog.cpp -msgid "Deferred" +msgid "" +"Defers the signal, storing it in a queue and only firing it at idle time." msgstr "" #: editor/connections_dialog.cpp msgid "Oneshot" msgstr "" +#: editor/connections_dialog.cpp +msgid "Disconnects the signal after its first emission." +msgstr "" + +#: editor/connections_dialog.cpp +#, fuzzy +msgid "Cannot connect signal" +msgstr "Savieno SignÄlu:" + #: editor/connections_dialog.cpp editor/dependency_editor.cpp #: editor/export_template_manager.cpp editor/groups_editor.cpp #: editor/plugins/animation_player_editor_plugin.cpp @@ -739,12 +806,13 @@ msgstr "" #: editor/connections_dialog.cpp #, fuzzy -msgid "Connect Signal: " +msgid "Connect a Signal to a Method" msgstr "Savieno SignÄlu:" #: editor/connections_dialog.cpp -msgid "Edit Connection: " -msgstr "" +#, fuzzy +msgid "Edit Connection:" +msgstr "Savieno SignÄlu:" #: editor/connections_dialog.cpp msgid "Are you sure you want to remove all connections from the \"%s\" signal?" @@ -775,7 +843,6 @@ msgid "Change %s Type" msgstr "NomainÄ«t %s Tipu" #: editor/create_dialog.cpp editor/project_settings_editor.cpp -#: modules/visual_script/visual_script_editor.cpp msgid "Change" msgstr "NomainÄ«t" @@ -806,7 +873,8 @@ msgid "Matches:" msgstr "" #: editor/create_dialog.cpp editor/plugin_config_dialog.cpp -#: editor/plugins/asset_library_editor_plugin.cpp editor/property_selector.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/property_selector.cpp #: modules/visual_script/visual_script_property_selector.cpp msgid "Description:" msgstr "Apraksts:" @@ -822,13 +890,13 @@ msgstr "" #: editor/dependency_editor.cpp msgid "" "Scene '%s' is currently being edited.\n" -"Changes will not take effect unless reloaded." +"Changes will only take effect when reloaded." msgstr "" #: editor/dependency_editor.cpp msgid "" "Resource '%s' is in use.\n" -"Changes will take effect when reloaded." +"Changes will only take effect when reloaded." msgstr "" #: editor/dependency_editor.cpp @@ -924,21 +992,14 @@ msgid "Permanently delete %d item(s)? (No undo!)" msgstr "" #: editor/dependency_editor.cpp -msgid "Owns" -msgstr "Pieder" - -#: editor/dependency_editor.cpp -msgid "Resources Without Explicit Ownership:" -msgstr "" +#, fuzzy +msgid "Show Dependencies" +msgstr "Salabot dependecÄ«ju" #: editor/dependency_editor.cpp editor/editor_node.cpp msgid "Orphan Resource Explorer" msgstr "" -#: editor/dependency_editor.cpp -msgid "Delete selected files?" -msgstr "IzdzÄ“st izvÄ“lÄ“tos failus?" - #: editor/dependency_editor.cpp editor/editor_audio_buses.cpp #: editor/editor_file_dialog.cpp editor/editor_node.cpp #: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp @@ -947,6 +1008,14 @@ msgstr "IzdzÄ“st izvÄ“lÄ“tos failus?" msgid "Delete" msgstr "IzdzÄ“st" +#: editor/dependency_editor.cpp +msgid "Owns" +msgstr "Pieder" + +#: editor/dependency_editor.cpp +msgid "Resources Without Explicit Ownership:" +msgstr "" + #: editor/dictionary_property_edit.cpp msgid "Change Dictionary Key" msgstr "" @@ -1060,7 +1129,7 @@ msgstr "" msgid "Success!" msgstr "IzdevÄs!" -#: editor/editor_asset_installer.cpp +#: editor/editor_asset_installer.cpp editor/editor_node.cpp #: editor/plugins/asset_library_editor_plugin.cpp msgid "Install" msgstr "IeinstalÄ“t" @@ -1187,7 +1256,11 @@ msgid "Open Audio Bus Layout" msgstr "" #: editor/editor_audio_buses.cpp -msgid "There is no 'res://default_bus_layout.tres' file." +msgid "There is no '%s' file." +msgstr "" + +#: editor/editor_audio_buses.cpp editor/plugins/canvas_item_editor_plugin.cpp +msgid "Layout" msgstr "" #: editor/editor_audio_buses.cpp @@ -1241,19 +1314,28 @@ msgid "Valid characters:" msgstr "DerÄ«gie simboli:" #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing engine class name." +#, fuzzy +msgid "Must not collide with an existing engine class name." msgstr "" "NederÄ«gs nosaukums. NedrÄ«kst sadurties ar eksistÄ“joÅ¡u dzinÄ“ja klases " "nosaukumu." #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing buit-in type name." +#, fuzzy +msgid "Must not collide with an existing buit-in type name." msgstr "" "NederÄ«gs nosaukums. NedrÄ«kst sadurties ar eksistÄ“joÅ¡u iebÅ«vÄ“to tipa " "nosaukumu." #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing global constant name." +#, fuzzy +msgid "Must not collide with an existing global constant name." +msgstr "" +"NederÄ«gs nosaukums. NedrÄ«kst sadurties ar eksistÄ“joÅ¡u dzinÄ“ja klases " +"nosaukumu." + +#: editor/editor_autoload_settings.cpp +msgid "Keyword cannot be used as an autoload name." msgstr "" #: editor/editor_autoload_settings.cpp @@ -1284,11 +1366,12 @@ msgstr "IespÄ“jot" msgid "Rearrange Autoloads" msgstr "" -#: editor/editor_autoload_settings.cpp -msgid "Invalid Path." -msgstr "" +#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp +#, fuzzy +msgid "Invalid path." +msgstr "NederÄ«gs nosaukums." -#: editor/editor_autoload_settings.cpp +#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp msgid "File does not exist." msgstr "" @@ -1339,7 +1422,7 @@ msgid "[unsaved]" msgstr "[nesaglabÄts]" #: editor/editor_dir_dialog.cpp -msgid "Please select a base directory first" +msgid "Please select a base directory first." msgstr "" #: editor/editor_dir_dialog.cpp @@ -1347,7 +1430,8 @@ msgid "Choose a Directory" msgstr "" #: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp -#: editor/filesystem_dock.cpp scene/gui/file_dialog.cpp +#: editor/filesystem_dock.cpp editor/project_manager.cpp +#: scene/gui/file_dialog.cpp msgid "Create Folder" msgstr "" @@ -1415,6 +1499,158 @@ msgstr "" msgid "Template file not found:" msgstr "" +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "3D Editor" +msgstr "Rediģēt" + +#: editor/editor_feature_profile.cpp +msgid "Script Editor" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Asset Library" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Scene Tree Editing" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Import Dock" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Node Dock" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Filesystem Dock" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Erase profile '%s'? (no undo)" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Profile must be a valid filename and must not contain '.'" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Profile with this name already exists." +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "(Editor Disabled, Properties Disabled)" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "(Properties Disabled)" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "(Editor Disabled)" +msgstr "AtspÄ“jots" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Class Options:" +msgstr "Apraksts:" + +#: editor/editor_feature_profile.cpp +msgid "Enable Contextual Editor" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enabled Properties:" +msgstr "AnimÄcijas Ä«pašības." + +#: editor/editor_feature_profile.cpp +msgid "Enabled Features:" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Enabled Classes:" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "File '%s' format is invalid, import aborted." +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "" +"Profile '%s' already exists. Remote it first before importing, import " +"aborted." +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Error saving profile to path: '%s'." +msgstr "Kļūmes lÄdÄ“jot!" + +#: editor/editor_feature_profile.cpp +msgid "Unset" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Current Profile" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Make Current" +msgstr "Izveidot Funkciju" + +#: editor/editor_feature_profile.cpp +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "New" +msgstr "" + +#: editor/editor_feature_profile.cpp editor/editor_node.cpp +#: editor/plugins/asset_library_editor_plugin.cpp editor/project_manager.cpp +msgid "Import" +msgstr "" + +#: editor/editor_feature_profile.cpp editor/editor_node.cpp +#: editor/project_export.cpp +msgid "Export" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Available Profiles" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Enabled Classes" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Class Options" +msgstr "Apraksts:" + +#: editor/editor_feature_profile.cpp +msgid "New profile name:" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Erase Profile" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Import Profile(s)" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Export Profile" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Manage Editor Feature Profiles" +msgstr "" + #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Select Current Folder" msgstr "" @@ -1437,8 +1673,8 @@ msgstr "" msgid "Open in File Manager" msgstr "AtvÄ“rt" -#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp -#: editor/project_manager.cpp +#: editor/editor_file_dialog.cpp editor/editor_node.cpp +#: editor/filesystem_dock.cpp editor/project_manager.cpp msgid "Show in File Manager" msgstr "" @@ -1497,7 +1733,7 @@ msgstr "" msgid "Go Up" msgstr "" -#: editor/editor_file_dialog.cpp +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Toggle Hidden Files" msgstr "" @@ -1531,14 +1767,18 @@ msgstr "IzvÄ“lÄ“ties Å¡o Mapi" msgid "Next Folder" msgstr "IzvÄ“lÄ“ties Å¡o Mapi" -#: editor/editor_file_dialog.cpp -msgid "Go to parent folder" +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp +msgid "Go to parent folder." msgstr "" #: editor/editor_file_dialog.cpp msgid "(Un)favorite current folder." msgstr "" +#: editor/editor_file_dialog.cpp +msgid "Toggle visibility of hidden files." +msgstr "" + #: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp msgid "View items as a grid of thumbnails." msgstr "" @@ -1553,6 +1793,7 @@ msgstr "" #: editor/editor_file_dialog.cpp editor/plugins/sprite_editor_plugin.cpp #: editor/plugins/style_box_editor_plugin.cpp +#: editor/plugins/theme_editor_plugin.cpp msgid "Preview:" msgstr "" @@ -1569,6 +1810,12 @@ msgid "ScanSources" msgstr "" #: editor/editor_file_system.cpp +msgid "" +"There are multiple importers for different types pointing to file %s, import " +"aborted" +msgstr "" + +#: editor/editor_file_system.cpp msgid "(Re)Importing Assets" msgstr "" @@ -1751,6 +1998,11 @@ msgstr "" msgid "Output:" msgstr "" +#: editor/editor_log.cpp editor/plugins/tile_map_editor_plugin.cpp +#, fuzzy +msgid "Copy Selection" +msgstr "Noņemt IzvÄ“lÄ“to" + #: editor/editor_log.cpp editor/editor_profiler.cpp #: editor/editor_properties.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp @@ -1898,7 +2150,7 @@ msgstr "" #: editor/editor_node.cpp msgid "" "This resource belongs to a scene that was instanced or inherited.\n" -"Changes to it will not be kept when saving the current scene." +"Changes to it won't be kept when saving the current scene." msgstr "" #: editor/editor_node.cpp @@ -1909,7 +2161,7 @@ msgstr "" #: editor/editor_node.cpp msgid "" -"This scene was imported, so changes to it will not be kept.\n" +"This scene was imported, so changes to it won't be kept.\n" "Instancing it or inheriting will allow making changes to it.\n" "Please read the documentation relevant to importing scenes to better " "understand this workflow." @@ -1917,7 +2169,7 @@ msgstr "" #: editor/editor_node.cpp msgid "" -"This is a remote object so changes to it will not be kept.\n" +"This is a remote object, so changes to it won't be kept.\n" "Please read the documentation relevant to debugging to better understand " "this workflow." msgstr "" @@ -1927,27 +2179,6 @@ msgid "There is no defined scene to run." msgstr "" #: editor/editor_node.cpp -msgid "" -"No main scene has ever been defined, select one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" - -#: editor/editor_node.cpp -msgid "" -"Selected scene '%s' does not exist, select a valid one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" - -#: editor/editor_node.cpp -msgid "" -"Selected scene '%s' is not a scene file, select a valid one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" - -#: editor/editor_node.cpp msgid "Current scene was never saved, please save it prior to running." msgstr "" @@ -1955,7 +2186,7 @@ msgstr "" msgid "Could not start subprocess!" msgstr "" -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/filesystem_dock.cpp msgid "Open Scene" msgstr "" @@ -1964,6 +2195,11 @@ msgid "Open Base Scene" msgstr "" #: editor/editor_node.cpp +#, fuzzy +msgid "Quick Open..." +msgstr "AtvÄ“rt" + +#: editor/editor_node.cpp msgid "Quick Open Scene..." msgstr "" @@ -2125,6 +2361,27 @@ msgid "Clear Recent Scenes" msgstr "" #: editor/editor_node.cpp +msgid "" +"No main scene has ever been defined, select one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"Selected scene '%s' does not exist, select a valid one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"Selected scene '%s' is not a scene file, select a valid one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" + +#: editor/editor_node.cpp msgid "Save Layout" msgstr "" @@ -2151,6 +2408,19 @@ msgstr "" msgid "Close Tab" msgstr "AizvÄ“rt" +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +msgid "Close Other Tabs" +msgstr "" + +#: editor/editor_node.cpp +msgid "Close Tabs to the Right" +msgstr "" + +#: editor/editor_node.cpp +#, fuzzy +msgid "Close All Tabs" +msgstr "AizvÄ“rt" + #: editor/editor_node.cpp msgid "Switch Scene Tab" msgstr "" @@ -2274,10 +2544,6 @@ msgstr "" msgid "Project Settings" msgstr "" -#: editor/editor_node.cpp editor/project_export.cpp -msgid "Export" -msgstr "" - #: editor/editor_node.cpp editor/plugins/tile_set_editor_plugin.cpp msgid "Tools" msgstr "" @@ -2288,6 +2554,10 @@ msgid "Open Project Data Folder" msgstr "Projekta DibinÄtÄji" #: editor/editor_node.cpp +msgid "Install Android Build Template" +msgstr "" + +#: editor/editor_node.cpp msgid "Quit to Project List" msgstr "" @@ -2392,6 +2662,10 @@ msgstr "" msgid "Open Editor Settings Folder" msgstr "" +#: editor/editor_node.cpp +msgid "Manage Editor Features" +msgstr "" + #: editor/editor_node.cpp editor/project_export.cpp msgid "Manage Export Templates" msgstr "" @@ -2404,6 +2678,7 @@ msgstr "" #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp #: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp #: editor/project_settings_editor.cpp editor/rename_dialog.cpp msgid "Search" msgstr "" @@ -2493,11 +2768,6 @@ msgstr "" msgid "Disable Update Spinner" msgstr "" -#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp -#: editor/project_manager.cpp -msgid "Import" -msgstr "" - #: editor/editor_node.cpp msgid "FileSystem" msgstr "" @@ -2523,6 +2793,27 @@ msgid "Don't Save" msgstr "" #: editor/editor_node.cpp +msgid "Android build template is missing, please install relevant templates." +msgstr "" + +#: editor/editor_node.cpp +msgid "Manage Templates" +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"This will install the Android project for custom builds.\n" +"Note that, in order to use it, it needs to be enabled per export preset." +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"Android build template is already installed and it won't be overwritten.\n" +"Remove the \"build\" directory manually before attempting this operation " +"again." +msgstr "" + +#: editor/editor_node.cpp msgid "Import Templates From ZIP File" msgstr "" @@ -2645,10 +2936,6 @@ msgid "Physics Frame %" msgstr "" #: editor/editor_profiler.cpp -msgid "Time:" -msgstr "" - -#: editor/editor_profiler.cpp msgid "Inclusive" msgstr "" @@ -2784,10 +3071,6 @@ msgid "Remove Item" msgstr "" #: editor/editor_run_native.cpp -msgid "Select device from the list" -msgstr "" - -#: editor/editor_run_native.cpp msgid "" "No runnable export preset found for this platform.\n" "Please add a runnable preset in the export menu." @@ -2821,6 +3104,10 @@ msgstr "" msgid "Select Node(s) to Import" msgstr "" +#: editor/editor_sub_scene.cpp editor/project_manager.cpp +msgid "Browse" +msgstr "" + #: editor/editor_sub_scene.cpp msgid "Scene Path:" msgstr "" @@ -2983,6 +3270,10 @@ msgid "SSL Handshake Error" msgstr "" #: editor/export_template_manager.cpp +msgid "Uncompressing Android Build Sources" +msgstr "" + +#: editor/export_template_manager.cpp msgid "Current Version:" msgstr "" @@ -2999,8 +3290,9 @@ msgid "Remove Template" msgstr "" #: editor/export_template_manager.cpp -msgid "Select template file" -msgstr "" +#, fuzzy +msgid "Select Template File" +msgstr "IzvÄ“lÄ“ties Å¡o Mapi" #: editor/export_template_manager.cpp msgid "Export Template Manager" @@ -3056,7 +3348,7 @@ msgid "No name provided." msgstr "" #: editor/filesystem_dock.cpp -msgid "Provided name contains invalid characters" +msgid "Provided name contains invalid characters." msgstr "" #: editor/filesystem_dock.cpp @@ -3084,21 +3376,27 @@ msgid "Duplicating folder:" msgstr "" #: editor/filesystem_dock.cpp -msgid "Open Scene(s)" +msgid "New Inherited Scene" msgstr "" #: editor/filesystem_dock.cpp +#, fuzzy +msgid "Open Scenes" +msgstr "Atjaunina Ainu" + +#: editor/filesystem_dock.cpp msgid "Instance" msgstr "" #: editor/filesystem_dock.cpp #, fuzzy -msgid "Add to favorites" +msgid "Add to Favorites" msgstr "FavorÄ«ti:" #: editor/filesystem_dock.cpp -msgid "Remove from favorites" -msgstr "" +#, fuzzy +msgid "Remove from Favorites" +msgstr "FavorÄ«ti:" #: editor/filesystem_dock.cpp msgid "Edit Dependencies..." @@ -3129,11 +3427,13 @@ msgstr "" msgid "New Resource..." msgstr "Resurs" -#: editor/filesystem_dock.cpp editor/script_editor_debugger.cpp +#: editor/filesystem_dock.cpp editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_editor_debugger.cpp msgid "Expand All" msgstr "" -#: editor/filesystem_dock.cpp editor/script_editor_debugger.cpp +#: editor/filesystem_dock.cpp editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_editor_debugger.cpp msgid "Collapse All" msgstr "" @@ -3145,19 +3445,21 @@ msgid "Rename" msgstr "" #: editor/filesystem_dock.cpp -msgid "Previous Directory" -msgstr "" +#, fuzzy +msgid "Previous Folder/File" +msgstr "IzvÄ“lÄ“ties Å¡o Mapi" #: editor/filesystem_dock.cpp -msgid "Next Directory" -msgstr "" +#, fuzzy +msgid "Next Folder/File" +msgstr "IzvÄ“lÄ“ties Å¡o Mapi" #: editor/filesystem_dock.cpp msgid "Re-Scan Filesystem" msgstr "" #: editor/filesystem_dock.cpp -msgid "Toggle split mode" +msgid "Toggle Split Mode" msgstr "" #: editor/filesystem_dock.cpp @@ -3187,7 +3489,7 @@ msgstr "" msgid "Create Script" msgstr "" -#: editor/find_in_files.cpp +#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp #, fuzzy msgid "Find in Files" msgstr "NederÄ«gs nosaukums." @@ -3204,6 +3506,12 @@ msgstr "" msgid "Filters:" msgstr "" +#: editor/find_in_files.cpp +msgid "" +"Include the files with the following extensions. Add or remove them in " +"ProjectSettings." +msgstr "" + #: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp msgid "Find..." @@ -3642,7 +3950,7 @@ msgid "Open Animation Node" msgstr "AnimÄcijas tÄlummaiņa." #: editor/plugins/animation_blend_space_2d_editor.cpp -msgid "Triangle already exists" +msgid "Triangle already exists." msgstr "" #: editor/plugins/animation_blend_space_2d_editor.cpp @@ -3718,7 +4026,6 @@ msgid "Node Moved" msgstr "" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Unable to connect, port may be in use or connection may be invalid." msgstr "" @@ -3789,8 +4096,9 @@ msgid "Edit Filtered Tracks:" msgstr "" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -msgid "Enable filtering" -msgstr "" +#, fuzzy +msgid "Enable Filtering" +msgstr "NomainÄ«t" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Toggle Autoplay" @@ -3906,10 +4214,6 @@ msgid "Animation" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "New" -msgstr "" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Edit Transitions..." msgstr "" @@ -3926,11 +4230,11 @@ msgid "Autoplay on Load" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Onion Skinning" +msgid "Enable Onion Skinning" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Enable Onion Skinning" +msgid "Onion Skinning Options" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp @@ -4475,13 +4779,19 @@ msgid "Move CanvasItem" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"Children of containers have their anchors and margins values overridden by " +"their parent." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Presets for the anchors and margins values of a Control node." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "" -"Children of containers have their anchors and margins values overridden by " -"their parent." +"When active, moving Control nodes changes their anchors instead of their " +"margins." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4497,10 +4807,48 @@ msgid "Change Anchors" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Lock Selected" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Unlock Selected" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Group Selected" +msgstr "Noņemt IzvÄ“lÄ“to" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Ungroup Selected" +msgstr "Noņemt IzvÄ“lÄ“to" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Paste Pose" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Create Custom Bone(s) from Node(s)" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Clear Bones" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Make IK Chain" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Clear IK Chain" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "" "Warning: Children of a container get their position and size determined only " "by their parent." @@ -4574,7 +4922,7 @@ msgid "Snapping Options" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to grid" +msgid "Snap to Grid" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4595,31 +4943,31 @@ msgid "Use Pixel Snap" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Smart snapping" +msgid "Smart Snapping" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to parent" +msgid "Snap to Parent" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node anchor" +msgid "Snap to Node Anchor" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node sides" +msgid "Snap to Node Sides" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node center" +msgid "Snap to Node Center" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to other nodes" +msgid "Snap to Other Nodes" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to guides" +msgid "Snap to Guides" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4633,10 +4981,12 @@ msgid "Unlock the selected object (can be moved)." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Makes sure the object's children are not selectable." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Restores the object's children's ability to be selected." msgstr "" @@ -4649,14 +4999,6 @@ msgid "Show Bones" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Make IK Chain" -msgstr "" - -#: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Clear IK Chain" -msgstr "" - -#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Make Custom Bone(s) from Node(s)" msgstr "" @@ -4707,7 +5049,7 @@ msgid "Frame Selection" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Layout" +msgid "Preview Canvas Scale" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4760,6 +5102,10 @@ msgid "Divide grid step by 2" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Pan View" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Add %s" msgstr "" @@ -4782,8 +5128,9 @@ msgid "Error instancing scene from %s" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Change default type" -msgstr "" +#, fuzzy +msgid "Change Default Type" +msgstr "NomainÄ«t %s Tipu" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "" @@ -4869,19 +5216,19 @@ msgid "Create Emission Points From Node" msgstr "" #: editor/plugins/curve_editor_plugin.cpp -msgid "Flat0" +msgid "Flat 0" msgstr "" #: editor/plugins/curve_editor_plugin.cpp -msgid "Flat1" +msgid "Flat 1" msgstr "" -#: editor/plugins/curve_editor_plugin.cpp -msgid "Ease in" +#: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp +msgid "Ease In" msgstr "" -#: editor/plugins/curve_editor_plugin.cpp -msgid "Ease out" +#: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp +msgid "Ease Out" msgstr "" #: editor/plugins/curve_editor_plugin.cpp @@ -4901,24 +5248,29 @@ msgid "Load Curve Preset" msgstr "" #: editor/plugins/curve_editor_plugin.cpp -msgid "Add point" -msgstr "" +#, fuzzy +msgid "Add Point" +msgstr "FavorÄ«ti:" #: editor/plugins/curve_editor_plugin.cpp -msgid "Remove point" -msgstr "" +#, fuzzy +msgid "Remove Point" +msgstr "Noņemt IzvÄ“lÄ“to" #: editor/plugins/curve_editor_plugin.cpp -msgid "Left linear" -msgstr "" +#, fuzzy +msgid "Left Linear" +msgstr "LineÄrs" #: editor/plugins/curve_editor_plugin.cpp -msgid "Right linear" -msgstr "" +#, fuzzy +msgid "Right Linear" +msgstr "LineÄrs" #: editor/plugins/curve_editor_plugin.cpp -msgid "Load preset" -msgstr "" +#, fuzzy +msgid "Load Preset" +msgstr "IelÄdÄ“t NoklusÄ“jumu" #: editor/plugins/curve_editor_plugin.cpp msgid "Remove Curve Point" @@ -4973,14 +5325,19 @@ msgid "This doesn't work on scene root!" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Trimesh Shape" +msgid "Create Trimesh Static Shape" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Shape" +msgid "Failed creating shapes!" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp +#, fuzzy +msgid "Create Convex Shape(s)" +msgstr "Izveidot Jaunu %s" + +#: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Navigation Mesh" msgstr "" @@ -5030,16 +5387,13 @@ msgid "Create Trimesh Static Body" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Static Body" -msgstr "" - -#: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Trimesh Collision Sibling" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Collision Sibling" -msgstr "" +#, fuzzy +msgid "Create Convex Collision Sibling(s)" +msgstr "Izveidot" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Outline Mesh..." @@ -5192,20 +5546,20 @@ msgid "Create Navigation Polygon" msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp -msgid "Generating Visibility Rect" +#: editor/plugins/particles_editor_plugin.cpp +msgid "Convert to CPUParticles" msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp -msgid "Generate Visibility Rect" +msgid "Generating Visibility Rect" msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp -msgid "Can only set point into a ParticlesMaterial process material" +msgid "Generate Visibility Rect" msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp -#: editor/plugins/particles_editor_plugin.cpp -msgid "Convert to CPUParticles" +msgid "Can only set point into a ParticlesMaterial process material" msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp @@ -5347,7 +5701,7 @@ msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp editor/plugins/theme_editor_plugin.cpp -#: editor/project_export.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_export.cpp msgid "Options" msgstr "" @@ -5398,7 +5752,7 @@ msgid "Split Segment (in curve)" msgstr "" #: editor/plugins/physical_bone_plugin.cpp -msgid "Move joint" +msgid "Move Joint" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5635,7 +5989,6 @@ msgid "Open in Editor" msgstr "" #: editor/plugins/resource_preloader_editor_plugin.cpp -#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Load Resource" msgstr "" @@ -5731,6 +6084,11 @@ msgid "%s Class Reference" msgstr "" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp +msgid "Find Next" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp msgid "Toggle alphabetical sorting of the method list." msgstr "" @@ -5812,10 +6170,6 @@ msgstr "" msgid "Close All" msgstr "" -#: editor/plugins/script_editor_plugin.cpp -msgid "Close Other Tabs" -msgstr "" - #: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp msgid "Run" msgstr "" @@ -5824,11 +6178,6 @@ msgstr "" msgid "Toggle Scripts Panel" msgstr "" -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/script_text_editor.cpp -msgid "Find Next" -msgstr "" - #: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp msgid "Step Over" msgstr "" @@ -5855,7 +6204,7 @@ msgid "Debug with External Editor" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Open Godot online documentation" +msgid "Open Godot online documentation." msgstr "" #: editor/plugins/script_editor_plugin.cpp @@ -5863,7 +6212,7 @@ msgid "Request Docs" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Help improve the Godot documentation by giving feedback" +msgid "Help improve the Godot documentation by giving feedback." msgstr "" #: editor/plugins/script_editor_plugin.cpp @@ -5889,10 +6238,12 @@ msgid "" msgstr "" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp msgid "Reload" msgstr "" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp msgid "Resave" msgstr "" @@ -5906,6 +6257,30 @@ msgid "Search Results" msgstr "MeklÄ“t:" #: editor/plugins/script_text_editor.cpp +msgid "Connections to method:" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Source" +msgstr "Resurs" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Signal" +msgstr "SignÄli" + +#: editor/plugins/script_text_editor.cpp +msgid "Target" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "" +"Missing connected method '%s' for signal '%s' from node '%s' to node '%s'." +msgstr "Atvienot '%s' no '%s'" + +#: editor/plugins/script_text_editor.cpp #, fuzzy msgid "Line" msgstr "Rinda:" @@ -5919,10 +6294,6 @@ msgstr "" msgid "Go to Function" msgstr "Izveidot Funkciju" -#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp -msgid "Standard" -msgstr "" - #: editor/plugins/script_text_editor.cpp msgid "Only resources from filesystem can be dropped." msgstr "" @@ -5955,6 +6326,11 @@ msgstr "" msgid "Syntax Highlighter" msgstr "" +#: editor/plugins/script_text_editor.cpp +#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp +msgid "Bookmarks" +msgstr "" + #: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" @@ -5982,6 +6358,24 @@ msgid "Toggle Comment" msgstr "" #: editor/plugins/script_text_editor.cpp +msgid "Toggle Bookmark" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Go to Next Bookmark" +msgstr "Doties uz nÄkamo soli" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Go to Previous Bookmark" +msgstr "Doties uz iepriekšējo soli" + +#: editor/plugins/script_text_editor.cpp +msgid "Remove All Bookmarks" +msgstr "" + +#: editor/plugins/script_text_editor.cpp msgid "Fold/Unfold Line" msgstr "" @@ -6059,6 +6453,12 @@ msgid "Contextual Help" msgstr "" #: editor/plugins/shader_editor_plugin.cpp +msgid "" +"This shader has been modified on on disk.\n" +"What action should be taken?" +msgstr "" + +#: editor/plugins/shader_editor_plugin.cpp msgid "Shader" msgstr "" @@ -6396,7 +6796,7 @@ msgid "Right View" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Switch Perspective/Orthogonal view" +msgid "Switch Perspective/Orthogonal View" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp @@ -6436,11 +6836,12 @@ msgid "Toggle Freelook" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Transform" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Snap object to floor" +msgid "Snap Object to Floor" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp @@ -6585,40 +6986,40 @@ msgid "Invalid geometry, can't replace by mesh." msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Invalid geometry, can't create polygon." -msgstr "" - -#: editor/plugins/sprite_editor_plugin.cpp -msgid "Invalid geometry, can't create collision polygon." +msgid "Convert to Mesh2D" msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Invalid geometry, can't create light occluder." +msgid "Invalid geometry, can't create polygon." msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Sprite" -msgstr "" +#, fuzzy +msgid "Convert to Polygon2D" +msgstr "Izveidot" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Convert to Mesh2D" +msgid "Invalid geometry, can't create collision polygon." msgstr "" #: editor/plugins/sprite_editor_plugin.cpp #, fuzzy -msgid "Convert to Polygon2D" +msgid "Create CollisionPolygon2D Sibling" msgstr "Izveidot" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy -msgid "Create CollisionPolygon2D Sibling" -msgstr "Izveidot" +msgid "Invalid geometry, can't create light occluder." +msgstr "" #: editor/plugins/sprite_editor_plugin.cpp msgid "Create LightOccluder2D Sibling" msgstr "" #: editor/plugins/sprite_editor_plugin.cpp +msgid "Sprite" +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp msgid "Simplification: " msgstr "" @@ -6635,7 +7036,12 @@ msgid "Settings:" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "ERROR: Couldn't load frame resource!" +#, fuzzy +msgid "No Frames Selected" +msgstr "Savienot" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Add %d Frame(s)" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp @@ -6643,6 +7049,10 @@ msgid "Add Frame" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "ERROR: Couldn't load frame resource!" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Resource clipboard is empty or not a texture!" msgstr "" @@ -6686,6 +7096,15 @@ msgid "Animation Frames:" msgstr "AnimÄcijas Ä«pašības." #: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Add a Texture from File" +msgstr "Noņemt IzvÄ“lÄ“to" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Add Frames from a Sprite Sheet" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Insert Empty (Before)" msgstr "" @@ -6702,6 +7121,26 @@ msgid "Move (After)" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Select Frames" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Horizontal:" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Vertical:" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Select/Clear All Frames" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Create Frames from Sprite Sheet" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "SpriteFrames" msgstr "" @@ -6766,12 +7205,12 @@ msgstr "" msgid "Remove All Items" msgstr "" -#: editor/plugins/theme_editor_plugin.cpp +#: editor/plugins/theme_editor_plugin.cpp editor/project_manager.cpp msgid "Remove All" msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "Edit theme..." +msgid "Edit Theme" msgstr "" #: editor/plugins/theme_editor_plugin.cpp @@ -6799,18 +7238,24 @@ msgid "Create From Current Editor Theme" msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "CheckBox Radio1" +msgid "Toggle Button" msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "CheckBox Radio2" -msgstr "" +#, fuzzy +msgid "Disabled Button" +msgstr "AtspÄ“jots" #: editor/plugins/theme_editor_plugin.cpp msgid "Item" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Disabled Item" +msgstr "AtspÄ“jots" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Check Item" msgstr "" @@ -6827,6 +7272,22 @@ msgid "Checked Radio Item" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +msgid "Named Sep." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Submenu" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Item 1" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Item 2" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Has" msgstr "" @@ -6835,8 +7296,9 @@ msgid "Many" msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "Has,Many,Options" -msgstr "" +#, fuzzy +msgid "Disabled LineEdit" +msgstr "AtspÄ“jots" #: editor/plugins/theme_editor_plugin.cpp msgid "Tab 1" @@ -6851,6 +7313,18 @@ msgid "Tab 3" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +msgid "Editable Item" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Subtree" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Has,Many,Options" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Data Type:" msgstr "" @@ -6884,6 +7358,7 @@ msgid "Fix Invalid Tiles" msgstr "NederÄ«gs nosaukums." #: editor/plugins/tile_map_editor_plugin.cpp +#: modules/gridmap/grid_map_editor_plugin.cpp #, fuzzy msgid "Cut Selection" msgstr "DzÄ“st izvÄ“lÄ“tos" @@ -6925,36 +7400,45 @@ msgid "Mirror Y" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp +msgid "Disable Autotile" +msgstr "" + +#: editor/plugins/tile_map_editor_plugin.cpp +msgid "Enable Priority" +msgstr "" + +#: editor/plugins/tile_map_editor_plugin.cpp msgid "Paint Tile" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Pick Tile" +msgid "" +"Shift+RMB: Line Draw\n" +"Shift+Ctrl+RMB: Rectangle Paint" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy -msgid "Copy Selection" -msgstr "Noņemt IzvÄ“lÄ“to" +msgid "Pick Tile" +msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Rotate left" +msgid "Rotate Left" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Rotate right" +msgid "Rotate Right" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Flip horizontally" +msgid "Flip Horizontally" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Flip vertically" +msgid "Flip Vertically" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Clear transform" +msgid "Clear Transform" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp @@ -6991,6 +7475,43 @@ msgid "Select the previous shape, subtile, or Tile." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Region Mode" +msgstr "InterpolÄcijas režīms" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Collision Mode" +msgstr "InterpolÄcijas režīms" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Occlusion Mode" +msgstr "Izveidot" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Navigation Mode" +msgstr "Izveidot" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Bitmask Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Priority Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Icon Mode" +msgstr "MÄ“roga AttiecÄ«ba:" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Z Index Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp msgid "Copy bitmask." msgstr "" @@ -7077,6 +7598,7 @@ msgstr "Izveidot" msgid "" "LMB: Set bit on.\n" "RMB: Set bit off.\n" +"Shift+LMB: Set wildcard bit.\n" "Click on another Tile to edit it." msgstr "" @@ -7193,6 +7715,70 @@ msgid "TileSet" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add input +" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add output +" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Add input port" +msgstr "FavorÄ«ti:" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add output port" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change input port type" +msgstr "NomainÄ«t %s Tipu" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Change output port type" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Change input port name" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Change output port name" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Remove input port" +msgstr "Noņemt IzvÄ“lÄ“to" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Remove output port" +msgstr "Noņemt IzvÄ“lÄ“to" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Set expression" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Resize VisualShader node" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Set Uniform Name" msgstr "" @@ -7231,6 +7817,846 @@ msgid "Light" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Create Shader Node" +msgstr "Izveidot Jaunu %s" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Color function." +msgstr "Izveidot Funkciju" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Color operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Grayscale function." +msgstr "Izveidot Funkciju" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts HSV vector to RGB equivalent." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts RGB vector to HSV equivalent." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Sepia function." +msgstr "Izveidot Funkciju" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Burn operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Darken operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Difference operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Dodge operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "HardLight operator" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Lighten operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Overlay operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Screen operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "SoftLight operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Color constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Color uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns an associated vector if the provided scalars are equal, greater or " +"less." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns an associated vector if the provided boolean value is true or false." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'camera' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'inv_camera' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'inv_projection' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'normal' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'projection' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'time' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'viewport_size' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'world' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'texture_pixel_size' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Input parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'binormal' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'fragcoord' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_coord' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_uv' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'side' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'tangent' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv2' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'vertex' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'view' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'albedo' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'attenuation' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'diffuse' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_color' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'roughness' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'specular' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'transmission' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'modelview' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_size' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'tangent' input parameter for vertex and fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_pass' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_coord' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_pixel_size' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_uv' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_alpha' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_height' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_uv' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_vec' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'normal' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'shadow_color' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'extra' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'projection' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'vertex' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'world' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'active' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'custom' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'custom_alpha' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'delta' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'emission_transform' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'index' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'lifetime' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'restart' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'time' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'transform' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'velocity' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar function." +msgstr "MÄ“roga IzvÄ“le" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Scalar operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "E constant (2.718282). Represents the base of the natural logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Epsilon constant (0.00001). Smallest possible scalar number." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Phi constant (1.618034). Golden ratio." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi/4 constant (0.785398) or 45 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi/2 constant (1.570796) or 90 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi constant (3.141593) or 180 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Tau constant (6.283185) or 360 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Sqrt2 constant (1.414214). Square root of 2." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the absolute value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-tangent of the parameters." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Finds the nearest integer that is greater than or equal to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Constrains a value to lie between two further values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts a quantity in radians to degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-e Exponential." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-2 Exponential." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Finds the nearest integer less than or equal to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Computes the fractional part of the argument." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the inverse of the square root of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Natural logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-2 logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the greater of two values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the lesser of two values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Linear interpolation between two scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the opposite value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 - scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns the value of the first parameter raised to the power of the second." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts a quantity in degrees to radians." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 / scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the nearest integer to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the nearest even integer to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Clamps the value between 0.0 and 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Extracts the sign of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the square root of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( scalar(edge0), scalar(edge1), scalar(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if x is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( scalar(edge), scalar(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the truncated value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Adds scalar to scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Divides scalar by scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies scalar by scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the remainder of the two scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Subtracts scalar from scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Scalar constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Scalar uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Perform the cubic texture lookup." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Perform the texture lookup." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Cubic texture uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "2D texture uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Transform function." +msgstr "Izveidot" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) Calculate the outer product of a pair of vectors.\n" +"\n" +"OuterProduct treats the first parameter 'c' as a column vector (matrix with " +"one column) and the second parameter 'r' as a row vector (matrix with one " +"row) and does a linear algebraic matrix multiply 'c * r', yielding a matrix " +"whose number of rows is the number of components in 'c' and whose number of " +"columns is the number of components in 'r'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Composes transform from four vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Decomposes transform to four vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the determinant of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the inverse of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the transpose of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies transform by transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies vector by transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Transform constant." +msgstr "Izveidot" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Transform uniform." +msgstr "Izveidot" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector function." +msgstr "Izveidot Funkciju" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Composes vector from three scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Decomposes vector to three scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the cross product of two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the distance between two points." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the dot product of two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns a vector that points in the same direction as a reference vector. " +"The function has three vector parameters : N, the vector to orient, I, the " +"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 "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the length of a vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Linear interpolation between two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the normalize product of vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 - vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 / vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns a vector that points in the direction of reflection ( a : incident " +"vector, b : normal vector )." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns a vector that points in the direction of refraction." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( vector(edge0), vector(edge1), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if 'x' is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( scalar(edge0), scalar(edge1), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if 'x' is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( vector(edge), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( scalar(edge), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Adds vector to vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Divides vector by vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies vector by vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the remainder of the two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Subtracts vector from vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Custom Godot Shader Language expression, with custom amount of input and " +"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 "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns falloff based on the dot product of surface normal and view " +"direction of camera (pass associated inputs to it)." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) (Fragment/Light mode only) Scalar derivative function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) (Fragment/Light mode only) Vector derivative function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Derivative in 'x' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Derivative in 'x' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Derivative in 'y' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Derivative in 'y' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Sum of absolute derivative " +"in 'x' and 'y'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Sum of absolute derivative " +"in 'x' and 'y'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "VisualShader" msgstr "" @@ -7418,6 +8844,10 @@ msgid "Directory already contains a Godot project." msgstr "" #: editor/project_manager.cpp +msgid "New Game Project" +msgstr "" + +#: editor/project_manager.cpp msgid "Imported Project" msgstr "" @@ -7464,10 +8894,6 @@ msgid "Rename Project" msgstr "" #: editor/project_manager.cpp -msgid "New Game Project" -msgstr "" - -#: editor/project_manager.cpp msgid "Import Existing Project" msgstr "" @@ -7496,10 +8922,6 @@ msgid "Project Name:" msgstr "" #: editor/project_manager.cpp -msgid "Create folder" -msgstr "" - -#: editor/project_manager.cpp msgid "Project Path:" msgstr "" @@ -7508,10 +8930,6 @@ msgid "Project Installation Path:" msgstr "" #: editor/project_manager.cpp -msgid "Browse" -msgstr "" - -#: editor/project_manager.cpp msgid "Renderer:" msgstr "" @@ -7564,8 +8982,8 @@ msgid "" "\n" "If you proceed with opening it, it will be converted to Godot's current " "configuration file format.\n" -"Warning: You will not be able to open the project with previous versions of " -"the engine anymore." +"Warning: You won't be able to open the project with previous versions of the " +"engine anymore." msgstr "" #: editor/project_manager.cpp @@ -7576,8 +8994,8 @@ msgid "" "%s\n" "\n" "Do you want to convert it?\n" -"Warning: You will not be able to open the project with previous versions of " -"the engine anymore." +"Warning: You won't be able to open the project with previous versions of the " +"engine anymore." msgstr "" #: editor/project_manager.cpp @@ -7589,7 +9007,7 @@ msgstr "" #: editor/project_manager.cpp msgid "" "Can't run project: no main scene defined.\n" -"Please edit the project and set the main scene in \"Project Settings\" under " +"Please edit the project and set the main scene in the Project Settings under " "the \"Application\" category." msgstr "" @@ -7600,23 +9018,37 @@ msgid "" msgstr "" #: editor/project_manager.cpp -msgid "Are you sure to run more than one project?" +msgid "Are you sure to run %d projects at once?" msgstr "" #: editor/project_manager.cpp -msgid "Remove project from the list? (Folder contents will not be modified)" +msgid "" +"Remove %d projects from the list?\n" +"The project folders' contents won't be modified." +msgstr "" + +#: editor/project_manager.cpp +msgid "" +"Remove this project from the list?\n" +"The project folder's contents won't be modified." +msgstr "" + +#: editor/project_manager.cpp +msgid "" +"Remove all missing projects from the list? (Folders contents will not be " +"modified)" msgstr "" #: editor/project_manager.cpp msgid "" "Language changed.\n" -"The UI will update next time the editor or project manager starts." +"The interface will update after restarting the editor or project manager." msgstr "" #: editor/project_manager.cpp msgid "" -"You are about the scan %s folders for existing Godot projects. Do you " -"confirm?" +"Are you sure to scan %s folders for existing Godot projects?\n" +"This could take a while." msgstr "" #: editor/project_manager.cpp @@ -7640,6 +9072,11 @@ msgid "New Project" msgstr "" #: editor/project_manager.cpp +#, fuzzy +msgid "Remove Missing" +msgstr "Noņemt" + +#: editor/project_manager.cpp msgid "Templates" msgstr "" @@ -7657,8 +9094,8 @@ msgstr "" #: editor/project_manager.cpp msgid "" -"You don't currently have any projects.\n" -"Would you like to explore the official example projects in the Asset Library?" +"You currently don't have any projects.\n" +"Would you like to explore official example projects in the Asset Library?" msgstr "" #: editor/project_settings_editor.cpp @@ -7684,7 +9121,7 @@ msgid "" msgstr "" #: editor/project_settings_editor.cpp -msgid "Action '%s' already exists!" +msgid "An action with the name '%s' already exists." msgstr "" #: editor/project_settings_editor.cpp @@ -7838,10 +9275,6 @@ msgid "" msgstr "" #: editor/project_settings_editor.cpp -msgid "Already existing" -msgstr "" - -#: editor/project_settings_editor.cpp msgid "Add Input Action" msgstr "" @@ -7906,7 +9339,7 @@ msgid "Override For..." msgstr "" #: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp -msgid "Editor must be restarted for changes to take effect" +msgid "The editor must be restarted for changes to take effect." msgstr "" #: editor/project_settings_editor.cpp @@ -7967,11 +9400,11 @@ msgid "Locales Filter" msgstr "" #: editor/project_settings_editor.cpp -msgid "Show all locales" +msgid "Show All Locales" msgstr "" #: editor/project_settings_editor.cpp -msgid "Show only selected locales" +msgid "Show Selected Locales Only" msgstr "" #: editor/project_settings_editor.cpp @@ -7987,14 +9420,6 @@ msgid "AutoLoad" msgstr "" #: editor/property_editor.cpp -msgid "Ease In" -msgstr "" - -#: editor/property_editor.cpp -msgid "Ease Out" -msgstr "" - -#: editor/property_editor.cpp msgid "Zero" msgstr "" @@ -8067,7 +9492,7 @@ msgid "Suffix" msgstr "" #: editor/rename_dialog.cpp -msgid "Advanced options" +msgid "Advanced Options" msgstr "" #: editor/rename_dialog.cpp @@ -8322,8 +9747,9 @@ msgid "User Interface" msgstr "" #: editor/scene_tree_dock.cpp -msgid "Custom Node" -msgstr "" +#, fuzzy +msgid "Other Node" +msgstr "IzdzÄ“st" #: editor/scene_tree_dock.cpp msgid "Can't operate on nodes from a foreign scene!" @@ -8364,7 +9790,7 @@ msgid "Clear Inheritance" msgstr "" #: editor/scene_tree_dock.cpp -msgid "Open documentation" +msgid "Open Documentation" msgstr "" #: editor/scene_tree_dock.cpp @@ -8391,7 +9817,7 @@ msgstr "" msgid "Save Branch as Scene" msgstr "" -#: editor/scene_tree_dock.cpp +#: editor/scene_tree_dock.cpp editor/script_editor_debugger.cpp msgid "Copy Node Path" msgstr "" @@ -8434,6 +9860,19 @@ msgid "Toggle Visible" msgstr "" #: editor/scene_tree_editor.cpp +msgid "Unlock Node" +msgstr "" + +#: editor/scene_tree_editor.cpp +msgid "Button Group" +msgstr "" + +#: editor/scene_tree_editor.cpp +#, fuzzy +msgid "(Connecting From)" +msgstr "Savieno SignÄlu:" + +#: editor/scene_tree_editor.cpp msgid "Node configuration warning:" msgstr "" @@ -8455,8 +9894,8 @@ msgid "" "Click to show groups dock." msgstr "" -#: editor/scene_tree_editor.cpp editor/script_create_dialog.cpp -msgid "Open Script" +#: editor/scene_tree_editor.cpp +msgid "Open Script:" msgstr "" #: editor/scene_tree_editor.cpp @@ -8502,72 +9941,76 @@ msgid "Select a Node" msgstr "" #: editor/script_create_dialog.cpp -msgid "Error loading template '%s'" -msgstr "" - -#: editor/script_create_dialog.cpp -msgid "Error - Could not create script in filesystem." -msgstr "" +#, fuzzy +msgid "Path is empty." +msgstr "Starpliktuve ir tukÅ¡a" #: editor/script_create_dialog.cpp -msgid "Error loading script from %s" -msgstr "" +#, fuzzy +msgid "Filename is empty." +msgstr "Starpliktuve ir tukÅ¡a" #: editor/script_create_dialog.cpp -msgid "N/A" +msgid "Path is not local." msgstr "" #: editor/script_create_dialog.cpp -msgid "Open Script/Choose Location" -msgstr "" +#, fuzzy +msgid "Invalid base path." +msgstr "NederÄ«gs nosaukums." #: editor/script_create_dialog.cpp -msgid "Path is empty" +msgid "A directory with the same name exists." msgstr "" #: editor/script_create_dialog.cpp #, fuzzy -msgid "Filename is empty" -msgstr "Starpliktuve ir tukÅ¡a" +msgid "Invalid extension." +msgstr "NederÄ«gs fonta izmÄ“rs." #: editor/script_create_dialog.cpp -msgid "Path is not local" +msgid "Wrong extension chosen." msgstr "" #: editor/script_create_dialog.cpp -msgid "Invalid base path" +msgid "Error loading template '%s'" msgstr "" #: editor/script_create_dialog.cpp -msgid "Directory of the same name exists" +msgid "Error - Could not create script in filesystem." msgstr "" #: editor/script_create_dialog.cpp -msgid "File exists, will be reused" +msgid "Error loading script from %s" msgstr "" #: editor/script_create_dialog.cpp -msgid "Invalid extension" +msgid "N/A" msgstr "" #: editor/script_create_dialog.cpp -msgid "Wrong extension chosen" +msgid "Open Script / Choose Location" msgstr "" #: editor/script_create_dialog.cpp -msgid "Invalid Path" +msgid "Open Script" msgstr "" #: editor/script_create_dialog.cpp -msgid "Invalid class name" +msgid "File exists, it will be reused." msgstr "" #: editor/script_create_dialog.cpp -msgid "Invalid inherited parent name or path" +#, fuzzy +msgid "Invalid class name." +msgstr "NederÄ«gs nosaukums." + +#: editor/script_create_dialog.cpp +msgid "Invalid inherited parent name or path." msgstr "" #: editor/script_create_dialog.cpp -msgid "Script valid" +msgid "Script is valid." msgstr "" #: editor/script_create_dialog.cpp @@ -8575,16 +10018,18 @@ msgid "Allowed: a-z, A-Z, 0-9 and _" msgstr "" #: editor/script_create_dialog.cpp -msgid "Built-in script (into scene file)" +msgid "Built-in script (into scene file)." msgstr "" #: editor/script_create_dialog.cpp -msgid "Create new script file" -msgstr "" +#, fuzzy +msgid "Will create a new script file." +msgstr "Izveidot Jaunu %s" #: editor/script_create_dialog.cpp -msgid "Load existing script file" -msgstr "" +#, fuzzy +msgid "Will load an existing script file." +msgstr "IelÄdÄ“t eksistÄ“joÅ¡u Kopnes IzkÄrtojumu." #: editor/script_create_dialog.cpp msgid "Language" @@ -8714,6 +10159,10 @@ msgstr "" msgid "Set From Tree" msgstr "" +#: editor/script_editor_debugger.cpp +msgid "Export measures as CSV" +msgstr "" + #: editor/settings_config_dialog.cpp msgid "Erase Shortcut" msgstr "" @@ -8843,6 +10292,14 @@ msgid "GDNativeLibrary" msgstr "" #: modules/gdnative/gdnative_library_singleton_editor.cpp +msgid "Enabled GDNative Singleton" +msgstr "" + +#: modules/gdnative/gdnative_library_singleton_editor.cpp +msgid "Disabled GDNative Singleton" +msgstr "" + +#: modules/gdnative/gdnative_library_singleton_editor.cpp msgid "Library" msgstr "" @@ -8928,8 +10385,9 @@ msgid "GridMap Fill Selection" msgstr "Visa IzvÄ“le" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "GridMap Duplicate Selection" -msgstr "" +#, fuzzy +msgid "GridMap Paste Selection" +msgstr "Visa IzvÄ“le" #: modules/gridmap/grid_map_editor_plugin.cpp msgid "GridMap Paint" @@ -8996,18 +10454,6 @@ msgid "Cursor Clear Rotation" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Create Area" -msgstr "" - -#: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Create Exterior Connector" -msgstr "" - -#: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Erase Area" -msgstr "" - -#: modules/gridmap/grid_map_editor_plugin.cpp msgid "Clear Selection" msgstr "" @@ -9359,15 +10805,7 @@ msgid "Available Nodes:" msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Select or create a function to edit graph" -msgstr "" - -#: modules/visual_script/visual_script_editor.cpp -msgid "Edit Signal Arguments:" -msgstr "" - -#: modules/visual_script/visual_script_editor.cpp -msgid "Edit Variable:" +msgid "Select or create a function to edit its graph." msgstr "" #: modules/visual_script/visual_script_editor.cpp @@ -9497,6 +10935,19 @@ msgid "Debug keystore not configured in the Editor Settings nor in the preset." msgstr "" #: platform/android/export/export.cpp +msgid "Custom build requires a valid Android SDK path in Editor Settings." +msgstr "" + +#: platform/android/export/export.cpp +msgid "Invalid Android SDK path for custom build in Editor Settings." +msgstr "" + +#: platform/android/export/export.cpp +msgid "" +"Android project is not installed for compiling. Install from Editor menu." +msgstr "" + +#: platform/android/export/export.cpp msgid "Invalid public key for APK expansion." msgstr "" @@ -9505,6 +10956,34 @@ msgstr "" msgid "Invalid package name:" msgstr "NederÄ«gs nosaukums." +#: platform/android/export/export.cpp +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 "" +"Android build version mismatch:\n" +" Template installed: %s\n" +" Godot Version: %s\n" +"Please reinstall Android build template from 'Project' menu." +msgstr "" + +#: platform/android/export/export.cpp +msgid "Building Android Project (gradle)" +msgstr "" + +#: 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 "" + +#: platform/android/export/export.cpp +msgid "No build apk generated at: " +msgstr "" + #: platform/iphone/export/export.cpp msgid "Identifier is missing." msgstr "" @@ -9762,27 +11241,27 @@ msgid "ARVRCamera must have an ARVROrigin node as its parent" msgstr "" #: scene/3d/arvr_nodes.cpp -msgid "ARVRController must have an ARVROrigin node as its parent" +msgid "ARVRController must have an ARVROrigin node as its parent." msgstr "" #: scene/3d/arvr_nodes.cpp msgid "" -"The controller id must not be 0 or this controller will not be bound to an " -"actual controller" +"The controller ID must not be 0 or this controller won't be bound to an " +"actual controller." msgstr "" #: scene/3d/arvr_nodes.cpp -msgid "ARVRAnchor must have an ARVROrigin node as its parent" +msgid "ARVRAnchor must have an ARVROrigin node as its parent." msgstr "" #: scene/3d/arvr_nodes.cpp msgid "" -"The anchor id must not be 0 or this anchor will not be bound to an actual " -"anchor" +"The anchor ID must not be 0 or this anchor won't be bound to an actual " +"anchor." msgstr "" #: scene/3d/arvr_nodes.cpp -msgid "ARVROrigin requires an ARVRCamera child node" +msgid "ARVROrigin requires an ARVRCamera child node." msgstr "" #: scene/3d/baked_lightmap.cpp @@ -9852,8 +11331,8 @@ msgstr "" #: scene/3d/cpu_particles.cpp msgid "" -"CPUParticles animation requires the usage of a SpatialMaterial with " -"\"Billboard Particles\" enabled." +"CPUParticles animation requires the usage of a SpatialMaterial whose " +"Billboard Mode is set to \"Particle Billboard\"." msgstr "" #: scene/3d/gi_probe.cpp @@ -9890,8 +11369,8 @@ msgstr "" #: scene/3d/particles.cpp msgid "" -"Particles animation requires the usage of a SpatialMaterial with \"Billboard " -"Particles\" enabled." +"Particles animation requires the usage of a SpatialMaterial whose Billboard " +"Mode is set to \"Particle Billboard\"." msgstr "" #: scene/3d/path.cpp @@ -9916,7 +11395,7 @@ msgid "Path property must point to a valid Spatial node to work." msgstr "" #: scene/3d/soft_body.cpp -msgid "This body will be ignored until you set a mesh" +msgid "This body will be ignored until you set a mesh." msgstr "" #: scene/3d/soft_body.cpp @@ -10017,7 +11496,7 @@ msgstr "Pievienot paÅ¡reizÄ“jo krÄsu kÄ iepriekÅ¡noteiktu krÄsu" msgid "" "Container by itself serves no purpose unless a script configures it's " "children placement behavior.\n" -"If you dont't intend to add a script, then please use a plain 'Control' node " +"If you don't intend to add a script, then please use a plain 'Control' node " "instead." msgstr "" @@ -10029,10 +11508,6 @@ msgstr "BrÄ«dinÄjums!" msgid "Please Confirm..." msgstr "LÅ«dzu Apstipriniet..." -#: scene/gui/file_dialog.cpp -msgid "Go to parent folder." -msgstr "" - #: scene/gui/popup.cpp msgid "" "Popups will hide by default unless you call popup() or any of the popup*() " @@ -10106,6 +11581,13 @@ msgstr "" msgid "Varyings can only be assigned in vertex function." msgstr "" +#: servers/visual/shader_language.cpp +msgid "Constants cannot be modified." +msgstr "" + +#~ msgid "Delete selected files?" +#~ msgstr "IzdzÄ“st izvÄ“lÄ“tos failus?" + #~ msgid "Line:" #~ msgstr "Rinda:" @@ -10113,10 +11595,6 @@ msgstr "" #~ msgstr "Kolona:" #, fuzzy -#~ msgid "Remove Split" -#~ msgstr "Noņemt IzvÄ“lÄ“to" - -#, fuzzy #~ msgid "Zoom out" #~ msgstr "AttÄlinÄt" @@ -10127,9 +11605,6 @@ msgstr "" #~ msgid "Zoom:" #~ msgstr "PietuvinÄt:" -#~ msgid "Disabled" -#~ msgstr "AtspÄ“jots" - #~ msgid "Length (s):" #~ msgstr "Garums (i):" diff --git a/editor/translations/mi.po b/editor/translations/mi.po index 30d76b28d3..96c2290611 100644 --- a/editor/translations/mi.po +++ b/editor/translations/mi.po @@ -62,6 +62,14 @@ msgstr "" msgid "Mirror" msgstr "" +#: editor/animation_bezier_editor.cpp editor/editor_profiler.cpp +msgid "Time:" +msgstr "" + +#: editor/animation_bezier_editor.cpp +msgid "Value:" +msgstr "" + #: editor/animation_bezier_editor.cpp msgid "Insert Key Here" msgstr "" @@ -144,11 +152,15 @@ msgid "Animation Playback Track" msgstr "" #: editor/animation_track_editor.cpp -msgid "Add Track" +msgid "Animation length (frames)" msgstr "" #: editor/animation_track_editor.cpp -msgid "Animation Length Time (seconds)" +msgid "Animation length (seconds)" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Add Track" msgstr "" #: editor/animation_track_editor.cpp @@ -275,11 +287,13 @@ msgid "Create %d NEW tracks and insert keys?" msgstr "" #: editor/animation_track_editor.cpp editor/create_dialog.cpp -#: editor/editor_audio_buses.cpp editor/editor_plugin_settings.cpp -#: editor/plugin_config_dialog.cpp +#: editor/editor_audio_buses.cpp editor/editor_feature_profile.cpp +#: editor/editor_plugin_settings.cpp editor/plugin_config_dialog.cpp #: editor/plugins/abstract_polygon_2d_editor.cpp #: editor/plugins/mesh_instance_editor_plugin.cpp -#: editor/plugins/particles_editor_plugin.cpp editor/script_create_dialog.cpp +#: editor/plugins/particles_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_create_dialog.cpp msgid "Create" msgstr "" @@ -389,6 +403,23 @@ msgid "" msgstr "" #: editor/animation_track_editor.cpp +msgid "" +"This animation belongs to an imported scene, so changes to imported tracks " +"will not be saved.\n" +"\n" +"To enable the ability to add custom tracks, navigate to the scene's import " +"settings and set\n" +"\"Animation > Storage\" to \"Files\", enable \"Animation > Keep Custom Tracks" +"\", then re-import.\n" +"Alternatively, use an import preset that imports animations to separate " +"files." +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Warning: Editing imported animation" +msgstr "" + +#: editor/animation_track_editor.cpp msgid "Only show tracks from nodes selected in tree." msgstr "" @@ -521,7 +552,8 @@ msgstr "" msgid "Select tracks to copy:" msgstr "" -#: editor/animation_track_editor.cpp editor/editor_properties.cpp +#: editor/animation_track_editor.cpp editor/editor_log.cpp +#: editor/editor_properties.cpp #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp @@ -589,6 +621,11 @@ msgstr "" msgid "Selection Only" msgstr "" +#: editor/code_editor.cpp editor/plugins/script_text_editor.cpp +#: editor/plugins/text_editor.cpp +msgid "Standard" +msgstr "" + #: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/texture_region_editor_plugin.cpp #: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp @@ -614,17 +651,29 @@ msgid "Line and column numbers." msgstr "" #: editor/connections_dialog.cpp -msgid "Method in target Node must be specified!" +msgid "Method in target node must be specified." msgstr "" #: editor/connections_dialog.cpp msgid "" -"Target method not found! Specify a valid method or attach a script to target " -"Node." +"Target method not found. Specify a valid method or attach a script to the " +"target node." +msgstr "" + +#: editor/connections_dialog.cpp +msgid "Connect to Node:" +msgstr "" + +#: editor/connections_dialog.cpp +msgid "Connect to Script:" +msgstr "" + +#: editor/connections_dialog.cpp +msgid "From Signal:" msgstr "" #: editor/connections_dialog.cpp -msgid "Connect To Node:" +msgid "Scene does not contain any script." msgstr "" #: editor/connections_dialog.cpp editor/editor_autoload_settings.cpp @@ -634,10 +683,12 @@ msgid "Add" msgstr "" #: editor/connections_dialog.cpp editor/dependency_editor.cpp -#: editor/groups_editor.cpp editor/plugins/animation_player_editor_plugin.cpp +#: editor/editor_feature_profile.cpp editor/groups_editor.cpp +#: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp #: editor/plugins/resource_preloader_editor_plugin.cpp -#: editor/plugins/theme_editor_plugin.cpp editor/project_manager.cpp +#: editor/plugins/theme_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_manager.cpp #: editor/project_settings_editor.cpp msgid "Remove" msgstr "" @@ -651,21 +702,30 @@ msgid "Extra Call Arguments:" msgstr "" #: editor/connections_dialog.cpp -msgid "Path to Node:" +msgid "Advanced" msgstr "" #: editor/connections_dialog.cpp -msgid "Make Function" +msgid "Deferred" msgstr "" #: editor/connections_dialog.cpp -msgid "Deferred" +msgid "" +"Defers the signal, storing it in a queue and only firing it at idle time." msgstr "" #: editor/connections_dialog.cpp msgid "Oneshot" msgstr "" +#: editor/connections_dialog.cpp +msgid "Disconnects the signal after its first emission." +msgstr "" + +#: editor/connections_dialog.cpp +msgid "Cannot connect signal" +msgstr "" + #: editor/connections_dialog.cpp editor/dependency_editor.cpp #: editor/export_template_manager.cpp editor/groups_editor.cpp #: editor/plugins/animation_player_editor_plugin.cpp @@ -706,11 +766,11 @@ msgid "Disconnect" msgstr "" #: editor/connections_dialog.cpp -msgid "Connect Signal: " +msgid "Connect a Signal to a Method" msgstr "" #: editor/connections_dialog.cpp -msgid "Edit Connection: " +msgid "Edit Connection:" msgstr "" #: editor/connections_dialog.cpp @@ -742,7 +802,6 @@ msgid "Change %s Type" msgstr "" #: editor/create_dialog.cpp editor/project_settings_editor.cpp -#: modules/visual_script/visual_script_editor.cpp msgid "Change" msgstr "" @@ -773,7 +832,8 @@ msgid "Matches:" msgstr "" #: editor/create_dialog.cpp editor/plugin_config_dialog.cpp -#: editor/plugins/asset_library_editor_plugin.cpp editor/property_selector.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/property_selector.cpp #: modules/visual_script/visual_script_property_selector.cpp msgid "Description:" msgstr "" @@ -789,13 +849,13 @@ msgstr "" #: editor/dependency_editor.cpp msgid "" "Scene '%s' is currently being edited.\n" -"Changes will not take effect unless reloaded." +"Changes will only take effect when reloaded." msgstr "" #: editor/dependency_editor.cpp msgid "" "Resource '%s' is in use.\n" -"Changes will take effect when reloaded." +"Changes will only take effect when reloaded." msgstr "" #: editor/dependency_editor.cpp @@ -886,21 +946,13 @@ msgid "Permanently delete %d item(s)? (No undo!)" msgstr "" #: editor/dependency_editor.cpp -msgid "Owns" -msgstr "" - -#: editor/dependency_editor.cpp -msgid "Resources Without Explicit Ownership:" +msgid "Show Dependencies" msgstr "" #: editor/dependency_editor.cpp editor/editor_node.cpp msgid "Orphan Resource Explorer" msgstr "" -#: editor/dependency_editor.cpp -msgid "Delete selected files?" -msgstr "" - #: editor/dependency_editor.cpp editor/editor_audio_buses.cpp #: editor/editor_file_dialog.cpp editor/editor_node.cpp #: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp @@ -909,6 +961,14 @@ msgstr "" msgid "Delete" msgstr "" +#: editor/dependency_editor.cpp +msgid "Owns" +msgstr "" + +#: editor/dependency_editor.cpp +msgid "Resources Without Explicit Ownership:" +msgstr "" + #: editor/dictionary_property_edit.cpp msgid "Change Dictionary Key" msgstr "" @@ -1018,7 +1078,7 @@ msgstr "" msgid "Success!" msgstr "" -#: editor/editor_asset_installer.cpp +#: editor/editor_asset_installer.cpp editor/editor_node.cpp #: editor/plugins/asset_library_editor_plugin.cpp msgid "Install" msgstr "" @@ -1145,7 +1205,11 @@ msgid "Open Audio Bus Layout" msgstr "" #: editor/editor_audio_buses.cpp -msgid "There is no 'res://default_bus_layout.tres' file." +msgid "There is no '%s' file." +msgstr "" + +#: editor/editor_audio_buses.cpp editor/plugins/canvas_item_editor_plugin.cpp +msgid "Layout" msgstr "" #: editor/editor_audio_buses.cpp @@ -1199,15 +1263,19 @@ msgid "Valid characters:" msgstr "" #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing engine class name." +msgid "Must not collide with an existing engine class name." msgstr "" #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing buit-in type name." +msgid "Must not collide with an existing buit-in type name." msgstr "" #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing global constant name." +msgid "Must not collide with an existing global constant name." +msgstr "" + +#: editor/editor_autoload_settings.cpp +msgid "Keyword cannot be used as an autoload name." msgstr "" #: editor/editor_autoload_settings.cpp @@ -1238,11 +1306,11 @@ msgstr "" msgid "Rearrange Autoloads" msgstr "" -#: editor/editor_autoload_settings.cpp -msgid "Invalid Path." +#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp +msgid "Invalid path." msgstr "" -#: editor/editor_autoload_settings.cpp +#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp msgid "File does not exist." msgstr "" @@ -1293,7 +1361,7 @@ msgid "[unsaved]" msgstr "" #: editor/editor_dir_dialog.cpp -msgid "Please select a base directory first" +msgid "Please select a base directory first." msgstr "" #: editor/editor_dir_dialog.cpp @@ -1301,7 +1369,8 @@ msgid "Choose a Directory" msgstr "" #: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp -#: editor/filesystem_dock.cpp scene/gui/file_dialog.cpp +#: editor/filesystem_dock.cpp editor/project_manager.cpp +#: scene/gui/file_dialog.cpp msgid "Create Folder" msgstr "" @@ -1369,6 +1438,151 @@ msgstr "" msgid "Template file not found:" msgstr "" +#: editor/editor_feature_profile.cpp +msgid "3D Editor" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Script Editor" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Asset Library" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Scene Tree Editing" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Import Dock" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Node Dock" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Filesystem Dock" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Erase profile '%s'? (no undo)" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Profile must be a valid filename and must not contain '.'" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Profile with this name already exists." +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "(Editor Disabled, Properties Disabled)" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "(Properties Disabled)" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "(Editor Disabled)" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Class Options:" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Enable Contextual Editor" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Enabled Properties:" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Enabled Features:" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Enabled Classes:" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "File '%s' format is invalid, import aborted." +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "" +"Profile '%s' already exists. Remote it first before importing, import " +"aborted." +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Error saving profile to path: '%s'." +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Unset" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Current Profile" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Make Current" +msgstr "" + +#: editor/editor_feature_profile.cpp +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "New" +msgstr "" + +#: editor/editor_feature_profile.cpp editor/editor_node.cpp +#: editor/plugins/asset_library_editor_plugin.cpp editor/project_manager.cpp +msgid "Import" +msgstr "" + +#: editor/editor_feature_profile.cpp editor/editor_node.cpp +#: editor/project_export.cpp +msgid "Export" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Available Profiles" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Enabled Classes" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Class Options" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "New profile name:" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Erase Profile" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Import Profile(s)" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Export Profile" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Manage Editor Feature Profiles" +msgstr "" + #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Select Current Folder" msgstr "" @@ -1389,8 +1603,8 @@ msgstr "" msgid "Open in File Manager" msgstr "" -#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp -#: editor/project_manager.cpp +#: editor/editor_file_dialog.cpp editor/editor_node.cpp +#: editor/filesystem_dock.cpp editor/project_manager.cpp msgid "Show in File Manager" msgstr "" @@ -1449,7 +1663,7 @@ msgstr "" msgid "Go Up" msgstr "" -#: editor/editor_file_dialog.cpp +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Toggle Hidden Files" msgstr "" @@ -1481,14 +1695,18 @@ msgstr "" msgid "Next Folder" msgstr "" -#: editor/editor_file_dialog.cpp -msgid "Go to parent folder" +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp +msgid "Go to parent folder." msgstr "" #: editor/editor_file_dialog.cpp msgid "(Un)favorite current folder." msgstr "" +#: editor/editor_file_dialog.cpp +msgid "Toggle visibility of hidden files." +msgstr "" + #: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp msgid "View items as a grid of thumbnails." msgstr "" @@ -1503,6 +1721,7 @@ msgstr "" #: editor/editor_file_dialog.cpp editor/plugins/sprite_editor_plugin.cpp #: editor/plugins/style_box_editor_plugin.cpp +#: editor/plugins/theme_editor_plugin.cpp msgid "Preview:" msgstr "" @@ -1519,6 +1738,12 @@ msgid "ScanSources" msgstr "" #: editor/editor_file_system.cpp +msgid "" +"There are multiple importers for different types pointing to file %s, import " +"aborted" +msgstr "" + +#: editor/editor_file_system.cpp msgid "(Re)Importing Assets" msgstr "" @@ -1694,6 +1919,10 @@ msgstr "" msgid "Output:" msgstr "" +#: editor/editor_log.cpp editor/plugins/tile_map_editor_plugin.cpp +msgid "Copy Selection" +msgstr "" + #: editor/editor_log.cpp editor/editor_profiler.cpp #: editor/editor_properties.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp @@ -1841,7 +2070,7 @@ msgstr "" #: editor/editor_node.cpp msgid "" "This resource belongs to a scene that was instanced or inherited.\n" -"Changes to it will not be kept when saving the current scene." +"Changes to it won't be kept when saving the current scene." msgstr "" #: editor/editor_node.cpp @@ -1852,7 +2081,7 @@ msgstr "" #: editor/editor_node.cpp msgid "" -"This scene was imported, so changes to it will not be kept.\n" +"This scene was imported, so changes to it won't be kept.\n" "Instancing it or inheriting will allow making changes to it.\n" "Please read the documentation relevant to importing scenes to better " "understand this workflow." @@ -1860,7 +2089,7 @@ msgstr "" #: editor/editor_node.cpp msgid "" -"This is a remote object so changes to it will not be kept.\n" +"This is a remote object, so changes to it won't be kept.\n" "Please read the documentation relevant to debugging to better understand " "this workflow." msgstr "" @@ -1870,27 +2099,6 @@ msgid "There is no defined scene to run." msgstr "" #: editor/editor_node.cpp -msgid "" -"No main scene has ever been defined, select one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" - -#: editor/editor_node.cpp -msgid "" -"Selected scene '%s' does not exist, select a valid one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" - -#: editor/editor_node.cpp -msgid "" -"Selected scene '%s' is not a scene file, select a valid one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" - -#: editor/editor_node.cpp msgid "Current scene was never saved, please save it prior to running." msgstr "" @@ -1898,7 +2106,7 @@ msgstr "" msgid "Could not start subprocess!" msgstr "" -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/filesystem_dock.cpp msgid "Open Scene" msgstr "" @@ -1907,6 +2115,10 @@ msgid "Open Base Scene" msgstr "" #: editor/editor_node.cpp +msgid "Quick Open..." +msgstr "" + +#: editor/editor_node.cpp msgid "Quick Open Scene..." msgstr "" @@ -2068,6 +2280,27 @@ msgid "Clear Recent Scenes" msgstr "" #: editor/editor_node.cpp +msgid "" +"No main scene has ever been defined, select one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"Selected scene '%s' does not exist, select a valid one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"Selected scene '%s' is not a scene file, select a valid one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" + +#: editor/editor_node.cpp msgid "Save Layout" msgstr "" @@ -2093,6 +2326,18 @@ msgstr "" msgid "Close Tab" msgstr "" +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +msgid "Close Other Tabs" +msgstr "" + +#: editor/editor_node.cpp +msgid "Close Tabs to the Right" +msgstr "" + +#: editor/editor_node.cpp +msgid "Close All Tabs" +msgstr "" + #: editor/editor_node.cpp msgid "Switch Scene Tab" msgstr "" @@ -2215,10 +2460,6 @@ msgstr "" msgid "Project Settings" msgstr "" -#: editor/editor_node.cpp editor/project_export.cpp -msgid "Export" -msgstr "" - #: editor/editor_node.cpp editor/plugins/tile_set_editor_plugin.cpp msgid "Tools" msgstr "" @@ -2228,6 +2469,10 @@ msgid "Open Project Data Folder" msgstr "" #: editor/editor_node.cpp +msgid "Install Android Build Template" +msgstr "" + +#: editor/editor_node.cpp msgid "Quit to Project List" msgstr "" @@ -2332,6 +2577,10 @@ msgstr "" msgid "Open Editor Settings Folder" msgstr "" +#: editor/editor_node.cpp +msgid "Manage Editor Features" +msgstr "" + #: editor/editor_node.cpp editor/project_export.cpp msgid "Manage Export Templates" msgstr "" @@ -2344,6 +2593,7 @@ msgstr "" #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp #: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp #: editor/project_settings_editor.cpp editor/rename_dialog.cpp msgid "Search" msgstr "" @@ -2433,11 +2683,6 @@ msgstr "" msgid "Disable Update Spinner" msgstr "" -#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp -#: editor/project_manager.cpp -msgid "Import" -msgstr "" - #: editor/editor_node.cpp msgid "FileSystem" msgstr "" @@ -2463,6 +2708,27 @@ msgid "Don't Save" msgstr "" #: editor/editor_node.cpp +msgid "Android build template is missing, please install relevant templates." +msgstr "" + +#: editor/editor_node.cpp +msgid "Manage Templates" +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"This will install the Android project for custom builds.\n" +"Note that, in order to use it, it needs to be enabled per export preset." +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"Android build template is already installed and it won't be overwritten.\n" +"Remove the \"build\" directory manually before attempting this operation " +"again." +msgstr "" + +#: editor/editor_node.cpp msgid "Import Templates From ZIP File" msgstr "" @@ -2585,10 +2851,6 @@ msgid "Physics Frame %" msgstr "" #: editor/editor_profiler.cpp -msgid "Time:" -msgstr "" - -#: editor/editor_profiler.cpp msgid "Inclusive" msgstr "" @@ -2723,10 +2985,6 @@ msgid "Remove Item" msgstr "" #: editor/editor_run_native.cpp -msgid "Select device from the list" -msgstr "" - -#: editor/editor_run_native.cpp msgid "" "No runnable export preset found for this platform.\n" "Please add a runnable preset in the export menu." @@ -2760,6 +3018,10 @@ msgstr "" msgid "Select Node(s) to Import" msgstr "" +#: editor/editor_sub_scene.cpp editor/project_manager.cpp +msgid "Browse" +msgstr "" + #: editor/editor_sub_scene.cpp msgid "Scene Path:" msgstr "" @@ -2922,6 +3184,10 @@ msgid "SSL Handshake Error" msgstr "" #: editor/export_template_manager.cpp +msgid "Uncompressing Android Build Sources" +msgstr "" + +#: editor/export_template_manager.cpp msgid "Current Version:" msgstr "" @@ -2938,7 +3204,7 @@ msgid "Remove Template" msgstr "" #: editor/export_template_manager.cpp -msgid "Select template file" +msgid "Select Template File" msgstr "" #: editor/export_template_manager.cpp @@ -2994,7 +3260,7 @@ msgid "No name provided." msgstr "" #: editor/filesystem_dock.cpp -msgid "Provided name contains invalid characters" +msgid "Provided name contains invalid characters." msgstr "" #: editor/filesystem_dock.cpp @@ -3022,7 +3288,11 @@ msgid "Duplicating folder:" msgstr "" #: editor/filesystem_dock.cpp -msgid "Open Scene(s)" +msgid "New Inherited Scene" +msgstr "" + +#: editor/filesystem_dock.cpp +msgid "Open Scenes" msgstr "" #: editor/filesystem_dock.cpp @@ -3030,11 +3300,11 @@ msgid "Instance" msgstr "" #: editor/filesystem_dock.cpp -msgid "Add to favorites" +msgid "Add to Favorites" msgstr "" #: editor/filesystem_dock.cpp -msgid "Remove from favorites" +msgid "Remove from Favorites" msgstr "" #: editor/filesystem_dock.cpp @@ -3065,11 +3335,13 @@ msgstr "" msgid "New Resource..." msgstr "" -#: editor/filesystem_dock.cpp editor/script_editor_debugger.cpp +#: editor/filesystem_dock.cpp editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_editor_debugger.cpp msgid "Expand All" msgstr "" -#: editor/filesystem_dock.cpp editor/script_editor_debugger.cpp +#: editor/filesystem_dock.cpp editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_editor_debugger.cpp msgid "Collapse All" msgstr "" @@ -3081,11 +3353,11 @@ msgid "Rename" msgstr "" #: editor/filesystem_dock.cpp -msgid "Previous Directory" +msgid "Previous Folder/File" msgstr "" #: editor/filesystem_dock.cpp -msgid "Next Directory" +msgid "Next Folder/File" msgstr "" #: editor/filesystem_dock.cpp @@ -3093,7 +3365,7 @@ msgid "Re-Scan Filesystem" msgstr "" #: editor/filesystem_dock.cpp -msgid "Toggle split mode" +msgid "Toggle Split Mode" msgstr "" #: editor/filesystem_dock.cpp @@ -3122,7 +3394,7 @@ msgstr "" msgid "Create Script" msgstr "" -#: editor/find_in_files.cpp +#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp msgid "Find in Files" msgstr "" @@ -3138,6 +3410,12 @@ msgstr "" msgid "Filters:" msgstr "" +#: editor/find_in_files.cpp +msgid "" +"Include the files with the following extensions. Add or remove them in " +"ProjectSettings." +msgstr "" + #: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp msgid "Find..." @@ -3566,7 +3844,7 @@ msgid "Open Animation Node" msgstr "" #: editor/plugins/animation_blend_space_2d_editor.cpp -msgid "Triangle already exists" +msgid "Triangle already exists." msgstr "" #: editor/plugins/animation_blend_space_2d_editor.cpp @@ -3641,7 +3919,6 @@ msgid "Node Moved" msgstr "" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Unable to connect, port may be in use or connection may be invalid." msgstr "" @@ -3708,7 +3985,7 @@ msgid "Edit Filtered Tracks:" msgstr "" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -msgid "Enable filtering" +msgid "Enable Filtering" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp @@ -3823,10 +4100,6 @@ msgid "Animation" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "New" -msgstr "" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Edit Transitions..." msgstr "" @@ -3843,11 +4116,11 @@ msgid "Autoplay on Load" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Onion Skinning" +msgid "Enable Onion Skinning" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Enable Onion Skinning" +msgid "Onion Skinning Options" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp @@ -4387,13 +4660,19 @@ msgid "Move CanvasItem" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"Children of containers have their anchors and margins values overridden by " +"their parent." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Presets for the anchors and margins values of a Control node." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "" -"Children of containers have their anchors and margins values overridden by " -"their parent." +"When active, moving Control nodes changes their anchors instead of their " +"margins." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4409,10 +4688,46 @@ msgid "Change Anchors" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Lock Selected" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Unlock Selected" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Group Selected" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Ungroup Selected" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Paste Pose" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Create Custom Bone(s) from Node(s)" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Clear Bones" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Make IK Chain" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Clear IK Chain" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "" "Warning: Children of a container get their position and size determined only " "by their parent." @@ -4484,7 +4799,7 @@ msgid "Snapping Options" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to grid" +msgid "Snap to Grid" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4505,31 +4820,31 @@ msgid "Use Pixel Snap" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Smart snapping" +msgid "Smart Snapping" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to parent" +msgid "Snap to Parent" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node anchor" +msgid "Snap to Node Anchor" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node sides" +msgid "Snap to Node Sides" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node center" +msgid "Snap to Node Center" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to other nodes" +msgid "Snap to Other Nodes" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to guides" +msgid "Snap to Guides" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4543,10 +4858,12 @@ msgid "Unlock the selected object (can be moved)." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Makes sure the object's children are not selectable." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Restores the object's children's ability to be selected." msgstr "" @@ -4559,14 +4876,6 @@ msgid "Show Bones" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Make IK Chain" -msgstr "" - -#: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Clear IK Chain" -msgstr "" - -#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Make Custom Bone(s) from Node(s)" msgstr "" @@ -4617,7 +4926,7 @@ msgid "Frame Selection" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Layout" +msgid "Preview Canvas Scale" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4669,6 +4978,10 @@ msgid "Divide grid step by 2" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Pan View" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Add %s" msgstr "" @@ -4691,7 +5004,7 @@ msgid "Error instancing scene from %s" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Change default type" +msgid "Change Default Type" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4777,19 +5090,19 @@ msgid "Create Emission Points From Node" msgstr "" #: editor/plugins/curve_editor_plugin.cpp -msgid "Flat0" +msgid "Flat 0" msgstr "" #: editor/plugins/curve_editor_plugin.cpp -msgid "Flat1" +msgid "Flat 1" msgstr "" -#: editor/plugins/curve_editor_plugin.cpp -msgid "Ease in" +#: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp +msgid "Ease In" msgstr "" -#: editor/plugins/curve_editor_plugin.cpp -msgid "Ease out" +#: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp +msgid "Ease Out" msgstr "" #: editor/plugins/curve_editor_plugin.cpp @@ -4809,23 +5122,23 @@ msgid "Load Curve Preset" msgstr "" #: editor/plugins/curve_editor_plugin.cpp -msgid "Add point" +msgid "Add Point" msgstr "" #: editor/plugins/curve_editor_plugin.cpp -msgid "Remove point" +msgid "Remove Point" msgstr "" #: editor/plugins/curve_editor_plugin.cpp -msgid "Left linear" +msgid "Left Linear" msgstr "" #: editor/plugins/curve_editor_plugin.cpp -msgid "Right linear" +msgid "Right Linear" msgstr "" #: editor/plugins/curve_editor_plugin.cpp -msgid "Load preset" +msgid "Load Preset" msgstr "" #: editor/plugins/curve_editor_plugin.cpp @@ -4881,11 +5194,15 @@ msgid "This doesn't work on scene root!" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Trimesh Shape" +msgid "Create Trimesh Static Shape" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Shape" +msgid "Failed creating shapes!" +msgstr "" + +#: editor/plugins/mesh_instance_editor_plugin.cpp +msgid "Create Convex Shape(s)" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp @@ -4938,15 +5255,11 @@ msgid "Create Trimesh Static Body" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Static Body" -msgstr "" - -#: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Trimesh Collision Sibling" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Collision Sibling" +msgid "Create Convex Collision Sibling(s)" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp @@ -5100,20 +5413,20 @@ msgid "Create Navigation Polygon" msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp -msgid "Generating Visibility Rect" +#: editor/plugins/particles_editor_plugin.cpp +msgid "Convert to CPUParticles" msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp -msgid "Generate Visibility Rect" +msgid "Generating Visibility Rect" msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp -msgid "Can only set point into a ParticlesMaterial process material" +msgid "Generate Visibility Rect" msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp -#: editor/plugins/particles_editor_plugin.cpp -msgid "Convert to CPUParticles" +msgid "Can only set point into a ParticlesMaterial process material" msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp @@ -5255,7 +5568,7 @@ msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp editor/plugins/theme_editor_plugin.cpp -#: editor/project_export.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_export.cpp msgid "Options" msgstr "" @@ -5306,7 +5619,7 @@ msgid "Split Segment (in curve)" msgstr "" #: editor/plugins/physical_bone_plugin.cpp -msgid "Move joint" +msgid "Move Joint" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5539,7 +5852,6 @@ msgid "Open in Editor" msgstr "" #: editor/plugins/resource_preloader_editor_plugin.cpp -#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Load Resource" msgstr "" @@ -5628,6 +5940,11 @@ msgid "%s Class Reference" msgstr "" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp +msgid "Find Next" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp msgid "Toggle alphabetical sorting of the method list." msgstr "" @@ -5708,10 +6025,6 @@ msgstr "" msgid "Close All" msgstr "" -#: editor/plugins/script_editor_plugin.cpp -msgid "Close Other Tabs" -msgstr "" - #: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp msgid "Run" msgstr "" @@ -5720,11 +6033,6 @@ msgstr "" msgid "Toggle Scripts Panel" msgstr "" -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/script_text_editor.cpp -msgid "Find Next" -msgstr "" - #: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp msgid "Step Over" msgstr "" @@ -5751,7 +6059,7 @@ msgid "Debug with External Editor" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Open Godot online documentation" +msgid "Open Godot online documentation." msgstr "" #: editor/plugins/script_editor_plugin.cpp @@ -5759,7 +6067,7 @@ msgid "Request Docs" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Help improve the Godot documentation by giving feedback" +msgid "Help improve the Godot documentation by giving feedback." msgstr "" #: editor/plugins/script_editor_plugin.cpp @@ -5785,10 +6093,12 @@ msgid "" msgstr "" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp msgid "Reload" msgstr "" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp msgid "Resave" msgstr "" @@ -5801,6 +6111,27 @@ msgid "Search Results" msgstr "" #: editor/plugins/script_text_editor.cpp +msgid "Connections to method:" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Source" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Signal" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Target" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "" +"Missing connected method '%s' for signal '%s' from node '%s' to node '%s'." +msgstr "" + +#: editor/plugins/script_text_editor.cpp msgid "Line" msgstr "" @@ -5812,10 +6143,6 @@ msgstr "" msgid "Go to Function" msgstr "" -#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp -msgid "Standard" -msgstr "" - #: editor/plugins/script_text_editor.cpp msgid "Only resources from filesystem can be dropped." msgstr "" @@ -5848,6 +6175,11 @@ msgstr "" msgid "Syntax Highlighter" msgstr "" +#: editor/plugins/script_text_editor.cpp +#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp +msgid "Bookmarks" +msgstr "" + #: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" @@ -5875,6 +6207,22 @@ msgid "Toggle Comment" msgstr "" #: editor/plugins/script_text_editor.cpp +msgid "Toggle Bookmark" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Go to Next Bookmark" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Go to Previous Bookmark" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Remove All Bookmarks" +msgstr "" + +#: editor/plugins/script_text_editor.cpp msgid "Fold/Unfold Line" msgstr "" @@ -5948,6 +6296,12 @@ msgid "Contextual Help" msgstr "" #: editor/plugins/shader_editor_plugin.cpp +msgid "" +"This shader has been modified on on disk.\n" +"What action should be taken?" +msgstr "" + +#: editor/plugins/shader_editor_plugin.cpp msgid "Shader" msgstr "" @@ -6285,7 +6639,7 @@ msgid "Right View" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Switch Perspective/Orthogonal view" +msgid "Switch Perspective/Orthogonal View" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp @@ -6325,11 +6679,12 @@ msgid "Toggle Freelook" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Transform" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Snap object to floor" +msgid "Snap Object to Floor" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp @@ -6470,35 +6825,35 @@ msgid "Invalid geometry, can't replace by mesh." msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Invalid geometry, can't create polygon." +msgid "Convert to Mesh2D" msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Invalid geometry, can't create collision polygon." +msgid "Invalid geometry, can't create polygon." msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Invalid geometry, can't create light occluder." +msgid "Convert to Polygon2D" msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Sprite" +msgid "Invalid geometry, can't create collision polygon." msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Convert to Mesh2D" +msgid "Create CollisionPolygon2D Sibling" msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Convert to Polygon2D" +msgid "Invalid geometry, can't create light occluder." msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Create CollisionPolygon2D Sibling" +msgid "Create LightOccluder2D Sibling" msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Create LightOccluder2D Sibling" +msgid "Sprite" msgstr "" #: editor/plugins/sprite_editor_plugin.cpp @@ -6518,7 +6873,11 @@ msgid "Settings:" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "ERROR: Couldn't load frame resource!" +msgid "No Frames Selected" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Add %d Frame(s)" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp @@ -6526,6 +6885,10 @@ msgid "Add Frame" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "ERROR: Couldn't load frame resource!" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Resource clipboard is empty or not a texture!" msgstr "" @@ -6566,6 +6929,14 @@ msgid "Animation Frames:" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Add a Texture from File" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Add Frames from a Sprite Sheet" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Insert Empty (Before)" msgstr "" @@ -6582,6 +6953,26 @@ msgid "Move (After)" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Select Frames" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Horizontal:" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Vertical:" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Select/Clear All Frames" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Create Frames from Sprite Sheet" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "SpriteFrames" msgstr "" @@ -6646,12 +7037,12 @@ msgstr "" msgid "Remove All Items" msgstr "" -#: editor/plugins/theme_editor_plugin.cpp +#: editor/plugins/theme_editor_plugin.cpp editor/project_manager.cpp msgid "Remove All" msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "Edit theme..." +msgid "Edit Theme" msgstr "" #: editor/plugins/theme_editor_plugin.cpp @@ -6679,11 +7070,11 @@ msgid "Create From Current Editor Theme" msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "CheckBox Radio1" +msgid "Toggle Button" msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "CheckBox Radio2" +msgid "Disabled Button" msgstr "" #: editor/plugins/theme_editor_plugin.cpp @@ -6691,6 +7082,10 @@ msgid "Item" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +msgid "Disabled Item" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Check Item" msgstr "" @@ -6707,6 +7102,22 @@ msgid "Checked Radio Item" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +msgid "Named Sep." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Submenu" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Item 1" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Item 2" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Has" msgstr "" @@ -6715,7 +7126,7 @@ msgid "Many" msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "Has,Many,Options" +msgid "Disabled LineEdit" msgstr "" #: editor/plugins/theme_editor_plugin.cpp @@ -6731,6 +7142,18 @@ msgid "Tab 3" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +msgid "Editable Item" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Subtree" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Has,Many,Options" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Data Type:" msgstr "" @@ -6763,6 +7186,7 @@ msgid "Fix Invalid Tiles" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp +#: modules/gridmap/grid_map_editor_plugin.cpp msgid "Cut Selection" msgstr "" @@ -6803,35 +7227,45 @@ msgid "Mirror Y" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp +msgid "Disable Autotile" +msgstr "" + +#: editor/plugins/tile_map_editor_plugin.cpp +msgid "Enable Priority" +msgstr "" + +#: editor/plugins/tile_map_editor_plugin.cpp msgid "Paint Tile" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Pick Tile" +msgid "" +"Shift+RMB: Line Draw\n" +"Shift+Ctrl+RMB: Rectangle Paint" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Copy Selection" +msgid "Pick Tile" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Rotate left" +msgid "Rotate Left" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Rotate right" +msgid "Rotate Right" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Flip horizontally" +msgid "Flip Horizontally" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Flip vertically" +msgid "Flip Vertically" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Clear transform" +msgid "Clear Transform" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp @@ -6867,6 +7301,38 @@ msgid "Select the previous shape, subtile, or Tile." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp +msgid "Region Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Collision Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Occlusion Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Navigation Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Bitmask Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Priority Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Icon Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Z Index Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp msgid "Copy bitmask." msgstr "" @@ -6946,6 +7412,7 @@ msgstr "" msgid "" "LMB: Set bit on.\n" "RMB: Set bit off.\n" +"Shift+LMB: Set wildcard bit.\n" "Click on another Tile to edit it." msgstr "" @@ -7053,6 +7520,66 @@ msgid "TileSet" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add input +" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add output +" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add input port" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add output port" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Change input port type" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Change output port type" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Change input port name" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Change output port name" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Remove input port" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Remove output port" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Set expression" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Resize VisualShader node" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Set Uniform Name" msgstr "" @@ -7089,6 +7616,837 @@ msgid "Light" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Create Shader Node" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Color function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Color operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Grayscale function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts HSV vector to RGB equivalent." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts RGB vector to HSV equivalent." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Sepia function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Burn operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Darken operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Difference operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Dodge operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "HardLight operator" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Lighten operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Overlay operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Screen operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "SoftLight operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Color constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Color uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns an associated vector if the provided scalars are equal, greater or " +"less." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns an associated vector if the provided boolean value is true or false." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'camera' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'inv_camera' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'inv_projection' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'normal' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'projection' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'time' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'viewport_size' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'world' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'texture_pixel_size' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Input parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'binormal' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'fragcoord' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_coord' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_uv' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'side' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'tangent' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv2' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'vertex' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'view' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'albedo' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'attenuation' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'diffuse' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_color' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'roughness' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'specular' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'transmission' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'modelview' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_size' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'tangent' input parameter for vertex and fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_pass' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_coord' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_pixel_size' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_uv' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_alpha' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_height' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_uv' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_vec' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'normal' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'shadow_color' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'extra' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'projection' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'vertex' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'world' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'active' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'custom' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'custom_alpha' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'delta' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'emission_transform' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'index' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'lifetime' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'restart' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'time' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'transform' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'velocity' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Scalar function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Scalar operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "E constant (2.718282). Represents the base of the natural logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Epsilon constant (0.00001). Smallest possible scalar number." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Phi constant (1.618034). Golden ratio." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi/4 constant (0.785398) or 45 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi/2 constant (1.570796) or 90 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi constant (3.141593) or 180 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Tau constant (6.283185) or 360 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Sqrt2 constant (1.414214). Square root of 2." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the absolute value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-tangent of the parameters." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Finds the nearest integer that is greater than or equal to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Constrains a value to lie between two further values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts a quantity in radians to degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-e Exponential." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-2 Exponential." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Finds the nearest integer less than or equal to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Computes the fractional part of the argument." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the inverse of the square root of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Natural logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-2 logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the greater of two values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the lesser of two values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Linear interpolation between two scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the opposite value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 - scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns the value of the first parameter raised to the power of the second." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts a quantity in degrees to radians." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 / scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the nearest integer to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the nearest even integer to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Clamps the value between 0.0 and 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Extracts the sign of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the square root of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( scalar(edge0), scalar(edge1), scalar(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if x is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( scalar(edge), scalar(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the truncated value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Adds scalar to scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Divides scalar by scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies scalar by scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the remainder of the two scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Subtracts scalar from scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Scalar constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Scalar uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Perform the cubic texture lookup." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Perform the texture lookup." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Cubic texture uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "2D texture uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Transform function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) Calculate the outer product of a pair of vectors.\n" +"\n" +"OuterProduct treats the first parameter 'c' as a column vector (matrix with " +"one column) and the second parameter 'r' as a row vector (matrix with one " +"row) and does a linear algebraic matrix multiply 'c * r', yielding a matrix " +"whose number of rows is the number of components in 'c' and whose number of " +"columns is the number of components in 'r'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Composes transform from four vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Decomposes transform to four vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the determinant of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the inverse of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the transpose of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies transform by transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies vector by transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Transform constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Transform uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Composes vector from three scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Decomposes vector to three scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the cross product of two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the distance between two points." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the dot product of two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns a vector that points in the same direction as a reference vector. " +"The function has three vector parameters : N, the vector to orient, I, the " +"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 "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the length of a vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Linear interpolation between two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the normalize product of vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 - vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 / vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns a vector that points in the direction of reflection ( a : incident " +"vector, b : normal vector )." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns a vector that points in the direction of refraction." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( vector(edge0), vector(edge1), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if 'x' is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( scalar(edge0), scalar(edge1), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if 'x' is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( vector(edge), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( scalar(edge), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Adds vector to vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Divides vector by vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies vector by vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the remainder of the two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Subtracts vector from vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Custom Godot Shader Language expression, with custom amount of input and " +"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 "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns falloff based on the dot product of surface normal and view " +"direction of camera (pass associated inputs to it)." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) (Fragment/Light mode only) Scalar derivative function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) (Fragment/Light mode only) Vector derivative function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Derivative in 'x' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Derivative in 'x' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Derivative in 'y' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Derivative in 'y' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Sum of absolute derivative " +"in 'x' and 'y'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Sum of absolute derivative " +"in 'x' and 'y'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "VisualShader" msgstr "" @@ -7276,6 +8634,10 @@ msgid "Directory already contains a Godot project." msgstr "" #: editor/project_manager.cpp +msgid "New Game Project" +msgstr "" + +#: editor/project_manager.cpp msgid "Imported Project" msgstr "" @@ -7322,10 +8684,6 @@ msgid "Rename Project" msgstr "" #: editor/project_manager.cpp -msgid "New Game Project" -msgstr "" - -#: editor/project_manager.cpp msgid "Import Existing Project" msgstr "" @@ -7354,10 +8712,6 @@ msgid "Project Name:" msgstr "" #: editor/project_manager.cpp -msgid "Create folder" -msgstr "" - -#: editor/project_manager.cpp msgid "Project Path:" msgstr "" @@ -7366,10 +8720,6 @@ msgid "Project Installation Path:" msgstr "" #: editor/project_manager.cpp -msgid "Browse" -msgstr "" - -#: editor/project_manager.cpp msgid "Renderer:" msgstr "" @@ -7422,8 +8772,8 @@ msgid "" "\n" "If you proceed with opening it, it will be converted to Godot's current " "configuration file format.\n" -"Warning: You will not be able to open the project with previous versions of " -"the engine anymore." +"Warning: You won't be able to open the project with previous versions of the " +"engine anymore." msgstr "" #: editor/project_manager.cpp @@ -7434,8 +8784,8 @@ msgid "" "%s\n" "\n" "Do you want to convert it?\n" -"Warning: You will not be able to open the project with previous versions of " -"the engine anymore." +"Warning: You won't be able to open the project with previous versions of the " +"engine anymore." msgstr "" #: editor/project_manager.cpp @@ -7447,7 +8797,7 @@ msgstr "" #: editor/project_manager.cpp msgid "" "Can't run project: no main scene defined.\n" -"Please edit the project and set the main scene in \"Project Settings\" under " +"Please edit the project and set the main scene in the Project Settings under " "the \"Application\" category." msgstr "" @@ -7458,23 +8808,37 @@ msgid "" msgstr "" #: editor/project_manager.cpp -msgid "Are you sure to run more than one project?" +msgid "Are you sure to run %d projects at once?" +msgstr "" + +#: editor/project_manager.cpp +msgid "" +"Remove %d projects from the list?\n" +"The project folders' contents won't be modified." +msgstr "" + +#: editor/project_manager.cpp +msgid "" +"Remove this project from the list?\n" +"The project folder's contents won't be modified." msgstr "" #: editor/project_manager.cpp -msgid "Remove project from the list? (Folder contents will not be modified)" +msgid "" +"Remove all missing projects from the list? (Folders contents will not be " +"modified)" msgstr "" #: editor/project_manager.cpp msgid "" "Language changed.\n" -"The UI will update next time the editor or project manager starts." +"The interface will update after restarting the editor or project manager." msgstr "" #: editor/project_manager.cpp msgid "" -"You are about the scan %s folders for existing Godot projects. Do you " -"confirm?" +"Are you sure to scan %s folders for existing Godot projects?\n" +"This could take a while." msgstr "" #: editor/project_manager.cpp @@ -7498,6 +8862,10 @@ msgid "New Project" msgstr "" #: editor/project_manager.cpp +msgid "Remove Missing" +msgstr "" + +#: editor/project_manager.cpp msgid "Templates" msgstr "" @@ -7515,8 +8883,8 @@ msgstr "" #: editor/project_manager.cpp msgid "" -"You don't currently have any projects.\n" -"Would you like to explore the official example projects in the Asset Library?" +"You currently don't have any projects.\n" +"Would you like to explore official example projects in the Asset Library?" msgstr "" #: editor/project_settings_editor.cpp @@ -7542,7 +8910,7 @@ msgid "" msgstr "" #: editor/project_settings_editor.cpp -msgid "Action '%s' already exists!" +msgid "An action with the name '%s' already exists." msgstr "" #: editor/project_settings_editor.cpp @@ -7696,10 +9064,6 @@ msgid "" msgstr "" #: editor/project_settings_editor.cpp -msgid "Already existing" -msgstr "" - -#: editor/project_settings_editor.cpp msgid "Add Input Action" msgstr "" @@ -7764,7 +9128,7 @@ msgid "Override For..." msgstr "" #: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp -msgid "Editor must be restarted for changes to take effect" +msgid "The editor must be restarted for changes to take effect." msgstr "" #: editor/project_settings_editor.cpp @@ -7824,11 +9188,11 @@ msgid "Locales Filter" msgstr "" #: editor/project_settings_editor.cpp -msgid "Show all locales" +msgid "Show All Locales" msgstr "" #: editor/project_settings_editor.cpp -msgid "Show only selected locales" +msgid "Show Selected Locales Only" msgstr "" #: editor/project_settings_editor.cpp @@ -7844,14 +9208,6 @@ msgid "AutoLoad" msgstr "" #: editor/property_editor.cpp -msgid "Ease In" -msgstr "" - -#: editor/property_editor.cpp -msgid "Ease Out" -msgstr "" - -#: editor/property_editor.cpp msgid "Zero" msgstr "" @@ -7924,7 +9280,7 @@ msgid "Suffix" msgstr "" #: editor/rename_dialog.cpp -msgid "Advanced options" +msgid "Advanced Options" msgstr "" #: editor/rename_dialog.cpp @@ -8176,7 +9532,7 @@ msgid "User Interface" msgstr "" #: editor/scene_tree_dock.cpp -msgid "Custom Node" +msgid "Other Node" msgstr "" #: editor/scene_tree_dock.cpp @@ -8218,7 +9574,7 @@ msgid "Clear Inheritance" msgstr "" #: editor/scene_tree_dock.cpp -msgid "Open documentation" +msgid "Open Documentation" msgstr "" #: editor/scene_tree_dock.cpp @@ -8245,7 +9601,7 @@ msgstr "" msgid "Save Branch as Scene" msgstr "" -#: editor/scene_tree_dock.cpp +#: editor/scene_tree_dock.cpp editor/script_editor_debugger.cpp msgid "Copy Node Path" msgstr "" @@ -8288,6 +9644,18 @@ msgid "Toggle Visible" msgstr "" #: editor/scene_tree_editor.cpp +msgid "Unlock Node" +msgstr "" + +#: editor/scene_tree_editor.cpp +msgid "Button Group" +msgstr "" + +#: editor/scene_tree_editor.cpp +msgid "(Connecting From)" +msgstr "" + +#: editor/scene_tree_editor.cpp msgid "Node configuration warning:" msgstr "" @@ -8309,8 +9677,8 @@ msgid "" "Click to show groups dock." msgstr "" -#: editor/scene_tree_editor.cpp editor/script_create_dialog.cpp -msgid "Open Script" +#: editor/scene_tree_editor.cpp +msgid "Open Script:" msgstr "" #: editor/scene_tree_editor.cpp @@ -8356,71 +9724,71 @@ msgid "Select a Node" msgstr "" #: editor/script_create_dialog.cpp -msgid "Error loading template '%s'" +msgid "Path is empty." msgstr "" #: editor/script_create_dialog.cpp -msgid "Error - Could not create script in filesystem." +msgid "Filename is empty." msgstr "" #: editor/script_create_dialog.cpp -msgid "Error loading script from %s" +msgid "Path is not local." msgstr "" #: editor/script_create_dialog.cpp -msgid "N/A" +msgid "Invalid base path." msgstr "" #: editor/script_create_dialog.cpp -msgid "Open Script/Choose Location" +msgid "A directory with the same name exists." msgstr "" #: editor/script_create_dialog.cpp -msgid "Path is empty" +msgid "Invalid extension." msgstr "" #: editor/script_create_dialog.cpp -msgid "Filename is empty" +msgid "Wrong extension chosen." msgstr "" #: editor/script_create_dialog.cpp -msgid "Path is not local" +msgid "Error loading template '%s'" msgstr "" #: editor/script_create_dialog.cpp -msgid "Invalid base path" +msgid "Error - Could not create script in filesystem." msgstr "" #: editor/script_create_dialog.cpp -msgid "Directory of the same name exists" +msgid "Error loading script from %s" msgstr "" #: editor/script_create_dialog.cpp -msgid "File exists, will be reused" +msgid "N/A" msgstr "" #: editor/script_create_dialog.cpp -msgid "Invalid extension" +msgid "Open Script / Choose Location" msgstr "" #: editor/script_create_dialog.cpp -msgid "Wrong extension chosen" +msgid "Open Script" msgstr "" #: editor/script_create_dialog.cpp -msgid "Invalid Path" +msgid "File exists, it will be reused." msgstr "" #: editor/script_create_dialog.cpp -msgid "Invalid class name" +msgid "Invalid class name." msgstr "" #: editor/script_create_dialog.cpp -msgid "Invalid inherited parent name or path" +msgid "Invalid inherited parent name or path." msgstr "" #: editor/script_create_dialog.cpp -msgid "Script valid" +msgid "Script is valid." msgstr "" #: editor/script_create_dialog.cpp @@ -8428,15 +9796,15 @@ msgid "Allowed: a-z, A-Z, 0-9 and _" msgstr "" #: editor/script_create_dialog.cpp -msgid "Built-in script (into scene file)" +msgid "Built-in script (into scene file)." msgstr "" #: editor/script_create_dialog.cpp -msgid "Create new script file" +msgid "Will create a new script file." msgstr "" #: editor/script_create_dialog.cpp -msgid "Load existing script file" +msgid "Will load an existing script file." msgstr "" #: editor/script_create_dialog.cpp @@ -8567,6 +9935,10 @@ msgstr "" msgid "Set From Tree" msgstr "" +#: editor/script_editor_debugger.cpp +msgid "Export measures as CSV" +msgstr "" + #: editor/settings_config_dialog.cpp msgid "Erase Shortcut" msgstr "" @@ -8696,6 +10068,14 @@ msgid "GDNativeLibrary" msgstr "" #: modules/gdnative/gdnative_library_singleton_editor.cpp +msgid "Enabled GDNative Singleton" +msgstr "" + +#: modules/gdnative/gdnative_library_singleton_editor.cpp +msgid "Disabled GDNative Singleton" +msgstr "" + +#: modules/gdnative/gdnative_library_singleton_editor.cpp msgid "Library" msgstr "" @@ -8780,7 +10160,7 @@ msgid "GridMap Fill Selection" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "GridMap Duplicate Selection" +msgid "GridMap Paste Selection" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp @@ -8848,18 +10228,6 @@ msgid "Cursor Clear Rotation" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Create Area" -msgstr "" - -#: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Create Exterior Connector" -msgstr "" - -#: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Erase Area" -msgstr "" - -#: modules/gridmap/grid_map_editor_plugin.cpp msgid "Clear Selection" msgstr "" @@ -9210,15 +10578,7 @@ msgid "Available Nodes:" msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Select or create a function to edit graph" -msgstr "" - -#: modules/visual_script/visual_script_editor.cpp -msgid "Edit Signal Arguments:" -msgstr "" - -#: modules/visual_script/visual_script_editor.cpp -msgid "Edit Variable:" +msgid "Select or create a function to edit its graph." msgstr "" #: modules/visual_script/visual_script_editor.cpp @@ -9348,6 +10708,19 @@ msgid "Debug keystore not configured in the Editor Settings nor in the preset." msgstr "" #: platform/android/export/export.cpp +msgid "Custom build requires a valid Android SDK path in Editor Settings." +msgstr "" + +#: platform/android/export/export.cpp +msgid "Invalid Android SDK path for custom build in Editor Settings." +msgstr "" + +#: platform/android/export/export.cpp +msgid "" +"Android project is not installed for compiling. Install from Editor menu." +msgstr "" + +#: platform/android/export/export.cpp msgid "Invalid public key for APK expansion." msgstr "" @@ -9355,6 +10728,34 @@ msgstr "" msgid "Invalid package name:" msgstr "" +#: platform/android/export/export.cpp +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 "" +"Android build version mismatch:\n" +" Template installed: %s\n" +" Godot Version: %s\n" +"Please reinstall Android build template from 'Project' menu." +msgstr "" + +#: platform/android/export/export.cpp +msgid "Building Android Project (gradle)" +msgstr "" + +#: 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 "" + +#: platform/android/export/export.cpp +msgid "No build apk generated at: " +msgstr "" + #: platform/iphone/export/export.cpp msgid "Identifier is missing." msgstr "" @@ -9607,27 +11008,27 @@ msgid "ARVRCamera must have an ARVROrigin node as its parent" msgstr "" #: scene/3d/arvr_nodes.cpp -msgid "ARVRController must have an ARVROrigin node as its parent" +msgid "ARVRController must have an ARVROrigin node as its parent." msgstr "" #: scene/3d/arvr_nodes.cpp msgid "" -"The controller id must not be 0 or this controller will not be bound to an " -"actual controller" +"The controller ID must not be 0 or this controller won't be bound to an " +"actual controller." msgstr "" #: scene/3d/arvr_nodes.cpp -msgid "ARVRAnchor must have an ARVROrigin node as its parent" +msgid "ARVRAnchor must have an ARVROrigin node as its parent." msgstr "" #: scene/3d/arvr_nodes.cpp msgid "" -"The anchor id must not be 0 or this anchor will not be bound to an actual " -"anchor" +"The anchor ID must not be 0 or this anchor won't be bound to an actual " +"anchor." msgstr "" #: scene/3d/arvr_nodes.cpp -msgid "ARVROrigin requires an ARVRCamera child node" +msgid "ARVROrigin requires an ARVRCamera child node." msgstr "" #: scene/3d/baked_lightmap.cpp @@ -9697,8 +11098,8 @@ msgstr "" #: scene/3d/cpu_particles.cpp msgid "" -"CPUParticles animation requires the usage of a SpatialMaterial with " -"\"Billboard Particles\" enabled." +"CPUParticles animation requires the usage of a SpatialMaterial whose " +"Billboard Mode is set to \"Particle Billboard\"." msgstr "" #: scene/3d/gi_probe.cpp @@ -9735,8 +11136,8 @@ msgstr "" #: scene/3d/particles.cpp msgid "" -"Particles animation requires the usage of a SpatialMaterial with \"Billboard " -"Particles\" enabled." +"Particles animation requires the usage of a SpatialMaterial whose Billboard " +"Mode is set to \"Particle Billboard\"." msgstr "" #: scene/3d/path.cpp @@ -9761,7 +11162,7 @@ msgid "Path property must point to a valid Spatial node to work." msgstr "" #: scene/3d/soft_body.cpp -msgid "This body will be ignored until you set a mesh" +msgid "This body will be ignored until you set a mesh." msgstr "" #: scene/3d/soft_body.cpp @@ -9858,7 +11259,7 @@ msgstr "" msgid "" "Container by itself serves no purpose unless a script configures it's " "children placement behavior.\n" -"If you dont't intend to add a script, then please use a plain 'Control' node " +"If you don't intend to add a script, then please use a plain 'Control' node " "instead." msgstr "" @@ -9870,10 +11271,6 @@ msgstr "" msgid "Please Confirm..." msgstr "" -#: scene/gui/file_dialog.cpp -msgid "Go to parent folder." -msgstr "" - #: scene/gui/popup.cpp msgid "" "Popups will hide by default unless you call popup() or any of the popup*() " @@ -9945,3 +11342,7 @@ msgstr "" #: servers/visual/shader_language.cpp msgid "Varyings can only be assigned in vertex function." msgstr "" + +#: servers/visual/shader_language.cpp +msgid "Constants cannot be modified." +msgstr "" diff --git a/editor/translations/ml.po b/editor/translations/ml.po index 215ca3d2cc..57bf923ff0 100644 --- a/editor/translations/ml.po +++ b/editor/translations/ml.po @@ -70,6 +70,14 @@ msgstr "" msgid "Mirror" msgstr "" +#: editor/animation_bezier_editor.cpp editor/editor_profiler.cpp +msgid "Time:" +msgstr "" + +#: editor/animation_bezier_editor.cpp +msgid "Value:" +msgstr "" + #: editor/animation_bezier_editor.cpp msgid "Insert Key Here" msgstr "" @@ -152,11 +160,15 @@ msgid "Animation Playback Track" msgstr "" #: editor/animation_track_editor.cpp -msgid "Add Track" +msgid "Animation length (frames)" msgstr "" #: editor/animation_track_editor.cpp -msgid "Animation Length Time (seconds)" +msgid "Animation length (seconds)" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Add Track" msgstr "" #: editor/animation_track_editor.cpp @@ -283,11 +295,13 @@ msgid "Create %d NEW tracks and insert keys?" msgstr "" #: editor/animation_track_editor.cpp editor/create_dialog.cpp -#: editor/editor_audio_buses.cpp editor/editor_plugin_settings.cpp -#: editor/plugin_config_dialog.cpp +#: editor/editor_audio_buses.cpp editor/editor_feature_profile.cpp +#: editor/editor_plugin_settings.cpp editor/plugin_config_dialog.cpp #: editor/plugins/abstract_polygon_2d_editor.cpp #: editor/plugins/mesh_instance_editor_plugin.cpp -#: editor/plugins/particles_editor_plugin.cpp editor/script_create_dialog.cpp +#: editor/plugins/particles_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_create_dialog.cpp msgid "Create" msgstr "" @@ -397,6 +411,23 @@ msgid "" msgstr "" #: editor/animation_track_editor.cpp +msgid "" +"This animation belongs to an imported scene, so changes to imported tracks " +"will not be saved.\n" +"\n" +"To enable the ability to add custom tracks, navigate to the scene's import " +"settings and set\n" +"\"Animation > Storage\" to \"Files\", enable \"Animation > Keep Custom Tracks" +"\", then re-import.\n" +"Alternatively, use an import preset that imports animations to separate " +"files." +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Warning: Editing imported animation" +msgstr "" + +#: editor/animation_track_editor.cpp msgid "Only show tracks from nodes selected in tree." msgstr "" @@ -529,7 +560,8 @@ msgstr "" msgid "Select tracks to copy:" msgstr "" -#: editor/animation_track_editor.cpp editor/editor_properties.cpp +#: editor/animation_track_editor.cpp editor/editor_log.cpp +#: editor/editor_properties.cpp #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp @@ -597,6 +629,11 @@ msgstr "" msgid "Selection Only" msgstr "" +#: editor/code_editor.cpp editor/plugins/script_text_editor.cpp +#: editor/plugins/text_editor.cpp +msgid "Standard" +msgstr "" + #: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/texture_region_editor_plugin.cpp #: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp @@ -622,17 +659,29 @@ msgid "Line and column numbers." msgstr "" #: editor/connections_dialog.cpp -msgid "Method in target Node must be specified!" +msgid "Method in target node must be specified." msgstr "" #: editor/connections_dialog.cpp msgid "" -"Target method not found! Specify a valid method or attach a script to target " -"Node." +"Target method not found. Specify a valid method or attach a script to the " +"target node." +msgstr "" + +#: editor/connections_dialog.cpp +msgid "Connect to Node:" +msgstr "" + +#: editor/connections_dialog.cpp +msgid "Connect to Script:" +msgstr "" + +#: editor/connections_dialog.cpp +msgid "From Signal:" msgstr "" #: editor/connections_dialog.cpp -msgid "Connect To Node:" +msgid "Scene does not contain any script." msgstr "" #: editor/connections_dialog.cpp editor/editor_autoload_settings.cpp @@ -642,10 +691,12 @@ msgid "Add" msgstr "" #: editor/connections_dialog.cpp editor/dependency_editor.cpp -#: editor/groups_editor.cpp editor/plugins/animation_player_editor_plugin.cpp +#: editor/editor_feature_profile.cpp editor/groups_editor.cpp +#: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp #: editor/plugins/resource_preloader_editor_plugin.cpp -#: editor/plugins/theme_editor_plugin.cpp editor/project_manager.cpp +#: editor/plugins/theme_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_manager.cpp #: editor/project_settings_editor.cpp msgid "Remove" msgstr "" @@ -659,21 +710,30 @@ msgid "Extra Call Arguments:" msgstr "" #: editor/connections_dialog.cpp -msgid "Path to Node:" +msgid "Advanced" msgstr "" #: editor/connections_dialog.cpp -msgid "Make Function" +msgid "Deferred" msgstr "" #: editor/connections_dialog.cpp -msgid "Deferred" +msgid "" +"Defers the signal, storing it in a queue and only firing it at idle time." msgstr "" #: editor/connections_dialog.cpp msgid "Oneshot" msgstr "" +#: editor/connections_dialog.cpp +msgid "Disconnects the signal after its first emission." +msgstr "" + +#: editor/connections_dialog.cpp +msgid "Cannot connect signal" +msgstr "" + #: editor/connections_dialog.cpp editor/dependency_editor.cpp #: editor/export_template_manager.cpp editor/groups_editor.cpp #: editor/plugins/animation_player_editor_plugin.cpp @@ -714,11 +774,11 @@ msgid "Disconnect" msgstr "" #: editor/connections_dialog.cpp -msgid "Connect Signal: " +msgid "Connect a Signal to a Method" msgstr "" #: editor/connections_dialog.cpp -msgid "Edit Connection: " +msgid "Edit Connection:" msgstr "" #: editor/connections_dialog.cpp @@ -750,7 +810,6 @@ msgid "Change %s Type" msgstr "" #: editor/create_dialog.cpp editor/project_settings_editor.cpp -#: modules/visual_script/visual_script_editor.cpp msgid "Change" msgstr "" @@ -781,7 +840,8 @@ msgid "Matches:" msgstr "" #: editor/create_dialog.cpp editor/plugin_config_dialog.cpp -#: editor/plugins/asset_library_editor_plugin.cpp editor/property_selector.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/property_selector.cpp #: modules/visual_script/visual_script_property_selector.cpp msgid "Description:" msgstr "" @@ -797,13 +857,13 @@ msgstr "" #: editor/dependency_editor.cpp msgid "" "Scene '%s' is currently being edited.\n" -"Changes will not take effect unless reloaded." +"Changes will only take effect when reloaded." msgstr "" #: editor/dependency_editor.cpp msgid "" "Resource '%s' is in use.\n" -"Changes will take effect when reloaded." +"Changes will only take effect when reloaded." msgstr "" #: editor/dependency_editor.cpp @@ -894,21 +954,13 @@ msgid "Permanently delete %d item(s)? (No undo!)" msgstr "" #: editor/dependency_editor.cpp -msgid "Owns" -msgstr "" - -#: editor/dependency_editor.cpp -msgid "Resources Without Explicit Ownership:" +msgid "Show Dependencies" msgstr "" #: editor/dependency_editor.cpp editor/editor_node.cpp msgid "Orphan Resource Explorer" msgstr "" -#: editor/dependency_editor.cpp -msgid "Delete selected files?" -msgstr "" - #: editor/dependency_editor.cpp editor/editor_audio_buses.cpp #: editor/editor_file_dialog.cpp editor/editor_node.cpp #: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp @@ -917,6 +969,14 @@ msgstr "" msgid "Delete" msgstr "" +#: editor/dependency_editor.cpp +msgid "Owns" +msgstr "" + +#: editor/dependency_editor.cpp +msgid "Resources Without Explicit Ownership:" +msgstr "" + #: editor/dictionary_property_edit.cpp msgid "Change Dictionary Key" msgstr "" @@ -1026,7 +1086,7 @@ msgstr "" msgid "Success!" msgstr "" -#: editor/editor_asset_installer.cpp +#: editor/editor_asset_installer.cpp editor/editor_node.cpp #: editor/plugins/asset_library_editor_plugin.cpp msgid "Install" msgstr "" @@ -1153,7 +1213,11 @@ msgid "Open Audio Bus Layout" msgstr "" #: editor/editor_audio_buses.cpp -msgid "There is no 'res://default_bus_layout.tres' file." +msgid "There is no '%s' file." +msgstr "" + +#: editor/editor_audio_buses.cpp editor/plugins/canvas_item_editor_plugin.cpp +msgid "Layout" msgstr "" #: editor/editor_audio_buses.cpp @@ -1207,15 +1271,19 @@ msgid "Valid characters:" msgstr "" #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing engine class name." +msgid "Must not collide with an existing engine class name." msgstr "" #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing buit-in type name." +msgid "Must not collide with an existing buit-in type name." msgstr "" #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing global constant name." +msgid "Must not collide with an existing global constant name." +msgstr "" + +#: editor/editor_autoload_settings.cpp +msgid "Keyword cannot be used as an autoload name." msgstr "" #: editor/editor_autoload_settings.cpp @@ -1246,11 +1314,11 @@ msgstr "" msgid "Rearrange Autoloads" msgstr "" -#: editor/editor_autoload_settings.cpp -msgid "Invalid Path." +#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp +msgid "Invalid path." msgstr "" -#: editor/editor_autoload_settings.cpp +#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp msgid "File does not exist." msgstr "" @@ -1301,7 +1369,7 @@ msgid "[unsaved]" msgstr "" #: editor/editor_dir_dialog.cpp -msgid "Please select a base directory first" +msgid "Please select a base directory first." msgstr "" #: editor/editor_dir_dialog.cpp @@ -1309,7 +1377,8 @@ msgid "Choose a Directory" msgstr "" #: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp -#: editor/filesystem_dock.cpp scene/gui/file_dialog.cpp +#: editor/filesystem_dock.cpp editor/project_manager.cpp +#: scene/gui/file_dialog.cpp msgid "Create Folder" msgstr "" @@ -1377,6 +1446,151 @@ msgstr "" msgid "Template file not found:" msgstr "" +#: editor/editor_feature_profile.cpp +msgid "3D Editor" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Script Editor" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Asset Library" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Scene Tree Editing" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Import Dock" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Node Dock" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Filesystem Dock" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Erase profile '%s'? (no undo)" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Profile must be a valid filename and must not contain '.'" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Profile with this name already exists." +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "(Editor Disabled, Properties Disabled)" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "(Properties Disabled)" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "(Editor Disabled)" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Class Options:" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Enable Contextual Editor" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Enabled Properties:" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Enabled Features:" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Enabled Classes:" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "File '%s' format is invalid, import aborted." +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "" +"Profile '%s' already exists. Remote it first before importing, import " +"aborted." +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Error saving profile to path: '%s'." +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Unset" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Current Profile" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Make Current" +msgstr "" + +#: editor/editor_feature_profile.cpp +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "New" +msgstr "" + +#: editor/editor_feature_profile.cpp editor/editor_node.cpp +#: editor/plugins/asset_library_editor_plugin.cpp editor/project_manager.cpp +msgid "Import" +msgstr "" + +#: editor/editor_feature_profile.cpp editor/editor_node.cpp +#: editor/project_export.cpp +msgid "Export" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Available Profiles" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Enabled Classes" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Class Options" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "New profile name:" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Erase Profile" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Import Profile(s)" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Export Profile" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Manage Editor Feature Profiles" +msgstr "" + #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Select Current Folder" msgstr "" @@ -1397,8 +1611,8 @@ msgstr "" msgid "Open in File Manager" msgstr "" -#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp -#: editor/project_manager.cpp +#: editor/editor_file_dialog.cpp editor/editor_node.cpp +#: editor/filesystem_dock.cpp editor/project_manager.cpp msgid "Show in File Manager" msgstr "" @@ -1457,7 +1671,7 @@ msgstr "" msgid "Go Up" msgstr "" -#: editor/editor_file_dialog.cpp +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Toggle Hidden Files" msgstr "" @@ -1489,14 +1703,18 @@ msgstr "" msgid "Next Folder" msgstr "" -#: editor/editor_file_dialog.cpp -msgid "Go to parent folder" +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp +msgid "Go to parent folder." msgstr "" #: editor/editor_file_dialog.cpp msgid "(Un)favorite current folder." msgstr "" +#: editor/editor_file_dialog.cpp +msgid "Toggle visibility of hidden files." +msgstr "" + #: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp msgid "View items as a grid of thumbnails." msgstr "" @@ -1511,6 +1729,7 @@ msgstr "" #: editor/editor_file_dialog.cpp editor/plugins/sprite_editor_plugin.cpp #: editor/plugins/style_box_editor_plugin.cpp +#: editor/plugins/theme_editor_plugin.cpp msgid "Preview:" msgstr "" @@ -1527,6 +1746,12 @@ msgid "ScanSources" msgstr "" #: editor/editor_file_system.cpp +msgid "" +"There are multiple importers for different types pointing to file %s, import " +"aborted" +msgstr "" + +#: editor/editor_file_system.cpp msgid "(Re)Importing Assets" msgstr "" @@ -1702,6 +1927,10 @@ msgstr "" msgid "Output:" msgstr "" +#: editor/editor_log.cpp editor/plugins/tile_map_editor_plugin.cpp +msgid "Copy Selection" +msgstr "" + #: editor/editor_log.cpp editor/editor_profiler.cpp #: editor/editor_properties.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp @@ -1849,7 +2078,7 @@ msgstr "" #: editor/editor_node.cpp msgid "" "This resource belongs to a scene that was instanced or inherited.\n" -"Changes to it will not be kept when saving the current scene." +"Changes to it won't be kept when saving the current scene." msgstr "" #: editor/editor_node.cpp @@ -1860,7 +2089,7 @@ msgstr "" #: editor/editor_node.cpp msgid "" -"This scene was imported, so changes to it will not be kept.\n" +"This scene was imported, so changes to it won't be kept.\n" "Instancing it or inheriting will allow making changes to it.\n" "Please read the documentation relevant to importing scenes to better " "understand this workflow." @@ -1868,7 +2097,7 @@ msgstr "" #: editor/editor_node.cpp msgid "" -"This is a remote object so changes to it will not be kept.\n" +"This is a remote object, so changes to it won't be kept.\n" "Please read the documentation relevant to debugging to better understand " "this workflow." msgstr "" @@ -1878,27 +2107,6 @@ msgid "There is no defined scene to run." msgstr "" #: editor/editor_node.cpp -msgid "" -"No main scene has ever been defined, select one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" - -#: editor/editor_node.cpp -msgid "" -"Selected scene '%s' does not exist, select a valid one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" - -#: editor/editor_node.cpp -msgid "" -"Selected scene '%s' is not a scene file, select a valid one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" - -#: editor/editor_node.cpp msgid "Current scene was never saved, please save it prior to running." msgstr "" @@ -1906,7 +2114,7 @@ msgstr "" msgid "Could not start subprocess!" msgstr "" -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/filesystem_dock.cpp msgid "Open Scene" msgstr "" @@ -1915,6 +2123,10 @@ msgid "Open Base Scene" msgstr "" #: editor/editor_node.cpp +msgid "Quick Open..." +msgstr "" + +#: editor/editor_node.cpp msgid "Quick Open Scene..." msgstr "" @@ -2076,6 +2288,27 @@ msgid "Clear Recent Scenes" msgstr "" #: editor/editor_node.cpp +msgid "" +"No main scene has ever been defined, select one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"Selected scene '%s' does not exist, select a valid one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"Selected scene '%s' is not a scene file, select a valid one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" + +#: editor/editor_node.cpp msgid "Save Layout" msgstr "" @@ -2101,6 +2334,18 @@ msgstr "" msgid "Close Tab" msgstr "" +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +msgid "Close Other Tabs" +msgstr "" + +#: editor/editor_node.cpp +msgid "Close Tabs to the Right" +msgstr "" + +#: editor/editor_node.cpp +msgid "Close All Tabs" +msgstr "" + #: editor/editor_node.cpp msgid "Switch Scene Tab" msgstr "" @@ -2223,10 +2468,6 @@ msgstr "" msgid "Project Settings" msgstr "" -#: editor/editor_node.cpp editor/project_export.cpp -msgid "Export" -msgstr "" - #: editor/editor_node.cpp editor/plugins/tile_set_editor_plugin.cpp msgid "Tools" msgstr "" @@ -2236,6 +2477,10 @@ msgid "Open Project Data Folder" msgstr "" #: editor/editor_node.cpp +msgid "Install Android Build Template" +msgstr "" + +#: editor/editor_node.cpp msgid "Quit to Project List" msgstr "" @@ -2340,6 +2585,10 @@ msgstr "" msgid "Open Editor Settings Folder" msgstr "" +#: editor/editor_node.cpp +msgid "Manage Editor Features" +msgstr "" + #: editor/editor_node.cpp editor/project_export.cpp msgid "Manage Export Templates" msgstr "" @@ -2352,6 +2601,7 @@ msgstr "" #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp #: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp #: editor/project_settings_editor.cpp editor/rename_dialog.cpp msgid "Search" msgstr "" @@ -2441,11 +2691,6 @@ msgstr "" msgid "Disable Update Spinner" msgstr "" -#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp -#: editor/project_manager.cpp -msgid "Import" -msgstr "" - #: editor/editor_node.cpp msgid "FileSystem" msgstr "" @@ -2471,6 +2716,27 @@ msgid "Don't Save" msgstr "" #: editor/editor_node.cpp +msgid "Android build template is missing, please install relevant templates." +msgstr "" + +#: editor/editor_node.cpp +msgid "Manage Templates" +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"This will install the Android project for custom builds.\n" +"Note that, in order to use it, it needs to be enabled per export preset." +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"Android build template is already installed and it won't be overwritten.\n" +"Remove the \"build\" directory manually before attempting this operation " +"again." +msgstr "" + +#: editor/editor_node.cpp msgid "Import Templates From ZIP File" msgstr "" @@ -2593,10 +2859,6 @@ msgid "Physics Frame %" msgstr "" #: editor/editor_profiler.cpp -msgid "Time:" -msgstr "" - -#: editor/editor_profiler.cpp msgid "Inclusive" msgstr "" @@ -2731,10 +2993,6 @@ msgid "Remove Item" msgstr "" #: editor/editor_run_native.cpp -msgid "Select device from the list" -msgstr "" - -#: editor/editor_run_native.cpp msgid "" "No runnable export preset found for this platform.\n" "Please add a runnable preset in the export menu." @@ -2768,6 +3026,10 @@ msgstr "" msgid "Select Node(s) to Import" msgstr "" +#: editor/editor_sub_scene.cpp editor/project_manager.cpp +msgid "Browse" +msgstr "" + #: editor/editor_sub_scene.cpp msgid "Scene Path:" msgstr "" @@ -2930,6 +3192,10 @@ msgid "SSL Handshake Error" msgstr "" #: editor/export_template_manager.cpp +msgid "Uncompressing Android Build Sources" +msgstr "" + +#: editor/export_template_manager.cpp msgid "Current Version:" msgstr "" @@ -2946,7 +3212,7 @@ msgid "Remove Template" msgstr "" #: editor/export_template_manager.cpp -msgid "Select template file" +msgid "Select Template File" msgstr "" #: editor/export_template_manager.cpp @@ -3002,7 +3268,7 @@ msgid "No name provided." msgstr "" #: editor/filesystem_dock.cpp -msgid "Provided name contains invalid characters" +msgid "Provided name contains invalid characters." msgstr "" #: editor/filesystem_dock.cpp @@ -3030,7 +3296,11 @@ msgid "Duplicating folder:" msgstr "" #: editor/filesystem_dock.cpp -msgid "Open Scene(s)" +msgid "New Inherited Scene" +msgstr "" + +#: editor/filesystem_dock.cpp +msgid "Open Scenes" msgstr "" #: editor/filesystem_dock.cpp @@ -3038,11 +3308,11 @@ msgid "Instance" msgstr "" #: editor/filesystem_dock.cpp -msgid "Add to favorites" +msgid "Add to Favorites" msgstr "" #: editor/filesystem_dock.cpp -msgid "Remove from favorites" +msgid "Remove from Favorites" msgstr "" #: editor/filesystem_dock.cpp @@ -3073,11 +3343,13 @@ msgstr "" msgid "New Resource..." msgstr "" -#: editor/filesystem_dock.cpp editor/script_editor_debugger.cpp +#: editor/filesystem_dock.cpp editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_editor_debugger.cpp msgid "Expand All" msgstr "" -#: editor/filesystem_dock.cpp editor/script_editor_debugger.cpp +#: editor/filesystem_dock.cpp editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_editor_debugger.cpp msgid "Collapse All" msgstr "" @@ -3089,11 +3361,11 @@ msgid "Rename" msgstr "" #: editor/filesystem_dock.cpp -msgid "Previous Directory" +msgid "Previous Folder/File" msgstr "" #: editor/filesystem_dock.cpp -msgid "Next Directory" +msgid "Next Folder/File" msgstr "" #: editor/filesystem_dock.cpp @@ -3101,7 +3373,7 @@ msgid "Re-Scan Filesystem" msgstr "" #: editor/filesystem_dock.cpp -msgid "Toggle split mode" +msgid "Toggle Split Mode" msgstr "" #: editor/filesystem_dock.cpp @@ -3130,7 +3402,7 @@ msgstr "" msgid "Create Script" msgstr "" -#: editor/find_in_files.cpp +#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp msgid "Find in Files" msgstr "" @@ -3146,6 +3418,12 @@ msgstr "" msgid "Filters:" msgstr "" +#: editor/find_in_files.cpp +msgid "" +"Include the files with the following extensions. Add or remove them in " +"ProjectSettings." +msgstr "" + #: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp msgid "Find..." @@ -3574,7 +3852,7 @@ msgid "Open Animation Node" msgstr "" #: editor/plugins/animation_blend_space_2d_editor.cpp -msgid "Triangle already exists" +msgid "Triangle already exists." msgstr "" #: editor/plugins/animation_blend_space_2d_editor.cpp @@ -3649,7 +3927,6 @@ msgid "Node Moved" msgstr "" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Unable to connect, port may be in use or connection may be invalid." msgstr "" @@ -3716,7 +3993,7 @@ msgid "Edit Filtered Tracks:" msgstr "" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -msgid "Enable filtering" +msgid "Enable Filtering" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp @@ -3831,10 +4108,6 @@ msgid "Animation" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "New" -msgstr "" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Edit Transitions..." msgstr "" @@ -3851,11 +4124,11 @@ msgid "Autoplay on Load" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Onion Skinning" +msgid "Enable Onion Skinning" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Enable Onion Skinning" +msgid "Onion Skinning Options" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp @@ -4395,13 +4668,19 @@ msgid "Move CanvasItem" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"Children of containers have their anchors and margins values overridden by " +"their parent." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Presets for the anchors and margins values of a Control node." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "" -"Children of containers have their anchors and margins values overridden by " -"their parent." +"When active, moving Control nodes changes their anchors instead of their " +"margins." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4417,10 +4696,46 @@ msgid "Change Anchors" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Lock Selected" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Unlock Selected" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Group Selected" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Ungroup Selected" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Paste Pose" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Create Custom Bone(s) from Node(s)" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Clear Bones" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Make IK Chain" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Clear IK Chain" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "" "Warning: Children of a container get their position and size determined only " "by their parent." @@ -4492,7 +4807,7 @@ msgid "Snapping Options" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to grid" +msgid "Snap to Grid" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4513,31 +4828,31 @@ msgid "Use Pixel Snap" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Smart snapping" +msgid "Smart Snapping" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to parent" +msgid "Snap to Parent" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node anchor" +msgid "Snap to Node Anchor" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node sides" +msgid "Snap to Node Sides" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node center" +msgid "Snap to Node Center" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to other nodes" +msgid "Snap to Other Nodes" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to guides" +msgid "Snap to Guides" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4551,10 +4866,12 @@ msgid "Unlock the selected object (can be moved)." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Makes sure the object's children are not selectable." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Restores the object's children's ability to be selected." msgstr "" @@ -4567,14 +4884,6 @@ msgid "Show Bones" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Make IK Chain" -msgstr "" - -#: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Clear IK Chain" -msgstr "" - -#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Make Custom Bone(s) from Node(s)" msgstr "" @@ -4625,7 +4934,7 @@ msgid "Frame Selection" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Layout" +msgid "Preview Canvas Scale" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4677,6 +4986,10 @@ msgid "Divide grid step by 2" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Pan View" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Add %s" msgstr "" @@ -4699,7 +5012,7 @@ msgid "Error instancing scene from %s" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Change default type" +msgid "Change Default Type" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4785,19 +5098,19 @@ msgid "Create Emission Points From Node" msgstr "" #: editor/plugins/curve_editor_plugin.cpp -msgid "Flat0" +msgid "Flat 0" msgstr "" #: editor/plugins/curve_editor_plugin.cpp -msgid "Flat1" +msgid "Flat 1" msgstr "" -#: editor/plugins/curve_editor_plugin.cpp -msgid "Ease in" +#: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp +msgid "Ease In" msgstr "" -#: editor/plugins/curve_editor_plugin.cpp -msgid "Ease out" +#: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp +msgid "Ease Out" msgstr "" #: editor/plugins/curve_editor_plugin.cpp @@ -4817,23 +5130,23 @@ msgid "Load Curve Preset" msgstr "" #: editor/plugins/curve_editor_plugin.cpp -msgid "Add point" +msgid "Add Point" msgstr "" #: editor/plugins/curve_editor_plugin.cpp -msgid "Remove point" +msgid "Remove Point" msgstr "" #: editor/plugins/curve_editor_plugin.cpp -msgid "Left linear" +msgid "Left Linear" msgstr "" #: editor/plugins/curve_editor_plugin.cpp -msgid "Right linear" +msgid "Right Linear" msgstr "" #: editor/plugins/curve_editor_plugin.cpp -msgid "Load preset" +msgid "Load Preset" msgstr "" #: editor/plugins/curve_editor_plugin.cpp @@ -4889,11 +5202,15 @@ msgid "This doesn't work on scene root!" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Trimesh Shape" +msgid "Create Trimesh Static Shape" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Shape" +msgid "Failed creating shapes!" +msgstr "" + +#: editor/plugins/mesh_instance_editor_plugin.cpp +msgid "Create Convex Shape(s)" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp @@ -4946,15 +5263,11 @@ msgid "Create Trimesh Static Body" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Static Body" -msgstr "" - -#: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Trimesh Collision Sibling" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Collision Sibling" +msgid "Create Convex Collision Sibling(s)" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp @@ -5108,20 +5421,20 @@ msgid "Create Navigation Polygon" msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp -msgid "Generating Visibility Rect" +#: editor/plugins/particles_editor_plugin.cpp +msgid "Convert to CPUParticles" msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp -msgid "Generate Visibility Rect" +msgid "Generating Visibility Rect" msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp -msgid "Can only set point into a ParticlesMaterial process material" +msgid "Generate Visibility Rect" msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp -#: editor/plugins/particles_editor_plugin.cpp -msgid "Convert to CPUParticles" +msgid "Can only set point into a ParticlesMaterial process material" msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp @@ -5263,7 +5576,7 @@ msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp editor/plugins/theme_editor_plugin.cpp -#: editor/project_export.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_export.cpp msgid "Options" msgstr "" @@ -5314,7 +5627,7 @@ msgid "Split Segment (in curve)" msgstr "" #: editor/plugins/physical_bone_plugin.cpp -msgid "Move joint" +msgid "Move Joint" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5547,7 +5860,6 @@ msgid "Open in Editor" msgstr "" #: editor/plugins/resource_preloader_editor_plugin.cpp -#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Load Resource" msgstr "" @@ -5636,6 +5948,11 @@ msgid "%s Class Reference" msgstr "" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp +msgid "Find Next" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp msgid "Toggle alphabetical sorting of the method list." msgstr "" @@ -5716,10 +6033,6 @@ msgstr "" msgid "Close All" msgstr "" -#: editor/plugins/script_editor_plugin.cpp -msgid "Close Other Tabs" -msgstr "" - #: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp msgid "Run" msgstr "" @@ -5728,11 +6041,6 @@ msgstr "" msgid "Toggle Scripts Panel" msgstr "" -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/script_text_editor.cpp -msgid "Find Next" -msgstr "" - #: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp msgid "Step Over" msgstr "" @@ -5759,7 +6067,7 @@ msgid "Debug with External Editor" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Open Godot online documentation" +msgid "Open Godot online documentation." msgstr "" #: editor/plugins/script_editor_plugin.cpp @@ -5767,7 +6075,7 @@ msgid "Request Docs" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Help improve the Godot documentation by giving feedback" +msgid "Help improve the Godot documentation by giving feedback." msgstr "" #: editor/plugins/script_editor_plugin.cpp @@ -5793,10 +6101,12 @@ msgid "" msgstr "" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp msgid "Reload" msgstr "" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp msgid "Resave" msgstr "" @@ -5809,6 +6119,27 @@ msgid "Search Results" msgstr "" #: editor/plugins/script_text_editor.cpp +msgid "Connections to method:" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Source" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Signal" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Target" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "" +"Missing connected method '%s' for signal '%s' from node '%s' to node '%s'." +msgstr "" + +#: editor/plugins/script_text_editor.cpp msgid "Line" msgstr "" @@ -5820,10 +6151,6 @@ msgstr "" msgid "Go to Function" msgstr "" -#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp -msgid "Standard" -msgstr "" - #: editor/plugins/script_text_editor.cpp msgid "Only resources from filesystem can be dropped." msgstr "" @@ -5856,6 +6183,11 @@ msgstr "" msgid "Syntax Highlighter" msgstr "" +#: editor/plugins/script_text_editor.cpp +#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp +msgid "Bookmarks" +msgstr "" + #: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" @@ -5883,6 +6215,22 @@ msgid "Toggle Comment" msgstr "" #: editor/plugins/script_text_editor.cpp +msgid "Toggle Bookmark" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Go to Next Bookmark" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Go to Previous Bookmark" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Remove All Bookmarks" +msgstr "" + +#: editor/plugins/script_text_editor.cpp msgid "Fold/Unfold Line" msgstr "" @@ -5956,6 +6304,12 @@ msgid "Contextual Help" msgstr "" #: editor/plugins/shader_editor_plugin.cpp +msgid "" +"This shader has been modified on on disk.\n" +"What action should be taken?" +msgstr "" + +#: editor/plugins/shader_editor_plugin.cpp msgid "Shader" msgstr "" @@ -6293,7 +6647,7 @@ msgid "Right View" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Switch Perspective/Orthogonal view" +msgid "Switch Perspective/Orthogonal View" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp @@ -6333,11 +6687,12 @@ msgid "Toggle Freelook" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Transform" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Snap object to floor" +msgid "Snap Object to Floor" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp @@ -6478,35 +6833,35 @@ msgid "Invalid geometry, can't replace by mesh." msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Invalid geometry, can't create polygon." +msgid "Convert to Mesh2D" msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Invalid geometry, can't create collision polygon." +msgid "Invalid geometry, can't create polygon." msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Invalid geometry, can't create light occluder." +msgid "Convert to Polygon2D" msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Sprite" +msgid "Invalid geometry, can't create collision polygon." msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Convert to Mesh2D" +msgid "Create CollisionPolygon2D Sibling" msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Convert to Polygon2D" +msgid "Invalid geometry, can't create light occluder." msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Create CollisionPolygon2D Sibling" +msgid "Create LightOccluder2D Sibling" msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Create LightOccluder2D Sibling" +msgid "Sprite" msgstr "" #: editor/plugins/sprite_editor_plugin.cpp @@ -6526,7 +6881,11 @@ msgid "Settings:" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "ERROR: Couldn't load frame resource!" +msgid "No Frames Selected" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Add %d Frame(s)" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp @@ -6534,6 +6893,10 @@ msgid "Add Frame" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "ERROR: Couldn't load frame resource!" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Resource clipboard is empty or not a texture!" msgstr "" @@ -6574,6 +6937,14 @@ msgid "Animation Frames:" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Add a Texture from File" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Add Frames from a Sprite Sheet" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Insert Empty (Before)" msgstr "" @@ -6590,6 +6961,26 @@ msgid "Move (After)" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Select Frames" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Horizontal:" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Vertical:" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Select/Clear All Frames" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Create Frames from Sprite Sheet" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "SpriteFrames" msgstr "" @@ -6654,12 +7045,12 @@ msgstr "" msgid "Remove All Items" msgstr "" -#: editor/plugins/theme_editor_plugin.cpp +#: editor/plugins/theme_editor_plugin.cpp editor/project_manager.cpp msgid "Remove All" msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "Edit theme..." +msgid "Edit Theme" msgstr "" #: editor/plugins/theme_editor_plugin.cpp @@ -6687,11 +7078,11 @@ msgid "Create From Current Editor Theme" msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "CheckBox Radio1" +msgid "Toggle Button" msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "CheckBox Radio2" +msgid "Disabled Button" msgstr "" #: editor/plugins/theme_editor_plugin.cpp @@ -6699,6 +7090,10 @@ msgid "Item" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +msgid "Disabled Item" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Check Item" msgstr "" @@ -6715,6 +7110,22 @@ msgid "Checked Radio Item" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +msgid "Named Sep." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Submenu" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Item 1" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Item 2" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Has" msgstr "" @@ -6723,7 +7134,7 @@ msgid "Many" msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "Has,Many,Options" +msgid "Disabled LineEdit" msgstr "" #: editor/plugins/theme_editor_plugin.cpp @@ -6739,6 +7150,18 @@ msgid "Tab 3" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +msgid "Editable Item" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Subtree" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Has,Many,Options" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Data Type:" msgstr "" @@ -6771,6 +7194,7 @@ msgid "Fix Invalid Tiles" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp +#: modules/gridmap/grid_map_editor_plugin.cpp msgid "Cut Selection" msgstr "" @@ -6811,35 +7235,45 @@ msgid "Mirror Y" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp +msgid "Disable Autotile" +msgstr "" + +#: editor/plugins/tile_map_editor_plugin.cpp +msgid "Enable Priority" +msgstr "" + +#: editor/plugins/tile_map_editor_plugin.cpp msgid "Paint Tile" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Pick Tile" +msgid "" +"Shift+RMB: Line Draw\n" +"Shift+Ctrl+RMB: Rectangle Paint" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Copy Selection" +msgid "Pick Tile" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Rotate left" +msgid "Rotate Left" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Rotate right" +msgid "Rotate Right" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Flip horizontally" +msgid "Flip Horizontally" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Flip vertically" +msgid "Flip Vertically" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Clear transform" +msgid "Clear Transform" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp @@ -6875,6 +7309,38 @@ msgid "Select the previous shape, subtile, or Tile." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp +msgid "Region Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Collision Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Occlusion Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Navigation Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Bitmask Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Priority Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Icon Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Z Index Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp msgid "Copy bitmask." msgstr "" @@ -6954,6 +7420,7 @@ msgstr "" msgid "" "LMB: Set bit on.\n" "RMB: Set bit off.\n" +"Shift+LMB: Set wildcard bit.\n" "Click on another Tile to edit it." msgstr "" @@ -7061,6 +7528,66 @@ msgid "TileSet" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add input +" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add output +" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add input port" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add output port" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Change input port type" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Change output port type" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Change input port name" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Change output port name" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Remove input port" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Remove output port" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Set expression" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Resize VisualShader node" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Set Uniform Name" msgstr "" @@ -7097,6 +7624,837 @@ msgid "Light" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Create Shader Node" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Color function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Color operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Grayscale function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts HSV vector to RGB equivalent." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts RGB vector to HSV equivalent." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Sepia function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Burn operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Darken operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Difference operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Dodge operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "HardLight operator" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Lighten operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Overlay operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Screen operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "SoftLight operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Color constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Color uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns an associated vector if the provided scalars are equal, greater or " +"less." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns an associated vector if the provided boolean value is true or false." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'camera' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'inv_camera' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'inv_projection' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'normal' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'projection' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'time' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'viewport_size' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'world' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'texture_pixel_size' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Input parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'binormal' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'fragcoord' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_coord' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_uv' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'side' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'tangent' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv2' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'vertex' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'view' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'albedo' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'attenuation' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'diffuse' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_color' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'roughness' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'specular' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'transmission' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'modelview' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_size' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'tangent' input parameter for vertex and fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_pass' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_coord' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_pixel_size' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_uv' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_alpha' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_height' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_uv' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_vec' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'normal' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'shadow_color' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'extra' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'projection' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'vertex' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'world' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'active' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'custom' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'custom_alpha' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'delta' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'emission_transform' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'index' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'lifetime' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'restart' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'time' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'transform' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'velocity' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Scalar function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Scalar operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "E constant (2.718282). Represents the base of the natural logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Epsilon constant (0.00001). Smallest possible scalar number." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Phi constant (1.618034). Golden ratio." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi/4 constant (0.785398) or 45 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi/2 constant (1.570796) or 90 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi constant (3.141593) or 180 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Tau constant (6.283185) or 360 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Sqrt2 constant (1.414214). Square root of 2." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the absolute value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-tangent of the parameters." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Finds the nearest integer that is greater than or equal to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Constrains a value to lie between two further values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts a quantity in radians to degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-e Exponential." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-2 Exponential." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Finds the nearest integer less than or equal to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Computes the fractional part of the argument." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the inverse of the square root of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Natural logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-2 logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the greater of two values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the lesser of two values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Linear interpolation between two scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the opposite value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 - scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns the value of the first parameter raised to the power of the second." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts a quantity in degrees to radians." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 / scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the nearest integer to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the nearest even integer to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Clamps the value between 0.0 and 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Extracts the sign of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the square root of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( scalar(edge0), scalar(edge1), scalar(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if x is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( scalar(edge), scalar(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the truncated value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Adds scalar to scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Divides scalar by scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies scalar by scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the remainder of the two scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Subtracts scalar from scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Scalar constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Scalar uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Perform the cubic texture lookup." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Perform the texture lookup." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Cubic texture uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "2D texture uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Transform function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) Calculate the outer product of a pair of vectors.\n" +"\n" +"OuterProduct treats the first parameter 'c' as a column vector (matrix with " +"one column) and the second parameter 'r' as a row vector (matrix with one " +"row) and does a linear algebraic matrix multiply 'c * r', yielding a matrix " +"whose number of rows is the number of components in 'c' and whose number of " +"columns is the number of components in 'r'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Composes transform from four vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Decomposes transform to four vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the determinant of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the inverse of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the transpose of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies transform by transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies vector by transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Transform constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Transform uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Composes vector from three scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Decomposes vector to three scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the cross product of two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the distance between two points." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the dot product of two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns a vector that points in the same direction as a reference vector. " +"The function has three vector parameters : N, the vector to orient, I, the " +"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 "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the length of a vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Linear interpolation between two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the normalize product of vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 - vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 / vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns a vector that points in the direction of reflection ( a : incident " +"vector, b : normal vector )." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns a vector that points in the direction of refraction." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( vector(edge0), vector(edge1), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if 'x' is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( scalar(edge0), scalar(edge1), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if 'x' is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( vector(edge), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( scalar(edge), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Adds vector to vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Divides vector by vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies vector by vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the remainder of the two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Subtracts vector from vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Custom Godot Shader Language expression, with custom amount of input and " +"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 "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns falloff based on the dot product of surface normal and view " +"direction of camera (pass associated inputs to it)." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) (Fragment/Light mode only) Scalar derivative function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) (Fragment/Light mode only) Vector derivative function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Derivative in 'x' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Derivative in 'x' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Derivative in 'y' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Derivative in 'y' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Sum of absolute derivative " +"in 'x' and 'y'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Sum of absolute derivative " +"in 'x' and 'y'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "VisualShader" msgstr "" @@ -7284,6 +8642,10 @@ msgid "Directory already contains a Godot project." msgstr "" #: editor/project_manager.cpp +msgid "New Game Project" +msgstr "" + +#: editor/project_manager.cpp msgid "Imported Project" msgstr "" @@ -7330,10 +8692,6 @@ msgid "Rename Project" msgstr "" #: editor/project_manager.cpp -msgid "New Game Project" -msgstr "" - -#: editor/project_manager.cpp msgid "Import Existing Project" msgstr "" @@ -7362,10 +8720,6 @@ msgid "Project Name:" msgstr "" #: editor/project_manager.cpp -msgid "Create folder" -msgstr "" - -#: editor/project_manager.cpp msgid "Project Path:" msgstr "" @@ -7374,10 +8728,6 @@ msgid "Project Installation Path:" msgstr "" #: editor/project_manager.cpp -msgid "Browse" -msgstr "" - -#: editor/project_manager.cpp msgid "Renderer:" msgstr "" @@ -7430,8 +8780,8 @@ msgid "" "\n" "If you proceed with opening it, it will be converted to Godot's current " "configuration file format.\n" -"Warning: You will not be able to open the project with previous versions of " -"the engine anymore." +"Warning: You won't be able to open the project with previous versions of the " +"engine anymore." msgstr "" #: editor/project_manager.cpp @@ -7442,8 +8792,8 @@ msgid "" "%s\n" "\n" "Do you want to convert it?\n" -"Warning: You will not be able to open the project with previous versions of " -"the engine anymore." +"Warning: You won't be able to open the project with previous versions of the " +"engine anymore." msgstr "" #: editor/project_manager.cpp @@ -7455,7 +8805,7 @@ msgstr "" #: editor/project_manager.cpp msgid "" "Can't run project: no main scene defined.\n" -"Please edit the project and set the main scene in \"Project Settings\" under " +"Please edit the project and set the main scene in the Project Settings under " "the \"Application\" category." msgstr "" @@ -7466,23 +8816,37 @@ msgid "" msgstr "" #: editor/project_manager.cpp -msgid "Are you sure to run more than one project?" +msgid "Are you sure to run %d projects at once?" +msgstr "" + +#: editor/project_manager.cpp +msgid "" +"Remove %d projects from the list?\n" +"The project folders' contents won't be modified." +msgstr "" + +#: editor/project_manager.cpp +msgid "" +"Remove this project from the list?\n" +"The project folder's contents won't be modified." msgstr "" #: editor/project_manager.cpp -msgid "Remove project from the list? (Folder contents will not be modified)" +msgid "" +"Remove all missing projects from the list? (Folders contents will not be " +"modified)" msgstr "" #: editor/project_manager.cpp msgid "" "Language changed.\n" -"The UI will update next time the editor or project manager starts." +"The interface will update after restarting the editor or project manager." msgstr "" #: editor/project_manager.cpp msgid "" -"You are about the scan %s folders for existing Godot projects. Do you " -"confirm?" +"Are you sure to scan %s folders for existing Godot projects?\n" +"This could take a while." msgstr "" #: editor/project_manager.cpp @@ -7506,6 +8870,10 @@ msgid "New Project" msgstr "" #: editor/project_manager.cpp +msgid "Remove Missing" +msgstr "" + +#: editor/project_manager.cpp msgid "Templates" msgstr "" @@ -7523,8 +8891,8 @@ msgstr "" #: editor/project_manager.cpp msgid "" -"You don't currently have any projects.\n" -"Would you like to explore the official example projects in the Asset Library?" +"You currently don't have any projects.\n" +"Would you like to explore official example projects in the Asset Library?" msgstr "" #: editor/project_settings_editor.cpp @@ -7550,7 +8918,7 @@ msgid "" msgstr "" #: editor/project_settings_editor.cpp -msgid "Action '%s' already exists!" +msgid "An action with the name '%s' already exists." msgstr "" #: editor/project_settings_editor.cpp @@ -7704,10 +9072,6 @@ msgid "" msgstr "" #: editor/project_settings_editor.cpp -msgid "Already existing" -msgstr "" - -#: editor/project_settings_editor.cpp msgid "Add Input Action" msgstr "" @@ -7772,7 +9136,7 @@ msgid "Override For..." msgstr "" #: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp -msgid "Editor must be restarted for changes to take effect" +msgid "The editor must be restarted for changes to take effect." msgstr "" #: editor/project_settings_editor.cpp @@ -7832,11 +9196,11 @@ msgid "Locales Filter" msgstr "" #: editor/project_settings_editor.cpp -msgid "Show all locales" +msgid "Show All Locales" msgstr "" #: editor/project_settings_editor.cpp -msgid "Show only selected locales" +msgid "Show Selected Locales Only" msgstr "" #: editor/project_settings_editor.cpp @@ -7852,14 +9216,6 @@ msgid "AutoLoad" msgstr "" #: editor/property_editor.cpp -msgid "Ease In" -msgstr "" - -#: editor/property_editor.cpp -msgid "Ease Out" -msgstr "" - -#: editor/property_editor.cpp msgid "Zero" msgstr "" @@ -7932,7 +9288,7 @@ msgid "Suffix" msgstr "" #: editor/rename_dialog.cpp -msgid "Advanced options" +msgid "Advanced Options" msgstr "" #: editor/rename_dialog.cpp @@ -8184,7 +9540,7 @@ msgid "User Interface" msgstr "" #: editor/scene_tree_dock.cpp -msgid "Custom Node" +msgid "Other Node" msgstr "" #: editor/scene_tree_dock.cpp @@ -8226,7 +9582,7 @@ msgid "Clear Inheritance" msgstr "" #: editor/scene_tree_dock.cpp -msgid "Open documentation" +msgid "Open Documentation" msgstr "" #: editor/scene_tree_dock.cpp @@ -8253,7 +9609,7 @@ msgstr "" msgid "Save Branch as Scene" msgstr "" -#: editor/scene_tree_dock.cpp +#: editor/scene_tree_dock.cpp editor/script_editor_debugger.cpp msgid "Copy Node Path" msgstr "" @@ -8296,6 +9652,18 @@ msgid "Toggle Visible" msgstr "" #: editor/scene_tree_editor.cpp +msgid "Unlock Node" +msgstr "" + +#: editor/scene_tree_editor.cpp +msgid "Button Group" +msgstr "" + +#: editor/scene_tree_editor.cpp +msgid "(Connecting From)" +msgstr "" + +#: editor/scene_tree_editor.cpp msgid "Node configuration warning:" msgstr "" @@ -8317,8 +9685,8 @@ msgid "" "Click to show groups dock." msgstr "" -#: editor/scene_tree_editor.cpp editor/script_create_dialog.cpp -msgid "Open Script" +#: editor/scene_tree_editor.cpp +msgid "Open Script:" msgstr "" #: editor/scene_tree_editor.cpp @@ -8364,71 +9732,71 @@ msgid "Select a Node" msgstr "" #: editor/script_create_dialog.cpp -msgid "Error loading template '%s'" +msgid "Path is empty." msgstr "" #: editor/script_create_dialog.cpp -msgid "Error - Could not create script in filesystem." +msgid "Filename is empty." msgstr "" #: editor/script_create_dialog.cpp -msgid "Error loading script from %s" +msgid "Path is not local." msgstr "" #: editor/script_create_dialog.cpp -msgid "N/A" +msgid "Invalid base path." msgstr "" #: editor/script_create_dialog.cpp -msgid "Open Script/Choose Location" +msgid "A directory with the same name exists." msgstr "" #: editor/script_create_dialog.cpp -msgid "Path is empty" +msgid "Invalid extension." msgstr "" #: editor/script_create_dialog.cpp -msgid "Filename is empty" +msgid "Wrong extension chosen." msgstr "" #: editor/script_create_dialog.cpp -msgid "Path is not local" +msgid "Error loading template '%s'" msgstr "" #: editor/script_create_dialog.cpp -msgid "Invalid base path" +msgid "Error - Could not create script in filesystem." msgstr "" #: editor/script_create_dialog.cpp -msgid "Directory of the same name exists" +msgid "Error loading script from %s" msgstr "" #: editor/script_create_dialog.cpp -msgid "File exists, will be reused" +msgid "N/A" msgstr "" #: editor/script_create_dialog.cpp -msgid "Invalid extension" +msgid "Open Script / Choose Location" msgstr "" #: editor/script_create_dialog.cpp -msgid "Wrong extension chosen" +msgid "Open Script" msgstr "" #: editor/script_create_dialog.cpp -msgid "Invalid Path" +msgid "File exists, it will be reused." msgstr "" #: editor/script_create_dialog.cpp -msgid "Invalid class name" +msgid "Invalid class name." msgstr "" #: editor/script_create_dialog.cpp -msgid "Invalid inherited parent name or path" +msgid "Invalid inherited parent name or path." msgstr "" #: editor/script_create_dialog.cpp -msgid "Script valid" +msgid "Script is valid." msgstr "" #: editor/script_create_dialog.cpp @@ -8436,15 +9804,15 @@ msgid "Allowed: a-z, A-Z, 0-9 and _" msgstr "" #: editor/script_create_dialog.cpp -msgid "Built-in script (into scene file)" +msgid "Built-in script (into scene file)." msgstr "" #: editor/script_create_dialog.cpp -msgid "Create new script file" +msgid "Will create a new script file." msgstr "" #: editor/script_create_dialog.cpp -msgid "Load existing script file" +msgid "Will load an existing script file." msgstr "" #: editor/script_create_dialog.cpp @@ -8575,6 +9943,10 @@ msgstr "" msgid "Set From Tree" msgstr "" +#: editor/script_editor_debugger.cpp +msgid "Export measures as CSV" +msgstr "" + #: editor/settings_config_dialog.cpp msgid "Erase Shortcut" msgstr "" @@ -8704,6 +10076,14 @@ msgid "GDNativeLibrary" msgstr "" #: modules/gdnative/gdnative_library_singleton_editor.cpp +msgid "Enabled GDNative Singleton" +msgstr "" + +#: modules/gdnative/gdnative_library_singleton_editor.cpp +msgid "Disabled GDNative Singleton" +msgstr "" + +#: modules/gdnative/gdnative_library_singleton_editor.cpp msgid "Library" msgstr "" @@ -8788,7 +10168,7 @@ msgid "GridMap Fill Selection" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "GridMap Duplicate Selection" +msgid "GridMap Paste Selection" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp @@ -8856,18 +10236,6 @@ msgid "Cursor Clear Rotation" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Create Area" -msgstr "" - -#: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Create Exterior Connector" -msgstr "" - -#: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Erase Area" -msgstr "" - -#: modules/gridmap/grid_map_editor_plugin.cpp msgid "Clear Selection" msgstr "" @@ -9218,15 +10586,7 @@ msgid "Available Nodes:" msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Select or create a function to edit graph" -msgstr "" - -#: modules/visual_script/visual_script_editor.cpp -msgid "Edit Signal Arguments:" -msgstr "" - -#: modules/visual_script/visual_script_editor.cpp -msgid "Edit Variable:" +msgid "Select or create a function to edit its graph." msgstr "" #: modules/visual_script/visual_script_editor.cpp @@ -9356,6 +10716,19 @@ msgid "Debug keystore not configured in the Editor Settings nor in the preset." msgstr "" #: platform/android/export/export.cpp +msgid "Custom build requires a valid Android SDK path in Editor Settings." +msgstr "" + +#: platform/android/export/export.cpp +msgid "Invalid Android SDK path for custom build in Editor Settings." +msgstr "" + +#: platform/android/export/export.cpp +msgid "" +"Android project is not installed for compiling. Install from Editor menu." +msgstr "" + +#: platform/android/export/export.cpp msgid "Invalid public key for APK expansion." msgstr "" @@ -9363,6 +10736,34 @@ msgstr "" msgid "Invalid package name:" msgstr "" +#: platform/android/export/export.cpp +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 "" +"Android build version mismatch:\n" +" Template installed: %s\n" +" Godot Version: %s\n" +"Please reinstall Android build template from 'Project' menu." +msgstr "" + +#: platform/android/export/export.cpp +msgid "Building Android Project (gradle)" +msgstr "" + +#: 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 "" + +#: platform/android/export/export.cpp +msgid "No build apk generated at: " +msgstr "" + #: platform/iphone/export/export.cpp msgid "Identifier is missing." msgstr "" @@ -9615,27 +11016,27 @@ msgid "ARVRCamera must have an ARVROrigin node as its parent" msgstr "" #: scene/3d/arvr_nodes.cpp -msgid "ARVRController must have an ARVROrigin node as its parent" +msgid "ARVRController must have an ARVROrigin node as its parent." msgstr "" #: scene/3d/arvr_nodes.cpp msgid "" -"The controller id must not be 0 or this controller will not be bound to an " -"actual controller" +"The controller ID must not be 0 or this controller won't be bound to an " +"actual controller." msgstr "" #: scene/3d/arvr_nodes.cpp -msgid "ARVRAnchor must have an ARVROrigin node as its parent" +msgid "ARVRAnchor must have an ARVROrigin node as its parent." msgstr "" #: scene/3d/arvr_nodes.cpp msgid "" -"The anchor id must not be 0 or this anchor will not be bound to an actual " -"anchor" +"The anchor ID must not be 0 or this anchor won't be bound to an actual " +"anchor." msgstr "" #: scene/3d/arvr_nodes.cpp -msgid "ARVROrigin requires an ARVRCamera child node" +msgid "ARVROrigin requires an ARVRCamera child node." msgstr "" #: scene/3d/baked_lightmap.cpp @@ -9705,8 +11106,8 @@ msgstr "" #: scene/3d/cpu_particles.cpp msgid "" -"CPUParticles animation requires the usage of a SpatialMaterial with " -"\"Billboard Particles\" enabled." +"CPUParticles animation requires the usage of a SpatialMaterial whose " +"Billboard Mode is set to \"Particle Billboard\"." msgstr "" #: scene/3d/gi_probe.cpp @@ -9743,8 +11144,8 @@ msgstr "" #: scene/3d/particles.cpp msgid "" -"Particles animation requires the usage of a SpatialMaterial with \"Billboard " -"Particles\" enabled." +"Particles animation requires the usage of a SpatialMaterial whose Billboard " +"Mode is set to \"Particle Billboard\"." msgstr "" #: scene/3d/path.cpp @@ -9769,7 +11170,7 @@ msgid "Path property must point to a valid Spatial node to work." msgstr "" #: scene/3d/soft_body.cpp -msgid "This body will be ignored until you set a mesh" +msgid "This body will be ignored until you set a mesh." msgstr "" #: scene/3d/soft_body.cpp @@ -9866,7 +11267,7 @@ msgstr "" msgid "" "Container by itself serves no purpose unless a script configures it's " "children placement behavior.\n" -"If you dont't intend to add a script, then please use a plain 'Control' node " +"If you don't intend to add a script, then please use a plain 'Control' node " "instead." msgstr "" @@ -9878,10 +11279,6 @@ msgstr "" msgid "Please Confirm..." msgstr "" -#: scene/gui/file_dialog.cpp -msgid "Go to parent folder." -msgstr "" - #: scene/gui/popup.cpp msgid "" "Popups will hide by default unless you call popup() or any of the popup*() " @@ -9953,3 +11350,7 @@ msgstr "" #: servers/visual/shader_language.cpp msgid "Varyings can only be assigned in vertex function." msgstr "" + +#: servers/visual/shader_language.cpp +msgid "Constants cannot be modified." +msgstr "" diff --git a/editor/translations/ms.po b/editor/translations/ms.po index f253cca02b..887415936d 100644 --- a/editor/translations/ms.po +++ b/editor/translations/ms.po @@ -73,6 +73,14 @@ msgstr "" msgid "Mirror" msgstr "" +#: editor/animation_bezier_editor.cpp editor/editor_profiler.cpp +msgid "Time:" +msgstr "" + +#: editor/animation_bezier_editor.cpp +msgid "Value:" +msgstr "" + #: editor/animation_bezier_editor.cpp msgid "Insert Key Here" msgstr "" @@ -157,15 +165,19 @@ msgid "Animation Playback Track" msgstr "" #: editor/animation_track_editor.cpp -#, fuzzy -msgid "Add Track" -msgstr "Anim Tambah Trek" +msgid "Animation length (frames)" +msgstr "" #: editor/animation_track_editor.cpp -msgid "Animation Length Time (seconds)" +msgid "Animation length (seconds)" msgstr "" #: editor/animation_track_editor.cpp +#, fuzzy +msgid "Add Track" +msgstr "Anim Tambah Trek" + +#: editor/animation_track_editor.cpp msgid "Animation Looping" msgstr "" @@ -291,11 +303,13 @@ msgid "Create %d NEW tracks and insert keys?" msgstr "" #: editor/animation_track_editor.cpp editor/create_dialog.cpp -#: editor/editor_audio_buses.cpp editor/editor_plugin_settings.cpp -#: editor/plugin_config_dialog.cpp +#: editor/editor_audio_buses.cpp editor/editor_feature_profile.cpp +#: editor/editor_plugin_settings.cpp editor/plugin_config_dialog.cpp #: editor/plugins/abstract_polygon_2d_editor.cpp #: editor/plugins/mesh_instance_editor_plugin.cpp -#: editor/plugins/particles_editor_plugin.cpp editor/script_create_dialog.cpp +#: editor/plugins/particles_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_create_dialog.cpp msgid "Create" msgstr "" @@ -409,6 +423,23 @@ msgid "" msgstr "" #: editor/animation_track_editor.cpp +msgid "" +"This animation belongs to an imported scene, so changes to imported tracks " +"will not be saved.\n" +"\n" +"To enable the ability to add custom tracks, navigate to the scene's import " +"settings and set\n" +"\"Animation > Storage\" to \"Files\", enable \"Animation > Keep Custom Tracks" +"\", then re-import.\n" +"Alternatively, use an import preset that imports animations to separate " +"files." +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Warning: Editing imported animation" +msgstr "" + +#: editor/animation_track_editor.cpp msgid "Only show tracks from nodes selected in tree." msgstr "" @@ -542,7 +573,8 @@ msgstr "" msgid "Select tracks to copy:" msgstr "" -#: editor/animation_track_editor.cpp editor/editor_properties.cpp +#: editor/animation_track_editor.cpp editor/editor_log.cpp +#: editor/editor_properties.cpp #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp @@ -611,6 +643,11 @@ msgstr "" msgid "Selection Only" msgstr "" +#: editor/code_editor.cpp editor/plugins/script_text_editor.cpp +#: editor/plugins/text_editor.cpp +msgid "Standard" +msgstr "" + #: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/texture_region_editor_plugin.cpp #: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp @@ -636,17 +673,29 @@ msgid "Line and column numbers." msgstr "" #: editor/connections_dialog.cpp -msgid "Method in target Node must be specified!" +msgid "Method in target node must be specified." msgstr "" #: editor/connections_dialog.cpp msgid "" -"Target method not found! Specify a valid method or attach a script to target " -"Node." +"Target method not found. Specify a valid method or attach a script to the " +"target node." +msgstr "" + +#: editor/connections_dialog.cpp +msgid "Connect to Node:" +msgstr "" + +#: editor/connections_dialog.cpp +msgid "Connect to Script:" +msgstr "" + +#: editor/connections_dialog.cpp +msgid "From Signal:" msgstr "" #: editor/connections_dialog.cpp -msgid "Connect To Node:" +msgid "Scene does not contain any script." msgstr "" #: editor/connections_dialog.cpp editor/editor_autoload_settings.cpp @@ -656,10 +705,12 @@ msgid "Add" msgstr "" #: editor/connections_dialog.cpp editor/dependency_editor.cpp -#: editor/groups_editor.cpp editor/plugins/animation_player_editor_plugin.cpp +#: editor/editor_feature_profile.cpp editor/groups_editor.cpp +#: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp #: editor/plugins/resource_preloader_editor_plugin.cpp -#: editor/plugins/theme_editor_plugin.cpp editor/project_manager.cpp +#: editor/plugins/theme_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_manager.cpp #: editor/project_settings_editor.cpp msgid "Remove" msgstr "" @@ -673,21 +724,30 @@ msgid "Extra Call Arguments:" msgstr "" #: editor/connections_dialog.cpp -msgid "Path to Node:" +msgid "Advanced" msgstr "" #: editor/connections_dialog.cpp -msgid "Make Function" +msgid "Deferred" msgstr "" #: editor/connections_dialog.cpp -msgid "Deferred" +msgid "" +"Defers the signal, storing it in a queue and only firing it at idle time." msgstr "" #: editor/connections_dialog.cpp msgid "Oneshot" msgstr "" +#: editor/connections_dialog.cpp +msgid "Disconnects the signal after its first emission." +msgstr "" + +#: editor/connections_dialog.cpp +msgid "Cannot connect signal" +msgstr "" + #: editor/connections_dialog.cpp editor/dependency_editor.cpp #: editor/export_template_manager.cpp editor/groups_editor.cpp #: editor/plugins/animation_player_editor_plugin.cpp @@ -728,11 +788,11 @@ msgid "Disconnect" msgstr "" #: editor/connections_dialog.cpp -msgid "Connect Signal: " +msgid "Connect a Signal to a Method" msgstr "" #: editor/connections_dialog.cpp -msgid "Edit Connection: " +msgid "Edit Connection:" msgstr "" #: editor/connections_dialog.cpp @@ -764,7 +824,6 @@ msgid "Change %s Type" msgstr "" #: editor/create_dialog.cpp editor/project_settings_editor.cpp -#: modules/visual_script/visual_script_editor.cpp msgid "Change" msgstr "" @@ -795,7 +854,8 @@ msgid "Matches:" msgstr "" #: editor/create_dialog.cpp editor/plugin_config_dialog.cpp -#: editor/plugins/asset_library_editor_plugin.cpp editor/property_selector.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/property_selector.cpp #: modules/visual_script/visual_script_property_selector.cpp msgid "Description:" msgstr "" @@ -811,13 +871,13 @@ msgstr "" #: editor/dependency_editor.cpp msgid "" "Scene '%s' is currently being edited.\n" -"Changes will not take effect unless reloaded." +"Changes will only take effect when reloaded." msgstr "" #: editor/dependency_editor.cpp msgid "" "Resource '%s' is in use.\n" -"Changes will take effect when reloaded." +"Changes will only take effect when reloaded." msgstr "" #: editor/dependency_editor.cpp @@ -908,21 +968,13 @@ msgid "Permanently delete %d item(s)? (No undo!)" msgstr "" #: editor/dependency_editor.cpp -msgid "Owns" -msgstr "" - -#: editor/dependency_editor.cpp -msgid "Resources Without Explicit Ownership:" +msgid "Show Dependencies" msgstr "" #: editor/dependency_editor.cpp editor/editor_node.cpp msgid "Orphan Resource Explorer" msgstr "" -#: editor/dependency_editor.cpp -msgid "Delete selected files?" -msgstr "" - #: editor/dependency_editor.cpp editor/editor_audio_buses.cpp #: editor/editor_file_dialog.cpp editor/editor_node.cpp #: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp @@ -931,6 +983,14 @@ msgstr "" msgid "Delete" msgstr "" +#: editor/dependency_editor.cpp +msgid "Owns" +msgstr "" + +#: editor/dependency_editor.cpp +msgid "Resources Without Explicit Ownership:" +msgstr "" + #: editor/dictionary_property_edit.cpp msgid "Change Dictionary Key" msgstr "" @@ -1040,7 +1100,7 @@ msgstr "" msgid "Success!" msgstr "" -#: editor/editor_asset_installer.cpp +#: editor/editor_asset_installer.cpp editor/editor_node.cpp #: editor/plugins/asset_library_editor_plugin.cpp msgid "Install" msgstr "" @@ -1167,7 +1227,11 @@ msgid "Open Audio Bus Layout" msgstr "" #: editor/editor_audio_buses.cpp -msgid "There is no 'res://default_bus_layout.tres' file." +msgid "There is no '%s' file." +msgstr "" + +#: editor/editor_audio_buses.cpp editor/plugins/canvas_item_editor_plugin.cpp +msgid "Layout" msgstr "" #: editor/editor_audio_buses.cpp @@ -1221,15 +1285,19 @@ msgid "Valid characters:" msgstr "" #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing engine class name." +msgid "Must not collide with an existing engine class name." +msgstr "" + +#: editor/editor_autoload_settings.cpp +msgid "Must not collide with an existing buit-in type name." msgstr "" #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing buit-in type name." +msgid "Must not collide with an existing global constant name." msgstr "" #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing global constant name." +msgid "Keyword cannot be used as an autoload name." msgstr "" #: editor/editor_autoload_settings.cpp @@ -1260,11 +1328,11 @@ msgstr "" msgid "Rearrange Autoloads" msgstr "" -#: editor/editor_autoload_settings.cpp -msgid "Invalid Path." +#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp +msgid "Invalid path." msgstr "" -#: editor/editor_autoload_settings.cpp +#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp msgid "File does not exist." msgstr "" @@ -1315,7 +1383,7 @@ msgid "[unsaved]" msgstr "" #: editor/editor_dir_dialog.cpp -msgid "Please select a base directory first" +msgid "Please select a base directory first." msgstr "" #: editor/editor_dir_dialog.cpp @@ -1323,7 +1391,8 @@ msgid "Choose a Directory" msgstr "" #: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp -#: editor/filesystem_dock.cpp scene/gui/file_dialog.cpp +#: editor/filesystem_dock.cpp editor/project_manager.cpp +#: scene/gui/file_dialog.cpp msgid "Create Folder" msgstr "" @@ -1391,6 +1460,152 @@ msgstr "" msgid "Template file not found:" msgstr "" +#: editor/editor_feature_profile.cpp +msgid "3D Editor" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Script Editor" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Asset Library" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Scene Tree Editing" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Import Dock" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Node Dock" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Filesystem Dock" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Erase profile '%s'? (no undo)" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Profile must be a valid filename and must not contain '.'" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Profile with this name already exists." +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "(Editor Disabled, Properties Disabled)" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "(Properties Disabled)" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "(Editor Disabled)" +msgstr "Tidak Aktif" + +#: editor/editor_feature_profile.cpp +msgid "Class Options:" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Enable Contextual Editor" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Enabled Properties:" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Enabled Features:" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Enabled Classes:" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "File '%s' format is invalid, import aborted." +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "" +"Profile '%s' already exists. Remote it first before importing, import " +"aborted." +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Error saving profile to path: '%s'." +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Unset" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Current Profile" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Make Current" +msgstr "" + +#: editor/editor_feature_profile.cpp +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "New" +msgstr "" + +#: editor/editor_feature_profile.cpp editor/editor_node.cpp +#: editor/plugins/asset_library_editor_plugin.cpp editor/project_manager.cpp +msgid "Import" +msgstr "" + +#: editor/editor_feature_profile.cpp editor/editor_node.cpp +#: editor/project_export.cpp +msgid "Export" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Available Profiles" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Enabled Classes" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Class Options" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "New profile name:" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Erase Profile" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Import Profile(s)" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Export Profile" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Manage Editor Feature Profiles" +msgstr "" + #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Select Current Folder" msgstr "" @@ -1411,8 +1626,8 @@ msgstr "" msgid "Open in File Manager" msgstr "" -#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp -#: editor/project_manager.cpp +#: editor/editor_file_dialog.cpp editor/editor_node.cpp +#: editor/filesystem_dock.cpp editor/project_manager.cpp msgid "Show in File Manager" msgstr "" @@ -1471,7 +1686,7 @@ msgstr "" msgid "Go Up" msgstr "" -#: editor/editor_file_dialog.cpp +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Toggle Hidden Files" msgstr "" @@ -1503,14 +1718,18 @@ msgstr "" msgid "Next Folder" msgstr "" -#: editor/editor_file_dialog.cpp -msgid "Go to parent folder" +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp +msgid "Go to parent folder." msgstr "" #: editor/editor_file_dialog.cpp msgid "(Un)favorite current folder." msgstr "" +#: editor/editor_file_dialog.cpp +msgid "Toggle visibility of hidden files." +msgstr "" + #: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp msgid "View items as a grid of thumbnails." msgstr "" @@ -1525,6 +1744,7 @@ msgstr "" #: editor/editor_file_dialog.cpp editor/plugins/sprite_editor_plugin.cpp #: editor/plugins/style_box_editor_plugin.cpp +#: editor/plugins/theme_editor_plugin.cpp msgid "Preview:" msgstr "" @@ -1541,6 +1761,12 @@ msgid "ScanSources" msgstr "" #: editor/editor_file_system.cpp +msgid "" +"There are multiple importers for different types pointing to file %s, import " +"aborted" +msgstr "" + +#: editor/editor_file_system.cpp msgid "(Re)Importing Assets" msgstr "" @@ -1716,6 +1942,11 @@ msgstr "" msgid "Output:" msgstr "" +#: editor/editor_log.cpp editor/plugins/tile_map_editor_plugin.cpp +#, fuzzy +msgid "Copy Selection" +msgstr "Semua Pilihan" + #: editor/editor_log.cpp editor/editor_profiler.cpp #: editor/editor_properties.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp @@ -1863,7 +2094,7 @@ msgstr "" #: editor/editor_node.cpp msgid "" "This resource belongs to a scene that was instanced or inherited.\n" -"Changes to it will not be kept when saving the current scene." +"Changes to it won't be kept when saving the current scene." msgstr "" #: editor/editor_node.cpp @@ -1874,7 +2105,7 @@ msgstr "" #: editor/editor_node.cpp msgid "" -"This scene was imported, so changes to it will not be kept.\n" +"This scene was imported, so changes to it won't be kept.\n" "Instancing it or inheriting will allow making changes to it.\n" "Please read the documentation relevant to importing scenes to better " "understand this workflow." @@ -1882,7 +2113,7 @@ msgstr "" #: editor/editor_node.cpp msgid "" -"This is a remote object so changes to it will not be kept.\n" +"This is a remote object, so changes to it won't be kept.\n" "Please read the documentation relevant to debugging to better understand " "this workflow." msgstr "" @@ -1892,27 +2123,6 @@ msgid "There is no defined scene to run." msgstr "" #: editor/editor_node.cpp -msgid "" -"No main scene has ever been defined, select one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" - -#: editor/editor_node.cpp -msgid "" -"Selected scene '%s' does not exist, select a valid one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" - -#: editor/editor_node.cpp -msgid "" -"Selected scene '%s' is not a scene file, select a valid one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" - -#: editor/editor_node.cpp msgid "Current scene was never saved, please save it prior to running." msgstr "" @@ -1920,7 +2130,7 @@ msgstr "" msgid "Could not start subprocess!" msgstr "" -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/filesystem_dock.cpp msgid "Open Scene" msgstr "" @@ -1929,6 +2139,10 @@ msgid "Open Base Scene" msgstr "" #: editor/editor_node.cpp +msgid "Quick Open..." +msgstr "" + +#: editor/editor_node.cpp msgid "Quick Open Scene..." msgstr "" @@ -2090,6 +2304,27 @@ msgid "Clear Recent Scenes" msgstr "" #: editor/editor_node.cpp +msgid "" +"No main scene has ever been defined, select one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"Selected scene '%s' does not exist, select a valid one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"Selected scene '%s' is not a scene file, select a valid one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" + +#: editor/editor_node.cpp msgid "Save Layout" msgstr "" @@ -2115,6 +2350,18 @@ msgstr "" msgid "Close Tab" msgstr "" +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +msgid "Close Other Tabs" +msgstr "" + +#: editor/editor_node.cpp +msgid "Close Tabs to the Right" +msgstr "" + +#: editor/editor_node.cpp +msgid "Close All Tabs" +msgstr "" + #: editor/editor_node.cpp msgid "Switch Scene Tab" msgstr "" @@ -2237,10 +2484,6 @@ msgstr "" msgid "Project Settings" msgstr "" -#: editor/editor_node.cpp editor/project_export.cpp -msgid "Export" -msgstr "" - #: editor/editor_node.cpp editor/plugins/tile_set_editor_plugin.cpp msgid "Tools" msgstr "" @@ -2250,6 +2493,10 @@ msgid "Open Project Data Folder" msgstr "" #: editor/editor_node.cpp +msgid "Install Android Build Template" +msgstr "" + +#: editor/editor_node.cpp msgid "Quit to Project List" msgstr "" @@ -2354,6 +2601,10 @@ msgstr "" msgid "Open Editor Settings Folder" msgstr "" +#: editor/editor_node.cpp +msgid "Manage Editor Features" +msgstr "" + #: editor/editor_node.cpp editor/project_export.cpp msgid "Manage Export Templates" msgstr "" @@ -2366,6 +2617,7 @@ msgstr "" #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp #: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp #: editor/project_settings_editor.cpp editor/rename_dialog.cpp msgid "Search" msgstr "" @@ -2455,11 +2707,6 @@ msgstr "" msgid "Disable Update Spinner" msgstr "" -#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp -#: editor/project_manager.cpp -msgid "Import" -msgstr "" - #: editor/editor_node.cpp msgid "FileSystem" msgstr "" @@ -2485,6 +2732,27 @@ msgid "Don't Save" msgstr "" #: editor/editor_node.cpp +msgid "Android build template is missing, please install relevant templates." +msgstr "" + +#: editor/editor_node.cpp +msgid "Manage Templates" +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"This will install the Android project for custom builds.\n" +"Note that, in order to use it, it needs to be enabled per export preset." +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"Android build template is already installed and it won't be overwritten.\n" +"Remove the \"build\" directory manually before attempting this operation " +"again." +msgstr "" + +#: editor/editor_node.cpp msgid "Import Templates From ZIP File" msgstr "" @@ -2607,10 +2875,6 @@ msgid "Physics Frame %" msgstr "" #: editor/editor_profiler.cpp -msgid "Time:" -msgstr "" - -#: editor/editor_profiler.cpp msgid "Inclusive" msgstr "" @@ -2745,10 +3009,6 @@ msgid "Remove Item" msgstr "" #: editor/editor_run_native.cpp -msgid "Select device from the list" -msgstr "" - -#: editor/editor_run_native.cpp msgid "" "No runnable export preset found for this platform.\n" "Please add a runnable preset in the export menu." @@ -2782,6 +3042,10 @@ msgstr "" msgid "Select Node(s) to Import" msgstr "" +#: editor/editor_sub_scene.cpp editor/project_manager.cpp +msgid "Browse" +msgstr "" + #: editor/editor_sub_scene.cpp msgid "Scene Path:" msgstr "" @@ -2944,6 +3208,10 @@ msgid "SSL Handshake Error" msgstr "" #: editor/export_template_manager.cpp +msgid "Uncompressing Android Build Sources" +msgstr "" + +#: editor/export_template_manager.cpp msgid "Current Version:" msgstr "" @@ -2960,7 +3228,7 @@ msgid "Remove Template" msgstr "" #: editor/export_template_manager.cpp -msgid "Select template file" +msgid "Select Template File" msgstr "" #: editor/export_template_manager.cpp @@ -3016,7 +3284,7 @@ msgid "No name provided." msgstr "" #: editor/filesystem_dock.cpp -msgid "Provided name contains invalid characters" +msgid "Provided name contains invalid characters." msgstr "" #: editor/filesystem_dock.cpp @@ -3044,7 +3312,11 @@ msgid "Duplicating folder:" msgstr "" #: editor/filesystem_dock.cpp -msgid "Open Scene(s)" +msgid "New Inherited Scene" +msgstr "" + +#: editor/filesystem_dock.cpp +msgid "Open Scenes" msgstr "" #: editor/filesystem_dock.cpp @@ -3052,11 +3324,11 @@ msgid "Instance" msgstr "" #: editor/filesystem_dock.cpp -msgid "Add to favorites" +msgid "Add to Favorites" msgstr "" #: editor/filesystem_dock.cpp -msgid "Remove from favorites" +msgid "Remove from Favorites" msgstr "" #: editor/filesystem_dock.cpp @@ -3087,11 +3359,13 @@ msgstr "" msgid "New Resource..." msgstr "" -#: editor/filesystem_dock.cpp editor/script_editor_debugger.cpp +#: editor/filesystem_dock.cpp editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_editor_debugger.cpp msgid "Expand All" msgstr "" -#: editor/filesystem_dock.cpp editor/script_editor_debugger.cpp +#: editor/filesystem_dock.cpp editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_editor_debugger.cpp msgid "Collapse All" msgstr "" @@ -3103,11 +3377,11 @@ msgid "Rename" msgstr "" #: editor/filesystem_dock.cpp -msgid "Previous Directory" +msgid "Previous Folder/File" msgstr "" #: editor/filesystem_dock.cpp -msgid "Next Directory" +msgid "Next Folder/File" msgstr "" #: editor/filesystem_dock.cpp @@ -3115,7 +3389,7 @@ msgid "Re-Scan Filesystem" msgstr "" #: editor/filesystem_dock.cpp -msgid "Toggle split mode" +msgid "Toggle Split Mode" msgstr "" #: editor/filesystem_dock.cpp @@ -3144,7 +3418,7 @@ msgstr "" msgid "Create Script" msgstr "" -#: editor/find_in_files.cpp +#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp msgid "Find in Files" msgstr "" @@ -3160,6 +3434,12 @@ msgstr "" msgid "Filters:" msgstr "" +#: editor/find_in_files.cpp +msgid "" +"Include the files with the following extensions. Add or remove them in " +"ProjectSettings." +msgstr "" + #: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp msgid "Find..." @@ -3589,7 +3869,7 @@ msgid "Open Animation Node" msgstr "" #: editor/plugins/animation_blend_space_2d_editor.cpp -msgid "Triangle already exists" +msgid "Triangle already exists." msgstr "" #: editor/plugins/animation_blend_space_2d_editor.cpp @@ -3665,7 +3945,6 @@ msgid "Node Moved" msgstr "" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Unable to connect, port may be in use or connection may be invalid." msgstr "" @@ -3734,7 +4013,7 @@ msgid "Edit Filtered Tracks:" msgstr "" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -msgid "Enable filtering" +msgid "Enable Filtering" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp @@ -3849,10 +4128,6 @@ msgid "Animation" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "New" -msgstr "" - -#: editor/plugins/animation_player_editor_plugin.cpp #, fuzzy msgid "Edit Transitions..." msgstr "Set Peralihan ke:" @@ -3870,11 +4145,11 @@ msgid "Autoplay on Load" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Onion Skinning" +msgid "Enable Onion Skinning" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Enable Onion Skinning" +msgid "Onion Skinning Options" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp @@ -4417,13 +4692,19 @@ msgid "Move CanvasItem" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"Children of containers have their anchors and margins values overridden by " +"their parent." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Presets for the anchors and margins values of a Control node." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "" -"Children of containers have their anchors and margins values overridden by " -"their parent." +"When active, moving Control nodes changes their anchors instead of their " +"margins." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4439,10 +4720,49 @@ msgid "Change Anchors" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Lock Selected" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Unlock Selected" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Group Selected" +msgstr "Semua Pilihan" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Ungroup Selected" +msgstr "Semua Pilihan" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Paste Pose" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Create Custom Bone(s) from Node(s)" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Clear Bones" +msgstr "Anim Ubah Penukaran" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Make IK Chain" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Clear IK Chain" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "" "Warning: Children of a container get their position and size determined only " "by their parent." @@ -4514,7 +4834,7 @@ msgid "Snapping Options" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to grid" +msgid "Snap to Grid" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4535,31 +4855,31 @@ msgid "Use Pixel Snap" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Smart snapping" +msgid "Smart Snapping" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to parent" +msgid "Snap to Parent" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node anchor" +msgid "Snap to Node Anchor" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node sides" +msgid "Snap to Node Sides" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node center" +msgid "Snap to Node Center" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to other nodes" +msgid "Snap to Other Nodes" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to guides" +msgid "Snap to Guides" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4573,10 +4893,12 @@ msgid "Unlock the selected object (can be moved)." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Makes sure the object's children are not selectable." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Restores the object's children's ability to be selected." msgstr "" @@ -4589,14 +4911,6 @@ msgid "Show Bones" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Make IK Chain" -msgstr "" - -#: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Clear IK Chain" -msgstr "" - -#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Make Custom Bone(s) from Node(s)" msgstr "" @@ -4647,7 +4961,7 @@ msgid "Frame Selection" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Layout" +msgid "Preview Canvas Scale" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4699,6 +5013,10 @@ msgid "Divide grid step by 2" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Pan View" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Add %s" msgstr "" @@ -4721,7 +5039,7 @@ msgid "Error instancing scene from %s" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Change default type" +msgid "Change Default Type" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4807,19 +5125,19 @@ msgid "Create Emission Points From Node" msgstr "" #: editor/plugins/curve_editor_plugin.cpp -msgid "Flat0" +msgid "Flat 0" msgstr "" #: editor/plugins/curve_editor_plugin.cpp -msgid "Flat1" +msgid "Flat 1" msgstr "" -#: editor/plugins/curve_editor_plugin.cpp -msgid "Ease in" +#: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp +msgid "Ease In" msgstr "" -#: editor/plugins/curve_editor_plugin.cpp -msgid "Ease out" +#: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp +msgid "Ease Out" msgstr "" #: editor/plugins/curve_editor_plugin.cpp @@ -4839,23 +5157,25 @@ msgid "Load Curve Preset" msgstr "" #: editor/plugins/curve_editor_plugin.cpp -msgid "Add point" -msgstr "" +#, fuzzy +msgid "Add Point" +msgstr "Set Peralihan ke:" #: editor/plugins/curve_editor_plugin.cpp -msgid "Remove point" -msgstr "" +#, fuzzy +msgid "Remove Point" +msgstr "Buang Trek Anim" #: editor/plugins/curve_editor_plugin.cpp -msgid "Left linear" +msgid "Left Linear" msgstr "" #: editor/plugins/curve_editor_plugin.cpp -msgid "Right linear" +msgid "Right Linear" msgstr "" #: editor/plugins/curve_editor_plugin.cpp -msgid "Load preset" +msgid "Load Preset" msgstr "" #: editor/plugins/curve_editor_plugin.cpp @@ -4911,11 +5231,15 @@ msgid "This doesn't work on scene root!" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Trimesh Shape" +msgid "Create Trimesh Static Shape" +msgstr "" + +#: editor/plugins/mesh_instance_editor_plugin.cpp +msgid "Failed creating shapes!" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Shape" +msgid "Create Convex Shape(s)" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp @@ -4968,15 +5292,11 @@ msgid "Create Trimesh Static Body" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Static Body" -msgstr "" - -#: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Trimesh Collision Sibling" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Collision Sibling" +msgid "Create Convex Collision Sibling(s)" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp @@ -5130,20 +5450,20 @@ msgid "Create Navigation Polygon" msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp -msgid "Generating Visibility Rect" +#: editor/plugins/particles_editor_plugin.cpp +msgid "Convert to CPUParticles" msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp -msgid "Generate Visibility Rect" +msgid "Generating Visibility Rect" msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp -msgid "Can only set point into a ParticlesMaterial process material" +msgid "Generate Visibility Rect" msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp -#: editor/plugins/particles_editor_plugin.cpp -msgid "Convert to CPUParticles" +msgid "Can only set point into a ParticlesMaterial process material" msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp @@ -5285,7 +5605,7 @@ msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp editor/plugins/theme_editor_plugin.cpp -#: editor/project_export.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_export.cpp msgid "Options" msgstr "" @@ -5336,7 +5656,7 @@ msgid "Split Segment (in curve)" msgstr "" #: editor/plugins/physical_bone_plugin.cpp -msgid "Move joint" +msgid "Move Joint" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5569,7 +5889,6 @@ msgid "Open in Editor" msgstr "" #: editor/plugins/resource_preloader_editor_plugin.cpp -#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Load Resource" msgstr "" @@ -5658,6 +5977,11 @@ msgid "%s Class Reference" msgstr "" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp +msgid "Find Next" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp msgid "Toggle alphabetical sorting of the method list." msgstr "" @@ -5738,10 +6062,6 @@ msgstr "" msgid "Close All" msgstr "" -#: editor/plugins/script_editor_plugin.cpp -msgid "Close Other Tabs" -msgstr "" - #: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp msgid "Run" msgstr "" @@ -5750,11 +6070,6 @@ msgstr "" msgid "Toggle Scripts Panel" msgstr "" -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/script_text_editor.cpp -msgid "Find Next" -msgstr "" - #: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp msgid "Step Over" msgstr "" @@ -5781,7 +6096,7 @@ msgid "Debug with External Editor" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Open Godot online documentation" +msgid "Open Godot online documentation." msgstr "" #: editor/plugins/script_editor_plugin.cpp @@ -5789,7 +6104,7 @@ msgid "Request Docs" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Help improve the Godot documentation by giving feedback" +msgid "Help improve the Godot documentation by giving feedback." msgstr "" #: editor/plugins/script_editor_plugin.cpp @@ -5815,10 +6130,12 @@ msgid "" msgstr "" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp msgid "Reload" msgstr "" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp msgid "Resave" msgstr "" @@ -5831,6 +6148,27 @@ msgid "Search Results" msgstr "" #: editor/plugins/script_text_editor.cpp +msgid "Connections to method:" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Source" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Signal" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Target" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "" +"Missing connected method '%s' for signal '%s' from node '%s' to node '%s'." +msgstr "" + +#: editor/plugins/script_text_editor.cpp msgid "Line" msgstr "" @@ -5842,10 +6180,6 @@ msgstr "" msgid "Go to Function" msgstr "" -#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp -msgid "Standard" -msgstr "" - #: editor/plugins/script_text_editor.cpp msgid "Only resources from filesystem can be dropped." msgstr "" @@ -5878,6 +6212,11 @@ msgstr "" msgid "Syntax Highlighter" msgstr "" +#: editor/plugins/script_text_editor.cpp +#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp +msgid "Bookmarks" +msgstr "" + #: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" @@ -5905,6 +6244,22 @@ msgid "Toggle Comment" msgstr "" #: editor/plugins/script_text_editor.cpp +msgid "Toggle Bookmark" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Go to Next Bookmark" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Go to Previous Bookmark" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Remove All Bookmarks" +msgstr "" + +#: editor/plugins/script_text_editor.cpp msgid "Fold/Unfold Line" msgstr "" @@ -5978,6 +6333,12 @@ msgid "Contextual Help" msgstr "" #: editor/plugins/shader_editor_plugin.cpp +msgid "" +"This shader has been modified on on disk.\n" +"What action should be taken?" +msgstr "" + +#: editor/plugins/shader_editor_plugin.cpp msgid "Shader" msgstr "" @@ -6315,7 +6676,7 @@ msgid "Right View" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Switch Perspective/Orthogonal view" +msgid "Switch Perspective/Orthogonal View" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp @@ -6355,11 +6716,12 @@ msgid "Toggle Freelook" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Transform" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Snap object to floor" +msgid "Snap Object to Floor" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp @@ -6501,35 +6863,35 @@ msgid "Invalid geometry, can't replace by mesh." msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Invalid geometry, can't create polygon." +msgid "Convert to Mesh2D" msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Invalid geometry, can't create collision polygon." +msgid "Invalid geometry, can't create polygon." msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Invalid geometry, can't create light occluder." +msgid "Convert to Polygon2D" msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Sprite" +msgid "Invalid geometry, can't create collision polygon." msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Convert to Mesh2D" +msgid "Create CollisionPolygon2D Sibling" msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Convert to Polygon2D" +msgid "Invalid geometry, can't create light occluder." msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Create CollisionPolygon2D Sibling" +msgid "Create LightOccluder2D Sibling" msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Create LightOccluder2D Sibling" +msgid "Sprite" msgstr "" #: editor/plugins/sprite_editor_plugin.cpp @@ -6549,7 +6911,11 @@ msgid "Settings:" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "ERROR: Couldn't load frame resource!" +msgid "No Frames Selected" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Add %d Frame(s)" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp @@ -6557,6 +6923,10 @@ msgid "Add Frame" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "ERROR: Couldn't load frame resource!" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Resource clipboard is empty or not a texture!" msgstr "" @@ -6598,6 +6968,14 @@ msgid "Animation Frames:" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Add a Texture from File" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Add Frames from a Sprite Sheet" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Insert Empty (Before)" msgstr "" @@ -6614,6 +6992,26 @@ msgid "Move (After)" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Select Frames" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Horizontal:" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Vertical:" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Select/Clear All Frames" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Create Frames from Sprite Sheet" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "SpriteFrames" msgstr "" @@ -6678,12 +7076,12 @@ msgstr "" msgid "Remove All Items" msgstr "" -#: editor/plugins/theme_editor_plugin.cpp +#: editor/plugins/theme_editor_plugin.cpp editor/project_manager.cpp msgid "Remove All" msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "Edit theme..." +msgid "Edit Theme" msgstr "" #: editor/plugins/theme_editor_plugin.cpp @@ -6711,18 +7109,24 @@ msgid "Create From Current Editor Theme" msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "CheckBox Radio1" +msgid "Toggle Button" msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "CheckBox Radio2" -msgstr "" +#, fuzzy +msgid "Disabled Button" +msgstr "Tidak Aktif" #: editor/plugins/theme_editor_plugin.cpp msgid "Item" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Disabled Item" +msgstr "Tidak Aktif" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Check Item" msgstr "" @@ -6739,6 +7143,22 @@ msgid "Checked Radio Item" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +msgid "Named Sep." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Submenu" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Item 1" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Item 2" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Has" msgstr "" @@ -6747,8 +7167,9 @@ msgid "Many" msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "Has,Many,Options" -msgstr "" +#, fuzzy +msgid "Disabled LineEdit" +msgstr "Tidak Aktif" #: editor/plugins/theme_editor_plugin.cpp msgid "Tab 1" @@ -6763,6 +7184,18 @@ msgid "Tab 3" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +msgid "Editable Item" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Subtree" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Has,Many,Options" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Data Type:" msgstr "" @@ -6795,6 +7228,7 @@ msgid "Fix Invalid Tiles" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp +#: modules/gridmap/grid_map_editor_plugin.cpp #, fuzzy msgid "Cut Selection" msgstr "Semua Pilihan" @@ -6836,37 +7270,46 @@ msgid "Mirror Y" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp +msgid "Disable Autotile" +msgstr "" + +#: editor/plugins/tile_map_editor_plugin.cpp +msgid "Enable Priority" +msgstr "" + +#: editor/plugins/tile_map_editor_plugin.cpp msgid "Paint Tile" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Pick Tile" +msgid "" +"Shift+RMB: Line Draw\n" +"Shift+Ctrl+RMB: Rectangle Paint" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy -msgid "Copy Selection" -msgstr "Semua Pilihan" +msgid "Pick Tile" +msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Rotate left" +msgid "Rotate Left" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Rotate right" +msgid "Rotate Right" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Flip horizontally" +msgid "Flip Horizontally" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Flip vertically" +msgid "Flip Vertically" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp #, fuzzy -msgid "Clear transform" +msgid "Clear Transform" msgstr "Anim Ubah Penukaran" #: editor/plugins/tile_set_editor_plugin.cpp @@ -6902,6 +7345,38 @@ msgid "Select the previous shape, subtile, or Tile." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp +msgid "Region Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Collision Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Occlusion Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Navigation Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Bitmask Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Priority Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Icon Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Z Index Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp msgid "Copy bitmask." msgstr "" @@ -6983,6 +7458,7 @@ msgstr "Semua Pilihan" msgid "" "LMB: Set bit on.\n" "RMB: Set bit off.\n" +"Shift+LMB: Set wildcard bit.\n" "Click on another Tile to edit it." msgstr "" @@ -7090,6 +7566,67 @@ msgid "TileSet" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add input +" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add output +" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add input port" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add output port" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change input port type" +msgstr "Anim Ubah Peralihan" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Change output port type" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Change input port name" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Change output port name" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Remove input port" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Remove output port" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Set expression" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Resize VisualShader node" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Set Uniform Name" msgstr "" @@ -7128,6 +7665,839 @@ msgid "Light" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Create Shader Node" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Color function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Color operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Grayscale function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts HSV vector to RGB equivalent." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts RGB vector to HSV equivalent." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Sepia function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Burn operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Darken operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Difference operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Dodge operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "HardLight operator" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Lighten operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Overlay operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Screen operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "SoftLight operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Color constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Color uniform." +msgstr "Anim Ubah Penukaran" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns an associated vector if the provided scalars are equal, greater or " +"less." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns an associated vector if the provided boolean value is true or false." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'camera' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'inv_camera' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'inv_projection' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'normal' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'projection' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'time' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'viewport_size' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'world' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'texture_pixel_size' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Input parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'binormal' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'fragcoord' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_coord' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_uv' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'side' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'tangent' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv2' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'vertex' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'view' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'albedo' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'attenuation' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'diffuse' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_color' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'roughness' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'specular' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'transmission' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'modelview' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_size' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'tangent' input parameter for vertex and fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_pass' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_coord' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_pixel_size' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_uv' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_alpha' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_height' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_uv' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_vec' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'normal' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'shadow_color' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'extra' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'projection' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'vertex' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'world' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'active' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'custom' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'custom_alpha' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'delta' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'emission_transform' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'index' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'lifetime' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'restart' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'time' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'transform' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'velocity' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Scalar function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Scalar operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "E constant (2.718282). Represents the base of the natural logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Epsilon constant (0.00001). Smallest possible scalar number." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Phi constant (1.618034). Golden ratio." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi/4 constant (0.785398) or 45 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi/2 constant (1.570796) or 90 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi constant (3.141593) or 180 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Tau constant (6.283185) or 360 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Sqrt2 constant (1.414214). Square root of 2." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the absolute value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-tangent of the parameters." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Finds the nearest integer that is greater than or equal to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Constrains a value to lie between two further values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts a quantity in radians to degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-e Exponential." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-2 Exponential." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Finds the nearest integer less than or equal to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Computes the fractional part of the argument." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the inverse of the square root of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Natural logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-2 logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the greater of two values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the lesser of two values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Linear interpolation between two scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the opposite value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 - scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns the value of the first parameter raised to the power of the second." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts a quantity in degrees to radians." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 / scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the nearest integer to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the nearest even integer to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Clamps the value between 0.0 and 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Extracts the sign of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the square root of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( scalar(edge0), scalar(edge1), scalar(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if x is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( scalar(edge), scalar(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the truncated value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Adds scalar to scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Divides scalar by scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies scalar by scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the remainder of the two scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Subtracts scalar from scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Scalar constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar uniform." +msgstr "Anim Ubah Penukaran" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Perform the cubic texture lookup." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Perform the texture lookup." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Cubic texture uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "2D texture uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Transform function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) Calculate the outer product of a pair of vectors.\n" +"\n" +"OuterProduct treats the first parameter 'c' as a column vector (matrix with " +"one column) and the second parameter 'r' as a row vector (matrix with one " +"row) and does a linear algebraic matrix multiply 'c * r', yielding a matrix " +"whose number of rows is the number of components in 'c' and whose number of " +"columns is the number of components in 'r'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Composes transform from four vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Decomposes transform to four vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the determinant of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the inverse of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the transpose of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies transform by transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies vector by transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Transform constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Transform uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Composes vector from three scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Decomposes vector to three scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the cross product of two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the distance between two points." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the dot product of two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns a vector that points in the same direction as a reference vector. " +"The function has three vector parameters : N, the vector to orient, I, the " +"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 "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the length of a vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Linear interpolation between two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the normalize product of vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 - vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 / vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns a vector that points in the direction of reflection ( a : incident " +"vector, b : normal vector )." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns a vector that points in the direction of refraction." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( vector(edge0), vector(edge1), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if 'x' is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( scalar(edge0), scalar(edge1), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if 'x' is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( vector(edge), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( scalar(edge), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Adds vector to vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Divides vector by vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies vector by vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the remainder of the two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Subtracts vector from vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Custom Godot Shader Language expression, with custom amount of input and " +"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 "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns falloff based on the dot product of surface normal and view " +"direction of camera (pass associated inputs to it)." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) (Fragment/Light mode only) Scalar derivative function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) (Fragment/Light mode only) Vector derivative function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Derivative in 'x' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Derivative in 'x' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Derivative in 'y' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Derivative in 'y' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Sum of absolute derivative " +"in 'x' and 'y'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Sum of absolute derivative " +"in 'x' and 'y'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "VisualShader" msgstr "" @@ -7315,6 +8685,10 @@ msgid "Directory already contains a Godot project." msgstr "" #: editor/project_manager.cpp +msgid "New Game Project" +msgstr "" + +#: editor/project_manager.cpp msgid "Imported Project" msgstr "" @@ -7361,10 +8735,6 @@ msgid "Rename Project" msgstr "" #: editor/project_manager.cpp -msgid "New Game Project" -msgstr "" - -#: editor/project_manager.cpp msgid "Import Existing Project" msgstr "" @@ -7393,10 +8763,6 @@ msgid "Project Name:" msgstr "" #: editor/project_manager.cpp -msgid "Create folder" -msgstr "" - -#: editor/project_manager.cpp msgid "Project Path:" msgstr "" @@ -7405,10 +8771,6 @@ msgid "Project Installation Path:" msgstr "" #: editor/project_manager.cpp -msgid "Browse" -msgstr "" - -#: editor/project_manager.cpp msgid "Renderer:" msgstr "" @@ -7461,8 +8823,8 @@ msgid "" "\n" "If you proceed with opening it, it will be converted to Godot's current " "configuration file format.\n" -"Warning: You will not be able to open the project with previous versions of " -"the engine anymore." +"Warning: You won't be able to open the project with previous versions of the " +"engine anymore." msgstr "" #: editor/project_manager.cpp @@ -7473,8 +8835,8 @@ msgid "" "%s\n" "\n" "Do you want to convert it?\n" -"Warning: You will not be able to open the project with previous versions of " -"the engine anymore." +"Warning: You won't be able to open the project with previous versions of the " +"engine anymore." msgstr "" #: editor/project_manager.cpp @@ -7486,7 +8848,7 @@ msgstr "" #: editor/project_manager.cpp msgid "" "Can't run project: no main scene defined.\n" -"Please edit the project and set the main scene in \"Project Settings\" under " +"Please edit the project and set the main scene in the Project Settings under " "the \"Application\" category." msgstr "" @@ -7497,23 +8859,37 @@ msgid "" msgstr "" #: editor/project_manager.cpp -msgid "Are you sure to run more than one project?" +msgid "Are you sure to run %d projects at once?" +msgstr "" + +#: editor/project_manager.cpp +msgid "" +"Remove %d projects from the list?\n" +"The project folders' contents won't be modified." msgstr "" #: editor/project_manager.cpp -msgid "Remove project from the list? (Folder contents will not be modified)" +msgid "" +"Remove this project from the list?\n" +"The project folder's contents won't be modified." +msgstr "" + +#: editor/project_manager.cpp +msgid "" +"Remove all missing projects from the list? (Folders contents will not be " +"modified)" msgstr "" #: editor/project_manager.cpp msgid "" "Language changed.\n" -"The UI will update next time the editor or project manager starts." +"The interface will update after restarting the editor or project manager." msgstr "" #: editor/project_manager.cpp msgid "" -"You are about the scan %s folders for existing Godot projects. Do you " -"confirm?" +"Are you sure to scan %s folders for existing Godot projects?\n" +"This could take a while." msgstr "" #: editor/project_manager.cpp @@ -7537,6 +8913,10 @@ msgid "New Project" msgstr "" #: editor/project_manager.cpp +msgid "Remove Missing" +msgstr "" + +#: editor/project_manager.cpp msgid "Templates" msgstr "" @@ -7554,8 +8934,8 @@ msgstr "" #: editor/project_manager.cpp msgid "" -"You don't currently have any projects.\n" -"Would you like to explore the official example projects in the Asset Library?" +"You currently don't have any projects.\n" +"Would you like to explore official example projects in the Asset Library?" msgstr "" #: editor/project_settings_editor.cpp @@ -7581,7 +8961,7 @@ msgid "" msgstr "" #: editor/project_settings_editor.cpp -msgid "Action '%s' already exists!" +msgid "An action with the name '%s' already exists." msgstr "" #: editor/project_settings_editor.cpp @@ -7735,10 +9115,6 @@ msgid "" msgstr "" #: editor/project_settings_editor.cpp -msgid "Already existing" -msgstr "" - -#: editor/project_settings_editor.cpp msgid "Add Input Action" msgstr "" @@ -7803,7 +9179,7 @@ msgid "Override For..." msgstr "" #: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp -msgid "Editor must be restarted for changes to take effect" +msgid "The editor must be restarted for changes to take effect." msgstr "" #: editor/project_settings_editor.cpp @@ -7864,11 +9240,11 @@ msgid "Locales Filter" msgstr "" #: editor/project_settings_editor.cpp -msgid "Show all locales" +msgid "Show All Locales" msgstr "" #: editor/project_settings_editor.cpp -msgid "Show only selected locales" +msgid "Show Selected Locales Only" msgstr "" #: editor/project_settings_editor.cpp @@ -7884,14 +9260,6 @@ msgid "AutoLoad" msgstr "" #: editor/property_editor.cpp -msgid "Ease In" -msgstr "" - -#: editor/property_editor.cpp -msgid "Ease Out" -msgstr "" - -#: editor/property_editor.cpp msgid "Zero" msgstr "" @@ -7965,7 +9333,7 @@ msgid "Suffix" msgstr "" #: editor/rename_dialog.cpp -msgid "Advanced options" +msgid "Advanced Options" msgstr "" #: editor/rename_dialog.cpp @@ -8217,8 +9585,9 @@ msgid "User Interface" msgstr "" #: editor/scene_tree_dock.cpp -msgid "Custom Node" -msgstr "" +#, fuzzy +msgid "Other Node" +msgstr "Semua Pilihan" #: editor/scene_tree_dock.cpp msgid "Can't operate on nodes from a foreign scene!" @@ -8259,7 +9628,7 @@ msgid "Clear Inheritance" msgstr "" #: editor/scene_tree_dock.cpp -msgid "Open documentation" +msgid "Open Documentation" msgstr "" #: editor/scene_tree_dock.cpp @@ -8286,7 +9655,7 @@ msgstr "" msgid "Save Branch as Scene" msgstr "" -#: editor/scene_tree_dock.cpp +#: editor/scene_tree_dock.cpp editor/script_editor_debugger.cpp msgid "Copy Node Path" msgstr "" @@ -8329,6 +9698,18 @@ msgid "Toggle Visible" msgstr "" #: editor/scene_tree_editor.cpp +msgid "Unlock Node" +msgstr "" + +#: editor/scene_tree_editor.cpp +msgid "Button Group" +msgstr "" + +#: editor/scene_tree_editor.cpp +msgid "(Connecting From)" +msgstr "" + +#: editor/scene_tree_editor.cpp msgid "Node configuration warning:" msgstr "" @@ -8350,8 +9731,8 @@ msgid "" "Click to show groups dock." msgstr "" -#: editor/scene_tree_editor.cpp editor/script_create_dialog.cpp -msgid "Open Script" +#: editor/scene_tree_editor.cpp +msgid "Open Script:" msgstr "" #: editor/scene_tree_editor.cpp @@ -8397,71 +9778,71 @@ msgid "Select a Node" msgstr "" #: editor/script_create_dialog.cpp -msgid "Error loading template '%s'" +msgid "Path is empty." msgstr "" #: editor/script_create_dialog.cpp -msgid "Error - Could not create script in filesystem." +msgid "Filename is empty." msgstr "" #: editor/script_create_dialog.cpp -msgid "Error loading script from %s" +msgid "Path is not local." msgstr "" #: editor/script_create_dialog.cpp -msgid "N/A" +msgid "Invalid base path." msgstr "" #: editor/script_create_dialog.cpp -msgid "Open Script/Choose Location" +msgid "A directory with the same name exists." msgstr "" #: editor/script_create_dialog.cpp -msgid "Path is empty" +msgid "Invalid extension." msgstr "" #: editor/script_create_dialog.cpp -msgid "Filename is empty" +msgid "Wrong extension chosen." msgstr "" #: editor/script_create_dialog.cpp -msgid "Path is not local" +msgid "Error loading template '%s'" msgstr "" #: editor/script_create_dialog.cpp -msgid "Invalid base path" +msgid "Error - Could not create script in filesystem." msgstr "" #: editor/script_create_dialog.cpp -msgid "Directory of the same name exists" +msgid "Error loading script from %s" msgstr "" #: editor/script_create_dialog.cpp -msgid "File exists, will be reused" +msgid "N/A" msgstr "" #: editor/script_create_dialog.cpp -msgid "Invalid extension" +msgid "Open Script / Choose Location" msgstr "" #: editor/script_create_dialog.cpp -msgid "Wrong extension chosen" +msgid "Open Script" msgstr "" #: editor/script_create_dialog.cpp -msgid "Invalid Path" +msgid "File exists, it will be reused." msgstr "" #: editor/script_create_dialog.cpp -msgid "Invalid class name" +msgid "Invalid class name." msgstr "" #: editor/script_create_dialog.cpp -msgid "Invalid inherited parent name or path" +msgid "Invalid inherited parent name or path." msgstr "" #: editor/script_create_dialog.cpp -msgid "Script valid" +msgid "Script is valid." msgstr "" #: editor/script_create_dialog.cpp @@ -8469,15 +9850,15 @@ msgid "Allowed: a-z, A-Z, 0-9 and _" msgstr "" #: editor/script_create_dialog.cpp -msgid "Built-in script (into scene file)" +msgid "Built-in script (into scene file)." msgstr "" #: editor/script_create_dialog.cpp -msgid "Create new script file" +msgid "Will create a new script file." msgstr "" #: editor/script_create_dialog.cpp -msgid "Load existing script file" +msgid "Will load an existing script file." msgstr "" #: editor/script_create_dialog.cpp @@ -8608,6 +9989,10 @@ msgstr "" msgid "Set From Tree" msgstr "" +#: editor/script_editor_debugger.cpp +msgid "Export measures as CSV" +msgstr "" + #: editor/settings_config_dialog.cpp msgid "Erase Shortcut" msgstr "" @@ -8737,6 +10122,14 @@ msgid "GDNativeLibrary" msgstr "" #: modules/gdnative/gdnative_library_singleton_editor.cpp +msgid "Enabled GDNative Singleton" +msgstr "" + +#: modules/gdnative/gdnative_library_singleton_editor.cpp +msgid "Disabled GDNative Singleton" +msgstr "" + +#: modules/gdnative/gdnative_library_singleton_editor.cpp msgid "Library" msgstr "" @@ -8822,8 +10215,9 @@ msgid "GridMap Fill Selection" msgstr "Semua Pilihan" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "GridMap Duplicate Selection" -msgstr "" +#, fuzzy +msgid "GridMap Paste Selection" +msgstr "Semua Pilihan" #: modules/gridmap/grid_map_editor_plugin.cpp msgid "GridMap Paint" @@ -8890,18 +10284,6 @@ msgid "Cursor Clear Rotation" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Create Area" -msgstr "" - -#: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Create Exterior Connector" -msgstr "" - -#: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Erase Area" -msgstr "" - -#: modules/gridmap/grid_map_editor_plugin.cpp msgid "Clear Selection" msgstr "" @@ -9253,15 +10635,7 @@ msgid "Available Nodes:" msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Select or create a function to edit graph" -msgstr "" - -#: modules/visual_script/visual_script_editor.cpp -msgid "Edit Signal Arguments:" -msgstr "" - -#: modules/visual_script/visual_script_editor.cpp -msgid "Edit Variable:" +msgid "Select or create a function to edit its graph." msgstr "" #: modules/visual_script/visual_script_editor.cpp @@ -9391,6 +10765,19 @@ msgid "Debug keystore not configured in the Editor Settings nor in the preset." msgstr "" #: platform/android/export/export.cpp +msgid "Custom build requires a valid Android SDK path in Editor Settings." +msgstr "" + +#: platform/android/export/export.cpp +msgid "Invalid Android SDK path for custom build in Editor Settings." +msgstr "" + +#: platform/android/export/export.cpp +msgid "" +"Android project is not installed for compiling. Install from Editor menu." +msgstr "" + +#: platform/android/export/export.cpp msgid "Invalid public key for APK expansion." msgstr "" @@ -9398,6 +10785,34 @@ msgstr "" msgid "Invalid package name:" msgstr "" +#: platform/android/export/export.cpp +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 "" +"Android build version mismatch:\n" +" Template installed: %s\n" +" Godot Version: %s\n" +"Please reinstall Android build template from 'Project' menu." +msgstr "" + +#: platform/android/export/export.cpp +msgid "Building Android Project (gradle)" +msgstr "" + +#: 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 "" + +#: platform/android/export/export.cpp +msgid "No build apk generated at: " +msgstr "" + #: platform/iphone/export/export.cpp msgid "Identifier is missing." msgstr "" @@ -9650,27 +11065,27 @@ msgid "ARVRCamera must have an ARVROrigin node as its parent" msgstr "" #: scene/3d/arvr_nodes.cpp -msgid "ARVRController must have an ARVROrigin node as its parent" +msgid "ARVRController must have an ARVROrigin node as its parent." msgstr "" #: scene/3d/arvr_nodes.cpp msgid "" -"The controller id must not be 0 or this controller will not be bound to an " -"actual controller" +"The controller ID must not be 0 or this controller won't be bound to an " +"actual controller." msgstr "" #: scene/3d/arvr_nodes.cpp -msgid "ARVRAnchor must have an ARVROrigin node as its parent" +msgid "ARVRAnchor must have an ARVROrigin node as its parent." msgstr "" #: scene/3d/arvr_nodes.cpp msgid "" -"The anchor id must not be 0 or this anchor will not be bound to an actual " -"anchor" +"The anchor ID must not be 0 or this anchor won't be bound to an actual " +"anchor." msgstr "" #: scene/3d/arvr_nodes.cpp -msgid "ARVROrigin requires an ARVRCamera child node" +msgid "ARVROrigin requires an ARVRCamera child node." msgstr "" #: scene/3d/baked_lightmap.cpp @@ -9740,8 +11155,8 @@ msgstr "" #: scene/3d/cpu_particles.cpp msgid "" -"CPUParticles animation requires the usage of a SpatialMaterial with " -"\"Billboard Particles\" enabled." +"CPUParticles animation requires the usage of a SpatialMaterial whose " +"Billboard Mode is set to \"Particle Billboard\"." msgstr "" #: scene/3d/gi_probe.cpp @@ -9778,8 +11193,8 @@ msgstr "" #: scene/3d/particles.cpp msgid "" -"Particles animation requires the usage of a SpatialMaterial with \"Billboard " -"Particles\" enabled." +"Particles animation requires the usage of a SpatialMaterial whose Billboard " +"Mode is set to \"Particle Billboard\"." msgstr "" #: scene/3d/path.cpp @@ -9804,7 +11219,7 @@ msgid "Path property must point to a valid Spatial node to work." msgstr "" #: scene/3d/soft_body.cpp -msgid "This body will be ignored until you set a mesh" +msgid "This body will be ignored until you set a mesh." msgstr "" #: scene/3d/soft_body.cpp @@ -9901,7 +11316,7 @@ msgstr "" msgid "" "Container by itself serves no purpose unless a script configures it's " "children placement behavior.\n" -"If you dont't intend to add a script, then please use a plain 'Control' node " +"If you don't intend to add a script, then please use a plain 'Control' node " "instead." msgstr "" @@ -9913,10 +11328,6 @@ msgstr "" msgid "Please Confirm..." msgstr "" -#: scene/gui/file_dialog.cpp -msgid "Go to parent folder." -msgstr "" - #: scene/gui/popup.cpp msgid "" "Popups will hide by default unless you call popup() or any of the popup*() " @@ -9989,8 +11400,9 @@ msgstr "" msgid "Varyings can only be assigned in vertex function." msgstr "" -#~ msgid "Disabled" -#~ msgstr "Tidak Aktif" +#: servers/visual/shader_language.cpp +msgid "Constants cannot be modified." +msgstr "" #~ msgid "Move Anim Track Up" #~ msgstr "Ubah Trek Anim Ke Atas" diff --git a/editor/translations/nb.po b/editor/translations/nb.po index 26bd0cc890..cc71c187e1 100644 --- a/editor/translations/nb.po +++ b/editor/translations/nb.po @@ -13,11 +13,12 @@ # passeride <lukas@passeride.com>, 2017. # Byzantin <kasper-hoel@hotmail.com>, 2018. # Hans-Marius ØverÃ¥s <hansmariusoveras@gmail.com>, 2019. +# Revolution <revosw@gmail.com>, 2019. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2019-04-23 15:48+0000\n" +"PO-Revision-Date: 2019-05-04 13:48+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" @@ -84,6 +85,15 @@ msgstr "Balansert" msgid "Mirror" msgstr "Speil" +#: editor/animation_bezier_editor.cpp editor/editor_profiler.cpp +msgid "Time:" +msgstr "Tid:" + +#: editor/animation_bezier_editor.cpp +#, fuzzy +msgid "Value:" +msgstr "Nytt navn:" + #: editor/animation_bezier_editor.cpp #, fuzzy msgid "Insert Key Here" @@ -143,7 +153,7 @@ msgstr "Endre Animasjonsnavn:" #: editor/animation_track_editor.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Change Animation Loop" -msgstr "" +msgstr "Endre Animasjonssløyfe" #: editor/animation_track_editor.cpp #, fuzzy @@ -177,16 +187,21 @@ msgstr "Stopp avspilling av animasjon. (S)" #: editor/animation_track_editor.cpp #, fuzzy -msgid "Add Track" -msgstr "Anim Legg til Spor" +msgid "Animation length (frames)" +msgstr "Animasjon lengde (i sekunder)." #: editor/animation_track_editor.cpp #, fuzzy -msgid "Animation Length Time (seconds)" +msgid "Animation length (seconds)" msgstr "Animasjon lengde (i sekunder)." #: editor/animation_track_editor.cpp #, fuzzy +msgid "Add Track" +msgstr "Anim Legg til Spor" + +#: editor/animation_track_editor.cpp +#, fuzzy msgid "Animation Looping" msgstr "Animasjons-zoom." @@ -239,7 +254,7 @@ msgstr "X-Fade Tid (s):" #: editor/animation_track_editor.cpp msgid "Toggle Track Enabled" -msgstr "" +msgstr "Veksl Aktivering Av Spor" #: editor/animation_track_editor.cpp msgid "Continuous" @@ -273,11 +288,11 @@ msgstr "Kubisk" #: editor/animation_track_editor.cpp msgid "Clamp Loop Interp" -msgstr "" +msgstr "Klem Sløyfeinterp" #: editor/animation_track_editor.cpp msgid "Wrap Loop Interp" -msgstr "" +msgstr "Pakk Inn Sløyfeinterp" #: editor/animation_track_editor.cpp #: editor/plugins/canvas_item_editor_plugin.cpp @@ -322,11 +337,13 @@ msgid "Create %d NEW tracks and insert keys?" msgstr "Lag %d NYE spor og sett inn nøkler?" #: editor/animation_track_editor.cpp editor/create_dialog.cpp -#: editor/editor_audio_buses.cpp editor/editor_plugin_settings.cpp -#: editor/plugin_config_dialog.cpp +#: editor/editor_audio_buses.cpp editor/editor_feature_profile.cpp +#: editor/editor_plugin_settings.cpp editor/plugin_config_dialog.cpp #: editor/plugins/abstract_polygon_2d_editor.cpp #: editor/plugins/mesh_instance_editor_plugin.cpp -#: editor/plugins/particles_editor_plugin.cpp editor/script_create_dialog.cpp +#: editor/plugins/particles_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_create_dialog.cpp msgid "Create" msgstr "Lag" @@ -351,14 +368,12 @@ msgid "Anim Insert Key" msgstr "Anim Sett Inn Nøkkel" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Change Animation Step" -msgstr "Endre Animasjonsnavn:" +msgstr "Endre Animasjonstrinn" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Rearrange Tracks" -msgstr "Omorganiser Autoloads" +msgstr "Omorganiser Spor" #: editor/animation_track_editor.cpp #, fuzzy @@ -378,7 +393,6 @@ msgstr "" "-AudioStreamPlayer3D" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Animation tracks can only point to AnimationPlayer nodes." msgstr "Animasjonsspor kan kun peke pÃ¥ AnimationPlayer-noder." @@ -418,9 +432,8 @@ msgid "Add Track Key" msgstr "Anim Legg til Spor" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Track path is invalid, so can't add a method key." -msgstr "Sporsti er ugyldig, sÃ¥ kan ikke legge til metodenøkkel." +msgstr "Sporsti er ugyldig, sÃ¥ kan ikke legge til en metodenøkkel." #: editor/animation_track_editor.cpp #, fuzzy @@ -458,6 +471,23 @@ msgstr "" "spor." #: editor/animation_track_editor.cpp +msgid "" +"This animation belongs to an imported scene, so changes to imported tracks " +"will not be saved.\n" +"\n" +"To enable the ability to add custom tracks, navigate to the scene's import " +"settings and set\n" +"\"Animation > Storage\" to \"Files\", enable \"Animation > Keep Custom Tracks" +"\", then re-import.\n" +"Alternatively, use an import preset that imports animations to separate " +"files." +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Warning: Editing imported animation" +msgstr "" + +#: editor/animation_track_editor.cpp msgid "Only show tracks from nodes selected in tree." msgstr "Vis kun spor fra noder valgt i treet." @@ -477,11 +507,11 @@ msgstr "Animasjonstre er gyldig." #: editor/animation_track_editor.cpp msgid "Seconds" -msgstr "" +msgstr "Sekunder" #: editor/animation_track_editor.cpp msgid "FPS" -msgstr "" +msgstr "FPS" #: editor/animation_track_editor.cpp editor/editor_properties.cpp #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -597,7 +627,8 @@ msgstr "Skaler Størrelsesforhold:" msgid "Select tracks to copy:" msgstr "Velg spor Ã¥ kopiere:" -#: editor/animation_track_editor.cpp editor/editor_properties.cpp +#: editor/animation_track_editor.cpp editor/editor_log.cpp +#: editor/editor_properties.cpp #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp @@ -612,11 +643,11 @@ msgstr "Lydklipp:" #: editor/animation_track_editor_plugins.cpp msgid "Change Audio Track Clip Start Offset" -msgstr "" +msgstr "Endre Forskyvning Av Lydklippets Start" #: editor/animation_track_editor_plugins.cpp msgid "Change Audio Track Clip End Offset" -msgstr "" +msgstr "Endre Forskyvning Av Lydklippets Slutt" #: editor/array_property_edit.cpp msgid "Resize Array" @@ -666,6 +697,11 @@ msgstr "Erstatt Alle" msgid "Selection Only" msgstr "Kun Valgte" +#: editor/code_editor.cpp editor/plugins/script_text_editor.cpp +#: editor/plugins/text_editor.cpp +msgid "Standard" +msgstr "" + #: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/texture_region_editor_plugin.cpp #: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp @@ -688,24 +724,41 @@ msgstr "Advarsler" #: editor/code_editor.cpp msgid "Line and column numbers." -msgstr "" +msgstr "Linje- og kolonnenummer." #: editor/connections_dialog.cpp -msgid "Method in target Node must be specified!" +#, fuzzy +msgid "Method in target node must be specified." msgstr "Metode i mÃ¥l-Node mÃ¥ spesifiseres!" #: editor/connections_dialog.cpp +#, fuzzy msgid "" -"Target method not found! Specify a valid method or attach a script to target " -"Node." +"Target method not found. Specify a valid method or attach a script to the " +"target node." msgstr "" "MÃ¥l-metode ikke funnet! Spesifiser en gyldig metode eller fest et skript til " "mÃ¥l-Noden." #: editor/connections_dialog.cpp -msgid "Connect To Node:" +#, fuzzy +msgid "Connect to Node:" msgstr "Koble Til Node:" +#: editor/connections_dialog.cpp +#, fuzzy +msgid "Connect to Script:" +msgstr "Kan ikke koble til tjener:" + +#: editor/connections_dialog.cpp +#, fuzzy +msgid "From Signal:" +msgstr "Signaler:" + +#: editor/connections_dialog.cpp +msgid "Scene does not contain any script." +msgstr "" + #: editor/connections_dialog.cpp editor/editor_autoload_settings.cpp #: editor/groups_editor.cpp editor/plugins/item_list_editor_plugin.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_settings_editor.cpp @@ -713,10 +766,12 @@ msgid "Add" msgstr "Legg Til" #: editor/connections_dialog.cpp editor/dependency_editor.cpp -#: editor/groups_editor.cpp editor/plugins/animation_player_editor_plugin.cpp +#: editor/editor_feature_profile.cpp editor/groups_editor.cpp +#: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp #: editor/plugins/resource_preloader_editor_plugin.cpp -#: editor/plugins/theme_editor_plugin.cpp editor/project_manager.cpp +#: editor/plugins/theme_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_manager.cpp #: editor/project_settings_editor.cpp msgid "Remove" msgstr "Fjern" @@ -730,21 +785,32 @@ msgid "Extra Call Arguments:" msgstr "Ekstra Call Argumenter:" #: editor/connections_dialog.cpp -msgid "Path to Node:" -msgstr "Sti til Node:" - -#: editor/connections_dialog.cpp -msgid "Make Function" -msgstr "Lag funksjon" +#, fuzzy +msgid "Advanced" +msgstr "Snapping innstillinger" #: editor/connections_dialog.cpp msgid "Deferred" msgstr "Utsatt" #: editor/connections_dialog.cpp +msgid "" +"Defers the signal, storing it in a queue and only firing it at idle time." +msgstr "" + +#: editor/connections_dialog.cpp msgid "Oneshot" msgstr "Engangs" +#: editor/connections_dialog.cpp +msgid "Disconnects the signal after its first emission." +msgstr "" + +#: editor/connections_dialog.cpp +#, fuzzy +msgid "Cannot connect signal" +msgstr "Kobler Til Signal:" + #: editor/connections_dialog.cpp editor/dependency_editor.cpp #: editor/export_template_manager.cpp editor/groups_editor.cpp #: editor/plugins/animation_player_editor_plugin.cpp @@ -787,12 +853,12 @@ msgstr "Koble Fra" #: editor/connections_dialog.cpp #, fuzzy -msgid "Connect Signal: " +msgid "Connect a Signal to a Method" msgstr "Kobler Til Signal:" #: editor/connections_dialog.cpp #, fuzzy -msgid "Edit Connection: " +msgid "Edit Connection:" msgstr "Tilkoblingsfeil" #: editor/connections_dialog.cpp @@ -829,7 +895,6 @@ msgid "Change %s Type" msgstr "Endre %s type" #: editor/create_dialog.cpp editor/project_settings_editor.cpp -#: modules/visual_script/visual_script_editor.cpp msgid "Change" msgstr "Forandre" @@ -860,7 +925,8 @@ msgid "Matches:" msgstr "Treff:" #: editor/create_dialog.cpp editor/plugin_config_dialog.cpp -#: editor/plugins/asset_library_editor_plugin.cpp editor/property_selector.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/property_selector.cpp #: modules/visual_script/visual_script_property_selector.cpp msgid "Description:" msgstr "Beskrivelse:" @@ -874,17 +940,19 @@ msgid "Dependencies For:" msgstr "Avhengigheter For:" #: editor/dependency_editor.cpp +#, fuzzy msgid "" "Scene '%s' is currently being edited.\n" -"Changes will not take effect unless reloaded." +"Changes will only take effect when reloaded." msgstr "" "Scene '%s' redigeres.\n" "Forandringer vil ikke tre i kraft, med mindre du laster inn pÃ¥ nytt." #: editor/dependency_editor.cpp +#, fuzzy msgid "" "Resource '%s' is in use.\n" -"Changes will take effect when reloaded." +"Changes will only take effect when reloaded." msgstr "" "Ressurs '%s' er i bruk.\n" "Endringer vil tre i kraft nÃ¥r den lastes inn pÃ¥ nytt." @@ -981,21 +1049,14 @@ msgid "Permanently delete %d item(s)? (No undo!)" msgstr "Slett %d elementer for godt? (kan ikke angres)" #: editor/dependency_editor.cpp -msgid "Owns" -msgstr "Eier" - -#: editor/dependency_editor.cpp -msgid "Resources Without Explicit Ownership:" -msgstr "Ressurser uten eksplisitt eierskap:" +#, fuzzy +msgid "Show Dependencies" +msgstr "Avhengigheter" #: editor/dependency_editor.cpp editor/editor_node.cpp msgid "Orphan Resource Explorer" msgstr "Foreldreløs ressursutforsker" -#: editor/dependency_editor.cpp -msgid "Delete selected files?" -msgstr "Slett valgte filer?" - #: editor/dependency_editor.cpp editor/editor_audio_buses.cpp #: editor/editor_file_dialog.cpp editor/editor_node.cpp #: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp @@ -1004,6 +1065,14 @@ msgstr "Slett valgte filer?" msgid "Delete" msgstr "Slett" +#: editor/dependency_editor.cpp +msgid "Owns" +msgstr "Eier" + +#: editor/dependency_editor.cpp +msgid "Resources Without Explicit Ownership:" +msgstr "Ressurser uten eksplisitt eierskap:" + #: editor/dictionary_property_edit.cpp #, fuzzy msgid "Change Dictionary Key" @@ -1120,7 +1189,7 @@ msgstr "Vellykket Installering av Pakke!" msgid "Success!" msgstr "Suksess!" -#: editor/editor_asset_installer.cpp +#: editor/editor_asset_installer.cpp editor/editor_node.cpp #: editor/plugins/asset_library_editor_plugin.cpp msgid "Install" msgstr "Installer" @@ -1247,8 +1316,13 @@ msgid "Open Audio Bus Layout" msgstr "Ã…pne Audio Bus oppsett" #: editor/editor_audio_buses.cpp -msgid "There is no 'res://default_bus_layout.tres' file." -msgstr "Det er ingen 'res://default_bus_layout.tres' fil." +msgid "There is no '%s' file." +msgstr "" + +#: editor/editor_audio_buses.cpp editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Layout" +msgstr "Layout" #: editor/editor_audio_buses.cpp msgid "Invalid file, not an audio bus layout." @@ -1302,21 +1376,28 @@ msgid "Valid characters:" msgstr "Gyldige karakterer:" #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing engine class name." +#, fuzzy +msgid "Must not collide with an existing engine class name." msgstr "" "Ugyldig navn. Kan ikke kollidere med et eksisterende engine class navn." #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing buit-in type name." +#, fuzzy +msgid "Must not collide with an existing buit-in type name." msgstr "" "Ugyldig navn. Kan ikke kollidere med et eksisterende innebygd type navn." #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing global constant name." +#, fuzzy +msgid "Must not collide with an existing global constant name." msgstr "" "Ugyldig navn. Kan ikke kollidere med et eksisterende global constant navn." #: editor/editor_autoload_settings.cpp +msgid "Keyword cannot be used as an autoload name." +msgstr "" + +#: editor/editor_autoload_settings.cpp msgid "Autoload '%s' already exists!" msgstr "Autoload '%s' eksisterer allerede!" @@ -1344,11 +1425,12 @@ msgstr "Aktiver" msgid "Rearrange Autoloads" msgstr "Omorganiser Autoloads" -#: editor/editor_autoload_settings.cpp -msgid "Invalid Path." +#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp +#, fuzzy +msgid "Invalid path." msgstr "Ugyldig Filsti." -#: editor/editor_autoload_settings.cpp +#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp msgid "File does not exist." msgstr "Fil eksisterer ikke." @@ -1399,7 +1481,8 @@ msgid "[unsaved]" msgstr "[ulagret]" #: editor/editor_dir_dialog.cpp -msgid "Please select a base directory first" +#, fuzzy +msgid "Please select a base directory first." msgstr "Venligst velg en basemappe først" #: editor/editor_dir_dialog.cpp @@ -1407,7 +1490,8 @@ msgid "Choose a Directory" msgstr "Velg en Mappe" #: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp -#: editor/filesystem_dock.cpp scene/gui/file_dialog.cpp +#: editor/filesystem_dock.cpp editor/project_manager.cpp +#: scene/gui/file_dialog.cpp msgid "Create Folder" msgstr "Lag mappe" @@ -1445,12 +1529,16 @@ msgid "" "Target platform requires 'ETC' texture compression for GLES2. Enable 'Import " "Etc' in Project Settings." msgstr "" +"MÃ¥lplatform krever 'ETC' teksturkomprimering for GLES2. Aktiver 'Importer " +"Etc' i Prosjektinnstillinger." #: editor/editor_export.cpp msgid "" "Target platform requires 'ETC2' texture compression for GLES3. Enable " "'Import Etc 2' in Project Settings." msgstr "" +"MÃ¥lplatform krever 'ETC' teksturkomprimering for GLES3. Aktiver 'Importer " +"Etc 2' i Prosjektinnstillinger." #: editor/editor_export.cpp msgid "" @@ -1459,6 +1547,10 @@ msgid "" "Enable 'Import Etc' in Project Settings, or disable 'Driver Fallback " "Enabled'." msgstr "" +"MÃ¥lplatform krever 'ETC' teksturkomprimering for drivertilbakefallet til " +"GLES2.\n" +"Aktiver 'Importer Etc' i Prosjektinnstillinger, eller deaktiver " +"'Drivertilbakefall Aktivert'." #: editor/editor_export.cpp platform/android/export/export.cpp #: platform/iphone/export/export.cpp platform/javascript/export/export.cpp @@ -1478,6 +1570,176 @@ msgstr "Tilpasset utgivelsesmal ikke funnet." msgid "Template file not found:" msgstr "Malfil ble ikke funnet:" +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "3D Editor" +msgstr "Redigeringsverktøy" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Script Editor" +msgstr "Ã…pne SkriptEditor" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Asset Library" +msgstr "Ã…pne Assets-Bibliotek" + +#: editor/editor_feature_profile.cpp +msgid "Scene Tree Editing" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Import Dock" +msgstr "Importer" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Node Dock" +msgstr "Flytt Modus" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Filesystem Dock" +msgstr "FilSystem" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Erase profile '%s'? (no undo)" +msgstr "Erstatt Alle" + +#: editor/editor_feature_profile.cpp +msgid "Profile must be a valid filename and must not contain '.'" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Profile with this name already exists." +msgstr "En fil eller mappe med dette navnet eksisterer allerede." + +#: editor/editor_feature_profile.cpp +msgid "(Editor Disabled, Properties Disabled)" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "(Properties Disabled)" +msgstr "Egenskaper" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "(Editor Disabled)" +msgstr "AvslÃ¥tt" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Class Options:" +msgstr "Beskrivelse:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enable Contextual Editor" +msgstr "Ã…pne den neste Editoren" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enabled Properties:" +msgstr "Egenskaper:" + +#: editor/editor_feature_profile.cpp +msgid "Enabled Features:" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enabled Classes:" +msgstr "Søk i klasser" + +#: editor/editor_feature_profile.cpp +msgid "File '%s' format is invalid, import aborted." +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "" +"Profile '%s' already exists. Remote it first before importing, import " +"aborted." +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Error saving profile to path: '%s'." +msgstr "Error ved lagring av TileSet!" + +#: editor/editor_feature_profile.cpp +msgid "Unset" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Current Profile" +msgstr "Gjeldende Versjon:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Make Current" +msgstr "Gjeldende:" + +#: editor/editor_feature_profile.cpp +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "New" +msgstr "Ny" + +#: editor/editor_feature_profile.cpp editor/editor_node.cpp +#: editor/plugins/asset_library_editor_plugin.cpp editor/project_manager.cpp +msgid "Import" +msgstr "Importer" + +#: editor/editor_feature_profile.cpp editor/editor_node.cpp +#: editor/project_export.cpp +msgid "Export" +msgstr "Eksporter" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Available Profiles" +msgstr "Tilgjengelige Noder:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enabled Classes" +msgstr "Søk i klasser" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Class Options" +msgstr "Beskrivelse" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "New profile name:" +msgstr "Nytt navn:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Erase Profile" +msgstr "Høyreklikk: Slett Punkt." + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Import Profile(s)" +msgstr "%d flere filer" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Export Profile" +msgstr "Eksporter Prosjekt" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Manage Editor Feature Profiles" +msgstr "HÃ¥ndter Eksportmaler" + #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Select Current Folder" msgstr "Velg Gjeldende Mappe" @@ -1500,8 +1762,8 @@ msgstr "Kopier Sti" msgid "Open in File Manager" msgstr "Vis I Filutforsker" -#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp -#: editor/project_manager.cpp +#: editor/editor_file_dialog.cpp editor/editor_node.cpp +#: editor/filesystem_dock.cpp editor/project_manager.cpp #, fuzzy msgid "Show in File Manager" msgstr "Vis I Filutforsker" @@ -1561,7 +1823,7 @@ msgstr "GÃ¥ framover" msgid "Go Up" msgstr "GÃ¥ oppover" -#: editor/editor_file_dialog.cpp +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Toggle Hidden Files" msgstr "Veksle visning av skjulte filer" @@ -1595,8 +1857,9 @@ msgstr "Forrige fane" msgid "Next Folder" msgstr "Lag mappe" -#: editor/editor_file_dialog.cpp -msgid "Go to parent folder" +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp +#, fuzzy +msgid "Go to parent folder." msgstr "GÃ¥ til overnevnt mappe" #: editor/editor_file_dialog.cpp @@ -1604,6 +1867,11 @@ msgstr "GÃ¥ til overnevnt mappe" msgid "(Un)favorite current folder." msgstr "Kunne ikke opprette mappe." +#: editor/editor_file_dialog.cpp +#, fuzzy +msgid "Toggle visibility of hidden files." +msgstr "Veksle visning av skjulte filer" + #: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp #, fuzzy msgid "View items as a grid of thumbnails." @@ -1620,6 +1888,7 @@ msgstr "Mapper og Filer:" #: editor/editor_file_dialog.cpp editor/plugins/sprite_editor_plugin.cpp #: editor/plugins/style_box_editor_plugin.cpp +#: editor/plugins/theme_editor_plugin.cpp msgid "Preview:" msgstr "ForhÃ¥ndsvisning:" @@ -1636,6 +1905,12 @@ msgid "ScanSources" msgstr "SkannKilder" #: editor/editor_file_system.cpp +msgid "" +"There are multiple importers for different types pointing to file %s, import " +"aborted" +msgstr "" + +#: editor/editor_file_system.cpp msgid "(Re)Importing Assets" msgstr "(Re)Importerer Assets" @@ -1837,6 +2112,11 @@ msgstr "Sett Mange:" msgid "Output:" msgstr "Output:" +#: editor/editor_log.cpp editor/plugins/tile_map_editor_plugin.cpp +#, fuzzy +msgid "Copy Selection" +msgstr "Fjern Utvalg" + #: editor/editor_log.cpp editor/editor_profiler.cpp #: editor/editor_properties.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp @@ -1857,7 +2137,7 @@ msgstr "Eksport av prosjektet mislyktes med feilkode %d." #: editor/editor_node.cpp msgid "Imported resources can't be saved." -msgstr "" +msgstr "Importerte ressurser kan ikke lagres." #: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp #: scene/gui/dialogs.cpp @@ -1873,6 +2153,8 @@ msgid "" "This resource can't be saved because it does not belong to the edited scene. " "Make it unique first." msgstr "" +"Denne ressursen kan ikke lagres fordi den hører ikke til den redigerte " +"scenen. Gjør den unik først." #: editor/editor_node.cpp editor/plugins/animation_player_editor_plugin.cpp msgid "Save Resource As..." @@ -1992,9 +2274,10 @@ msgstr "" "arbeidsflyten." #: editor/editor_node.cpp +#, fuzzy msgid "" "This resource belongs to a scene that was instanced or inherited.\n" -"Changes to it will not be kept when saving the current scene." +"Changes to it won't be kept when saving the current scene." msgstr "" "Denne ressursen tilhører en scene som ble instansert eller arvet.\n" "Endringer vil ikke bli beholdt ved lagring av scenen." @@ -2008,8 +2291,9 @@ msgstr "" "innstillingene i import-panelet og importer deretter pÃ¥ nytt." #: editor/editor_node.cpp +#, fuzzy msgid "" -"This scene was imported, so changes to it will not be kept.\n" +"This scene was imported, so changes to it won't be kept.\n" "Instancing it or inheriting will allow making changes to it.\n" "Please read the documentation relevant to importing scenes to better " "understand this workflow." @@ -2020,8 +2304,9 @@ msgstr "" "forstÃ¥ denne arbeidsflyten." #: editor/editor_node.cpp +#, fuzzy msgid "" -"This is a remote object so changes to it will not be kept.\n" +"This is a remote object, so changes to it won't be kept.\n" "Please read the documentation relevant to debugging to better understand " "this workflow." msgstr "" @@ -2034,36 +2319,6 @@ msgid "There is no defined scene to run." msgstr "Det er ingen definert scene Ã¥ kjøre." #: editor/editor_node.cpp -msgid "" -"No main scene has ever been defined, select one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" -"Ingen hovedscene har blitt definert, velg en?\n" -"Du kan endre dette senere under \"Prosjekt Innstilliner\" i kategorien " -"'applikasjon'." - -#: editor/editor_node.cpp -msgid "" -"Selected scene '%s' does not exist, select a valid one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" -"Den valgte scenen '%s' finnes ikke. Vil du velge en gyldig scene?\n" -"Du kan endre dette senere i \"Prosjektinnstillinger\" under kategorien " -"'applikasjon'." - -#: editor/editor_node.cpp -msgid "" -"Selected scene '%s' is not a scene file, select a valid one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" -"Valgte scene '%s' er ikke en scenefil, velg en gyldig én?\n" -"Du kan endre dette senere i \"Prosjekt Instillinger\" under 'applikasjon' " -"kategorien." - -#: editor/editor_node.cpp msgid "Current scene was never saved, please save it prior to running." msgstr "Gjeldende scene ble aldri lagret, vennligst lagre før kjøring." @@ -2071,7 +2326,7 @@ msgstr "Gjeldende scene ble aldri lagret, vennligst lagre før kjøring." msgid "Could not start subprocess!" msgstr "Kunne ikke starta subprosess!" -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/filesystem_dock.cpp msgid "Open Scene" msgstr "Ã…pne Scene" @@ -2080,6 +2335,11 @@ msgid "Open Base Scene" msgstr "Ã…pne Base Scene" #: editor/editor_node.cpp +#, fuzzy +msgid "Quick Open..." +msgstr "HurtigÃ¥pne Scene..." + +#: editor/editor_node.cpp msgid "Quick Open Scene..." msgstr "HurtigÃ¥pne Scene..." @@ -2102,7 +2362,7 @@ msgstr "Kunne ikke laste ressurs." #: editor/editor_node.cpp msgid "A root node is required to save the scene." -msgstr "" +msgstr "En rotnode kreves for Ã¥ lagre scenen." #: editor/editor_node.cpp msgid "Save Scene As..." @@ -2255,6 +2515,36 @@ msgid "Clear Recent Scenes" msgstr "Fjern Nylige Scener" #: editor/editor_node.cpp +msgid "" +"No main scene has ever been defined, select one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" +"Ingen hovedscene har blitt definert, velg en?\n" +"Du kan endre dette senere under \"Prosjekt Innstilliner\" i kategorien " +"'applikasjon'." + +#: editor/editor_node.cpp +msgid "" +"Selected scene '%s' does not exist, select a valid one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" +"Den valgte scenen '%s' finnes ikke. Vil du velge en gyldig scene?\n" +"Du kan endre dette senere i \"Prosjektinnstillinger\" under kategorien " +"'applikasjon'." + +#: editor/editor_node.cpp +msgid "" +"Selected scene '%s' is not a scene file, select a valid one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" +"Valgte scene '%s' er ikke en scenefil, velg en gyldig én?\n" +"Du kan endre dette senere i \"Prosjekt Instillinger\" under 'applikasjon' " +"kategorien." + +#: editor/editor_node.cpp msgid "Save Layout" msgstr "Lagre Layout" @@ -2283,6 +2573,19 @@ msgstr "Spill Scene" msgid "Close Tab" msgstr "Lukk Andre Faner" +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +msgid "Close Other Tabs" +msgstr "Lukk Andre Faner" + +#: editor/editor_node.cpp +msgid "Close Tabs to the Right" +msgstr "" + +#: editor/editor_node.cpp +#, fuzzy +msgid "Close All Tabs" +msgstr "Lukk Alle" + #: editor/editor_node.cpp msgid "Switch Scene Tab" msgstr "Bytt Scenefane" @@ -2407,10 +2710,6 @@ msgstr "Prosjekt" msgid "Project Settings" msgstr "Prosjektinnstillinger" -#: editor/editor_node.cpp editor/project_export.cpp -msgid "Export" -msgstr "Eksporter" - #: editor/editor_node.cpp editor/plugins/tile_set_editor_plugin.cpp msgid "Tools" msgstr "Verktøy" @@ -2421,6 +2720,10 @@ msgid "Open Project Data Folder" msgstr "Ã…pne ProsjektManager?" #: editor/editor_node.cpp +msgid "Install Android Build Template" +msgstr "" + +#: editor/editor_node.cpp msgid "Quit to Project List" msgstr "Avslutt til Prosjektliste" @@ -2544,13 +2847,18 @@ msgstr "Redigeringsverktøy-instillinger" #: editor/editor_node.cpp msgid "Open Editor Data Folder" -msgstr "" +msgstr "Ã…pne Redigererdatamappen" #: editor/editor_node.cpp #, fuzzy msgid "Open Editor Settings Folder" msgstr "Redigeringsverktøy-instillinger" +#: editor/editor_node.cpp +#, fuzzy +msgid "Manage Editor Features" +msgstr "HÃ¥ndter Eksportmaler" + #: editor/editor_node.cpp editor/project_export.cpp #, fuzzy msgid "Manage Export Templates" @@ -2564,6 +2872,7 @@ msgstr "Hjelp" #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp #: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp #: editor/project_settings_editor.cpp editor/rename_dialog.cpp msgid "Search" msgstr "Søk" @@ -2656,11 +2965,6 @@ msgstr "Oppdater Endringer" msgid "Disable Update Spinner" msgstr "Deaktiver Oppdateringsspinner" -#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp -#: editor/project_manager.cpp -msgid "Import" -msgstr "Importer" - #: editor/editor_node.cpp msgid "FileSystem" msgstr "FilSystem" @@ -2687,6 +2991,28 @@ msgid "Don't Save" msgstr "Ikke Lagre" #: editor/editor_node.cpp +msgid "Android build template is missing, please install relevant templates." +msgstr "" + +#: editor/editor_node.cpp +#, fuzzy +msgid "Manage Templates" +msgstr "HÃ¥ndter Eksportmaler" + +#: editor/editor_node.cpp +msgid "" +"This will install the Android project for custom builds.\n" +"Note that, in order to use it, it needs to be enabled per export preset." +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"Android build template is already installed and it won't be overwritten.\n" +"Remove the \"build\" directory manually before attempting this operation " +"again." +msgstr "" + +#: editor/editor_node.cpp msgid "Import Templates From ZIP File" msgstr "Importer Mal Fra ZIP-Fil" @@ -2814,10 +3140,6 @@ msgid "Physics Frame %" msgstr "Fysikk-Frame %" #: editor/editor_profiler.cpp -msgid "Time:" -msgstr "Tid:" - -#: editor/editor_profiler.cpp msgid "Inclusive" msgstr "Inklusiv" @@ -2958,16 +3280,12 @@ msgstr "Nytt navn:" #: editor/editor_properties_array_dict.cpp msgid "Add Key/Value Pair" -msgstr "" +msgstr "Legg Til Nøkkel/Verdi Par" #: editor/editor_properties_array_dict.cpp #: editor/plugins/theme_editor_plugin.cpp msgid "Remove Item" -msgstr "" - -#: editor/editor_run_native.cpp -msgid "Select device from the list" -msgstr "Velg enhet fra listen" +msgstr "Fjern Gjenstand" #: editor/editor_run_native.cpp msgid "" @@ -3005,6 +3323,10 @@ msgstr "Glemte du '_run'-metoden?" msgid "Select Node(s) to Import" msgstr "Velg Node(r) for Importering" +#: editor/editor_sub_scene.cpp editor/project_manager.cpp +msgid "Browse" +msgstr "" + #: editor/editor_sub_scene.cpp msgid "Scene Path:" msgstr "Scene-Sti:" @@ -3178,6 +3500,11 @@ msgid "SSL Handshake Error" msgstr "SSL Handshake Error" #: editor/export_template_manager.cpp +#, fuzzy +msgid "Uncompressing Android Build Sources" +msgstr "Dekomprimerer Ressurser" + +#: editor/export_template_manager.cpp msgid "Current Version:" msgstr "Gjeldende Versjon:" @@ -3194,7 +3521,8 @@ msgid "Remove Template" msgstr "Fjern Mal" #: editor/export_template_manager.cpp -msgid "Select template file" +#, fuzzy +msgid "Select Template File" msgstr "Velg malfil" #: editor/export_template_manager.cpp @@ -3263,7 +3591,8 @@ msgid "No name provided." msgstr "Ingen navn gitt." #: editor/filesystem_dock.cpp -msgid "Provided name contains invalid characters" +#, fuzzy +msgid "Provided name contains invalid characters." msgstr "Gitt navn inneholder ugyldige tegn" #: editor/filesystem_dock.cpp @@ -3294,7 +3623,12 @@ msgstr "Ender mappenavn:" #: editor/filesystem_dock.cpp #, fuzzy -msgid "Open Scene(s)" +msgid "New Inherited Scene" +msgstr "Ny Arvet Scene..." + +#: editor/filesystem_dock.cpp +#, fuzzy +msgid "Open Scenes" msgstr "Ã…pne Scene" #: editor/filesystem_dock.cpp @@ -3303,12 +3637,12 @@ msgstr "Instans" #: editor/filesystem_dock.cpp #, fuzzy -msgid "Add to favorites" +msgid "Add to Favorites" msgstr "Favoritter:" #: editor/filesystem_dock.cpp #, fuzzy -msgid "Remove from favorites" +msgid "Remove from Favorites" msgstr "Fjern fra Gruppe" #: editor/filesystem_dock.cpp @@ -3342,12 +3676,14 @@ msgstr "HurtigÃ¥pne Skript..." msgid "New Resource..." msgstr "Lagre Ressurs Som..." -#: editor/filesystem_dock.cpp editor/script_editor_debugger.cpp +#: editor/filesystem_dock.cpp editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_editor_debugger.cpp #, fuzzy msgid "Expand All" msgstr "Utvid alle" -#: editor/filesystem_dock.cpp editor/script_editor_debugger.cpp +#: editor/filesystem_dock.cpp editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_editor_debugger.cpp #, fuzzy msgid "Collapse All" msgstr "Kollaps alle" @@ -3360,12 +3696,14 @@ msgid "Rename" msgstr "Endre navn" #: editor/filesystem_dock.cpp -msgid "Previous Directory" -msgstr "Forrige Katalog" +#, fuzzy +msgid "Previous Folder/File" +msgstr "Forrige fane" #: editor/filesystem_dock.cpp -msgid "Next Directory" -msgstr "Neste Katalog" +#, fuzzy +msgid "Next Folder/File" +msgstr "Lag mappe" #: editor/filesystem_dock.cpp msgid "Re-Scan Filesystem" @@ -3373,7 +3711,7 @@ msgstr "Re-Skann Filsystem" #: editor/filesystem_dock.cpp #, fuzzy -msgid "Toggle split mode" +msgid "Toggle Split Mode" msgstr "Veksle modus" #: editor/filesystem_dock.cpp @@ -3400,13 +3738,13 @@ msgstr "En fil eller mappe med dette navnet eksisterer allerede." #: editor/filesystem_dock.cpp msgid "Overwrite" -msgstr "" +msgstr "Overskriv" #: editor/filesystem_dock.cpp editor/plugins/script_editor_plugin.cpp msgid "Create Script" msgstr "Opprett skript" -#: editor/find_in_files.cpp +#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp #, fuzzy msgid "Find in Files" msgstr "%d flere filer" @@ -3426,6 +3764,12 @@ msgstr "Lag mappe" msgid "Filters:" msgstr "Lim inn Noder" +#: editor/find_in_files.cpp +msgid "" +"Include the files with the following extensions. Add or remove them in " +"ProjectSettings." +msgstr "" + #: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp msgid "Find..." @@ -3557,7 +3901,7 @@ msgstr "Importerer Scene..." #: editor/import/resource_importer_scene.cpp msgid "Generating Lightmaps" -msgstr "" +msgstr "Genererer Lyskart" #: editor/import/resource_importer_scene.cpp msgid "Generating for Mesh: " @@ -3611,16 +3955,19 @@ msgstr "Reimporter" #: editor/import_dock.cpp msgid "Save scenes, re-import and restart" -msgstr "" +msgstr "Lagre scener, om-importer og start om" #: editor/import_dock.cpp msgid "Changing the type of an imported file requires editor restart." -msgstr "" +msgstr "Ã… endre typen av en importert fil krever omstart av redigereren" #: editor/import_dock.cpp +#, fuzzy msgid "" "WARNING: Assets exist that use this resource, they may stop loading properly." msgstr "" +"ADVARSEL: ___ eksister som bruker denne ressursen, det kan hende de ikke " +"laster inn riktig." #: editor/inspector_dock.cpp msgid "Failed to load resource." @@ -3733,7 +4080,7 @@ msgstr "Plugins" #: editor/plugin_config_dialog.cpp msgid "Subfolder:" -msgstr "" +msgstr "Undermappe:" #: editor/plugin_config_dialog.cpp msgid "Language:" @@ -3834,7 +4181,7 @@ msgstr "Endre Blend-Tid" #: editor/plugins/animation_blend_space_2d_editor.cpp #: editor/plugins/animation_state_machine_editor.cpp msgid "This type of node can't be used. Only root nodes are allowed." -msgstr "" +msgstr "Denne typen node kan ikke bli brukt. Kun rotnoder er tillatt." #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp @@ -3855,7 +4202,7 @@ msgstr "Fjern Stipunkt" #: editor/plugins/animation_blend_space_1d_editor.cpp msgid "Move BlendSpace1D Node Point" -msgstr "" +msgstr "Flytt BlendSpace1D Nodepunkt" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp @@ -3874,7 +4221,7 @@ msgstr "" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp msgid "Select and move points, create points with RMB." -msgstr "" +msgstr "Velg og flytt punkt, lag punkt med høyre museklikk." #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp scene/gui/graph_edit.cpp @@ -3897,7 +4244,7 @@ msgstr "Animasjonsnode" #: editor/plugins/animation_blend_space_2d_editor.cpp #, fuzzy -msgid "Triangle already exists" +msgid "Triangle already exists." msgstr "ERROR: Animasjonsnavnet finnes allerede!" #: editor/plugins/animation_blend_space_2d_editor.cpp @@ -3981,7 +4328,6 @@ msgid "Node Moved" msgstr "Flytt Modus" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Unable to connect, port may be in use or connection may be invalid." msgstr "" @@ -4056,8 +4402,9 @@ msgid "Edit Filtered Tracks:" msgstr "Rediger Filtre" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -msgid "Enable filtering" -msgstr "" +#, fuzzy +msgid "Enable Filtering" +msgstr "Endre Anim Lengde" #: editor/plugins/animation_player_editor_plugin.cpp #, fuzzy @@ -4178,10 +4525,6 @@ msgid "Animation" msgstr "Animasjon" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "New" -msgstr "Ny" - -#: editor/plugins/animation_player_editor_plugin.cpp #, fuzzy msgid "Edit Transitions..." msgstr "Overganger" @@ -4201,14 +4544,15 @@ msgid "Autoplay on Load" msgstr "Autoavspill ved Lasting" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Onion Skinning" -msgstr "Løk-lag" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Enable Onion Skinning" msgstr "Aktiver Løk-Lag" #: editor/plugins/animation_player_editor_plugin.cpp +#, fuzzy +msgid "Onion Skinning Options" +msgstr "Løk-lag" + +#: editor/plugins/animation_player_editor_plugin.cpp msgid "Directions" msgstr "Retninger" @@ -4778,13 +5122,19 @@ msgid "Move CanvasItem" msgstr "Endre CanvasItem" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"Children of containers have their anchors and margins values overridden by " +"their parent." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Presets for the anchors and margins values of a Control node." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "" -"Children of containers have their anchors and margins values overridden by " -"their parent." +"When active, moving Control nodes changes their anchors instead of their " +"margins." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4800,10 +5150,52 @@ msgid "Change Anchors" msgstr "Endre Anker" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Lock Selected" +msgstr "Slett Valgte" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Unlock Selected" +msgstr "Slett Valgte" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Group Selected" +msgstr "Fjern Utvalg" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Ungroup Selected" +msgstr "Fjern Utvalg" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Paste Pose" msgstr "Lim Inn Pose" #: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Create Custom Bone(s) from Node(s)" +msgstr "Fjern Ben" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Clear Bones" +msgstr "Fjern Pose" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Make IK Chain" +msgstr "Lag IK Kjede" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Clear IK Chain" +msgstr "Fjern IK Kjede" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "" "Warning: Children of a container get their position and size determined only " "by their parent." @@ -4883,7 +5275,8 @@ msgid "Snapping Options" msgstr "Snapping innstillinger" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to grid" +#, fuzzy +msgid "Snap to Grid" msgstr "Snap til rutenett" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4905,32 +5298,37 @@ msgstr "Bruk Piksel Snap" #: editor/plugins/canvas_item_editor_plugin.cpp #, fuzzy -msgid "Smart snapping" +msgid "Smart Snapping" msgstr "Smart snapping" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to parent" +#, fuzzy +msgid "Snap to Parent" msgstr "Snap til foreldre" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node anchor" +#, fuzzy +msgid "Snap to Node Anchor" msgstr "Snap til nodeanker" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node sides" +#, fuzzy +msgid "Snap to Node Sides" msgstr "Snap til nodesider" #: editor/plugins/canvas_item_editor_plugin.cpp #, fuzzy -msgid "Snap to node center" +msgid "Snap to Node Center" msgstr "Snap til nodeanker" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to other nodes" +#, fuzzy +msgid "Snap to Other Nodes" msgstr "Snap til andre noder" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to guides" +#, fuzzy +msgid "Snap to Guides" msgstr "Snap til veiledere" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4944,10 +5342,12 @@ msgid "Unlock the selected object (can be moved)." msgstr "LÃ¥s opp det valgte objektet (kan flyttes)." #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Makes sure the object's children are not selectable." msgstr "Vær sikker at objektets barn ikke er valgbar." #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Restores the object's children's ability to be selected." msgstr "Gjenopprett objektets barn sin mulighet for Ã¥ bli valgt." @@ -4961,14 +5361,6 @@ msgid "Show Bones" msgstr "Vis Ben" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Make IK Chain" -msgstr "Lag IK Kjede" - -#: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Clear IK Chain" -msgstr "Fjern IK Kjede" - -#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Make Custom Bone(s) from Node(s)" msgstr "" @@ -5023,9 +5415,8 @@ msgid "Frame Selection" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy -msgid "Layout" -msgstr "Layout" +msgid "Preview Canvas Scale" +msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Translation mask for inserting keys." @@ -5078,6 +5469,11 @@ msgid "Divide grid step by 2" msgstr "Del rutenett-steg med 2" #: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Pan View" +msgstr "Bakvisning" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Add %s" msgstr "Legg til %s" @@ -5100,7 +5496,8 @@ msgid "Error instancing scene from %s" msgstr "Error ved instansiering av scene fra %s" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Change default type" +#, fuzzy +msgid "Change Default Type" msgstr "Endre standard type" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -5192,21 +5589,21 @@ msgstr "" #: editor/plugins/curve_editor_plugin.cpp #, fuzzy -msgid "Flat0" +msgid "Flat 0" msgstr "Flat0" #: editor/plugins/curve_editor_plugin.cpp #, fuzzy -msgid "Flat1" +msgid "Flat 1" msgstr "Flat1" -#: editor/plugins/curve_editor_plugin.cpp -msgid "Ease in" -msgstr "Gli inn" +#: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp +msgid "Ease In" +msgstr "" -#: editor/plugins/curve_editor_plugin.cpp -msgid "Ease out" -msgstr "Gli ut" +#: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp +msgid "Ease Out" +msgstr "" #: editor/plugins/curve_editor_plugin.cpp msgid "Smoothstep" @@ -5225,24 +5622,29 @@ msgid "Load Curve Preset" msgstr "" #: editor/plugins/curve_editor_plugin.cpp -msgid "Add point" +#, fuzzy +msgid "Add Point" msgstr "Legg til punkt" #: editor/plugins/curve_editor_plugin.cpp -msgid "Remove point" +#, fuzzy +msgid "Remove Point" msgstr "Fjern punkt" #: editor/plugins/curve_editor_plugin.cpp -msgid "Left linear" +#, fuzzy +msgid "Left Linear" msgstr "Venstrelineær" #: editor/plugins/curve_editor_plugin.cpp -msgid "Right linear" +#, fuzzy +msgid "Right Linear" msgstr "Høyrelineær" #: editor/plugins/curve_editor_plugin.cpp -msgid "Load preset" -msgstr "" +#, fuzzy +msgid "Load Preset" +msgstr "Last Ressurs" #: editor/plugins/curve_editor_plugin.cpp msgid "Remove Curve Point" @@ -5297,14 +5699,19 @@ msgid "This doesn't work on scene root!" msgstr "Dette virker ikke pÃ¥ sceneroten!" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Trimesh Shape" +msgid "Create Trimesh Static Shape" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Shape" +msgid "Failed creating shapes!" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp +#, fuzzy +msgid "Create Convex Shape(s)" +msgstr "Lag ny %s" + +#: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Navigation Mesh" msgstr "" @@ -5354,16 +5761,13 @@ msgid "Create Trimesh Static Body" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Static Body" -msgstr "" - -#: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Trimesh Collision Sibling" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Collision Sibling" -msgstr "" +#, fuzzy +msgid "Create Convex Collision Sibling(s)" +msgstr "Lag Poly" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Outline Mesh..." @@ -5518,6 +5922,12 @@ msgid "Create Navigation Polygon" msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp +#: editor/plugins/particles_editor_plugin.cpp +#, fuzzy +msgid "Convert to CPUParticles" +msgstr "Konverter til store versaler" + +#: editor/plugins/particles_2d_editor_plugin.cpp msgid "Generating Visibility Rect" msgstr "" @@ -5531,12 +5941,6 @@ msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp #: editor/plugins/particles_editor_plugin.cpp -#, fuzzy -msgid "Convert to CPUParticles" -msgstr "Konverter til store versaler" - -#: editor/plugins/particles_2d_editor_plugin.cpp -#: editor/plugins/particles_editor_plugin.cpp msgid "Generation Time (sec):" msgstr "" @@ -5676,7 +6080,7 @@ msgstr "Lukk Kurve" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp editor/plugins/theme_editor_plugin.cpp -#: editor/project_export.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_export.cpp msgid "Options" msgstr "Innstillinger" @@ -5732,7 +6136,7 @@ msgstr "Split Segment (i kurve)" #: editor/plugins/physical_bone_plugin.cpp #, fuzzy -msgid "Move joint" +msgid "Move Joint" msgstr "Flytt Punkt" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5984,7 +6388,6 @@ msgid "Open in Editor" msgstr "Ã…pne i Redigeringsverktøy" #: editor/plugins/resource_preloader_editor_plugin.cpp -#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Load Resource" msgstr "Last Ressurs" @@ -6090,6 +6493,11 @@ msgid "%s Class Reference" msgstr " Klassereferanse" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp +msgid "Find Next" +msgstr "Finn neste" + +#: editor/plugins/script_editor_plugin.cpp msgid "Toggle alphabetical sorting of the method list." msgstr "" @@ -6173,10 +6581,6 @@ msgstr "Lukk Dokumentasjon" msgid "Close All" msgstr "Lukk Alle" -#: editor/plugins/script_editor_plugin.cpp -msgid "Close Other Tabs" -msgstr "Lukk Andre Faner" - #: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp msgid "Run" msgstr "Kjør" @@ -6185,11 +6589,6 @@ msgstr "Kjør" msgid "Toggle Scripts Panel" msgstr "Veksle skriptpanel" -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/script_text_editor.cpp -msgid "Find Next" -msgstr "Finn neste" - #: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp msgid "Step Over" msgstr "Hopp Over" @@ -6217,7 +6616,8 @@ msgid "Debug with External Editor" msgstr "Feilrett med ekstern behandler" #: editor/plugins/script_editor_plugin.cpp -msgid "Open Godot online documentation" +#, fuzzy +msgid "Open Godot online documentation." msgstr "Ã…pne Godots nettbaserte dokumentasjon" #: editor/plugins/script_editor_plugin.cpp @@ -6225,7 +6625,7 @@ msgid "Request Docs" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Help improve the Godot documentation by giving feedback" +msgid "Help improve the Godot documentation by giving feedback." msgstr "" #: editor/plugins/script_editor_plugin.cpp @@ -6251,10 +6651,12 @@ msgid "" msgstr "" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp msgid "Reload" msgstr "Gjeninnlat" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp msgid "Resave" msgstr "Lagre pÃ¥ nytt" @@ -6269,6 +6671,31 @@ msgstr "Søk hjelp" #: editor/plugins/script_text_editor.cpp #, fuzzy +msgid "Connections to method:" +msgstr "Koble Til Node:" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Source" +msgstr "Ressurs" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Signal" +msgstr "Signaler" + +#: editor/plugins/script_text_editor.cpp +msgid "Target" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "" +"Missing connected method '%s' for signal '%s' from node '%s' to node '%s'." +msgstr "Koble '%s' fra '%s'" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy msgid "Line" msgstr "Linje:" @@ -6281,10 +6708,6 @@ msgstr "" msgid "Go to Function" msgstr "Fjern Funksjon" -#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp -msgid "Standard" -msgstr "" - #: editor/plugins/script_text_editor.cpp msgid "Only resources from filesystem can be dropped." msgstr "" @@ -6317,6 +6740,11 @@ msgstr "Store bokstaver" msgid "Syntax Highlighter" msgstr "" +#: editor/plugins/script_text_editor.cpp +#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp +msgid "Bookmarks" +msgstr "" + #: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" @@ -6346,6 +6774,26 @@ msgstr "Veksle kommentar" #: editor/plugins/script_text_editor.cpp #, fuzzy +msgid "Toggle Bookmark" +msgstr "Veksle kommentar" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Go to Next Bookmark" +msgstr "GÃ¥ til Neste Steg" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Go to Previous Bookmark" +msgstr "GÃ¥ til tidligere redigert dokument." + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Remove All Bookmarks" +msgstr "Fjern Funksjon" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy msgid "Fold/Unfold Line" msgstr "Slett Valgte" @@ -6426,6 +6874,12 @@ msgid "Contextual Help" msgstr "" #: editor/plugins/shader_editor_plugin.cpp +msgid "" +"This shader has been modified on on disk.\n" +"What action should be taken?" +msgstr "" + +#: editor/plugins/shader_editor_plugin.cpp msgid "Shader" msgstr "" @@ -6777,7 +7231,7 @@ msgid "Right View" msgstr "Høyrevisning" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Switch Perspective/Orthogonal view" +msgid "Switch Perspective/Orthogonal View" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp @@ -6818,12 +7272,14 @@ msgid "Toggle Freelook" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Transform" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Snap object to floor" -msgstr "" +#, fuzzy +msgid "Snap Object to Floor" +msgstr "Snap til rutenett" #: editor/plugins/spatial_editor_plugin.cpp msgid "Transform Dialog..." @@ -6967,38 +7423,38 @@ msgid "Invalid geometry, can't replace by mesh." msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Invalid geometry, can't create polygon." -msgstr "" +#, fuzzy +msgid "Convert to Mesh2D" +msgstr "Konverter til store versaler" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Invalid geometry, can't create collision polygon." +msgid "Invalid geometry, can't create polygon." msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Invalid geometry, can't create light occluder." -msgstr "" +#, fuzzy +msgid "Convert to Polygon2D" +msgstr "Flytt Polygon" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Sprite" +msgid "Invalid geometry, can't create collision polygon." msgstr "" #: editor/plugins/sprite_editor_plugin.cpp #, fuzzy -msgid "Convert to Mesh2D" -msgstr "Konverter til store versaler" +msgid "Create CollisionPolygon2D Sibling" +msgstr "Lag Poly" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy -msgid "Convert to Polygon2D" -msgstr "Flytt Polygon" +msgid "Invalid geometry, can't create light occluder." +msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy -msgid "Create CollisionPolygon2D Sibling" -msgstr "Lag Poly" +msgid "Create LightOccluder2D Sibling" +msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Create LightOccluder2D Sibling" +msgid "Sprite" msgstr "" #: editor/plugins/sprite_editor_plugin.cpp @@ -7020,7 +7476,12 @@ msgid "Settings:" msgstr "Redigeringsverktøy-instillinger" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "ERROR: Couldn't load frame resource!" +#, fuzzy +msgid "No Frames Selected" +msgstr "Slett Valgte" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Add %d Frame(s)" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp @@ -7028,6 +7489,10 @@ msgid "Add Frame" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "ERROR: Couldn't load frame resource!" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Resource clipboard is empty or not a texture!" msgstr "" @@ -7071,6 +7536,15 @@ msgid "Animation Frames:" msgstr "Animasjonsnavn:" #: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Add a Texture from File" +msgstr "Legg til node(r) fra tre" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Add Frames from a Sprite Sheet" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Insert Empty (Before)" msgstr "" @@ -7088,6 +7562,28 @@ msgid "Move (After)" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Select Frames" +msgstr "Velg Modus" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Horizontal:" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Vertical:" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Select/Clear All Frames" +msgstr "Velg Alle" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Create Frames from Sprite Sheet" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "SpriteFrames" msgstr "" @@ -7153,14 +7649,15 @@ msgstr "" msgid "Remove All Items" msgstr "" -#: editor/plugins/theme_editor_plugin.cpp +#: editor/plugins/theme_editor_plugin.cpp editor/project_manager.cpp #, fuzzy msgid "Remove All" msgstr "Fjern Funksjon" #: editor/plugins/theme_editor_plugin.cpp -msgid "Edit theme..." -msgstr "" +#, fuzzy +msgid "Edit Theme" +msgstr "Medlemmer" #: editor/plugins/theme_editor_plugin.cpp msgid "Theme editing menu." @@ -7187,18 +7684,25 @@ msgid "Create From Current Editor Theme" msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "CheckBox Radio1" -msgstr "" +#, fuzzy +msgid "Toggle Button" +msgstr "Museknapp" #: editor/plugins/theme_editor_plugin.cpp -msgid "CheckBox Radio2" -msgstr "" +#, fuzzy +msgid "Disabled Button" +msgstr "Deaktivert" #: editor/plugins/theme_editor_plugin.cpp msgid "Item" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Disabled Item" +msgstr "Deaktivert" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Check Item" msgstr "" @@ -7216,6 +7720,24 @@ msgid "Checked Radio Item" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +msgid "Named Sep." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Submenu" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Item 1" +msgstr "Element %d" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Item 2" +msgstr "Element %d" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Has" msgstr "" @@ -7225,8 +7747,8 @@ msgstr "" #: editor/plugins/theme_editor_plugin.cpp #, fuzzy -msgid "Has,Many,Options" -msgstr "Innstillinger" +msgid "Disabled LineEdit" +msgstr "Deaktivert" #: editor/plugins/theme_editor_plugin.cpp msgid "Tab 1" @@ -7241,6 +7763,20 @@ msgid "Tab 3" msgstr "Fane 3" #: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Editable Item" +msgstr "Rediger Variabel:" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Subtree" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Has,Many,Options" +msgstr "Innstillinger" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Data Type:" msgstr "" @@ -7275,6 +7811,7 @@ msgid "Fix Invalid Tiles" msgstr "Ugyldig navn." #: editor/plugins/tile_map_editor_plugin.cpp +#: modules/gridmap/grid_map_editor_plugin.cpp #, fuzzy msgid "Cut Selection" msgstr "Plasser Utvalg I Midten" @@ -7317,39 +7854,49 @@ msgid "Mirror Y" msgstr "Speil Y" #: editor/plugins/tile_map_editor_plugin.cpp +msgid "Disable Autotile" +msgstr "" + +#: editor/plugins/tile_map_editor_plugin.cpp +#, fuzzy +msgid "Enable Priority" +msgstr "Rediger Filtre" + +#: editor/plugins/tile_map_editor_plugin.cpp msgid "Paint Tile" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Pick Tile" +msgid "" +"Shift+RMB: Line Draw\n" +"Shift+Ctrl+RMB: Rectangle Paint" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy -msgid "Copy Selection" -msgstr "Fjern Utvalg" +msgid "Pick Tile" +msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp #, fuzzy -msgid "Rotate left" +msgid "Rotate Left" msgstr "Roter Modus" #: editor/plugins/tile_map_editor_plugin.cpp #, fuzzy -msgid "Rotate right" +msgid "Rotate Right" msgstr "Roter Polygon" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Flip horizontally" +msgid "Flip Horizontally" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Flip vertically" +msgid "Flip Vertically" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp #, fuzzy -msgid "Clear transform" +msgid "Clear Transform" msgstr "Anim Forandre Omforming" #: editor/plugins/tile_set_editor_plugin.cpp @@ -7389,6 +7936,46 @@ msgid "Select the previous shape, subtile, or Tile." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Region Mode" +msgstr "Roter Modus" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Collision Mode" +msgstr "Animasjonsnode" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Occlusion Mode" +msgstr "Rediger Poly" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Navigation Mode" +msgstr "Animasjonsnode" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Bitmask Mode" +msgstr "Roter Modus" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Priority Mode" +msgstr "Eksporter Prosjekt" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Icon Mode" +msgstr "Panorerings-Modus" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Z Index Mode" +msgstr "Panorerings-Modus" + +#: editor/plugins/tile_set_editor_plugin.cpp msgid "Copy bitmask." msgstr "" @@ -7478,6 +8065,7 @@ msgstr "Slett punkter" msgid "" "LMB: Set bit on.\n" "RMB: Set bit off.\n" +"Shift+LMB: Set wildcard bit.\n" "Click on another Tile to edit it." msgstr "Velg Gjeldende Mappe" @@ -7603,6 +8191,79 @@ msgid "TileSet" msgstr "TileSet..." #: 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 +" +msgstr "Legg til Input" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar" +msgstr "Skala:" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector" +msgstr "Inspektør" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Add input port" +msgstr "Legg til Input" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add output port" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change input port type" +msgstr "Endre standard type" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change output port type" +msgstr "Endre standard type" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change input port name" +msgstr "Anim Forandre Verdi" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change output port name" +msgstr "Anim Forandre Verdi" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Remove input port" +msgstr "Fjern punkt" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Remove output port" +msgstr "Fjern punkt" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Set expression" +msgstr "Gjeldende Versjon:" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Resize VisualShader node" +msgstr "Forandre" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Set Uniform Name" msgstr "" @@ -7643,6 +8304,851 @@ msgid "Light" msgstr "Høyre" #: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Create Shader Node" +msgstr "Lag Node" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Color function." +msgstr "Fjern Funksjon" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Color operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Grayscale function." +msgstr "Lag funksjon" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts HSV vector to RGB equivalent." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts RGB vector to HSV equivalent." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Sepia function." +msgstr "Lag funksjon" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Burn operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Darken operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Difference operator." +msgstr "Kun Forskjeller" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Dodge operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "HardLight operator" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Lighten operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Overlay operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Screen operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "SoftLight operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Color constant." +msgstr "Konstant" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Color uniform." +msgstr "Anim Forandre Omforming" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns an associated vector if the provided scalars are equal, greater or " +"less." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns an associated vector if the provided boolean value is true or false." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'camera' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'inv_camera' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'inv_projection' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'normal' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'projection' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'time' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'viewport_size' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'world' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'texture_pixel_size' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Input parameter." +msgstr "Snap til foreldre" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'binormal' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'fragcoord' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_coord' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_uv' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'side' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'tangent' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv2' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'vertex' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'view' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'albedo' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'attenuation' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'diffuse' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_color' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'roughness' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'specular' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'transmission' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'modelview' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_size' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'tangent' input parameter for vertex and fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_pass' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_coord' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_pixel_size' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_uv' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_alpha' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_height' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_uv' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_vec' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'normal' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'shadow_color' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'extra' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'projection' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'vertex' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'world' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'active' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'custom' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'custom_alpha' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'delta' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'emission_transform' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'index' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'lifetime' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'restart' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'time' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'transform' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'velocity' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar function." +msgstr "Skaler Utvalg" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Scalar operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "E constant (2.718282). Represents the base of the natural logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Epsilon constant (0.00001). Smallest possible scalar number." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Phi constant (1.618034). Golden ratio." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi/4 constant (0.785398) or 45 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi/2 constant (1.570796) or 90 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi constant (3.141593) or 180 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Tau constant (6.283185) or 360 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Sqrt2 constant (1.414214). Square root of 2." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the absolute value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-tangent of the parameters." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Finds the nearest integer that is greater than or equal to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Constrains a value to lie between two further values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts a quantity in radians to degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-e Exponential." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-2 Exponential." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Finds the nearest integer less than or equal to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Computes the fractional part of the argument." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the inverse of the square root of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Natural logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-2 logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the greater of two values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the lesser of two values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Linear interpolation between two scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the opposite value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 - scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns the value of the first parameter raised to the power of the second." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts a quantity in degrees to radians." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 / scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the nearest integer to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the nearest even integer to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Clamps the value between 0.0 and 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Extracts the sign of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the square root of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( scalar(edge0), scalar(edge1), scalar(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if x is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( scalar(edge), scalar(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the truncated value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Adds scalar to scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Divides scalar by scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies scalar by scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the remainder of the two scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Subtracts scalar from scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Scalar constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar uniform." +msgstr "Anim Forandre Omforming" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Perform the cubic texture lookup." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Perform the texture lookup." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Cubic texture uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "2D texture uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Transform function." +msgstr "Lag Poly" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) Calculate the outer product of a pair of vectors.\n" +"\n" +"OuterProduct treats the first parameter 'c' as a column vector (matrix with " +"one column) and the second parameter 'r' as a row vector (matrix with one " +"row) and does a linear algebraic matrix multiply 'c * r', yielding a matrix " +"whose number of rows is the number of components in 'c' and whose number of " +"columns is the number of components in 'r'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Composes transform from four vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Decomposes transform to four vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the determinant of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the inverse of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the transpose of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies transform by transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies vector by transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Transform constant." +msgstr "Lag Poly" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Transform uniform." +msgstr "Lag Poly" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector function." +msgstr "Fjern Funksjon" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Composes vector from three scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Decomposes vector to three scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the cross product of two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the distance between two points." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the dot product of two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns a vector that points in the same direction as a reference vector. " +"The function has three vector parameters : N, the vector to orient, I, the " +"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 "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the length of a vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Linear interpolation between two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the normalize product of vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 - vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 / vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns a vector that points in the direction of reflection ( a : incident " +"vector, b : normal vector )." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns a vector that points in the direction of refraction." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( vector(edge0), vector(edge1), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if 'x' is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( scalar(edge0), scalar(edge1), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if 'x' is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( vector(edge), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( scalar(edge), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Adds vector to vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Divides vector by vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies vector by vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the remainder of the two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Subtracts vector from vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Custom Godot Shader Language expression, with custom amount of input and " +"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 "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns falloff based on the dot product of surface normal and view " +"direction of camera (pass associated inputs to it)." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) (Fragment/Light mode only) Scalar derivative function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) (Fragment/Light mode only) Vector derivative function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Derivative in 'x' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Derivative in 'x' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Derivative in 'y' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Derivative in 'y' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Sum of absolute derivative " +"in 'x' and 'y'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Sum of absolute derivative " +"in 'x' and 'y'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "VisualShader" msgstr "" @@ -7838,6 +9344,10 @@ msgid "Directory already contains a Godot project." msgstr "" #: editor/project_manager.cpp +msgid "New Game Project" +msgstr "Nytt Spill-Prosjekt" + +#: editor/project_manager.cpp msgid "Imported Project" msgstr "" @@ -7888,10 +9398,6 @@ msgid "Rename Project" msgstr "Endre Navn pÃ¥ Prosjekt" #: editor/project_manager.cpp -msgid "New Game Project" -msgstr "Nytt Spill-Prosjekt" - -#: editor/project_manager.cpp msgid "Import Existing Project" msgstr "Importer Eksisterende Prosjekt" @@ -7921,10 +9427,6 @@ msgid "Project Name:" msgstr "Prosjektnavn:" #: editor/project_manager.cpp -msgid "Create folder" -msgstr "Opprett mappe" - -#: editor/project_manager.cpp msgid "Project Path:" msgstr "Prosjektsti:" @@ -7934,10 +9436,6 @@ msgid "Project Installation Path:" msgstr "Prosjektsti:" #: editor/project_manager.cpp -msgid "Browse" -msgstr "" - -#: editor/project_manager.cpp msgid "Renderer:" msgstr "" @@ -7991,8 +9489,8 @@ msgid "" "\n" "If you proceed with opening it, it will be converted to Godot's current " "configuration file format.\n" -"Warning: You will not be able to open the project with previous versions of " -"the engine anymore." +"Warning: You won't be able to open the project with previous versions of the " +"engine anymore." msgstr "" #: editor/project_manager.cpp @@ -8003,8 +9501,8 @@ msgid "" "%s\n" "\n" "Do you want to convert it?\n" -"Warning: You will not be able to open the project with previous versions of " -"the engine anymore." +"Warning: You won't be able to open the project with previous versions of the " +"engine anymore." msgstr "" #: editor/project_manager.cpp @@ -8014,11 +9512,15 @@ msgid "" msgstr "" #: editor/project_manager.cpp +#, fuzzy msgid "" "Can't run project: no main scene defined.\n" -"Please edit the project and set the main scene in \"Project Settings\" under " +"Please edit the project and set the main scene in the Project Settings under " "the \"Application\" category." msgstr "" +"Ingen hovedscene har blitt definert, velg en?\n" +"Du kan endre dette senere under \"Prosjekt Innstilliner\" i kategorien " +"'applikasjon'." #: editor/project_manager.cpp msgid "" @@ -8027,23 +9529,42 @@ msgid "" msgstr "" #: editor/project_manager.cpp -msgid "Are you sure to run more than one project?" +#, fuzzy +msgid "Are you sure to run %d projects at once?" msgstr "Er du sikker pÃ¥ at du vil kjøre mer enn ett prosjekt?" #: editor/project_manager.cpp -msgid "Remove project from the list? (Folder contents will not be modified)" +#, fuzzy +msgid "" +"Remove %d projects from the list?\n" +"The project folders' contents won't be modified." +msgstr "Fjern prosjekt fra listen? (Mappeinnhold vil ikke bli modifisert)" + +#: editor/project_manager.cpp +#, fuzzy +msgid "" +"Remove this project from the list?\n" +"The project folder's contents won't be modified." +msgstr "Fjern prosjekt fra listen? (Mappeinnhold vil ikke bli modifisert)" + +#: editor/project_manager.cpp +#, fuzzy +msgid "" +"Remove all missing projects from the list? (Folders contents will not be " +"modified)" msgstr "Fjern prosjekt fra listen? (Mappeinnhold vil ikke bli modifisert)" #: editor/project_manager.cpp msgid "" "Language changed.\n" -"The UI will update next time the editor or project manager starts." +"The interface will update after restarting the editor or project manager." msgstr "" #: editor/project_manager.cpp +#, fuzzy msgid "" -"You are about the scan %s folders for existing Godot projects. Do you " -"confirm?" +"Are you sure to scan %s folders for existing Godot projects?\n" +"This could take a while." msgstr "" "Du er i ferd med Ã¥ skanne %s mapper for eksisterende Godotprosjekter. " "Bekrefter du?" @@ -8069,6 +9590,11 @@ msgid "New Project" msgstr "Nytt Prosjekt" #: editor/project_manager.cpp +#, fuzzy +msgid "Remove Missing" +msgstr "Fjern punkt" + +#: editor/project_manager.cpp msgid "Templates" msgstr "" @@ -8086,8 +9612,8 @@ msgstr "Kan ikke kjøre prosjekt" #: editor/project_manager.cpp msgid "" -"You don't currently have any projects.\n" -"Would you like to explore the official example projects in the Asset Library?" +"You currently don't have any projects.\n" +"Would you like to explore official example projects in the Asset Library?" msgstr "" #: editor/project_settings_editor.cpp @@ -8113,8 +9639,9 @@ msgid "" msgstr "" #: editor/project_settings_editor.cpp -msgid "Action '%s' already exists!" -msgstr "" +#, fuzzy +msgid "An action with the name '%s' already exists." +msgstr "ERROR: Animasjonsnavnet finnes allerede!" #: editor/project_settings_editor.cpp msgid "Rename Input Action Event" @@ -8272,10 +9799,6 @@ msgid "" msgstr "" #: editor/project_settings_editor.cpp -msgid "Already existing" -msgstr "Eksisterer allerede" - -#: editor/project_settings_editor.cpp msgid "Add Input Action" msgstr "" @@ -8340,7 +9863,7 @@ msgid "Override For..." msgstr "" #: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp -msgid "Editor must be restarted for changes to take effect" +msgid "The editor must be restarted for changes to take effect." msgstr "" #: editor/project_settings_editor.cpp @@ -8401,12 +9924,14 @@ msgid "Locales Filter" msgstr "" #: editor/project_settings_editor.cpp -msgid "Show all locales" -msgstr "" +#, fuzzy +msgid "Show All Locales" +msgstr "Vis Ben" #: editor/project_settings_editor.cpp -msgid "Show only selected locales" -msgstr "" +#, fuzzy +msgid "Show Selected Locales Only" +msgstr "Kun Valgte" #: editor/project_settings_editor.cpp #, fuzzy @@ -8422,14 +9947,6 @@ msgid "AutoLoad" msgstr "" #: editor/property_editor.cpp -msgid "Ease In" -msgstr "" - -#: editor/property_editor.cpp -msgid "Ease Out" -msgstr "" - -#: editor/property_editor.cpp msgid "Zero" msgstr "" @@ -8506,7 +10023,7 @@ msgstr "" #: editor/rename_dialog.cpp #, fuzzy -msgid "Advanced options" +msgid "Advanced Options" msgstr "Snapping innstillinger" #: editor/rename_dialog.cpp @@ -8773,7 +10290,7 @@ msgstr "" #: editor/scene_tree_dock.cpp #, fuzzy -msgid "Custom Node" +msgid "Other Node" msgstr "Kutt Noder" #: editor/scene_tree_dock.cpp @@ -8817,7 +10334,7 @@ msgstr "" #: editor/scene_tree_dock.cpp #, fuzzy -msgid "Open documentation" +msgid "Open Documentation" msgstr "Ã…pne Godots nettbaserte dokumentasjon" #: editor/scene_tree_dock.cpp @@ -8846,7 +10363,7 @@ msgstr "" msgid "Save Branch as Scene" msgstr "" -#: editor/scene_tree_dock.cpp +#: editor/scene_tree_dock.cpp editor/script_editor_debugger.cpp #, fuzzy msgid "Copy Node Path" msgstr "Kopier Noder" @@ -8892,6 +10409,21 @@ msgid "Toggle Visible" msgstr "Veksle visning av skjulte filer" #: editor/scene_tree_editor.cpp +#, fuzzy +msgid "Unlock Node" +msgstr "Kutt Noder" + +#: editor/scene_tree_editor.cpp +#, fuzzy +msgid "Button Group" +msgstr "Legg til i Gruppe" + +#: editor/scene_tree_editor.cpp +#, fuzzy +msgid "(Connecting From)" +msgstr "Tilkoblingsfeil" + +#: editor/scene_tree_editor.cpp msgid "Node configuration warning:" msgstr "" @@ -8913,9 +10445,9 @@ msgid "" "Click to show groups dock." msgstr "" -#: editor/scene_tree_editor.cpp editor/script_create_dialog.cpp +#: editor/scene_tree_editor.cpp #, fuzzy -msgid "Open Script" +msgid "Open Script:" msgstr "Kjør Skript" #: editor/scene_tree_editor.cpp @@ -8961,91 +10493,102 @@ msgid "Select a Node" msgstr "" #: editor/script_create_dialog.cpp -msgid "Error loading template '%s'" -msgstr "" - -#: editor/script_create_dialog.cpp -msgid "Error - Could not create script in filesystem." -msgstr "" +#, fuzzy +msgid "Path is empty." +msgstr "Ressurs-utklippstavle er tom!" #: editor/script_create_dialog.cpp -msgid "Error loading script from %s" -msgstr "" +#, fuzzy +msgid "Filename is empty." +msgstr "Ressurs-utklippstavle er tom!" #: editor/script_create_dialog.cpp -msgid "N/A" -msgstr "" +#, fuzzy +msgid "Path is not local." +msgstr "Sti leder ikke Node!" #: editor/script_create_dialog.cpp #, fuzzy -msgid "Open Script/Choose Location" -msgstr "Ã…pne SkriptEditor" +msgid "Invalid base path." +msgstr "Ugyldig Filsti." #: editor/script_create_dialog.cpp -msgid "Path is empty" -msgstr "" +#, fuzzy +msgid "A directory with the same name exists." +msgstr "En fil eller mappe med dette navnet eksisterer allerede." #: editor/script_create_dialog.cpp #, fuzzy -msgid "Filename is empty" -msgstr "Ressurs-utklippstavle er tom!" +msgid "Invalid extension." +msgstr "MÃ¥ ha en gyldig filutvidelse." #: editor/script_create_dialog.cpp -msgid "Path is not local" +msgid "Wrong extension chosen." msgstr "" #: editor/script_create_dialog.cpp -msgid "Invalid base path" +msgid "Error loading template '%s'" msgstr "" #: editor/script_create_dialog.cpp -msgid "Directory of the same name exists" +msgid "Error - Could not create script in filesystem." msgstr "" #: editor/script_create_dialog.cpp -msgid "File exists, will be reused" +msgid "Error loading script from %s" msgstr "" #: editor/script_create_dialog.cpp -msgid "Invalid extension" +msgid "N/A" msgstr "" #: editor/script_create_dialog.cpp -msgid "Wrong extension chosen" -msgstr "" +#, fuzzy +msgid "Open Script / Choose Location" +msgstr "Ã…pne SkriptEditor" #: editor/script_create_dialog.cpp #, fuzzy -msgid "Invalid Path" -msgstr ": Ugyldige argumenter: " +msgid "Open Script" +msgstr "Kjør Skript" #: editor/script_create_dialog.cpp -msgid "Invalid class name" +msgid "File exists, it will be reused." msgstr "" #: editor/script_create_dialog.cpp -msgid "Invalid inherited parent name or path" -msgstr "" +#, fuzzy +msgid "Invalid class name." +msgstr "Ugyldig navn." #: editor/script_create_dialog.cpp -msgid "Script valid" -msgstr "" +#, fuzzy +msgid "Invalid inherited parent name or path." +msgstr "Ugyldig indeks egenskap navn '%s' i node %s." + +#: editor/script_create_dialog.cpp +#, fuzzy +msgid "Script is valid." +msgstr "Animasjonstre er gyldig." #: editor/script_create_dialog.cpp msgid "Allowed: a-z, A-Z, 0-9 and _" msgstr "" #: editor/script_create_dialog.cpp -msgid "Built-in script (into scene file)" -msgstr "" +#, fuzzy +msgid "Built-in script (into scene file)." +msgstr "Operasjoner med scene-filer." #: editor/script_create_dialog.cpp -msgid "Create new script file" -msgstr "" +#, fuzzy +msgid "Will create a new script file." +msgstr "Lag ny %s" #: editor/script_create_dialog.cpp -msgid "Load existing script file" -msgstr "" +#, fuzzy +msgid "Will load an existing script file." +msgstr "Last et eksisterende Bus oppsett." #: editor/script_create_dialog.cpp msgid "Language" @@ -9177,6 +10720,10 @@ msgstr "" msgid "Set From Tree" msgstr "" +#: editor/script_editor_debugger.cpp +msgid "Export measures as CSV" +msgstr "" + #: editor/settings_config_dialog.cpp #, fuzzy msgid "Erase Shortcut" @@ -9312,6 +10859,15 @@ msgid "GDNativeLibrary" msgstr "" #: 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 "Deaktiver Oppdateringsspinner" + +#: modules/gdnative/gdnative_library_singleton_editor.cpp msgid "Library" msgstr "" @@ -9401,8 +10957,8 @@ msgstr "Slett Valgte" #: modules/gridmap/grid_map_editor_plugin.cpp #, fuzzy -msgid "GridMap Duplicate Selection" -msgstr "Dupliser Utvalg" +msgid "GridMap Paste Selection" +msgstr "Slett Valgte" #: modules/gridmap/grid_map_editor_plugin.cpp msgid "GridMap Paint" @@ -9470,18 +11026,6 @@ msgid "Cursor Clear Rotation" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Create Area" -msgstr "" - -#: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Create Exterior Connector" -msgstr "" - -#: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Erase Area" -msgstr "" - -#: modules/gridmap/grid_map_editor_plugin.cpp #, fuzzy msgid "Clear Selection" msgstr "Fjern Utvalg" @@ -9859,18 +11403,11 @@ msgid "Available Nodes:" msgstr "Tilgjengelige Noder:" #: modules/visual_script/visual_script_editor.cpp -msgid "Select or create a function to edit graph" +#, fuzzy +msgid "Select or create a function to edit its graph." msgstr "Velg eller lag en funksjon for Ã¥ redigere graf" #: modules/visual_script/visual_script_editor.cpp -msgid "Edit Signal Arguments:" -msgstr "Forandre Signalargumenter:" - -#: modules/visual_script/visual_script_editor.cpp -msgid "Edit Variable:" -msgstr "Rediger Variabel:" - -#: modules/visual_script/visual_script_editor.cpp msgid "Delete Selected" msgstr "Slett Valgte" @@ -10000,6 +11537,19 @@ msgid "Debug keystore not configured in the Editor Settings nor in the preset." msgstr "" #: platform/android/export/export.cpp +msgid "Custom build requires a valid Android SDK path in Editor Settings." +msgstr "" + +#: platform/android/export/export.cpp +msgid "Invalid Android SDK path for custom build in Editor Settings." +msgstr "" + +#: platform/android/export/export.cpp +msgid "" +"Android project is not installed for compiling. Install from Editor menu." +msgstr "" + +#: platform/android/export/export.cpp msgid "Invalid public key for APK expansion." msgstr "" @@ -10008,6 +11558,34 @@ msgstr "" msgid "Invalid package name:" msgstr "Ugyldig navn." +#: platform/android/export/export.cpp +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 "" +"Android build version mismatch:\n" +" Template installed: %s\n" +" Godot Version: %s\n" +"Please reinstall Android build template from 'Project' menu." +msgstr "" + +#: platform/android/export/export.cpp +msgid "Building Android Project (gradle)" +msgstr "" + +#: 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 "" + +#: platform/android/export/export.cpp +msgid "No build apk generated at: " +msgstr "" + #: platform/iphone/export/export.cpp msgid "Identifier is missing." msgstr "" @@ -10270,27 +11848,27 @@ msgid "ARVRCamera must have an ARVROrigin node as its parent" msgstr "" #: scene/3d/arvr_nodes.cpp -msgid "ARVRController must have an ARVROrigin node as its parent" +msgid "ARVRController must have an ARVROrigin node as its parent." msgstr "" #: scene/3d/arvr_nodes.cpp msgid "" -"The controller id must not be 0 or this controller will not be bound to an " -"actual controller" +"The controller ID must not be 0 or this controller won't be bound to an " +"actual controller." msgstr "" #: scene/3d/arvr_nodes.cpp -msgid "ARVRAnchor must have an ARVROrigin node as its parent" +msgid "ARVRAnchor must have an ARVROrigin node as its parent." msgstr "" #: scene/3d/arvr_nodes.cpp msgid "" -"The anchor id must not be 0 or this anchor will not be bound to an actual " -"anchor" +"The anchor ID must not be 0 or this anchor won't be bound to an actual " +"anchor." msgstr "" #: scene/3d/arvr_nodes.cpp -msgid "ARVROrigin requires an ARVRCamera child node" +msgid "ARVROrigin requires an ARVRCamera child node." msgstr "" #: scene/3d/baked_lightmap.cpp @@ -10360,8 +11938,8 @@ msgstr "" #: scene/3d/cpu_particles.cpp msgid "" -"CPUParticles animation requires the usage of a SpatialMaterial with " -"\"Billboard Particles\" enabled." +"CPUParticles animation requires the usage of a SpatialMaterial whose " +"Billboard Mode is set to \"Particle Billboard\"." msgstr "" #: scene/3d/gi_probe.cpp @@ -10398,8 +11976,8 @@ msgstr "" #: scene/3d/particles.cpp msgid "" -"Particles animation requires the usage of a SpatialMaterial with \"Billboard " -"Particles\" enabled." +"Particles animation requires the usage of a SpatialMaterial whose Billboard " +"Mode is set to \"Particle Billboard\"." msgstr "" #: scene/3d/path.cpp @@ -10424,7 +12002,7 @@ msgid "Path property must point to a valid Spatial node to work." msgstr "" #: scene/3d/soft_body.cpp -msgid "This body will be ignored until you set a mesh" +msgid "This body will be ignored until you set a mesh." msgstr "" #: scene/3d/soft_body.cpp @@ -10526,7 +12104,7 @@ msgstr "" msgid "" "Container by itself serves no purpose unless a script configures it's " "children placement behavior.\n" -"If you dont't intend to add a script, then please use a plain 'Control' node " +"If you don't intend to add a script, then please use a plain 'Control' node " "instead." msgstr "" @@ -10538,11 +12116,6 @@ msgstr "" msgid "Please Confirm..." msgstr "" -#: scene/gui/file_dialog.cpp -#, fuzzy -msgid "Go to parent folder." -msgstr "GÃ¥ til overnevnt mappe" - #: scene/gui/popup.cpp msgid "" "Popups will hide by default unless you call popup() or any of the popup*() " @@ -10617,6 +12190,65 @@ msgstr "" msgid "Varyings can only be assigned in vertex function." msgstr "" +#: servers/visual/shader_language.cpp +msgid "Constants cannot be modified." +msgstr "" + +#~ msgid "Path to Node:" +#~ msgstr "Sti til Node:" + +#~ msgid "Delete selected files?" +#~ msgstr "Slett valgte filer?" + +#~ msgid "There is no 'res://default_bus_layout.tres' file." +#~ msgstr "Det er ingen 'res://default_bus_layout.tres' fil." + +#~ 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" + +#~ msgid "Previous Directory" +#~ msgstr "Forrige Katalog" + +#~ msgid "Next Directory" +#~ msgstr "Neste Katalog" + +#~ msgid "Ease in" +#~ msgstr "Gli inn" + +#~ msgid "Ease out" +#~ msgstr "Gli ut" + +#~ msgid "Create folder" +#~ msgstr "Opprett mappe" + +#~ msgid "Already existing" +#~ msgstr "Eksisterer allerede" + +#, fuzzy +#~ msgid "Custom Node" +#~ msgstr "Kutt Noder" + +#, fuzzy +#~ msgid "Invalid Path" +#~ msgstr ": Ugyldige argumenter: " + +#, fuzzy +#~ msgid "GridMap Duplicate Selection" +#~ msgstr "Dupliser Utvalg" + +#~ msgid "Edit Signal Arguments:" +#~ msgstr "Forandre Signalargumenter:" + +#~ msgid "Edit Variable:" +#~ msgstr "Rediger Variabel:" + #, fuzzy #~ msgid "Insert keys." #~ msgstr "Sett inn Nøkler" @@ -10705,9 +12337,6 @@ msgstr "" #~ msgid "Class List:" #~ msgstr "Klasseliste:" -#~ msgid "Search Classes" -#~ msgstr "Søk i klasser" - #~ msgid "Public Methods" #~ msgstr "Offentlige metoder" @@ -10778,9 +12407,6 @@ msgstr "" #~ msgid "Modify Color Ramp" #~ msgstr "Modifiser Farge-Rampe" -#~ msgid "Disabled" -#~ msgstr "Deaktivert" - #~ msgid "Move Anim Track Up" #~ msgstr "Flytt Anim Spor Opp" @@ -10941,10 +12567,6 @@ msgstr "" #~ msgstr "Ring" #, fuzzy -#~ msgid "Edit Variable" -#~ msgstr "Rediger Variabel:" - -#, fuzzy #~ msgid "Edit Signal" #~ msgstr "Forandre Signal Argumenter:" diff --git a/editor/translations/nl.po b/editor/translations/nl.po index 6eb5a47d21..63437bc723 100644 --- a/editor/translations/nl.po +++ b/editor/translations/nl.po @@ -32,12 +32,15 @@ # jef dered <themen098s@vivaldi.net>, 2019. # Alex H. <sandertjeh13@hotmail.com>, 2019. # edouardgr <edouard.gruyters@gmail.com>, 2019. +# Jimmy De Smet <J773@telenet.be>, 2019. +# Bastiaan van der Plaat <bastiaan.v.d.plaat@gmail.com>, 2019. +# Hector Peeters <hector.peeters@gmail.com>, 2019. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2019-04-25 11:54+0000\n" -"Last-Translator: edouardgr <edouard.gruyters@gmail.com>\n" +"PO-Revision-Date: 2019-06-16 19:42+0000\n" +"Last-Translator: Hector Peeters <hector.peeters@gmail.com>\n" "Language-Team: Dutch <https://hosted.weblate.org/projects/godot-engine/godot/" "nl/>\n" "Language: nl\n" @@ -100,6 +103,15 @@ msgstr "Gebalanceerd" msgid "Mirror" msgstr "Spiegel" +#: editor/animation_bezier_editor.cpp editor/editor_profiler.cpp +msgid "Time:" +msgstr "Tijd:" + +#: editor/animation_bezier_editor.cpp +#, fuzzy +msgid "Value:" +msgstr "Nieuwe Waarde:" + #: editor/animation_bezier_editor.cpp msgid "Insert Key Here" msgstr "Hier Key invoegen" @@ -182,14 +194,19 @@ msgid "Animation Playback Track" msgstr "Animatie Terugspelen Track" #: editor/animation_track_editor.cpp -msgid "Add Track" -msgstr "Track Toevoegen" +msgid "Animation length (frames)" +msgstr "Animatielengte (in frames)" #: editor/animation_track_editor.cpp -msgid "Animation Length Time (seconds)" +#, fuzzy +msgid "Animation length (seconds)" msgstr "Animatielengte (in seconden)" #: editor/animation_track_editor.cpp +msgid "Add Track" +msgstr "Track Toevoegen" + +#: editor/animation_track_editor.cpp msgid "Animation Looping" msgstr "Animatie Loopen" @@ -207,13 +224,12 @@ msgid "Anim Clips:" msgstr "Animatieclips:" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Change Track Path" -msgstr "Wijzig Array Waarde" +msgstr "Verander Track pad" #: editor/animation_track_editor.cpp msgid "Toggle this track on/off." -msgstr "Aan-uitschakelaar Track." +msgstr "Schakel deze track aan/uit." #: editor/animation_track_editor.cpp msgid "Update Mode (How this property is set)" @@ -234,12 +250,11 @@ msgstr "Verwijder deze track." #: editor/animation_track_editor.cpp msgid "Time (s): " -msgstr "Tijd (s): " +msgstr "Tijd (en): " #: editor/animation_track_editor.cpp -#, fuzzy msgid "Toggle Track Enabled" -msgstr "Verander de ingeschakelde track" +msgstr "Track schakelaar ingeschakeld" #: editor/animation_track_editor.cpp msgid "Continuous" @@ -285,11 +300,11 @@ msgstr "Voer Sleutel in" #: editor/animation_track_editor.cpp msgid "Duplicate Key(s)" -msgstr "Dupliceer Key(s)" +msgstr "Dupliceer Sleutel(s)" #: editor/animation_track_editor.cpp msgid "Delete Key(s)" -msgstr "Verwijder Key(s)" +msgstr "Verwijder Sleutel(s)" #: editor/animation_track_editor.cpp msgid "Change Animation Update Mode" @@ -316,11 +331,13 @@ msgid "Create %d NEW tracks and insert keys?" msgstr "Maak %d NIEUWE tracks aan en keys invoeren?" #: editor/animation_track_editor.cpp editor/create_dialog.cpp -#: editor/editor_audio_buses.cpp editor/editor_plugin_settings.cpp -#: editor/plugin_config_dialog.cpp +#: editor/editor_audio_buses.cpp editor/editor_feature_profile.cpp +#: editor/editor_plugin_settings.cpp editor/plugin_config_dialog.cpp #: editor/plugins/abstract_polygon_2d_editor.cpp #: editor/plugins/mesh_instance_editor_plugin.cpp -#: editor/plugins/particles_editor_plugin.cpp editor/script_create_dialog.cpp +#: editor/plugins/particles_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_create_dialog.cpp msgid "Create" msgstr "Maken" @@ -349,7 +366,6 @@ msgid "Change Animation Step" msgstr "Verander Animatiestappen" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Rearrange Tracks" msgstr "Herschik Tracks" @@ -396,14 +412,12 @@ msgid "Track is not of type Spatial, can't insert key" msgstr "Track is niet van het type Spatial, kan geen key invoegen" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Add Transform Track Key" -msgstr "3D Transformatie Track" +msgstr "Voeg Transformatie Track Sleutel toe" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Add Track Key" -msgstr "Track Toevoegen" +msgstr "Voeg Track sleutel toe" #: editor/animation_track_editor.cpp msgid "Track path is invalid, so can't add a method key." @@ -412,7 +426,7 @@ msgstr "Track path is niet geldig, dus kan geen methode key toevoegen." #: editor/animation_track_editor.cpp #, fuzzy msgid "Add Method Track Key" -msgstr "Methode Invocatie Track" +msgstr "Voeg Methode Track sleutel toe" #: editor/animation_track_editor.cpp msgid "Method not found in object: " @@ -442,6 +456,23 @@ msgstr "" "aanwezig is." #: editor/animation_track_editor.cpp +msgid "" +"This animation belongs to an imported scene, so changes to imported tracks " +"will not be saved.\n" +"\n" +"To enable the ability to add custom tracks, navigate to the scene's import " +"settings and set\n" +"\"Animation > Storage\" to \"Files\", enable \"Animation > Keep Custom Tracks" +"\", then re-import.\n" +"Alternatively, use an import preset that imports animations to separate " +"files." +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Warning: Editing imported animation" +msgstr "" + +#: editor/animation_track_editor.cpp msgid "Only show tracks from nodes selected in tree." msgstr "Toon alleen sporen die horen bij de geselecteerde node in de boom." @@ -452,7 +483,7 @@ msgstr "Sporen weergeven op basis van nodes of als lijst." #: editor/animation_track_editor.cpp #, fuzzy msgid "Snap:" -msgstr "Snap" +msgstr "Snap:" #: editor/animation_track_editor.cpp msgid "Animation step value." @@ -460,7 +491,7 @@ msgstr "Animatie stap waarde." #: editor/animation_track_editor.cpp msgid "Seconds" -msgstr "" +msgstr "Seconden" #: editor/animation_track_editor.cpp msgid "FPS" @@ -504,14 +535,12 @@ msgid "Delete Selection" msgstr "Verwijder Selectie" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Go to Next Step" -msgstr "Ga Naar Volgende Stap" +msgstr "Ga naar Volgende Stap" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Go to Previous Step" -msgstr "Ga Naar Vorige Stap" +msgstr "Ga naar Vorige Stap" #: editor/animation_track_editor.cpp msgid "Optimize Animation" @@ -577,7 +606,8 @@ msgstr "Schaal Ratio:" msgid "Select tracks to copy:" msgstr "Selecteer sporen om te kopieren:" -#: editor/animation_track_editor.cpp editor/editor_properties.cpp +#: editor/animation_track_editor.cpp editor/editor_log.cpp +#: editor/editor_properties.cpp #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp @@ -586,17 +616,16 @@ msgid "Copy" msgstr "Kopiëren" #: editor/animation_track_editor_plugins.cpp -#, fuzzy msgid "Add Audio Track Clip" -msgstr "Audioclips:" +msgstr "Voeg audiospoor clip toe" #: editor/animation_track_editor_plugins.cpp msgid "Change Audio Track Clip Start Offset" -msgstr "" +msgstr "Wijzig start afwijking van audiospoorclip" #: editor/animation_track_editor_plugins.cpp msgid "Change Audio Track Clip End Offset" -msgstr "" +msgstr "Wijzig eind afwijking van audiospoorclip" #: editor/array_property_edit.cpp msgid "Resize Array" @@ -646,6 +675,11 @@ msgstr "Alle Vervangen" msgid "Selection Only" msgstr "Alleen Selectie" +#: editor/code_editor.cpp editor/plugins/script_text_editor.cpp +#: editor/plugins/text_editor.cpp +msgid "Standard" +msgstr "Standaard" + #: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/texture_region_editor_plugin.cpp #: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp @@ -671,21 +705,39 @@ msgid "Line and column numbers." msgstr "Regel- en kolomnummers." #: editor/connections_dialog.cpp -msgid "Method in target Node must be specified!" +#, fuzzy +msgid "Method in target node must be specified." msgstr "Methode in doel Node moet gespecificeerd worden!" #: editor/connections_dialog.cpp +#, fuzzy msgid "" -"Target method not found! Specify a valid method or attach a script to target " -"Node." +"Target method not found. Specify a valid method or attach a script to the " +"target node." msgstr "" "Doel methode niet gevonden! Specificeer een geldige methode of koppel een " "script aan de doel Node." #: editor/connections_dialog.cpp -msgid "Connect To Node:" +#, fuzzy +msgid "Connect to Node:" msgstr "Verbind Aan Node:" +#: editor/connections_dialog.cpp +#, fuzzy +msgid "Connect to Script:" +msgstr "Kan niet verbinden met host:" + +#: editor/connections_dialog.cpp +#, fuzzy +msgid "From Signal:" +msgstr "Signalen:" + +#: editor/connections_dialog.cpp +#, fuzzy +msgid "Scene does not contain any script." +msgstr "Node bevat geen geometrie." + #: editor/connections_dialog.cpp editor/editor_autoload_settings.cpp #: editor/groups_editor.cpp editor/plugins/item_list_editor_plugin.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_settings_editor.cpp @@ -693,10 +745,12 @@ msgid "Add" msgstr "Toevoegen" #: editor/connections_dialog.cpp editor/dependency_editor.cpp -#: editor/groups_editor.cpp editor/plugins/animation_player_editor_plugin.cpp +#: editor/editor_feature_profile.cpp editor/groups_editor.cpp +#: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp #: editor/plugins/resource_preloader_editor_plugin.cpp -#: editor/plugins/theme_editor_plugin.cpp editor/project_manager.cpp +#: editor/plugins/theme_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_manager.cpp #: editor/project_settings_editor.cpp msgid "Remove" msgstr "Verwijderen" @@ -710,21 +764,32 @@ msgid "Extra Call Arguments:" msgstr "Extra Aanroep Argumenten:" #: editor/connections_dialog.cpp -msgid "Path to Node:" -msgstr "Pad naar Node:" - -#: editor/connections_dialog.cpp -msgid "Make Function" -msgstr "Maak Functie" +#, fuzzy +msgid "Advanced" +msgstr "Uitlijnen opties" #: editor/connections_dialog.cpp msgid "Deferred" msgstr "Uitgesteld" #: editor/connections_dialog.cpp +msgid "" +"Defers the signal, storing it in a queue and only firing it at idle time." +msgstr "" + +#: editor/connections_dialog.cpp msgid "Oneshot" msgstr "Eénschots" +#: editor/connections_dialog.cpp +msgid "Disconnects the signal after its first emission." +msgstr "" + +#: editor/connections_dialog.cpp +#, fuzzy +msgid "Cannot connect signal" +msgstr "Verbind met Signaal: " + #: editor/connections_dialog.cpp editor/dependency_editor.cpp #: editor/export_template_manager.cpp editor/groups_editor.cpp #: editor/plugins/animation_player_editor_plugin.cpp @@ -752,9 +817,8 @@ msgid "Disconnect '%s' from '%s'" msgstr "Ontkoppel '%s' van '%s'" #: editor/connections_dialog.cpp -#, fuzzy msgid "Disconnect all from signal: '%s'" -msgstr "Ontkoppel '%s' van '%s'" +msgstr "Ontkoppel alles van signaal: '%s'" #: editor/connections_dialog.cpp msgid "Connect..." @@ -766,11 +830,13 @@ msgid "Disconnect" msgstr "Losmaken" #: editor/connections_dialog.cpp -msgid "Connect Signal: " +#, fuzzy +msgid "Connect a Signal to a Method" msgstr "Verbind met Signaal: " #: editor/connections_dialog.cpp -msgid "Edit Connection: " +#, fuzzy +msgid "Edit Connection:" msgstr "Verbinding bewerken: " #: editor/connections_dialog.cpp @@ -788,9 +854,8 @@ msgstr "" "Weet je zeker dat je alle verbindingen naar dit signaal wilt verwijderen?" #: editor/connections_dialog.cpp -#, fuzzy msgid "Disconnect All" -msgstr "Losmaken" +msgstr "Ontkoppel Alles" #: editor/connections_dialog.cpp msgid "Edit..." @@ -805,7 +870,6 @@ msgid "Change %s Type" msgstr "Wijzig %s Type" #: editor/create_dialog.cpp editor/project_settings_editor.cpp -#: modules/visual_script/visual_script_editor.cpp msgid "Change" msgstr "Wijzig" @@ -836,7 +900,8 @@ msgid "Matches:" msgstr "Overeenkomsten:" #: editor/create_dialog.cpp editor/plugin_config_dialog.cpp -#: editor/plugins/asset_library_editor_plugin.cpp editor/property_selector.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/property_selector.cpp #: modules/visual_script/visual_script_property_selector.cpp msgid "Description:" msgstr "Omschrijving:" @@ -850,17 +915,19 @@ msgid "Dependencies For:" msgstr "Afhankelijkheden Voor:" #: editor/dependency_editor.cpp +#, fuzzy msgid "" "Scene '%s' is currently being edited.\n" -"Changes will not take effect unless reloaded." +"Changes will only take effect when reloaded." msgstr "" "Scene '%s' wordt op dit moment gewijzigd.\n" "Wijzigingen hebben geen effect tenzij de scene herladen worden." #: editor/dependency_editor.cpp +#, fuzzy msgid "" "Resource '%s' is in use.\n" -"Changes will take effect when reloaded." +"Changes will only take effect when reloaded." msgstr "" "Resource '%s' is in gebruik.\n" "Wijzigingen zullen effect hebben wanneer herladen." @@ -934,9 +1001,8 @@ msgid "Error loading:" msgstr "Error bij het laden van:" #: editor/dependency_editor.cpp -#, fuzzy msgid "Load failed due to missing dependencies:" -msgstr "Scene faalde om te laden door ontbrekende afhankelijkheden:" +msgstr "Laden mislukt vanwege het ontbrekende van afhankelijkheden:" #: editor/dependency_editor.cpp editor/editor_node.cpp msgid "Open Anyway" @@ -959,21 +1025,14 @@ msgid "Permanently delete %d item(s)? (No undo!)" msgstr "%d item(s) permanent verwijderen? (Kan niet ongedaan worden!)" #: editor/dependency_editor.cpp -msgid "Owns" -msgstr "Eigenaar Van" - -#: editor/dependency_editor.cpp -msgid "Resources Without Explicit Ownership:" -msgstr "Resources Zonder Expliciet Bezit:" +#, fuzzy +msgid "Show Dependencies" +msgstr "Afhankelijkheden" #: editor/dependency_editor.cpp editor/editor_node.cpp msgid "Orphan Resource Explorer" msgstr "Wees Resource Verkenner" -#: editor/dependency_editor.cpp -msgid "Delete selected files?" -msgstr "Verwijder geselecteerde bestanden?" - #: editor/dependency_editor.cpp editor/editor_audio_buses.cpp #: editor/editor_file_dialog.cpp editor/editor_node.cpp #: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp @@ -982,6 +1041,14 @@ msgstr "Verwijder geselecteerde bestanden?" msgid "Delete" msgstr "Verwijder" +#: editor/dependency_editor.cpp +msgid "Owns" +msgstr "Eigenaar Van" + +#: editor/dependency_editor.cpp +msgid "Resources Without Explicit Ownership:" +msgstr "Resources Zonder Expliciet Bezit:" + #: editor/dictionary_property_edit.cpp msgid "Change Dictionary Key" msgstr "Wijzig Array Sleutel" @@ -1095,7 +1162,7 @@ msgstr "Pakket succesvol geïnstalleerd!" msgid "Success!" msgstr "Geslaagd!" -#: editor/editor_asset_installer.cpp +#: editor/editor_asset_installer.cpp editor/editor_node.cpp #: editor/plugins/asset_library_editor_plugin.cpp msgid "Install" msgstr "Installeer" @@ -1222,8 +1289,12 @@ msgid "Open Audio Bus Layout" msgstr "Open Audio Bus Lay-out" #: editor/editor_audio_buses.cpp -msgid "There is no 'res://default_bus_layout.tres' file." -msgstr "Er is geen 'res://default_bus_layout.tres' bestand." +msgid "There is no '%s' file." +msgstr "" + +#: editor/editor_audio_buses.cpp editor/plugins/canvas_item_editor_plugin.cpp +msgid "Layout" +msgstr "Indeling" #: editor/editor_audio_buses.cpp msgid "Invalid file, not an audio bus layout." @@ -1236,7 +1307,7 @@ msgstr "Bus Toevoegen" #: editor/editor_audio_buses.cpp #, fuzzy msgid "Add a new Audio Bus to this layout." -msgstr "Sla Audio Bus Layout Op Als..." +msgstr "Voeg een nieuwe Audio Bus toe aan deze layout." #: editor/editor_audio_buses.cpp editor/editor_properties.cpp #: editor/plugins/animation_player_editor_plugin.cpp editor/property_editor.cpp @@ -1277,21 +1348,28 @@ msgid "Valid characters:" msgstr "Geldige karakters:" #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing engine class name." +#, fuzzy +msgid "Must not collide with an existing engine class name." msgstr "Ongeldige naam. Moet niet botsen met een bestaande engine klasse naam." #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing buit-in type name." +#, fuzzy +msgid "Must not collide with an existing buit-in type name." msgstr "" "Ongeldige naam. Mag niet botsen met een bestaande ingebouwde type naam." #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing global constant name." +#, fuzzy +msgid "Must not collide with an existing global constant name." msgstr "" "Ongeldige naam. Mag niet botsen met de naam van een bestaande globale " "constante." #: editor/editor_autoload_settings.cpp +msgid "Keyword cannot be used as an autoload name." +msgstr "" + +#: editor/editor_autoload_settings.cpp msgid "Autoload '%s' already exists!" msgstr "Autoload '%s' bestaat al!" @@ -1319,11 +1397,12 @@ msgstr "Inschakelen" msgid "Rearrange Autoloads" msgstr "Herschik Autoloads" -#: editor/editor_autoload_settings.cpp -msgid "Invalid Path." +#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp +#, fuzzy +msgid "Invalid path." msgstr "Ongeldig Pad." -#: editor/editor_autoload_settings.cpp +#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp msgid "File does not exist." msgstr "Bestand bestaat niet." @@ -1374,7 +1453,8 @@ msgid "[unsaved]" msgstr "[niet opgeslagen]" #: editor/editor_dir_dialog.cpp -msgid "Please select a base directory first" +#, fuzzy +msgid "Please select a base directory first." msgstr "Kies eerst een basisfolder" #: editor/editor_dir_dialog.cpp @@ -1382,7 +1462,8 @@ msgid "Choose a Directory" msgstr "Kies een Map" #: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp -#: editor/filesystem_dock.cpp scene/gui/file_dialog.cpp +#: editor/filesystem_dock.cpp editor/project_manager.cpp +#: scene/gui/file_dialog.cpp msgid "Create Folder" msgstr "Map Maken" @@ -1419,6 +1500,8 @@ msgid "" "Target platform requires 'ETC' texture compression for GLES2. Enable 'Import " "Etc' in Project Settings." msgstr "" +"Doel platform heeft 'ETC' afbeelding compressie nodig voor GLES2. Activeer " +"'Importeer ETC' in de project instellingen." #: editor/editor_export.cpp msgid "" @@ -1437,21 +1520,191 @@ msgstr "" #: 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 -#, fuzzy msgid "Custom debug template not found." -msgstr "Custom debug pakket niet gevonden." +msgstr "Aangepast debug pakket niet gevonden." #: 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 -#, fuzzy msgid "Custom release template not found." -msgstr "Custom release pakket niet gevonden." +msgstr "Aangepast release pakket niet gevonden." #: editor/editor_export.cpp platform/javascript/export/export.cpp msgid "Template file not found:" msgstr "Template bestand niet gevonden:" +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "3D Editor" +msgstr "Verwerker" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Script Editor" +msgstr "Open Script Bewerker" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Asset Library" +msgstr "Open Asset Bibliotheek" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Scene Tree Editing" +msgstr "Scene Uitvoerinstellingen" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Import Dock" +msgstr "Importeren" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Node Dock" +msgstr "Verplaatsingsmodus" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Filesystem Dock" +msgstr "Bestandssysteem" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Erase profile '%s'? (no undo)" +msgstr "Alle vervangen (geen ongedaan maken)" + +#: editor/editor_feature_profile.cpp +msgid "Profile must be a valid filename and must not contain '.'" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Profile with this name already exists." +msgstr "Er bestaat al een bestand of map met deze naam." + +#: editor/editor_feature_profile.cpp +msgid "(Editor Disabled, Properties Disabled)" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "(Properties Disabled)" +msgstr "Alleen Eigenschappen" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "(Editor Disabled)" +msgstr "Uitgeschakeld" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Class Options:" +msgstr "Klassebeschrijving:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enable Contextual Editor" +msgstr "Open de volgende Editor" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enabled Properties:" +msgstr "Eigenschappen:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enabled Features:" +msgstr "Kenmerken" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enabled Classes:" +msgstr "Zoek Klasses" + +#: editor/editor_feature_profile.cpp +msgid "File '%s' format is invalid, import aborted." +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "" +"Profile '%s' already exists. Remote it first before importing, import " +"aborted." +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Error saving profile to path: '%s'." +msgstr "Error bij het laden van sjabloon '%s'" + +#: editor/editor_feature_profile.cpp +msgid "Unset" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Current Profile" +msgstr "Huidige Versie:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Make Current" +msgstr "Huidig:" + +#: editor/editor_feature_profile.cpp +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "New" +msgstr "Nieuw" + +#: editor/editor_feature_profile.cpp editor/editor_node.cpp +#: editor/plugins/asset_library_editor_plugin.cpp editor/project_manager.cpp +msgid "Import" +msgstr "Importeren" + +#: editor/editor_feature_profile.cpp editor/editor_node.cpp +#: editor/project_export.cpp +msgid "Export" +msgstr "Exporteren" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Available Profiles" +msgstr "Beschikbare Nodes:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enabled Classes" +msgstr "Zoek Klasses" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Class Options" +msgstr "Klassebeschrijving" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "New profile name:" +msgstr "Nieuwe naam:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Erase Profile" +msgstr "Wis TileMap" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Import Profile(s)" +msgstr "Geïmporteerd Project" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Export Profile" +msgstr "Project Exporteren" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Manage Editor Feature Profiles" +msgstr "Beheer Export Templates" + #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Select Current Folder" msgstr "Selecteer Huidige Map" @@ -1472,8 +1725,8 @@ msgstr "Kopieer Pad" msgid "Open in File Manager" msgstr "Openen in Bestandsbeheer" -#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp -#: editor/project_manager.cpp +#: editor/editor_file_dialog.cpp editor/editor_node.cpp +#: editor/filesystem_dock.cpp editor/project_manager.cpp #, fuzzy msgid "Show in File Manager" msgstr "Weergeven in Bestandsbeheer" @@ -1533,7 +1786,7 @@ msgstr "Ga Verder" msgid "Go Up" msgstr "Ga Omhoog" -#: editor/editor_file_dialog.cpp +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Toggle Hidden Files" msgstr "Toggle Verborgen Bestanden" @@ -1558,32 +1811,34 @@ msgid "Move Favorite Down" msgstr "Verplaats Favoriet Naar Beneden" #: editor/editor_file_dialog.cpp -#, fuzzy msgid "Previous Folder" -msgstr "Vorig tabblad" +msgstr "Vorige Folder" #: editor/editor_file_dialog.cpp -#, fuzzy msgid "Next Folder" -msgstr "Map Maken" +msgstr "Volgende Folder" -#: editor/editor_file_dialog.cpp -msgid "Go to parent folder" +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp +#, fuzzy +msgid "Go to parent folder." msgstr "Ga naar bovenliggende folder" #: editor/editor_file_dialog.cpp -#, fuzzy msgid "(Un)favorite current folder." -msgstr "Map kon niet gemaakt worden." +msgstr "(On)favoriet huidige map." + +#: editor/editor_file_dialog.cpp +#, fuzzy +msgid "Toggle visibility of hidden files." +msgstr "Toggle Verborgen Bestanden" #: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp msgid "View items as a grid of thumbnails." msgstr "Toon items in een miniatuurraster." #: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp -#, fuzzy msgid "View items as a list." -msgstr "Bekijk objecten als een lijst" +msgstr "Bekijk items als een lijst." #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Directories & Files:" @@ -1591,6 +1846,7 @@ msgstr "Mappen & Bestanden:" #: editor/editor_file_dialog.cpp editor/plugins/sprite_editor_plugin.cpp #: editor/plugins/style_box_editor_plugin.cpp +#: editor/plugins/theme_editor_plugin.cpp msgid "Preview:" msgstr "Voorbeeld:" @@ -1607,6 +1863,12 @@ msgid "ScanSources" msgstr "Scan Bronnen" #: editor/editor_file_system.cpp +msgid "" +"There are multiple importers for different types pointing to file %s, import " +"aborted" +msgstr "" + +#: editor/editor_file_system.cpp msgid "(Re)Importing Assets" msgstr "Bronnen (Her)Importeren" @@ -1795,6 +2057,10 @@ msgstr "Zet Meerdere:" msgid "Output:" msgstr "Uitvoer:" +#: editor/editor_log.cpp editor/plugins/tile_map_editor_plugin.cpp +msgid "Copy Selection" +msgstr "Selectie kopiëren" + #: editor/editor_log.cpp editor/editor_profiler.cpp #: editor/editor_properties.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp @@ -1893,6 +2159,8 @@ msgid "" "This scene can't be saved because there is a cyclic instancing inclusion.\n" "Please resolve it and then attempt to save again." msgstr "" +"Deze scene kan niet opgeslagen worden vanwege een cyclische instantiëring.\n" +"Opslaan is pas mogelijk als dit opgelost wordt." #: editor/editor_node.cpp msgid "" @@ -1949,9 +2217,10 @@ msgstr "" "beter te begrijpen." #: editor/editor_node.cpp +#, fuzzy msgid "" "This resource belongs to a scene that was instanced or inherited.\n" -"Changes to it will not be kept when saving the current scene." +"Changes to it won't be kept when saving the current scene." msgstr "" "Dit bestand hoort bij een scene die geïnstantieerd of overgeërfd werd.\n" "Aanpassingen zullen niet worden bijgehouden bij het opslaan van de huidige " @@ -1966,8 +2235,9 @@ msgstr "" "instellingen aan in het importeerpaneel en importeer het nadien opnieuw." #: editor/editor_node.cpp +#, fuzzy msgid "" -"This scene was imported, so changes to it will not be kept.\n" +"This scene was imported, so changes to it won't be kept.\n" "Instancing it or inheriting will allow making changes to it.\n" "Please read the documentation relevant to importing scenes to better " "understand this workflow." @@ -1979,8 +2249,9 @@ msgstr "" "begrijpen." #: editor/editor_node.cpp +#, fuzzy msgid "" -"This is a remote object so changes to it will not be kept.\n" +"This is a remote object, so changes to it won't be kept.\n" "Please read the documentation relevant to debugging to better understand " "this workflow." msgstr "" @@ -1994,36 +2265,6 @@ msgid "There is no defined scene to run." msgstr "Er is geen startscene gedefinieerd." #: editor/editor_node.cpp -msgid "" -"No main scene has ever been defined, select one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" -"Er is nooit een hoofdscene gekozen, wil je er een selecteren?\n" -"Je kan dit later nog aanpassen in \"Projectinstellingen\" onder de categorie " -"'toepassing'." - -#: editor/editor_node.cpp -msgid "" -"Selected scene '%s' does not exist, select a valid one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" -"De geselecteerde scene '%s' bestaat niet, selecteer een andere?\n" -"Je kan dit later aanpassen in \"Projectinstellingen\" onder de categorie " -"'toepassing'." - -#: editor/editor_node.cpp -msgid "" -"Selected scene '%s' is not a scene file, select a valid one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" -"De geselecteerde scene '%s' is geen scenebestand, selecteer een andere?\n" -"Je kan dit later aanpassen in \"Projectinstellingen\" onder de categorie " -"'toepassing'." - -#: editor/editor_node.cpp msgid "Current scene was never saved, please save it prior to running." msgstr "De huidige scene werd nooit opgeslagen, sla ze op voor het uitvoeren." @@ -2031,7 +2272,7 @@ msgstr "De huidige scene werd nooit opgeslagen, sla ze op voor het uitvoeren." msgid "Could not start subprocess!" msgstr "Kon het subproces niet opstarten!" -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/filesystem_dock.cpp msgid "Open Scene" msgstr "Scene Openen" @@ -2040,6 +2281,11 @@ msgid "Open Base Scene" msgstr "Open Basisscene" #: editor/editor_node.cpp +#, fuzzy +msgid "Quick Open..." +msgstr "Open Scene Snel..." + +#: editor/editor_node.cpp msgid "Quick Open Scene..." msgstr "Open Scene Snel..." @@ -2220,6 +2466,36 @@ msgid "Clear Recent Scenes" msgstr "Maak Leeg" #: editor/editor_node.cpp +msgid "" +"No main scene has ever been defined, select one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" +"Er is nooit een hoofdscene gekozen, wil je er een selecteren?\n" +"Je kan dit later nog aanpassen in \"Projectinstellingen\" onder de categorie " +"'toepassing'." + +#: editor/editor_node.cpp +msgid "" +"Selected scene '%s' does not exist, select a valid one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" +"De geselecteerde scene '%s' bestaat niet, selecteer een andere?\n" +"Je kan dit later aanpassen in \"Projectinstellingen\" onder de categorie " +"'toepassing'." + +#: editor/editor_node.cpp +msgid "" +"Selected scene '%s' is not a scene file, select a valid one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" +"De geselecteerde scene '%s' is geen scenebestand, selecteer een andere?\n" +"Je kan dit later aanpassen in \"Projectinstellingen\" onder de categorie " +"'toepassing'." + +#: editor/editor_node.cpp msgid "Save Layout" msgstr "Layout Opslaan" @@ -2247,6 +2523,19 @@ msgstr "Speel Scene" msgid "Close Tab" msgstr "Tabblad sluiten" +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +msgid "Close Other Tabs" +msgstr "Sluit Andere Tabbladen" + +#: editor/editor_node.cpp +msgid "Close Tabs to the Right" +msgstr "" + +#: editor/editor_node.cpp +#, fuzzy +msgid "Close All Tabs" +msgstr "Sluit Alles" + #: editor/editor_node.cpp msgid "Switch Scene Tab" msgstr "Scenetab Wisselen" @@ -2372,10 +2661,6 @@ msgstr "Project" msgid "Project Settings" msgstr "Projectinstellingen" -#: editor/editor_node.cpp editor/project_export.cpp -msgid "Export" -msgstr "Exporteren" - #: editor/editor_node.cpp editor/plugins/tile_set_editor_plugin.cpp msgid "Tools" msgstr "Gereedschappen" @@ -2386,6 +2671,10 @@ msgid "Open Project Data Folder" msgstr "Open de Project Manager?" #: editor/editor_node.cpp +msgid "Install Android Build Template" +msgstr "" + +#: editor/editor_node.cpp msgid "Quit to Project List" msgstr "Sluit af naar Projectlijst" @@ -2511,6 +2800,11 @@ msgstr "Open Editor Data Map" msgid "Open Editor Settings Folder" msgstr "Open Editor Instellingen Map" +#: editor/editor_node.cpp +#, fuzzy +msgid "Manage Editor Features" +msgstr "Beheer Export Templates" + #: editor/editor_node.cpp editor/project_export.cpp msgid "Manage Export Templates" msgstr "Beheer Export Templates" @@ -2523,6 +2817,7 @@ msgstr "Help" #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp #: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp #: editor/project_settings_editor.cpp editor/rename_dialog.cpp msgid "Search" msgstr "Zoeken" @@ -2613,11 +2908,6 @@ msgstr "Update Veranderingen" msgid "Disable Update Spinner" msgstr "Schakel Update Draaier Uit" -#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp -#: editor/project_manager.cpp -msgid "Import" -msgstr "Importeren" - #: editor/editor_node.cpp msgid "FileSystem" msgstr "Bestandssysteem" @@ -2643,6 +2933,28 @@ msgid "Don't Save" msgstr "Niet Opslaan" #: editor/editor_node.cpp +msgid "Android build template is missing, please install relevant templates." +msgstr "" + +#: editor/editor_node.cpp +#, fuzzy +msgid "Manage Templates" +msgstr "Beheer Export Templates" + +#: editor/editor_node.cpp +msgid "" +"This will install the Android project for custom builds.\n" +"Note that, in order to use it, it needs to be enabled per export preset." +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"Android build template is already installed and it won't be overwritten.\n" +"Remove the \"build\" directory manually before attempting this operation " +"again." +msgstr "" + +#: editor/editor_node.cpp msgid "Import Templates From ZIP File" msgstr "Sjablonen importeren Vanuit ZIP-Bestand" @@ -2765,10 +3077,6 @@ msgid "Physics Frame %" msgstr "Physics Frame %" #: editor/editor_profiler.cpp -msgid "Time:" -msgstr "Tijd:" - -#: editor/editor_profiler.cpp msgid "Inclusive" msgstr "Inclusief" @@ -2912,10 +3220,6 @@ msgid "Remove Item" msgstr "Verwijder Item" #: editor/editor_run_native.cpp -msgid "Select device from the list" -msgstr "Selecteer apparaat uit de lijst" - -#: editor/editor_run_native.cpp msgid "" "No runnable export preset found for this platform.\n" "Please add a runnable preset in the export menu." @@ -2951,6 +3255,10 @@ msgstr "Ben je de '_run' methode vergeten?" msgid "Select Node(s) to Import" msgstr "Selecteer Node(s) om te Importeren" +#: editor/editor_sub_scene.cpp editor/project_manager.cpp +msgid "Browse" +msgstr "Bladeren" + #: editor/editor_sub_scene.cpp msgid "Scene Path:" msgstr "Scene Pad:" @@ -3117,6 +3425,11 @@ msgid "SSL Handshake Error" msgstr "SSL Handshake Foutmelding" #: editor/export_template_manager.cpp +#, fuzzy +msgid "Uncompressing Android Build Sources" +msgstr "Bronnen aan het uitpakken" + +#: editor/export_template_manager.cpp msgid "Current Version:" msgstr "Huidige Versie:" @@ -3133,7 +3446,8 @@ msgid "Remove Template" msgstr "Verwijder Sjabloon" #: editor/export_template_manager.cpp -msgid "Select template file" +#, fuzzy +msgid "Select Template File" msgstr "Selecteer sjabloonbestand" #: editor/export_template_manager.cpp @@ -3195,7 +3509,8 @@ msgid "No name provided." msgstr "Geen naam opgegeven." #: editor/filesystem_dock.cpp -msgid "Provided name contains invalid characters" +#, fuzzy +msgid "Provided name contains invalid characters." msgstr "De opgegeven naam bevat ongeldige tekens" #: editor/filesystem_dock.cpp @@ -3223,19 +3538,27 @@ msgid "Duplicating folder:" msgstr "Folder dupliceren:" #: editor/filesystem_dock.cpp -msgid "Open Scene(s)" -msgstr "Scene(s) Openen" +#, fuzzy +msgid "New Inherited Scene" +msgstr "Nieuwe Geërfde Scene..." + +#: editor/filesystem_dock.cpp +#, fuzzy +msgid "Open Scenes" +msgstr "Scene Openen" #: editor/filesystem_dock.cpp msgid "Instance" msgstr "Instantie" #: editor/filesystem_dock.cpp -msgid "Add to favorites" +#, fuzzy +msgid "Add to Favorites" msgstr "Aan favorieten toevoegen" #: editor/filesystem_dock.cpp -msgid "Remove from favorites" +#, fuzzy +msgid "Remove from Favorites" msgstr "Uit favorieten verwijderen" #: editor/filesystem_dock.cpp @@ -3266,11 +3589,13 @@ msgstr "Nieuw Script..." msgid "New Resource..." msgstr "Nieuwe Hulpbron..." -#: editor/filesystem_dock.cpp editor/script_editor_debugger.cpp +#: editor/filesystem_dock.cpp editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_editor_debugger.cpp msgid "Expand All" msgstr "Alles uitklappen" -#: editor/filesystem_dock.cpp editor/script_editor_debugger.cpp +#: editor/filesystem_dock.cpp editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_editor_debugger.cpp msgid "Collapse All" msgstr "Alles inklappen" @@ -3282,19 +3607,22 @@ msgid "Rename" msgstr "Hernoemen" #: editor/filesystem_dock.cpp -msgid "Previous Directory" -msgstr "Vorige Map" +#, fuzzy +msgid "Previous Folder/File" +msgstr "Vorige Folder" #: editor/filesystem_dock.cpp -msgid "Next Directory" -msgstr "Volgende Map" +#, fuzzy +msgid "Next Folder/File" +msgstr "Volgende Folder" #: editor/filesystem_dock.cpp msgid "Re-Scan Filesystem" msgstr "Bestandssysteem Opnieuw Scannen" #: editor/filesystem_dock.cpp -msgid "Toggle split mode" +#, fuzzy +msgid "Toggle Split Mode" msgstr "Gesplitste modus omschakelen" #: editor/filesystem_dock.cpp @@ -3325,7 +3653,7 @@ msgstr "Overschrijven" msgid "Create Script" msgstr "Creëer Script" -#: editor/find_in_files.cpp +#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp #, fuzzy msgid "Find in Files" msgstr "Vind Tegel" @@ -3343,6 +3671,12 @@ msgstr "Map Maken" msgid "Filters:" msgstr "Filters:" +#: editor/find_in_files.cpp +msgid "" +"Include the files with the following extensions. Add or remove them in " +"ProjectSettings." +msgstr "" + #: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp msgid "Find..." @@ -3790,7 +4124,8 @@ msgid "Open Animation Node" msgstr "Animatieknoop openen" #: editor/plugins/animation_blend_space_2d_editor.cpp -msgid "Triangle already exists" +#, fuzzy +msgid "Triangle already exists." msgstr "Driehoek bestaat al" #: editor/plugins/animation_blend_space_2d_editor.cpp @@ -3874,7 +4209,6 @@ msgid "Node Moved" msgstr "Verplaatsingsmodus" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Unable to connect, port may be in use or connection may be invalid." msgstr "" "Verbinding niet mogelijk, poort kan in gebruik zijn of de verbinding kan " @@ -3954,7 +4288,8 @@ msgid "Edit Filtered Tracks:" msgstr "Bewerk gefilterde sporen:" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -msgid "Enable filtering" +#, fuzzy +msgid "Enable Filtering" msgstr "Activeer filtering" #: editor/plugins/animation_player_editor_plugin.cpp @@ -4070,10 +4405,6 @@ msgid "Animation" msgstr "Animatie" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "New" -msgstr "Nieuw" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Edit Transitions..." msgstr "Bewerk overgangen..." @@ -4091,14 +4422,15 @@ msgid "Autoplay on Load" msgstr "Automatisch afspelen bij laden" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Onion Skinning" -msgstr "Ui Schillen" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Enable Onion Skinning" msgstr "\"Onion Skinning\" Inschakelen" #: editor/plugins/animation_player_editor_plugin.cpp +#, fuzzy +msgid "Onion Skinning Options" +msgstr "Ui Schillen" + +#: editor/plugins/animation_player_editor_plugin.cpp msgid "Directions" msgstr "Richtingen" @@ -4254,6 +4586,8 @@ msgstr "De uitgekozen knoop of overgang verwijderen." #: editor/plugins/animation_state_machine_editor.cpp msgid "Toggle autoplay this animation on start, restart or seek to zero." msgstr "" +"Schakel tussen automatisch afspelen van deze animatie bij start, herstart of " +"zoek naar nul." #: editor/plugins/animation_state_machine_editor.cpp msgid "Set the end animation. This is useful for sub-transitions." @@ -4653,11 +4987,6 @@ msgid "Move CanvasItem" msgstr "Verplaats CanvasItem" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Presets for the anchors and margins values of a Control node." -msgstr "" -"Vooraf ingestelde waardes voor de ankers en marges van een Control Node." - -#: editor/plugins/canvas_item_editor_plugin.cpp #, fuzzy msgid "" "Children of containers have their anchors and margins values overridden by " @@ -4667,6 +4996,17 @@ msgstr "" "alleen door hun ouder bepaald." #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Presets for the anchors and margins values of a Control node." +msgstr "" +"Vooraf ingestelde waardes voor de ankers en marges van een Control Node." + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"When active, moving Control nodes changes their anchors instead of their " +"margins." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Anchors only" msgstr "Alleen Ankers" @@ -4679,10 +5019,52 @@ msgid "Change Anchors" msgstr "Wijzig Ankers" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Lock Selected" +msgstr "Gereedschappen" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Unlock Selected" +msgstr "Geselecteerde Verwijderen" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Group Selected" +msgstr "Selectie kopiëren" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Ungroup Selected" +msgstr "Selectie kopiëren" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Paste Pose" msgstr "Plak Houding" #: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Create Custom Bone(s) from Node(s)" +msgstr "Maak één of meerdere op maat gemaakte botten van één of meerdere Nodes" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Clear Bones" +msgstr "Maak Houding Leeg" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Make IK Chain" +msgstr "Maak IK Ketting" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Clear IK Chain" +msgstr "Maak IK Ketting Leeg" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "" "Warning: Children of a container get their position and size determined only " "by their parent." @@ -4760,7 +5142,8 @@ msgid "Snapping Options" msgstr "Opties voor automatisch schikken" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to grid" +#, fuzzy +msgid "Snap to Grid" msgstr "Uitlijnen op raster" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4781,31 +5164,38 @@ msgid "Use Pixel Snap" msgstr "Gebruik Pixel Uitlijnen" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Smart snapping" +#, fuzzy +msgid "Smart Snapping" msgstr "Slim Uitlijnen" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to parent" +#, fuzzy +msgid "Snap to Parent" msgstr "Snap naar ouder" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node anchor" +#, fuzzy +msgid "Snap to Node Anchor" msgstr "Snap naar node anker" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node sides" +#, fuzzy +msgid "Snap to Node Sides" msgstr "Uitlijnen naar node zijden" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node center" +#, fuzzy +msgid "Snap to Node Center" msgstr "Schik automatisch aan middelpunt knoop" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to other nodes" +#, fuzzy +msgid "Snap to Other Nodes" msgstr "Uitlijnen naar andere nodes" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to guides" +#, fuzzy +msgid "Snap to Guides" msgstr "Op hulplijnen uitlijnen" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4820,11 +5210,13 @@ msgid "Unlock the selected object (can be moved)." msgstr "Ontgrendel het geselecteerde object (kan verplaatst worden)." #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Makes sure the object's children are not selectable." msgstr "" "Zorgt ervoor dat de kinderen van dit object niet geselecteerd kunnen worden." #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Restores the object's children's ability to be selected." msgstr "" "Herstelt de mogelijkheid van selecteerbaarheid bij de kinderen van het " @@ -4839,14 +5231,6 @@ msgid "Show Bones" msgstr "Laat Botten Zien" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Make IK Chain" -msgstr "Maak IK Ketting" - -#: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Clear IK Chain" -msgstr "Maak IK Ketting Leeg" - -#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Make Custom Bone(s) from Node(s)" msgstr "Maak één of meerdere op maat gemaakte botten van één of meerdere Nodes" @@ -4898,20 +5282,23 @@ msgid "Frame Selection" msgstr "Raam Selectie" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Layout" -msgstr "Indeling" +msgid "Preview Canvas Scale" +msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy msgid "Translation mask for inserting keys." -msgstr "" +msgstr "Vertaalmasker voor het invoegen van sleutels." #: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy msgid "Rotation mask for inserting keys." -msgstr "" +msgstr "Rotatiemasker voor het invoegen van sleutels." #: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy msgid "Scale mask for inserting keys." -msgstr "" +msgstr "Schaalmasker voor het invoegen van sleutels." #: editor/plugins/canvas_item_editor_plugin.cpp #, fuzzy @@ -4919,12 +5306,18 @@ msgid "Insert keys (based on mask)." msgstr "Voeg Sleutel in (Bestaande Banen)" #: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy msgid "" "Auto insert keys when objects are translated, rotated on scaled (based on " "mask).\n" "Keys are only added to existing tracks, no new tracks will be created.\n" "Keys must be inserted manually for the first time." msgstr "" +"Automatische invoegtoetsen bij het vertalen van objecten, geroteerd op " +"schaal (op basis van masker).\n" +"Sleutels worden alleen toegevoegd aan bestaande tracks, er worden geen " +"nieuwe tracks aangemaakt.\n" +"Sleutels moeten voor de eerste keer handmatig worden ingevoerd." #: editor/plugins/canvas_item_editor_plugin.cpp #, fuzzy @@ -4952,6 +5345,11 @@ msgid "Divide grid step by 2" msgstr "Deel rasterstap door 2" #: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Pan View" +msgstr "Achteraanzicht" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Add %s" msgstr "Voeg %s Toe" @@ -4974,7 +5372,8 @@ msgid "Error instancing scene from %s" msgstr "Er is iets misgegaan bij het instantiëren van scene vanaf %s" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Change default type" +#, fuzzy +msgid "Change Default Type" msgstr "Wijzig standaard type" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -5064,20 +5463,22 @@ msgid "Create Emission Points From Node" msgstr "Creëer Emissie Punten Vanuit Node" #: editor/plugins/curve_editor_plugin.cpp -msgid "Flat0" +#, fuzzy +msgid "Flat 0" msgstr "Plat0" #: editor/plugins/curve_editor_plugin.cpp -msgid "Flat1" +#, fuzzy +msgid "Flat 1" msgstr "Plat1" -#: editor/plugins/curve_editor_plugin.cpp -msgid "Ease in" -msgstr "Rustig Aanzetten" +#: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp +msgid "Ease In" +msgstr "" -#: editor/plugins/curve_editor_plugin.cpp -msgid "Ease out" -msgstr "Rustig Afzetten" +#: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp +msgid "Ease Out" +msgstr "" #: editor/plugins/curve_editor_plugin.cpp msgid "Smoothstep" @@ -5096,23 +5497,28 @@ msgid "Load Curve Preset" msgstr "Laad Curve Preset" #: editor/plugins/curve_editor_plugin.cpp -msgid "Add point" +#, fuzzy +msgid "Add Point" msgstr "Punt toevoegen" #: editor/plugins/curve_editor_plugin.cpp -msgid "Remove point" +#, fuzzy +msgid "Remove Point" msgstr "Punt verwijderen" #: editor/plugins/curve_editor_plugin.cpp -msgid "Left linear" +#, fuzzy +msgid "Left Linear" msgstr "Links Lineair" #: editor/plugins/curve_editor_plugin.cpp -msgid "Right linear" +#, fuzzy +msgid "Right Linear" msgstr "Rechtslijnig" #: editor/plugins/curve_editor_plugin.cpp -msgid "Load preset" +#, fuzzy +msgid "Load Preset" msgstr "Laad voorinstelling" #: editor/plugins/curve_editor_plugin.cpp @@ -5172,12 +5578,16 @@ msgstr "Dit werkt niet op scene root!" #: editor/plugins/mesh_instance_editor_plugin.cpp #, fuzzy -msgid "Create Trimesh Shape" +msgid "Create Trimesh Static Shape" msgstr "Creëer Trimesh Vorm" #: editor/plugins/mesh_instance_editor_plugin.cpp +msgid "Failed creating shapes!" +msgstr "" + +#: editor/plugins/mesh_instance_editor_plugin.cpp #, fuzzy -msgid "Create Convex Shape" +msgid "Create Convex Shape(s)" msgstr "Creëer Convexe Vorm" #: editor/plugins/mesh_instance_editor_plugin.cpp @@ -5231,15 +5641,12 @@ msgid "Create Trimesh Static Body" msgstr "Creëer Trimesh Statisch Lichaam" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Static Body" -msgstr "Creëer Convex Statisch Lichaam" - -#: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Trimesh Collision Sibling" msgstr "Creëer Trimesh Botsing Broer" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Collision Sibling" +#, fuzzy +msgid "Create Convex Collision Sibling(s)" msgstr "Creëer Convex Botsing Broer" #: editor/plugins/mesh_instance_editor_plugin.cpp @@ -5397,6 +5804,12 @@ msgid "Create Navigation Polygon" msgstr "Creëer Navigatie Polygoon" #: editor/plugins/particles_2d_editor_plugin.cpp +#: editor/plugins/particles_editor_plugin.cpp +#, fuzzy +msgid "Convert to CPUParticles" +msgstr "Converteer Naar Hoofdletters" + +#: editor/plugins/particles_2d_editor_plugin.cpp #, fuzzy msgid "Generating Visibility Rect" msgstr "Genereer Zichtbaarheid Rechthoek" @@ -5411,12 +5824,6 @@ msgstr "Kan punt alleen plaatsen in een PartikelsMateriaal proces materiaal" #: editor/plugins/particles_2d_editor_plugin.cpp #: editor/plugins/particles_editor_plugin.cpp -#, fuzzy -msgid "Convert to CPUParticles" -msgstr "Converteer Naar Hoofdletters" - -#: editor/plugins/particles_2d_editor_plugin.cpp -#: editor/plugins/particles_editor_plugin.cpp msgid "Generation Time (sec):" msgstr "Genereer Tijd (sec):" @@ -5556,7 +5963,7 @@ msgstr "Sluit Curve" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp editor/plugins/theme_editor_plugin.cpp -#: editor/project_export.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_export.cpp msgid "Options" msgstr "Opties" @@ -5568,7 +5975,7 @@ msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp msgid "Mirror Handle Lengths" -msgstr "" +msgstr "Spiegel Lengtehendels" #: editor/plugins/path_editor_plugin.cpp msgid "Curve Point #" @@ -5608,7 +6015,7 @@ msgstr "Splits Segment (in curve)" #: editor/plugins/physical_bone_plugin.cpp #, fuzzy -msgid "Move joint" +msgid "Move Joint" msgstr "Beweeg Punt" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5681,7 +6088,7 @@ msgstr "Transformatie Type" #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "Paint Bone Weights" -msgstr "" +msgstr "Teken Botgewichten" #: editor/plugins/polygon_2d_editor_plugin.cpp #, fuzzy @@ -5868,7 +6275,6 @@ msgid "Open in Editor" msgstr "Openen in Editor" #: editor/plugins/resource_preloader_editor_plugin.cpp -#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Load Resource" msgstr "Laad Bron" @@ -5970,6 +6376,11 @@ msgid "%s Class Reference" msgstr " Klasse Referentie" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp +msgid "Find Next" +msgstr "Vind Volgende" + +#: editor/plugins/script_editor_plugin.cpp msgid "Toggle alphabetical sorting of the method list." msgstr "Schakel het alfabetisch sorteren van de methode lijst in of uit." @@ -6053,10 +6464,6 @@ msgstr "Sluit Docs" msgid "Close All" msgstr "Sluit Alles" -#: editor/plugins/script_editor_plugin.cpp -msgid "Close Other Tabs" -msgstr "Sluit Andere Tabbladen" - #: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp msgid "Run" msgstr "Starten" @@ -6065,11 +6472,6 @@ msgstr "Starten" msgid "Toggle Scripts Panel" msgstr "Schakel Scripten Paneel" -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/script_text_editor.cpp -msgid "Find Next" -msgstr "Vind Volgende" - #: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp msgid "Step Over" msgstr "Stap Over" @@ -6097,16 +6499,19 @@ msgid "Debug with External Editor" msgstr "Debug met externe editor" #: editor/plugins/script_editor_plugin.cpp -msgid "Open Godot online documentation" +#, fuzzy +msgid "Open Godot online documentation." msgstr "Open Godot online documentatie" #: editor/plugins/script_editor_plugin.cpp +#, fuzzy msgid "Request Docs" -msgstr "" +msgstr "Verzoek Documenten" #: editor/plugins/script_editor_plugin.cpp -msgid "Help improve the Godot documentation by giving feedback" -msgstr "" +#, fuzzy +msgid "Help improve the Godot documentation by giving feedback." +msgstr "Help de Godot-documentatie te verbeteren door feedback te geven" #: editor/plugins/script_editor_plugin.cpp msgid "Search the reference documentation." @@ -6133,10 +6538,12 @@ msgstr "" "Welke aktie moet worden genomen?:" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp msgid "Reload" msgstr "Herlaad" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp msgid "Resave" msgstr "Heropslaan" @@ -6151,6 +6558,31 @@ msgstr "Zoek Hulp" #: editor/plugins/script_text_editor.cpp #, fuzzy +msgid "Connections to method:" +msgstr "Verbind Aan Node:" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Source" +msgstr "Resource" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Signal" +msgstr "Signalen" + +#: editor/plugins/script_text_editor.cpp +msgid "Target" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "" +"Missing connected method '%s' for signal '%s' from node '%s' to node '%s'." +msgstr "Ontkoppel '%s' van '%s'" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy msgid "Line" msgstr "Regel:" @@ -6163,10 +6595,6 @@ msgstr "(negeren)" msgid "Go to Function" msgstr "Ga Naar Functie..." -#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp -msgid "Standard" -msgstr "Standaard" - #: editor/plugins/script_text_editor.cpp msgid "Only resources from filesystem can be dropped." msgstr "Alleen bronnen uit bestandssysteem kunnen gedropt worden." @@ -6200,6 +6628,11 @@ msgstr "Maak Hoofdletters" msgid "Syntax Highlighter" msgstr "Syntax Markeren" +#: editor/plugins/script_text_editor.cpp +#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp +msgid "Bookmarks" +msgstr "" + #: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" @@ -6227,6 +6660,26 @@ msgid "Toggle Comment" msgstr "Commentaar Aan/Uit" #: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Toggle Bookmark" +msgstr "Toggle Favoriet" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Go to Next Bookmark" +msgstr "Ga Naar Volgende Breekpunt" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Go to Previous Bookmark" +msgstr "Ga Naar Vorige Breekpunt" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Remove All Bookmarks" +msgstr "Verwijder Alle Items" + +#: editor/plugins/script_text_editor.cpp msgid "Fold/Unfold Line" msgstr "Vouw/Ontvouw Regel" @@ -6307,12 +6760,23 @@ msgid "Contextual Help" msgstr "Contextuele Hulp" #: editor/plugins/shader_editor_plugin.cpp +#, fuzzy +msgid "" +"This shader has been modified on on disk.\n" +"What action should be taken?" +msgstr "" +"De volgende bestanden zijn nieuwer op de schijf.\n" +"Welke aktie moet worden genomen?:" + +#: editor/plugins/shader_editor_plugin.cpp msgid "Shader" msgstr "Shader" #: editor/plugins/skeleton_2d_editor_plugin.cpp +#, fuzzy msgid "This skeleton has no bones, create some children Bone2D nodes." msgstr "" +"Dit skelet heeft geen botten, creëer enkele Bone2D-knooppunten als kinderen." #: editor/plugins/skeleton_2d_editor_plugin.cpp #, fuzzy @@ -6664,7 +7128,8 @@ msgid "Right View" msgstr "Rechter Zijaanzicht" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Switch Perspective/Orthogonal view" +#, fuzzy +msgid "Switch Perspective/Orthogonal View" msgstr "Schakel Perspectief/Orthogonaal aanzicht" #: editor/plugins/spatial_editor_plugin.cpp @@ -6705,11 +7170,13 @@ msgid "Toggle Freelook" msgstr "Toggle Favoriet" #: editor/plugins/spatial_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Transform" msgstr "Transformatie" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Snap object to floor" +#, fuzzy +msgid "Snap Object to Floor" msgstr "Lijn object uit op vloer" #: editor/plugins/spatial_editor_plugin.cpp @@ -6857,43 +7324,43 @@ msgstr "Ongeldige geometrie, kan niet worden vervangen door Mesh." #: editor/plugins/sprite_editor_plugin.cpp #, fuzzy -msgid "Invalid geometry, can't create polygon." -msgstr "Ongeldige geometrie, kan niet worden vervangen door Mesh." +msgid "Convert to Mesh2D" +msgstr "Verbind Aan Node:" #: editor/plugins/sprite_editor_plugin.cpp #, fuzzy -msgid "Invalid geometry, can't create collision polygon." +msgid "Invalid geometry, can't create polygon." msgstr "Ongeldige geometrie, kan niet worden vervangen door Mesh." #: editor/plugins/sprite_editor_plugin.cpp #, fuzzy -msgid "Invalid geometry, can't create light occluder." -msgstr "Ongeldige geometrie, kan niet worden vervangen door Mesh." +msgid "Convert to Polygon2D" +msgstr "Beweeg Polygon" #: editor/plugins/sprite_editor_plugin.cpp #, fuzzy -msgid "Sprite" -msgstr "Sprite-Frames" +msgid "Invalid geometry, can't create collision polygon." +msgstr "Ongeldige geometrie, kan niet worden vervangen door Mesh." #: editor/plugins/sprite_editor_plugin.cpp #, fuzzy -msgid "Convert to Mesh2D" -msgstr "Verbind Aan Node:" +msgid "Create CollisionPolygon2D Sibling" +msgstr "Creëer Navigatie Polygoon" #: editor/plugins/sprite_editor_plugin.cpp #, fuzzy -msgid "Convert to Polygon2D" -msgstr "Beweeg Polygon" +msgid "Invalid geometry, can't create light occluder." +msgstr "Ongeldige geometrie, kan niet worden vervangen door Mesh." #: editor/plugins/sprite_editor_plugin.cpp #, fuzzy -msgid "Create CollisionPolygon2D Sibling" -msgstr "Creëer Navigatie Polygoon" +msgid "Create LightOccluder2D Sibling" +msgstr "Creëer Occluder Polygon" #: editor/plugins/sprite_editor_plugin.cpp #, fuzzy -msgid "Create LightOccluder2D Sibling" -msgstr "Creëer Occluder Polygon" +msgid "Sprite" +msgstr "Sprite-Frames" #: editor/plugins/sprite_editor_plugin.cpp msgid "Simplification: " @@ -6914,14 +7381,24 @@ msgid "Settings:" msgstr "Instellingen" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "ERROR: Couldn't load frame resource!" -msgstr "FOUT: Kan frame benodigdheden niet laden!" +#, fuzzy +msgid "No Frames Selected" +msgstr "Raam Selectie" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Add %d Frame(s)" +msgstr "Voeg Frame toe" #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Add Frame" msgstr "Voeg Frame toe" #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "ERROR: Couldn't load frame resource!" +msgstr "FOUT: Kan frame benodigdheden niet laden!" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Resource clipboard is empty or not a texture!" msgstr "Klembord van bron is leeg of het is niet een textuur!" @@ -6965,6 +7442,15 @@ msgid "Animation Frames:" msgstr "Animatie Frames" #: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Add a Texture from File" +msgstr "Texture(n) aan TileSet toevoegen." + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Add Frames from a Sprite Sheet" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Insert Empty (Before)" msgstr "Lege Toevoegen (Hiervoor)" @@ -6981,12 +7467,38 @@ msgid "Move (After)" msgstr "Verplaats (Hierna)" #: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Select Frames" +msgstr "Selecteer een Node" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Horizontal:" +msgstr "Horizontaal omdraaien" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Vertical:" +msgstr "Vertices" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Select/Clear All Frames" +msgstr "Alles Selecteren" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Create Frames from Sprite Sheet" +msgstr "Creëer vanuit Scene" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "SpriteFrames" msgstr "Sprite-Frames" #: editor/plugins/texture_region_editor_plugin.cpp +#, fuzzy msgid "Set Region Rect" -msgstr "" +msgstr "Stel Gebied Vierkant in" #: editor/plugins/texture_region_editor_plugin.cpp msgid "Set Margin" @@ -7047,12 +7559,13 @@ msgstr "Allen Toevoegen" msgid "Remove All Items" msgstr "Verwijder Alle Items" -#: editor/plugins/theme_editor_plugin.cpp +#: editor/plugins/theme_editor_plugin.cpp editor/project_manager.cpp msgid "Remove All" msgstr "Verwijder Alles" #: editor/plugins/theme_editor_plugin.cpp -msgid "Edit theme..." +#, fuzzy +msgid "Edit Theme" msgstr "Bewerk Thema..." #: editor/plugins/theme_editor_plugin.cpp @@ -7080,18 +7593,25 @@ msgid "Create From Current Editor Theme" msgstr "Creëer Derivatie Huidig Editor Thema" #: editor/plugins/theme_editor_plugin.cpp -msgid "CheckBox Radio1" -msgstr "" +#, fuzzy +msgid "Toggle Button" +msgstr "Muis Knop" #: editor/plugins/theme_editor_plugin.cpp -msgid "CheckBox Radio2" -msgstr "" +#, fuzzy +msgid "Disabled Button" +msgstr "Middelste Knop" #: editor/plugins/theme_editor_plugin.cpp msgid "Item" msgstr "Item" #: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Disabled Item" +msgstr "Uitgeschakeld" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Check Item" msgstr "Item Aanvinken" @@ -7108,6 +7628,24 @@ msgid "Checked Radio Item" msgstr "Radio Item Aangevinkt" #: editor/plugins/theme_editor_plugin.cpp +msgid "Named Sep." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Submenu" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Item 1" +msgstr "Item" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Item 2" +msgstr "Item" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Has" msgstr "Heeft" @@ -7116,8 +7654,9 @@ msgid "Many" msgstr "Veel" #: editor/plugins/theme_editor_plugin.cpp -msgid "Has,Many,Options" -msgstr "Heeft,Veel,Opties" +#, fuzzy +msgid "Disabled LineEdit" +msgstr "Uitgeschakeld" #: editor/plugins/theme_editor_plugin.cpp msgid "Tab 1" @@ -7132,6 +7671,19 @@ msgid "Tab 3" msgstr "Tabblad 3" #: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Editable Item" +msgstr "Variabele Bewerken:" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Subtree" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Has,Many,Options" +msgstr "Heeft,Veel,Opties" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Data Type:" msgstr "Data Type:" @@ -7165,6 +7717,7 @@ msgid "Fix Invalid Tiles" msgstr "Ongeldige naam." #: editor/plugins/tile_map_editor_plugin.cpp +#: modules/gridmap/grid_map_editor_plugin.cpp #, fuzzy msgid "Cut Selection" msgstr "Centreer Selectie" @@ -7206,36 +7759,51 @@ msgid "Mirror Y" msgstr "Spiegel Y" #: editor/plugins/tile_map_editor_plugin.cpp +msgid "Disable Autotile" +msgstr "" + +#: editor/plugins/tile_map_editor_plugin.cpp +#, fuzzy +msgid "Enable Priority" +msgstr "Filters Bewerken" + +#: editor/plugins/tile_map_editor_plugin.cpp msgid "Paint Tile" msgstr "Teken Tegel" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Pick Tile" -msgstr "Kies Tegel" +msgid "" +"Shift+RMB: Line Draw\n" +"Shift+Ctrl+RMB: Rectangle Paint" +msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Copy Selection" -msgstr "Selectie kopiëren" +msgid "Pick Tile" +msgstr "Kies Tegel" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Rotate left" +#, fuzzy +msgid "Rotate Left" msgstr "Naar links draaien" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Rotate right" +#, fuzzy +msgid "Rotate Right" msgstr "Naar rechts draaien" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Flip horizontally" +#, fuzzy +msgid "Flip Horizontally" msgstr "Horizontaal omdraaien" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Flip vertically" +#, fuzzy +msgid "Flip Vertically" msgstr "Verticaal omdraaien" #: editor/plugins/tile_map_editor_plugin.cpp #, fuzzy -msgid "Clear transform" +msgid "Clear Transform" msgstr "Transform vrijmaken" #: editor/plugins/tile_set_editor_plugin.cpp @@ -7273,6 +7841,46 @@ msgid "Select the previous shape, subtile, or Tile." msgstr "Selecteer de vorige shape, subtegel of Tegel." #: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Region Mode" +msgstr "Uitvoermodus:" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Collision Mode" +msgstr "Interpolatiemodus" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Occlusion Mode" +msgstr "Bewerk Poly" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Navigation Mode" +msgstr "Creëer Navigatie Mesh" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Bitmask Mode" +msgstr "Rotatiemodus" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Priority Mode" +msgstr "Exporteer Modus:" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Icon Mode" +msgstr "Verschuif Modus" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Z Index Mode" +msgstr "Verschuif Modus" + +#: editor/plugins/tile_set_editor_plugin.cpp msgid "Copy bitmask." msgstr "Bitmasker kopiëren." @@ -7336,10 +7944,13 @@ msgid "%s file(s) were not added because was already on the list." msgstr "%s bestand(en) niet toegevoegd omdat deze al op de lijst staan." #: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy msgid "" "Drag handles to edit Rect.\n" "Click on another Tile to edit it." msgstr "" +"Versleep handles om Vierkant te bewerken.\n" +"Klik op een andere Tegel om deze te bewerken." #: editor/plugins/tile_set_editor_plugin.cpp #, fuzzy @@ -7363,6 +7974,7 @@ msgstr "Verwijder punten" msgid "" "LMB: Set bit on.\n" "RMB: Set bit off.\n" +"Shift+LMB: Set wildcard bit.\n" "Click on another Tile to edit it." msgstr "Selecteer een sub-tegel om zijn prioriteit te veranderen." @@ -7493,11 +8105,85 @@ msgid "TileSet" msgstr "TileSet..." #: editor/plugins/visual_shader_editor_plugin.cpp -msgid "Set Uniform Name" +#, fuzzy +msgid "Add input +" +msgstr "Voeg invoer toe" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Add output +" +msgstr "Voeg invoer toe" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar" +msgstr "Schaal:" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector" +msgstr "Inspecteur" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Add input port" +msgstr "Voeg invoer toe" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add output port" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp #, fuzzy +msgid "Change input port type" +msgstr "Wijzig standaard type" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change output port type" +msgstr "Wijzig standaard type" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change input port name" +msgstr "Verander Input Naam" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change output port name" +msgstr "Verander Input Naam" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Remove input port" +msgstr "Punt verwijderen" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Remove output port" +msgstr "Punt verwijderen" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Set expression" +msgstr "Verander Expressie" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Resize VisualShader node" +msgstr "Shader" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Set Uniform Name" +msgstr "Uniforme naam instellen" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy msgid "Set Input Default Port" msgstr "Stel in als Standaard voor '%s'" @@ -7537,6 +8223,859 @@ msgstr "Rechts" #: editor/plugins/visual_shader_editor_plugin.cpp #, fuzzy +msgid "Create Shader Node" +msgstr "Creëer Node" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Color function." +msgstr "Ga Naar Functie..." + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Color operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Grayscale function." +msgstr "Maak Functie" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts HSV vector to RGB equivalent." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts RGB vector to HSV equivalent." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Sepia function." +msgstr "Hernoem Functie" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Burn operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Darken operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Difference operator." +msgstr "Alleen verschillen" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Dodge operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "HardLight operator" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Lighten operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Overlay operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Screen operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "SoftLight operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Color constant." +msgstr "Constante" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Color uniform." +msgstr "Transform vrijmaken" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns an associated vector if the provided scalars are equal, greater or " +"less." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns an associated vector if the provided boolean value is true or false." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Boolean constant." +msgstr "Verander Vec Constante" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'camera' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'inv_camera' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'inv_projection' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'normal' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'projection' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'time' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'viewport_size' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'world' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'texture_pixel_size' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Input parameter." +msgstr "Snap naar ouder" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'binormal' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'fragcoord' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_coord' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_uv' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'side' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'tangent' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv2' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'vertex' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'view' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'albedo' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'attenuation' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'diffuse' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_color' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'roughness' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'specular' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'transmission' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'modelview' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_size' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'tangent' input parameter for vertex and fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_pass' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_coord' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_pixel_size' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_uv' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_alpha' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_height' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_uv' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_vec' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'normal' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'shadow_color' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'extra' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'projection' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'vertex' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'world' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'active' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'custom' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'custom_alpha' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'delta' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'emission_transform' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'index' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'lifetime' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'restart' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'time' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'transform' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'velocity' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar function." +msgstr "Verander Scalar Functie" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar operator." +msgstr "Verander Scalar Operator" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "E constant (2.718282). Represents the base of the natural logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Epsilon constant (0.00001). Smallest possible scalar number." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Phi constant (1.618034). Golden ratio." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi/4 constant (0.785398) or 45 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi/2 constant (1.570796) or 90 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi constant (3.141593) or 180 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Tau constant (6.283185) or 360 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Sqrt2 constant (1.414214). Square root of 2." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the absolute value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-tangent of the parameters." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Finds the nearest integer that is greater than or equal to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Constrains a value to lie between two further values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts a quantity in radians to degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-e Exponential." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-2 Exponential." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Finds the nearest integer less than or equal to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Computes the fractional part of the argument." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the inverse of the square root of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Natural logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-2 logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the greater of two values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the lesser of two values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Linear interpolation between two scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the opposite value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 - scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns the value of the first parameter raised to the power of the second." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts a quantity in degrees to radians." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 / scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the nearest integer to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the nearest even integer to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Clamps the value between 0.0 and 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Extracts the sign of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the square root of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( scalar(edge0), scalar(edge1), scalar(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if x is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( scalar(edge), scalar(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the truncated value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Adds scalar to scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Divides scalar by scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies scalar by scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the remainder of the two scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Subtracts scalar from scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar constant." +msgstr "Verander Shalar Constante" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar uniform." +msgstr "Verander Scalar Uniform" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Perform the cubic texture lookup." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Perform the texture lookup." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Cubic texture uniform." +msgstr "Verander Textuur Uniform" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "2D texture uniform." +msgstr "Verander Textuur Uniform" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Transform function." +msgstr "Transformatie Dialoog..." + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) Calculate the outer product of a pair of vectors.\n" +"\n" +"OuterProduct treats the first parameter 'c' as a column vector (matrix with " +"one column) and the second parameter 'r' as a row vector (matrix with one " +"row) and does a linear algebraic matrix multiply 'c * r', yielding a matrix " +"whose number of rows is the number of components in 'c' and whose number of " +"columns is the number of components in 'r'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Composes transform from four vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Decomposes transform to four vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the determinant of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the inverse of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the transpose of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies transform by transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies vector by transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Transform constant." +msgstr "Transformatie Afgebroken." + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Transform uniform." +msgstr "Transformatie Afgebroken." + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector function." +msgstr "Ga Naar Functie..." + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector operator." +msgstr "Verander Vec Operator" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Composes vector from three scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Decomposes vector to three scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the cross product of two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the distance between two points." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the dot product of two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns a vector that points in the same direction as a reference vector. " +"The function has three vector parameters : N, the vector to orient, I, the " +"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 "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the length of a vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Linear interpolation between two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the normalize product of vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 - vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 / vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns a vector that points in the direction of reflection ( a : incident " +"vector, b : normal vector )." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns a vector that points in the direction of refraction." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( vector(edge0), vector(edge1), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if 'x' is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( scalar(edge0), scalar(edge1), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if 'x' is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( vector(edge), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( scalar(edge), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Adds vector to vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Divides vector by vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies vector by vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the remainder of the two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Subtracts vector from vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector constant." +msgstr "Verander Vec Constante" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector uniform." +msgstr "Verander Vec Uniform" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Custom Godot Shader Language expression, with custom amount of input and " +"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 "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns falloff based on the dot product of surface normal and view " +"direction of camera (pass associated inputs to it)." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) (Fragment/Light mode only) Scalar derivative function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) (Fragment/Light mode only) Vector derivative function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Derivative in 'x' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Derivative in 'x' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Derivative in 'y' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Derivative in 'y' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Sum of absolute derivative " +"in 'x' and 'y'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Sum of absolute derivative " +"in 'x' and 'y'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy msgid "VisualShader" msgstr "Shader" @@ -7744,6 +9283,10 @@ msgid "Directory already contains a Godot project." msgstr "Map bevat al een Godot project." #: editor/project_manager.cpp +msgid "New Game Project" +msgstr "Nieuw spelproject" + +#: editor/project_manager.cpp msgid "Imported Project" msgstr "Geïmporteerd Project" @@ -7786,7 +9329,7 @@ msgstr "Kan project.godot niet in projectpad maken." #: editor/project_manager.cpp msgid "The following files failed extraction from package:" -msgstr "" +msgstr "De volgende bestanden konden niet worden uitgepakt:" #: editor/project_manager.cpp #, fuzzy @@ -7794,10 +9337,6 @@ msgid "Rename Project" msgstr "Hernoem Functie" #: editor/project_manager.cpp -msgid "New Game Project" -msgstr "Nieuw spelproject" - -#: editor/project_manager.cpp msgid "Import Existing Project" msgstr "Importeer bestaand project" @@ -7827,11 +9366,6 @@ msgid "Project Name:" msgstr "Projectnaam:" #: editor/project_manager.cpp -#, fuzzy -msgid "Create folder" -msgstr "Map Maken" - -#: editor/project_manager.cpp msgid "Project Path:" msgstr "Projectpad:" @@ -7840,10 +9374,6 @@ msgid "Project Installation Path:" msgstr "Project Installatie Path:" #: editor/project_manager.cpp -msgid "Browse" -msgstr "Bladeren" - -#: editor/project_manager.cpp msgid "Renderer:" msgstr "Renderer:" @@ -7899,6 +9429,7 @@ msgid "Are you sure to open more than one project?" msgstr "Weet je zeker dat je meer dan één project wilt openen?" #: editor/project_manager.cpp +#, fuzzy msgid "" "The following project settings file does not specify the version of Godot " "through which it was created.\n" @@ -7907,8 +9438,8 @@ msgid "" "\n" "If you proceed with opening it, it will be converted to Godot's current " "configuration file format.\n" -"Warning: You will not be able to open the project with previous versions of " -"the engine anymore." +"Warning: You won't be able to open the project with previous versions of the " +"engine anymore." msgstr "" "Het volgende project-configuratiebestand specificeert niet door welke versie " "van Godot deze gemaakt is.\n" @@ -7921,6 +9452,7 @@ msgstr "" "versies van Godot Engine." #: editor/project_manager.cpp +#, fuzzy msgid "" "The following project settings file was generated by an older engine " "version, and needs to be converted for this version:\n" @@ -7928,8 +9460,8 @@ msgid "" "%s\n" "\n" "Do you want to convert it?\n" -"Warning: You will not be able to open the project with previous versions of " -"the engine anymore." +"Warning: You won't be able to open the project with previous versions of the " +"engine anymore." msgstr "" "Het volgende project-configuratiebestand was gegenereerd door een oudere " "versie van Godot Engine, en moet worden geconverteerd voor deze versie:\n" @@ -7949,9 +9481,10 @@ msgstr "" "Godot Engine, en is incompatibel met de huidige versie." #: editor/project_manager.cpp +#, fuzzy msgid "" "Can't run project: no main scene defined.\n" -"Please edit the project and set the main scene in \"Project Settings\" under " +"Please edit the project and set the main scene in the Project Settings under " "the \"Application\" category." msgstr "" "Kan project niet uitvoeren: geen hoofdscène gedefinieerd.\n" @@ -7967,26 +9500,48 @@ msgstr "" "Wijzig het project om de initiële import te starten." #: editor/project_manager.cpp -msgid "Are you sure to run more than one project?" +#, fuzzy +msgid "Are you sure to run %d projects at once?" msgstr "Weet je zeker dat je meerdere projecten wilt uitvoeren?" #: editor/project_manager.cpp -msgid "Remove project from the list? (Folder contents will not be modified)" +#, fuzzy +msgid "" +"Remove %d projects from the list?\n" +"The project folders' contents won't be modified." +msgstr "" +"Project uit de lijst verwijderen? (Inhoud van map wordt niet gewijzigd)" + +#: editor/project_manager.cpp +#, fuzzy +msgid "" +"Remove this project from the list?\n" +"The project folder's contents won't be modified." +msgstr "" +"Project uit de lijst verwijderen? (Inhoud van map wordt niet gewijzigd)" + +#: editor/project_manager.cpp +#, fuzzy +msgid "" +"Remove all missing projects from the list? (Folders contents will not be " +"modified)" msgstr "" "Project uit de lijst verwijderen? (Inhoud van map wordt niet gewijzigd)" #: editor/project_manager.cpp +#, fuzzy msgid "" "Language changed.\n" -"The UI will update next time the editor or project manager starts." +"The interface will update after restarting the editor or project manager." msgstr "" "Taal veranderd. De gebruikersinterface wordt bijgewerkt de volgende keer dat " "de editor of projectmanager wordt gestart." #: editor/project_manager.cpp +#, fuzzy msgid "" -"You are about the scan %s folders for existing Godot projects. Do you " -"confirm?" +"Are you sure to scan %s folders for existing Godot projects?\n" +"This could take a while." msgstr "" "U staat op het punt om %s folders te scannen voor bestaande Godot projecten. " "Akkoord?" @@ -8013,6 +9568,11 @@ msgstr "Nieuw Project" #: editor/project_manager.cpp #, fuzzy +msgid "Remove Missing" +msgstr "Punt verwijderen" + +#: editor/project_manager.cpp +#, fuzzy msgid "Templates" msgstr "Verwijder Selectie" @@ -8030,9 +9590,10 @@ msgid "Can't run project" msgstr "Verbind..." #: editor/project_manager.cpp +#, fuzzy msgid "" -"You don't currently have any projects.\n" -"Would you like to explore the official example projects in the Asset Library?" +"You currently don't have any projects.\n" +"Would you like to explore official example projects in the Asset Library?" msgstr "" "U heeft momenteel geen projecten.\n" "Wilt u de officiële voorbeeldprojecten verkennen in de Asset Library?" @@ -8062,7 +9623,8 @@ msgstr "" "'\"' bevatten" #: editor/project_settings_editor.cpp -msgid "Action '%s' already exists!" +#, fuzzy +msgid "An action with the name '%s' already exists." msgstr "Action '%s' bestaat al!" #: editor/project_settings_editor.cpp @@ -8226,10 +9788,6 @@ msgstr "" "'\"' bevatten." #: editor/project_settings_editor.cpp -msgid "Already existing" -msgstr "Bestaat al" - -#: editor/project_settings_editor.cpp msgid "Add Input Action" msgstr "Toevoegen Input Action" @@ -8296,7 +9854,8 @@ msgid "Override For..." msgstr "Override Voor..." #: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp -msgid "Editor must be restarted for changes to take effect" +#, fuzzy +msgid "The editor must be restarted for changes to take effect." msgstr "Editor moet worden herstart voordat de wijzigingen worden toegepast" #: editor/project_settings_editor.cpp @@ -8359,12 +9918,14 @@ msgid "Locales Filter" msgstr "Lokalen Filter" #: editor/project_settings_editor.cpp -msgid "Show all locales" -msgstr "" +#, fuzzy +msgid "Show All Locales" +msgstr "Laat Botten Zien" #: editor/project_settings_editor.cpp -msgid "Show only selected locales" -msgstr "" +#, fuzzy +msgid "Show Selected Locales Only" +msgstr "Alleen Selectie" #: editor/project_settings_editor.cpp #, fuzzy @@ -8380,14 +9941,6 @@ msgid "AutoLoad" msgstr "Automatisch Laden" #: editor/property_editor.cpp -msgid "Ease In" -msgstr "" - -#: editor/property_editor.cpp -msgid "Ease Out" -msgstr "" - -#: editor/property_editor.cpp msgid "Zero" msgstr "Nul" @@ -8405,7 +9958,7 @@ msgstr "Bestand..." #: editor/property_editor.cpp msgid "Dir..." -msgstr "" +msgstr "Pad..." #: editor/property_editor.cpp msgid "Assign" @@ -8427,7 +9980,7 @@ msgstr "Plak Nodes" #: editor/property_editor.cpp msgid "Bit %d, val %d." -msgstr "" +msgstr "Bit %d, waarde %d." #: editor/property_selector.cpp msgid "Select Property" @@ -8464,7 +10017,7 @@ msgstr "Achtervoegsel" #: editor/rename_dialog.cpp #, fuzzy -msgid "Advanced options" +msgid "Advanced Options" msgstr "Uitlijnen opties" #: editor/rename_dialog.cpp @@ -8620,7 +10173,7 @@ msgstr "Scene Uitvoerinstellingen" #: editor/scene_tree_dock.cpp msgid "No parent to instance the scenes at." -msgstr "" +msgstr "Geen ouder om scenes mee te instantiëren." #: editor/scene_tree_dock.cpp msgid "Error loading scene from %s" @@ -8645,16 +10198,19 @@ msgid "Clear Script" msgstr "Script vrijmaken" #: editor/scene_tree_dock.cpp +#, fuzzy msgid "This operation can't be done on the tree root." -msgstr "" +msgstr "Deze bewerking kan niet worden uitgevoerd op de tree root." #: editor/scene_tree_dock.cpp +#, fuzzy msgid "Move Node In Parent" -msgstr "" +msgstr "Verplaats knooppunt naar ouder" #: editor/scene_tree_dock.cpp +#, fuzzy msgid "Move Nodes In Parent" -msgstr "" +msgstr "Verplaats knooppunten naar ouder" #: editor/scene_tree_dock.cpp msgid "Duplicate Node(s)" @@ -8738,8 +10294,8 @@ msgstr "" #: editor/scene_tree_dock.cpp #, fuzzy -msgid "Custom Node" -msgstr "Knip Nodes" +msgid "Other Node" +msgstr "Alles Selecteren" #: editor/scene_tree_dock.cpp msgid "Can't operate on nodes from a foreign scene!" @@ -8783,7 +10339,7 @@ msgstr "" #: editor/scene_tree_dock.cpp #, fuzzy -msgid "Open documentation" +msgid "Open Documentation" msgstr "Open Godot online documentatie" #: editor/scene_tree_dock.cpp @@ -8813,7 +10369,7 @@ msgstr "" msgid "Save Branch as Scene" msgstr "" -#: editor/scene_tree_dock.cpp +#: editor/scene_tree_dock.cpp editor/script_editor_debugger.cpp #, fuzzy msgid "Copy Node Path" msgstr "Kopiëer Nodes" @@ -8862,6 +10418,21 @@ msgstr "Toggle Verborgen Bestanden" #: editor/scene_tree_editor.cpp #, fuzzy +msgid "Unlock Node" +msgstr "Alles Selecteren" + +#: editor/scene_tree_editor.cpp +#, fuzzy +msgid "Button Group" +msgstr "Toevoegen aan Groep" + +#: editor/scene_tree_editor.cpp +#, fuzzy +msgid "(Connecting From)" +msgstr "Verbindingsfout" + +#: editor/scene_tree_editor.cpp +#, fuzzy msgid "Node configuration warning:" msgstr "Knooppunt configuratie waarschuwing:" @@ -8883,9 +10454,9 @@ msgid "" "Click to show groups dock." msgstr "" -#: editor/scene_tree_editor.cpp editor/script_create_dialog.cpp +#: editor/scene_tree_editor.cpp #, fuzzy -msgid "Open Script" +msgid "Open Script:" msgstr "Omschrijving:" #: editor/scene_tree_editor.cpp @@ -8931,72 +10502,84 @@ msgid "Select a Node" msgstr "Selecteer een Node" #: editor/script_create_dialog.cpp -msgid "Error loading template '%s'" -msgstr "Error bij het laden van sjabloon '%s'" +#, fuzzy +msgid "Path is empty." +msgstr "Path is leeg" #: editor/script_create_dialog.cpp -msgid "Error - Could not create script in filesystem." -msgstr "Fout - Kon geen script aanmaken in bestandssysteem." +#, fuzzy +msgid "Filename is empty." +msgstr "Bestandsnaam is leeg" #: editor/script_create_dialog.cpp -msgid "Error loading script from %s" -msgstr "Fout bij het laden script van %s" +#, fuzzy +msgid "Path is not local." +msgstr "Path is niet lokaal" #: editor/script_create_dialog.cpp -msgid "N/A" -msgstr "Niet van toepassing" +#, fuzzy +msgid "Invalid base path." +msgstr "Ongeldig basis path" #: editor/script_create_dialog.cpp -msgid "Open Script/Choose Location" -msgstr "Open Script/Kies Locatie" +#, fuzzy +msgid "A directory with the same name exists." +msgstr "Directory met dezelfde naam bestaat al" #: editor/script_create_dialog.cpp -msgid "Path is empty" -msgstr "Path is leeg" +#, fuzzy +msgid "Invalid extension." +msgstr "Ongeldige extensie" #: editor/script_create_dialog.cpp -msgid "Filename is empty" -msgstr "Bestandsnaam is leeg" +#, fuzzy +msgid "Wrong extension chosen." +msgstr "Verkeerde extensie gekozen" #: editor/script_create_dialog.cpp -msgid "Path is not local" -msgstr "Path is niet lokaal" +msgid "Error loading template '%s'" +msgstr "Error bij het laden van sjabloon '%s'" #: editor/script_create_dialog.cpp -msgid "Invalid base path" -msgstr "Ongeldig basis path" +msgid "Error - Could not create script in filesystem." +msgstr "Fout - Kon geen script aanmaken in bestandssysteem." #: editor/script_create_dialog.cpp -msgid "Directory of the same name exists" -msgstr "Directory met dezelfde naam bestaat al" +msgid "Error loading script from %s" +msgstr "Fout bij het laden script van %s" #: editor/script_create_dialog.cpp -msgid "File exists, will be reused" -msgstr "Bestand Bestaat, zal herbruikt worden" +msgid "N/A" +msgstr "Niet van toepassing" #: editor/script_create_dialog.cpp -msgid "Invalid extension" -msgstr "Ongeldige extensie" +#, fuzzy +msgid "Open Script / Choose Location" +msgstr "Open Script/Kies Locatie" #: editor/script_create_dialog.cpp -msgid "Wrong extension chosen" -msgstr "Verkeerde extensie gekozen" +#, fuzzy +msgid "Open Script" +msgstr "Omschrijving:" #: editor/script_create_dialog.cpp -msgid "Invalid Path" -msgstr "Ongeldig Path" +#, fuzzy +msgid "File exists, it will be reused." +msgstr "Bestand Bestaat, zal herbruikt worden" #: editor/script_create_dialog.cpp -msgid "Invalid class name" +#, fuzzy +msgid "Invalid class name." msgstr "Ongeldige klassenaam" #: editor/script_create_dialog.cpp #, fuzzy -msgid "Invalid inherited parent name or path" +msgid "Invalid inherited parent name or path." msgstr "Ongeldige index eigenschap naam." #: editor/script_create_dialog.cpp -msgid "Script valid" +#, fuzzy +msgid "Script is valid." msgstr "Script geldig" #: editor/script_create_dialog.cpp @@ -9004,15 +10587,18 @@ msgid "Allowed: a-z, A-Z, 0-9 and _" msgstr "Toegestaan: a-z, A-Z, 0-9 en _" #: editor/script_create_dialog.cpp -msgid "Built-in script (into scene file)" +#, fuzzy +msgid "Built-in script (into scene file)." msgstr "Ingebouwd script (in scene bestand)" #: editor/script_create_dialog.cpp -msgid "Create new script file" +#, fuzzy +msgid "Will create a new script file." msgstr "Maak nieuw script bestand" #: editor/script_create_dialog.cpp -msgid "Load existing script file" +#, fuzzy +msgid "Will load an existing script file." msgstr "Laad bestaand script" #: editor/script_create_dialog.cpp @@ -9144,6 +10730,10 @@ msgstr "" msgid "Set From Tree" msgstr "" +#: editor/script_editor_debugger.cpp +msgid "Export measures as CSV" +msgstr "" + #: editor/settings_config_dialog.cpp #, fuzzy msgid "Erase Shortcut" @@ -9276,6 +10866,15 @@ msgid "GDNativeLibrary" msgstr "GDInheemsBibliotheek" #: 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 "Schakel Update Draaier Uit" + +#: modules/gdnative/gdnative_library_singleton_editor.cpp msgid "Library" msgstr "Bibliotheek" @@ -9368,8 +10967,8 @@ msgstr "Geselecteerde Verwijderen" #: modules/gridmap/grid_map_editor_plugin.cpp #, fuzzy -msgid "GridMap Duplicate Selection" -msgstr "Dupliceer Selectie" +msgid "GridMap Paste Selection" +msgstr "Geselecteerde Verwijderen" #: modules/gridmap/grid_map_editor_plugin.cpp msgid "GridMap Paint" @@ -9438,19 +11037,6 @@ msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp #, fuzzy -msgid "Create Area" -msgstr "Nieuwe Maken" - -#: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Create Exterior Connector" -msgstr "" - -#: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Erase Area" -msgstr "" - -#: modules/gridmap/grid_map_editor_plugin.cpp -#, fuzzy msgid "Clear Selection" msgstr "Schaal Selectie" @@ -9840,18 +11426,11 @@ msgid "Available Nodes:" msgstr "Beschikbare Nodes:" #: modules/visual_script/visual_script_editor.cpp -msgid "Select or create a function to edit graph" +#, fuzzy +msgid "Select or create a function to edit its graph." msgstr "Selecteer of maak een functie om de grafiek te bewerken" #: modules/visual_script/visual_script_editor.cpp -msgid "Edit Signal Arguments:" -msgstr "Signaal Argumenten Bewerken:" - -#: modules/visual_script/visual_script_editor.cpp -msgid "Edit Variable:" -msgstr "Variabele Bewerken:" - -#: modules/visual_script/visual_script_editor.cpp msgid "Delete Selected" msgstr "Geselecteerde Verwijderen" @@ -9983,6 +11562,19 @@ msgid "Debug keystore not configured in the Editor Settings nor in the preset." msgstr "" #: platform/android/export/export.cpp +msgid "Custom build requires a valid Android SDK path in Editor Settings." +msgstr "" + +#: platform/android/export/export.cpp +msgid "Invalid Android SDK path for custom build in Editor Settings." +msgstr "" + +#: platform/android/export/export.cpp +msgid "" +"Android project is not installed for compiling. Install from Editor menu." +msgstr "" + +#: platform/android/export/export.cpp msgid "Invalid public key for APK expansion." msgstr "" @@ -9991,6 +11583,34 @@ msgstr "" msgid "Invalid package name:" msgstr "Ongeldige klassenaam" +#: platform/android/export/export.cpp +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 "" +"Android build version mismatch:\n" +" Template installed: %s\n" +" Godot Version: %s\n" +"Please reinstall Android build template from 'Project' menu." +msgstr "" + +#: platform/android/export/export.cpp +msgid "Building Android Project (gradle)" +msgstr "" + +#: 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 "" + +#: platform/android/export/export.cpp +msgid "No build apk generated at: " +msgstr "" + #: platform/iphone/export/export.cpp msgid "Identifier is missing." msgstr "" @@ -10289,27 +11909,27 @@ msgid "ARVRCamera must have an ARVROrigin node as its parent" msgstr "" #: scene/3d/arvr_nodes.cpp -msgid "ARVRController must have an ARVROrigin node as its parent" +msgid "ARVRController must have an ARVROrigin node as its parent." msgstr "" #: scene/3d/arvr_nodes.cpp msgid "" -"The controller id must not be 0 or this controller will not be bound to an " -"actual controller" +"The controller ID must not be 0 or this controller won't be bound to an " +"actual controller." msgstr "" #: scene/3d/arvr_nodes.cpp -msgid "ARVRAnchor must have an ARVROrigin node as its parent" +msgid "ARVRAnchor must have an ARVROrigin node as its parent." msgstr "" #: scene/3d/arvr_nodes.cpp msgid "" -"The anchor id must not be 0 or this anchor will not be bound to an actual " -"anchor" +"The anchor ID must not be 0 or this anchor won't be bound to an actual " +"anchor." msgstr "" #: scene/3d/arvr_nodes.cpp -msgid "ARVROrigin requires an ARVRCamera child node" +msgid "ARVROrigin requires an ARVRCamera child node." msgstr "" #: scene/3d/baked_lightmap.cpp @@ -10387,8 +12007,8 @@ msgstr "" #: scene/3d/cpu_particles.cpp msgid "" -"CPUParticles animation requires the usage of a SpatialMaterial with " -"\"Billboard Particles\" enabled." +"CPUParticles animation requires the usage of a SpatialMaterial whose " +"Billboard Mode is set to \"Particle Billboard\"." msgstr "" #: scene/3d/gi_probe.cpp @@ -10429,8 +12049,8 @@ msgstr "" #: scene/3d/particles.cpp msgid "" -"Particles animation requires the usage of a SpatialMaterial with \"Billboard " -"Particles\" enabled." +"Particles animation requires the usage of a SpatialMaterial whose Billboard " +"Mode is set to \"Particle Billboard\"." msgstr "" #: scene/3d/path.cpp @@ -10457,7 +12077,7 @@ msgstr "" "Pad eigenschap moet verwijzen naar een geldige Spatial node om te werken." #: scene/3d/soft_body.cpp -msgid "This body will be ignored until you set a mesh" +msgid "This body will be ignored until you set a mesh." msgstr "" #: scene/3d/soft_body.cpp @@ -10565,7 +12185,7 @@ msgstr "Huidige kleur als een preset toevoegen" msgid "" "Container by itself serves no purpose unless a script configures it's " "children placement behavior.\n" -"If you dont't intend to add a script, then please use a plain 'Control' node " +"If you don't intend to add a script, then please use a plain 'Control' node " "instead." msgstr "" @@ -10577,11 +12197,6 @@ msgstr "Alarm!" msgid "Please Confirm..." msgstr "Bevestig Alsjeblieft..." -#: scene/gui/file_dialog.cpp -#, fuzzy -msgid "Go to parent folder." -msgstr "Ga naar bovenliggende folder" - #: scene/gui/popup.cpp msgid "" "Popups will hide by default unless you call popup() or any of the popup*() " @@ -10664,6 +12279,71 @@ msgstr "" msgid "Varyings can only be assigned in vertex function." msgstr "" +#: servers/visual/shader_language.cpp +msgid "Constants cannot be modified." +msgstr "" + +#~ msgid "Path to Node:" +#~ msgstr "Pad naar Node:" + +#~ msgid "Delete selected files?" +#~ msgstr "Verwijder geselecteerde bestanden?" + +#~ msgid "There is no 'res://default_bus_layout.tres' file." +#~ msgstr "Er is geen 'res://default_bus_layout.tres' bestand." + +#~ 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" + +#~ msgid "Previous Directory" +#~ msgstr "Vorige Map" + +#~ msgid "Next Directory" +#~ msgstr "Volgende Map" + +#~ msgid "Ease in" +#~ msgstr "Rustig Aanzetten" + +#~ msgid "Ease out" +#~ msgstr "Rustig Afzetten" + +#~ msgid "Create Convex Static Body" +#~ msgstr "Creëer Convex Statisch Lichaam" + +#, fuzzy +#~ msgid "Create folder" +#~ msgstr "Map Maken" + +#~ msgid "Already existing" +#~ msgstr "Bestaat al" + +#, fuzzy +#~ msgid "Custom Node" +#~ msgstr "Knip Nodes" + +#~ msgid "Invalid Path" +#~ msgstr "Ongeldig Path" + +#, fuzzy +#~ msgid "GridMap Duplicate Selection" +#~ msgstr "Dupliceer Selectie" + +#, fuzzy +#~ msgid "Create Area" +#~ msgstr "Nieuwe Maken" + +#~ msgid "Edit Signal Arguments:" +#~ msgstr "Signaal Argumenten Bewerken:" + +#~ msgid "Edit Variable:" +#~ msgstr "Variabele Bewerken:" + #, fuzzy #~ msgid "Snap (s): " #~ msgstr "Stap(pen):" @@ -10782,9 +12462,6 @@ msgstr "" #~ msgid "Class List:" #~ msgstr "Klasse Lijst:" -#~ msgid "Search Classes" -#~ msgstr "Zoek Klasses" - #~ msgid "Public Methods" #~ msgstr "Publieke Methodes" @@ -10861,21 +12538,9 @@ msgstr "" #~ msgid "Get" #~ msgstr "Krijg" -#~ msgid "Change Scalar Constant" -#~ msgstr "Verander Shalar Constante" - -#~ msgid "Change Vec Constant" -#~ msgstr "Verander Vec Constante" - #~ msgid "Change RGB Constant" #~ msgstr "Verander RGB Constante" -#~ msgid "Change Scalar Operator" -#~ msgstr "Verander Scalar Operator" - -#~ msgid "Change Vec Operator" -#~ msgstr "Verander Vec Operator" - #~ msgid "Change Vec Scalar Operator" #~ msgstr "Verander Vec Scalar Operator" @@ -10885,18 +12550,9 @@ msgstr "" #~ msgid "Toggle Rot Only" #~ msgstr "Aan/Uit Alleen Rot" -#~ msgid "Change Scalar Function" -#~ msgstr "Verander Scalar Functie" - #~ msgid "Change Vec Function" #~ msgstr "Verander Vec Functie" -#~ msgid "Change Scalar Uniform" -#~ msgstr "Verander Scalar Uniform" - -#~ msgid "Change Vec Uniform" -#~ msgstr "Verander Vec Uniform" - #~ msgid "Change RGB Uniform" #~ msgstr "Verander RGB Uniform" @@ -10906,9 +12562,6 @@ msgstr "" #~ msgid "Change XForm Uniform" #~ msgstr "Verander XForm Uniform" -#~ msgid "Change Texture Uniform" -#~ msgstr "Verander Textuur Uniform" - #~ msgid "Change Cubemap Uniform" #~ msgstr "Verander Cubemap Uniform" @@ -10928,9 +12581,6 @@ msgstr "" #~ msgid "Modify Curve Map" #~ msgstr "Wijzig Curve Map" -#~ msgid "Change Input Name" -#~ msgstr "Verander Input Naam" - #~ msgid "Connect Graph Nodes" #~ msgstr "Verbind Graaf Knooppunten" @@ -10955,9 +12605,6 @@ msgstr "" #~ msgid "Add Shader Graph Node" #~ msgstr "Voeg Shader Graaf Knooppunt Toe" -#~ msgid "Disabled" -#~ msgstr "Uitgeschakeld" - #~ msgid "Move Anim Track Up" #~ msgstr "Verplaats Anim Track Omhoog" @@ -11143,10 +12790,6 @@ msgstr "" #~ msgstr "Aanroep" #, fuzzy -#~ msgid "Edit Variable" -#~ msgstr "Variabele Bewerken:" - -#, fuzzy #~ msgid "Edit Signal" #~ msgstr "Signaal Bewerken:" @@ -11193,12 +12836,6 @@ msgstr "" #~ msgstr "Lijst:" #, fuzzy -#~ msgid "" -#~ "\n" -#~ "Source: " -#~ msgstr "Resource" - -#, fuzzy #~ msgid "Add Point to Line2D" #~ msgstr "Ga naar Regel" diff --git a/editor/translations/pl.po b/editor/translations/pl.po index 7923ebe539..912df265a7 100644 --- a/editor/translations/pl.po +++ b/editor/translations/pl.po @@ -33,11 +33,12 @@ # Robert <vizz0@onet.pl>, 2019. # MichaÅ‚ Topa <moonchasered@gmail.com>, 2019. # PrzemysÅ‚aw Pierzga <przemyslawpierzga@gmail.com>, 2019. +# Artur MaciÄ…g <arturmaciag@gmail.com>, 2019. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2019-04-25 11:54+0000\n" +"PO-Revision-Date: 2019-06-16 19:42+0000\n" "Last-Translator: Tomek <kobewi4e@gmail.com>\n" "Language-Team: Polish <https://hosted.weblate.org/projects/godot-engine/" "godot/pl/>\n" @@ -103,6 +104,15 @@ msgstr "Zrównoważony" msgid "Mirror" msgstr "Odbij" +#: editor/animation_bezier_editor.cpp editor/editor_profiler.cpp +msgid "Time:" +msgstr "Czas:" + +#: editor/animation_bezier_editor.cpp +#, fuzzy +msgid "Value:" +msgstr "Wartość" + #: editor/animation_bezier_editor.cpp msgid "Insert Key Here" msgstr "Wstaw klucz tutaj" @@ -185,14 +195,18 @@ msgid "Animation Playback Track" msgstr "Åšcieżka animacji" #: editor/animation_track_editor.cpp -msgid "Add Track" -msgstr "Dodaj Å›cieżkÄ™" +msgid "Animation length (frames)" +msgstr "DÅ‚ugość animacji (klatki)" #: editor/animation_track_editor.cpp -msgid "Animation Length Time (seconds)" +msgid "Animation length (seconds)" msgstr "DÅ‚ugość animacji (sekundy)" #: editor/animation_track_editor.cpp +msgid "Add Track" +msgstr "Dodaj Å›cieżkÄ™" + +#: editor/animation_track_editor.cpp msgid "Animation Looping" msgstr "ZapÄ™tlenie animacji" @@ -316,11 +330,13 @@ msgid "Create %d NEW tracks and insert keys?" msgstr "Utworzyć %d NOWYCH Å›cieżek i wstawić klucze?" #: editor/animation_track_editor.cpp editor/create_dialog.cpp -#: editor/editor_audio_buses.cpp editor/editor_plugin_settings.cpp -#: editor/plugin_config_dialog.cpp +#: editor/editor_audio_buses.cpp editor/editor_feature_profile.cpp +#: editor/editor_plugin_settings.cpp editor/plugin_config_dialog.cpp #: editor/plugins/abstract_polygon_2d_editor.cpp #: editor/plugins/mesh_instance_editor_plugin.cpp -#: editor/plugins/particles_editor_plugin.cpp editor/script_create_dialog.cpp +#: editor/plugins/particles_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_create_dialog.cpp msgid "Create" msgstr "Utwórz" @@ -437,6 +453,23 @@ msgstr "" "Ta opcja nie dziaÅ‚a dla edycji Beziera, ponieważ jest to tylko jedna Å›cieżka." #: editor/animation_track_editor.cpp +msgid "" +"This animation belongs to an imported scene, so changes to imported tracks " +"will not be saved.\n" +"\n" +"To enable the ability to add custom tracks, navigate to the scene's import " +"settings and set\n" +"\"Animation > Storage\" to \"Files\", enable \"Animation > Keep Custom Tracks" +"\", then re-import.\n" +"Alternatively, use an import preset that imports animations to separate " +"files." +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Warning: Editing imported animation" +msgstr "" + +#: editor/animation_track_editor.cpp msgid "Only show tracks from nodes selected in tree." msgstr "Pokaż tylko Å›cieżki z wÄ™złów zaznaczonych w drzewie." @@ -445,9 +478,8 @@ msgid "Group tracks by node or display them as plain list." msgstr "Grupuj Å›cieżki po wÄ™zÅ‚ach lub wyÅ›wietl je jako prostÄ… listÄ™." #: editor/animation_track_editor.cpp -#, fuzzy msgid "Snap:" -msgstr "PrzyciÄ…gaj" +msgstr "PrzyciÄ…ganie:" #: editor/animation_track_editor.cpp msgid "Animation step value." @@ -455,7 +487,7 @@ msgstr "Wartość kroku animacji." #: editor/animation_track_editor.cpp msgid "Seconds" -msgstr "" +msgstr "sekund" #: editor/animation_track_editor.cpp msgid "FPS" @@ -570,7 +602,8 @@ msgstr "Współczynnik skali:" msgid "Select tracks to copy:" msgstr "Wybierz Å›cieżki do skopiowania:" -#: editor/animation_track_editor.cpp editor/editor_properties.cpp +#: editor/animation_track_editor.cpp editor/editor_log.cpp +#: editor/editor_properties.cpp #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp @@ -638,6 +671,11 @@ msgstr "ZastÄ…p wszystkie" msgid "Selection Only" msgstr "Tylko zaznaczenie" +#: editor/code_editor.cpp editor/plugins/script_text_editor.cpp +#: editor/plugins/text_editor.cpp +msgid "Standard" +msgstr "Standardowy" + #: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/texture_region_editor_plugin.cpp #: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp @@ -663,21 +701,39 @@ msgid "Line and column numbers." msgstr "Numery linii i kolumn." #: editor/connections_dialog.cpp -msgid "Method in target Node must be specified!" +#, fuzzy +msgid "Method in target node must be specified." msgstr "Wybierz metodÄ™ w wybranym węźle!" #: editor/connections_dialog.cpp +#, fuzzy msgid "" -"Target method not found! Specify a valid method or attach a script to target " -"Node." +"Target method not found. Specify a valid method or attach a script to the " +"target node." msgstr "" "Nie znaleziono wybranej metody! Podaj wÅ‚aÅ›ciwÄ… metodÄ™, lub dołącz skrypt do " "wybranego wÄ™zÅ‚a." #: editor/connections_dialog.cpp -msgid "Connect To Node:" +#, fuzzy +msgid "Connect to Node:" msgstr "Podłącz do wÄ™zÅ‚a:" +#: editor/connections_dialog.cpp +#, fuzzy +msgid "Connect to Script:" +msgstr "Nie można połączyć do hosta:" + +#: editor/connections_dialog.cpp +#, fuzzy +msgid "From Signal:" +msgstr "SygnaÅ‚y:" + +#: editor/connections_dialog.cpp +#, fuzzy +msgid "Scene does not contain any script." +msgstr "WÄ™zeÅ‚ nie zawiera geometrii." + #: editor/connections_dialog.cpp editor/editor_autoload_settings.cpp #: editor/groups_editor.cpp editor/plugins/item_list_editor_plugin.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_settings_editor.cpp @@ -685,10 +741,12 @@ msgid "Add" msgstr "Dodaj" #: editor/connections_dialog.cpp editor/dependency_editor.cpp -#: editor/groups_editor.cpp editor/plugins/animation_player_editor_plugin.cpp +#: editor/editor_feature_profile.cpp editor/groups_editor.cpp +#: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp #: editor/plugins/resource_preloader_editor_plugin.cpp -#: editor/plugins/theme_editor_plugin.cpp editor/project_manager.cpp +#: editor/plugins/theme_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_manager.cpp #: editor/project_settings_editor.cpp msgid "Remove" msgstr "UsuÅ„" @@ -702,21 +760,32 @@ msgid "Extra Call Arguments:" msgstr "Dodatkowe argumenty wywoÅ‚ania:" #: editor/connections_dialog.cpp -msgid "Path to Node:" -msgstr "Åšcieżka do wÄ™zÅ‚a:" - -#: editor/connections_dialog.cpp -msgid "Make Function" -msgstr "Utwórz funkcjÄ™" +#, fuzzy +msgid "Advanced" +msgstr "Opcje zaawansowane" #: editor/connections_dialog.cpp msgid "Deferred" msgstr "Opóźniony" #: editor/connections_dialog.cpp +msgid "" +"Defers the signal, storing it in a queue and only firing it at idle time." +msgstr "" + +#: editor/connections_dialog.cpp msgid "Oneshot" msgstr "WywoÅ‚aj raz" +#: editor/connections_dialog.cpp +msgid "Disconnects the signal after its first emission." +msgstr "" + +#: editor/connections_dialog.cpp +#, fuzzy +msgid "Cannot connect signal" +msgstr "Połącz sygnaÅ‚: " + #: editor/connections_dialog.cpp editor/dependency_editor.cpp #: editor/export_template_manager.cpp editor/groups_editor.cpp #: editor/plugins/animation_player_editor_plugin.cpp @@ -757,11 +826,13 @@ msgid "Disconnect" msgstr "Rozłącz" #: editor/connections_dialog.cpp -msgid "Connect Signal: " +#, fuzzy +msgid "Connect a Signal to a Method" msgstr "Połącz sygnaÅ‚: " #: editor/connections_dialog.cpp -msgid "Edit Connection: " +#, fuzzy +msgid "Edit Connection:" msgstr "Edytuj połączenie: " #: editor/connections_dialog.cpp @@ -793,7 +864,6 @@ msgid "Change %s Type" msgstr "ZmieÅ„ typ %s" #: editor/create_dialog.cpp editor/project_settings_editor.cpp -#: modules/visual_script/visual_script_editor.cpp msgid "Change" msgstr "ZmieÅ„" @@ -824,7 +894,8 @@ msgid "Matches:" msgstr "PasujÄ…ce:" #: editor/create_dialog.cpp editor/plugin_config_dialog.cpp -#: editor/plugins/asset_library_editor_plugin.cpp editor/property_selector.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/property_selector.cpp #: modules/visual_script/visual_script_property_selector.cpp msgid "Description:" msgstr "Opis:" @@ -838,17 +909,19 @@ msgid "Dependencies For:" msgstr "ZależnoÅ›ci:" #: editor/dependency_editor.cpp +#, fuzzy msgid "" "Scene '%s' is currently being edited.\n" -"Changes will not take effect unless reloaded." +"Changes will only take effect when reloaded." msgstr "" "Scena '%s' jest obecnie edytowana.\n" "Zmiany nie zajdÄ… do czasu przeÅ‚adowania." #: editor/dependency_editor.cpp +#, fuzzy msgid "" "Resource '%s' is in use.\n" -"Changes will take effect when reloaded." +"Changes will only take effect when reloaded." msgstr "" "Zasób '%s' jest w użyciu.\n" "Zmiany zajdÄ… dopiero po jego przeÅ‚adowaniu." @@ -943,21 +1016,14 @@ msgid "Permanently delete %d item(s)? (No undo!)" msgstr "Permanentnie usuÅ„ %d obiekt(ów) (Nie można tego cofnąć)" #: editor/dependency_editor.cpp -msgid "Owns" -msgstr "Posiada" - -#: editor/dependency_editor.cpp -msgid "Resources Without Explicit Ownership:" -msgstr "Zasoby bez jawnych wÅ‚aÅ›cicieli:" +#, fuzzy +msgid "Show Dependencies" +msgstr "ZależnoÅ›ci" #: editor/dependency_editor.cpp editor/editor_node.cpp msgid "Orphan Resource Explorer" msgstr "Eksplorator osieroconych zasobów" -#: editor/dependency_editor.cpp -msgid "Delete selected files?" -msgstr "Usunąć zaznaczone pliki?" - #: editor/dependency_editor.cpp editor/editor_audio_buses.cpp #: editor/editor_file_dialog.cpp editor/editor_node.cpp #: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp @@ -966,6 +1032,14 @@ msgstr "Usunąć zaznaczone pliki?" msgid "Delete" msgstr "UsuÅ„" +#: editor/dependency_editor.cpp +msgid "Owns" +msgstr "Posiada" + +#: editor/dependency_editor.cpp +msgid "Resources Without Explicit Ownership:" +msgstr "Zasoby bez jawnych wÅ‚aÅ›cicieli:" + #: editor/dictionary_property_edit.cpp msgid "Change Dictionary Key" msgstr "ZmieÅ„ klucz tablicy" @@ -1079,7 +1153,7 @@ msgstr "Pakiet zainstalowano poprawnie!" msgid "Success!" msgstr "Sukces!" -#: editor/editor_asset_installer.cpp +#: editor/editor_asset_installer.cpp editor/editor_node.cpp #: editor/plugins/asset_library_editor_plugin.cpp msgid "Install" msgstr "Zainstaluj" @@ -1206,8 +1280,12 @@ msgid "Open Audio Bus Layout" msgstr "Otwórz ukÅ‚ad magistrali audio" #: editor/editor_audio_buses.cpp -msgid "There is no 'res://default_bus_layout.tres' file." -msgstr "Plik 'res://default_bus_layout.tres' nie istnieje." +msgid "There is no '%s' file." +msgstr "" + +#: editor/editor_audio_buses.cpp editor/plugins/canvas_item_editor_plugin.cpp +msgid "Layout" +msgstr "UkÅ‚ad" #: editor/editor_audio_buses.cpp msgid "Invalid file, not an audio bus layout." @@ -1260,19 +1338,26 @@ msgid "Valid characters:" msgstr "Dopuszczalne znaki:" #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing engine class name." +#, fuzzy +msgid "Must not collide with an existing engine class name." msgstr "" "Niepoprawna nazwa. Nie może być taka sama jak istniejÄ…ca klasa silnika." #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing buit-in type name." +#, fuzzy +msgid "Must not collide with an existing buit-in type name." msgstr "Niepoprawna nazwa. Nie może być taka sama jak wbudowany typ." #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing global constant name." +#, fuzzy +msgid "Must not collide with an existing global constant name." msgstr "Niepoprawna nazwa. Nie może być taka sama jak nazwa globalnej staÅ‚ej." #: editor/editor_autoload_settings.cpp +msgid "Keyword cannot be used as an autoload name." +msgstr "" + +#: editor/editor_autoload_settings.cpp msgid "Autoload '%s' already exists!" msgstr "AutoLoad '%s' już istnieje!" @@ -1300,11 +1385,12 @@ msgstr "Włącz" msgid "Rearrange Autoloads" msgstr "Przestaw Autoloady" -#: editor/editor_autoload_settings.cpp -msgid "Invalid Path." +#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp +#, fuzzy +msgid "Invalid path." msgstr "NiewÅ‚aÅ›ciwa Å›cieżka." -#: editor/editor_autoload_settings.cpp +#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp msgid "File does not exist." msgstr "Plik nie istnieje." @@ -1355,7 +1441,8 @@ msgid "[unsaved]" msgstr "[niezapisany]" #: editor/editor_dir_dialog.cpp -msgid "Please select a base directory first" +#, fuzzy +msgid "Please select a base directory first." msgstr "Najpierw wybierz katalog podstawowy" #: editor/editor_dir_dialog.cpp @@ -1363,7 +1450,8 @@ msgid "Choose a Directory" msgstr "Wybierz katalog" #: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp -#: editor/filesystem_dock.cpp scene/gui/file_dialog.cpp +#: editor/filesystem_dock.cpp editor/project_manager.cpp +#: scene/gui/file_dialog.cpp msgid "Create Folder" msgstr "Utwórz katalog" @@ -1439,6 +1527,178 @@ msgstr "Nie znaleziono wÅ‚asnego szablonu wydania." msgid "Template file not found:" msgstr "Nie znaleziono pliku szablonu:" +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "3D Editor" +msgstr "Edytor" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Script Editor" +msgstr "Otwórz edytor skryptów" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Asset Library" +msgstr "Otwórz bibliotekÄ™ zasobów" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Scene Tree Editing" +msgstr "Drzewo sceny (wÄ™zÅ‚y):" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Import Dock" +msgstr "Importuj" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Node Dock" +msgstr "WÄ™zeÅ‚ przesuniÄ™ty" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Filesystem Dock" +msgstr "System plików" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Erase profile '%s'? (no undo)" +msgstr "ZastÄ…p wszystkie (nie można cofnąć)" + +#: editor/editor_feature_profile.cpp +msgid "Profile must be a valid filename and must not contain '.'" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Profile with this name already exists." +msgstr "Plik lub katalog o tej nazwie już istnieje." + +#: editor/editor_feature_profile.cpp +msgid "(Editor Disabled, Properties Disabled)" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "(Properties Disabled)" +msgstr "Tylko wÅ‚aÅ›ciwoÅ›ci" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "(Editor Disabled)" +msgstr "Wyłącz przycinanie" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Class Options:" +msgstr "Opis klasy:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enable Contextual Editor" +msgstr "Otwórz nastÄ™pny edytor" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enabled Properties:" +msgstr "WÅ‚aÅ›ciwoÅ›ci:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enabled Features:" +msgstr "Funkcje" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enabled Classes:" +msgstr "Przeszukaj klasy" + +#: editor/editor_feature_profile.cpp +msgid "File '%s' format is invalid, import aborted." +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "" +"Profile '%s' already exists. Remote it first before importing, import " +"aborted." +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Error saving profile to path: '%s'." +msgstr "Błąd podczas Å‚adowania szablonu '%s'" + +#: editor/editor_feature_profile.cpp +msgid "Unset" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Current Profile" +msgstr "Aktualna wersja:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Make Current" +msgstr "Bieżący:" + +#: editor/editor_feature_profile.cpp +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "New" +msgstr "Nowy" + +#: editor/editor_feature_profile.cpp editor/editor_node.cpp +#: editor/plugins/asset_library_editor_plugin.cpp editor/project_manager.cpp +msgid "Import" +msgstr "Importuj" + +#: editor/editor_feature_profile.cpp editor/editor_node.cpp +#: editor/project_export.cpp +msgid "Export" +msgstr "Eksportuj" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Available Profiles" +msgstr "DostÄ™pne wÄ™zÅ‚y:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enabled Classes" +msgstr "Przeszukaj klasy" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Class Options" +msgstr "Opis klasy" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "New profile name:" +msgstr "Nowa nazwa:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Erase Profile" +msgstr "Usuń obszar" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Import Profile(s)" +msgstr "Zaimportowano projekt" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Export Profile" +msgstr "Wyeksportuj projekt" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Manage Editor Feature Profiles" +msgstr "ZarzÄ…dzaj szablonami eksportu" + #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Select Current Folder" msgstr "Wybierz bieżący katalog" @@ -1459,8 +1719,8 @@ msgstr "Skopiuj Å›cieżkÄ™" msgid "Open in File Manager" msgstr "Otwórz w menedżerze plików" -#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp -#: editor/project_manager.cpp +#: editor/editor_file_dialog.cpp editor/editor_node.cpp +#: editor/filesystem_dock.cpp editor/project_manager.cpp msgid "Show in File Manager" msgstr "Pokaż w menedżerze plików" @@ -1519,7 +1779,7 @@ msgstr "Dalej" msgid "Go Up" msgstr "W górÄ™" -#: editor/editor_file_dialog.cpp +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Toggle Hidden Files" msgstr "Przełącz ukryte pliki" @@ -1551,14 +1811,19 @@ msgstr "Poprzedni folder" msgid "Next Folder" msgstr "NastÄ™pny folder" -#: editor/editor_file_dialog.cpp -msgid "Go to parent folder" -msgstr "Przejdź folder wyżej" +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp +msgid "Go to parent folder." +msgstr "Przejdź folder wyżej." #: editor/editor_file_dialog.cpp msgid "(Un)favorite current folder." msgstr "Dodaj/usuÅ„ aktualny folder z ulubionych." +#: editor/editor_file_dialog.cpp +#, fuzzy +msgid "Toggle visibility of hidden files." +msgstr "Przełącz ukryte pliki" + #: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp msgid "View items as a grid of thumbnails." msgstr "WyÅ›wietl elementy jako siatkÄ™ miniatur." @@ -1573,6 +1838,7 @@ msgstr "Katalogi i pliki:" #: editor/editor_file_dialog.cpp editor/plugins/sprite_editor_plugin.cpp #: editor/plugins/style_box_editor_plugin.cpp +#: editor/plugins/theme_editor_plugin.cpp msgid "Preview:" msgstr "PodglÄ…d:" @@ -1589,6 +1855,12 @@ msgid "ScanSources" msgstr "Przeszukaj źródÅ‚a" #: editor/editor_file_system.cpp +msgid "" +"There are multiple importers for different types pointing to file %s, import " +"aborted" +msgstr "" + +#: editor/editor_file_system.cpp msgid "(Re)Importing Assets" msgstr "(Ponowne) importowanie zasobów" @@ -1771,6 +2043,10 @@ msgstr "Ustaw wiele:" msgid "Output:" msgstr "WyjÅ›cie:" +#: editor/editor_log.cpp editor/plugins/tile_map_editor_plugin.cpp +msgid "Copy Selection" +msgstr "Kopiuj zaznaczenie" + #: editor/editor_log.cpp editor/editor_profiler.cpp #: editor/editor_properties.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp @@ -1926,9 +2202,10 @@ msgstr "" "zrozumieć ten proces." #: editor/editor_node.cpp +#, fuzzy msgid "" "This resource belongs to a scene that was instanced or inherited.\n" -"Changes to it will not be kept when saving the current scene." +"Changes to it won't be kept when saving the current scene." msgstr "" "Ten zasób należy do sceny, która zostaÅ‚a zainstancjonowana lub " "odziedziczona.\n" @@ -1943,8 +2220,9 @@ msgstr "" "ustawienia w panelu importów, po czym zaimportuj go ponownie." #: editor/editor_node.cpp +#, fuzzy msgid "" -"This scene was imported, so changes to it will not be kept.\n" +"This scene was imported, so changes to it won't be kept.\n" "Instancing it or inheriting will allow making changes to it.\n" "Please read the documentation relevant to importing scenes to better " "understand this workflow." @@ -1955,8 +2233,9 @@ msgstr "" "zrozumieć ten proces." #: editor/editor_node.cpp +#, fuzzy msgid "" -"This is a remote object so changes to it will not be kept.\n" +"This is a remote object, so changes to it won't be kept.\n" "Please read the documentation relevant to debugging to better understand " "this workflow." msgstr "" @@ -1969,33 +2248,6 @@ msgid "There is no defined scene to run." msgstr "Nie ma zdefiniowanej sceny do uruchomienia." #: editor/editor_node.cpp -msgid "" -"No main scene has ever been defined, select one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" -"Nie zdefiniowano głównej sceny, chcesz jakÄ…Å› wybrać?\n" -"Można to później zmienić w \"Ustawienia projektu\" w kategorii \"aplikacja\"." - -#: editor/editor_node.cpp -msgid "" -"Selected scene '%s' does not exist, select a valid one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" -"Wybrana scena '%s' nie istnieje, wybrać poprawnÄ…? \n" -"Można to później zmienić w \"Ustawienia projektu\" w kategorii \"aplikacja\"." - -#: editor/editor_node.cpp -msgid "" -"Selected scene '%s' is not a scene file, select a valid one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" -"Wybrany plik '%s' nie jest scenÄ…, wybrać poprawny?\n" -"Można to później zmienić w \"Ustawienia projektu\" w kategorii \"aplikacja\"." - -#: editor/editor_node.cpp msgid "Current scene was never saved, please save it prior to running." msgstr "" "Aktualna scena nie zostaÅ‚a zapisana, proszÄ™ zapisać scenÄ™ przed " @@ -2005,7 +2257,7 @@ msgstr "" msgid "Could not start subprocess!" msgstr "Nie można byÅ‚o uruchomić podprocesu!" -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/filesystem_dock.cpp msgid "Open Scene" msgstr "Otwórz scenÄ™" @@ -2014,6 +2266,11 @@ msgid "Open Base Scene" msgstr "Otwórz scenÄ™ bazowÄ…" #: editor/editor_node.cpp +#, fuzzy +msgid "Quick Open..." +msgstr "Szybkie otwieranie sceny..." + +#: editor/editor_node.cpp msgid "Quick Open Scene..." msgstr "Szybkie otwieranie sceny..." @@ -2191,6 +2448,33 @@ msgid "Clear Recent Scenes" msgstr "Wyczyść listÄ™ ostatnio otwieranych scen" #: editor/editor_node.cpp +msgid "" +"No main scene has ever been defined, select one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" +"Nie zdefiniowano głównej sceny, chcesz jakÄ…Å› wybrać?\n" +"Można to później zmienić w \"Ustawienia projektu\" w kategorii \"aplikacja\"." + +#: editor/editor_node.cpp +msgid "" +"Selected scene '%s' does not exist, select a valid one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" +"Wybrana scena '%s' nie istnieje, wybrać poprawnÄ…? \n" +"Można to później zmienić w \"Ustawienia projektu\" w kategorii \"aplikacja\"." + +#: editor/editor_node.cpp +msgid "" +"Selected scene '%s' is not a scene file, select a valid one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" +"Wybrany plik '%s' nie jest scenÄ…, wybrać poprawny?\n" +"Można to później zmienić w \"Ustawienia projektu\" w kategorii \"aplikacja\"." + +#: editor/editor_node.cpp msgid "Save Layout" msgstr "Zapisz ukÅ‚ad" @@ -2216,9 +2500,22 @@ msgstr "Odtwórz tÄ™ scenÄ™" msgid "Close Tab" msgstr "Zamknij kartÄ™" +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +msgid "Close Other Tabs" +msgstr "Zamknij inne karty" + +#: editor/editor_node.cpp +msgid "Close Tabs to the Right" +msgstr "" + +#: editor/editor_node.cpp +#, fuzzy +msgid "Close All Tabs" +msgstr "Zamknij wszystkie" + #: editor/editor_node.cpp msgid "Switch Scene Tab" -msgstr "Przełącz ZakÅ‚adkÄ™ Sceny" +msgstr "Przełącz zakÅ‚adkÄ™ sceny" #: editor/editor_node.cpp msgid "%d more files or folders" @@ -2338,10 +2635,6 @@ msgstr "Projekt" msgid "Project Settings" msgstr "Ustawienia projektu" -#: editor/editor_node.cpp editor/project_export.cpp -msgid "Export" -msgstr "Eksportuj" - #: editor/editor_node.cpp editor/plugins/tile_set_editor_plugin.cpp msgid "Tools" msgstr "NarzÄ™dzia" @@ -2351,6 +2644,10 @@ msgid "Open Project Data Folder" msgstr "Otwórz folder danych projektu" #: editor/editor_node.cpp +msgid "Install Android Build Template" +msgstr "" + +#: editor/editor_node.cpp msgid "Quit to Project List" msgstr "Wyjdź do listy projektów" @@ -2471,6 +2768,11 @@ msgstr "Otwórz folder danych edytora" msgid "Open Editor Settings Folder" msgstr "Otwórz folder ustawieÅ„ edytora" +#: editor/editor_node.cpp +#, fuzzy +msgid "Manage Editor Features" +msgstr "ZarzÄ…dzaj szablonami eksportu" + #: editor/editor_node.cpp editor/project_export.cpp msgid "Manage Export Templates" msgstr "ZarzÄ…dzaj szablonami eksportu" @@ -2483,6 +2785,7 @@ msgstr "Pomoc" #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp #: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp #: editor/project_settings_editor.cpp editor/rename_dialog.cpp msgid "Search" msgstr "Szukaj" @@ -2572,11 +2875,6 @@ msgstr "OdÅ›wież Zmiany" msgid "Disable Update Spinner" msgstr "Wyłącz wiatraczek aktualizacji" -#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp -#: editor/project_manager.cpp -msgid "Import" -msgstr "Importuj" - #: editor/editor_node.cpp msgid "FileSystem" msgstr "System plików" @@ -2602,6 +2900,28 @@ msgid "Don't Save" msgstr "Nie zapisuj" #: editor/editor_node.cpp +msgid "Android build template is missing, please install relevant templates." +msgstr "" + +#: editor/editor_node.cpp +#, fuzzy +msgid "Manage Templates" +msgstr "ZarzÄ…dzaj szablonami eksportu" + +#: editor/editor_node.cpp +msgid "" +"This will install the Android project for custom builds.\n" +"Note that, in order to use it, it needs to be enabled per export preset." +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"Android build template is already installed and it won't be overwritten.\n" +"Remove the \"build\" directory manually before attempting this operation " +"again." +msgstr "" + +#: editor/editor_node.cpp msgid "Import Templates From ZIP File" msgstr "Zaimportuj Szablony z pliku ZIP" @@ -2724,10 +3044,6 @@ msgid "Physics Frame %" msgstr "Klatki Fizyki %" #: editor/editor_profiler.cpp -msgid "Time:" -msgstr "Czas:" - -#: editor/editor_profiler.cpp msgid "Inclusive" msgstr "Włącznie" @@ -2870,10 +3186,6 @@ msgid "Remove Item" msgstr "UsuÅ„ element" #: editor/editor_run_native.cpp -msgid "Select device from the list" -msgstr "Wybierz urzÄ…dzenie z listy" - -#: editor/editor_run_native.cpp msgid "" "No runnable export preset found for this platform.\n" "Please add a runnable preset in the export menu." @@ -2910,6 +3222,10 @@ msgstr "ZapomniaÅ‚eÅ› metody '_run'?" msgid "Select Node(s) to Import" msgstr "Wybierz wÄ™zÅ‚y do importu" +#: editor/editor_sub_scene.cpp editor/project_manager.cpp +msgid "Browse" +msgstr "PrzeglÄ…daj" + #: editor/editor_sub_scene.cpp msgid "Scene Path:" msgstr "Åšcieżka sceny:" @@ -3076,6 +3392,11 @@ msgid "SSL Handshake Error" msgstr "Błąd podczas wymiany (handshake) SSL" #: editor/export_template_manager.cpp +#, fuzzy +msgid "Uncompressing Android Build Sources" +msgstr "Dekompresja zasobów" + +#: editor/export_template_manager.cpp msgid "Current Version:" msgstr "Aktualna wersja:" @@ -3092,7 +3413,8 @@ msgid "Remove Template" msgstr "UsuÅ„ szablon" #: editor/export_template_manager.cpp -msgid "Select template file" +#, fuzzy +msgid "Select Template File" msgstr "Wybierz plik szablonu" #: editor/export_template_manager.cpp @@ -3152,7 +3474,8 @@ msgid "No name provided." msgstr "Nie podano nazwy." #: editor/filesystem_dock.cpp -msgid "Provided name contains invalid characters" +#, fuzzy +msgid "Provided name contains invalid characters." msgstr "Podana nazwa zawiera niedozwolone znaki" #: editor/filesystem_dock.cpp @@ -3180,19 +3503,27 @@ msgid "Duplicating folder:" msgstr "Duplikowanie Folderu:" #: editor/filesystem_dock.cpp -msgid "Open Scene(s)" -msgstr "Otwórz scenÄ™/y" +#, fuzzy +msgid "New Inherited Scene" +msgstr "Nowa scena dziedziczÄ…ca..." + +#: editor/filesystem_dock.cpp +#, fuzzy +msgid "Open Scenes" +msgstr "Otwórz scenÄ™" #: editor/filesystem_dock.cpp msgid "Instance" msgstr "Instancja" #: editor/filesystem_dock.cpp -msgid "Add to favorites" +#, fuzzy +msgid "Add to Favorites" msgstr "Dodaj do ulubionych" #: editor/filesystem_dock.cpp -msgid "Remove from favorites" +#, fuzzy +msgid "Remove from Favorites" msgstr "UsuÅ„ z ulubionych" #: editor/filesystem_dock.cpp @@ -3223,11 +3554,13 @@ msgstr "Nowy skrypt..." msgid "New Resource..." msgstr "Nowy zasób..." -#: editor/filesystem_dock.cpp editor/script_editor_debugger.cpp +#: editor/filesystem_dock.cpp editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_editor_debugger.cpp msgid "Expand All" msgstr "RozwiÅ„ wszystko" -#: editor/filesystem_dock.cpp editor/script_editor_debugger.cpp +#: editor/filesystem_dock.cpp editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_editor_debugger.cpp msgid "Collapse All" msgstr "ZwiÅ„ wszystko" @@ -3239,11 +3572,13 @@ msgid "Rename" msgstr "ZmieÅ„ nazwÄ™" #: editor/filesystem_dock.cpp -msgid "Previous Directory" -msgstr "Poprzedni katalog" +#, fuzzy +msgid "Previous Folder/File" +msgstr "Poprzedni folder" #: editor/filesystem_dock.cpp -msgid "Next Directory" +#, fuzzy +msgid "Next Folder/File" msgstr "NastÄ™pny folder" #: editor/filesystem_dock.cpp @@ -3251,7 +3586,8 @@ msgid "Re-Scan Filesystem" msgstr "Przeskanuj system plików ponownie" #: editor/filesystem_dock.cpp -msgid "Toggle split mode" +#, fuzzy +msgid "Toggle Split Mode" msgstr "Przełącz tryb podziaÅ‚u" #: editor/filesystem_dock.cpp @@ -3282,7 +3618,7 @@ msgstr "Nadpisz" msgid "Create Script" msgstr "Utwórz Skrypt" -#: editor/find_in_files.cpp +#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp msgid "Find in Files" msgstr "Znajdź w plikach" @@ -3298,6 +3634,12 @@ msgstr "Folder:" msgid "Filters:" msgstr "Filtry:" +#: editor/find_in_files.cpp +msgid "" +"Include the files with the following extensions. Add or remove them in " +"ProjectSettings." +msgstr "" + #: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp msgid "Find..." @@ -3737,7 +4079,8 @@ msgid "Open Animation Node" msgstr "Otwórz wÄ™zeÅ‚ animacji" #: editor/plugins/animation_blend_space_2d_editor.cpp -msgid "Triangle already exists" +#, fuzzy +msgid "Triangle already exists." msgstr "TrójkÄ…t już istnieje" #: editor/plugins/animation_blend_space_2d_editor.cpp @@ -3812,7 +4155,6 @@ msgid "Node Moved" msgstr "WÄ™zeÅ‚ przesuniÄ™ty" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Unable to connect, port may be in use or connection may be invalid." msgstr "" "Nie można połączyć, port może być w użyciu lub połączenie może być " @@ -3885,7 +4227,8 @@ msgid "Edit Filtered Tracks:" msgstr "Edytuj filtrowane Å›cieżki:" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -msgid "Enable filtering" +#, fuzzy +msgid "Enable Filtering" msgstr "Włącz filtrowanie" #: editor/plugins/animation_player_editor_plugin.cpp @@ -4000,10 +4343,6 @@ msgid "Animation" msgstr "Animacje" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "New" -msgstr "Nowy" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Edit Transitions..." msgstr "Edytuj przejÅ›cia..." @@ -4020,14 +4359,15 @@ msgid "Autoplay on Load" msgstr "Auto odtwarzanie po zaÅ‚adowaniu" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Onion Skinning" -msgstr "Onion skinning" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Enable Onion Skinning" msgstr "Włącz Onion skinning" #: editor/plugins/animation_player_editor_plugin.cpp +#, fuzzy +msgid "Onion Skinning Options" +msgstr "Onion skinning" + +#: editor/plugins/animation_player_editor_plugin.cpp msgid "Directions" msgstr "Kierunki" @@ -4578,17 +4918,23 @@ msgid "Move CanvasItem" msgstr "PrzesuÅ„ CanvasItem" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"Children of containers have their anchors and margins values overridden by " +"their parent." +msgstr "" +"WartoÅ›ci zakotwiczeÅ„ i marginesów wÄ™złów potomnych kontenerów sÄ… nadpisane " +"przez ich rodzica." + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Presets for the anchors and margins values of a Control node." msgstr "" "Ustawienia wstÄ™pne dla wartoÅ›ci zakotwiczeÅ„ i marginesów wÄ™zÅ‚a sterujÄ…cego." #: editor/plugins/canvas_item_editor_plugin.cpp msgid "" -"Children of containers have their anchors and margins values overridden by " -"their parent." +"When active, moving Control nodes changes their anchors instead of their " +"margins." msgstr "" -"WartoÅ›ci zakotwiczeÅ„ i marginesów wÄ™złów potomnych kontenerów sÄ… nadpisane " -"przez ich rodzica." #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Anchors only" @@ -4603,10 +4949,52 @@ msgid "Change Anchors" msgstr "ZmieÅ„ zakotwiczenie" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Lock Selected" +msgstr "NarzÄ™dzie wyboru" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Unlock Selected" +msgstr "UsuÅ„ zaznaczone" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Group Selected" +msgstr "Kopiuj zaznaczenie" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Ungroup Selected" +msgstr "Kopiuj zaznaczenie" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Paste Pose" msgstr "Wklej pozÄ™" #: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Create Custom Bone(s) from Node(s)" +msgstr "Utwórz wÅ‚asne koÅ›ci z wÄ™złów" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Clear Bones" +msgstr "Wyczyść pozÄ™" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Make IK Chain" +msgstr "Utwórz ÅaÅ„cuch IK" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Clear IK Chain" +msgstr "Wyczyść ÅaÅ„cuch IK" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "" "Warning: Children of a container get their position and size determined only " "by their parent." @@ -4684,7 +5072,8 @@ msgid "Snapping Options" msgstr "Opcje przyciÄ…gania" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to grid" +#, fuzzy +msgid "Snap to Grid" msgstr "PrzyciÄ…gaj do siatki" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4705,31 +5094,38 @@ msgid "Use Pixel Snap" msgstr "Użyj krokowania na poziomie pikseli" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Smart snapping" +#, fuzzy +msgid "Smart Snapping" msgstr "Inteligentne przyciÄ…ganie" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to parent" +#, fuzzy +msgid "Snap to Parent" msgstr "PrzyciÄ…gaj do rodzica" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node anchor" +#, fuzzy +msgid "Snap to Node Anchor" msgstr "PrzyciÄ…gaj do kotwicy wÄ™zÅ‚a" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node sides" +#, fuzzy +msgid "Snap to Node Sides" msgstr "PrzyciÄ…gaj do boków wÄ™zÅ‚a" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node center" +#, fuzzy +msgid "Snap to Node Center" msgstr "PrzyciÄ…gaj do Å›rodka wÄ™zÅ‚a" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to other nodes" +#, fuzzy +msgid "Snap to Other Nodes" msgstr "PrzyciÄ…gaj do innych wÄ™złów" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to guides" +#, fuzzy +msgid "Snap to Guides" msgstr "PrzyciÄ…gaj do prowadnic" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4743,10 +5139,12 @@ msgid "Unlock the selected object (can be moved)." msgstr "Odblokuj wybrany obiekt (można go przesuwać)." #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Makes sure the object's children are not selectable." msgstr "Zablokuj selekcjÄ™ wÄ™złów podrzÄ™dnych." #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Restores the object's children's ability to be selected." msgstr "Odblokuj selekcjÄ™ wÄ™złów podrzÄ™dnych." @@ -4759,14 +5157,6 @@ msgid "Show Bones" msgstr "Pokaż koÅ›ci" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Make IK Chain" -msgstr "Utwórz ÅaÅ„cuch IK" - -#: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Clear IK Chain" -msgstr "Wyczyść ÅaÅ„cuch IK" - -#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Make Custom Bone(s) from Node(s)" msgstr "Utwórz wÅ‚asne koÅ›ci z wÄ™złów" @@ -4817,25 +5207,24 @@ msgid "Frame Selection" msgstr "PowiÄ™ksz do zaznaczenia" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Layout" -msgstr "UkÅ‚ad" +msgid "Preview Canvas Scale" +msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Translation mask for inserting keys." -msgstr "" +msgstr "Maska przesuniÄ™cia dla wstawiania kluczy." #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Rotation mask for inserting keys." -msgstr "" +msgstr "Maska obrotu dla wstawiania kluczy." #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Scale mask for inserting keys." -msgstr "" +msgstr "Maska skali dla wstawiania kluczy." #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Insert keys (based on mask)." -msgstr "Wstaw klucz (istniejÄ…ce Å›cieżki)" +msgstr "Wstaw klucze (w oparciu o maskÄ™)." #: editor/plugins/canvas_item_editor_plugin.cpp msgid "" @@ -4844,11 +5233,15 @@ msgid "" "Keys are only added to existing tracks, no new tracks will be created.\n" "Keys must be inserted manually for the first time." msgstr "" +"Automatycznie wstaw klucze, kiedy obiekt jest przesuwany, obracany lub " +"skalowany (w oparciu o maskÄ™).\n" +"Klucze sÄ… dodawane tylko do istniejÄ…cych Å›cieżek, żadne nowe Å›cieżki nie " +"zostanÄ… utworzone.\n" +"Za pierwszym razem klucze muszÄ… być umieszczone rÄ™cznie." #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Auto Insert Key" -msgstr "Wstaw klatkÄ™ kluczowÄ…" +msgstr "Automatycznie wstaw klucz" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Insert Key (Existing Tracks)" @@ -4871,6 +5264,11 @@ msgid "Divide grid step by 2" msgstr "Zmniejsz wielkość siatki dwukrotnie" #: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Pan View" +msgstr "Widok z tyÅ‚u" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Add %s" msgstr "Dodaj %s" @@ -4893,7 +5291,8 @@ msgid "Error instancing scene from %s" msgstr "Błąd instancjacji sceny z %s" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Change default type" +#, fuzzy +msgid "Change Default Type" msgstr "Zmienić domyÅ›lny typ" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4981,19 +5380,21 @@ msgid "Create Emission Points From Node" msgstr "Twórz punkty emisji z wÄ™zÅ‚a" #: editor/plugins/curve_editor_plugin.cpp -msgid "Flat0" +#, fuzzy +msgid "Flat 0" msgstr "Flat0" #: editor/plugins/curve_editor_plugin.cpp -msgid "Flat1" +#, fuzzy +msgid "Flat 1" msgstr "Flat1" -#: editor/plugins/curve_editor_plugin.cpp -msgid "Ease in" +#: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp +msgid "Ease In" msgstr "Åagodne wejÅ›cie" -#: editor/plugins/curve_editor_plugin.cpp -msgid "Ease out" +#: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp +msgid "Ease Out" msgstr "Åagodne wyjÅ›cie" #: editor/plugins/curve_editor_plugin.cpp @@ -5013,23 +5414,28 @@ msgid "Load Curve Preset" msgstr "Wczytaj predefiniowanÄ… krzywÄ…" #: editor/plugins/curve_editor_plugin.cpp -msgid "Add point" +#, fuzzy +msgid "Add Point" msgstr "Dodaj punkt" #: editor/plugins/curve_editor_plugin.cpp -msgid "Remove point" +#, fuzzy +msgid "Remove Point" msgstr "UsuÅ„ punkt" #: editor/plugins/curve_editor_plugin.cpp -msgid "Left linear" +#, fuzzy +msgid "Left Linear" msgstr "Lewe liniowe" #: editor/plugins/curve_editor_plugin.cpp -msgid "Right linear" +#, fuzzy +msgid "Right Linear" msgstr "Prawe liniowe" #: editor/plugins/curve_editor_plugin.cpp -msgid "Load preset" +#, fuzzy +msgid "Load Preset" msgstr "Wczytaj ustawienia predefiniowane" #: editor/plugins/curve_editor_plugin.cpp @@ -5085,11 +5491,17 @@ msgid "This doesn't work on scene root!" msgstr "Nie dziaÅ‚a na głównym węźle sceny!" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Trimesh Shape" +#, fuzzy +msgid "Create Trimesh Static Shape" msgstr "Utwórz ksztaÅ‚t trójsiatki" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Shape" +msgid "Failed creating shapes!" +msgstr "" + +#: editor/plugins/mesh_instance_editor_plugin.cpp +#, fuzzy +msgid "Create Convex Shape(s)" msgstr "Utwórz ksztaÅ‚t wypukÅ‚y" #: editor/plugins/mesh_instance_editor_plugin.cpp @@ -5142,15 +5554,12 @@ msgid "Create Trimesh Static Body" msgstr "Utwórz statyczne ciaÅ‚o trójsiatki" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Static Body" -msgstr "Utwórz statyczne ciaÅ‚o wypukÅ‚e" - -#: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Trimesh Collision Sibling" msgstr "Utwórz sÄ…siadujÄ…cÄ… trójsiatkÄ™ kolizji" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Collision Sibling" +#, fuzzy +msgid "Create Convex Collision Sibling(s)" msgstr "Utwórz wypukÅ‚ego sÄ…siada kolizji" #: editor/plugins/mesh_instance_editor_plugin.cpp @@ -5304,6 +5713,11 @@ msgid "Create Navigation Polygon" msgstr "Utwórz wielokÄ…t nawigacyjny" #: editor/plugins/particles_2d_editor_plugin.cpp +#: editor/plugins/particles_editor_plugin.cpp +msgid "Convert to CPUParticles" +msgstr "Przekonwertuj na czÄ…steczki CPU" + +#: editor/plugins/particles_2d_editor_plugin.cpp msgid "Generating Visibility Rect" msgstr "Generowanie prostokÄ…ta widzialnoÅ›ci" @@ -5317,11 +5731,6 @@ msgstr "Punkt można wstawić tylko w materiaÅ‚ przetwarzania ParticlesMaterial" #: editor/plugins/particles_2d_editor_plugin.cpp #: editor/plugins/particles_editor_plugin.cpp -msgid "Convert to CPUParticles" -msgstr "Przekonwertuj na czÄ…steczki CPU" - -#: editor/plugins/particles_2d_editor_plugin.cpp -#: editor/plugins/particles_editor_plugin.cpp msgid "Generation Time (sec):" msgstr "Czas generowania (sek):" @@ -5459,7 +5868,7 @@ msgstr "Zamknij krzywÄ…" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp editor/plugins/theme_editor_plugin.cpp -#: editor/project_export.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_export.cpp msgid "Options" msgstr "Opcje" @@ -5510,7 +5919,8 @@ msgid "Split Segment (in curve)" msgstr "Podziel Segment (na krzywej)" #: editor/plugins/physical_bone_plugin.cpp -msgid "Move joint" +#, fuzzy +msgid "Move Joint" msgstr "PrzesuÅ„ złącze" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5749,7 +6159,6 @@ msgid "Open in Editor" msgstr "Otwórz w edytorze" #: editor/plugins/resource_preloader_editor_plugin.cpp -#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Load Resource" msgstr "Wczytaj zasób" @@ -5834,9 +6243,13 @@ msgid "Save Theme As..." msgstr "Zapisz motyw jako..." #: editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "%s Class Reference" -msgstr " - referencja klasy" +msgstr "Referencja klasy %s" + +#: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp +msgid "Find Next" +msgstr "Znajdź nastÄ™pny" #: editor/plugins/script_editor_plugin.cpp msgid "Toggle alphabetical sorting of the method list." @@ -5919,10 +6332,6 @@ msgstr "Zamknij pliki pomocy" msgid "Close All" msgstr "Zamknij wszystkie" -#: editor/plugins/script_editor_plugin.cpp -msgid "Close Other Tabs" -msgstr "Zamknij inne karty" - #: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp msgid "Run" msgstr "Uruchom" @@ -5931,11 +6340,6 @@ msgstr "Uruchom" msgid "Toggle Scripts Panel" msgstr "Przełącz panel skryptów" -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/script_text_editor.cpp -msgid "Find Next" -msgstr "Znajdź nastÄ™pny" - #: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp msgid "Step Over" msgstr "Przekrocz" @@ -5962,7 +6366,8 @@ msgid "Debug with External Editor" msgstr "Debugowanie z zewnÄ™trznym edytorem" #: editor/plugins/script_editor_plugin.cpp -msgid "Open Godot online documentation" +#, fuzzy +msgid "Open Godot online documentation." msgstr "Otwórz dokumentacjÄ™ online" #: editor/plugins/script_editor_plugin.cpp @@ -5970,7 +6375,8 @@ msgid "Request Docs" msgstr "PoproÅ› o dokumentacjÄ™" #: editor/plugins/script_editor_plugin.cpp -msgid "Help improve the Godot documentation by giving feedback" +#, fuzzy +msgid "Help improve the Godot documentation by giving feedback." msgstr "Pomóż polepszyć dokumentacjÄ™ Godota przesyÅ‚ajÄ…c opiniÄ™" #: editor/plugins/script_editor_plugin.cpp @@ -5998,10 +6404,12 @@ msgstr "" "Jakie dziaÅ‚ania należy podjąć?:" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp msgid "Reload" msgstr "PrzeÅ‚aduj" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp msgid "Resave" msgstr "Zapisz ponownie" @@ -6014,6 +6422,31 @@ msgid "Search Results" msgstr "Wyniki wyszukiwania" #: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Connections to method:" +msgstr "Podłącz do wÄ™zÅ‚a:" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Source" +msgstr "ŹródÅ‚o:" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Signal" +msgstr "SygnaÅ‚y" + +#: editor/plugins/script_text_editor.cpp +msgid "Target" +msgstr "Cel" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "" +"Missing connected method '%s' for signal '%s' from node '%s' to node '%s'." +msgstr "Nic nie podłączono do wejÅ›cia '%s' wÄ™zÅ‚a '%s'." + +#: editor/plugins/script_text_editor.cpp msgid "Line" msgstr "Linia" @@ -6025,10 +6458,6 @@ msgstr "(ignoruj)" msgid "Go to Function" msgstr "Przejdź do funkcji" -#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp -msgid "Standard" -msgstr "Standardowy" - #: editor/plugins/script_text_editor.cpp msgid "Only resources from filesystem can be dropped." msgstr "Jedynie zasoby z systemu plików mogÄ… zostać tu upuszczone." @@ -6061,6 +6490,11 @@ msgstr "Wielkie litery na poczÄ…tku słów" msgid "Syntax Highlighter" msgstr "PodÅ›wietlacz skÅ‚adni" +#: editor/plugins/script_text_editor.cpp +#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp +msgid "Bookmarks" +msgstr "" + #: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" @@ -6088,6 +6522,26 @@ msgid "Toggle Comment" msgstr "Przełącz komentarz" #: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Toggle Bookmark" +msgstr "Przełącz swobodny widok" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Go to Next Bookmark" +msgstr "Przejdź do nastÄ™pnego punktu wstrzymania" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Go to Previous Bookmark" +msgstr "Przejdź do poprzedniego punktu wstrzymania" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Remove All Bookmarks" +msgstr "UsuÅ„ wszystkie elementy" + +#: editor/plugins/script_text_editor.cpp msgid "Fold/Unfold Line" msgstr "ZwiÅ„/rozwiÅ„ wiersz" @@ -6161,6 +6615,15 @@ msgid "Contextual Help" msgstr "Pomoc kontekstowa" #: editor/plugins/shader_editor_plugin.cpp +#, fuzzy +msgid "" +"This shader has been modified on on disk.\n" +"What action should be taken?" +msgstr "" +"NastÄ™pujÄ…ce pliki sÄ… nowsze na dysku.\n" +"Jakie dziaÅ‚ania należy podjąć?:" + +#: editor/plugins/shader_editor_plugin.cpp msgid "Shader" msgstr "Shader" @@ -6503,7 +6966,8 @@ msgid "Right View" msgstr "Widok z prawej" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Switch Perspective/Orthogonal view" +#, fuzzy +msgid "Switch Perspective/Orthogonal View" msgstr "Przełącz widok perspektywiczny/ortogonalny" #: editor/plugins/spatial_editor_plugin.cpp @@ -6543,11 +7007,13 @@ msgid "Toggle Freelook" msgstr "Przełącz swobodny widok" #: editor/plugins/spatial_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Transform" msgstr "PrzeksztaÅ‚canie" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Snap object to floor" +#, fuzzy +msgid "Snap Object to Floor" msgstr "PrzyciÄ…gnij obiekt do podÅ‚ogi" #: editor/plugins/spatial_editor_plugin.cpp @@ -6580,7 +7046,7 @@ msgstr "4 widoki" #: editor/plugins/spatial_editor_plugin.cpp msgid "Gizmos" -msgstr "Uchwyty" +msgstr "Ikony wÄ™złów" #: editor/plugins/spatial_editor_plugin.cpp msgid "View Origin" @@ -6660,24 +7126,20 @@ msgid "Nameless gizmo" msgstr "Uchwyt bez nazwy" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy msgid "Create Mesh2D" -msgstr "Utwórz siatkÄ™ 2D" +msgstr "Utwórz wÄ™zeÅ‚ Mesh2D" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy msgid "Create Polygon2D" -msgstr "Utwórz WielokÄ…t3D" +msgstr "Utwórz wÄ™zeÅ‚ Polygon2D" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy msgid "Create CollisionPolygon2D" -msgstr "Utwórz wielokÄ…t kolizji" +msgstr "Utwórz wÄ™zeÅ‚ CollisionPolygon2D" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy msgid "Create LightOccluder2D" -msgstr "Stwórz Occluder Polygon" +msgstr "Utwórz wÄ™zeÅ‚ LightOccluder2D" #: editor/plugins/sprite_editor_plugin.cpp msgid "Sprite is empty!" @@ -6693,43 +7155,36 @@ msgid "Invalid geometry, can't replace by mesh." msgstr "NieprawidÅ‚owa geometria, nie można zastÄ…pić przez siatkÄ™." #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy -msgid "Invalid geometry, can't create polygon." -msgstr "NieprawidÅ‚owa geometria, nie można zastÄ…pić przez siatkÄ™." +msgid "Convert to Mesh2D" +msgstr "ZamieÅ„ na Mesh2D" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy -msgid "Invalid geometry, can't create collision polygon." -msgstr "NieprawidÅ‚owa geometria, nie można zastÄ…pić przez siatkÄ™." +msgid "Invalid geometry, can't create polygon." +msgstr "NieprawidÅ‚owa geometria, nie można utworzyć wielokÄ…ta." #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy -msgid "Invalid geometry, can't create light occluder." -msgstr "NieprawidÅ‚owa geometria, nie można zastÄ…pić przez siatkÄ™." +msgid "Convert to Polygon2D" +msgstr "ZamieÅ„ na Polygon2D" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Sprite" -msgstr "Sprite" +msgid "Invalid geometry, can't create collision polygon." +msgstr "NieprawidÅ‚owa geometria, nie można utworzyć wielokÄ…ta kolizji." #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy -msgid "Convert to Mesh2D" -msgstr "Konwertuj do siatki 2D" +msgid "Create CollisionPolygon2D Sibling" +msgstr "Utwórz równorzÄ™dny wÄ™zeÅ‚ CollisionPolygon2D" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy -msgid "Convert to Polygon2D" -msgstr "PrzesuÅ„ WielokÄ…t" +msgid "Invalid geometry, can't create light occluder." +msgstr "NieprawidÅ‚owa geometria, nie można utworzyć przesÅ‚aniacza Å›wiatÅ‚a." #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy -msgid "Create CollisionPolygon2D Sibling" -msgstr "Utwórz wielokÄ…t kolizji" +msgid "Create LightOccluder2D Sibling" +msgstr "Utwórz równorzÄ™dny wÄ™zeÅ‚ LightOccluder2D" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy -msgid "Create LightOccluder2D Sibling" -msgstr "Stwórz Occluder Polygon" +msgid "Sprite" +msgstr "Sprite" #: editor/plugins/sprite_editor_plugin.cpp msgid "Simplification: " @@ -6748,14 +7203,24 @@ msgid "Settings:" msgstr "Ustawienia:" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "ERROR: Couldn't load frame resource!" -msgstr "Błąd: Nie można zaÅ‚adować zasobu klatki!" +#, fuzzy +msgid "No Frames Selected" +msgstr "PowiÄ™ksz do zaznaczenia" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Add %d Frame(s)" +msgstr "Dodaj klatkÄ™" #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Add Frame" msgstr "Dodaj klatkÄ™" #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "ERROR: Couldn't load frame resource!" +msgstr "Błąd: Nie można zaÅ‚adować zasobu klatki!" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Resource clipboard is empty or not a texture!" msgstr "Schowek zasobów jest pusty lub nie zawiera tekstury!" @@ -6796,6 +7261,15 @@ msgid "Animation Frames:" msgstr "Klatki animacji:" #: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Add a Texture from File" +msgstr "Dodaj teksturÄ™/y do TileSetu." + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Add Frames from a Sprite Sheet" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Insert Empty (Before)" msgstr "Dodaj pusty (wczeÅ›niej)" @@ -6812,6 +7286,31 @@ msgid "Move (After)" msgstr "PrzenieÅ› (za)" #: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Select Frames" +msgstr "Ramki stosu" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Horizontal:" +msgstr "Odbij poziomo" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Vertical:" +msgstr "WierzchoÅ‚ki" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Select/Clear All Frames" +msgstr "Zaznacz wszystko" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Create Frames from Sprite Sheet" +msgstr "Utwórz ze sceny" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "SpriteFrames" msgstr "SpriteFrames" @@ -6876,12 +7375,13 @@ msgstr "Dodaj wszystko" msgid "Remove All Items" msgstr "UsuÅ„ wszystkie elementy" -#: editor/plugins/theme_editor_plugin.cpp +#: editor/plugins/theme_editor_plugin.cpp editor/project_manager.cpp msgid "Remove All" msgstr "UsuÅ„ wszystkie" #: editor/plugins/theme_editor_plugin.cpp -msgid "Edit theme..." +#, fuzzy +msgid "Edit Theme" msgstr "Edytuj motyw interfejsu..." #: editor/plugins/theme_editor_plugin.cpp @@ -6909,18 +7409,25 @@ msgid "Create From Current Editor Theme" msgstr "Utwórz z aktualnego motywu edytora" #: editor/plugins/theme_editor_plugin.cpp -msgid "CheckBox Radio1" -msgstr "CheckBox Radio1" +#, fuzzy +msgid "Toggle Button" +msgstr "Przycisk myszy" #: editor/plugins/theme_editor_plugin.cpp -msgid "CheckBox Radio2" -msgstr "CheckBox Radio2" +#, fuzzy +msgid "Disabled Button" +msgstr "Åšrodkowy guzik" #: editor/plugins/theme_editor_plugin.cpp msgid "Item" msgstr "Element" #: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Disabled Item" +msgstr "Wyłączone" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Check Item" msgstr "Element wyboru" @@ -6937,6 +7444,24 @@ msgid "Checked Radio Item" msgstr "Zaznaczony element opcji" #: editor/plugins/theme_editor_plugin.cpp +msgid "Named Sep." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Submenu" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Item 1" +msgstr "Element" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Item 2" +msgstr "Element" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Has" msgstr "Ma" @@ -6945,8 +7470,9 @@ msgid "Many" msgstr "Wiele" #: editor/plugins/theme_editor_plugin.cpp -msgid "Has,Many,Options" -msgstr "Ma,Wiele,Opcji" +#, fuzzy +msgid "Disabled LineEdit" +msgstr "Wyłączone" #: editor/plugins/theme_editor_plugin.cpp msgid "Tab 1" @@ -6961,6 +7487,19 @@ msgid "Tab 3" msgstr "ZakÅ‚adka 3" #: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Editable Item" +msgstr "Edytowalne dzieci" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Subtree" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Has,Many,Options" +msgstr "Ma,Wiele,Opcji" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Data Type:" msgstr "Typ danych:" @@ -6993,6 +7532,7 @@ msgid "Fix Invalid Tiles" msgstr "Napraw niewÅ‚aÅ›ciwe kafelki" #: editor/plugins/tile_map_editor_plugin.cpp +#: modules/gridmap/grid_map_editor_plugin.cpp msgid "Cut Selection" msgstr "Wytnij zaznaczenie" @@ -7033,35 +7573,52 @@ msgid "Mirror Y" msgstr "Odbij Y" #: editor/plugins/tile_map_editor_plugin.cpp +#, fuzzy +msgid "Disable Autotile" +msgstr "Autotiles" + +#: editor/plugins/tile_map_editor_plugin.cpp +#, fuzzy +msgid "Enable Priority" +msgstr "Edytuj priorytet Kafelka" + +#: editor/plugins/tile_map_editor_plugin.cpp msgid "Paint Tile" msgstr "Maluj kafelek" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Pick Tile" -msgstr "Wybierz kafelek" +msgid "" +"Shift+RMB: Line Draw\n" +"Shift+Ctrl+RMB: Rectangle Paint" +msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Copy Selection" -msgstr "Kopiuj zaznaczenie" +msgid "Pick Tile" +msgstr "Wybierz kafelek" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Rotate left" +#, fuzzy +msgid "Rotate Left" msgstr "Obróć w lewo" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Rotate right" +#, fuzzy +msgid "Rotate Right" msgstr "Obróć w prawo" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Flip horizontally" +#, fuzzy +msgid "Flip Horizontally" msgstr "Odbij poziomo" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Flip vertically" +#, fuzzy +msgid "Flip Vertically" msgstr "Odbij pionowo" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Clear transform" +#, fuzzy +msgid "Clear Transform" msgstr "Wyczyść przeksztaÅ‚cenie" #: editor/plugins/tile_set_editor_plugin.cpp @@ -7097,6 +7654,46 @@ msgid "Select the previous shape, subtile, or Tile." msgstr "Wybierz poprzedni ksztaÅ‚t, podkafelek lub Kafelek." #: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Region Mode" +msgstr "Tryb uruchamiania:" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Collision Mode" +msgstr "Sposób interpolacji" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Occlusion Mode" +msgstr "Edytuj wielokÄ…t okluzji" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Navigation Mode" +msgstr "Utwórz siatkÄ™ nawigacyjnÄ… (Navigation Mesh)" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Bitmask Mode" +msgstr "Tryb Rotacji" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Priority Mode" +msgstr "Tryb eksportu:" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Icon Mode" +msgstr "Tryb przesuwania" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Z Index Mode" +msgstr "Tryb przesuwania" + +#: editor/plugins/tile_set_editor_plugin.cpp msgid "Copy bitmask." msgstr "Kopiuj maskÄ™ bitowÄ…." @@ -7178,9 +7775,11 @@ msgid "Delete polygon." msgstr "UsuÅ„ wielokÄ…t." #: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy msgid "" "LMB: Set bit on.\n" "RMB: Set bit off.\n" +"Shift+LMB: Set wildcard bit.\n" "Click on another Tile to edit it." msgstr "" "LPM: Włącz bit.\n" @@ -7298,6 +7897,79 @@ msgid "TileSet" msgstr "TileSet" #: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Add input +" +msgstr "Dodaj WejÅ›cie" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Add output +" +msgstr "Dodaj WejÅ›cie" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar" +msgstr "Skala:" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector" +msgstr "Inspektor" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Add input port" +msgstr "Dodaj WejÅ›cie" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add output port" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change input port type" +msgstr "Zmienić domyÅ›lny typ" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change output port type" +msgstr "Zmienić domyÅ›lny typ" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change input port name" +msgstr "ZmieÅ„ nazwÄ™ wejÅ›cia" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change output port name" +msgstr "ZmieÅ„ nazwÄ™ wejÅ›cia" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Remove input port" +msgstr "UsuÅ„ punkt" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Remove output port" +msgstr "UsuÅ„ punkt" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Set expression" +msgstr "ZmieÅ„ wyrażenie" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Resize VisualShader node" +msgstr "Shader wizualny" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Set Uniform Name" msgstr "Ustaw nazwÄ™ uniformu" @@ -7314,9 +7986,8 @@ msgid "Duplicate Nodes" msgstr "Duplikuj wÄ™zÅ‚y" #: editor/plugins/visual_shader_editor_plugin.cpp -#, fuzzy msgid "Delete Nodes" -msgstr "UsuÅ„ wÄ™zeÅ‚" +msgstr "UsuÅ„ wÄ™zÅ‚y" #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Visual Shader Input Type Changed" @@ -7335,6 +8006,858 @@ msgid "Light" msgstr "ÅšwiatÅ‚o" #: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Create Shader Node" +msgstr "Utwórz wÄ™zeÅ‚" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Color function." +msgstr "Przejdź do funkcji" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Color operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Grayscale function." +msgstr "Utwórz funkcjÄ™" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts HSV vector to RGB equivalent." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts RGB vector to HSV equivalent." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Sepia function." +msgstr "ZmieÅ„ nazwÄ™ funkcji" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Burn operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Darken operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Difference operator." +msgstr "Tylko różnice" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Dodge operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "HardLight operator" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Lighten operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Overlay operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Screen operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "SoftLight operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Color constant." +msgstr "StaÅ‚e" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Color uniform." +msgstr "Wyczyść przeksztaÅ‚cenie" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns an associated vector if the provided scalars are equal, greater or " +"less." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns an associated vector if the provided boolean value is true or false." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Boolean constant." +msgstr "ZmieÅ„ stałą Vec" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'camera' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'inv_camera' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'inv_projection' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'normal' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'projection' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'time' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'viewport_size' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'world' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'texture_pixel_size' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Input parameter." +msgstr "PrzyciÄ…gaj do rodzica" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'binormal' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'fragcoord' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_coord' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_uv' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'side' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'tangent' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv2' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'vertex' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'view' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'albedo' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'attenuation' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'diffuse' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_color' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'roughness' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'specular' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'transmission' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'modelview' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_size' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'tangent' input parameter for vertex and fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_pass' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_coord' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_pixel_size' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_uv' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_alpha' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_height' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_uv' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_vec' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'normal' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'shadow_color' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'extra' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'projection' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'vertex' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'world' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'active' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'custom' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'custom_alpha' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'delta' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'emission_transform' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'index' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'lifetime' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'restart' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'time' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'transform' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'velocity' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar function." +msgstr "ZamieÅ„ funkcjÄ™ skalarnÄ…" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar operator." +msgstr "ZmieÅ„ operator skalara" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "E constant (2.718282). Represents the base of the natural logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Epsilon constant (0.00001). Smallest possible scalar number." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Phi constant (1.618034). Golden ratio." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi/4 constant (0.785398) or 45 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi/2 constant (1.570796) or 90 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi constant (3.141593) or 180 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Tau constant (6.283185) or 360 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Sqrt2 constant (1.414214). Square root of 2." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the absolute value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-tangent of the parameters." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Finds the nearest integer that is greater than or equal to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Constrains a value to lie between two further values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts a quantity in radians to degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-e Exponential." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-2 Exponential." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Finds the nearest integer less than or equal to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Computes the fractional part of the argument." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the inverse of the square root of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Natural logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-2 logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the greater of two values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the lesser of two values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Linear interpolation between two scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the opposite value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 - scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns the value of the first parameter raised to the power of the second." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts a quantity in degrees to radians." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 / scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the nearest integer to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the nearest even integer to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Clamps the value between 0.0 and 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Extracts the sign of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the square root of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( scalar(edge0), scalar(edge1), scalar(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if x is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( scalar(edge), scalar(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the truncated value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Adds scalar to scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Divides scalar by scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies scalar by scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the remainder of the two scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Subtracts scalar from scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar constant." +msgstr "ZmieÅ„ wartość staÅ‚ej skalarnej" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar uniform." +msgstr "Wyczyść przeksztaÅ‚cenie" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Perform the cubic texture lookup." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Perform the texture lookup." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Cubic texture uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "2D texture uniform." +msgstr "Tekstura 2D" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Transform function." +msgstr "Okno transformowania..." + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) Calculate the outer product of a pair of vectors.\n" +"\n" +"OuterProduct treats the first parameter 'c' as a column vector (matrix with " +"one column) and the second parameter 'r' as a row vector (matrix with one " +"row) and does a linear algebraic matrix multiply 'c * r', yielding a matrix " +"whose number of rows is the number of components in 'c' and whose number of " +"columns is the number of components in 'r'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Composes transform from four vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Decomposes transform to four vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the determinant of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the inverse of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the transpose of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies transform by transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies vector by transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Transform constant." +msgstr "Transformacja Zaniechana." + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Transform uniform." +msgstr "Transformacja Zaniechana." + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector function." +msgstr "Przypisanie do funkcji." + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector operator." +msgstr "ZmieÅ„ operator Vec" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Composes vector from three scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Decomposes vector to three scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the cross product of two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the distance between two points." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the dot product of two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns a vector that points in the same direction as a reference vector. " +"The function has three vector parameters : N, the vector to orient, I, the " +"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 "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the length of a vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Linear interpolation between two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the normalize product of vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 - vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 / vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns a vector that points in the direction of reflection ( a : incident " +"vector, b : normal vector )." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns a vector that points in the direction of refraction." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( vector(edge0), vector(edge1), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if 'x' is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( scalar(edge0), scalar(edge1), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if 'x' is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( vector(edge), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( scalar(edge), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Adds vector to vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Divides vector by vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies vector by vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the remainder of the two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Subtracts vector from vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector constant." +msgstr "ZmieÅ„ stałą Vec" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector uniform." +msgstr "Przypisanie do uniformu." + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Custom Godot Shader Language expression, with custom amount of input and " +"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 "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns falloff based on the dot product of surface normal and view " +"direction of camera (pass associated inputs to it)." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) (Fragment/Light mode only) Scalar derivative function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) (Fragment/Light mode only) Vector derivative function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Derivative in 'x' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Derivative in 'x' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Derivative in 'y' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Derivative in 'y' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Sum of absolute derivative " +"in 'x' and 'y'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Sum of absolute derivative " +"in 'x' and 'y'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "VisualShader" msgstr "Shader wizualny" @@ -7532,6 +9055,10 @@ msgid "Directory already contains a Godot project." msgstr "Folder już zawiera projekt Godota." #: editor/project_manager.cpp +msgid "New Game Project" +msgstr "Nowy projekt gry" + +#: editor/project_manager.cpp msgid "Imported Project" msgstr "Zaimportowano projekt" @@ -7580,10 +9107,6 @@ msgid "Rename Project" msgstr "ZmieÅ„ nazwÄ™ projektu" #: editor/project_manager.cpp -msgid "New Game Project" -msgstr "Nowy projekt gry" - -#: editor/project_manager.cpp msgid "Import Existing Project" msgstr "Importuj istniejÄ…cy projekt" @@ -7612,10 +9135,6 @@ msgid "Project Name:" msgstr "Nazwa projektu:" #: editor/project_manager.cpp -msgid "Create folder" -msgstr "Utwórz katalog" - -#: editor/project_manager.cpp msgid "Project Path:" msgstr "Åšcieżka do projektu:" @@ -7624,10 +9143,6 @@ msgid "Project Installation Path:" msgstr "Åšcieżka instalacji projektu:" #: editor/project_manager.cpp -msgid "Browse" -msgstr "PrzeglÄ…daj" - -#: editor/project_manager.cpp msgid "Renderer:" msgstr "Renderer:" @@ -7682,6 +9197,7 @@ msgid "Are you sure to open more than one project?" msgstr "Czy jesteÅ› pewny że chcesz otworzyć wiÄ™cej niż jeden projekt?" #: editor/project_manager.cpp +#, fuzzy msgid "" "The following project settings file does not specify the version of Godot " "through which it was created.\n" @@ -7690,8 +9206,8 @@ msgid "" "\n" "If you proceed with opening it, it will be converted to Godot's current " "configuration file format.\n" -"Warning: You will not be able to open the project with previous versions of " -"the engine anymore." +"Warning: You won't be able to open the project with previous versions of the " +"engine anymore." msgstr "" "Podany plik ustawieÅ„ projektu nie zawiera informacji o wersji Godota, w " "której zostaÅ‚ stworzony.\n" @@ -7704,6 +9220,7 @@ msgstr "" "wczeÅ›niejszymi wersjami silnika." #: editor/project_manager.cpp +#, fuzzy msgid "" "The following project settings file was generated by an older engine " "version, and needs to be converted for this version:\n" @@ -7711,8 +9228,8 @@ msgid "" "%s\n" "\n" "Do you want to convert it?\n" -"Warning: You will not be able to open the project with previous versions of " -"the engine anymore." +"Warning: You won't be able to open the project with previous versions of the " +"engine anymore." msgstr "" "Podany plik ustawieÅ„ projektu zostaÅ‚ stworzony przez starszÄ… wersjÄ™ silnika " "i musi zostać przekonwertowany do aktualnej wersji.\n" @@ -7732,9 +9249,10 @@ msgstr "" "kompatybilna z obecnÄ… wersjÄ…." #: editor/project_manager.cpp +#, fuzzy msgid "" "Can't run project: no main scene defined.\n" -"Please edit the project and set the main scene in \"Project Settings\" under " +"Please edit the project and set the main scene in the Project Settings under " "the \"Application\" category." msgstr "" "Nie zdefiniowano głównej sceny, chcesz jakÄ…Å› wybrać?\n" @@ -7749,25 +9267,45 @@ msgstr "" "Otwórz projekt w edytorze aby zaimportować zasoby." #: editor/project_manager.cpp -msgid "Are you sure to run more than one project?" +#, fuzzy +msgid "Are you sure to run %d projects at once?" msgstr "Czy jesteÅ› pewny że chcesz uruchomić wiÄ™cej niż jeden projekt?" #: editor/project_manager.cpp -msgid "Remove project from the list? (Folder contents will not be modified)" +#, fuzzy +msgid "" +"Remove %d projects from the list?\n" +"The project folders' contents won't be modified." +msgstr "Usunąć projekt z listy? (Zawartość folderu nie zostanie zmodyfikowana)" + +#: editor/project_manager.cpp +#, fuzzy +msgid "" +"Remove this project from the list?\n" +"The project folder's contents won't be modified." +msgstr "Usunąć projekt z listy? (Zawartość folderu nie zostanie zmodyfikowana)" + +#: editor/project_manager.cpp +#, fuzzy +msgid "" +"Remove all missing projects from the list? (Folders contents will not be " +"modified)" msgstr "Usunąć projekt z listy? (Zawartość folderu nie zostanie zmodyfikowana)" #: editor/project_manager.cpp +#, fuzzy msgid "" "Language changed.\n" -"The UI will update next time the editor or project manager starts." +"The interface will update after restarting the editor or project manager." msgstr "" "JÄ™zyk zostaÅ‚ zmieniony.\n" "Interfejs zaktualizuje siÄ™ gdy edytor lub menedżer projektu uruchomi siÄ™." #: editor/project_manager.cpp +#, fuzzy msgid "" -"You are about the scan %s folders for existing Godot projects. Do you " -"confirm?" +"Are you sure to scan %s folders for existing Godot projects?\n" +"This could take a while." msgstr "" "Masz zamiar przeskanować %s folderów w poszukiwaniu projektów Godot. " "Potwierdzasz?" @@ -7793,6 +9331,11 @@ msgid "New Project" msgstr "Nowy projekt" #: editor/project_manager.cpp +#, fuzzy +msgid "Remove Missing" +msgstr "UsuÅ„ punkt" + +#: editor/project_manager.cpp msgid "Templates" msgstr "Szablony" @@ -7809,9 +9352,10 @@ msgid "Can't run project" msgstr "Nie można uruchomić projektu" #: editor/project_manager.cpp +#, fuzzy msgid "" -"You don't currently have any projects.\n" -"Would you like to explore the official example projects in the Asset Library?" +"You currently don't have any projects.\n" +"Would you like to explore official example projects in the Asset Library?" msgstr "" "Nie posiadasz obecnie żadnych projektów.\n" "Czy chciaÅ‚byÅ› zobaczyć oficjalne przykÅ‚adowe projekty w bibliotece zasobów?" @@ -7841,7 +9385,8 @@ msgstr "" "lub '\"'" #: editor/project_settings_editor.cpp -msgid "Action '%s' already exists!" +#, fuzzy +msgid "An action with the name '%s' already exists." msgstr "Akcja %s już istnieje!" #: editor/project_settings_editor.cpp @@ -7997,10 +9542,6 @@ msgstr "" "lub '\"'." #: editor/project_settings_editor.cpp -msgid "Already existing" -msgstr "Już istnieje" - -#: editor/project_settings_editor.cpp msgid "Add Input Action" msgstr "Dodawanie akcji WejÅ›cia" @@ -8065,7 +9606,8 @@ msgid "Override For..." msgstr "Nadpisz dla..." #: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp -msgid "Editor must be restarted for changes to take effect" +#, fuzzy +msgid "The editor must be restarted for changes to take effect." msgstr "Edytor musi zostać zrestartowany, by zmiany miaÅ‚y efekt" #: editor/project_settings_editor.cpp @@ -8125,11 +9667,13 @@ msgid "Locales Filter" msgstr "Filtr ustawieÅ„ lokalizacji" #: editor/project_settings_editor.cpp -msgid "Show all locales" +#, fuzzy +msgid "Show All Locales" msgstr "Pokaż wszystkie lokalizacje" #: editor/project_settings_editor.cpp -msgid "Show only selected locales" +#, fuzzy +msgid "Show Selected Locales Only" msgstr "Pokaż tylko wybrane lokalizacje" #: editor/project_settings_editor.cpp @@ -8145,14 +9689,6 @@ msgid "AutoLoad" msgstr "AutoÅ‚adowanie" #: editor/property_editor.cpp -msgid "Ease In" -msgstr "Åagodne wejÅ›cie" - -#: editor/property_editor.cpp -msgid "Ease Out" -msgstr "Åagodne wyjÅ›cie" - -#: editor/property_editor.cpp msgid "Zero" msgstr "Zero" @@ -8226,7 +9762,8 @@ msgid "Suffix" msgstr "Przyrostek" #: editor/rename_dialog.cpp -msgid "Advanced options" +#, fuzzy +msgid "Advanced Options" msgstr "Opcje zaawansowane" #: editor/rename_dialog.cpp @@ -8487,8 +10024,9 @@ msgid "User Interface" msgstr "Interfejs użytkownika" #: editor/scene_tree_dock.cpp -msgid "Custom Node" -msgstr "Inny wÄ™zeÅ‚" +#, fuzzy +msgid "Other Node" +msgstr "UsuÅ„ wÄ™zeÅ‚" #: editor/scene_tree_dock.cpp msgid "Can't operate on nodes from a foreign scene!" @@ -8531,7 +10069,8 @@ msgid "Clear Inheritance" msgstr "Wyczyść dziedziczenie" #: editor/scene_tree_dock.cpp -msgid "Open documentation" +#, fuzzy +msgid "Open Documentation" msgstr "Otwórz dokumentacjÄ™" #: editor/scene_tree_dock.cpp @@ -8558,7 +10097,7 @@ msgstr "Dołącz ze sceny" msgid "Save Branch as Scene" msgstr "Zapisz gałąź jako scenÄ™" -#: editor/scene_tree_dock.cpp +#: editor/scene_tree_dock.cpp editor/script_editor_debugger.cpp msgid "Copy Node Path" msgstr "Skopiuj Å›cieżkÄ™ wÄ™zÅ‚a" @@ -8603,6 +10142,21 @@ msgid "Toggle Visible" msgstr "Przełącz widoczność" #: editor/scene_tree_editor.cpp +#, fuzzy +msgid "Unlock Node" +msgstr "Wybierz wÄ™zeÅ‚" + +#: editor/scene_tree_editor.cpp +#, fuzzy +msgid "Button Group" +msgstr "Przycisk 7" + +#: editor/scene_tree_editor.cpp +#, fuzzy +msgid "(Connecting From)" +msgstr "Błąd połączenia" + +#: editor/scene_tree_editor.cpp msgid "Node configuration warning:" msgstr "Ostrzeżenie konfiguracji wÄ™zÅ‚a:" @@ -8630,8 +10184,9 @@ msgstr "" "WÄ™zeÅ‚ jest w grupach.\n" "Kliknij, aby wyÅ›wietlić panel grup." -#: editor/scene_tree_editor.cpp editor/script_create_dialog.cpp -msgid "Open Script" +#: editor/scene_tree_editor.cpp +#, fuzzy +msgid "Open Script:" msgstr "Otwórz skrypt" #: editor/scene_tree_editor.cpp @@ -8683,71 +10238,83 @@ msgid "Select a Node" msgstr "Wybierz wÄ™zeÅ‚" #: editor/script_create_dialog.cpp -msgid "Error loading template '%s'" -msgstr "Błąd podczas Å‚adowania szablonu '%s'" +#, fuzzy +msgid "Path is empty." +msgstr "Åšcieżka jest pusta" #: editor/script_create_dialog.cpp -msgid "Error - Could not create script in filesystem." -msgstr "Błąd - Nie można byÅ‚o utworzyć skryptu w systemie plików." +#, fuzzy +msgid "Filename is empty." +msgstr "Nazwa pliku jest pusta" #: editor/script_create_dialog.cpp -msgid "Error loading script from %s" -msgstr "Błąd Å‚adowania skryptu z %s" +#, fuzzy +msgid "Path is not local." +msgstr "Åšcieżka nie jest lokalna" #: editor/script_create_dialog.cpp -msgid "N/A" -msgstr "N/A" +#, fuzzy +msgid "Invalid base path." +msgstr "Niepoprawna Å›cieżka bazowa" #: editor/script_create_dialog.cpp -msgid "Open Script/Choose Location" -msgstr "Otwórz skrypt/Wybierz lokacjÄ™" +#, fuzzy +msgid "A directory with the same name exists." +msgstr "Katalog o tej nazwie już istnieje" #: editor/script_create_dialog.cpp -msgid "Path is empty" -msgstr "Åšcieżka jest pusta" +#, fuzzy +msgid "Invalid extension." +msgstr "Niepoprawne rozszerzenie" #: editor/script_create_dialog.cpp -msgid "Filename is empty" -msgstr "Nazwa pliku jest pusta" +#, fuzzy +msgid "Wrong extension chosen." +msgstr "Wybrano błędne rozszeczenie" #: editor/script_create_dialog.cpp -msgid "Path is not local" -msgstr "Åšcieżka nie jest lokalna" +msgid "Error loading template '%s'" +msgstr "Błąd podczas Å‚adowania szablonu '%s'" #: editor/script_create_dialog.cpp -msgid "Invalid base path" -msgstr "Niepoprawna Å›cieżka bazowa" +msgid "Error - Could not create script in filesystem." +msgstr "Błąd - Nie można byÅ‚o utworzyć skryptu w systemie plików." #: editor/script_create_dialog.cpp -msgid "Directory of the same name exists" -msgstr "Katalog o tej nazwie już istnieje" +msgid "Error loading script from %s" +msgstr "Błąd Å‚adowania skryptu z %s" #: editor/script_create_dialog.cpp -msgid "File exists, will be reused" -msgstr "Plik istnieje, zostanie nadpisany" +msgid "N/A" +msgstr "N/A" #: editor/script_create_dialog.cpp -msgid "Invalid extension" -msgstr "Niepoprawne rozszerzenie" +#, fuzzy +msgid "Open Script / Choose Location" +msgstr "Otwórz skrypt/Wybierz lokacjÄ™" #: editor/script_create_dialog.cpp -msgid "Wrong extension chosen" -msgstr "Wybrano błędne rozszeczenie" +msgid "Open Script" +msgstr "Otwórz skrypt" #: editor/script_create_dialog.cpp -msgid "Invalid Path" -msgstr "NieprawidÅ‚owa Å›cieżka" +#, fuzzy +msgid "File exists, it will be reused." +msgstr "Plik istnieje, zostanie nadpisany" #: editor/script_create_dialog.cpp -msgid "Invalid class name" +#, fuzzy +msgid "Invalid class name." msgstr "Niepoprawna nazwa klasy" #: editor/script_create_dialog.cpp -msgid "Invalid inherited parent name or path" +#, fuzzy +msgid "Invalid inherited parent name or path." msgstr "NieprawidÅ‚owa nazwa lub Å›cieżka klasy bazowej" #: editor/script_create_dialog.cpp -msgid "Script valid" +#, fuzzy +msgid "Script is valid." msgstr "Skrypt prawidÅ‚owy" #: editor/script_create_dialog.cpp @@ -8755,15 +10322,18 @@ msgid "Allowed: a-z, A-Z, 0-9 and _" msgstr "DostÄ™pne znaki: a-z, A-Z, 0-9 i _" #: editor/script_create_dialog.cpp -msgid "Built-in script (into scene file)" +#, fuzzy +msgid "Built-in script (into scene file)." msgstr "Wbudowany skrypt (w plik sceny)" #: editor/script_create_dialog.cpp -msgid "Create new script file" +#, fuzzy +msgid "Will create a new script file." msgstr "Utwórz nowy plik skryptu" #: editor/script_create_dialog.cpp -msgid "Load existing script file" +#, fuzzy +msgid "Will load an existing script file." msgstr "Wczytaj istniejÄ…cy plik skryptu" #: editor/script_create_dialog.cpp @@ -8894,6 +10464,10 @@ msgstr "KorzeÅ„ edycji:" msgid "Set From Tree" msgstr "Ustaw z drzewa" +#: editor/script_editor_debugger.cpp +msgid "Export measures as CSV" +msgstr "" + #: editor/settings_config_dialog.cpp msgid "Erase Shortcut" msgstr "UsuÅ„ skrót" @@ -9023,6 +10597,15 @@ msgid "GDNativeLibrary" msgstr "GDNativeLibrary" #: 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 "Wyłącz wiatraczek aktualizacji" + +#: modules/gdnative/gdnative_library_singleton_editor.cpp msgid "Library" msgstr "Biblioteka" @@ -9108,8 +10691,9 @@ msgid "GridMap Fill Selection" msgstr "GridMap WypeÅ‚nij zaznaczenie" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "GridMap Duplicate Selection" -msgstr "GridMap duplikuj zaznaczenie" +#, fuzzy +msgid "GridMap Paste Selection" +msgstr "GridMap UsuÅ„ zaznaczenie" #: modules/gridmap/grid_map_editor_plugin.cpp msgid "GridMap Paint" @@ -9176,18 +10760,6 @@ msgid "Cursor Clear Rotation" msgstr "Kursor Wyczyść obrót" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Create Area" -msgstr "Utwórz obszar" - -#: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Create Exterior Connector" -msgstr "Utwórz łącznik zewnÄ™trzny" - -#: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Erase Area" -msgstr "Usuń obszar" - -#: modules/gridmap/grid_map_editor_plugin.cpp msgid "Clear Selection" msgstr "Wyczyść zaznaczone" @@ -9548,18 +11120,11 @@ msgid "Available Nodes:" msgstr "DostÄ™pne wÄ™zÅ‚y:" #: modules/visual_script/visual_script_editor.cpp -msgid "Select or create a function to edit graph" +#, fuzzy +msgid "Select or create a function to edit its graph." msgstr "Wybierz lub utwórz funkcjÄ™, aby edytować wykres" #: modules/visual_script/visual_script_editor.cpp -msgid "Edit Signal Arguments:" -msgstr "Edytuj argumenty sygnaÅ‚u:" - -#: modules/visual_script/visual_script_editor.cpp -msgid "Edit Variable:" -msgstr "Edytuj zmiennÄ…:" - -#: modules/visual_script/visual_script_editor.cpp msgid "Delete Selected" msgstr "UsuÅ„ zaznaczone" @@ -9691,6 +11256,19 @@ msgstr "" "eksportu." #: platform/android/export/export.cpp +msgid "Custom build requires a valid Android SDK path in Editor Settings." +msgstr "" + +#: platform/android/export/export.cpp +msgid "Invalid Android SDK path for custom build in Editor Settings." +msgstr "" + +#: platform/android/export/export.cpp +msgid "" +"Android project is not installed for compiling. Install from Editor menu." +msgstr "" + +#: platform/android/export/export.cpp msgid "Invalid public key for APK expansion." msgstr "Niepoprawny klucz publiczny dla ekspansji APK." @@ -9698,6 +11276,34 @@ msgstr "Niepoprawny klucz publiczny dla ekspansji APK." msgid "Invalid package name:" msgstr "Niepoprawna nazwa paczki:" +#: platform/android/export/export.cpp +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 "" +"Android build version mismatch:\n" +" Template installed: %s\n" +" Godot Version: %s\n" +"Please reinstall Android build template from 'Project' menu." +msgstr "" + +#: platform/android/export/export.cpp +msgid "Building Android Project (gradle)" +msgstr "" + +#: 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 "" + +#: platform/android/export/export.cpp +msgid "No build apk generated at: " +msgstr "" + #: platform/iphone/export/export.cpp msgid "Identifier is missing." msgstr "Brakuje identyfikatora." @@ -10002,31 +11608,36 @@ msgid "ARVRCamera must have an ARVROrigin node as its parent" msgstr "ARVRCamera musi dziedziczyć po węźle ARVROrigin" #: scene/3d/arvr_nodes.cpp -msgid "ARVRController must have an ARVROrigin node as its parent" +#, fuzzy +msgid "ARVRController must have an ARVROrigin node as its parent." msgstr "ARVRController musi posiadać wÄ™zeÅ‚ ARVROrigin jako nadrzÄ™dny" #: scene/3d/arvr_nodes.cpp +#, fuzzy msgid "" -"The controller id must not be 0 or this controller will not be bound to an " -"actual controller" +"The controller ID must not be 0 or this controller won't be bound to an " +"actual controller." msgstr "" "Id kontrolera nie może być '0' w innym przypadku kontroler nie zostanie " "przypisany do żadnego rzeczywistego kontrolera" #: scene/3d/arvr_nodes.cpp -msgid "ARVRAnchor must have an ARVROrigin node as its parent" +#, fuzzy +msgid "ARVRAnchor must have an ARVROrigin node as its parent." msgstr "ARVRAnchor musi posiadać wÄ™zeÅ‚ ARVROrigin jako nadrzÄ™dny" #: scene/3d/arvr_nodes.cpp +#, fuzzy msgid "" -"The anchor id must not be 0 or this anchor will not be bound to an actual " -"anchor" +"The anchor ID must not be 0 or this anchor won't be bound to an actual " +"anchor." msgstr "" "ID kotwicy nie może być 0, bo inaczej ta kotwica nie bÄ™dzie przypisana do " "rzeczywistej kotwicy" #: scene/3d/arvr_nodes.cpp -msgid "ARVROrigin requires an ARVRCamera child node" +#, fuzzy +msgid "ARVROrigin requires an ARVRCamera child node." msgstr "ARVROrigin wymaga dziedziczÄ…cego po nim ARVRCamera" #: scene/3d/baked_lightmap.cpp @@ -10109,9 +11720,10 @@ msgid "Nothing is visible because no mesh has been assigned." msgstr "Nie zostaÅ‚a przypisana żadna siatka, wiÄ™c nic siÄ™ nie pojawi." #: scene/3d/cpu_particles.cpp +#, fuzzy msgid "" -"CPUParticles animation requires the usage of a SpatialMaterial with " -"\"Billboard Particles\" enabled." +"CPUParticles animation requires the usage of a SpatialMaterial whose " +"Billboard Mode is set to \"Particle Billboard\"." msgstr "" "Animacja CPUParticles wymaga użycia SpatialMaterial z włączonym \"Billboard " "Particles\"." @@ -10159,9 +11771,10 @@ msgstr "" "Nic nie jest widoczne, bo siatki nie zostaÅ‚y przypisane do kolejki rysowania." #: scene/3d/particles.cpp +#, fuzzy msgid "" -"Particles animation requires the usage of a SpatialMaterial with \"Billboard " -"Particles\" enabled." +"Particles animation requires the usage of a SpatialMaterial whose Billboard " +"Mode is set to \"Particle Billboard\"." msgstr "" "Animacja Particles wymaga użycia SpatialMaterial z włączonym \"Billboard " "Particles\"." @@ -10193,7 +11806,8 @@ msgid "Path property must point to a valid Spatial node to work." msgstr "Pole Path musi wskazywać na wÄ™zeÅ‚ Spatial." #: scene/3d/soft_body.cpp -msgid "This body will be ignored until you set a mesh" +#, fuzzy +msgid "This body will be ignored until you set a mesh." msgstr "To ciaÅ‚o bÄ™dzie ignorowane, dopóki nie ustawisz siatki" #: scene/3d/soft_body.cpp @@ -10300,10 +11914,11 @@ msgid "Add current color as a preset." msgstr "Dodaj bieżący kolor do zapisanych." #: scene/gui/container.cpp +#, fuzzy msgid "" "Container by itself serves no purpose unless a script configures it's " "children placement behavior.\n" -"If you dont't intend to add a script, then please use a plain 'Control' node " +"If you don't intend to add a script, then please use a plain 'Control' node " "instead." msgstr "" "Kontener sam w sobie nie speÅ‚nia żadnego celu, chyba że jakiÅ› skrypt " @@ -10319,10 +11934,6 @@ msgstr "Alarm!" msgid "Please Confirm..." msgstr "ProszÄ™ potwierdzić..." -#: scene/gui/file_dialog.cpp -msgid "Go to parent folder." -msgstr "Przejdź folder wyżej." - #: scene/gui/popup.cpp msgid "" "Popups will hide by default unless you call popup() or any of the popup*() " @@ -10408,6 +12019,76 @@ msgstr "Przypisanie do uniformu." msgid "Varyings can only be assigned in vertex function." msgstr "Varying może być przypisane tylko w funkcji wierzchoÅ‚ków." +#: servers/visual/shader_language.cpp +msgid "Constants cannot be modified." +msgstr "" + +#~ msgid "Path to Node:" +#~ msgstr "Åšcieżka do wÄ™zÅ‚a:" + +#~ msgid "Delete selected files?" +#~ msgstr "Usunąć zaznaczone pliki?" + +#~ msgid "There is no 'res://default_bus_layout.tres' file." +#~ msgstr "Plik 'res://default_bus_layout.tres' nie istnieje." + +#~ 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" + +#~ msgid "Previous Directory" +#~ msgstr "Poprzedni katalog" + +#~ msgid "Next Directory" +#~ msgstr "NastÄ™pny folder" + +#~ msgid "Ease in" +#~ msgstr "Åagodne wejÅ›cie" + +#~ msgid "Ease out" +#~ msgstr "Åagodne wyjÅ›cie" + +#~ msgid "Create Convex Static Body" +#~ msgstr "Utwórz statyczne ciaÅ‚o wypukÅ‚e" + +#~ msgid "CheckBox Radio1" +#~ msgstr "CheckBox Radio1" + +#~ msgid "CheckBox Radio2" +#~ msgstr "CheckBox Radio2" + +#~ msgid "Create folder" +#~ msgstr "Utwórz katalog" + +#~ msgid "Already existing" +#~ msgstr "Już istnieje" + +#~ msgid "Custom Node" +#~ msgstr "Inny wÄ™zeÅ‚" + +#~ msgid "Invalid Path" +#~ msgstr "NieprawidÅ‚owa Å›cieżka" + +#~ msgid "GridMap Duplicate Selection" +#~ msgstr "GridMap duplikuj zaznaczenie" + +#~ msgid "Create Area" +#~ msgstr "Utwórz obszar" + +#~ msgid "Create Exterior Connector" +#~ msgstr "Utwórz łącznik zewnÄ™trzny" + +#~ msgid "Edit Signal Arguments:" +#~ msgstr "Edytuj argumenty sygnaÅ‚u:" + +#~ msgid "Edit Variable:" +#~ msgstr "Edytuj zmiennÄ…:" + #~ msgid "Snap (s): " #~ msgstr "PrzyciÄ…ganie (s): " @@ -10529,9 +12210,6 @@ msgstr "Varying może być przypisane tylko w funkcji wierzchoÅ‚ków." #~ msgid "Class List:" #~ msgstr "Lista klas:" -#~ msgid "Search Classes" -#~ msgstr "Przeszukaj klasy" - #~ msgid "Public Methods" #~ msgstr "Metody publiczne" @@ -10610,9 +12288,6 @@ msgstr "Varying może być przypisane tylko w funkcji wierzchoÅ‚ków." #~ msgid "Error:" #~ msgstr "Błąd:" -#~ msgid "Source:" -#~ msgstr "ŹródÅ‚o:" - #~ msgid "Function:" #~ msgstr "Funkcja:" @@ -10637,21 +12312,9 @@ msgstr "Varying może być przypisane tylko w funkcji wierzchoÅ‚ków." #~ msgid "Get" #~ msgstr "Pobierz" -#~ msgid "Change Scalar Constant" -#~ msgstr "ZmieÅ„ wartość staÅ‚ej skalarnej" - -#~ msgid "Change Vec Constant" -#~ msgstr "ZmieÅ„ stałą Vec" - #~ msgid "Change RGB Constant" #~ msgstr "ZmieÅ„ stałą RGB" -#~ msgid "Change Scalar Operator" -#~ msgstr "ZmieÅ„ operator skalara" - -#~ msgid "Change Vec Operator" -#~ msgstr "ZmieÅ„ operator Vec" - #~ msgid "Change Vec Scalar Operator" #~ msgstr "ZmieÅ„ operator Vec Scalar" @@ -10661,10 +12324,6 @@ msgstr "Varying może być przypisane tylko w funkcji wierzchoÅ‚ków." #~ msgid "Toggle Rot Only" #~ msgstr "Przełącz tylko rotacje" -#, fuzzy -#~ msgid "Change Scalar Function" -#~ msgstr "ZamieÅ„ funkcjÄ™ skalarnÄ…" - #~ msgid "Change Vec Function" #~ msgstr "ZmieÅ„ funkcjÄ™ wektorowÄ…" @@ -10683,10 +12342,6 @@ msgstr "Varying może być przypisane tylko w funkcji wierzchoÅ‚ków." #~ msgid "Modify Curve Map" #~ msgstr "Edytuj mape krzywej" -#, fuzzy -#~ msgid "Change Input Name" -#~ msgstr "ZmieÅ„ nazwÄ™ wejÅ›cia" - #~ msgid "Connect Graph Nodes" #~ msgstr "Połącz wÄ™zÅ‚y grafu" @@ -10705,9 +12360,6 @@ msgstr "Varying może być przypisane tylko w funkcji wierzchoÅ‚ków." #~ msgid "Error: Missing Input Connections" #~ msgstr "Błąd: BrakujÄ…ce połączenia wejÅ›cia" -#~ msgid "Disabled" -#~ msgstr "Wyłączone" - #~ msgid "Move Anim Track Up" #~ msgstr "PrzesuÅ„ Å›cieżkÄ™ animacji w górÄ™" @@ -10887,16 +12539,9 @@ msgstr "Varying może być przypisane tylko w funkcji wierzchoÅ‚ków." #~ msgid "Item name or ID:" #~ msgstr "Nazwa elementu lub ID:" -#, fuzzy -#~ msgid "Autotiles" -#~ msgstr "Autotiles" - #~ msgid "Export templates for this platform are missing/corrupted: " #~ msgstr "Brakuje/Uszkodzone szablony eksportu dla tej platformy: " -#~ msgid "Button 7" -#~ msgstr "Przycisk 7" - #~ msgid "Button 8" #~ msgstr "Przycisk 8" @@ -11380,9 +13025,6 @@ msgstr "Varying może być przypisane tylko w funkcji wierzchoÅ‚ków." #~ msgid "Import Textures" #~ msgstr "Zaimportuj Tekstury" -#~ msgid "2D Texture" -#~ msgstr "Tekstura 2D" - #~ msgid "3D Texture" #~ msgstr "Tekstura 3D" @@ -11712,9 +13354,6 @@ msgstr "Varying może być przypisane tylko w funkcji wierzchoÅ‚ków." #~ msgid "Project Export Settings" #~ msgstr "Opcje eksportu projektu" -#~ msgid "Target" -#~ msgstr "Cel" - #~ msgid "Export to Platform" #~ msgstr "Eksportuj na platformÄ™" diff --git a/editor/translations/pr.po b/editor/translations/pr.po index 0aa4cbbca8..4d976eb687 100644 --- a/editor/translations/pr.po +++ b/editor/translations/pr.po @@ -77,6 +77,14 @@ msgstr "" msgid "Mirror" msgstr "" +#: editor/animation_bezier_editor.cpp editor/editor_profiler.cpp +msgid "Time:" +msgstr "" + +#: editor/animation_bezier_editor.cpp +msgid "Value:" +msgstr "" + #: editor/animation_bezier_editor.cpp msgid "Insert Key Here" msgstr "" @@ -168,11 +176,16 @@ msgid "Animation Playback Track" msgstr "" #: editor/animation_track_editor.cpp -msgid "Add Track" +#, fuzzy +msgid "Animation length (frames)" +msgstr "Yer unique name be evil." + +#: editor/animation_track_editor.cpp +msgid "Animation length (seconds)" msgstr "" #: editor/animation_track_editor.cpp -msgid "Animation Length Time (seconds)" +msgid "Add Track" msgstr "" #: editor/animation_track_editor.cpp @@ -302,11 +315,13 @@ msgid "Create %d NEW tracks and insert keys?" msgstr "" #: editor/animation_track_editor.cpp editor/create_dialog.cpp -#: editor/editor_audio_buses.cpp editor/editor_plugin_settings.cpp -#: editor/plugin_config_dialog.cpp +#: editor/editor_audio_buses.cpp editor/editor_feature_profile.cpp +#: editor/editor_plugin_settings.cpp editor/plugin_config_dialog.cpp #: editor/plugins/abstract_polygon_2d_editor.cpp #: editor/plugins/mesh_instance_editor_plugin.cpp -#: editor/plugins/particles_editor_plugin.cpp editor/script_create_dialog.cpp +#: editor/plugins/particles_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_create_dialog.cpp msgid "Create" msgstr "" @@ -420,6 +435,23 @@ msgid "" msgstr "" #: editor/animation_track_editor.cpp +msgid "" +"This animation belongs to an imported scene, so changes to imported tracks " +"will not be saved.\n" +"\n" +"To enable the ability to add custom tracks, navigate to the scene's import " +"settings and set\n" +"\"Animation > Storage\" to \"Files\", enable \"Animation > Keep Custom Tracks" +"\", then re-import.\n" +"Alternatively, use an import preset that imports animations to separate " +"files." +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Warning: Editing imported animation" +msgstr "" + +#: editor/animation_track_editor.cpp msgid "Only show tracks from nodes selected in tree." msgstr "" @@ -553,7 +585,8 @@ msgstr "" msgid "Select tracks to copy:" msgstr "" -#: editor/animation_track_editor.cpp editor/editor_properties.cpp +#: editor/animation_track_editor.cpp editor/editor_log.cpp +#: editor/editor_properties.cpp #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp @@ -621,6 +654,11 @@ msgstr "" msgid "Selection Only" msgstr "" +#: editor/code_editor.cpp editor/plugins/script_text_editor.cpp +#: editor/plugins/text_editor.cpp +msgid "Standard" +msgstr "" + #: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/texture_region_editor_plugin.cpp #: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp @@ -646,17 +684,32 @@ msgid "Line and column numbers." msgstr "" #: editor/connections_dialog.cpp -msgid "Method in target Node must be specified!" +msgid "Method in target node must be specified." msgstr "" #: editor/connections_dialog.cpp msgid "" -"Target method not found! Specify a valid method or attach a script to target " -"Node." +"Target method not found. Specify a valid method or attach a script to the " +"target node." msgstr "" #: editor/connections_dialog.cpp -msgid "Connect To Node:" +#, fuzzy +msgid "Connect to Node:" +msgstr "Slit th' Node" + +#: editor/connections_dialog.cpp +#, fuzzy +msgid "Connect to Script:" +msgstr "Slit th' Node" + +#: editor/connections_dialog.cpp +#, fuzzy +msgid "From Signal:" +msgstr "Yer signals:" + +#: editor/connections_dialog.cpp +msgid "Scene does not contain any script." msgstr "" #: editor/connections_dialog.cpp editor/editor_autoload_settings.cpp @@ -666,10 +719,12 @@ msgid "Add" msgstr "" #: editor/connections_dialog.cpp editor/dependency_editor.cpp -#: editor/groups_editor.cpp editor/plugins/animation_player_editor_plugin.cpp +#: editor/editor_feature_profile.cpp editor/groups_editor.cpp +#: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp #: editor/plugins/resource_preloader_editor_plugin.cpp -#: editor/plugins/theme_editor_plugin.cpp editor/project_manager.cpp +#: editor/plugins/theme_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_manager.cpp #: editor/project_settings_editor.cpp msgid "Remove" msgstr "" @@ -683,21 +738,31 @@ msgid "Extra Call Arguments:" msgstr "" #: editor/connections_dialog.cpp -msgid "Path to Node:" +msgid "Advanced" msgstr "" #: editor/connections_dialog.cpp -msgid "Make Function" +msgid "Deferred" msgstr "" #: editor/connections_dialog.cpp -msgid "Deferred" +msgid "" +"Defers the signal, storing it in a queue and only firing it at idle time." msgstr "" #: editor/connections_dialog.cpp msgid "Oneshot" msgstr "" +#: editor/connections_dialog.cpp +msgid "Disconnects the signal after its first emission." +msgstr "" + +#: editor/connections_dialog.cpp +#, fuzzy +msgid "Cannot connect signal" +msgstr "Slit th' Node" + #: editor/connections_dialog.cpp editor/dependency_editor.cpp #: editor/export_template_manager.cpp editor/groups_editor.cpp #: editor/plugins/animation_player_editor_plugin.cpp @@ -739,12 +804,12 @@ msgstr "" #: editor/connections_dialog.cpp #, fuzzy -msgid "Connect Signal: " +msgid "Connect a Signal to a Method" msgstr "Slit th' Node" #: editor/connections_dialog.cpp #, fuzzy -msgid "Edit Connection: " +msgid "Edit Connection:" msgstr "Slit th' Node" #: editor/connections_dialog.cpp @@ -778,7 +843,6 @@ msgid "Change %s Type" msgstr "th' Base Type:" #: editor/create_dialog.cpp editor/project_settings_editor.cpp -#: modules/visual_script/visual_script_editor.cpp msgid "Change" msgstr "Change" @@ -809,7 +873,8 @@ msgid "Matches:" msgstr "" #: editor/create_dialog.cpp editor/plugin_config_dialog.cpp -#: editor/plugins/asset_library_editor_plugin.cpp editor/property_selector.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/property_selector.cpp #: modules/visual_script/visual_script_property_selector.cpp msgid "Description:" msgstr "" @@ -825,13 +890,13 @@ msgstr "" #: editor/dependency_editor.cpp msgid "" "Scene '%s' is currently being edited.\n" -"Changes will not take effect unless reloaded." +"Changes will only take effect when reloaded." msgstr "" #: editor/dependency_editor.cpp msgid "" "Resource '%s' is in use.\n" -"Changes will take effect when reloaded." +"Changes will only take effect when reloaded." msgstr "" #: editor/dependency_editor.cpp @@ -922,21 +987,13 @@ msgid "Permanently delete %d item(s)? (No undo!)" msgstr "" #: editor/dependency_editor.cpp -msgid "Owns" -msgstr "" - -#: editor/dependency_editor.cpp -msgid "Resources Without Explicit Ownership:" +msgid "Show Dependencies" msgstr "" #: editor/dependency_editor.cpp editor/editor_node.cpp msgid "Orphan Resource Explorer" msgstr "" -#: editor/dependency_editor.cpp -msgid "Delete selected files?" -msgstr "" - #: editor/dependency_editor.cpp editor/editor_audio_buses.cpp #: editor/editor_file_dialog.cpp editor/editor_node.cpp #: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp @@ -945,6 +1002,14 @@ msgstr "" msgid "Delete" msgstr "" +#: editor/dependency_editor.cpp +msgid "Owns" +msgstr "" + +#: editor/dependency_editor.cpp +msgid "Resources Without Explicit Ownership:" +msgstr "" + #: editor/dictionary_property_edit.cpp msgid "Change Dictionary Key" msgstr "" @@ -1054,7 +1119,7 @@ msgstr "" msgid "Success!" msgstr "" -#: editor/editor_asset_installer.cpp +#: editor/editor_asset_installer.cpp editor/editor_node.cpp #: editor/plugins/asset_library_editor_plugin.cpp msgid "Install" msgstr "" @@ -1185,7 +1250,11 @@ msgid "Open Audio Bus Layout" msgstr "" #: editor/editor_audio_buses.cpp -msgid "There is no 'res://default_bus_layout.tres' file." +msgid "There is no '%s' file." +msgstr "" + +#: editor/editor_audio_buses.cpp editor/plugins/canvas_item_editor_plugin.cpp +msgid "Layout" msgstr "" #: editor/editor_audio_buses.cpp @@ -1239,15 +1308,19 @@ msgid "Valid characters:" msgstr "" #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing engine class name." +msgid "Must not collide with an existing engine class name." +msgstr "" + +#: editor/editor_autoload_settings.cpp +msgid "Must not collide with an existing buit-in type name." msgstr "" #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing buit-in type name." +msgid "Must not collide with an existing global constant name." msgstr "" #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing global constant name." +msgid "Keyword cannot be used as an autoload name." msgstr "" #: editor/editor_autoload_settings.cpp @@ -1278,11 +1351,12 @@ msgstr "" msgid "Rearrange Autoloads" msgstr "" -#: editor/editor_autoload_settings.cpp -msgid "Invalid Path." -msgstr "" +#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp +#, fuzzy +msgid "Invalid path." +msgstr ": Evil arguments: " -#: editor/editor_autoload_settings.cpp +#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp msgid "File does not exist." msgstr "" @@ -1333,7 +1407,7 @@ msgid "[unsaved]" msgstr "" #: editor/editor_dir_dialog.cpp -msgid "Please select a base directory first" +msgid "Please select a base directory first." msgstr "" #: editor/editor_dir_dialog.cpp @@ -1341,7 +1415,8 @@ msgid "Choose a Directory" msgstr "" #: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp -#: editor/filesystem_dock.cpp scene/gui/file_dialog.cpp +#: editor/filesystem_dock.cpp editor/project_manager.cpp +#: scene/gui/file_dialog.cpp msgid "Create Folder" msgstr "" @@ -1414,6 +1489,162 @@ msgstr "Yer fancy release package be nowhere." msgid "Template file not found:" msgstr "" +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "3D Editor" +msgstr "Edit" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Script Editor" +msgstr "Edit" + +#: editor/editor_feature_profile.cpp +msgid "Asset Library" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Scene Tree Editing" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Import Dock" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Node Dock" +msgstr "Find ye Node Type" + +#: editor/editor_feature_profile.cpp +msgid "Filesystem Dock" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Erase profile '%s'? (no undo)" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Profile must be a valid filename and must not contain '.'" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Profile with this name already exists." +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "(Editor Disabled, Properties Disabled)" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "(Properties Disabled)" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "(Editor Disabled)" +msgstr "Edit yer Variable:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Class Options:" +msgstr "Yar, Blow th' Selected Down!" + +#: editor/editor_feature_profile.cpp +msgid "Enable Contextual Editor" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enabled Properties:" +msgstr "Paste yer Node" + +#: editor/editor_feature_profile.cpp +msgid "Enabled Features:" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Enabled Classes:" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "File '%s' format is invalid, import aborted." +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "" +"Profile '%s' already exists. Remote it first before importing, import " +"aborted." +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Error saving profile to path: '%s'." +msgstr "Blimey! I can't make th' signature object!" + +#: editor/editor_feature_profile.cpp +msgid "Unset" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Current Profile" +msgstr "Slit th' Node" + +#: editor/editor_feature_profile.cpp +msgid "Make Current" +msgstr "" + +#: editor/editor_feature_profile.cpp +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "New" +msgstr "" + +#: editor/editor_feature_profile.cpp editor/editor_node.cpp +#: editor/plugins/asset_library_editor_plugin.cpp editor/project_manager.cpp +msgid "Import" +msgstr "" + +#: editor/editor_feature_profile.cpp editor/editor_node.cpp +#: editor/project_export.cpp +msgid "Export" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Available Profiles" +msgstr "yer Nodes doing nothin':" + +#: editor/editor_feature_profile.cpp +msgid "Enabled Classes" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Class Options" +msgstr "Yar, Blow th' Selected Down!" + +#: editor/editor_feature_profile.cpp +msgid "New profile name:" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Erase Profile" +msgstr "Yar, Blow th' Selected Down!" + +#: editor/editor_feature_profile.cpp +msgid "Import Profile(s)" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Export Profile" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Manage Editor Feature Profiles" +msgstr "" + #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp #, fuzzy msgid "Select Current Folder" @@ -1436,8 +1667,8 @@ msgstr "" msgid "Open in File Manager" msgstr "" -#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp -#: editor/project_manager.cpp +#: editor/editor_file_dialog.cpp editor/editor_node.cpp +#: editor/filesystem_dock.cpp editor/project_manager.cpp msgid "Show in File Manager" msgstr "" @@ -1496,7 +1727,7 @@ msgstr "" msgid "Go Up" msgstr "" -#: editor/editor_file_dialog.cpp +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Toggle Hidden Files" msgstr "" @@ -1530,14 +1761,18 @@ msgstr "Slit th' Node" msgid "Next Folder" msgstr "Slit th' Node" -#: editor/editor_file_dialog.cpp -msgid "Go to parent folder" +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp +msgid "Go to parent folder." msgstr "" #: editor/editor_file_dialog.cpp msgid "(Un)favorite current folder." msgstr "" +#: editor/editor_file_dialog.cpp +msgid "Toggle visibility of hidden files." +msgstr "" + #: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp msgid "View items as a grid of thumbnails." msgstr "" @@ -1552,6 +1787,7 @@ msgstr "" #: editor/editor_file_dialog.cpp editor/plugins/sprite_editor_plugin.cpp #: editor/plugins/style_box_editor_plugin.cpp +#: editor/plugins/theme_editor_plugin.cpp msgid "Preview:" msgstr "" @@ -1568,6 +1804,12 @@ msgid "ScanSources" msgstr "" #: editor/editor_file_system.cpp +msgid "" +"There are multiple importers for different types pointing to file %s, import " +"aborted" +msgstr "" + +#: editor/editor_file_system.cpp msgid "(Re)Importing Assets" msgstr "" @@ -1751,6 +1993,11 @@ msgstr "" msgid "Output:" msgstr "" +#: editor/editor_log.cpp editor/plugins/tile_map_editor_plugin.cpp +#, fuzzy +msgid "Copy Selection" +msgstr "Yar, Blow th' Selected Down!" + #: editor/editor_log.cpp editor/editor_profiler.cpp #: editor/editor_properties.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp @@ -1900,7 +2147,7 @@ msgstr "" #: editor/editor_node.cpp msgid "" "This resource belongs to a scene that was instanced or inherited.\n" -"Changes to it will not be kept when saving the current scene." +"Changes to it won't be kept when saving the current scene." msgstr "" #: editor/editor_node.cpp @@ -1911,7 +2158,7 @@ msgstr "" #: editor/editor_node.cpp msgid "" -"This scene was imported, so changes to it will not be kept.\n" +"This scene was imported, so changes to it won't be kept.\n" "Instancing it or inheriting will allow making changes to it.\n" "Please read the documentation relevant to importing scenes to better " "understand this workflow." @@ -1919,7 +2166,7 @@ msgstr "" #: editor/editor_node.cpp msgid "" -"This is a remote object so changes to it will not be kept.\n" +"This is a remote object, so changes to it won't be kept.\n" "Please read the documentation relevant to debugging to better understand " "this workflow." msgstr "" @@ -1929,27 +2176,6 @@ msgid "There is no defined scene to run." msgstr "" #: editor/editor_node.cpp -msgid "" -"No main scene has ever been defined, select one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" - -#: editor/editor_node.cpp -msgid "" -"Selected scene '%s' does not exist, select a valid one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" - -#: editor/editor_node.cpp -msgid "" -"Selected scene '%s' is not a scene file, select a valid one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" - -#: editor/editor_node.cpp msgid "Current scene was never saved, please save it prior to running." msgstr "" @@ -1957,7 +2183,7 @@ msgstr "" msgid "Could not start subprocess!" msgstr "" -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/filesystem_dock.cpp msgid "Open Scene" msgstr "" @@ -1966,6 +2192,10 @@ msgid "Open Base Scene" msgstr "" #: editor/editor_node.cpp +msgid "Quick Open..." +msgstr "" + +#: editor/editor_node.cpp msgid "Quick Open Scene..." msgstr "" @@ -2127,6 +2357,27 @@ msgid "Clear Recent Scenes" msgstr "" #: editor/editor_node.cpp +msgid "" +"No main scene has ever been defined, select one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"Selected scene '%s' does not exist, select a valid one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"Selected scene '%s' is not a scene file, select a valid one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" + +#: editor/editor_node.cpp msgid "Save Layout" msgstr "" @@ -2154,6 +2405,19 @@ msgstr "" msgid "Close Tab" msgstr "Close" +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +msgid "Close Other Tabs" +msgstr "" + +#: editor/editor_node.cpp +msgid "Close Tabs to the Right" +msgstr "" + +#: editor/editor_node.cpp +#, fuzzy +msgid "Close All Tabs" +msgstr "Close" + #: editor/editor_node.cpp msgid "Switch Scene Tab" msgstr "" @@ -2276,10 +2540,6 @@ msgstr "" msgid "Project Settings" msgstr "" -#: editor/editor_node.cpp editor/project_export.cpp -msgid "Export" -msgstr "" - #: editor/editor_node.cpp editor/plugins/tile_set_editor_plugin.cpp msgid "Tools" msgstr "" @@ -2290,6 +2550,10 @@ msgid "Open Project Data Folder" msgstr "Slit th' Node" #: editor/editor_node.cpp +msgid "Install Android Build Template" +msgstr "" + +#: editor/editor_node.cpp msgid "Quit to Project List" msgstr "" @@ -2395,6 +2659,10 @@ msgstr "" msgid "Open Editor Settings Folder" msgstr "" +#: editor/editor_node.cpp +msgid "Manage Editor Features" +msgstr "" + #: editor/editor_node.cpp editor/project_export.cpp msgid "Manage Export Templates" msgstr "" @@ -2407,6 +2675,7 @@ msgstr "" #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp #: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp #: editor/project_settings_editor.cpp editor/rename_dialog.cpp msgid "Search" msgstr "" @@ -2496,11 +2765,6 @@ msgstr "" msgid "Disable Update Spinner" msgstr "" -#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp -#: editor/project_manager.cpp -msgid "Import" -msgstr "" - #: editor/editor_node.cpp msgid "FileSystem" msgstr "" @@ -2526,6 +2790,28 @@ msgid "Don't Save" msgstr "" #: editor/editor_node.cpp +msgid "Android build template is missing, please install relevant templates." +msgstr "" + +#: editor/editor_node.cpp +#, fuzzy +msgid "Manage Templates" +msgstr "Discharge ye' Variable" + +#: editor/editor_node.cpp +msgid "" +"This will install the Android project for custom builds.\n" +"Note that, in order to use it, it needs to be enabled per export preset." +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"Android build template is already installed and it won't be overwritten.\n" +"Remove the \"build\" directory manually before attempting this operation " +"again." +msgstr "" + +#: editor/editor_node.cpp msgid "Import Templates From ZIP File" msgstr "" @@ -2650,10 +2936,6 @@ msgid "Physics Frame %" msgstr "" #: editor/editor_profiler.cpp -msgid "Time:" -msgstr "" - -#: editor/editor_profiler.cpp msgid "Inclusive" msgstr "" @@ -2791,10 +3073,6 @@ msgid "Remove Item" msgstr "" #: editor/editor_run_native.cpp -msgid "Select device from the list" -msgstr "" - -#: editor/editor_run_native.cpp msgid "" "No runnable export preset found for this platform.\n" "Please add a runnable preset in the export menu." @@ -2828,6 +3106,10 @@ msgstr "" msgid "Select Node(s) to Import" msgstr "" +#: editor/editor_sub_scene.cpp editor/project_manager.cpp +msgid "Browse" +msgstr "" + #: editor/editor_sub_scene.cpp msgid "Scene Path:" msgstr "" @@ -2995,6 +3277,10 @@ msgid "SSL Handshake Error" msgstr "" #: editor/export_template_manager.cpp +msgid "Uncompressing Android Build Sources" +msgstr "" + +#: editor/export_template_manager.cpp msgid "Current Version:" msgstr "" @@ -3012,8 +3298,9 @@ msgid "Remove Template" msgstr "Discharge ye' Variable" #: editor/export_template_manager.cpp -msgid "Select template file" -msgstr "" +#, fuzzy +msgid "Select Template File" +msgstr "Slit th' Node" #: editor/export_template_manager.cpp msgid "Export Template Manager" @@ -3071,7 +3358,7 @@ msgid "No name provided." msgstr "" #: editor/filesystem_dock.cpp -msgid "Provided name contains invalid characters" +msgid "Provided name contains invalid characters." msgstr "" #: editor/filesystem_dock.cpp @@ -3101,20 +3388,25 @@ msgid "Duplicating folder:" msgstr "" #: editor/filesystem_dock.cpp -msgid "Open Scene(s)" +msgid "New Inherited Scene" msgstr "" #: editor/filesystem_dock.cpp -msgid "Instance" +msgid "Open Scenes" msgstr "" #: editor/filesystem_dock.cpp -msgid "Add to favorites" +msgid "Instance" msgstr "" #: editor/filesystem_dock.cpp #, fuzzy -msgid "Remove from favorites" +msgid "Add to Favorites" +msgstr "Add Node" + +#: editor/filesystem_dock.cpp +#, fuzzy +msgid "Remove from Favorites" msgstr "Discharge ye' Signal" #: editor/filesystem_dock.cpp @@ -3145,11 +3437,13 @@ msgstr "" msgid "New Resource..." msgstr "" -#: editor/filesystem_dock.cpp editor/script_editor_debugger.cpp +#: editor/filesystem_dock.cpp editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_editor_debugger.cpp msgid "Expand All" msgstr "" -#: editor/filesystem_dock.cpp editor/script_editor_debugger.cpp +#: editor/filesystem_dock.cpp editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_editor_debugger.cpp msgid "Collapse All" msgstr "" @@ -3161,12 +3455,14 @@ msgid "Rename" msgstr "" #: editor/filesystem_dock.cpp -msgid "Previous Directory" -msgstr "" +#, fuzzy +msgid "Previous Folder/File" +msgstr "Slit th' Node" #: editor/filesystem_dock.cpp -msgid "Next Directory" -msgstr "" +#, fuzzy +msgid "Next Folder/File" +msgstr "Slit th' Node" #: editor/filesystem_dock.cpp msgid "Re-Scan Filesystem" @@ -3174,7 +3470,7 @@ msgstr "" #: editor/filesystem_dock.cpp #, fuzzy -msgid "Toggle split mode" +msgid "Toggle Split Mode" msgstr "Toggle ye Breakpoint" #: editor/filesystem_dock.cpp @@ -3203,7 +3499,7 @@ msgstr "" msgid "Create Script" msgstr "" -#: editor/find_in_files.cpp +#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp #, fuzzy msgid "Find in Files" msgstr "Find ye Node Type" @@ -3221,6 +3517,12 @@ msgstr "" msgid "Filters:" msgstr "Paste yer Node" +#: editor/find_in_files.cpp +msgid "" +"Include the files with the following extensions. Add or remove them in " +"ProjectSettings." +msgstr "" + #: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp msgid "Find..." @@ -3662,7 +3964,7 @@ msgid "Open Animation Node" msgstr "" #: editor/plugins/animation_blend_space_2d_editor.cpp -msgid "Triangle already exists" +msgid "Triangle already exists." msgstr "" #: editor/plugins/animation_blend_space_2d_editor.cpp @@ -3744,7 +4046,6 @@ msgid "Node Moved" msgstr "Find ye Node Type" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Unable to connect, port may be in use or connection may be invalid." msgstr "" @@ -3817,8 +4118,9 @@ msgid "Edit Filtered Tracks:" msgstr "Edit yer Variable:" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -msgid "Enable filtering" -msgstr "" +#, fuzzy +msgid "Enable Filtering" +msgstr "Change" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Toggle Autoplay" @@ -3933,10 +4235,6 @@ msgid "Animation" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "New" -msgstr "" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Edit Transitions..." msgstr "" @@ -3953,11 +4251,11 @@ msgid "Autoplay on Load" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Onion Skinning" +msgid "Enable Onion Skinning" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Enable Onion Skinning" +msgid "Onion Skinning Options" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp @@ -4505,13 +4803,19 @@ msgid "Move CanvasItem" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"Children of containers have their anchors and margins values overridden by " +"their parent." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Presets for the anchors and margins values of a Control node." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "" -"Children of containers have their anchors and margins values overridden by " -"their parent." +"When active, moving Control nodes changes their anchors instead of their " +"margins." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4527,10 +4831,51 @@ msgid "Change Anchors" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Lock Selected" +msgstr "Yar, Blow th' Selected Down!" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Unlock Selected" +msgstr "Yar, Blow th' Selected Down!" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Group Selected" +msgstr "Yar, Blow th' Selected Down!" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Ungroup Selected" +msgstr "Yar, Blow th' Selected Down!" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Paste Pose" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Create Custom Bone(s) from Node(s)" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Clear Bones" +msgstr "Change yer Anim Transform" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Make IK Chain" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Clear IK Chain" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "" "Warning: Children of a container get their position and size determined only " "by their parent." @@ -4604,7 +4949,7 @@ msgid "Snapping Options" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to grid" +msgid "Snap to Grid" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4625,31 +4970,32 @@ msgid "Use Pixel Snap" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Smart snapping" +msgid "Smart Snapping" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to parent" +msgid "Snap to Parent" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node anchor" +msgid "Snap to Node Anchor" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node sides" +msgid "Snap to Node Sides" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node center" +msgid "Snap to Node Center" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to other nodes" -msgstr "" +#, fuzzy +msgid "Snap to Other Nodes" +msgstr "Paste yer Node" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to guides" +msgid "Snap to Guides" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4663,10 +5009,12 @@ msgid "Unlock the selected object (can be moved)." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Makes sure the object's children are not selectable." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Restores the object's children's ability to be selected." msgstr "" @@ -4680,14 +5028,6 @@ msgid "Show Bones" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Make IK Chain" -msgstr "" - -#: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Clear IK Chain" -msgstr "" - -#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Make Custom Bone(s) from Node(s)" msgstr "" @@ -4738,7 +5078,7 @@ msgid "Frame Selection" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Layout" +msgid "Preview Canvas Scale" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4790,6 +5130,10 @@ msgid "Divide grid step by 2" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Pan View" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Add %s" msgstr "" @@ -4812,8 +5156,9 @@ msgid "Error instancing scene from %s" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Change default type" -msgstr "" +#, fuzzy +msgid "Change Default Type" +msgstr "th' Base Type:" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "" @@ -4899,19 +5244,19 @@ msgid "Create Emission Points From Node" msgstr "" #: editor/plugins/curve_editor_plugin.cpp -msgid "Flat0" +msgid "Flat 0" msgstr "" #: editor/plugins/curve_editor_plugin.cpp -msgid "Flat1" +msgid "Flat 1" msgstr "" -#: editor/plugins/curve_editor_plugin.cpp -msgid "Ease in" +#: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp +msgid "Ease In" msgstr "" -#: editor/plugins/curve_editor_plugin.cpp -msgid "Ease out" +#: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp +msgid "Ease Out" msgstr "" #: editor/plugins/curve_editor_plugin.cpp @@ -4932,24 +5277,25 @@ msgstr "" #: editor/plugins/curve_editor_plugin.cpp #, fuzzy -msgid "Add point" +msgid "Add Point" msgstr "Add Signal" #: editor/plugins/curve_editor_plugin.cpp #, fuzzy -msgid "Remove point" +msgid "Remove Point" msgstr "Discharge ye' Signal" #: editor/plugins/curve_editor_plugin.cpp -msgid "Left linear" -msgstr "" +#, fuzzy +msgid "Left Linear" +msgstr "Yar, Blow th' Selected Down!" #: editor/plugins/curve_editor_plugin.cpp -msgid "Right linear" +msgid "Right Linear" msgstr "" #: editor/plugins/curve_editor_plugin.cpp -msgid "Load preset" +msgid "Load Preset" msgstr "" #: editor/plugins/curve_editor_plugin.cpp @@ -5006,11 +5352,15 @@ msgid "This doesn't work on scene root!" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Trimesh Shape" +msgid "Create Trimesh Static Shape" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Shape" +msgid "Failed creating shapes!" +msgstr "" + +#: editor/plugins/mesh_instance_editor_plugin.cpp +msgid "Create Convex Shape(s)" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp @@ -5063,16 +5413,13 @@ msgid "Create Trimesh Static Body" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Static Body" -msgstr "" - -#: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Trimesh Collision Sibling" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Collision Sibling" -msgstr "" +#, fuzzy +msgid "Create Convex Collision Sibling(s)" +msgstr "Yar, Blow th' Selected Down!" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Outline Mesh..." @@ -5225,20 +5572,20 @@ msgid "Create Navigation Polygon" msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp -msgid "Generating Visibility Rect" +#: editor/plugins/particles_editor_plugin.cpp +msgid "Convert to CPUParticles" msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp -msgid "Generate Visibility Rect" +msgid "Generating Visibility Rect" msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp -msgid "Can only set point into a ParticlesMaterial process material" +msgid "Generate Visibility Rect" msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp -#: editor/plugins/particles_editor_plugin.cpp -msgid "Convert to CPUParticles" +msgid "Can only set point into a ParticlesMaterial process material" msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp @@ -5380,7 +5727,7 @@ msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp editor/plugins/theme_editor_plugin.cpp -#: editor/project_export.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_export.cpp msgid "Options" msgstr "" @@ -5436,7 +5783,7 @@ msgstr "" #: editor/plugins/physical_bone_plugin.cpp #, fuzzy -msgid "Move joint" +msgid "Move Joint" msgstr "Discharge ye' Signal" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5675,7 +6022,6 @@ msgid "Open in Editor" msgstr "" #: editor/plugins/resource_preloader_editor_plugin.cpp -#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Load Resource" msgstr "" @@ -5769,6 +6115,11 @@ msgid "%s Class Reference" msgstr "" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp +msgid "Find Next" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp msgid "Toggle alphabetical sorting of the method list." msgstr "" @@ -5850,10 +6201,6 @@ msgstr "" msgid "Close All" msgstr "" -#: editor/plugins/script_editor_plugin.cpp -msgid "Close Other Tabs" -msgstr "" - #: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp msgid "Run" msgstr "" @@ -5862,11 +6209,6 @@ msgstr "" msgid "Toggle Scripts Panel" msgstr "" -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/script_text_editor.cpp -msgid "Find Next" -msgstr "" - #: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp msgid "Step Over" msgstr "" @@ -5893,15 +6235,16 @@ msgid "Debug with External Editor" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Open Godot online documentation" -msgstr "" +#, fuzzy +msgid "Open Godot online documentation." +msgstr "Yer functions:" #: editor/plugins/script_editor_plugin.cpp msgid "Request Docs" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Help improve the Godot documentation by giving feedback" +msgid "Help improve the Godot documentation by giving feedback." msgstr "" #: editor/plugins/script_editor_plugin.cpp @@ -5927,10 +6270,12 @@ msgid "" msgstr "" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp msgid "Reload" msgstr "" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp msgid "Resave" msgstr "" @@ -5944,6 +6289,29 @@ msgid "Search Results" msgstr "Discharge ye' Variable" #: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Connections to method:" +msgstr "Slit th' Node" + +#: editor/plugins/script_text_editor.cpp +msgid "Source" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Signal" +msgstr "Yer signals:" + +#: editor/plugins/script_text_editor.cpp +msgid "Target" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "" +"Missing connected method '%s' for signal '%s' from node '%s' to node '%s'." +msgstr "" + +#: editor/plugins/script_text_editor.cpp msgid "Line" msgstr "" @@ -5956,10 +6324,6 @@ msgstr "" msgid "Go to Function" msgstr "Add Function" -#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp -msgid "Standard" -msgstr "" - #: editor/plugins/script_text_editor.cpp msgid "Only resources from filesystem can be dropped." msgstr "" @@ -5992,6 +6356,11 @@ msgstr "" msgid "Syntax Highlighter" msgstr "" +#: editor/plugins/script_text_editor.cpp +#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp +msgid "Bookmarks" +msgstr "" + #: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" @@ -6021,6 +6390,26 @@ msgstr "" #: editor/plugins/script_text_editor.cpp #, fuzzy +msgid "Toggle Bookmark" +msgstr "Toggle ye Breakpoint" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Go to Next Bookmark" +msgstr "Toggle ye Breakpoint" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Go to Previous Bookmark" +msgstr "Toggle ye Breakpoint" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Remove All Bookmarks" +msgstr "Discharge ye' Variable" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy msgid "Fold/Unfold Line" msgstr "Yar, Blow th' Selected Down!" @@ -6098,6 +6487,12 @@ msgid "Contextual Help" msgstr "" #: editor/plugins/shader_editor_plugin.cpp +msgid "" +"This shader has been modified on on disk.\n" +"What action should be taken?" +msgstr "" + +#: editor/plugins/shader_editor_plugin.cpp msgid "Shader" msgstr "" @@ -6438,7 +6833,7 @@ msgid "Right View" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Switch Perspective/Orthogonal view" +msgid "Switch Perspective/Orthogonal View" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp @@ -6480,11 +6875,12 @@ msgid "Toggle Freelook" msgstr "Toggle ye Breakpoint" #: editor/plugins/spatial_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Transform" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Snap object to floor" +msgid "Snap Object to Floor" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp @@ -6629,23 +7025,11 @@ msgid "Invalid geometry, can't replace by mesh." msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Invalid geometry, can't create polygon." -msgstr "" - -#: editor/plugins/sprite_editor_plugin.cpp -msgid "Invalid geometry, can't create collision polygon." -msgstr "" - -#: editor/plugins/sprite_editor_plugin.cpp -msgid "Invalid geometry, can't create light occluder." -msgstr "" - -#: editor/plugins/sprite_editor_plugin.cpp -msgid "Sprite" +msgid "Convert to Mesh2D" msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Convert to Mesh2D" +msgid "Invalid geometry, can't create polygon." msgstr "" #: editor/plugins/sprite_editor_plugin.cpp @@ -6654,15 +7038,27 @@ msgid "Convert to Polygon2D" msgstr "Discharge ye' Function" #: editor/plugins/sprite_editor_plugin.cpp +msgid "Invalid geometry, can't create collision polygon." +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp #, fuzzy msgid "Create CollisionPolygon2D Sibling" msgstr "Yar, Blow th' Selected Down!" #: editor/plugins/sprite_editor_plugin.cpp +msgid "Invalid geometry, can't create light occluder." +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp msgid "Create LightOccluder2D Sibling" msgstr "" #: editor/plugins/sprite_editor_plugin.cpp +msgid "Sprite" +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp msgid "Simplification: " msgstr "" @@ -6679,7 +7075,12 @@ msgid "Settings:" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "ERROR: Couldn't load frame resource!" +#, fuzzy +msgid "No Frames Selected" +msgstr "Yar, Blow th' Selected Down!" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Add %d Frame(s)" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp @@ -6687,6 +7088,10 @@ msgid "Add Frame" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "ERROR: Couldn't load frame resource!" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Resource clipboard is empty or not a texture!" msgstr "" @@ -6729,6 +7134,15 @@ msgid "Animation Frames:" msgstr "Yer unique name be evil." #: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Add a Texture from File" +msgstr "Add Node(s) From yer Tree" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Add Frames from a Sprite Sheet" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Insert Empty (Before)" msgstr "" @@ -6746,6 +7160,27 @@ msgid "Move (After)" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Select Frames" +msgstr "Slit th' Node" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Horizontal:" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Vertical:" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Select/Clear All Frames" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Create Frames from Sprite Sheet" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "SpriteFrames" msgstr "" @@ -6811,14 +7246,15 @@ msgstr "" msgid "Remove All Items" msgstr "Discharge ye' Variable" -#: editor/plugins/theme_editor_plugin.cpp +#: editor/plugins/theme_editor_plugin.cpp editor/project_manager.cpp #, fuzzy msgid "Remove All" msgstr "Discharge ye' Signal" #: editor/plugins/theme_editor_plugin.cpp -msgid "Edit theme..." -msgstr "" +#, fuzzy +msgid "Edit Theme" +msgstr "th' Members:" #: editor/plugins/theme_editor_plugin.cpp msgid "Theme editing menu." @@ -6845,18 +7281,25 @@ msgid "Create From Current Editor Theme" msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "CheckBox Radio1" -msgstr "" +#, fuzzy +msgid "Toggle Button" +msgstr "Toggle ye Breakpoint" #: editor/plugins/theme_editor_plugin.cpp -msgid "CheckBox Radio2" -msgstr "" +#, fuzzy +msgid "Disabled Button" +msgstr "Cursed" #: editor/plugins/theme_editor_plugin.cpp msgid "Item" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Disabled Item" +msgstr "Cursed" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Check Item" msgstr "" @@ -6873,6 +7316,22 @@ msgid "Checked Radio Item" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +msgid "Named Sep." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Submenu" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Item 1" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Item 2" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Has" msgstr "" @@ -6881,8 +7340,9 @@ msgid "Many" msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "Has,Many,Options" -msgstr "" +#, fuzzy +msgid "Disabled LineEdit" +msgstr "Cursed" #: editor/plugins/theme_editor_plugin.cpp msgid "Tab 1" @@ -6897,6 +7357,19 @@ msgid "Tab 3" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Editable Item" +msgstr "Edit yer Variable:" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Subtree" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Has,Many,Options" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Data Type:" msgstr "" @@ -6929,6 +7402,7 @@ msgid "Fix Invalid Tiles" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp +#: modules/gridmap/grid_map_editor_plugin.cpp #, fuzzy msgid "Cut Selection" msgstr "Yar, Blow th' Selected Down!" @@ -6971,37 +7445,47 @@ msgid "Mirror Y" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp +msgid "Disable Autotile" +msgstr "" + +#: editor/plugins/tile_map_editor_plugin.cpp +#, fuzzy +msgid "Enable Priority" +msgstr "Edit yer Variable:" + +#: editor/plugins/tile_map_editor_plugin.cpp msgid "Paint Tile" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Pick Tile" +msgid "" +"Shift+RMB: Line Draw\n" +"Shift+Ctrl+RMB: Rectangle Paint" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy -msgid "Copy Selection" -msgstr "Yar, Blow th' Selected Down!" +msgid "Pick Tile" +msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Rotate left" +msgid "Rotate Left" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Rotate right" +msgid "Rotate Right" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Flip horizontally" +msgid "Flip Horizontally" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Flip vertically" +msgid "Flip Vertically" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp #, fuzzy -msgid "Clear transform" +msgid "Clear Transform" msgstr "Change yer Anim Transform" #: editor/plugins/tile_set_editor_plugin.cpp @@ -7039,6 +7523,42 @@ msgid "Select the previous shape, subtile, or Tile." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp +msgid "Region Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Collision Mode" +msgstr "Ye be fixin' Signal:" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Occlusion Mode" +msgstr "Ye be fixin' Signal:" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Navigation Mode" +msgstr "Ye be fixin' Signal:" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Bitmask Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Priority Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Icon Mode" +msgstr "Slit th' Node" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Z Index Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp msgid "Copy bitmask." msgstr "" @@ -7128,6 +7648,7 @@ msgstr "Yar, Blow th' Selected Down!" msgid "" "LMB: Set bit on.\n" "RMB: Set bit off.\n" +"Shift+LMB: Set wildcard bit.\n" "Click on another Tile to edit it." msgstr "Slit th' Node" @@ -7248,6 +7769,73 @@ msgid "TileSet" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Add input +" +msgstr "Add Signal" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add output +" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Add input port" +msgstr "Add Signal" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add output port" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change input port type" +msgstr "th' Base Type:" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Change output port type" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Change input port name" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Change output port name" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Remove input port" +msgstr "Discharge ye' Signal" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Remove output port" +msgstr "Discharge ye' Signal" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Set expression" +msgstr "Swap yer Expression" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Resize VisualShader node" +msgstr "Discharge ye' Variable" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Set Uniform Name" msgstr "" @@ -7286,6 +7874,842 @@ msgid "Light" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Create Shader Node" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Color function." +msgstr "Add Function" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Color operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Grayscale function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts HSV vector to RGB equivalent." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts RGB vector to HSV equivalent." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Sepia function." +msgstr "Rename Function" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Burn operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Darken operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Difference operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Dodge operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "HardLight operator" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Lighten operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Overlay operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Screen operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "SoftLight operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Color constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Color uniform." +msgstr "Change yer Anim Transform" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns an associated vector if the provided scalars are equal, greater or " +"less." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns an associated vector if the provided boolean value is true or false." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'camera' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'inv_camera' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'inv_projection' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'normal' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'projection' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'time' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'viewport_size' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'world' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'texture_pixel_size' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Input parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'binormal' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'fragcoord' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_coord' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_uv' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'side' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'tangent' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv2' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'vertex' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'view' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'albedo' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'attenuation' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'diffuse' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_color' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'roughness' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'specular' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'transmission' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'modelview' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_size' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'tangent' input parameter for vertex and fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_pass' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_coord' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_pixel_size' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_uv' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_alpha' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_height' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_uv' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_vec' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'normal' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'shadow_color' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'extra' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'projection' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'vertex' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'world' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'active' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'custom' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'custom_alpha' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'delta' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'emission_transform' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'index' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'lifetime' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'restart' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'time' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'transform' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'velocity' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Scalar function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Scalar operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "E constant (2.718282). Represents the base of the natural logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Epsilon constant (0.00001). Smallest possible scalar number." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Phi constant (1.618034). Golden ratio." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi/4 constant (0.785398) or 45 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi/2 constant (1.570796) or 90 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi constant (3.141593) or 180 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Tau constant (6.283185) or 360 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Sqrt2 constant (1.414214). Square root of 2." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the absolute value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-tangent of the parameters." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Finds the nearest integer that is greater than or equal to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Constrains a value to lie between two further values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts a quantity in radians to degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-e Exponential." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-2 Exponential." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Finds the nearest integer less than or equal to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Computes the fractional part of the argument." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the inverse of the square root of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Natural logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-2 logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the greater of two values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the lesser of two values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Linear interpolation between two scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the opposite value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 - scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns the value of the first parameter raised to the power of the second." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts a quantity in degrees to radians." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 / scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the nearest integer to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the nearest even integer to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Clamps the value between 0.0 and 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Extracts the sign of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the square root of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( scalar(edge0), scalar(edge1), scalar(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if x is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( scalar(edge), scalar(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the truncated value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Adds scalar to scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Divides scalar by scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies scalar by scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the remainder of the two scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Subtracts scalar from scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Scalar constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar uniform." +msgstr "Change yer Anim Transform" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Perform the cubic texture lookup." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Perform the texture lookup." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Cubic texture uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "2D texture uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Transform function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) Calculate the outer product of a pair of vectors.\n" +"\n" +"OuterProduct treats the first parameter 'c' as a column vector (matrix with " +"one column) and the second parameter 'r' as a row vector (matrix with one " +"row) and does a linear algebraic matrix multiply 'c * r', yielding a matrix " +"whose number of rows is the number of components in 'c' and whose number of " +"columns is the number of components in 'r'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Composes transform from four vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Decomposes transform to four vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the determinant of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the inverse of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the transpose of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies transform by transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies vector by transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Transform constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Transform uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector function." +msgstr "Discharge ye' Function" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Composes vector from three scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Decomposes vector to three scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the cross product of two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the distance between two points." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the dot product of two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns a vector that points in the same direction as a reference vector. " +"The function has three vector parameters : N, the vector to orient, I, the " +"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 "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the length of a vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Linear interpolation between two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the normalize product of vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 - vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 / vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns a vector that points in the direction of reflection ( a : incident " +"vector, b : normal vector )." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns a vector that points in the direction of refraction." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( vector(edge0), vector(edge1), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if 'x' is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( scalar(edge0), scalar(edge1), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if 'x' is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( vector(edge), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( scalar(edge), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Adds vector to vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Divides vector by vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies vector by vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the remainder of the two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Subtracts vector from vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Custom Godot Shader Language expression, with custom amount of input and " +"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 "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns falloff based on the dot product of surface normal and view " +"direction of camera (pass associated inputs to it)." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) (Fragment/Light mode only) Scalar derivative function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) (Fragment/Light mode only) Vector derivative function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Derivative in 'x' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Derivative in 'x' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Derivative in 'y' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Derivative in 'y' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Sum of absolute derivative " +"in 'x' and 'y'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Sum of absolute derivative " +"in 'x' and 'y'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "VisualShader" msgstr "" @@ -7476,6 +8900,10 @@ msgid "Directory already contains a Godot project." msgstr "" #: editor/project_manager.cpp +msgid "New Game Project" +msgstr "" + +#: editor/project_manager.cpp msgid "Imported Project" msgstr "" @@ -7524,10 +8952,6 @@ msgid "Rename Project" msgstr "Rename Function" #: editor/project_manager.cpp -msgid "New Game Project" -msgstr "" - -#: editor/project_manager.cpp msgid "Import Existing Project" msgstr "" @@ -7556,10 +8980,6 @@ msgid "Project Name:" msgstr "" #: editor/project_manager.cpp -msgid "Create folder" -msgstr "" - -#: editor/project_manager.cpp msgid "Project Path:" msgstr "" @@ -7568,10 +8988,6 @@ msgid "Project Installation Path:" msgstr "" #: editor/project_manager.cpp -msgid "Browse" -msgstr "" - -#: editor/project_manager.cpp msgid "Renderer:" msgstr "" @@ -7624,8 +9040,8 @@ msgid "" "\n" "If you proceed with opening it, it will be converted to Godot's current " "configuration file format.\n" -"Warning: You will not be able to open the project with previous versions of " -"the engine anymore." +"Warning: You won't be able to open the project with previous versions of the " +"engine anymore." msgstr "" #: editor/project_manager.cpp @@ -7636,8 +9052,8 @@ msgid "" "%s\n" "\n" "Do you want to convert it?\n" -"Warning: You will not be able to open the project with previous versions of " -"the engine anymore." +"Warning: You won't be able to open the project with previous versions of the " +"engine anymore." msgstr "" #: editor/project_manager.cpp @@ -7649,7 +9065,7 @@ msgstr "" #: editor/project_manager.cpp msgid "" "Can't run project: no main scene defined.\n" -"Please edit the project and set the main scene in \"Project Settings\" under " +"Please edit the project and set the main scene in the Project Settings under " "the \"Application\" category." msgstr "" @@ -7660,23 +9076,37 @@ msgid "" msgstr "" #: editor/project_manager.cpp -msgid "Are you sure to run more than one project?" +msgid "Are you sure to run %d projects at once?" msgstr "" #: editor/project_manager.cpp -msgid "Remove project from the list? (Folder contents will not be modified)" +msgid "" +"Remove %d projects from the list?\n" +"The project folders' contents won't be modified." +msgstr "" + +#: editor/project_manager.cpp +msgid "" +"Remove this project from the list?\n" +"The project folder's contents won't be modified." +msgstr "" + +#: editor/project_manager.cpp +msgid "" +"Remove all missing projects from the list? (Folders contents will not be " +"modified)" msgstr "" #: editor/project_manager.cpp msgid "" "Language changed.\n" -"The UI will update next time the editor or project manager starts." +"The interface will update after restarting the editor or project manager." msgstr "" #: editor/project_manager.cpp msgid "" -"You are about the scan %s folders for existing Godot projects. Do you " -"confirm?" +"Are you sure to scan %s folders for existing Godot projects?\n" +"This could take a while." msgstr "" #: editor/project_manager.cpp @@ -7701,6 +9131,11 @@ msgstr "" #: editor/project_manager.cpp #, fuzzy +msgid "Remove Missing" +msgstr "Discharge ye' Signal" + +#: editor/project_manager.cpp +#, fuzzy msgid "Templates" msgstr "Discharge ye' Variable" @@ -7718,8 +9153,8 @@ msgstr "" #: editor/project_manager.cpp msgid "" -"You don't currently have any projects.\n" -"Would you like to explore the official example projects in the Asset Library?" +"You currently don't have any projects.\n" +"Would you like to explore official example projects in the Asset Library?" msgstr "" #: editor/project_settings_editor.cpp @@ -7745,7 +9180,7 @@ msgid "" msgstr "" #: editor/project_settings_editor.cpp -msgid "Action '%s' already exists!" +msgid "An action with the name '%s' already exists." msgstr "" #: editor/project_settings_editor.cpp @@ -7901,10 +9336,6 @@ msgid "" msgstr "" #: editor/project_settings_editor.cpp -msgid "Already existing" -msgstr "" - -#: editor/project_settings_editor.cpp msgid "Add Input Action" msgstr "" @@ -7969,7 +9400,7 @@ msgid "Override For..." msgstr "" #: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp -msgid "Editor must be restarted for changes to take effect" +msgid "The editor must be restarted for changes to take effect." msgstr "" #: editor/project_settings_editor.cpp @@ -8030,11 +9461,11 @@ msgid "Locales Filter" msgstr "" #: editor/project_settings_editor.cpp -msgid "Show all locales" +msgid "Show All Locales" msgstr "" #: editor/project_settings_editor.cpp -msgid "Show only selected locales" +msgid "Show Selected Locales Only" msgstr "" #: editor/project_settings_editor.cpp @@ -8051,14 +9482,6 @@ msgid "AutoLoad" msgstr "" #: editor/property_editor.cpp -msgid "Ease In" -msgstr "" - -#: editor/property_editor.cpp -msgid "Ease Out" -msgstr "" - -#: editor/property_editor.cpp msgid "Zero" msgstr "" @@ -8133,7 +9556,7 @@ msgid "Suffix" msgstr "" #: editor/rename_dialog.cpp -msgid "Advanced options" +msgid "Advanced Options" msgstr "" #: editor/rename_dialog.cpp @@ -8388,7 +9811,7 @@ msgstr "" #: editor/scene_tree_dock.cpp #, fuzzy -msgid "Custom Node" +msgid "Other Node" msgstr "Slit th' Node" #: editor/scene_tree_dock.cpp @@ -8431,7 +9854,7 @@ msgstr "" #: editor/scene_tree_dock.cpp #, fuzzy -msgid "Open documentation" +msgid "Open Documentation" msgstr "Yer functions:" #: editor/scene_tree_dock.cpp @@ -8458,7 +9881,7 @@ msgstr "" msgid "Save Branch as Scene" msgstr "" -#: editor/scene_tree_dock.cpp +#: editor/scene_tree_dock.cpp editor/script_editor_debugger.cpp #, fuzzy msgid "Copy Node Path" msgstr "Forge yer Node!" @@ -8504,6 +9927,20 @@ msgid "Toggle Visible" msgstr "Toggle ye Breakpoint" #: editor/scene_tree_editor.cpp +#, fuzzy +msgid "Unlock Node" +msgstr "Slit th' Node" + +#: editor/scene_tree_editor.cpp +msgid "Button Group" +msgstr "" + +#: editor/scene_tree_editor.cpp +#, fuzzy +msgid "(Connecting From)" +msgstr "Slit th' Node" + +#: editor/scene_tree_editor.cpp msgid "Node configuration warning:" msgstr "" @@ -8525,9 +9962,10 @@ msgid "" "Click to show groups dock." msgstr "" -#: editor/scene_tree_editor.cpp editor/script_create_dialog.cpp -msgid "Open Script" -msgstr "" +#: editor/scene_tree_editor.cpp +#, fuzzy +msgid "Open Script:" +msgstr "Edit" #: editor/scene_tree_editor.cpp msgid "" @@ -8572,74 +10010,77 @@ msgid "Select a Node" msgstr "" #: editor/script_create_dialog.cpp -#, fuzzy -msgid "Error loading template '%s'" -msgstr "Blimey! I can't make th' signature object!" +msgid "Path is empty." +msgstr "" #: editor/script_create_dialog.cpp -msgid "Error - Could not create script in filesystem." +msgid "Filename is empty." msgstr "" #: editor/script_create_dialog.cpp -msgid "Error loading script from %s" -msgstr "" +#, fuzzy +msgid "Path is not local." +msgstr "There be no Node at ye path's end!" #: editor/script_create_dialog.cpp -msgid "N/A" -msgstr "" +#, fuzzy +msgid "Invalid base path." +msgstr ": Evil arguments: " #: editor/script_create_dialog.cpp -msgid "Open Script/Choose Location" +msgid "A directory with the same name exists." msgstr "" #: editor/script_create_dialog.cpp -msgid "Path is empty" -msgstr "" +#, fuzzy +msgid "Invalid extension." +msgstr "Yer Calligraphy be wrongly sized." #: editor/script_create_dialog.cpp -msgid "Filename is empty" +msgid "Wrong extension chosen." msgstr "" #: editor/script_create_dialog.cpp -msgid "Path is not local" -msgstr "" +#, fuzzy +msgid "Error loading template '%s'" +msgstr "Blimey! I can't make th' signature object!" #: editor/script_create_dialog.cpp -msgid "Invalid base path" +msgid "Error - Could not create script in filesystem." msgstr "" #: editor/script_create_dialog.cpp -msgid "Directory of the same name exists" +msgid "Error loading script from %s" msgstr "" #: editor/script_create_dialog.cpp -msgid "File exists, will be reused" +msgid "N/A" msgstr "" #: editor/script_create_dialog.cpp -msgid "Invalid extension" +msgid "Open Script / Choose Location" msgstr "" #: editor/script_create_dialog.cpp -msgid "Wrong extension chosen" +msgid "Open Script" msgstr "" #: editor/script_create_dialog.cpp -#, fuzzy -msgid "Invalid Path" -msgstr ": Evil arguments: " +msgid "File exists, it will be reused." +msgstr "" #: editor/script_create_dialog.cpp -msgid "Invalid class name" -msgstr "" +#, fuzzy +msgid "Invalid class name." +msgstr "Yer unique name be evil." #: editor/script_create_dialog.cpp #, fuzzy -msgid "Invalid inherited parent name or path" +msgid "Invalid inherited parent name or path." msgstr "Yer index property name be thrown overboard!" #: editor/script_create_dialog.cpp -msgid "Script valid" +msgid "Script is valid." msgstr "" #: editor/script_create_dialog.cpp @@ -8647,15 +10088,16 @@ msgid "Allowed: a-z, A-Z, 0-9 and _" msgstr "" #: editor/script_create_dialog.cpp -msgid "Built-in script (into scene file)" +msgid "Built-in script (into scene file)." msgstr "" #: editor/script_create_dialog.cpp -msgid "Create new script file" -msgstr "" +#, fuzzy +msgid "Will create a new script file." +msgstr "Yar, Blow th' Selected Down!" #: editor/script_create_dialog.cpp -msgid "Load existing script file" +msgid "Will load an existing script file." msgstr "" #: editor/script_create_dialog.cpp @@ -8789,6 +10231,10 @@ msgstr "" msgid "Set From Tree" msgstr "" +#: editor/script_editor_debugger.cpp +msgid "Export measures as CSV" +msgstr "" + #: editor/settings_config_dialog.cpp msgid "Erase Shortcut" msgstr "" @@ -8919,6 +10365,14 @@ msgid "GDNativeLibrary" msgstr "" #: modules/gdnative/gdnative_library_singleton_editor.cpp +msgid "Enabled GDNative Singleton" +msgstr "" + +#: modules/gdnative/gdnative_library_singleton_editor.cpp +msgid "Disabled GDNative Singleton" +msgstr "" + +#: modules/gdnative/gdnative_library_singleton_editor.cpp msgid "Library" msgstr "" @@ -9009,8 +10463,9 @@ msgid "GridMap Fill Selection" msgstr "Yar, Blow th' Selected Down!" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "GridMap Duplicate Selection" -msgstr "" +#, fuzzy +msgid "GridMap Paste Selection" +msgstr "Yar, Blow th' Selected Down!" #: modules/gridmap/grid_map_editor_plugin.cpp msgid "GridMap Paint" @@ -9077,18 +10532,6 @@ msgid "Cursor Clear Rotation" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Create Area" -msgstr "" - -#: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Create Exterior Connector" -msgstr "" - -#: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Erase Area" -msgstr "" - -#: modules/gridmap/grid_map_editor_plugin.cpp #, fuzzy msgid "Clear Selection" msgstr "Yar, Blow th' Selected Down!" @@ -9467,18 +10910,11 @@ msgid "Available Nodes:" msgstr "yer Nodes doing nothin':" #: modules/visual_script/visual_script_editor.cpp -msgid "Select or create a function to edit graph" +#, fuzzy +msgid "Select or create a function to edit its graph." msgstr "Grab or make yer function t' edit ye graph" #: modules/visual_script/visual_script_editor.cpp -msgid "Edit Signal Arguments:" -msgstr "Edit ye Signal Arguments:" - -#: modules/visual_script/visual_script_editor.cpp -msgid "Edit Variable:" -msgstr "Edit yer Variable:" - -#: modules/visual_script/visual_script_editor.cpp msgid "Delete Selected" msgstr "Yar, Blow th' Selected Down!" @@ -9609,6 +11045,19 @@ msgid "Debug keystore not configured in the Editor Settings nor in the preset." msgstr "" #: platform/android/export/export.cpp +msgid "Custom build requires a valid Android SDK path in Editor Settings." +msgstr "" + +#: platform/android/export/export.cpp +msgid "Invalid Android SDK path for custom build in Editor Settings." +msgstr "" + +#: platform/android/export/export.cpp +msgid "" +"Android project is not installed for compiling. Install from Editor menu." +msgstr "" + +#: platform/android/export/export.cpp msgid "Invalid public key for APK expansion." msgstr "" @@ -9617,6 +11066,34 @@ msgstr "" msgid "Invalid package name:" msgstr "Yer unique name be evil." +#: platform/android/export/export.cpp +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 "" +"Android build version mismatch:\n" +" Template installed: %s\n" +" Godot Version: %s\n" +"Please reinstall Android build template from 'Project' menu." +msgstr "" + +#: platform/android/export/export.cpp +msgid "Building Android Project (gradle)" +msgstr "" + +#: 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 "" + +#: platform/android/export/export.cpp +msgid "No build apk generated at: " +msgstr "" + #: platform/iphone/export/export.cpp msgid "Identifier is missing." msgstr "" @@ -9873,27 +11350,27 @@ msgid "ARVRCamera must have an ARVROrigin node as its parent" msgstr "" #: scene/3d/arvr_nodes.cpp -msgid "ARVRController must have an ARVROrigin node as its parent" +msgid "ARVRController must have an ARVROrigin node as its parent." msgstr "" #: scene/3d/arvr_nodes.cpp msgid "" -"The controller id must not be 0 or this controller will not be bound to an " -"actual controller" +"The controller ID must not be 0 or this controller won't be bound to an " +"actual controller." msgstr "" #: scene/3d/arvr_nodes.cpp -msgid "ARVRAnchor must have an ARVROrigin node as its parent" +msgid "ARVRAnchor must have an ARVROrigin node as its parent." msgstr "" #: scene/3d/arvr_nodes.cpp msgid "" -"The anchor id must not be 0 or this anchor will not be bound to an actual " -"anchor" +"The anchor ID must not be 0 or this anchor won't be bound to an actual " +"anchor." msgstr "" #: scene/3d/arvr_nodes.cpp -msgid "ARVROrigin requires an ARVRCamera child node" +msgid "ARVROrigin requires an ARVRCamera child node." msgstr "" #: scene/3d/baked_lightmap.cpp @@ -9963,8 +11440,8 @@ msgstr "" #: scene/3d/cpu_particles.cpp msgid "" -"CPUParticles animation requires the usage of a SpatialMaterial with " -"\"Billboard Particles\" enabled." +"CPUParticles animation requires the usage of a SpatialMaterial whose " +"Billboard Mode is set to \"Particle Billboard\"." msgstr "" #: scene/3d/gi_probe.cpp @@ -10001,8 +11478,8 @@ msgstr "" #: scene/3d/particles.cpp msgid "" -"Particles animation requires the usage of a SpatialMaterial with \"Billboard " -"Particles\" enabled." +"Particles animation requires the usage of a SpatialMaterial whose Billboard " +"Mode is set to \"Particle Billboard\"." msgstr "" #: scene/3d/path.cpp @@ -10027,7 +11504,7 @@ msgid "Path property must point to a valid Spatial node to work." msgstr "" #: scene/3d/soft_body.cpp -msgid "This body will be ignored until you set a mesh" +msgid "This body will be ignored until you set a mesh." msgstr "" #: scene/3d/soft_body.cpp @@ -10125,7 +11602,7 @@ msgstr "" msgid "" "Container by itself serves no purpose unless a script configures it's " "children placement behavior.\n" -"If you dont't intend to add a script, then please use a plain 'Control' node " +"If you don't intend to add a script, then please use a plain 'Control' node " "instead." msgstr "" @@ -10137,10 +11614,6 @@ msgstr "" msgid "Please Confirm..." msgstr "" -#: scene/gui/file_dialog.cpp -msgid "Go to parent folder." -msgstr "" - #: scene/gui/popup.cpp msgid "" "Popups will hide by default unless you call popup() or any of the popup*() " @@ -10214,6 +11687,20 @@ msgstr "" msgid "Varyings can only be assigned in vertex function." msgstr "" +#: servers/visual/shader_language.cpp +msgid "Constants cannot be modified." +msgstr "" + +#, fuzzy +#~ msgid "Custom Node" +#~ msgstr "Slit th' Node" + +#~ msgid "Edit Signal Arguments:" +#~ msgstr "Edit ye Signal Arguments:" + +#~ msgid "Edit Variable:" +#~ msgstr "Edit yer Variable:" + #, fuzzy #~ msgid "Add Split" #~ msgstr "Add Signal" @@ -10237,9 +11724,6 @@ msgstr "" #~ msgid "Get" #~ msgstr "Get" -#~ msgid "Disabled" -#~ msgstr "Cursed" - #, fuzzy #~ msgid "Set pivot at mouse position" #~ msgstr "Discharge ye' Signal" @@ -10262,10 +11746,6 @@ msgstr "" #~ msgid "Call" #~ msgstr "Call" -#, fuzzy -#~ msgid "Edit Variable" -#~ msgstr "Edit yer Variable:" - #~ msgid "Move Add Key" #~ msgstr "Move yer Add Key" diff --git a/editor/translations/pt_BR.po b/editor/translations/pt_BR.po index 9dc52df2be..d618b0b7d7 100644 --- a/editor/translations/pt_BR.po +++ b/editor/translations/pt_BR.po @@ -58,12 +58,16 @@ # Hans M. Boron <hansmateusboron@gmail.com>, 2019. # Gustavo Bolanho <jdmapas@gmail.com>, 2019. # Nilton Bendini Junior <almascelulas@bol.com.br>, 2019. +# Ivo Nascimento <iannsp@gmail.com>, 2019. +# Klaus Dellano <klausdell@hotmail.com>, 2019. +# Esdras Tarsis <esdrastarsis@gmail.com>, 2019. +# Douglas Fiedler <dognew@gmail.com>, 2019. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: 2016-05-30\n" -"PO-Revision-Date: 2019-04-19 16:33+0000\n" -"Last-Translator: Nilton Bendini Junior <almascelulas@bol.com.br>\n" +"PO-Revision-Date: 2019-06-16 19:41+0000\n" +"Last-Translator: Douglas Fiedler <dognew@gmail.com>\n" "Language-Team: Portuguese (Brazil) <https://hosted.weblate.org/projects/" "godot-engine/godot/pt_BR/>\n" "Language: pt_BR\n" @@ -71,7 +75,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.6-dev\n" +"X-Generator: Weblate 3.7-dev\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -125,6 +129,15 @@ msgstr "Equilibrado" msgid "Mirror" msgstr "Espelhar" +#: editor/animation_bezier_editor.cpp editor/editor_profiler.cpp +msgid "Time:" +msgstr "Tempo:" + +#: editor/animation_bezier_editor.cpp +#, fuzzy +msgid "Value:" +msgstr "Valor" + #: editor/animation_bezier_editor.cpp msgid "Insert Key Here" msgstr "Inserir Chave Aqui" @@ -159,7 +172,7 @@ msgstr "Alterar Tempo de Quadro-Chave da Anim" #: editor/animation_track_editor.cpp msgid "Anim Change Transition" -msgstr "Alterar Transição da Anim" +msgstr "Alterar Transição da Animação" #: editor/animation_track_editor.cpp msgid "Anim Change Transform" @@ -207,14 +220,18 @@ msgid "Animation Playback Track" msgstr "Faixa de Reprodução de Animação" #: editor/animation_track_editor.cpp -msgid "Add Track" -msgstr "Adicionar Trilha" +msgid "Animation length (frames)" +msgstr "Duração da Animação (em frames)" #: editor/animation_track_editor.cpp -msgid "Animation Length Time (seconds)" +msgid "Animation length (seconds)" msgstr "Duração da Animação (em segundos)" #: editor/animation_track_editor.cpp +msgid "Add Track" +msgstr "Adicionar Trilha" + +#: editor/animation_track_editor.cpp msgid "Animation Looping" msgstr "Loop da Animação" @@ -338,11 +355,13 @@ msgid "Create %d NEW tracks and insert keys?" msgstr "Criar %d NOVAS trilhas e inserir chaves?" #: editor/animation_track_editor.cpp editor/create_dialog.cpp -#: editor/editor_audio_buses.cpp editor/editor_plugin_settings.cpp -#: editor/plugin_config_dialog.cpp +#: editor/editor_audio_buses.cpp editor/editor_feature_profile.cpp +#: editor/editor_plugin_settings.cpp editor/plugin_config_dialog.cpp #: editor/plugins/abstract_polygon_2d_editor.cpp #: editor/plugins/mesh_instance_editor_plugin.cpp -#: editor/plugins/particles_editor_plugin.cpp editor/script_create_dialog.cpp +#: editor/plugins/particles_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_create_dialog.cpp msgid "Create" msgstr "Criar" @@ -460,6 +479,23 @@ msgstr "" "Essa opção não funciona para edição por Bezier,pois é apenas uma faixa única." #: editor/animation_track_editor.cpp +msgid "" +"This animation belongs to an imported scene, so changes to imported tracks " +"will not be saved.\n" +"\n" +"To enable the ability to add custom tracks, navigate to the scene's import " +"settings and set\n" +"\"Animation > Storage\" to \"Files\", enable \"Animation > Keep Custom Tracks" +"\", then re-import.\n" +"Alternatively, use an import preset that imports animations to separate " +"files." +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Warning: Editing imported animation" +msgstr "" + +#: editor/animation_track_editor.cpp msgid "Only show tracks from nodes selected in tree." msgstr "Apenas mostrar trilhas de nós selecionados na árvore." @@ -468,9 +504,8 @@ msgid "Group tracks by node or display them as plain list." msgstr "Agrupe as trilhas pelo nó ou exiba-as como lista simples." #: editor/animation_track_editor.cpp -#, fuzzy msgid "Snap:" -msgstr "Snap" +msgstr "Gancho:" #: editor/animation_track_editor.cpp msgid "Animation step value." @@ -478,7 +513,7 @@ msgstr "Valor do passo de animação." #: editor/animation_track_editor.cpp msgid "Seconds" -msgstr "" +msgstr "Segundos" #: editor/animation_track_editor.cpp msgid "FPS" @@ -593,7 +628,8 @@ msgstr "Razão de Escala:" msgid "Select tracks to copy:" msgstr "Selecionar trilhas para copiar:" -#: editor/animation_track_editor.cpp editor/editor_properties.cpp +#: editor/animation_track_editor.cpp editor/editor_log.cpp +#: editor/editor_properties.cpp #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp @@ -661,6 +697,11 @@ msgstr "Substituir Tudo" msgid "Selection Only" msgstr "Selecionar Apenas" +#: editor/code_editor.cpp editor/plugins/script_text_editor.cpp +#: editor/plugins/text_editor.cpp +msgid "Standard" +msgstr "Padrão" + #: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/texture_region_editor_plugin.cpp #: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp @@ -686,21 +727,39 @@ msgid "Line and column numbers." msgstr "Números de linha e coluna." #: editor/connections_dialog.cpp -msgid "Method in target Node must be specified!" +#, fuzzy +msgid "Method in target node must be specified." msgstr "O método no Nó alvo precisa ser especificado!" #: editor/connections_dialog.cpp +#, fuzzy msgid "" -"Target method not found! Specify a valid method or attach a script to target " -"Node." +"Target method not found. Specify a valid method or attach a script to the " +"target node." msgstr "" "Método alvo não encontrado! Especifique um método válido ou anexe um script " "ao Nó alvo." #: editor/connections_dialog.cpp -msgid "Connect To Node:" +#, fuzzy +msgid "Connect to Node:" msgstr "Conectar ao Nó:" +#: editor/connections_dialog.cpp +#, fuzzy +msgid "Connect to Script:" +msgstr "Não foi possÃvel conectar ao host:" + +#: editor/connections_dialog.cpp +#, fuzzy +msgid "From Signal:" +msgstr "Sinais:" + +#: editor/connections_dialog.cpp +#, fuzzy +msgid "Scene does not contain any script." +msgstr "O nó não contém geometria." + #: editor/connections_dialog.cpp editor/editor_autoload_settings.cpp #: editor/groups_editor.cpp editor/plugins/item_list_editor_plugin.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_settings_editor.cpp @@ -708,10 +767,12 @@ msgid "Add" msgstr "Adicionar" #: editor/connections_dialog.cpp editor/dependency_editor.cpp -#: editor/groups_editor.cpp editor/plugins/animation_player_editor_plugin.cpp +#: editor/editor_feature_profile.cpp editor/groups_editor.cpp +#: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp #: editor/plugins/resource_preloader_editor_plugin.cpp -#: editor/plugins/theme_editor_plugin.cpp editor/project_manager.cpp +#: editor/plugins/theme_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_manager.cpp #: editor/project_settings_editor.cpp msgid "Remove" msgstr "Remover" @@ -725,21 +786,32 @@ msgid "Extra Call Arguments:" msgstr "Argumentos de Chamada Extras:" #: editor/connections_dialog.cpp -msgid "Path to Node:" -msgstr "Caminho para o Nó:" - -#: editor/connections_dialog.cpp -msgid "Make Function" -msgstr "Fazer Função" +#, fuzzy +msgid "Advanced" +msgstr "Opções avançadas" #: editor/connections_dialog.cpp msgid "Deferred" msgstr "Postergado" #: editor/connections_dialog.cpp +msgid "" +"Defers the signal, storing it in a queue and only firing it at idle time." +msgstr "" + +#: editor/connections_dialog.cpp msgid "Oneshot" msgstr "Oneshot" +#: editor/connections_dialog.cpp +msgid "Disconnects the signal after its first emission." +msgstr "" + +#: editor/connections_dialog.cpp +#, fuzzy +msgid "Cannot connect signal" +msgstr "Conectar Sinal: " + #: editor/connections_dialog.cpp editor/dependency_editor.cpp #: editor/export_template_manager.cpp editor/groups_editor.cpp #: editor/plugins/animation_player_editor_plugin.cpp @@ -780,11 +852,13 @@ msgid "Disconnect" msgstr "Desconectar" #: editor/connections_dialog.cpp -msgid "Connect Signal: " +#, fuzzy +msgid "Connect a Signal to a Method" msgstr "Conectar Sinal: " #: editor/connections_dialog.cpp -msgid "Edit Connection: " +#, fuzzy +msgid "Edit Connection:" msgstr "Editar Conexão: " #: editor/connections_dialog.cpp @@ -816,7 +890,6 @@ msgid "Change %s Type" msgstr "Mudar Tipo de %s" #: editor/create_dialog.cpp editor/project_settings_editor.cpp -#: modules/visual_script/visual_script_editor.cpp msgid "Change" msgstr "Alterar" @@ -847,7 +920,8 @@ msgid "Matches:" msgstr "Correspondências:" #: editor/create_dialog.cpp editor/plugin_config_dialog.cpp -#: editor/plugins/asset_library_editor_plugin.cpp editor/property_selector.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/property_selector.cpp #: modules/visual_script/visual_script_property_selector.cpp msgid "Description:" msgstr "Descrição:" @@ -861,17 +935,19 @@ msgid "Dependencies For:" msgstr "Dependências Para:" #: editor/dependency_editor.cpp +#, fuzzy msgid "" "Scene '%s' is currently being edited.\n" -"Changes will not take effect unless reloaded." +"Changes will only take effect when reloaded." msgstr "" "Cena \"%s\" está sendo editada atualmente.\n" "Alterações não terão efeito a menos que seja recarregada." #: editor/dependency_editor.cpp +#, fuzzy msgid "" "Resource '%s' is in use.\n" -"Changes will take effect when reloaded." +"Changes will only take effect when reloaded." msgstr "" "Recurso \"%s\" está em uso.\n" "Alterações terão efeito ao recarregar." @@ -967,21 +1043,14 @@ msgid "Permanently delete %d item(s)? (No undo!)" msgstr "Excluir permanentemente %d item(s)? (IrreversÃvel)" #: editor/dependency_editor.cpp -msgid "Owns" -msgstr "Possui" - -#: editor/dependency_editor.cpp -msgid "Resources Without Explicit Ownership:" -msgstr "Recursos Sem Posse ExplÃcita:" +#, fuzzy +msgid "Show Dependencies" +msgstr "Dependências" #: editor/dependency_editor.cpp editor/editor_node.cpp msgid "Orphan Resource Explorer" msgstr "Explorador de Recursos Órfãos" -#: editor/dependency_editor.cpp -msgid "Delete selected files?" -msgstr "Excluir arquivos selecionados?" - #: editor/dependency_editor.cpp editor/editor_audio_buses.cpp #: editor/editor_file_dialog.cpp editor/editor_node.cpp #: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp @@ -990,6 +1059,14 @@ msgstr "Excluir arquivos selecionados?" msgid "Delete" msgstr "Excluir" +#: editor/dependency_editor.cpp +msgid "Owns" +msgstr "Possui" + +#: editor/dependency_editor.cpp +msgid "Resources Without Explicit Ownership:" +msgstr "Recursos Sem Posse ExplÃcita:" + #: editor/dictionary_property_edit.cpp msgid "Change Dictionary Key" msgstr "Alterar Chave do Dicionário" @@ -1103,7 +1180,7 @@ msgstr "Pacote instalado com sucesso!" msgid "Success!" msgstr "Sucesso!" -#: editor/editor_asset_installer.cpp +#: editor/editor_asset_installer.cpp editor/editor_node.cpp #: editor/plugins/asset_library_editor_plugin.cpp msgid "Install" msgstr "Instalar" @@ -1230,8 +1307,12 @@ msgid "Open Audio Bus Layout" msgstr "Abrir Layout de Canais de Ãudio" #: editor/editor_audio_buses.cpp -msgid "There is no 'res://default_bus_layout.tres' file." -msgstr "Não há nenhum arquivo 'res://default_bus_layout.tres'." +msgid "There is no '%s' file." +msgstr "" + +#: editor/editor_audio_buses.cpp editor/plugins/canvas_item_editor_plugin.cpp +msgid "Layout" +msgstr "Layout" #: editor/editor_audio_buses.cpp msgid "Invalid file, not an audio bus layout." @@ -1284,21 +1365,28 @@ msgid "Valid characters:" msgstr "Caracteres válidos:" #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing engine class name." +#, fuzzy +msgid "Must not collide with an existing engine class name." msgstr "Nome inválido. Não é permitido utilizar nomes de classes da engine." #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing buit-in type name." +#, fuzzy +msgid "Must not collide with an existing buit-in type name." msgstr "" "Nome inválido. Não é permitido utilizar nomes de tipos internos da engine." #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing global constant name." +#, fuzzy +msgid "Must not collide with an existing global constant name." msgstr "" "Nome inválido. Não é permitido utilizar nomes de constantes globais da " "engine." #: editor/editor_autoload_settings.cpp +msgid "Keyword cannot be used as an autoload name." +msgstr "" + +#: editor/editor_autoload_settings.cpp msgid "Autoload '%s' already exists!" msgstr "Autoload \"%s\" já existe!" @@ -1326,11 +1414,12 @@ msgstr "Habilitar" msgid "Rearrange Autoloads" msgstr "Reordenar Autoloads" -#: editor/editor_autoload_settings.cpp -msgid "Invalid Path." +#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp +#, fuzzy +msgid "Invalid path." msgstr "Caminho inválido." -#: editor/editor_autoload_settings.cpp +#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp msgid "File does not exist." msgstr "O arquivo não existe." @@ -1381,7 +1470,8 @@ msgid "[unsaved]" msgstr "[não salvo]" #: editor/editor_dir_dialog.cpp -msgid "Please select a base directory first" +#, fuzzy +msgid "Please select a base directory first." msgstr "Por favor selecione um diretório base primeiro" #: editor/editor_dir_dialog.cpp @@ -1389,7 +1479,8 @@ msgid "Choose a Directory" msgstr "Escolha um Diretório" #: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp -#: editor/filesystem_dock.cpp scene/gui/file_dialog.cpp +#: editor/filesystem_dock.cpp editor/project_manager.cpp +#: scene/gui/file_dialog.cpp msgid "Create Folder" msgstr "Criar Pasta" @@ -1465,6 +1556,178 @@ msgstr "Template customizado de release não encontrado." msgid "Template file not found:" msgstr "Arquivo de modelo não encontrado:" +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "3D Editor" +msgstr "Editor" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Script Editor" +msgstr "Abrir Editor de Scripts" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Asset Library" +msgstr "Abrir Biblioteca de Assets" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Scene Tree Editing" +msgstr "Ãrvore de Cena (Nodes):" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Import Dock" +msgstr "Importar" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Node Dock" +msgstr "Nó Movido" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Filesystem Dock" +msgstr "Arquivos" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Erase profile '%s'? (no undo)" +msgstr "Substituir Tudo (sem desfazer)" + +#: editor/editor_feature_profile.cpp +msgid "Profile must be a valid filename and must not contain '.'" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Profile with this name already exists." +msgstr "Um arquivo ou pasta com esse nome já existe." + +#: editor/editor_feature_profile.cpp +msgid "(Editor Disabled, Properties Disabled)" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "(Properties Disabled)" +msgstr "Apenas Propriedades" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "(Editor Disabled)" +msgstr "Corte Desabilitado" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Class Options:" +msgstr "Descrição da Classe:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enable Contextual Editor" +msgstr "Abrir o próximo Editor" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enabled Properties:" +msgstr "Propriedades:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enabled Features:" +msgstr "Funcionalidades" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enabled Classes:" +msgstr "Pesquisar Classes" + +#: editor/editor_feature_profile.cpp +msgid "File '%s' format is invalid, import aborted." +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "" +"Profile '%s' already exists. Remote it first before importing, import " +"aborted." +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Error saving profile to path: '%s'." +msgstr "Erro ao carregar modelo '%s'" + +#: editor/editor_feature_profile.cpp +msgid "Unset" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Current Profile" +msgstr "Versão Atual:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Make Current" +msgstr "Atual:" + +#: editor/editor_feature_profile.cpp +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "New" +msgstr "Novo" + +#: editor/editor_feature_profile.cpp editor/editor_node.cpp +#: editor/plugins/asset_library_editor_plugin.cpp editor/project_manager.cpp +msgid "Import" +msgstr "Importar" + +#: editor/editor_feature_profile.cpp editor/editor_node.cpp +#: editor/project_export.cpp +msgid "Export" +msgstr "Exportar" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Available Profiles" +msgstr "Nodes DisponÃveis:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enabled Classes" +msgstr "Pesquisar Classes" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Class Options" +msgstr "Descrição da Classe" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "New profile name:" +msgstr "Novo nome:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Erase Profile" +msgstr "Apagar Ãrea" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Import Profile(s)" +msgstr "Projeto Importado" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Export Profile" +msgstr "Exportar Projeto" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Manage Editor Feature Profiles" +msgstr "Gerenciar Modelos de Exportação" + #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Select Current Folder" msgstr "Selecione a Pasta Atual" @@ -1485,8 +1748,8 @@ msgstr "Copiar Caminho" msgid "Open in File Manager" msgstr "Mostrar no Gerenciador de Arquivos" -#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp -#: editor/project_manager.cpp +#: editor/editor_file_dialog.cpp editor/editor_node.cpp +#: editor/filesystem_dock.cpp editor/project_manager.cpp msgid "Show in File Manager" msgstr "Mostrar no Gerenciador de Arquivos" @@ -1545,7 +1808,7 @@ msgstr "Avançar" msgid "Go Up" msgstr "Acima" -#: editor/editor_file_dialog.cpp +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Toggle Hidden Files" msgstr "Alternar Arquivos Ocultos" @@ -1577,14 +1840,19 @@ msgstr "Pasta Anterior" msgid "Next Folder" msgstr "Próxima Pasta" -#: editor/editor_file_dialog.cpp -msgid "Go to parent folder" -msgstr "Ir para pasta pai" +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp +msgid "Go to parent folder." +msgstr "Ir para diretório (pasta) pai." #: editor/editor_file_dialog.cpp msgid "(Un)favorite current folder." msgstr "(Des)favoritar pasta atual." +#: editor/editor_file_dialog.cpp +#, fuzzy +msgid "Toggle visibility of hidden files." +msgstr "Alternar Arquivos Ocultos" + #: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp msgid "View items as a grid of thumbnails." msgstr "Visualizar itens como uma grade de miniaturas." @@ -1599,6 +1867,7 @@ msgstr "Diretórios & Arquivos:" #: editor/editor_file_dialog.cpp editor/plugins/sprite_editor_plugin.cpp #: editor/plugins/style_box_editor_plugin.cpp +#: editor/plugins/theme_editor_plugin.cpp msgid "Preview:" msgstr "Previsualização:" @@ -1615,6 +1884,12 @@ msgid "ScanSources" msgstr "BuscarFontes" #: editor/editor_file_system.cpp +msgid "" +"There are multiple importers for different types pointing to file %s, import " +"aborted" +msgstr "" + +#: editor/editor_file_system.cpp msgid "(Re)Importing Assets" msgstr "(Re)Importando Assets" @@ -1797,6 +2072,10 @@ msgstr "Definir Múltiplos:" msgid "Output:" msgstr "SaÃda:" +#: editor/editor_log.cpp editor/plugins/tile_map_editor_plugin.cpp +msgid "Copy Selection" +msgstr "Copiar Seleção" + #: editor/editor_log.cpp editor/editor_profiler.cpp #: editor/editor_properties.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp @@ -1953,9 +2232,10 @@ msgstr "" "melhor esse procedimento." #: editor/editor_node.cpp +#, fuzzy msgid "" "This resource belongs to a scene that was instanced or inherited.\n" -"Changes to it will not be kept when saving the current scene." +"Changes to it won't be kept when saving the current scene." msgstr "" "Este recurso pertence a uma cena que foi instanciada ou herdada.\n" "Alterações nele não serão mantidas ao salvar a cena atual." @@ -1969,8 +2249,9 @@ msgstr "" "no painel de importação e então re-importe." #: editor/editor_node.cpp +#, fuzzy msgid "" -"This scene was imported, so changes to it will not be kept.\n" +"This scene was imported, so changes to it won't be kept.\n" "Instancing it or inheriting will allow making changes to it.\n" "Please read the documentation relevant to importing scenes to better " "understand this workflow." @@ -1981,8 +2262,9 @@ msgstr "" "melhor esse procedimento." #: editor/editor_node.cpp +#, fuzzy msgid "" -"This is a remote object so changes to it will not be kept.\n" +"This is a remote object, so changes to it won't be kept.\n" "Please read the documentation relevant to debugging to better understand " "this workflow." msgstr "" @@ -1995,36 +2277,6 @@ msgid "There is no defined scene to run." msgstr "Não há cena definida para rodar." #: editor/editor_node.cpp -msgid "" -"No main scene has ever been defined, select one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" -"A cena principal não foi definida, selecionar uma?\n" -"Você pode alterá-la mais tarde nas \"Configurações do Projeto\" na " -"categoria 'Application'." - -#: editor/editor_node.cpp -msgid "" -"Selected scene '%s' does not exist, select a valid one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" -"A cena selecionada \"%s\" não existe, selecionar uma válida?\n" -"Você pode alterá-la mais tarde nas \"Configurações do Projeto\" na categoria " -"\"application\"." - -#: editor/editor_node.cpp -msgid "" -"Selected scene '%s' is not a scene file, select a valid one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" -"A cena selecionada \"%s\" não é um arquivo de cena, selecionar uma válida?\n" -"Você pode alterá-la mais tarde nas \"Configurações do Projeto\" na categoria " -"\"application\"." - -#: editor/editor_node.cpp msgid "Current scene was never saved, please save it prior to running." msgstr "A cena atual nunca foi salva. Por favor salve antes de rodá-la." @@ -2032,7 +2284,7 @@ msgstr "A cena atual nunca foi salva. Por favor salve antes de rodá-la." msgid "Could not start subprocess!" msgstr "Não se pôde iniciar sub-processo!" -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/filesystem_dock.cpp msgid "Open Scene" msgstr "Abrir Cena" @@ -2041,6 +2293,11 @@ msgid "Open Base Scene" msgstr "Abrir Cena Base" #: editor/editor_node.cpp +#, fuzzy +msgid "Quick Open..." +msgstr "Abrir Cena Rapidamente..." + +#: editor/editor_node.cpp msgid "Quick Open Scene..." msgstr "Abrir Cena Rapidamente..." @@ -2220,6 +2477,36 @@ msgid "Clear Recent Scenes" msgstr "Limpar Cenas Recentes" #: editor/editor_node.cpp +msgid "" +"No main scene has ever been defined, select one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" +"A cena principal não foi definida, selecionar uma?\n" +"Você pode alterá-la mais tarde nas \"Configurações do Projeto\" na " +"categoria 'Application'." + +#: editor/editor_node.cpp +msgid "" +"Selected scene '%s' does not exist, select a valid one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" +"A cena selecionada \"%s\" não existe, selecionar uma válida?\n" +"Você pode alterá-la mais tarde nas \"Configurações do Projeto\" na categoria " +"\"application\"." + +#: editor/editor_node.cpp +msgid "" +"Selected scene '%s' is not a scene file, select a valid one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" +"A cena selecionada \"%s\" não é um arquivo de cena, selecionar uma válida?\n" +"Você pode alterá-la mais tarde nas \"Configurações do Projeto\" na categoria " +"\"application\"." + +#: editor/editor_node.cpp msgid "Save Layout" msgstr "Salvar Layout" @@ -2245,6 +2532,19 @@ msgstr "Rodar Cena" msgid "Close Tab" msgstr "Fechar aba" +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +msgid "Close Other Tabs" +msgstr "Fechas as outras abas" + +#: editor/editor_node.cpp +msgid "Close Tabs to the Right" +msgstr "" + +#: editor/editor_node.cpp +#, fuzzy +msgid "Close All Tabs" +msgstr "Fechar Tudo" + #: editor/editor_node.cpp msgid "Switch Scene Tab" msgstr "Trocar Guia de Cena" @@ -2367,10 +2667,6 @@ msgstr "Projeto" msgid "Project Settings" msgstr "Configurações do Projeto" -#: editor/editor_node.cpp editor/project_export.cpp -msgid "Export" -msgstr "Exportar" - #: editor/editor_node.cpp editor/plugins/tile_set_editor_plugin.cpp msgid "Tools" msgstr "Ferramentas" @@ -2380,6 +2676,10 @@ msgid "Open Project Data Folder" msgstr "Abrir Pasta do Projeto" #: editor/editor_node.cpp +msgid "Install Android Build Template" +msgstr "" + +#: editor/editor_node.cpp msgid "Quit to Project List" msgstr "Sair para a Lista de Projetos" @@ -2503,6 +2803,11 @@ msgstr "Abrir a Pasta de dados do Editor" msgid "Open Editor Settings Folder" msgstr "Abrir Configurações do Editor" +#: editor/editor_node.cpp +#, fuzzy +msgid "Manage Editor Features" +msgstr "Gerenciar Modelos de Exportação" + #: editor/editor_node.cpp editor/project_export.cpp msgid "Manage Export Templates" msgstr "Gerenciar Modelos de Exportação" @@ -2515,6 +2820,7 @@ msgstr "Ajuda" #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp #: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp #: editor/project_settings_editor.cpp editor/rename_dialog.cpp msgid "Search" msgstr "Pesquisar" @@ -2604,11 +2910,6 @@ msgstr "Atualizar Alterações" msgid "Disable Update Spinner" msgstr "Desabilitar Spinner de Atualização" -#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp -#: editor/project_manager.cpp -msgid "Import" -msgstr "Importar" - #: editor/editor_node.cpp msgid "FileSystem" msgstr "Arquivos" @@ -2634,6 +2935,28 @@ msgid "Don't Save" msgstr "Não Salvar" #: editor/editor_node.cpp +msgid "Android build template is missing, please install relevant templates." +msgstr "" + +#: editor/editor_node.cpp +#, fuzzy +msgid "Manage Templates" +msgstr "Gerenciar Modelos de Exportação" + +#: editor/editor_node.cpp +msgid "" +"This will install the Android project for custom builds.\n" +"Note that, in order to use it, it needs to be enabled per export preset." +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"Android build template is already installed and it won't be overwritten.\n" +"Remove the \"build\" directory manually before attempting this operation " +"again." +msgstr "" + +#: editor/editor_node.cpp msgid "Import Templates From ZIP File" msgstr "Importar Modelos de um Arquivo ZIP" @@ -2756,10 +3079,6 @@ msgid "Physics Frame %" msgstr "Quadro FÃsico %" #: editor/editor_profiler.cpp -msgid "Time:" -msgstr "Tempo:" - -#: editor/editor_profiler.cpp msgid "Inclusive" msgstr "Inclusivo" @@ -2903,10 +3222,6 @@ msgid "Remove Item" msgstr "Remover Item" #: editor/editor_run_native.cpp -msgid "Select device from the list" -msgstr "Selecione um dispositivo da lista" - -#: editor/editor_run_native.cpp msgid "" "No runnable export preset found for this platform.\n" "Please add a runnable preset in the export menu." @@ -2943,6 +3258,10 @@ msgstr "Você esqueceu o método '_run'?" msgid "Select Node(s) to Import" msgstr "Selecione Nó(s) para Importar" +#: editor/editor_sub_scene.cpp editor/project_manager.cpp +msgid "Browse" +msgstr "Navegar" + #: editor/editor_sub_scene.cpp msgid "Scene Path:" msgstr "Caminho da Cena:" @@ -3109,6 +3428,11 @@ msgid "SSL Handshake Error" msgstr "Erro SSL Handshake" #: editor/export_template_manager.cpp +#, fuzzy +msgid "Uncompressing Android Build Sources" +msgstr "Descompactando Assets" + +#: editor/export_template_manager.cpp msgid "Current Version:" msgstr "Versão Atual:" @@ -3125,7 +3449,8 @@ msgid "Remove Template" msgstr "Remover Modelo" #: editor/export_template_manager.cpp -msgid "Select template file" +#, fuzzy +msgid "Select Template File" msgstr "Selecione o arquivo de modelo" #: editor/export_template_manager.cpp @@ -3185,7 +3510,8 @@ msgid "No name provided." msgstr "Nenhum nome fornecido." #: editor/filesystem_dock.cpp -msgid "Provided name contains invalid characters" +#, fuzzy +msgid "Provided name contains invalid characters." msgstr "O nome fornecido contém caracteres inválidos" #: editor/filesystem_dock.cpp @@ -3213,19 +3539,27 @@ msgid "Duplicating folder:" msgstr "Duplicando pasta:" #: editor/filesystem_dock.cpp -msgid "Open Scene(s)" -msgstr "Abrir Cena(s)" +#, fuzzy +msgid "New Inherited Scene" +msgstr "Nova Cena Herdada..." + +#: editor/filesystem_dock.cpp +#, fuzzy +msgid "Open Scenes" +msgstr "Abrir Cena" #: editor/filesystem_dock.cpp msgid "Instance" msgstr "Instância" #: editor/filesystem_dock.cpp -msgid "Add to favorites" +#, fuzzy +msgid "Add to Favorites" msgstr "Adicionar aos favoritos" #: editor/filesystem_dock.cpp -msgid "Remove from favorites" +#, fuzzy +msgid "Remove from Favorites" msgstr "Remover dos favoritos" #: editor/filesystem_dock.cpp @@ -3256,11 +3590,13 @@ msgstr "Novo Script..." msgid "New Resource..." msgstr "Novo Recurso..." -#: editor/filesystem_dock.cpp editor/script_editor_debugger.cpp +#: editor/filesystem_dock.cpp editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_editor_debugger.cpp msgid "Expand All" msgstr "Expandir Tudo" -#: editor/filesystem_dock.cpp editor/script_editor_debugger.cpp +#: editor/filesystem_dock.cpp editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_editor_debugger.cpp msgid "Collapse All" msgstr "Recolher Tudo" @@ -3272,19 +3608,22 @@ msgid "Rename" msgstr "Renomear" #: editor/filesystem_dock.cpp -msgid "Previous Directory" -msgstr "Diretório Anterior" +#, fuzzy +msgid "Previous Folder/File" +msgstr "Pasta Anterior" #: editor/filesystem_dock.cpp -msgid "Next Directory" -msgstr "Próximo Diretório" +#, fuzzy +msgid "Next Folder/File" +msgstr "Próxima Pasta" #: editor/filesystem_dock.cpp msgid "Re-Scan Filesystem" msgstr "Re-escanear Sistema de Arquivos" #: editor/filesystem_dock.cpp -msgid "Toggle split mode" +#, fuzzy +msgid "Toggle Split Mode" msgstr "Alternar modo" #: editor/filesystem_dock.cpp @@ -3315,7 +3654,7 @@ msgstr "Sobrescrever" msgid "Create Script" msgstr "Criar Script" -#: editor/find_in_files.cpp +#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp msgid "Find in Files" msgstr "Localizar nos Arquivos" @@ -3331,6 +3670,12 @@ msgstr "Pasta:" msgid "Filters:" msgstr "Filtros:" +#: editor/find_in_files.cpp +msgid "" +"Include the files with the following extensions. Add or remove them in " +"ProjectSettings." +msgstr "" + #: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp msgid "Find..." @@ -3769,7 +4114,8 @@ msgid "Open Animation Node" msgstr "Abrir Nó de Animação" #: editor/plugins/animation_blend_space_2d_editor.cpp -msgid "Triangle already exists" +#, fuzzy +msgid "Triangle already exists." msgstr "Triângulo já existe" #: editor/plugins/animation_blend_space_2d_editor.cpp @@ -3844,7 +4190,6 @@ msgid "Node Moved" msgstr "Nó Movido" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Unable to connect, port may be in use or connection may be invalid." msgstr "" "Incapaz de conectar, a porta pode estar em uso ou a conexão é inválida." @@ -3918,7 +4263,8 @@ msgid "Edit Filtered Tracks:" msgstr "Editar trilhas filtradas:" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -msgid "Enable filtering" +#, fuzzy +msgid "Enable Filtering" msgstr "Habilitar filtragem" #: editor/plugins/animation_player_editor_plugin.cpp @@ -4036,10 +4382,6 @@ msgid "Animation" msgstr "Animação" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "New" -msgstr "Novo" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Edit Transitions..." msgstr "Editar Conexões..." @@ -4056,14 +4398,15 @@ msgid "Autoplay on Load" msgstr "Auto-reprodução ao Carregar" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Onion Skinning" -msgstr "Papel Vegetal" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Enable Onion Skinning" msgstr "Ativar Papel Vegetal" #: editor/plugins/animation_player_editor_plugin.cpp +#, fuzzy +msgid "Onion Skinning Options" +msgstr "Papel Vegetal" + +#: editor/plugins/animation_player_editor_plugin.cpp msgid "Directions" msgstr "Direções" @@ -4612,17 +4955,23 @@ msgid "Move CanvasItem" msgstr "Mover CanvaItem" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"Children of containers have their anchors and margins values overridden by " +"their parent." +msgstr "" +"Filhos de contêineres tem suas ancoragens e valores de margem sobrescritos " +"pelos seus pais." + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Presets for the anchors and margins values of a Control node." msgstr "" "Predefinições para os valores de âncoras e margens de um nó de controle." #: editor/plugins/canvas_item_editor_plugin.cpp msgid "" -"Children of containers have their anchors and margins values overridden by " -"their parent." +"When active, moving Control nodes changes their anchors instead of their " +"margins." msgstr "" -"Filhos de contêineres tem suas ancoragens e valores de margem sobrescritos " -"pelos seus pais." #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Anchors only" @@ -4637,10 +4986,52 @@ msgid "Change Anchors" msgstr "Alterar Âncoras" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Lock Selected" +msgstr "Ferramenta Selecionar" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Unlock Selected" +msgstr "Excluir Selecionados" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Group Selected" +msgstr "Copiar Seleção" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Ungroup Selected" +msgstr "Copiar Seleção" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Paste Pose" msgstr "Colar Pose" #: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Create Custom Bone(s) from Node(s)" +msgstr "Criar esqueleto(s) customizado do(s) nó(s)" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Clear Bones" +msgstr "Limpar Pose" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Make IK Chain" +msgstr "Fazer Cadeia de IK" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Clear IK Chain" +msgstr "Limpar Cadeia de IK" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "" "Warning: Children of a container get their position and size determined only " "by their parent." @@ -4718,7 +5109,8 @@ msgid "Snapping Options" msgstr "Opções de agarramento" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to grid" +#, fuzzy +msgid "Snap to Grid" msgstr "Encaixar na grade" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4739,31 +5131,38 @@ msgid "Use Pixel Snap" msgstr "Usar Snap de Pixel" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Smart snapping" +#, fuzzy +msgid "Smart Snapping" msgstr "Encaixe inteligente" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to parent" +#, fuzzy +msgid "Snap to Parent" msgstr "Encaixar no pai" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node anchor" +#, fuzzy +msgid "Snap to Node Anchor" msgstr "Encaixar na âncora do nó" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node sides" +#, fuzzy +msgid "Snap to Node Sides" msgstr "Encaixar nos lados do nó" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node center" +#, fuzzy +msgid "Snap to Node Center" msgstr "Encaixar no centro do nó" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to other nodes" +#, fuzzy +msgid "Snap to Other Nodes" msgstr "Encaixar em outros nós" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to guides" +#, fuzzy +msgid "Snap to Guides" msgstr "Encaixar nas guias" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4777,10 +5176,12 @@ msgid "Unlock the selected object (can be moved)." msgstr "Destravar o objeto selecionado (pode ser movido)." #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Makes sure the object's children are not selectable." msgstr "Garante que os filhos do objeto não sejam selecionáveis." #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Restores the object's children's ability to be selected." msgstr "Restaura a habilidade dos filhos do objeto de serem selecionados." @@ -4793,14 +5194,6 @@ msgid "Show Bones" msgstr "Mostrar Ossos" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Make IK Chain" -msgstr "Fazer Cadeia de IK" - -#: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Clear IK Chain" -msgstr "Limpar Cadeia de IK" - -#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Make Custom Bone(s) from Node(s)" msgstr "Criar esqueleto(s) customizado do(s) nó(s)" @@ -4851,25 +5244,25 @@ msgid "Frame Selection" msgstr "Seleção de Quadros" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Layout" -msgstr "Layout" +#, fuzzy +msgid "Preview Canvas Scale" +msgstr "Prever Atlas" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Translation mask for inserting keys." -msgstr "" +msgstr "Máscara de Translação para inserir chaves." #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Rotation mask for inserting keys." -msgstr "" +msgstr "Máscara de Rotação para inserir chaves." #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Scale mask for inserting keys." -msgstr "" +msgstr "Máscara de Escala para inserir chaves." #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Insert keys (based on mask)." -msgstr "Inserir Chaves (Ins)" +msgstr "Inserir Chaves (baseado na máscara)" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "" @@ -4878,11 +5271,15 @@ msgid "" "Keys are only added to existing tracks, no new tracks will be created.\n" "Keys must be inserted manually for the first time." msgstr "" +"Inserir chaves automaticamente quando os objetos são transladados, girados " +"em escala (com base na máscara). \n" +"As chaves são adicionadas apenas à s faixas existentes, nenhuma nova trilha " +"será criada. \n" +"As chaves devem ser inseridas manualmente pela primeira vez." #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Auto Insert Key" -msgstr "Inserir Chave na Anim" +msgstr "Inserir Chave Automaticamente" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Insert Key (Existing Tracks)" @@ -4898,11 +5295,16 @@ msgstr "Limpar Pose" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Multiply grid step by 2" -msgstr "Multiplifcar passo da grade por 2" +msgstr "Multiplicar o passo da grade por 2" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Divide grid step by 2" -msgstr "Dividir passo da grade por 2" +msgstr "Dividir o passo da grade por 2" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Pan View" +msgstr "Visão Traseira" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Add %s" @@ -4927,7 +5329,8 @@ msgid "Error instancing scene from %s" msgstr "Erro ao instanciar cena de %s" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Change default type" +#, fuzzy +msgid "Change Default Type" msgstr "Mudar tipo padrão" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -5015,20 +5418,22 @@ msgid "Create Emission Points From Node" msgstr "Criar Pontos de Emissão a Partir do Nó" #: editor/plugins/curve_editor_plugin.cpp -msgid "Flat0" +#, fuzzy +msgid "Flat 0" msgstr "Flat0" #: editor/plugins/curve_editor_plugin.cpp -msgid "Flat1" +#, fuzzy +msgid "Flat 1" msgstr "Flat1" -#: editor/plugins/curve_editor_plugin.cpp -msgid "Ease in" -msgstr "Suavizar inÃcio" +#: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp +msgid "Ease In" +msgstr "Ease In" -#: editor/plugins/curve_editor_plugin.cpp -msgid "Ease out" -msgstr "Suavizar final" +#: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp +msgid "Ease Out" +msgstr "Ease Out" #: editor/plugins/curve_editor_plugin.cpp msgid "Smoothstep" @@ -5047,23 +5452,28 @@ msgid "Load Curve Preset" msgstr "Carregar Definição de Curva" #: editor/plugins/curve_editor_plugin.cpp -msgid "Add point" +#, fuzzy +msgid "Add Point" msgstr "Adicionar ponto" #: editor/plugins/curve_editor_plugin.cpp -msgid "Remove point" +#, fuzzy +msgid "Remove Point" msgstr "Remover ponto" #: editor/plugins/curve_editor_plugin.cpp -msgid "Left linear" +#, fuzzy +msgid "Left Linear" msgstr "Linear esquerda" #: editor/plugins/curve_editor_plugin.cpp -msgid "Right linear" +#, fuzzy +msgid "Right Linear" msgstr "Linear direita" #: editor/plugins/curve_editor_plugin.cpp -msgid "Load preset" +#, fuzzy +msgid "Load Preset" msgstr "Carregar definição" #: editor/plugins/curve_editor_plugin.cpp @@ -5119,11 +5529,17 @@ msgid "This doesn't work on scene root!" msgstr "Não funciona na raiz da cena!" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Trimesh Shape" +#, fuzzy +msgid "Create Trimesh Static Shape" msgstr "Criar Forma Trimesh" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Shape" +msgid "Failed creating shapes!" +msgstr "" + +#: editor/plugins/mesh_instance_editor_plugin.cpp +#, fuzzy +msgid "Create Convex Shape(s)" msgstr "Criar Forma Convexa" #: editor/plugins/mesh_instance_editor_plugin.cpp @@ -5176,15 +5592,12 @@ msgid "Create Trimesh Static Body" msgstr "Criar Corpo Trimesh Estático" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Static Body" -msgstr "Criar um Corpo Estático Convexo" - -#: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Trimesh Collision Sibling" msgstr "Criar Colisão Trimesh Irmã" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Collision Sibling" +#, fuzzy +msgid "Create Convex Collision Sibling(s)" msgstr "Criar Colisão Convexa Irmã" #: editor/plugins/mesh_instance_editor_plugin.cpp @@ -5340,6 +5753,11 @@ msgid "Create Navigation Polygon" msgstr "Criar PolÃgono de Navegação" #: editor/plugins/particles_2d_editor_plugin.cpp +#: editor/plugins/particles_editor_plugin.cpp +msgid "Convert to CPUParticles" +msgstr "Converter para Particulas CPU" + +#: editor/plugins/particles_2d_editor_plugin.cpp msgid "Generating Visibility Rect" msgstr "Gerar Retângulo de Visibilidade" @@ -5354,11 +5772,6 @@ msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp #: editor/plugins/particles_editor_plugin.cpp -msgid "Convert to CPUParticles" -msgstr "Converter para Particulas CPU" - -#: editor/plugins/particles_2d_editor_plugin.cpp -#: editor/plugins/particles_editor_plugin.cpp msgid "Generation Time (sec):" msgstr "Gerando Tempo (seg):" @@ -5496,7 +5909,7 @@ msgstr "Fechar Curva" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp editor/plugins/theme_editor_plugin.cpp -#: editor/project_export.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_export.cpp msgid "Options" msgstr "Opções" @@ -5547,7 +5960,8 @@ msgid "Split Segment (in curve)" msgstr "Dividir Segmentos (na curva)" #: editor/plugins/physical_bone_plugin.cpp -msgid "Move joint" +#, fuzzy +msgid "Move Joint" msgstr "Mover junta" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5788,7 +6202,6 @@ msgid "Open in Editor" msgstr "Abrir no Editor" #: editor/plugins/resource_preloader_editor_plugin.cpp -#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Load Resource" msgstr "Carregar Recurso" @@ -5873,9 +6286,13 @@ msgid "Save Theme As..." msgstr "Salvar Tema Como..." #: editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "%s Class Reference" -msgstr " Referência de Classes" +msgstr "%s Referência de Classes" + +#: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp +msgid "Find Next" +msgstr "Localizar próximo" #: editor/plugins/script_editor_plugin.cpp msgid "Toggle alphabetical sorting of the method list." @@ -5958,10 +6375,6 @@ msgstr "Fechar Docs" msgid "Close All" msgstr "Fechar Tudo" -#: editor/plugins/script_editor_plugin.cpp -msgid "Close Other Tabs" -msgstr "Fechas as outras abas" - #: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp msgid "Run" msgstr "Rodar" @@ -5970,11 +6383,6 @@ msgstr "Rodar" msgid "Toggle Scripts Panel" msgstr "Alternar Painel de Scripts" -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/script_text_editor.cpp -msgid "Find Next" -msgstr "Localizar próximo" - #: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp msgid "Step Over" msgstr "Passo por cima" @@ -6001,7 +6409,8 @@ msgid "Debug with External Editor" msgstr "Depurar com o Editor Externo" #: editor/plugins/script_editor_plugin.cpp -msgid "Open Godot online documentation" +#, fuzzy +msgid "Open Godot online documentation." msgstr "Abrir a documentação online da Godot" #: editor/plugins/script_editor_plugin.cpp @@ -6009,7 +6418,8 @@ msgid "Request Docs" msgstr "Solicitar documentos" #: editor/plugins/script_editor_plugin.cpp -msgid "Help improve the Godot documentation by giving feedback" +#, fuzzy +msgid "Help improve the Godot documentation by giving feedback." msgstr "Ajude a melhorar a documentação do Godot dando seu feedback" #: editor/plugins/script_editor_plugin.cpp @@ -6037,10 +6447,12 @@ msgstr "" "Que ação deve ser tomada?:" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp msgid "Reload" msgstr "Recarregar" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp msgid "Resave" msgstr "Salve novamente" @@ -6053,6 +6465,31 @@ msgid "Search Results" msgstr "Pesquisar resultados" #: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Connections to method:" +msgstr "Conectar ao Nó:" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Source" +msgstr "Origem:" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Signal" +msgstr "Sinais" + +#: editor/plugins/script_text_editor.cpp +msgid "Target" +msgstr "Destino" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "" +"Missing connected method '%s' for signal '%s' from node '%s' to node '%s'." +msgstr "Nada está ligado à entrada '%s' do nó '%s'." + +#: editor/plugins/script_text_editor.cpp msgid "Line" msgstr "Linha" @@ -6064,10 +6501,6 @@ msgstr "(ignore)" msgid "Go to Function" msgstr "Ir para Função" -#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp -msgid "Standard" -msgstr "Padrão" - #: editor/plugins/script_text_editor.cpp msgid "Only resources from filesystem can be dropped." msgstr "Apenas recursos do sistema de arquivos podem ser soltos." @@ -6100,6 +6533,11 @@ msgstr "Capitalizar" msgid "Syntax Highlighter" msgstr "Realce de sintaxe" +#: editor/plugins/script_text_editor.cpp +#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp +msgid "Bookmarks" +msgstr "" + #: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" @@ -6127,6 +6565,26 @@ msgid "Toggle Comment" msgstr "Alternar Comentário" #: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Toggle Bookmark" +msgstr "Alternar Visão Livre" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Go to Next Bookmark" +msgstr "Vá para o próximo ponto de interrupção" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Go to Previous Bookmark" +msgstr "Ir para ponto de interrupção anterior" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Remove All Bookmarks" +msgstr "Remover Todos os Itens" + +#: editor/plugins/script_text_editor.cpp msgid "Fold/Unfold Line" msgstr "Dobrar/Desdobrar Linha" @@ -6200,6 +6658,15 @@ msgid "Contextual Help" msgstr "Ajuda Contextual" #: editor/plugins/shader_editor_plugin.cpp +#, fuzzy +msgid "" +"This shader has been modified on on disk.\n" +"What action should be taken?" +msgstr "" +"Os seguintes arquivos são mais recentes no disco.\n" +"Que ação deve ser tomada?:" + +#: editor/plugins/shader_editor_plugin.cpp msgid "Shader" msgstr "Shader" @@ -6542,7 +7009,8 @@ msgid "Right View" msgstr "Visão Direita" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Switch Perspective/Orthogonal view" +#, fuzzy +msgid "Switch Perspective/Orthogonal View" msgstr "Alternar visão Perspectiva/Ortogonal" #: editor/plugins/spatial_editor_plugin.cpp @@ -6582,11 +7050,13 @@ msgid "Toggle Freelook" msgstr "Alternar Visão Livre" #: editor/plugins/spatial_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Transform" msgstr "Transformação" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Snap object to floor" +#, fuzzy +msgid "Snap Object to Floor" msgstr "Encaixar o objeto no chão" #: editor/plugins/spatial_editor_plugin.cpp @@ -6699,24 +7169,20 @@ msgid "Nameless gizmo" msgstr "Coisa sem nome" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy msgid "Create Mesh2D" -msgstr "Crie uma malha 2D" +msgstr "Crie uma Malha2D" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy msgid "Create Polygon2D" msgstr "Criar PolÃgono3D" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy msgid "Create CollisionPolygon2D" -msgstr "Criar polÃgono de colisão" +msgstr "Criar PolÃgonoDeColisão2D" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy msgid "Create LightOccluder2D" -msgstr "Criar PolÃgono de Oclusão" +msgstr "Criar OclusorDeLuz2D" #: editor/plugins/sprite_editor_plugin.cpp msgid "Sprite is empty!" @@ -6732,43 +7198,36 @@ msgid "Invalid geometry, can't replace by mesh." msgstr "Geometria inválida, não é possÃvel substituir por malha." #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy -msgid "Invalid geometry, can't create polygon." -msgstr "Geometria inválida, não é possÃvel substituir por malha." +msgid "Convert to Mesh2D" +msgstr "Converter para Malha2D" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy -msgid "Invalid geometry, can't create collision polygon." -msgstr "Geometria inválida, não é possÃvel substituir por malha." +msgid "Invalid geometry, can't create polygon." +msgstr "Geometria inválida, não é possÃvel criar o polÃgono." #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy -msgid "Invalid geometry, can't create light occluder." -msgstr "Geometria inválida, não é possÃvel substituir por malha." +msgid "Convert to Polygon2D" +msgstr "Converter para PolÃgono2D" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Sprite" -msgstr "Sprite" +msgid "Invalid geometry, can't create collision polygon." +msgstr "Geometria inválida, não é possÃvel criar o polÃgono de colisão." #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy -msgid "Convert to Mesh2D" -msgstr "Converter para malha 2D" +msgid "Create CollisionPolygon2D Sibling" +msgstr "Criar PolÃgonoDeColisão2D Irmão" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy -msgid "Convert to Polygon2D" -msgstr "Mover PolÃgono" +msgid "Invalid geometry, can't create light occluder." +msgstr "Geometria inválida, não é possÃvel criar oclusor de luz." #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy -msgid "Create CollisionPolygon2D Sibling" -msgstr "Criar polÃgono de colisão" +msgid "Create LightOccluder2D Sibling" +msgstr "Criar PolÃgonoDeOclusão2D Irmão" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy -msgid "Create LightOccluder2D Sibling" -msgstr "Criar PolÃgono de Oclusão" +msgid "Sprite" +msgstr "Sprite" #: editor/plugins/sprite_editor_plugin.cpp msgid "Simplification: " @@ -6787,14 +7246,24 @@ msgid "Settings:" msgstr "Configurações:" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "ERROR: Couldn't load frame resource!" -msgstr "ERRO: Não foi possÃvel carregar recurso de quadro!" +#, fuzzy +msgid "No Frames Selected" +msgstr "Seleção de Quadros" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Add %d Frame(s)" +msgstr "Adicionar Quadro" #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Add Frame" msgstr "Adicionar Quadro" #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "ERROR: Couldn't load frame resource!" +msgstr "ERRO: Não foi possÃvel carregar recurso de quadro!" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Resource clipboard is empty or not a texture!" msgstr "Recurso da área de transferência está vazio ou não é uma textura!" @@ -6835,6 +7304,15 @@ msgid "Animation Frames:" msgstr "Quadros da Animação:" #: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Add a Texture from File" +msgstr "Adicionar textura(s) ao TileSet." + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Add Frames from a Sprite Sheet" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Insert Empty (Before)" msgstr "Inserir Vazio (Antes)" @@ -6851,6 +7329,31 @@ msgid "Move (After)" msgstr "Mover (Depois)" #: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Select Frames" +msgstr "Pilha de Quadros" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Horizontal:" +msgstr "Girar horizontalmente" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Vertical:" +msgstr "Vértices" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Select/Clear All Frames" +msgstr "Selecionar Tudo" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Create Frames from Sprite Sheet" +msgstr "Criar a partir de Cena" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "SpriteFrames" msgstr "SpriteFrames" @@ -6915,12 +7418,13 @@ msgstr "Adicionar Todos" msgid "Remove All Items" msgstr "Remover Todos os Itens" -#: editor/plugins/theme_editor_plugin.cpp +#: editor/plugins/theme_editor_plugin.cpp editor/project_manager.cpp msgid "Remove All" msgstr "Remover Tudo" #: editor/plugins/theme_editor_plugin.cpp -msgid "Edit theme..." +#, fuzzy +msgid "Edit Theme" msgstr "Editar tema..." #: editor/plugins/theme_editor_plugin.cpp @@ -6948,18 +7452,25 @@ msgid "Create From Current Editor Theme" msgstr "Criar a Partir do Tema Atual do Editor" #: editor/plugins/theme_editor_plugin.cpp -msgid "CheckBox Radio1" -msgstr "CheckBox Rádio1" +#, fuzzy +msgid "Toggle Button" +msgstr "Botão do Mous" #: editor/plugins/theme_editor_plugin.cpp -msgid "CheckBox Radio2" -msgstr "CheckBox Rádio2" +#, fuzzy +msgid "Disabled Button" +msgstr "Botão do Meio" #: editor/plugins/theme_editor_plugin.cpp msgid "Item" msgstr "Item" #: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Disabled Item" +msgstr "Desabilitado" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Check Item" msgstr "Item Marcável" @@ -6976,6 +7487,24 @@ msgid "Checked Radio Item" msgstr "Item Rádio Marcado" #: editor/plugins/theme_editor_plugin.cpp +msgid "Named Sep." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Submenu" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Item 1" +msgstr "Item" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Item 2" +msgstr "Item" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Has" msgstr "Tem" @@ -6984,8 +7513,9 @@ msgid "Many" msgstr "Muitas" #: editor/plugins/theme_editor_plugin.cpp -msgid "Has,Many,Options" -msgstr "Tem,Muitas,Opções" +#, fuzzy +msgid "Disabled LineEdit" +msgstr "Desabilitado" #: editor/plugins/theme_editor_plugin.cpp msgid "Tab 1" @@ -7000,6 +7530,19 @@ msgid "Tab 3" msgstr "Guia 3" #: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Editable Item" +msgstr "Filhos Editáveis" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Subtree" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Has,Many,Options" +msgstr "Tem,Muitas,Opções" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Data Type:" msgstr "Tipo de Dados:" @@ -7032,6 +7575,7 @@ msgid "Fix Invalid Tiles" msgstr "Corrigir blocos inválidos" #: editor/plugins/tile_map_editor_plugin.cpp +#: modules/gridmap/grid_map_editor_plugin.cpp msgid "Cut Selection" msgstr "Seleção de corte" @@ -7072,35 +7616,52 @@ msgid "Mirror Y" msgstr "Espelhar Y" #: editor/plugins/tile_map_editor_plugin.cpp +#, fuzzy +msgid "Disable Autotile" +msgstr "Autotiles" + +#: editor/plugins/tile_map_editor_plugin.cpp +#, fuzzy +msgid "Enable Priority" +msgstr "Editar prioridade da telha" + +#: editor/plugins/tile_map_editor_plugin.cpp msgid "Paint Tile" msgstr "Pintar Tile" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Pick Tile" -msgstr "Pegar Tile" +msgid "" +"Shift+RMB: Line Draw\n" +"Shift+Ctrl+RMB: Rectangle Paint" +msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Copy Selection" -msgstr "Copiar Seleção" +msgid "Pick Tile" +msgstr "Pegar Tile" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Rotate left" +#, fuzzy +msgid "Rotate Left" msgstr "Rotacionar para a esquerda" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Rotate right" +#, fuzzy +msgid "Rotate Right" msgstr "Rotacionar para a direita" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Flip horizontally" +#, fuzzy +msgid "Flip Horizontally" msgstr "Girar horizontalmente" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Flip vertically" +#, fuzzy +msgid "Flip Vertically" msgstr "Girar verticalmente" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Clear transform" +#, fuzzy +msgid "Clear Transform" msgstr "Limpar Transformação" #: editor/plugins/tile_set_editor_plugin.cpp @@ -7136,6 +7697,46 @@ msgid "Select the previous shape, subtile, or Tile." msgstr "Selecione a forma, subtile ou tile anterior." #: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Region Mode" +msgstr "Modo de InÃcio:" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Collision Mode" +msgstr "Modo de Interpolação" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Occlusion Mode" +msgstr "Editar polÃgono de oclusão" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Navigation Mode" +msgstr "Criar Malha de Navegação" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Bitmask Mode" +msgstr "Modo Rotacionar" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Priority Mode" +msgstr "Modo de Exportação:" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Icon Mode" +msgstr "Modo Panorâmico" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Z Index Mode" +msgstr "Modo Panorâmico" + +#: editor/plugins/tile_set_editor_plugin.cpp msgid "Copy bitmask." msgstr "Copie o bitmask." @@ -7216,9 +7817,11 @@ msgid "Delete polygon." msgstr "Excluir polÃgono." #: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy msgid "" "LMB: Set bit on.\n" "RMB: Set bit off.\n" +"Shift+LMB: Set wildcard bit.\n" "Click on another Tile to edit it." msgstr "" "LMB: ligar bit.\n" @@ -7336,6 +7939,79 @@ msgid "TileSet" msgstr "Conjunto de Telha" #: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Add input +" +msgstr "Adicionar Entrada" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Add output +" +msgstr "Adicionar Entrada" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar" +msgstr "Escala:" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector" +msgstr "Inspetor" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Add input port" +msgstr "Adicionar Entrada" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add output port" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change input port type" +msgstr "Mudar tipo padrão" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change output port type" +msgstr "Mudar tipo padrão" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change input port name" +msgstr "Alterar Nome da Entrada" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change output port name" +msgstr "Alterar Nome da Entrada" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Remove input port" +msgstr "Remover ponto" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Remove output port" +msgstr "Remover ponto" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Set expression" +msgstr "Alterar Expressão" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Resize VisualShader node" +msgstr "VisualShader" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Set Uniform Name" msgstr "Definir Nome Uniforme" @@ -7352,9 +8028,8 @@ msgid "Duplicate Nodes" msgstr "Duplicar Nó(s)" #: editor/plugins/visual_shader_editor_plugin.cpp -#, fuzzy msgid "Delete Nodes" -msgstr "Excluir Nó" +msgstr "Excluir Nós" #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Visual Shader Input Type Changed" @@ -7373,6 +8048,859 @@ msgid "Light" msgstr "Luz" #: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Create Shader Node" +msgstr "Criar Nó" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Color function." +msgstr "Ir para Função" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Color operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Grayscale function." +msgstr "Fazer Função" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts HSV vector to RGB equivalent." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts RGB vector to HSV equivalent." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Sepia function." +msgstr "Renomear Função" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Burn operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Darken operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Difference operator." +msgstr "Apenas Diferenças" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Dodge operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "HardLight operator" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Lighten operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Overlay operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Screen operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "SoftLight operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Color constant." +msgstr "Constante" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Color uniform." +msgstr "Limpar Transformação" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns an associated vector if the provided scalars are equal, greater or " +"less." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns an associated vector if the provided boolean value is true or false." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Boolean constant." +msgstr "Alterar Constante Vet" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'camera' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'inv_camera' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'inv_projection' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'normal' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'projection' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'time' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'viewport_size' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'world' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'texture_pixel_size' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Input parameter." +msgstr "Encaixar no pai" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'binormal' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'fragcoord' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_coord' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_uv' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'side' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'tangent' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv2' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'vertex' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'view' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'albedo' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'attenuation' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'diffuse' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_color' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'roughness' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'specular' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'transmission' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'modelview' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_size' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'tangent' input parameter for vertex and fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_pass' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_coord' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_pixel_size' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_uv' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_alpha' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_height' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_uv' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_vec' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'normal' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'shadow_color' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'extra' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'projection' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'vertex' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'world' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'active' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'custom' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'custom_alpha' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'delta' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'emission_transform' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'index' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'lifetime' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'restart' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'time' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'transform' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'velocity' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar function." +msgstr "Alterar Função Escalar" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar operator." +msgstr "Alterar Operador Escalar" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "E constant (2.718282). Represents the base of the natural logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Epsilon constant (0.00001). Smallest possible scalar number." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Phi constant (1.618034). Golden ratio." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi/4 constant (0.785398) or 45 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi/2 constant (1.570796) or 90 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi constant (3.141593) or 180 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Tau constant (6.283185) or 360 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Sqrt2 constant (1.414214). Square root of 2." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the absolute value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-tangent of the parameters." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Finds the nearest integer that is greater than or equal to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Constrains a value to lie between two further values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts a quantity in radians to degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-e Exponential." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-2 Exponential." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Finds the nearest integer less than or equal to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Computes the fractional part of the argument." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the inverse of the square root of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Natural logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-2 logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the greater of two values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the lesser of two values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Linear interpolation between two scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the opposite value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 - scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns the value of the first parameter raised to the power of the second." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts a quantity in degrees to radians." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 / scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the nearest integer to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the nearest even integer to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Clamps the value between 0.0 and 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Extracts the sign of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the square root of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( scalar(edge0), scalar(edge1), scalar(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if x is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( scalar(edge), scalar(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the truncated value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Adds scalar to scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Divides scalar by scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies scalar by scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the remainder of the two scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Subtracts scalar from scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar constant." +msgstr "Alterar Constante Escalar" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar uniform." +msgstr "Alterar Uniforme Escalar" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Perform the cubic texture lookup." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Perform the texture lookup." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Cubic texture uniform." +msgstr "Alterar Uniforme da Textura" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "2D texture uniform." +msgstr "Alterar Uniforme da Textura" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Transform function." +msgstr "Diálogo Transformação..." + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) Calculate the outer product of a pair of vectors.\n" +"\n" +"OuterProduct treats the first parameter 'c' as a column vector (matrix with " +"one column) and the second parameter 'r' as a row vector (matrix with one " +"row) and does a linear algebraic matrix multiply 'c * r', yielding a matrix " +"whose number of rows is the number of components in 'c' and whose number of " +"columns is the number of components in 'r'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Composes transform from four vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Decomposes transform to four vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the determinant of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the inverse of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the transpose of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies transform by transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies vector by transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Transform constant." +msgstr "Transformação Abortada." + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Transform uniform." +msgstr "Transformação Abortada." + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector function." +msgstr "Atribuição à função." + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector operator." +msgstr "Alterar Operador Vet" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Composes vector from three scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Decomposes vector to three scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the cross product of two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the distance between two points." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the dot product of two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns a vector that points in the same direction as a reference vector. " +"The function has three vector parameters : N, the vector to orient, I, the " +"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 "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the length of a vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Linear interpolation between two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the normalize product of vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 - vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 / vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns a vector that points in the direction of reflection ( a : incident " +"vector, b : normal vector )." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns a vector that points in the direction of refraction." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( vector(edge0), vector(edge1), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if 'x' is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( scalar(edge0), scalar(edge1), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if 'x' is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( vector(edge), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( scalar(edge), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Adds vector to vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Divides vector by vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies vector by vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the remainder of the two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Subtracts vector from vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector constant." +msgstr "Alterar Constante Vet" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector uniform." +msgstr "Atribuição à uniforme." + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Custom Godot Shader Language expression, with custom amount of input and " +"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 "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns falloff based on the dot product of surface normal and view " +"direction of camera (pass associated inputs to it)." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) (Fragment/Light mode only) Scalar derivative function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) (Fragment/Light mode only) Vector derivative function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Derivative in 'x' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Derivative in 'x' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Derivative in 'y' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Derivative in 'y' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Sum of absolute derivative " +"in 'x' and 'y'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Sum of absolute derivative " +"in 'x' and 'y'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "VisualShader" msgstr "VisualShader" @@ -7572,6 +9100,10 @@ msgid "Directory already contains a Godot project." msgstr "O diretório já contém um projeto Godot." #: editor/project_manager.cpp +msgid "New Game Project" +msgstr "Novo Projeto de Jogo" + +#: editor/project_manager.cpp msgid "Imported Project" msgstr "Projeto Importado" @@ -7620,10 +9152,6 @@ msgid "Rename Project" msgstr "Renomear Projeto" #: editor/project_manager.cpp -msgid "New Game Project" -msgstr "Novo Projeto de Jogo" - -#: editor/project_manager.cpp msgid "Import Existing Project" msgstr "Importar Projeto Existente" @@ -7652,10 +9180,6 @@ msgid "Project Name:" msgstr "Nome do Projeto:" #: editor/project_manager.cpp -msgid "Create folder" -msgstr "Criar Pasta" - -#: editor/project_manager.cpp msgid "Project Path:" msgstr "Caminho do Projeto:" @@ -7664,10 +9188,6 @@ msgid "Project Installation Path:" msgstr "Caminho do Projeto:" #: editor/project_manager.cpp -msgid "Browse" -msgstr "Navegar" - -#: editor/project_manager.cpp msgid "Renderer:" msgstr "Renderizador:" @@ -7722,6 +9242,7 @@ msgid "Are you sure to open more than one project?" msgstr "Tem certeza de que quer abrir mais de um projeto?" #: editor/project_manager.cpp +#, fuzzy msgid "" "The following project settings file does not specify the version of Godot " "through which it was created.\n" @@ -7730,8 +9251,8 @@ msgid "" "\n" "If you proceed with opening it, it will be converted to Godot's current " "configuration file format.\n" -"Warning: You will not be able to open the project with previous versions of " -"the engine anymore." +"Warning: You won't be able to open the project with previous versions of the " +"engine anymore." msgstr "" "O seguinte arquivo de configurações do projeto foi gerado por uma versão " "mais antiga do Godot e precisa ser convertido para esta versão:\n" @@ -7742,6 +9263,7 @@ msgstr "" "Aviso: você não poderá mais abrir o projeto com versões anteriores do Godot." #: editor/project_manager.cpp +#, fuzzy msgid "" "The following project settings file was generated by an older engine " "version, and needs to be converted for this version:\n" @@ -7749,8 +9271,8 @@ msgid "" "%s\n" "\n" "Do you want to convert it?\n" -"Warning: You will not be able to open the project with previous versions of " -"the engine anymore." +"Warning: You won't be able to open the project with previous versions of the " +"engine anymore." msgstr "" "O seguinte arquivo de configurações do projeto foi gerado por uma versão " "mais antiga do mecanismo e precisa ser convertido para esta versão:\n" @@ -7770,9 +9292,10 @@ msgstr "" "mecanismo, cujas configurações não são compatÃveis com esta versão." #: editor/project_manager.cpp +#, fuzzy msgid "" "Can't run project: no main scene defined.\n" -"Please edit the project and set the main scene in \"Project Settings\" under " +"Please edit the project and set the main scene in the Project Settings under " "the \"Application\" category." msgstr "" "Não foi possÃvel executar o projeto: cena principal não definida.\n" @@ -7788,26 +9311,46 @@ msgstr "" "Por favor, edite o projeto para iniciar a importação inicial." #: editor/project_manager.cpp -msgid "Are you sure to run more than one project?" +#, fuzzy +msgid "Are you sure to run %d projects at once?" msgstr "Tem certeza de que quer executar mais de um projeto?" #: editor/project_manager.cpp -msgid "Remove project from the list? (Folder contents will not be modified)" +#, fuzzy +msgid "" +"Remove %d projects from the list?\n" +"The project folders' contents won't be modified." msgstr "Remover projeto da lista? (O conteúdo da pasta não será modificado)" #: editor/project_manager.cpp +#, fuzzy +msgid "" +"Remove this project from the list?\n" +"The project folder's contents won't be modified." +msgstr "Remover projeto da lista? (O conteúdo da pasta não será modificado)" + +#: editor/project_manager.cpp +#, fuzzy +msgid "" +"Remove all missing projects from the list? (Folders contents will not be " +"modified)" +msgstr "Remover projeto da lista? (O conteúdo da pasta não será modificado)" + +#: editor/project_manager.cpp +#, fuzzy msgid "" "Language changed.\n" -"The UI will update next time the editor or project manager starts." +"The interface will update after restarting the editor or project manager." msgstr "" "Linguagem alterada.\n" "A interface será atualizada na próxima vez que o editor ou o gerenciador de " "projetos iniciar." #: editor/project_manager.cpp +#, fuzzy msgid "" -"You are about the scan %s folders for existing Godot projects. Do you " -"confirm?" +"Are you sure to scan %s folders for existing Godot projects?\n" +"This could take a while." msgstr "" "Você está para analisar %s pastas por projetos existentes da Godot. Você " "confirma?" @@ -7833,6 +9376,11 @@ msgid "New Project" msgstr "Novo Projeto" #: editor/project_manager.cpp +#, fuzzy +msgid "Remove Missing" +msgstr "Remover ponto" + +#: editor/project_manager.cpp msgid "Templates" msgstr "Modelos" @@ -7849,9 +9397,10 @@ msgid "Can't run project" msgstr "Não é possÃvel executar o projeto" #: editor/project_manager.cpp +#, fuzzy msgid "" -"You don't currently have any projects.\n" -"Would you like to explore the official example projects in the Asset Library?" +"You currently don't have any projects.\n" +"Would you like to explore official example projects in the Asset Library?" msgstr "" "Você não tem nenhum projeto atualmente.\n" "Gostaria de explorar os projetos de exemplo oficiais na Biblioteca de Assets?" @@ -7881,7 +9430,8 @@ msgstr "" "ou '\"'" #: editor/project_settings_editor.cpp -msgid "Action '%s' already exists!" +#, fuzzy +msgid "An action with the name '%s' already exists." msgstr "A ação \"%s\" já existe!" #: editor/project_settings_editor.cpp @@ -8037,10 +9587,6 @@ msgstr "" "'\\' ou '\"'." #: editor/project_settings_editor.cpp -msgid "Already existing" -msgstr "Já existe" - -#: editor/project_settings_editor.cpp msgid "Add Input Action" msgstr "Adicionar Ação de Entrada" @@ -8105,7 +9651,8 @@ msgid "Override For..." msgstr "Sobrescrever Para..." #: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp -msgid "Editor must be restarted for changes to take effect" +#, fuzzy +msgid "The editor must be restarted for changes to take effect." msgstr "O editor deve ser reiniciado para que as mudanças surtam efeito" #: editor/project_settings_editor.cpp @@ -8165,11 +9712,13 @@ msgid "Locales Filter" msgstr "Filtro de Idiomas" #: editor/project_settings_editor.cpp -msgid "Show all locales" +#, fuzzy +msgid "Show All Locales" msgstr "Mostrar todos os idiomas" #: editor/project_settings_editor.cpp -msgid "Show only selected locales" +#, fuzzy +msgid "Show Selected Locales Only" msgstr "Mostrar apenas os idiomas selecionados" #: editor/project_settings_editor.cpp @@ -8185,14 +9734,6 @@ msgid "AutoLoad" msgstr "AutoLoad" #: editor/property_editor.cpp -msgid "Ease In" -msgstr "Ease In" - -#: editor/property_editor.cpp -msgid "Ease Out" -msgstr "Ease Out" - -#: editor/property_editor.cpp msgid "Zero" msgstr "Zero" @@ -8265,7 +9806,8 @@ msgid "Suffix" msgstr "Sufixo" #: editor/rename_dialog.cpp -msgid "Advanced options" +#, fuzzy +msgid "Advanced Options" msgstr "Opções avançadas" #: editor/rename_dialog.cpp @@ -8527,8 +10069,9 @@ msgid "User Interface" msgstr "Interface de Usuário" #: editor/scene_tree_dock.cpp -msgid "Custom Node" -msgstr "Nó personalizado" +#, fuzzy +msgid "Other Node" +msgstr "Excluir Nó" #: editor/scene_tree_dock.cpp msgid "Can't operate on nodes from a foreign scene!" @@ -8571,7 +10114,8 @@ msgid "Clear Inheritance" msgstr "Limpar Herança" #: editor/scene_tree_dock.cpp -msgid "Open documentation" +#, fuzzy +msgid "Open Documentation" msgstr "Abrir a documentação" #: editor/scene_tree_dock.cpp @@ -8598,7 +10142,7 @@ msgstr "Fundir a Partir de Cena" msgid "Save Branch as Scene" msgstr "Salvar Ramo como Cena" -#: editor/scene_tree_dock.cpp +#: editor/scene_tree_dock.cpp editor/script_editor_debugger.cpp msgid "Copy Node Path" msgstr "Copiar Caminho do Nó" @@ -8643,6 +10187,21 @@ msgid "Toggle Visible" msgstr "Alternar Visibilidade" #: editor/scene_tree_editor.cpp +#, fuzzy +msgid "Unlock Node" +msgstr "Selecionar Nó" + +#: editor/scene_tree_editor.cpp +#, fuzzy +msgid "Button Group" +msgstr "Botão 7" + +#: editor/scene_tree_editor.cpp +#, fuzzy +msgid "(Connecting From)" +msgstr "Erro de Conexão" + +#: editor/scene_tree_editor.cpp msgid "Node configuration warning:" msgstr "Aviso de configuração de nó:" @@ -8670,8 +10229,9 @@ msgstr "" "O nó está em grupo(s).\n" "Clique para mostrar o painel de grupos." -#: editor/scene_tree_editor.cpp editor/script_create_dialog.cpp -msgid "Open Script" +#: editor/scene_tree_editor.cpp +#, fuzzy +msgid "Open Script:" msgstr "Abrir script" #: editor/scene_tree_editor.cpp @@ -8723,71 +10283,83 @@ msgid "Select a Node" msgstr "Selecione um Nó" #: editor/script_create_dialog.cpp -msgid "Error loading template '%s'" -msgstr "Erro ao carregar modelo '%s'" +#, fuzzy +msgid "Path is empty." +msgstr "O caminho está vazio" #: editor/script_create_dialog.cpp -msgid "Error - Could not create script in filesystem." -msgstr "Erro - Não se pôde criar o script no sistema de arquivos." +#, fuzzy +msgid "Filename is empty." +msgstr "O nome do arquivo está vazio" #: editor/script_create_dialog.cpp -msgid "Error loading script from %s" -msgstr "Erro ao carregar script de %s" +#, fuzzy +msgid "Path is not local." +msgstr "O caminho não é local" #: editor/script_create_dialog.cpp -msgid "N/A" -msgstr "N/D" +#, fuzzy +msgid "Invalid base path." +msgstr "Caminho base inválido" #: editor/script_create_dialog.cpp -msgid "Open Script/Choose Location" -msgstr "Abrir Script/Escolher Localização" +#, fuzzy +msgid "A directory with the same name exists." +msgstr "Um diretório de mesmo nome existe" #: editor/script_create_dialog.cpp -msgid "Path is empty" -msgstr "O caminho está vazio" +#, fuzzy +msgid "Invalid extension." +msgstr "Extensão inválida" #: editor/script_create_dialog.cpp -msgid "Filename is empty" -msgstr "O nome do arquivo está vazio" +#, fuzzy +msgid "Wrong extension chosen." +msgstr "Extensão errada escolhida" #: editor/script_create_dialog.cpp -msgid "Path is not local" -msgstr "O caminho não é local" +msgid "Error loading template '%s'" +msgstr "Erro ao carregar modelo '%s'" #: editor/script_create_dialog.cpp -msgid "Invalid base path" -msgstr "Caminho base inválido" +msgid "Error - Could not create script in filesystem." +msgstr "Erro - Não se pôde criar o script no sistema de arquivos." #: editor/script_create_dialog.cpp -msgid "Directory of the same name exists" -msgstr "Um diretório de mesmo nome existe" +msgid "Error loading script from %s" +msgstr "Erro ao carregar script de %s" #: editor/script_create_dialog.cpp -msgid "File exists, will be reused" -msgstr "O arquivo existe, será reaproveitado" +msgid "N/A" +msgstr "N/D" #: editor/script_create_dialog.cpp -msgid "Invalid extension" -msgstr "Extensão inválida" +#, fuzzy +msgid "Open Script / Choose Location" +msgstr "Abrir Script/Escolher Localização" #: editor/script_create_dialog.cpp -msgid "Wrong extension chosen" -msgstr "Extensão errada escolhida" +msgid "Open Script" +msgstr "Abrir script" #: editor/script_create_dialog.cpp -msgid "Invalid Path" -msgstr "Caminho Inválido" +#, fuzzy +msgid "File exists, it will be reused." +msgstr "O arquivo existe, será reaproveitado" #: editor/script_create_dialog.cpp -msgid "Invalid class name" +#, fuzzy +msgid "Invalid class name." msgstr "Nome de classe inválido" #: editor/script_create_dialog.cpp -msgid "Invalid inherited parent name or path" +#, fuzzy +msgid "Invalid inherited parent name or path." msgstr "Nome ou caminho de pai herdado invláido" #: editor/script_create_dialog.cpp -msgid "Script valid" +#, fuzzy +msgid "Script is valid." msgstr "Script válido" #: editor/script_create_dialog.cpp @@ -8795,15 +10367,18 @@ msgid "Allowed: a-z, A-Z, 0-9 and _" msgstr "Permitidos: a-z, A-Z, 0-9 e _" #: editor/script_create_dialog.cpp -msgid "Built-in script (into scene file)" +#, fuzzy +msgid "Built-in script (into scene file)." msgstr "Script embutido (no arquivo da cena)" #: editor/script_create_dialog.cpp -msgid "Create new script file" +#, fuzzy +msgid "Will create a new script file." msgstr "Criar novo arquivo de script" #: editor/script_create_dialog.cpp -msgid "Load existing script file" +#, fuzzy +msgid "Will load an existing script file." msgstr "Carregar arquivo de script existente" #: editor/script_create_dialog.cpp @@ -8934,6 +10509,10 @@ msgstr "Edição de Root em tempo real:" msgid "Set From Tree" msgstr "Definir a partir da árvore" +#: editor/script_editor_debugger.cpp +msgid "Export measures as CSV" +msgstr "" + #: editor/settings_config_dialog.cpp msgid "Erase Shortcut" msgstr "Apagar Atalho" @@ -9063,6 +10642,15 @@ msgid "GDNativeLibrary" msgstr "GDNativeLibrary" #: 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 "Desabilitar Spinner de Atualização" + +#: modules/gdnative/gdnative_library_singleton_editor.cpp msgid "Library" msgstr "Biblioteca" @@ -9149,8 +10737,9 @@ msgid "GridMap Fill Selection" msgstr "Seleção de preenchimento GridMap" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "GridMap Duplicate Selection" -msgstr "Duplicar Seleção do GridMap" +#, fuzzy +msgid "GridMap Paste Selection" +msgstr "Excluir Seleção do Gridap" #: modules/gridmap/grid_map_editor_plugin.cpp msgid "GridMap Paint" @@ -9217,18 +10806,6 @@ msgid "Cursor Clear Rotation" msgstr "Limpar Rotação do Cursor" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Create Area" -msgstr "Criar Ãrea" - -#: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Create Exterior Connector" -msgstr "Criar Conector de Exterior" - -#: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Erase Area" -msgstr "Apagar Ãrea" - -#: modules/gridmap/grid_map_editor_plugin.cpp msgid "Clear Selection" msgstr "Limpar Seleção" @@ -9589,18 +11166,11 @@ msgid "Available Nodes:" msgstr "Nodes DisponÃveis:" #: modules/visual_script/visual_script_editor.cpp -msgid "Select or create a function to edit graph" +#, fuzzy +msgid "Select or create a function to edit its graph." msgstr "Selecione ou crie uma função para editar o grafo" #: modules/visual_script/visual_script_editor.cpp -msgid "Edit Signal Arguments:" -msgstr "Editar Argumentos do Sinal:" - -#: modules/visual_script/visual_script_editor.cpp -msgid "Edit Variable:" -msgstr "Editar Variável:" - -#: modules/visual_script/visual_script_editor.cpp msgid "Delete Selected" msgstr "Excluir Selecionados" @@ -9736,6 +11306,19 @@ msgstr "" "na predefinição." #: platform/android/export/export.cpp +msgid "Custom build requires a valid Android SDK path in Editor Settings." +msgstr "" + +#: platform/android/export/export.cpp +msgid "Invalid Android SDK path for custom build in Editor Settings." +msgstr "" + +#: platform/android/export/export.cpp +msgid "" +"Android project is not installed for compiling. Install from Editor menu." +msgstr "" + +#: platform/android/export/export.cpp msgid "Invalid public key for APK expansion." msgstr "Chave pública inválida para expansão de APK." @@ -9743,6 +11326,34 @@ msgstr "Chave pública inválida para expansão de APK." msgid "Invalid package name:" msgstr "Nome de pacote inválido:" +#: platform/android/export/export.cpp +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 "" +"Android build version mismatch:\n" +" Template installed: %s\n" +" Godot Version: %s\n" +"Please reinstall Android build template from 'Project' menu." +msgstr "" + +#: platform/android/export/export.cpp +msgid "Building Android Project (gradle)" +msgstr "" + +#: 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 "" + +#: platform/android/export/export.cpp +msgid "No build apk generated at: " +msgstr "" + #: platform/iphone/export/export.cpp msgid "Identifier is missing." msgstr "Identificador está ausente." @@ -10045,31 +11656,36 @@ msgid "ARVRCamera must have an ARVROrigin node as its parent" msgstr "ARVRCamera deve ter um nó ARVROrigin como seu pai" #: scene/3d/arvr_nodes.cpp -msgid "ARVRController must have an ARVROrigin node as its parent" +#, fuzzy +msgid "ARVRController must have an ARVROrigin node as its parent." msgstr "ARVRController deve ter um nó ARVROrigin como seu pai" #: scene/3d/arvr_nodes.cpp +#, fuzzy msgid "" -"The controller id must not be 0 or this controller will not be bound to an " -"actual controller" +"The controller ID must not be 0 or this controller won't be bound to an " +"actual controller." msgstr "" "A id do controle não deve ser 0 ou este controle não será atribuÃdo a um " "controle real" #: scene/3d/arvr_nodes.cpp -msgid "ARVRAnchor must have an ARVROrigin node as its parent" +#, fuzzy +msgid "ARVRAnchor must have an ARVROrigin node as its parent." msgstr "ARVRAnchor deve ter um nó ARVROrigin como seu pai" #: scene/3d/arvr_nodes.cpp +#, fuzzy msgid "" -"The anchor id must not be 0 or this anchor will not be bound to an actual " -"anchor" +"The anchor ID must not be 0 or this anchor won't be bound to an actual " +"anchor." msgstr "" "A id da âncora não deve ser 0 ou essa âncora não será atribuÃda a uma âncora " "geral" #: scene/3d/arvr_nodes.cpp -msgid "ARVROrigin requires an ARVRCamera child node" +#, fuzzy +msgid "ARVROrigin requires an ARVRCamera child node." msgstr "ARVROrigin necessita um nó ARVRCamera como filho" #: scene/3d/baked_lightmap.cpp @@ -10152,9 +11768,10 @@ msgid "Nothing is visible because no mesh has been assigned." msgstr "Nada é visÃvel porque nenhuma malha foi atribuÃda." #: scene/3d/cpu_particles.cpp +#, fuzzy msgid "" -"CPUParticles animation requires the usage of a SpatialMaterial with " -"\"Billboard Particles\" enabled." +"CPUParticles animation requires the usage of a SpatialMaterial whose " +"Billboard Mode is set to \"Particle Billboard\"." msgstr "" "A animação CPUParticles requer o uso de um SpatialMaterial com \"Billboard " "Particles\" ativado." @@ -10202,9 +11819,10 @@ msgstr "" "Nada está visÃvel porque as meshes não foram atribuÃdas a passes de desenho." #: scene/3d/particles.cpp +#, fuzzy msgid "" -"Particles animation requires the usage of a SpatialMaterial with \"Billboard " -"Particles\" enabled." +"Particles animation requires the usage of a SpatialMaterial whose Billboard " +"Mode is set to \"Particle Billboard\"." msgstr "" "A animação de partÃculas requer o uso de um SpatialMaterial com \"Billboard " "Particles\" ativado." @@ -10236,7 +11854,8 @@ msgid "Path property must point to a valid Spatial node to work." msgstr "A propriedade Caminho deve apontar para um nó Spatial para funcionar." #: scene/3d/soft_body.cpp -msgid "This body will be ignored until you set a mesh" +#, fuzzy +msgid "This body will be ignored until you set a mesh." msgstr "Este corpo será ignorado até você definir uma malha" #: scene/3d/soft_body.cpp @@ -10344,10 +11963,11 @@ msgid "Add current color as a preset." msgstr "Adicionar cor atual como uma predefinição." #: scene/gui/container.cpp +#, fuzzy msgid "" "Container by itself serves no purpose unless a script configures it's " "children placement behavior.\n" -"If you dont't intend to add a script, then please use a plain 'Control' node " +"If you don't intend to add a script, then please use a plain 'Control' node " "instead." msgstr "" "O contêiner por si só não serve para nada, a menos que um script configure " @@ -10363,10 +11983,6 @@ msgstr "Alerta!" msgid "Please Confirm..." msgstr "Confirme Por Favor..." -#: scene/gui/file_dialog.cpp -msgid "Go to parent folder." -msgstr "Ir para diretório (pasta) pai." - #: scene/gui/popup.cpp msgid "" "Popups will hide by default unless you call popup() or any of the popup*() " @@ -10451,6 +12067,76 @@ msgstr "Atribuição à uniforme." msgid "Varyings can only be assigned in vertex function." msgstr "Variáveis só podem ser atribuÃdas na função de vértice." +#: servers/visual/shader_language.cpp +msgid "Constants cannot be modified." +msgstr "" + +#~ msgid "Path to Node:" +#~ msgstr "Caminho para o Nó:" + +#~ msgid "Delete selected files?" +#~ msgstr "Excluir arquivos selecionados?" + +#~ msgid "There is no 'res://default_bus_layout.tres' file." +#~ msgstr "Não há nenhum arquivo 'res://default_bus_layout.tres'." + +#~ 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)" + +#~ msgid "Previous Directory" +#~ msgstr "Diretório Anterior" + +#~ msgid "Next Directory" +#~ msgstr "Próximo Diretório" + +#~ msgid "Ease in" +#~ msgstr "Suavizar inÃcio" + +#~ msgid "Ease out" +#~ msgstr "Suavizar final" + +#~ msgid "Create Convex Static Body" +#~ msgstr "Criar um Corpo Estático Convexo" + +#~ msgid "CheckBox Radio1" +#~ msgstr "CheckBox Rádio1" + +#~ msgid "CheckBox Radio2" +#~ msgstr "CheckBox Rádio2" + +#~ msgid "Create folder" +#~ msgstr "Criar Pasta" + +#~ msgid "Already existing" +#~ msgstr "Já existe" + +#~ msgid "Custom Node" +#~ msgstr "Nó personalizado" + +#~ msgid "Invalid Path" +#~ msgstr "Caminho Inválido" + +#~ msgid "GridMap Duplicate Selection" +#~ msgstr "Duplicar Seleção do GridMap" + +#~ msgid "Create Area" +#~ msgstr "Criar Ãrea" + +#~ msgid "Create Exterior Connector" +#~ msgstr "Criar Conector de Exterior" + +#~ msgid "Edit Signal Arguments:" +#~ msgstr "Editar Argumentos do Sinal:" + +#~ msgid "Edit Variable:" +#~ msgstr "Editar Variável:" + #~ msgid "Snap (s): " #~ msgstr "Snap (s): " @@ -10572,9 +12258,6 @@ msgstr "Variáveis só podem ser atribuÃdas na função de vértice." #~ msgid "Class List:" #~ msgstr "Lista de Classes:" -#~ msgid "Search Classes" -#~ msgstr "Pesquisar Classes" - #~ msgid "Public Methods" #~ msgstr "Métodos Públicos" @@ -10653,9 +12336,6 @@ msgstr "Variáveis só podem ser atribuÃdas na função de vértice." #~ msgid "Error:" #~ msgstr "Erro:" -#~ msgid "Source:" -#~ msgstr "Origem:" - #~ msgid "Function:" #~ msgstr "Função:" @@ -10677,21 +12357,9 @@ msgstr "Variáveis só podem ser atribuÃdas na função de vértice." #~ msgid "Get" #~ msgstr "Obter" -#~ msgid "Change Scalar Constant" -#~ msgstr "Alterar Constante Escalar" - -#~ msgid "Change Vec Constant" -#~ msgstr "Alterar Constante Vet" - #~ msgid "Change RGB Constant" #~ msgstr "Alterar Constante RGB" -#~ msgid "Change Scalar Operator" -#~ msgstr "Alterar Operador Escalar" - -#~ msgid "Change Vec Operator" -#~ msgstr "Alterar Operador Vet" - #~ msgid "Change Vec Scalar Operator" #~ msgstr "Alterar Operador Vet Escalar" @@ -10701,15 +12369,9 @@ msgstr "Variáveis só podem ser atribuÃdas na função de vértice." #~ msgid "Toggle Rot Only" #~ msgstr "Alternar Rotação Somente" -#~ msgid "Change Scalar Function" -#~ msgstr "Alterar Função Escalar" - #~ msgid "Change Vec Function" #~ msgstr "Alterar Função Vet" -#~ msgid "Change Scalar Uniform" -#~ msgstr "Alterar Uniforme Escalar" - #~ msgid "Change Vec Uniform" #~ msgstr "Alterar Uniforme Vet" @@ -10722,9 +12384,6 @@ msgstr "Variáveis só podem ser atribuÃdas na função de vértice." #~ msgid "Change XForm Uniform" #~ msgstr "Alterar Uniforme XForm" -#~ msgid "Change Texture Uniform" -#~ msgstr "Alterar Uniforme da Textura" - #~ msgid "Change Cubemap Uniform" #~ msgstr "Alterar Uniforme do Cubemap" @@ -10743,9 +12402,6 @@ msgstr "Variáveis só podem ser atribuÃdas na função de vértice." #~ msgid "Modify Curve Map" #~ msgstr "Modificar Curve Map" -#~ msgid "Change Input Name" -#~ msgstr "Alterar Nome da Entrada" - #~ msgid "Connect Graph Nodes" #~ msgstr "Conectar Nodes de Grafos" @@ -10773,9 +12429,6 @@ msgstr "Variáveis só podem ser atribuÃdas na função de vértice." #~ msgid "Add Shader Graph Node" #~ msgstr "Adicionar Nó de Shader Graph" -#~ msgid "Disabled" -#~ msgstr "Desabilitado" - #~ msgid "Move Anim Track Up" #~ msgstr "Mover Trilha para cima" @@ -10959,17 +12612,11 @@ msgstr "Variáveis só podem ser atribuÃdas na função de vértice." #~ msgid "Item name or ID:" #~ msgstr "Nome ou ID do item:" -#~ msgid "Autotiles" -#~ msgstr "Autotiles" - #~ msgid "Export templates for this platform are missing/corrupted: " #~ msgstr "" #~ "Modelos de exportação para esta plataforma não foram encontrados/estão " #~ "corrompidos: " -#~ msgid "Button 7" -#~ msgstr "Botão 7" - #~ msgid "Button 8" #~ msgstr "Botão 8" @@ -11856,9 +13503,6 @@ msgstr "Variáveis só podem ser atribuÃdas na função de vértice." #~ msgid "Project Export Settings" #~ msgstr "Configurações de Exportação de Projeto" -#~ msgid "Target" -#~ msgstr "Destino" - #~ msgid "Export to Platform" #~ msgstr "Exportar para Plataforma" @@ -11913,9 +13557,6 @@ msgstr "Variáveis só podem ser atribuÃdas na função de vértice." #~ msgid "Shrink By:" #~ msgstr "Encolher por:" -#~ msgid "Preview Atlas" -#~ msgstr "Prever Atlas" - #~ msgid "Images:" #~ msgstr "Imagens:" diff --git a/editor/translations/pt_PT.po b/editor/translations/pt_PT.po index f9e93885d9..d9af00c3c3 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-03-30 20:04+0000\n" +"PO-Revision-Date: 2019-06-16 19:42+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" @@ -27,7 +27,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 3.6-dev\n" +"X-Generator: Weblate 3.7-dev\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -82,6 +82,15 @@ msgstr "Equilibrado" msgid "Mirror" msgstr "Espelhar" +#: editor/animation_bezier_editor.cpp editor/editor_profiler.cpp +msgid "Time:" +msgstr "Tempo:" + +#: editor/animation_bezier_editor.cpp +#, fuzzy +msgid "Value:" +msgstr "Valor" + #: editor/animation_bezier_editor.cpp msgid "Insert Key Here" msgstr "Inserir Chave Aqui" @@ -164,14 +173,18 @@ msgid "Animation Playback Track" msgstr "Pista de Reprodução de Animação" #: editor/animation_track_editor.cpp -msgid "Add Track" -msgstr "Adicionar Pista" +msgid "Animation length (frames)" +msgstr "Duração da Animação (frames)" #: editor/animation_track_editor.cpp -msgid "Animation Length Time (seconds)" +msgid "Animation length (seconds)" msgstr "Duração da Animação (segundos)" #: editor/animation_track_editor.cpp +msgid "Add Track" +msgstr "Adicionar Pista" + +#: editor/animation_track_editor.cpp msgid "Animation Looping" msgstr "Loop da Animação" @@ -288,18 +301,20 @@ msgstr "Remover Pista de Animação" #: editor/animation_track_editor.cpp msgid "Create NEW track for %s and insert key?" -msgstr "Criar NOVA Pista para %s e inserir Chave?" +msgstr "Criar NOVA pista para %s e inserir chave?" #: editor/animation_track_editor.cpp msgid "Create %d NEW tracks and insert keys?" -msgstr "Criar %d NOVAS Pistas e inserir Chaves?" +msgstr "Criar %d NOVAS pistas e inserir chaves?" #: editor/animation_track_editor.cpp editor/create_dialog.cpp -#: editor/editor_audio_buses.cpp editor/editor_plugin_settings.cpp -#: editor/plugin_config_dialog.cpp +#: editor/editor_audio_buses.cpp editor/editor_feature_profile.cpp +#: editor/editor_plugin_settings.cpp editor/plugin_config_dialog.cpp #: editor/plugins/abstract_polygon_2d_editor.cpp #: editor/plugins/mesh_instance_editor_plugin.cpp -#: editor/plugins/particles_editor_plugin.cpp editor/script_create_dialog.cpp +#: editor/plugins/particles_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_create_dialog.cpp msgid "Create" msgstr "Criar" @@ -373,7 +388,7 @@ msgstr "Caminho da pista é inválido, não se consegue adicionar uma chave." #: editor/animation_track_editor.cpp msgid "Track is not of type Spatial, can't insert key" -msgstr "Pista não do tipo Spatial, não se consegue inserir chave" +msgstr "Pista não do tipo Spatial, impossÃvel inserir chave" #: editor/animation_track_editor.cpp msgid "Add Transform Track Key" @@ -385,8 +400,7 @@ msgstr "Adicionar Chave da Pista" #: editor/animation_track_editor.cpp msgid "Track path is invalid, so can't add a method key." -msgstr "" -"Caminho da pista é inválido, não se consegue adicionar uma chave método." +msgstr "Caminho da pista é inválido, impossÃvel adicionar uma chave método." #: editor/animation_track_editor.cpp msgid "Add Method Track Key" @@ -419,6 +433,23 @@ msgstr "" "Esta opção não funciona para edição de Bezier, dado que é uma única faixa." #: editor/animation_track_editor.cpp +msgid "" +"This animation belongs to an imported scene, so changes to imported tracks " +"will not be saved.\n" +"\n" +"To enable the ability to add custom tracks, navigate to the scene's import " +"settings and set\n" +"\"Animation > Storage\" to \"Files\", enable \"Animation > Keep Custom Tracks" +"\", then re-import.\n" +"Alternatively, use an import preset that imports animations to separate " +"files." +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Warning: Editing imported animation" +msgstr "" + +#: editor/animation_track_editor.cpp msgid "Only show tracks from nodes selected in tree." msgstr "Apenas mostrar faixas de nós selecionados na árvore." @@ -427,9 +458,8 @@ msgid "Group tracks by node or display them as plain list." msgstr "Agrupar faixas por nó ou exibi-las como lista simples." #: editor/animation_track_editor.cpp -#, fuzzy msgid "Snap:" -msgstr "Ajustar" +msgstr "Ajustar:" #: editor/animation_track_editor.cpp msgid "Animation step value." @@ -437,7 +467,7 @@ msgstr "Valor passo da Animação." #: editor/animation_track_editor.cpp msgid "Seconds" -msgstr "" +msgstr "Segundos" #: editor/animation_track_editor.cpp msgid "FPS" @@ -552,7 +582,8 @@ msgstr "Proporção de Escala:" msgid "Select tracks to copy:" msgstr "Selecionar pistas a copiar:" -#: editor/animation_track_editor.cpp editor/editor_properties.cpp +#: editor/animation_track_editor.cpp editor/editor_log.cpp +#: editor/editor_properties.cpp #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp @@ -620,6 +651,11 @@ msgstr "Substituir todos" msgid "Selection Only" msgstr "Apenas seleção" +#: editor/code_editor.cpp editor/plugins/script_text_editor.cpp +#: editor/plugins/text_editor.cpp +msgid "Standard" +msgstr "Padrão" + #: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/texture_region_editor_plugin.cpp #: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp @@ -645,21 +681,39 @@ msgid "Line and column numbers." msgstr "Números de Linha e Coluna." #: editor/connections_dialog.cpp -msgid "Method in target Node must be specified!" +#, fuzzy +msgid "Method in target node must be specified." msgstr "Método no Nó alvo deve ser especificado!" #: editor/connections_dialog.cpp +#, fuzzy msgid "" -"Target method not found! Specify a valid method or attach a script to target " -"Node." +"Target method not found. Specify a valid method or attach a script to the " +"target node." msgstr "" "Método alvo não encontrado! Especifique um Método válido ou anexe um Script " "ao Nó de destino." #: editor/connections_dialog.cpp -msgid "Connect To Node:" +#, fuzzy +msgid "Connect to Node:" msgstr "Conectar ao Nó:" +#: editor/connections_dialog.cpp +#, fuzzy +msgid "Connect to Script:" +msgstr "ImpossÃvel ligar ao host:" + +#: editor/connections_dialog.cpp +#, fuzzy +msgid "From Signal:" +msgstr "Sinais:" + +#: editor/connections_dialog.cpp +#, fuzzy +msgid "Scene does not contain any script." +msgstr "O Nó não contêm geometria." + #: editor/connections_dialog.cpp editor/editor_autoload_settings.cpp #: editor/groups_editor.cpp editor/plugins/item_list_editor_plugin.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_settings_editor.cpp @@ -667,10 +721,12 @@ msgid "Add" msgstr "Adicionar" #: editor/connections_dialog.cpp editor/dependency_editor.cpp -#: editor/groups_editor.cpp editor/plugins/animation_player_editor_plugin.cpp +#: editor/editor_feature_profile.cpp editor/groups_editor.cpp +#: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp #: editor/plugins/resource_preloader_editor_plugin.cpp -#: editor/plugins/theme_editor_plugin.cpp editor/project_manager.cpp +#: editor/plugins/theme_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_manager.cpp #: editor/project_settings_editor.cpp msgid "Remove" msgstr "Remover" @@ -684,21 +740,32 @@ msgid "Extra Call Arguments:" msgstr "Argumentos de chamada extra:" #: editor/connections_dialog.cpp -msgid "Path to Node:" -msgstr "Caminho para Nó:" - -#: editor/connections_dialog.cpp -msgid "Make Function" -msgstr "Criar Função" +#, fuzzy +msgid "Advanced" +msgstr "Opções Avançadas" #: editor/connections_dialog.cpp msgid "Deferred" msgstr "Deferido" #: editor/connections_dialog.cpp +msgid "" +"Defers the signal, storing it in a queue and only firing it at idle time." +msgstr "" + +#: editor/connections_dialog.cpp msgid "Oneshot" msgstr "Oneshot" +#: editor/connections_dialog.cpp +msgid "Disconnects the signal after its first emission." +msgstr "" + +#: editor/connections_dialog.cpp +#, fuzzy +msgid "Cannot connect signal" +msgstr "Conectar sinal: " + #: editor/connections_dialog.cpp editor/dependency_editor.cpp #: editor/export_template_manager.cpp editor/groups_editor.cpp #: editor/plugins/animation_player_editor_plugin.cpp @@ -739,11 +806,13 @@ msgid "Disconnect" msgstr "Desligar" #: editor/connections_dialog.cpp -msgid "Connect Signal: " +#, fuzzy +msgid "Connect a Signal to a Method" msgstr "Conectar sinal: " #: editor/connections_dialog.cpp -msgid "Edit Connection: " +#, fuzzy +msgid "Edit Connection:" msgstr "Editar Conexão: " #: editor/connections_dialog.cpp @@ -775,7 +844,6 @@ msgid "Change %s Type" msgstr "Mudar tipo %s" #: editor/create_dialog.cpp editor/project_settings_editor.cpp -#: modules/visual_script/visual_script_editor.cpp msgid "Change" msgstr "Mudar" @@ -806,7 +874,8 @@ msgid "Matches:" msgstr "Correspondências:" #: editor/create_dialog.cpp editor/plugin_config_dialog.cpp -#: editor/plugins/asset_library_editor_plugin.cpp editor/property_selector.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/property_selector.cpp #: modules/visual_script/visual_script_property_selector.cpp msgid "Description:" msgstr "Descrição:" @@ -820,17 +889,19 @@ msgid "Dependencies For:" msgstr "Dependências para:" #: editor/dependency_editor.cpp +#, fuzzy msgid "" "Scene '%s' is currently being edited.\n" -"Changes will not take effect unless reloaded." +"Changes will only take effect when reloaded." msgstr "" "A Cena '%s' está a ser editada.\n" "As alterações não terão efeito até recarregar." #: editor/dependency_editor.cpp +#, fuzzy msgid "" "Resource '%s' is in use.\n" -"Changes will take effect when reloaded." +"Changes will only take effect when reloaded." msgstr "" "Recurso '%s' em uso.\n" "Alterações terão efeito após reinÃcio." @@ -926,21 +997,14 @@ msgid "Permanently delete %d item(s)? (No undo!)" msgstr "Apagar permanentemente %d itens? (Sem desfazer!)" #: editor/dependency_editor.cpp -msgid "Owns" -msgstr "Possui" - -#: editor/dependency_editor.cpp -msgid "Resources Without Explicit Ownership:" -msgstr "Recursos sem posse explÃcita:" +#, fuzzy +msgid "Show Dependencies" +msgstr "Dependências" #: editor/dependency_editor.cpp editor/editor_node.cpp msgid "Orphan Resource Explorer" msgstr "Explorador de Recursos Órfãos" -#: editor/dependency_editor.cpp -msgid "Delete selected files?" -msgstr "Apagar arquivos selecionados?" - #: editor/dependency_editor.cpp editor/editor_audio_buses.cpp #: editor/editor_file_dialog.cpp editor/editor_node.cpp #: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp @@ -949,6 +1013,14 @@ msgstr "Apagar arquivos selecionados?" msgid "Delete" msgstr "Apagar" +#: editor/dependency_editor.cpp +msgid "Owns" +msgstr "Possui" + +#: editor/dependency_editor.cpp +msgid "Resources Without Explicit Ownership:" +msgstr "Recursos sem posse explÃcita:" + #: editor/dictionary_property_edit.cpp msgid "Change Dictionary Key" msgstr "Mudar Chave de Dicionário" @@ -1062,7 +1134,7 @@ msgstr "Pacote Instalado com sucesso!" msgid "Success!" msgstr "Sucesso!" -#: editor/editor_asset_installer.cpp +#: editor/editor_asset_installer.cpp editor/editor_node.cpp #: editor/plugins/asset_library_editor_plugin.cpp msgid "Install" msgstr "Instalar" @@ -1189,8 +1261,12 @@ msgid "Open Audio Bus Layout" msgstr "Abrir Modelo de barramento de áudio" #: editor/editor_audio_buses.cpp -msgid "There is no 'res://default_bus_layout.tres' file." -msgstr "O Ficheiro 'res://default_bus_layout.tres' não existe." +msgid "There is no '%s' file." +msgstr "" + +#: editor/editor_audio_buses.cpp editor/plugins/canvas_item_editor_plugin.cpp +msgid "Layout" +msgstr "Esquema" #: editor/editor_audio_buses.cpp msgid "Invalid file, not an audio bus layout." @@ -1243,24 +1319,31 @@ msgid "Valid characters:" msgstr "Carateres válidos:" #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing engine class name." +#, fuzzy +msgid "Must not collide with an existing engine class name." msgstr "" "Nome inválido. Não pode coincidir com um nome de classe do motor já " "existente." #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing buit-in type name." +#, fuzzy +msgid "Must not collide with an existing buit-in type name." msgstr "" "Nome inválido. Não pode coincidir com um nome de um tipo incorporado, já " "existente." #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing global constant name." +#, fuzzy +msgid "Must not collide with an existing global constant name." msgstr "" "Nome inválido. Não pode coincidir com um nome de uma constante global, já " "existente." #: editor/editor_autoload_settings.cpp +msgid "Keyword cannot be used as an autoload name." +msgstr "" + +#: editor/editor_autoload_settings.cpp msgid "Autoload '%s' already exists!" msgstr "Carregamento Automático '%s' já existe!" @@ -1288,11 +1371,12 @@ msgstr "Ativar" msgid "Rearrange Autoloads" msgstr "Reorganizar Carregamentos Automáticos" -#: editor/editor_autoload_settings.cpp -msgid "Invalid Path." +#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp +#, fuzzy +msgid "Invalid path." msgstr "Caminho inválido." -#: editor/editor_autoload_settings.cpp +#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp msgid "File does not exist." msgstr "O Ficheiro não existe." @@ -1343,7 +1427,8 @@ msgid "[unsaved]" msgstr "[não guardado]" #: editor/editor_dir_dialog.cpp -msgid "Please select a base directory first" +#, fuzzy +msgid "Please select a base directory first." msgstr "Por favor, selecione a diretoria base primeiro" #: editor/editor_dir_dialog.cpp @@ -1351,7 +1436,8 @@ msgid "Choose a Directory" msgstr "Escolha uma Diretoria" #: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp -#: editor/filesystem_dock.cpp scene/gui/file_dialog.cpp +#: editor/filesystem_dock.cpp editor/project_manager.cpp +#: scene/gui/file_dialog.cpp msgid "Create Folder" msgstr "Criar Pasta" @@ -1427,6 +1513,178 @@ msgstr "Modelo de lançamento personalizado não encontrado." msgid "Template file not found:" msgstr "Ficheiro Modelo não encontrado:" +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "3D Editor" +msgstr "Editor" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Script Editor" +msgstr "Abrir Editor de Scripts" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Asset Library" +msgstr "Abrir Biblioteca de Ativos" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Scene Tree Editing" +msgstr "Ãrvore de Cena (Nós):" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Import Dock" +msgstr "Importar" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Node Dock" +msgstr "Nó Movido" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Filesystem Dock" +msgstr "Sistema de Ficheiros" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Erase profile '%s'? (no undo)" +msgstr "Substituir tudo (não há desfazer)" + +#: editor/editor_feature_profile.cpp +msgid "Profile must be a valid filename and must not contain '.'" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Profile with this name already exists." +msgstr "Um Ficheiro ou diretoria já existe com este nome." + +#: editor/editor_feature_profile.cpp +msgid "(Editor Disabled, Properties Disabled)" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "(Properties Disabled)" +msgstr "Apenas Propriedades" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "(Editor Disabled)" +msgstr "Recorte desativado" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Class Options:" +msgstr "Descrição da Classe:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enable Contextual Editor" +msgstr "Abrir o Editor seguinte" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enabled Properties:" +msgstr "Propriedades:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enabled Features:" +msgstr "CaracterÃsticas" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enabled Classes:" +msgstr "Procurar Classes" + +#: editor/editor_feature_profile.cpp +msgid "File '%s' format is invalid, import aborted." +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "" +"Profile '%s' already exists. Remote it first before importing, import " +"aborted." +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Error saving profile to path: '%s'." +msgstr "Erro ao carregar Modelo '%s'" + +#: editor/editor_feature_profile.cpp +msgid "Unset" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Current Profile" +msgstr "Versão Atual:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Make Current" +msgstr "Atual:" + +#: editor/editor_feature_profile.cpp +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "New" +msgstr "Novo" + +#: editor/editor_feature_profile.cpp editor/editor_node.cpp +#: editor/plugins/asset_library_editor_plugin.cpp editor/project_manager.cpp +msgid "Import" +msgstr "Importar" + +#: editor/editor_feature_profile.cpp editor/editor_node.cpp +#: editor/project_export.cpp +msgid "Export" +msgstr "Exportar" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Available Profiles" +msgstr "Nós DisponÃveis:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enabled Classes" +msgstr "Procurar Classes" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Class Options" +msgstr "Descrição da Classe" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "New profile name:" +msgstr "Novo nome:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Erase Profile" +msgstr "Apagar Ãrea" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Import Profile(s)" +msgstr "Projeto importado" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Export Profile" +msgstr "Exportar Projeto" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Manage Editor Feature Profiles" +msgstr "Gerir Modelos de Exportação" + #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Select Current Folder" msgstr "Selecionar pasta atual" @@ -1447,8 +1705,8 @@ msgstr "Copiar Caminho" msgid "Open in File Manager" msgstr "Abrir no Gestor de Ficheiros" -#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp -#: editor/project_manager.cpp +#: editor/editor_file_dialog.cpp editor/editor_node.cpp +#: editor/filesystem_dock.cpp editor/project_manager.cpp msgid "Show in File Manager" msgstr "Mostrar no Gestor de Ficheiros" @@ -1507,7 +1765,7 @@ msgstr "Avançar" msgid "Go Up" msgstr "Subir" -#: editor/editor_file_dialog.cpp +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Toggle Hidden Files" msgstr "Alternar Ficheiros escondidos" @@ -1539,14 +1797,19 @@ msgstr "Pasta Anterior" msgid "Next Folder" msgstr "Próxima Pasta" -#: editor/editor_file_dialog.cpp -msgid "Go to parent folder" -msgstr "Ir para a pasta acima" +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp +msgid "Go to parent folder." +msgstr "Ir para a pasta acima." #: editor/editor_file_dialog.cpp msgid "(Un)favorite current folder." msgstr "(Não) tornar favorita atual pasta." +#: editor/editor_file_dialog.cpp +#, fuzzy +msgid "Toggle visibility of hidden files." +msgstr "Alternar Ficheiros escondidos" + #: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp msgid "View items as a grid of thumbnails." msgstr "Visualizar itens como grelha de miniaturas." @@ -1561,6 +1824,7 @@ msgstr "Diretorias e Ficheiros:" #: editor/editor_file_dialog.cpp editor/plugins/sprite_editor_plugin.cpp #: editor/plugins/style_box_editor_plugin.cpp +#: editor/plugins/theme_editor_plugin.cpp msgid "Preview:" msgstr "Visualização prévia:" @@ -1577,6 +1841,12 @@ msgid "ScanSources" msgstr "Analisar fontes" #: editor/editor_file_system.cpp +msgid "" +"There are multiple importers for different types pointing to file %s, import " +"aborted" +msgstr "" + +#: editor/editor_file_system.cpp msgid "(Re)Importing Assets" msgstr "A (Re)Importar Ativos" @@ -1759,6 +2029,10 @@ msgstr "Definir Múltiplo:" msgid "Output:" msgstr "SaÃda:" +#: editor/editor_log.cpp editor/plugins/tile_map_editor_plugin.cpp +msgid "Copy Selection" +msgstr "Copiar Seleção" + #: editor/editor_log.cpp editor/editor_profiler.cpp #: editor/editor_properties.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp @@ -1915,9 +2189,10 @@ msgstr "" "melhor entendimento deste fluxo de trabalho." #: editor/editor_node.cpp +#, fuzzy msgid "" "This resource belongs to a scene that was instanced or inherited.\n" -"Changes to it will not be kept when saving the current scene." +"Changes to it won't be kept when saving the current scene." msgstr "" "Este recurso pertence a uma Cena que foi instanciada ou herdada.\n" "As alterações ao mesmo não serão mantidas, ao guardar a Cena atual." @@ -1931,8 +2206,9 @@ msgstr "" "configurações no painel de importação e então importe de novo." #: editor/editor_node.cpp +#, fuzzy msgid "" -"This scene was imported, so changes to it will not be kept.\n" +"This scene was imported, so changes to it won't be kept.\n" "Instancing it or inheriting will allow making changes to it.\n" "Please read the documentation relevant to importing scenes to better " "understand this workflow." @@ -1944,8 +2220,9 @@ msgstr "" "melhor entendimento do fluxo de trabalho." #: editor/editor_node.cpp +#, fuzzy msgid "" -"This is a remote object so changes to it will not be kept.\n" +"This is a remote object, so changes to it won't be kept.\n" "Please read the documentation relevant to debugging to better understand " "this workflow." msgstr "" @@ -1959,37 +2236,6 @@ msgid "There is no defined scene to run." msgstr "Não existe nenhuma Cena definida para executar." #: editor/editor_node.cpp -msgid "" -"No main scene has ever been defined, select one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" -"Não foi definida nenhuma Cena principal. Selecionar uma?\n" -"Poderá alterá-la depois nas \"Definições do Projeto\", na categoria " -"'aplicação'." - -#: editor/editor_node.cpp -msgid "" -"Selected scene '%s' does not exist, select a valid one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" -"A Cena selecionada '%s' não existe, selecionar uma válida?\n" -"Poderá alterá-la depois em \"Configurações de Projeto\", na categoria de " -"'aplicação'." - -#: editor/editor_node.cpp -msgid "" -"Selected scene '%s' is not a scene file, select a valid one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" -"A Cena selecionada '%s' não é um Ficheiro de Cena, selecione um Ficheiro " -"válido?\n" -"Poderá alterá-la depois em \"Configurações de Projeto\", na categoria " -"'aplicação'." - -#: editor/editor_node.cpp msgid "Current scene was never saved, please save it prior to running." msgstr "A Cena atual nunca foi guardada, por favor guarde-a antes de executar." @@ -1997,7 +2243,7 @@ msgstr "A Cena atual nunca foi guardada, por favor guarde-a antes de executar." msgid "Could not start subprocess!" msgstr "Não foi possÃvel iniciar o subprocesso!" -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/filesystem_dock.cpp msgid "Open Scene" msgstr "Abrir Cena" @@ -2006,6 +2252,11 @@ msgid "Open Base Scene" msgstr "Abrir Cena Base" #: editor/editor_node.cpp +#, fuzzy +msgid "Quick Open..." +msgstr "Abrir Cena de forma rápida..." + +#: editor/editor_node.cpp msgid "Quick Open Scene..." msgstr "Abrir Cena de forma rápida..." @@ -2181,6 +2432,37 @@ msgid "Clear Recent Scenes" msgstr "Limpar Cenas Recentes" #: editor/editor_node.cpp +msgid "" +"No main scene has ever been defined, select one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" +"Não foi definida nenhuma Cena principal. Selecionar uma?\n" +"Poderá alterá-la depois nas \"Definições do Projeto\", na categoria " +"'aplicação'." + +#: editor/editor_node.cpp +msgid "" +"Selected scene '%s' does not exist, select a valid one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" +"A Cena selecionada '%s' não existe, selecionar uma válida?\n" +"Poderá alterá-la depois em \"Configurações de Projeto\", na categoria de " +"'aplicação'." + +#: editor/editor_node.cpp +msgid "" +"Selected scene '%s' is not a scene file, select a valid one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" +"A Cena selecionada '%s' não é um Ficheiro de Cena, selecione um Ficheiro " +"válido?\n" +"Poderá alterá-la depois em \"Configurações de Projeto\", na categoria " +"'aplicação'." + +#: editor/editor_node.cpp msgid "Save Layout" msgstr "Guardar Modelo" @@ -2206,6 +2488,19 @@ msgstr "Executar esta Cena" msgid "Close Tab" msgstr "Fechar Separador" +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +msgid "Close Other Tabs" +msgstr "Fechar outros separadores" + +#: editor/editor_node.cpp +msgid "Close Tabs to the Right" +msgstr "" + +#: editor/editor_node.cpp +#, fuzzy +msgid "Close All Tabs" +msgstr "Fechar tudo" + #: editor/editor_node.cpp msgid "Switch Scene Tab" msgstr "Trocar Tab de Cena" @@ -2328,10 +2623,6 @@ msgstr "Projeto" msgid "Project Settings" msgstr "Configurações de Projeto" -#: editor/editor_node.cpp editor/project_export.cpp -msgid "Export" -msgstr "Exportar" - #: editor/editor_node.cpp editor/plugins/tile_set_editor_plugin.cpp msgid "Tools" msgstr "Ferramentas" @@ -2341,6 +2632,10 @@ msgid "Open Project Data Folder" msgstr "Abrir Pasta de Dados do Projeto" #: editor/editor_node.cpp +msgid "Install Android Build Template" +msgstr "" + +#: editor/editor_node.cpp msgid "Quit to Project List" msgstr "Sair para a lista de Projetos" @@ -2463,6 +2758,11 @@ msgstr "Abrir Pasta de Dados do Editor" msgid "Open Editor Settings Folder" msgstr "Abrir Pasta de Configurações do Editor" +#: editor/editor_node.cpp +#, fuzzy +msgid "Manage Editor Features" +msgstr "Gerir Modelos de Exportação" + #: editor/editor_node.cpp editor/project_export.cpp msgid "Manage Export Templates" msgstr "Gerir Modelos de Exportação" @@ -2475,6 +2775,7 @@ msgstr "Ajuda" #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp #: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp #: editor/project_settings_editor.cpp editor/rename_dialog.cpp msgid "Search" msgstr "Procurar" @@ -2564,11 +2865,6 @@ msgstr "Atualizar Alterações" msgid "Disable Update Spinner" msgstr "Desativar a roleta de atualização" -#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp -#: editor/project_manager.cpp -msgid "Import" -msgstr "Importar" - #: editor/editor_node.cpp msgid "FileSystem" msgstr "Sistema de Ficheiros" @@ -2594,6 +2890,28 @@ msgid "Don't Save" msgstr "Não Guardar" #: editor/editor_node.cpp +msgid "Android build template is missing, please install relevant templates." +msgstr "" + +#: editor/editor_node.cpp +#, fuzzy +msgid "Manage Templates" +msgstr "Gerir Modelos de Exportação" + +#: editor/editor_node.cpp +msgid "" +"This will install the Android project for custom builds.\n" +"Note that, in order to use it, it needs to be enabled per export preset." +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"Android build template is already installed and it won't be overwritten.\n" +"Remove the \"build\" directory manually before attempting this operation " +"again." +msgstr "" + +#: editor/editor_node.cpp msgid "Import Templates From ZIP File" msgstr "Importar Modelos a partir de um Ficheiro ZIP" @@ -2716,10 +3034,6 @@ msgid "Physics Frame %" msgstr "% Quadro de FÃsica" #: editor/editor_profiler.cpp -msgid "Time:" -msgstr "Tempo:" - -#: editor/editor_profiler.cpp msgid "Inclusive" msgstr "Inclusivo" @@ -2846,7 +3160,7 @@ msgstr "Página: " #: editor/editor_properties_array_dict.cpp msgid "New Key:" -msgstr "Novo Chave:" +msgstr "Nova Chave:" #: editor/editor_properties_array_dict.cpp msgid "New Value:" @@ -2862,10 +3176,6 @@ msgid "Remove Item" msgstr "Remover item" #: editor/editor_run_native.cpp -msgid "Select device from the list" -msgstr "Selecionar dispositivo da lista" - -#: editor/editor_run_native.cpp msgid "" "No runnable export preset found for this platform.\n" "Please add a runnable preset in the export menu." @@ -2901,6 +3211,10 @@ msgstr "Esqueceu-se do médodo '_run'?" msgid "Select Node(s) to Import" msgstr "Selecionar Nó(s) para importar" +#: editor/editor_sub_scene.cpp editor/project_manager.cpp +msgid "Browse" +msgstr "Navegar" + #: editor/editor_sub_scene.cpp msgid "Scene Path:" msgstr "Caminho da Cena:" @@ -3067,6 +3381,11 @@ msgid "SSL Handshake Error" msgstr "Erro SSL Handshake" #: editor/export_template_manager.cpp +#, fuzzy +msgid "Uncompressing Android Build Sources" +msgstr "A descompactar Ativos" + +#: editor/export_template_manager.cpp msgid "Current Version:" msgstr "Versão Atual:" @@ -3083,7 +3402,8 @@ msgid "Remove Template" msgstr "Remover Modelo" #: editor/export_template_manager.cpp -msgid "Select template file" +#, fuzzy +msgid "Select Template File" msgstr "Selecionar Ficheiro de Modelo" #: editor/export_template_manager.cpp @@ -3143,7 +3463,8 @@ msgid "No name provided." msgstr "Nome não fornecido." #: editor/filesystem_dock.cpp -msgid "Provided name contains invalid characters" +#, fuzzy +msgid "Provided name contains invalid characters." msgstr "O nome contém carateres inválidos" #: editor/filesystem_dock.cpp @@ -3171,19 +3492,27 @@ msgid "Duplicating folder:" msgstr "A duplicar Diretoria:" #: editor/filesystem_dock.cpp -msgid "Open Scene(s)" -msgstr "Abrir Cena(s)" +#, fuzzy +msgid "New Inherited Scene" +msgstr "Nova Cena Herdada..." + +#: editor/filesystem_dock.cpp +#, fuzzy +msgid "Open Scenes" +msgstr "Abrir Cena" #: editor/filesystem_dock.cpp msgid "Instance" msgstr "Instância" #: editor/filesystem_dock.cpp -msgid "Add to favorites" +#, fuzzy +msgid "Add to Favorites" msgstr "Adicionar aos Favoritos" #: editor/filesystem_dock.cpp -msgid "Remove from favorites" +#, fuzzy +msgid "Remove from Favorites" msgstr "Remover dos Favoritos" #: editor/filesystem_dock.cpp @@ -3214,11 +3543,13 @@ msgstr "Novo Script..." msgid "New Resource..." msgstr "Novo Recurso..." -#: editor/filesystem_dock.cpp editor/script_editor_debugger.cpp +#: editor/filesystem_dock.cpp editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_editor_debugger.cpp msgid "Expand All" msgstr "Expandir Tudo" -#: editor/filesystem_dock.cpp editor/script_editor_debugger.cpp +#: editor/filesystem_dock.cpp editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_editor_debugger.cpp msgid "Collapse All" msgstr "Colapsar Tudo" @@ -3230,19 +3561,22 @@ msgid "Rename" msgstr "Renomear" #: editor/filesystem_dock.cpp -msgid "Previous Directory" -msgstr "Diretoria anterior" +#, fuzzy +msgid "Previous Folder/File" +msgstr "Pasta Anterior" #: editor/filesystem_dock.cpp -msgid "Next Directory" -msgstr "Diretoria seguinte" +#, fuzzy +msgid "Next Folder/File" +msgstr "Próxima Pasta" #: editor/filesystem_dock.cpp msgid "Re-Scan Filesystem" msgstr "Carregar novamente o Sistema de Ficheiros" #: editor/filesystem_dock.cpp -msgid "Toggle split mode" +#, fuzzy +msgid "Toggle Split Mode" msgstr "Alternar modo de divisão" #: editor/filesystem_dock.cpp @@ -3273,7 +3607,7 @@ msgstr "Sobrescrever" msgid "Create Script" msgstr "Criar Script" -#: editor/find_in_files.cpp +#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp msgid "Find in Files" msgstr "Localizar em Ficheiros" @@ -3289,6 +3623,12 @@ msgstr "Pasta:" msgid "Filters:" msgstr "Filtros:" +#: editor/find_in_files.cpp +msgid "" +"Include the files with the following extensions. Add or remove them in " +"ProjectSettings." +msgstr "" + #: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp msgid "Find..." @@ -3725,7 +4065,8 @@ msgid "Open Animation Node" msgstr "Abrir Nó Animação" #: editor/plugins/animation_blend_space_2d_editor.cpp -msgid "Triangle already exists" +#, fuzzy +msgid "Triangle already exists." msgstr "Já existe triângulo" #: editor/plugins/animation_blend_space_2d_editor.cpp @@ -3800,7 +4141,6 @@ msgid "Node Moved" msgstr "Nó Movido" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Unable to connect, port may be in use or connection may be invalid." msgstr "" "Incapaz de conectar, porta pode estar em uso ou conexão pode ser inválida." @@ -3873,7 +4213,8 @@ msgid "Edit Filtered Tracks:" msgstr "Editar Pistas Filtradas:" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -msgid "Enable filtering" +#, fuzzy +msgid "Enable Filtering" msgstr "Ativar filtragem" #: editor/plugins/animation_player_editor_plugin.cpp @@ -3989,10 +4330,6 @@ msgid "Animation" msgstr "Animação" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "New" -msgstr "Novo" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Edit Transitions..." msgstr "Editar Transições..." @@ -4009,14 +4346,15 @@ msgid "Autoplay on Load" msgstr "Reprodução automática no carregamento" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Onion Skinning" -msgstr "Onion Skinning" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Enable Onion Skinning" msgstr "Ativar Onion Skinning" #: editor/plugins/animation_player_editor_plugin.cpp +#, fuzzy +msgid "Onion Skinning Options" +msgstr "Onion Skinning" + +#: editor/plugins/animation_player_editor_plugin.cpp msgid "Directions" msgstr "Direções" @@ -4562,10 +4900,6 @@ msgid "Move CanvasItem" msgstr "Mover CanvasItem" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Presets for the anchors and margins values of a Control node." -msgstr "Pré-definições para âncoras e margens de um Nó Control." - -#: editor/plugins/canvas_item_editor_plugin.cpp msgid "" "Children of containers have their anchors and margins values overridden by " "their parent." @@ -4574,6 +4908,16 @@ msgstr "" "pai." #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Presets for the anchors and margins values of a Control node." +msgstr "Pré-definições para âncoras e margens de um Nó Control." + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"When active, moving Control nodes changes their anchors instead of their " +"margins." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Anchors only" msgstr "Só âncoras" @@ -4586,10 +4930,52 @@ msgid "Change Anchors" msgstr "Mudar âncoras" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Lock Selected" +msgstr "Seleção de ferramenta" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Unlock Selected" +msgstr "Apagar Selecionados" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Group Selected" +msgstr "Copiar Seleção" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Ungroup Selected" +msgstr "Copiar Seleção" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Paste Pose" msgstr "Colar Pose" #: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Create Custom Bone(s) from Node(s)" +msgstr "Fazer Osso(s) Personalizados a partis de Nó(s)" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Clear Bones" +msgstr "Limpar pose" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Make IK Chain" +msgstr "Criar corrente IK" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Clear IK Chain" +msgstr "Apagar corrente IK" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "" "Warning: Children of a container get their position and size determined only " "by their parent." @@ -4666,7 +5052,8 @@ msgid "Snapping Options" msgstr "Opções de Ajuste" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to grid" +#, fuzzy +msgid "Snap to Grid" msgstr "Ajustar à grelha" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4687,31 +5074,38 @@ msgid "Use Pixel Snap" msgstr "Usar Ajuste de Pixel" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Smart snapping" +#, fuzzy +msgid "Smart Snapping" msgstr "Ajuste inteligente" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to parent" +#, fuzzy +msgid "Snap to Parent" msgstr "Ajustar ao parente" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node anchor" +#, fuzzy +msgid "Snap to Node Anchor" msgstr "Ajustar ao Nó âncora" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node sides" +#, fuzzy +msgid "Snap to Node Sides" msgstr "Ajustar aos lados do Nó" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node center" +#, fuzzy +msgid "Snap to Node Center" msgstr "Ajustar ao centro do Nó" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to other nodes" +#, fuzzy +msgid "Snap to Other Nodes" msgstr "Ajustar a outros Nós" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to guides" +#, fuzzy +msgid "Snap to Guides" msgstr "Ajustar à s guias" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4725,10 +5119,12 @@ msgid "Unlock the selected object (can be moved)." msgstr "Desbloquear o Objeto selecionado (pode ser movido)." #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Makes sure the object's children are not selectable." msgstr "Assegura que os Objetos-filho não são selecionáveis." #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Restores the object's children's ability to be selected." msgstr "Restaura a capacidade de selecionar os Objetos-filho." @@ -4741,14 +5137,6 @@ msgid "Show Bones" msgstr "Mostrar ossos" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Make IK Chain" -msgstr "Criar corrente IK" - -#: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Clear IK Chain" -msgstr "Apagar corrente IK" - -#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Make Custom Bone(s) from Node(s)" msgstr "Fazer Osso(s) Personalizados a partis de Nó(s)" @@ -4799,25 +5187,24 @@ msgid "Frame Selection" msgstr "Emoldurar seleção" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Layout" -msgstr "Esquema" +msgid "Preview Canvas Scale" +msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Translation mask for inserting keys." -msgstr "" +msgstr "Máscara de translação para inserir chaves." #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Rotation mask for inserting keys." -msgstr "" +msgstr "Máscara de rotação para inserir chaves." #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Scale mask for inserting keys." -msgstr "" +msgstr "Máscara de escala para inserir chaves." #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Insert keys (based on mask)." -msgstr "Inserir Chave (Pistas existentes)" +msgstr "Inserir chaves (baseado na máscara)." #: editor/plugins/canvas_item_editor_plugin.cpp msgid "" @@ -4826,11 +5213,15 @@ msgid "" "Keys are only added to existing tracks, no new tracks will be created.\n" "Keys must be inserted manually for the first time." msgstr "" +"Insere chaves automaticamente quando objetos são movidos, rodados ou " +"redimensionados (baseado na máscara).\n" +"Chaves apenas são adicionadas a pistas existentes, não sendo criadas novas " +"pistas.\n" +"Chaves têm de ser inseridas manualmente na primeira vez." #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Auto Insert Key" -msgstr "Anim Inserir Chave" +msgstr "Inserir Chave automaticamente" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Insert Key (Existing Tracks)" @@ -4853,6 +5244,11 @@ msgid "Divide grid step by 2" msgstr "Dividir passo da grelha por 2" #: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Pan View" +msgstr "Vista de trás" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Add %s" msgstr "Adicionar %s" @@ -4875,7 +5271,8 @@ msgid "Error instancing scene from %s" msgstr "Erro a instanciar Cena de %s" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Change default type" +#, fuzzy +msgid "Change Default Type" msgstr "Mudar tipo padrão" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4963,20 +5360,22 @@ msgid "Create Emission Points From Node" msgstr "Criar Pontos de emissão a partir do Nó" #: editor/plugins/curve_editor_plugin.cpp -msgid "Flat0" +#, fuzzy +msgid "Flat 0" msgstr "Flat0" #: editor/plugins/curve_editor_plugin.cpp -msgid "Flat1" +#, fuzzy +msgid "Flat 1" msgstr "Flat1" -#: editor/plugins/curve_editor_plugin.cpp -msgid "Ease in" -msgstr "Ease in" +#: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp +msgid "Ease In" +msgstr "Ease In" -#: editor/plugins/curve_editor_plugin.cpp -msgid "Ease out" -msgstr "Ease out" +#: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp +msgid "Ease Out" +msgstr "Ease Out" #: editor/plugins/curve_editor_plugin.cpp msgid "Smoothstep" @@ -4995,23 +5394,28 @@ msgid "Load Curve Preset" msgstr "Carregar curva predefinida" #: editor/plugins/curve_editor_plugin.cpp -msgid "Add point" +#, fuzzy +msgid "Add Point" msgstr "Adicionar Ponto" #: editor/plugins/curve_editor_plugin.cpp -msgid "Remove point" +#, fuzzy +msgid "Remove Point" msgstr "Remover Ponto" #: editor/plugins/curve_editor_plugin.cpp -msgid "Left linear" +#, fuzzy +msgid "Left Linear" msgstr "Linear esquerda" #: editor/plugins/curve_editor_plugin.cpp -msgid "Right linear" +#, fuzzy +msgid "Right Linear" msgstr "Linear direita" #: editor/plugins/curve_editor_plugin.cpp -msgid "Load preset" +#, fuzzy +msgid "Load Preset" msgstr "Carregar predefinição" #: editor/plugins/curve_editor_plugin.cpp @@ -5067,11 +5471,17 @@ msgid "This doesn't work on scene root!" msgstr "Não funciona na raiz da Cena!" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Trimesh Shape" +#, fuzzy +msgid "Create Trimesh Static Shape" msgstr "Criar forma Trimesh" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Shape" +msgid "Failed creating shapes!" +msgstr "" + +#: editor/plugins/mesh_instance_editor_plugin.cpp +#, fuzzy +msgid "Create Convex Shape(s)" msgstr "Criar forma convexa" #: editor/plugins/mesh_instance_editor_plugin.cpp @@ -5124,15 +5534,12 @@ msgid "Create Trimesh Static Body" msgstr "Criar corpo estático Trimesh" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Static Body" -msgstr "Criar corpo estático convexo" - -#: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Trimesh Collision Sibling" msgstr "Criar irmão de colisão Trimesh" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Collision Sibling" +#, fuzzy +msgid "Create Convex Collision Sibling(s)" msgstr "Criar irmão de colisão convexa" #: editor/plugins/mesh_instance_editor_plugin.cpp @@ -5286,6 +5693,11 @@ msgid "Create Navigation Polygon" msgstr "Criar PolÃgono de navegação" #: editor/plugins/particles_2d_editor_plugin.cpp +#: editor/plugins/particles_editor_plugin.cpp +msgid "Convert to CPUParticles" +msgstr "Converter em CPUParticles" + +#: editor/plugins/particles_2d_editor_plugin.cpp msgid "Generating Visibility Rect" msgstr "A Gerar Visibilidade Rect" @@ -5299,11 +5711,6 @@ msgstr "Só pode definir um Ponto num Material ParticlesMaterial" #: editor/plugins/particles_2d_editor_plugin.cpp #: editor/plugins/particles_editor_plugin.cpp -msgid "Convert to CPUParticles" -msgstr "Converter em CPUParticles" - -#: editor/plugins/particles_2d_editor_plugin.cpp -#: editor/plugins/particles_editor_plugin.cpp msgid "Generation Time (sec):" msgstr "Tempo de geração (s):" @@ -5441,7 +5848,7 @@ msgstr "Fechar curva" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp editor/plugins/theme_editor_plugin.cpp -#: editor/project_export.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_export.cpp msgid "Options" msgstr "Opções" @@ -5492,7 +5899,8 @@ msgid "Split Segment (in curve)" msgstr "Separar segmento (na curva)" #: editor/plugins/physical_bone_plugin.cpp -msgid "Move joint" +#, fuzzy +msgid "Move Joint" msgstr "Mover Junta" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5731,7 +6139,6 @@ msgid "Open in Editor" msgstr "Abrir no Editor" #: editor/plugins/resource_preloader_editor_plugin.cpp -#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Load Resource" msgstr "Carregar recurso" @@ -5816,9 +6223,13 @@ msgid "Save Theme As..." msgstr "Guardar tema como..." #: editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "%s Class Reference" -msgstr " Referência de classe" +msgstr "Referência de classe %s" + +#: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp +msgid "Find Next" +msgstr "Localizar Seguinte" #: editor/plugins/script_editor_plugin.cpp msgid "Toggle alphabetical sorting of the method list." @@ -5901,10 +6312,6 @@ msgstr "Fechar documentos" msgid "Close All" msgstr "Fechar tudo" -#: editor/plugins/script_editor_plugin.cpp -msgid "Close Other Tabs" -msgstr "Fechar outros separadores" - #: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp msgid "Run" msgstr "Executar" @@ -5913,11 +6320,6 @@ msgstr "Executar" msgid "Toggle Scripts Panel" msgstr "Alternar painel de Scripts" -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/script_text_editor.cpp -msgid "Find Next" -msgstr "Localizar Seguinte" - #: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp msgid "Step Over" msgstr "Passar sobre" @@ -5944,7 +6346,8 @@ msgid "Debug with External Editor" msgstr "Depurar com Editor Externo" #: editor/plugins/script_editor_plugin.cpp -msgid "Open Godot online documentation" +#, fuzzy +msgid "Open Godot online documentation." msgstr "Abrir documentação online do Godot" #: editor/plugins/script_editor_plugin.cpp @@ -5952,7 +6355,8 @@ msgid "Request Docs" msgstr "Requisitar Docs" #: editor/plugins/script_editor_plugin.cpp -msgid "Help improve the Godot documentation by giving feedback" +#, fuzzy +msgid "Help improve the Godot documentation by giving feedback." msgstr "Dê a sua opinião para ajudar a melhorar a documentação Godot" #: editor/plugins/script_editor_plugin.cpp @@ -5980,10 +6384,12 @@ msgstr "" "Que ação deve ser tomada?:" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp msgid "Reload" msgstr "Recarregar" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp msgid "Resave" msgstr "Reguardar" @@ -5996,6 +6402,31 @@ msgid "Search Results" msgstr "Resultados da Pesquisa" #: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Connections to method:" +msgstr "Conectar ao Nó:" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Source" +msgstr "Fonte:" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Signal" +msgstr "Sinais" + +#: editor/plugins/script_text_editor.cpp +msgid "Target" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "" +"Missing connected method '%s' for signal '%s' from node '%s' to node '%s'." +msgstr "Nada conectado à entrada '%s' do nó '%s'." + +#: editor/plugins/script_text_editor.cpp msgid "Line" msgstr "Linha" @@ -6007,10 +6438,6 @@ msgstr "(ignorar)" msgid "Go to Function" msgstr "Ir para Função" -#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp -msgid "Standard" -msgstr "Padrão" - #: editor/plugins/script_text_editor.cpp msgid "Only resources from filesystem can be dropped." msgstr "Só podem ser largados recursos do Sistema de Ficheiros ." @@ -6043,6 +6470,11 @@ msgstr "Capitalizar" msgid "Syntax Highlighter" msgstr "Destaque de Sintaxe" +#: editor/plugins/script_text_editor.cpp +#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp +msgid "Bookmarks" +msgstr "" + #: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" @@ -6070,6 +6502,26 @@ msgid "Toggle Comment" msgstr "Alternar comentário" #: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Toggle Bookmark" +msgstr "Alternar Freelook" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Go to Next Bookmark" +msgstr "Ir para Próximo Breakpoint" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Go to Previous Bookmark" +msgstr "Ir para Breakpoint Anterior" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Remove All Bookmarks" +msgstr "Remover todos os itens" + +#: editor/plugins/script_text_editor.cpp msgid "Fold/Unfold Line" msgstr "Fechar/Abrir Linha" @@ -6143,6 +6595,15 @@ msgid "Contextual Help" msgstr "Ajuda contextual" #: editor/plugins/shader_editor_plugin.cpp +#, fuzzy +msgid "" +"This shader has been modified on on disk.\n" +"What action should be taken?" +msgstr "" +"Os seguintes Ficheiros são mais recentes no disco.\n" +"Que ação deve ser tomada?:" + +#: editor/plugins/shader_editor_plugin.cpp msgid "Shader" msgstr "Shader" @@ -6228,7 +6689,7 @@ msgstr "A rodar %s graus." #: editor/plugins/spatial_editor_plugin.cpp msgid "Keying is disabled (no key inserted)." -msgstr "Edição desativada (nenhuma Chave inserida)." +msgstr "Edição desativada (nenhuma chave inserida)." #: editor/plugins/spatial_editor_plugin.cpp msgid "Animation Key Inserted." @@ -6485,7 +6946,8 @@ msgid "Right View" msgstr "Vista direita" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Switch Perspective/Orthogonal view" +#, fuzzy +msgid "Switch Perspective/Orthogonal View" msgstr "Alternar vista perspetiva/ortogonal" #: editor/plugins/spatial_editor_plugin.cpp @@ -6525,11 +6987,13 @@ msgid "Toggle Freelook" msgstr "Alternar Freelook" #: editor/plugins/spatial_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Transform" msgstr "Transformar" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Snap object to floor" +#, fuzzy +msgid "Snap Object to Floor" msgstr "Alinhar objetos ao chão" #: editor/plugins/spatial_editor_plugin.cpp @@ -6642,24 +7106,20 @@ msgid "Nameless gizmo" msgstr "Bugiganga sem Nome" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy msgid "Create Mesh2D" -msgstr "Criar Malha 2D" +msgstr "Criar Mesh2D" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy msgid "Create Polygon2D" -msgstr "Criar Polygon3D" +msgstr "Criar Polygon2D" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy msgid "Create CollisionPolygon2D" -msgstr "Criar PolÃgono de Colisão" +msgstr "Criar CollisionPolygon2D" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy msgid "Create LightOccluder2D" -msgstr "Criar PolÃgono oclusor" +msgstr "Criar LightOccluder2D" #: editor/plugins/sprite_editor_plugin.cpp msgid "Sprite is empty!" @@ -6674,43 +7134,36 @@ msgid "Invalid geometry, can't replace by mesh." msgstr "Geometria inválida, não substituÃvel por malha." #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy -msgid "Invalid geometry, can't create polygon." -msgstr "Geometria inválida, não substituÃvel por malha." +msgid "Convert to Mesh2D" +msgstr "Converter para Mesh2D" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy -msgid "Invalid geometry, can't create collision polygon." -msgstr "Geometria inválida, não substituÃvel por malha." +msgid "Invalid geometry, can't create polygon." +msgstr "Geometria inválida, impossÃvel criar polÃgono." #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy -msgid "Invalid geometry, can't create light occluder." -msgstr "Geometria inválida, não substituÃvel por malha." +msgid "Convert to Polygon2D" +msgstr "Converter para Polygon2D" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Sprite" -msgstr "Sprite" +msgid "Invalid geometry, can't create collision polygon." +msgstr "Geometria inválida, impossÃvel criar polÃgono de colisão." #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy -msgid "Convert to Mesh2D" -msgstr "Converter para Malha 2D" +msgid "Create CollisionPolygon2D Sibling" +msgstr "Criar irmão de CollisionPolygon2D" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy -msgid "Convert to Polygon2D" -msgstr "Mover PolÃgono" +msgid "Invalid geometry, can't create light occluder." +msgstr "Geometria inválida, impossÃvel criar oclusor de luz." #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy -msgid "Create CollisionPolygon2D Sibling" -msgstr "Criar PolÃgono de Colisão" +msgid "Create LightOccluder2D Sibling" +msgstr "Criar irmão de LightOccluder2D" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy -msgid "Create LightOccluder2D Sibling" -msgstr "Criar PolÃgono oclusor" +msgid "Sprite" +msgstr "Sprite" #: editor/plugins/sprite_editor_plugin.cpp msgid "Simplification: " @@ -6729,14 +7182,24 @@ msgid "Settings:" msgstr "Configuração:" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "ERROR: Couldn't load frame resource!" -msgstr "ERRO: Recurso de Frame não carregado!" +#, fuzzy +msgid "No Frames Selected" +msgstr "Emoldurar seleção" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Add %d Frame(s)" +msgstr "Adicionar Frame" #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Add Frame" msgstr "Adicionar Frame" #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "ERROR: Couldn't load frame resource!" +msgstr "ERRO: Recurso de Frame não carregado!" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Resource clipboard is empty or not a texture!" msgstr "Recurso da Ãrea de Transferência vazio ou não é textura!" @@ -6777,6 +7240,15 @@ msgid "Animation Frames:" msgstr "Frames da Animação:" #: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Add a Texture from File" +msgstr "Adicionar Textura(s) ao TileSet." + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Add Frames from a Sprite Sheet" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Insert Empty (Before)" msgstr "Inserir vazio (antes)" @@ -6793,6 +7265,31 @@ msgid "Move (After)" msgstr "Mover (depois)" #: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Select Frames" +msgstr "Empilhar Frames" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Horizontal:" +msgstr "Inverter horizontalmente" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Vertical:" +msgstr "Vértices" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Select/Clear All Frames" +msgstr "Selecionar tudo" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Create Frames from Sprite Sheet" +msgstr "Criar a partir da Cena" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "SpriteFrames" msgstr "SpriteFrames" @@ -6857,12 +7354,13 @@ msgstr "Adicionar tudo" msgid "Remove All Items" msgstr "Remover todos os itens" -#: editor/plugins/theme_editor_plugin.cpp +#: editor/plugins/theme_editor_plugin.cpp editor/project_manager.cpp msgid "Remove All" msgstr "Remover tudo" #: editor/plugins/theme_editor_plugin.cpp -msgid "Edit theme..." +#, fuzzy +msgid "Edit Theme" msgstr "Editar tema..." #: editor/plugins/theme_editor_plugin.cpp @@ -6890,18 +7388,25 @@ msgid "Create From Current Editor Theme" msgstr "Criar a partir de tema Editor atual" #: editor/plugins/theme_editor_plugin.cpp -msgid "CheckBox Radio1" -msgstr "Caixa de seleção Radio1" +#, fuzzy +msgid "Toggle Button" +msgstr "Botão do rato" #: editor/plugins/theme_editor_plugin.cpp -msgid "CheckBox Radio2" -msgstr "Caixa de seleção Radio2" +#, fuzzy +msgid "Disabled Button" +msgstr "Botão do meio" #: editor/plugins/theme_editor_plugin.cpp msgid "Item" msgstr "Item" #: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Disabled Item" +msgstr "Desativado" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Check Item" msgstr "Verificar item" @@ -6918,6 +7423,24 @@ msgid "Checked Radio Item" msgstr "Item Rádio marcado" #: editor/plugins/theme_editor_plugin.cpp +msgid "Named Sep." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Submenu" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Item 1" +msgstr "Item" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Item 2" +msgstr "Item" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Has" msgstr "Tem" @@ -6926,8 +7449,9 @@ msgid "Many" msgstr "Muitos" #: editor/plugins/theme_editor_plugin.cpp -msgid "Has,Many,Options" -msgstr "Tem,Muitas,Opções" +#, fuzzy +msgid "Disabled LineEdit" +msgstr "Desativado" #: editor/plugins/theme_editor_plugin.cpp msgid "Tab 1" @@ -6942,6 +7466,19 @@ msgid "Tab 3" msgstr "Aba 3" #: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Editable Item" +msgstr "Filhos editáveis" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Subtree" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Has,Many,Options" +msgstr "Tem,Muitas,Opções" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Data Type:" msgstr "Tipo de dados:" @@ -6974,6 +7511,7 @@ msgid "Fix Invalid Tiles" msgstr "Reparar Tiles inválidos" #: editor/plugins/tile_map_editor_plugin.cpp +#: modules/gridmap/grid_map_editor_plugin.cpp msgid "Cut Selection" msgstr "Cortar Seleção" @@ -7014,35 +7552,52 @@ msgid "Mirror Y" msgstr "Espelho Y" #: editor/plugins/tile_map_editor_plugin.cpp +#, fuzzy +msgid "Disable Autotile" +msgstr "Tiles automáticos" + +#: editor/plugins/tile_map_editor_plugin.cpp +#, fuzzy +msgid "Enable Priority" +msgstr "Editar Prioridade de Tile" + +#: editor/plugins/tile_map_editor_plugin.cpp msgid "Paint Tile" msgstr "Pintar Tile" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Pick Tile" -msgstr "Escolher Tile" +msgid "" +"Shift+RMB: Line Draw\n" +"Shift+Ctrl+RMB: Rectangle Paint" +msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Copy Selection" -msgstr "Copiar Seleção" +msgid "Pick Tile" +msgstr "Escolher Tile" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Rotate left" +#, fuzzy +msgid "Rotate Left" msgstr "Rodar p/ esquerda" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Rotate right" +#, fuzzy +msgid "Rotate Right" msgstr "Rodar p/ direita" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Flip horizontally" +#, fuzzy +msgid "Flip Horizontally" msgstr "Inverter horizontalmente" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Flip vertically" +#, fuzzy +msgid "Flip Vertically" msgstr "Inverter verticalmente" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Clear transform" +#, fuzzy +msgid "Clear Transform" msgstr "Limpar Transformação" #: editor/plugins/tile_set_editor_plugin.cpp @@ -7078,6 +7633,46 @@ msgid "Select the previous shape, subtile, or Tile." msgstr "Selecione a forma, subtile ou Tile anterior." #: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Region Mode" +msgstr "Modo Execução:" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Collision Mode" +msgstr "Modo de Interpolação" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Occlusion Mode" +msgstr "Editar PolÃgono de Oclusão" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Navigation Mode" +msgstr "Criar Malha de Navegação" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Bitmask Mode" +msgstr "Modo rodar" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Priority Mode" +msgstr "Modo exportação:" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Icon Mode" +msgstr "Modo deslocamento" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Z Index Mode" +msgstr "Modo deslocamento" + +#: editor/plugins/tile_set_editor_plugin.cpp msgid "Copy bitmask." msgstr "Copiar bitmask." @@ -7159,9 +7754,11 @@ msgid "Delete polygon." msgstr "Apagar polÃgono." #: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy msgid "" "LMB: Set bit on.\n" "RMB: Set bit off.\n" +"Shift+LMB: Set wildcard bit.\n" "Click on another Tile to edit it." msgstr "" "LMB: Ligar bit.\n" @@ -7279,6 +7876,79 @@ msgid "TileSet" msgstr "TileSet" #: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Add input +" +msgstr "Adicionar entrada" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Add output +" +msgstr "Adicionar entrada" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar" +msgstr "Escala:" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector" +msgstr "Inspetor" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Add input port" +msgstr "Adicionar entrada" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add output port" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change input port type" +msgstr "Mudar tipo padrão" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change output port type" +msgstr "Mudar tipo padrão" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change input port name" +msgstr "Mudar nome de entrada" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change output port name" +msgstr "Mudar nome de entrada" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Remove input port" +msgstr "Remover Ponto" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Remove output port" +msgstr "Remover Ponto" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Set expression" +msgstr "Mudar Expressão" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Resize VisualShader node" +msgstr "VIsualShader" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Set Uniform Name" msgstr "Definir Nome do Uniform" @@ -7295,9 +7965,8 @@ msgid "Duplicate Nodes" msgstr "Duplicar Nós" #: editor/plugins/visual_shader_editor_plugin.cpp -#, fuzzy msgid "Delete Nodes" -msgstr "Apagar Nó" +msgstr "Apagar Nós" #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Visual Shader Input Type Changed" @@ -7316,6 +7985,859 @@ msgid "Light" msgstr "Luz" #: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Create Shader Node" +msgstr "Criar Nó" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Color function." +msgstr "Ir para Função" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Color operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Grayscale function." +msgstr "Criar Função" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts HSV vector to RGB equivalent." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts RGB vector to HSV equivalent." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Sepia function." +msgstr "Mudar nome da Função" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Burn operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Darken operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Difference operator." +msgstr "Apenas diferenças" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Dodge operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "HardLight operator" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Lighten operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Overlay operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Screen operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "SoftLight operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Color constant." +msgstr "Constante" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Color uniform." +msgstr "Limpar Transformação" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns an associated vector if the provided scalars are equal, greater or " +"less." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns an associated vector if the provided boolean value is true or false." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Boolean constant." +msgstr "Mudar constante vetorial" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'camera' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'inv_camera' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'inv_projection' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'normal' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'projection' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'time' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'viewport_size' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'world' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'texture_pixel_size' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Input parameter." +msgstr "Ajustar ao parente" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'binormal' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'fragcoord' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_coord' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_uv' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'side' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'tangent' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv2' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'vertex' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'view' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'albedo' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'attenuation' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'diffuse' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_color' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'roughness' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'specular' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'transmission' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'modelview' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_size' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'tangent' input parameter for vertex and fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_pass' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_coord' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_pixel_size' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_uv' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_alpha' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_height' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_uv' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_vec' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'normal' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'shadow_color' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'extra' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'projection' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'vertex' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'world' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'active' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'custom' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'custom_alpha' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'delta' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'emission_transform' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'index' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'lifetime' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'restart' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'time' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'transform' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'velocity' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar function." +msgstr "Mudar Função escalar" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar operator." +msgstr "Mudar operador escalar" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "E constant (2.718282). Represents the base of the natural logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Epsilon constant (0.00001). Smallest possible scalar number." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Phi constant (1.618034). Golden ratio." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi/4 constant (0.785398) or 45 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi/2 constant (1.570796) or 90 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi constant (3.141593) or 180 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Tau constant (6.283185) or 360 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Sqrt2 constant (1.414214). Square root of 2." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the absolute value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-tangent of the parameters." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Finds the nearest integer that is greater than or equal to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Constrains a value to lie between two further values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts a quantity in radians to degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-e Exponential." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-2 Exponential." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Finds the nearest integer less than or equal to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Computes the fractional part of the argument." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the inverse of the square root of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Natural logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-2 logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the greater of two values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the lesser of two values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Linear interpolation between two scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the opposite value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 - scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns the value of the first parameter raised to the power of the second." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts a quantity in degrees to radians." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 / scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the nearest integer to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the nearest even integer to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Clamps the value between 0.0 and 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Extracts the sign of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the square root of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( scalar(edge0), scalar(edge1), scalar(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if x is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( scalar(edge), scalar(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the truncated value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Adds scalar to scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Divides scalar by scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies scalar by scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the remainder of the two scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Subtracts scalar from scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar constant." +msgstr "Mudar constante escalar" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar uniform." +msgstr "Mudar uniforme escalar" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Perform the cubic texture lookup." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Perform the texture lookup." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Cubic texture uniform." +msgstr "Mudar uniforme textura" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "2D texture uniform." +msgstr "Mudar uniforme textura" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Transform function." +msgstr "Diálogo de transformação..." + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) Calculate the outer product of a pair of vectors.\n" +"\n" +"OuterProduct treats the first parameter 'c' as a column vector (matrix with " +"one column) and the second parameter 'r' as a row vector (matrix with one " +"row) and does a linear algebraic matrix multiply 'c * r', yielding a matrix " +"whose number of rows is the number of components in 'c' and whose number of " +"columns is the number of components in 'r'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Composes transform from four vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Decomposes transform to four vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the determinant of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the inverse of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the transpose of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies transform by transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies vector by transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Transform constant." +msgstr "Transformação abortada." + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Transform uniform." +msgstr "Transformação abortada." + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector function." +msgstr "Atribuição a função." + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector operator." +msgstr "Mudar operador vetorial" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Composes vector from three scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Decomposes vector to three scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the cross product of two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the distance between two points." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the dot product of two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns a vector that points in the same direction as a reference vector. " +"The function has three vector parameters : N, the vector to orient, I, the " +"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 "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the length of a vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Linear interpolation between two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the normalize product of vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 - vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 / vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns a vector that points in the direction of reflection ( a : incident " +"vector, b : normal vector )." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns a vector that points in the direction of refraction." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( vector(edge0), vector(edge1), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if 'x' is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( scalar(edge0), scalar(edge1), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if 'x' is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( vector(edge), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( scalar(edge), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Adds vector to vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Divides vector by vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies vector by vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the remainder of the two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Subtracts vector from vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector constant." +msgstr "Mudar constante vetorial" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector uniform." +msgstr "Atribuição a uniforme." + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Custom Godot Shader Language expression, with custom amount of input and " +"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 "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns falloff based on the dot product of surface normal and view " +"direction of camera (pass associated inputs to it)." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) (Fragment/Light mode only) Scalar derivative function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) (Fragment/Light mode only) Vector derivative function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Derivative in 'x' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Derivative in 'x' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Derivative in 'y' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Derivative in 'y' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Sum of absolute derivative " +"in 'x' and 'y'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Sum of absolute derivative " +"in 'x' and 'y'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "VisualShader" msgstr "VIsualShader" @@ -7514,6 +9036,10 @@ msgid "Directory already contains a Godot project." msgstr "A pasta já contém um projeto Godot." #: editor/project_manager.cpp +msgid "New Game Project" +msgstr "Novo Projeto de jogo" + +#: editor/project_manager.cpp msgid "Imported Project" msgstr "Projeto importado" @@ -7562,10 +9088,6 @@ msgid "Rename Project" msgstr "Renomear Projeto" #: editor/project_manager.cpp -msgid "New Game Project" -msgstr "Novo Projeto de jogo" - -#: editor/project_manager.cpp msgid "Import Existing Project" msgstr "Importar Projeto existente" @@ -7594,10 +9116,6 @@ msgid "Project Name:" msgstr "Nome do Projeto:" #: editor/project_manager.cpp -msgid "Create folder" -msgstr "Criar pasta" - -#: editor/project_manager.cpp msgid "Project Path:" msgstr "Caminho do Projeto:" @@ -7606,10 +9124,6 @@ msgid "Project Installation Path:" msgstr "Caminho de Instalação do Projeto:" #: editor/project_manager.cpp -msgid "Browse" -msgstr "Navegar" - -#: editor/project_manager.cpp msgid "Renderer:" msgstr "Renderizador:" @@ -7664,6 +9178,7 @@ msgid "Are you sure to open more than one project?" msgstr "Está seguro que quer abrir mais do que um Projeto?" #: editor/project_manager.cpp +#, fuzzy msgid "" "The following project settings file does not specify the version of Godot " "through which it was created.\n" @@ -7672,8 +9187,8 @@ msgid "" "\n" "If you proceed with opening it, it will be converted to Godot's current " "configuration file format.\n" -"Warning: You will not be able to open the project with previous versions of " -"the engine anymore." +"Warning: You won't be able to open the project with previous versions of the " +"engine anymore." msgstr "" "A seguinte configuração do projeto não especifica a versão do Godot em que " "foi criada.\n" @@ -7686,6 +9201,7 @@ msgstr "" "motor." #: editor/project_manager.cpp +#, fuzzy msgid "" "The following project settings file was generated by an older engine " "version, and needs to be converted for this version:\n" @@ -7693,8 +9209,8 @@ msgid "" "%s\n" "\n" "Do you want to convert it?\n" -"Warning: You will not be able to open the project with previous versions of " -"the engine anymore." +"Warning: You won't be able to open the project with previous versions of the " +"engine anymore." msgstr "" "A seguinte configuração do projeto foi gerada por um motor mais antigo, e " "precisa de ser convertida para esta versão.\n" @@ -7714,9 +9230,10 @@ msgstr "" "cuja configuração não é compatÃvel com esta versão." #: editor/project_manager.cpp +#, fuzzy msgid "" "Can't run project: no main scene defined.\n" -"Please edit the project and set the main scene in \"Project Settings\" under " +"Please edit the project and set the main scene in the Project Settings under " "the \"Application\" category." msgstr "" "ImpossÃvel executar o Projeto: Cena principal não definida.\n" @@ -7732,26 +9249,46 @@ msgstr "" "Edite o Projeto para desencadear a importação inicial." #: editor/project_manager.cpp -msgid "Are you sure to run more than one project?" +#, fuzzy +msgid "Are you sure to run %d projects at once?" msgstr "Está seguro que quer executar mais do que um Projeto?" #: editor/project_manager.cpp -msgid "Remove project from the list? (Folder contents will not be modified)" +#, fuzzy +msgid "" +"Remove %d projects from the list?\n" +"The project folders' contents won't be modified." +msgstr "Remover Projeto da lista? (O conteúdo da pasta não será modificado)" + +#: editor/project_manager.cpp +#, fuzzy +msgid "" +"Remove this project from the list?\n" +"The project folder's contents won't be modified." msgstr "Remover Projeto da lista? (O conteúdo da pasta não será modificado)" #: editor/project_manager.cpp +#, fuzzy +msgid "" +"Remove all missing projects from the list? (Folders contents will not be " +"modified)" +msgstr "Remover Projeto da lista? (O conteúdo da pasta não será modificado)" + +#: editor/project_manager.cpp +#, fuzzy msgid "" "Language changed.\n" -"The UI will update next time the editor or project manager starts." +"The interface will update after restarting the editor or project manager." msgstr "" "Linguagem alterada.\n" "A interface será atualizada da próxima vez que o Editor ou o Gestor de " "Projetos arrancar." #: editor/project_manager.cpp +#, fuzzy msgid "" -"You are about the scan %s folders for existing Godot projects. Do you " -"confirm?" +"Are you sure to scan %s folders for existing Godot projects?\n" +"This could take a while." msgstr "" "Está prestes a analisar %s pastas para Projetos Godot existentes. Confirma?" @@ -7776,6 +9313,11 @@ msgid "New Project" msgstr "Novo Projeto" #: editor/project_manager.cpp +#, fuzzy +msgid "Remove Missing" +msgstr "Remover Ponto" + +#: editor/project_manager.cpp msgid "Templates" msgstr "Modelos" @@ -7792,9 +9334,10 @@ msgid "Can't run project" msgstr "ImpossÃvel executar o Projeto" #: editor/project_manager.cpp +#, fuzzy msgid "" -"You don't currently have any projects.\n" -"Would you like to explore the official example projects in the Asset Library?" +"You currently don't have any projects.\n" +"Would you like to explore official example projects in the Asset Library?" msgstr "" "Atualmente não tem quaisquer Projetos.\n" "Gostaria de explorar os Projetos de exemplo oficiais na Biblioteca de Ativos?" @@ -7824,7 +9367,8 @@ msgstr "" "'\"'" #: editor/project_settings_editor.cpp -msgid "Action '%s' already exists!" +#, fuzzy +msgid "An action with the name '%s' already exists." msgstr "Ação '%s' já existe!" #: editor/project_settings_editor.cpp @@ -7980,10 +9524,6 @@ msgstr "" "'\"'." #: editor/project_settings_editor.cpp -msgid "Already existing" -msgstr "Já existe" - -#: editor/project_settings_editor.cpp msgid "Add Input Action" msgstr "Adicionar ação de entrada" @@ -8048,7 +9588,8 @@ msgid "Override For..." msgstr "Sobrepor por..." #: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp -msgid "Editor must be restarted for changes to take effect" +#, fuzzy +msgid "The editor must be restarted for changes to take effect." msgstr "O editor deve ser reiniciado para que as alterações entrem em vigor" #: editor/project_settings_editor.cpp @@ -8108,11 +9649,13 @@ msgid "Locales Filter" msgstr "Filtro de localização" #: editor/project_settings_editor.cpp -msgid "Show all locales" +#, fuzzy +msgid "Show All Locales" msgstr "Mostrar todas as localizações" #: editor/project_settings_editor.cpp -msgid "Show only selected locales" +#, fuzzy +msgid "Show Selected Locales Only" msgstr "Mostrar apenas localizações selecionadas" #: editor/project_settings_editor.cpp @@ -8128,14 +9671,6 @@ msgid "AutoLoad" msgstr "Carregamento automático" #: editor/property_editor.cpp -msgid "Ease In" -msgstr "Ease In" - -#: editor/property_editor.cpp -msgid "Ease Out" -msgstr "Ease Out" - -#: editor/property_editor.cpp msgid "Zero" msgstr "Zero" @@ -8208,7 +9743,8 @@ msgid "Suffix" msgstr "Sufixo" #: editor/rename_dialog.cpp -msgid "Advanced options" +#, fuzzy +msgid "Advanced Options" msgstr "Opções Avançadas" #: editor/rename_dialog.cpp @@ -8468,8 +10004,9 @@ msgid "User Interface" msgstr "Interface do Utilizador" #: editor/scene_tree_dock.cpp -msgid "Custom Node" -msgstr "Nó Personalizado" +#, fuzzy +msgid "Other Node" +msgstr "Apagar Nó" #: editor/scene_tree_dock.cpp msgid "Can't operate on nodes from a foreign scene!" @@ -8512,7 +10049,8 @@ msgid "Clear Inheritance" msgstr "Limpar herança" #: editor/scene_tree_dock.cpp -msgid "Open documentation" +#, fuzzy +msgid "Open Documentation" msgstr "Abrir documentação" #: editor/scene_tree_dock.cpp @@ -8539,7 +10077,7 @@ msgstr "Fundir a partir da Cena" msgid "Save Branch as Scene" msgstr "Guardar ramo como Cena" -#: editor/scene_tree_dock.cpp +#: editor/scene_tree_dock.cpp editor/script_editor_debugger.cpp msgid "Copy Node Path" msgstr "Copiar Caminho do Nó" @@ -8584,6 +10122,21 @@ msgid "Toggle Visible" msgstr "Alternar Visibilidade" #: editor/scene_tree_editor.cpp +#, fuzzy +msgid "Unlock Node" +msgstr "Selecionar Nó" + +#: editor/scene_tree_editor.cpp +#, fuzzy +msgid "Button Group" +msgstr "Botão 7" + +#: editor/scene_tree_editor.cpp +#, fuzzy +msgid "(Connecting From)" +msgstr "Erro de Ligação" + +#: editor/scene_tree_editor.cpp msgid "Node configuration warning:" msgstr "Aviso de configuração do Nó:" @@ -8611,8 +10164,9 @@ msgstr "" "Nó está em grupo(s).\n" "Clique para mostrar doca dos grupos." -#: editor/scene_tree_editor.cpp editor/script_create_dialog.cpp -msgid "Open Script" +#: editor/scene_tree_editor.cpp +#, fuzzy +msgid "Open Script:" msgstr "Abrir Script" #: editor/scene_tree_editor.cpp @@ -8664,71 +10218,83 @@ msgid "Select a Node" msgstr "Selecione um Nó" #: editor/script_create_dialog.cpp -msgid "Error loading template '%s'" -msgstr "Erro ao carregar Modelo '%s'" +#, fuzzy +msgid "Path is empty." +msgstr "Caminho está vazio" #: editor/script_create_dialog.cpp -msgid "Error - Could not create script in filesystem." -msgstr "Erro - ImpossÃvel criar Script no Sistema de Ficheiros." +#, fuzzy +msgid "Filename is empty." +msgstr "Nome do ficheiro vazio" #: editor/script_create_dialog.cpp -msgid "Error loading script from %s" -msgstr "Erro ao carregar Script de '%s'" +#, fuzzy +msgid "Path is not local." +msgstr "Caminho não é local" #: editor/script_create_dialog.cpp -msgid "N/A" -msgstr "N/A" +#, fuzzy +msgid "Invalid base path." +msgstr "Caminho base inválido" #: editor/script_create_dialog.cpp -msgid "Open Script/Choose Location" -msgstr "Abrir Script/Escolher Localização" +#, fuzzy +msgid "A directory with the same name exists." +msgstr "Já existe diretoria com o mesmo nome" #: editor/script_create_dialog.cpp -msgid "Path is empty" -msgstr "Caminho está vazio" +#, fuzzy +msgid "Invalid extension." +msgstr "Extensão inválida" #: editor/script_create_dialog.cpp -msgid "Filename is empty" -msgstr "Nome do ficheiro vazio" +#, fuzzy +msgid "Wrong extension chosen." +msgstr "Escolhida uma extensão errada" #: editor/script_create_dialog.cpp -msgid "Path is not local" -msgstr "Caminho não é local" +msgid "Error loading template '%s'" +msgstr "Erro ao carregar Modelo '%s'" #: editor/script_create_dialog.cpp -msgid "Invalid base path" -msgstr "Caminho base inválido" +msgid "Error - Could not create script in filesystem." +msgstr "Erro - ImpossÃvel criar Script no Sistema de Ficheiros." #: editor/script_create_dialog.cpp -msgid "Directory of the same name exists" -msgstr "Já existe diretoria com o mesmo nome" +msgid "Error loading script from %s" +msgstr "Erro ao carregar Script de '%s'" #: editor/script_create_dialog.cpp -msgid "File exists, will be reused" -msgstr "O Ficheiro já existe, será reutilizado" +msgid "N/A" +msgstr "N/A" #: editor/script_create_dialog.cpp -msgid "Invalid extension" -msgstr "Extensão inválida" +#, fuzzy +msgid "Open Script / Choose Location" +msgstr "Abrir Script/Escolher Localização" #: editor/script_create_dialog.cpp -msgid "Wrong extension chosen" -msgstr "Escolhida uma extensão errada" +msgid "Open Script" +msgstr "Abrir Script" #: editor/script_create_dialog.cpp -msgid "Invalid Path" -msgstr "Caminho inválido" +#, fuzzy +msgid "File exists, it will be reused." +msgstr "O Ficheiro já existe, será reutilizado" #: editor/script_create_dialog.cpp -msgid "Invalid class name" +#, fuzzy +msgid "Invalid class name." msgstr "Nome de classe inválida" #: editor/script_create_dialog.cpp -msgid "Invalid inherited parent name or path" +#, fuzzy +msgid "Invalid inherited parent name or path." msgstr "Nome ou Caminho de parente herdado inválido" #: editor/script_create_dialog.cpp -msgid "Script valid" +#, fuzzy +msgid "Script is valid." msgstr "Script inválido" #: editor/script_create_dialog.cpp @@ -8736,15 +10302,18 @@ msgid "Allowed: a-z, A-Z, 0-9 and _" msgstr "Permitido: a-z, A-Z, 0-9 e _" #: editor/script_create_dialog.cpp -msgid "Built-in script (into scene file)" +#, fuzzy +msgid "Built-in script (into scene file)." msgstr "Script incorporado (no Ficheiro da Cena)" #: editor/script_create_dialog.cpp -msgid "Create new script file" +#, fuzzy +msgid "Will create a new script file." msgstr "Criar novo Ficheiro de Script" #: editor/script_create_dialog.cpp -msgid "Load existing script file" +#, fuzzy +msgid "Will load an existing script file." msgstr "Carregar Ficheiro de Script existente" #: editor/script_create_dialog.cpp @@ -8875,6 +10444,10 @@ msgstr "Raiz de edição ao vivo:" msgid "Set From Tree" msgstr "Definir a partir da árvore" +#: editor/script_editor_debugger.cpp +msgid "Export measures as CSV" +msgstr "" + #: editor/settings_config_dialog.cpp msgid "Erase Shortcut" msgstr "Apagar Atalho" @@ -9004,6 +10577,15 @@ msgid "GDNativeLibrary" msgstr "GDNativeLibrary" #: 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 "Desativar a roleta de atualização" + +#: modules/gdnative/gdnative_library_singleton_editor.cpp msgid "Library" msgstr "Biblioteca" @@ -9090,8 +10672,9 @@ msgid "GridMap Fill Selection" msgstr "Seleção de Preenchimento de GridMap" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "GridMap Duplicate Selection" -msgstr "Seleção duplicada de GridMap" +#, fuzzy +msgid "GridMap Paste Selection" +msgstr "Apagar seleção GridMap" #: modules/gridmap/grid_map_editor_plugin.cpp msgid "GridMap Paint" @@ -9158,18 +10741,6 @@ msgid "Cursor Clear Rotation" msgstr "Limpar rotação do Cursor" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Create Area" -msgstr "Criar Ãrea" - -#: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Create Exterior Connector" -msgstr "Criar Conector exterior" - -#: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Erase Area" -msgstr "Apagar Ãrea" - -#: modules/gridmap/grid_map_editor_plugin.cpp msgid "Clear Selection" msgstr "Limpar Seleção" @@ -9530,18 +11101,11 @@ msgid "Available Nodes:" msgstr "Nós DisponÃveis:" #: modules/visual_script/visual_script_editor.cpp -msgid "Select or create a function to edit graph" +#, fuzzy +msgid "Select or create a function to edit its graph." msgstr "Selecione ou crie uma Função para editar o grafo" #: modules/visual_script/visual_script_editor.cpp -msgid "Edit Signal Arguments:" -msgstr "Editar Argumentos do Sinal:" - -#: modules/visual_script/visual_script_editor.cpp -msgid "Edit Variable:" -msgstr "Editar Variável:" - -#: modules/visual_script/visual_script_editor.cpp msgid "Delete Selected" msgstr "Apagar Selecionados" @@ -9673,6 +11237,19 @@ msgstr "" "predefinição." #: platform/android/export/export.cpp +msgid "Custom build requires a valid Android SDK path in Editor Settings." +msgstr "" + +#: platform/android/export/export.cpp +msgid "Invalid Android SDK path for custom build in Editor Settings." +msgstr "" + +#: platform/android/export/export.cpp +msgid "" +"Android project is not installed for compiling. Install from Editor menu." +msgstr "" + +#: platform/android/export/export.cpp msgid "Invalid public key for APK expansion." msgstr "Chave pública inválida para expansão APK." @@ -9680,6 +11257,34 @@ msgstr "Chave pública inválida para expansão APK." msgid "Invalid package name:" msgstr "Nome de pacote inválido:" +#: platform/android/export/export.cpp +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 "" +"Android build version mismatch:\n" +" Template installed: %s\n" +" Godot Version: %s\n" +"Please reinstall Android build template from 'Project' menu." +msgstr "" + +#: platform/android/export/export.cpp +msgid "Building Android Project (gradle)" +msgstr "" + +#: 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 "" + +#: platform/android/export/export.cpp +msgid "No build apk generated at: " +msgstr "" + #: platform/iphone/export/export.cpp msgid "Identifier is missing." msgstr "Falta o identificador." @@ -9987,31 +11592,36 @@ msgid "ARVRCamera must have an ARVROrigin node as its parent" msgstr "ARVRCamera precisa de um Nó ARVROrigin como parente" #: scene/3d/arvr_nodes.cpp -msgid "ARVRController must have an ARVROrigin node as its parent" +#, fuzzy +msgid "ARVRController must have an ARVROrigin node as its parent." msgstr "ARVRController precisa de um Nó ARVROrigin como parente" #: scene/3d/arvr_nodes.cpp +#, fuzzy msgid "" -"The controller id must not be 0 or this controller will not be bound to an " -"actual controller" +"The controller ID must not be 0 or this controller won't be bound to an " +"actual controller." msgstr "" "O id do controlador não pode ser 0 senão este controlador não será vinculado " "a um controlador real" #: scene/3d/arvr_nodes.cpp -msgid "ARVRAnchor must have an ARVROrigin node as its parent" +#, fuzzy +msgid "ARVRAnchor must have an ARVROrigin node as its parent." msgstr "ARVRAnchor precisa de um Nó ARVROrigin como parente" #: scene/3d/arvr_nodes.cpp +#, fuzzy msgid "" -"The anchor id must not be 0 or this anchor will not be bound to an actual " -"anchor" +"The anchor ID must not be 0 or this anchor won't be bound to an actual " +"anchor." msgstr "" "O id da âncora não pode ser 0 senão esta âncora não será vinculada a uma " "âncora real" #: scene/3d/arvr_nodes.cpp -msgid "ARVROrigin requires an ARVRCamera child node" +#, fuzzy +msgid "ARVROrigin requires an ARVRCamera child node." msgstr "ARVROrigin exige um Nó filho ARVRCamera" #: scene/3d/baked_lightmap.cpp @@ -10094,9 +11704,10 @@ msgid "Nothing is visible because no mesh has been assigned." msgstr "Nada é visÃvel porque nenhuma Malha foi atribuÃda." #: scene/3d/cpu_particles.cpp +#, fuzzy msgid "" -"CPUParticles animation requires the usage of a SpatialMaterial with " -"\"Billboard Particles\" enabled." +"CPUParticles animation requires the usage of a SpatialMaterial whose " +"Billboard Mode is set to \"Particle Billboard\"." msgstr "" "Animação CPUParticles requer o uso de um SpatialMaterial com \"Billboard " "Particles\" ativada." @@ -10144,9 +11755,10 @@ msgstr "" "Nada é visÃvel porque não foram atribuÃdas Meshes aos passos de desenho." #: scene/3d/particles.cpp +#, fuzzy msgid "" -"Particles animation requires the usage of a SpatialMaterial with \"Billboard " -"Particles\" enabled." +"Particles animation requires the usage of a SpatialMaterial whose Billboard " +"Mode is set to \"Particle Billboard\"." msgstr "" "Animação Particles requer o uso de um SpatialMaterial com \"Billboard " "Particles\" ativada." @@ -10180,7 +11792,8 @@ msgstr "" "válido." #: scene/3d/soft_body.cpp -msgid "This body will be ignored until you set a mesh" +#, fuzzy +msgid "This body will be ignored until you set a mesh." msgstr "Este corpo será ignorado até se definir uma Malha" #: scene/3d/soft_body.cpp @@ -10287,10 +11900,11 @@ msgid "Add current color as a preset." msgstr "Adicionar cor atual como predefinição." #: scene/gui/container.cpp +#, fuzzy msgid "" "Container by itself serves no purpose unless a script configures it's " "children placement behavior.\n" -"If you dont't intend to add a script, then please use a plain 'Control' node " +"If you don't intend to add a script, then please use a plain 'Control' node " "instead." msgstr "" "Por si só um Contentor não tem utilidade, a não ser que um script configure " @@ -10306,10 +11920,6 @@ msgstr "Alerta!" msgid "Please Confirm..." msgstr "Confirme por favor..." -#: scene/gui/file_dialog.cpp -msgid "Go to parent folder." -msgstr "Ir para a pasta acima." - #: scene/gui/popup.cpp msgid "" "Popups will hide by default unless you call popup() or any of the popup*() " @@ -10394,6 +12004,76 @@ msgstr "Atribuição a uniforme." msgid "Varyings can only be assigned in vertex function." msgstr "Variações só podem ser atribuÃdas na função vértice." +#: servers/visual/shader_language.cpp +msgid "Constants cannot be modified." +msgstr "" + +#~ msgid "Path to Node:" +#~ msgstr "Caminho para Nó:" + +#~ msgid "Delete selected files?" +#~ msgstr "Apagar arquivos selecionados?" + +#~ msgid "There is no 'res://default_bus_layout.tres' file." +#~ msgstr "O Ficheiro 'res://default_bus_layout.tres' não existe." + +#~ 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)" + +#~ msgid "Previous Directory" +#~ msgstr "Diretoria anterior" + +#~ msgid "Next Directory" +#~ msgstr "Diretoria seguinte" + +#~ msgid "Ease in" +#~ msgstr "Ease in" + +#~ msgid "Ease out" +#~ msgstr "Ease out" + +#~ msgid "Create Convex Static Body" +#~ msgstr "Criar corpo estático convexo" + +#~ msgid "CheckBox Radio1" +#~ msgstr "Caixa de seleção Radio1" + +#~ msgid "CheckBox Radio2" +#~ msgstr "Caixa de seleção Radio2" + +#~ msgid "Create folder" +#~ msgstr "Criar pasta" + +#~ msgid "Already existing" +#~ msgstr "Já existe" + +#~ msgid "Custom Node" +#~ msgstr "Nó Personalizado" + +#~ msgid "Invalid Path" +#~ msgstr "Caminho inválido" + +#~ msgid "GridMap Duplicate Selection" +#~ msgstr "Seleção duplicada de GridMap" + +#~ msgid "Create Area" +#~ msgstr "Criar Ãrea" + +#~ msgid "Create Exterior Connector" +#~ msgstr "Criar Conector exterior" + +#~ msgid "Edit Signal Arguments:" +#~ msgstr "Editar Argumentos do Sinal:" + +#~ msgid "Edit Variable:" +#~ msgstr "Editar Variável:" + #~ msgid "Snap (s): " #~ msgstr "Ajuste (s): " @@ -10513,9 +12193,6 @@ msgstr "Variações só podem ser atribuÃdas na função vértice." #~ msgid "Class List:" #~ msgstr "Lista de Classes:" -#~ msgid "Search Classes" -#~ msgstr "Procurar Classes" - #~ msgid "Public Methods" #~ msgstr "Métodos Públicos" @@ -10589,9 +12266,6 @@ msgstr "Variações só podem ser atribuÃdas na função vértice." #~ msgid "Error:" #~ msgstr "Erro:" -#~ msgid "Source:" -#~ msgstr "Fonte:" - #~ msgid "Function:" #~ msgstr "Função:" @@ -10613,21 +12287,9 @@ msgstr "Variações só podem ser atribuÃdas na função vértice." #~ msgid "Get" #~ msgstr "Obter" -#~ msgid "Change Scalar Constant" -#~ msgstr "Mudar constante escalar" - -#~ msgid "Change Vec Constant" -#~ msgstr "Mudar constante vetorial" - #~ msgid "Change RGB Constant" #~ msgstr "Mudar constante RGB" -#~ msgid "Change Scalar Operator" -#~ msgstr "Mudar operador escalar" - -#~ msgid "Change Vec Operator" -#~ msgstr "Mudar operador vetorial" - #~ msgid "Change Vec Scalar Operator" #~ msgstr "Mudar operador escalar/vetorial" @@ -10637,15 +12299,9 @@ msgstr "Variações só podem ser atribuÃdas na função vértice." #~ msgid "Toggle Rot Only" #~ msgstr "Alternar só rotação" -#~ msgid "Change Scalar Function" -#~ msgstr "Mudar Função escalar" - #~ msgid "Change Vec Function" #~ msgstr "Mudar Função vetorial" -#~ msgid "Change Scalar Uniform" -#~ msgstr "Mudar uniforme escalar" - #~ msgid "Change Vec Uniform" #~ msgstr "Mudar uniforme vetorial" @@ -10658,9 +12314,6 @@ msgstr "Variações só podem ser atribuÃdas na função vértice." #~ msgid "Change XForm Uniform" #~ msgstr "Mudar uniforme XForm" -#~ msgid "Change Texture Uniform" -#~ msgstr "Mudar uniforme textura" - #~ msgid "Change Cubemap Uniform" #~ msgstr "Mudar uniforme Cubemap" @@ -10679,9 +12332,6 @@ msgstr "Variações só podem ser atribuÃdas na função vértice." #~ msgid "Modify Curve Map" #~ msgstr "Modificar mapa de curva" -#~ msgid "Change Input Name" -#~ msgstr "Mudar nome de entrada" - #~ msgid "Connect Graph Nodes" #~ msgstr "Conectar Nós do gráfico" @@ -10709,9 +12359,6 @@ msgstr "Variações só podem ser atribuÃdas na função vértice." #~ msgid "Add Shader Graph Node" #~ msgstr "Adicionar Nó Gráfico Shader" -#~ msgid "Disabled" -#~ msgstr "Desativado" - #~ msgid "Move Anim Track Up" #~ msgstr "Subir Pista de Animação" @@ -10889,16 +12536,10 @@ msgstr "Variações só podem ser atribuÃdas na função vértice." #~ msgid "Item name or ID:" #~ msgstr "Nome ou ID do item:" -#~ msgid "Autotiles" -#~ msgstr "Tiles automáticos" - #~ msgid "Export templates for this platform are missing/corrupted: " #~ msgstr "" #~ "Modelos de exportação para esta plataforma estão ausentes/corrompidos: " -#~ msgid "Button 7" -#~ msgstr "Botão 7" - #~ msgid "Button 8" #~ msgstr "Botão 8" diff --git a/editor/translations/ro.po b/editor/translations/ro.po index dbc222bbbf..0cf2c4ef42 100644 --- a/editor/translations/ro.po +++ b/editor/translations/ro.po @@ -75,6 +75,15 @@ msgstr "" msgid "Mirror" msgstr "Reflectează" +#: editor/animation_bezier_editor.cpp editor/editor_profiler.cpp +msgid "Time:" +msgstr "Timp:" + +#: editor/animation_bezier_editor.cpp +#, fuzzy +msgid "Value:" +msgstr "Nume nou:" + #: editor/animation_bezier_editor.cpp msgid "Insert Key Here" msgstr "Inserează Cheie Aici" @@ -163,16 +172,21 @@ msgstr "OpreÈ™te rularea animaÈ›iei. (S)" #: editor/animation_track_editor.cpp #, fuzzy -msgid "Add Track" -msgstr "Anim AdăugaÈ›i Pistă" +msgid "Animation length (frames)" +msgstr "Lungime AnimaÈ›ie (în secunde)." #: editor/animation_track_editor.cpp #, fuzzy -msgid "Animation Length Time (seconds)" +msgid "Animation length (seconds)" msgstr "Lungime AnimaÈ›ie (în secunde)." #: editor/animation_track_editor.cpp #, fuzzy +msgid "Add Track" +msgstr "Anim AdăugaÈ›i Pistă" + +#: editor/animation_track_editor.cpp +#, fuzzy msgid "Animation Looping" msgstr "Zoom AnimaÈ›ie." @@ -308,11 +322,13 @@ msgid "Create %d NEW tracks and insert keys?" msgstr "CreaÈ›i %d piste NOI È™i inseraÈ›i cheie?" #: editor/animation_track_editor.cpp editor/create_dialog.cpp -#: editor/editor_audio_buses.cpp editor/editor_plugin_settings.cpp -#: editor/plugin_config_dialog.cpp +#: editor/editor_audio_buses.cpp editor/editor_feature_profile.cpp +#: editor/editor_plugin_settings.cpp editor/plugin_config_dialog.cpp #: editor/plugins/abstract_polygon_2d_editor.cpp #: editor/plugins/mesh_instance_editor_plugin.cpp -#: editor/plugins/particles_editor_plugin.cpp editor/script_create_dialog.cpp +#: editor/plugins/particles_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_create_dialog.cpp msgid "Create" msgstr "CreaÈ›i" @@ -430,6 +446,23 @@ msgid "" msgstr "" #: editor/animation_track_editor.cpp +msgid "" +"This animation belongs to an imported scene, so changes to imported tracks " +"will not be saved.\n" +"\n" +"To enable the ability to add custom tracks, navigate to the scene's import " +"settings and set\n" +"\"Animation > Storage\" to \"Files\", enable \"Animation > Keep Custom Tracks" +"\", then re-import.\n" +"Alternatively, use an import preset that imports animations to separate " +"files." +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Warning: Editing imported animation" +msgstr "" + +#: editor/animation_track_editor.cpp msgid "Only show tracks from nodes selected in tree." msgstr "" @@ -569,7 +602,8 @@ msgstr "ProporÈ›ie Scalare:" msgid "Select tracks to copy:" msgstr "" -#: editor/animation_track_editor.cpp editor/editor_properties.cpp +#: editor/animation_track_editor.cpp editor/editor_log.cpp +#: editor/editor_properties.cpp #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp @@ -638,6 +672,11 @@ msgstr "ÃŽnlocuiÈ›i Tot" msgid "Selection Only" msgstr "Numai SelecÈ›ia" +#: editor/code_editor.cpp editor/plugins/script_text_editor.cpp +#: editor/plugins/text_editor.cpp +msgid "Standard" +msgstr "" + #: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/texture_region_editor_plugin.cpp #: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp @@ -663,21 +702,39 @@ msgid "Line and column numbers." msgstr "" #: editor/connections_dialog.cpp -msgid "Method in target Node must be specified!" +#, fuzzy +msgid "Method in target node must be specified." msgstr "Metoda din Nod-ul È›intă trebuie specificată!" #: editor/connections_dialog.cpp +#, fuzzy msgid "" -"Target method not found! Specify a valid method or attach a script to target " -"Node." +"Target method not found. Specify a valid method or attach a script to the " +"target node." msgstr "" "Metoda È›intă nu există! SpecificaÈ›i o metodă validă sau ataÈ™aÈ›i un script la " "Nod-ul È›intă." #: editor/connections_dialog.cpp -msgid "Connect To Node:" +#, fuzzy +msgid "Connect to Node:" msgstr "ConectaÈ›i la Nod:" +#: editor/connections_dialog.cpp +#, fuzzy +msgid "Connect to Script:" +msgstr "Nu se poate conecta la gazda:" + +#: editor/connections_dialog.cpp +#, fuzzy +msgid "From Signal:" +msgstr "Semnale:" + +#: editor/connections_dialog.cpp +#, fuzzy +msgid "Scene does not contain any script." +msgstr "Nodul nu conÈ›ine geometrie." + #: editor/connections_dialog.cpp editor/editor_autoload_settings.cpp #: editor/groups_editor.cpp editor/plugins/item_list_editor_plugin.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_settings_editor.cpp @@ -685,10 +742,12 @@ msgid "Add" msgstr "AdăugaÈ›i" #: editor/connections_dialog.cpp editor/dependency_editor.cpp -#: editor/groups_editor.cpp editor/plugins/animation_player_editor_plugin.cpp +#: editor/editor_feature_profile.cpp editor/groups_editor.cpp +#: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp #: editor/plugins/resource_preloader_editor_plugin.cpp -#: editor/plugins/theme_editor_plugin.cpp editor/project_manager.cpp +#: editor/plugins/theme_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_manager.cpp #: editor/project_settings_editor.cpp msgid "Remove" msgstr "ȘtergeÈ›i" @@ -702,21 +761,32 @@ msgid "Extra Call Arguments:" msgstr "Extra Argumente de Chemare:" #: editor/connections_dialog.cpp -msgid "Path to Node:" -msgstr "Drum la Nod:" - -#: editor/connections_dialog.cpp -msgid "Make Function" -msgstr "FaceÈ›i FuncÈ›ia" +#, fuzzy +msgid "Advanced" +msgstr "OpÈ›iuni Snapping" #: editor/connections_dialog.cpp msgid "Deferred" msgstr "Amânat(ă)" #: editor/connections_dialog.cpp +msgid "" +"Defers the signal, storing it in a queue and only firing it at idle time." +msgstr "" + +#: editor/connections_dialog.cpp msgid "Oneshot" msgstr "Tragere unică" +#: editor/connections_dialog.cpp +msgid "Disconnects the signal after its first emission." +msgstr "" + +#: editor/connections_dialog.cpp +#, fuzzy +msgid "Cannot connect signal" +msgstr "ConectaÈ›i Semnal:" + #: editor/connections_dialog.cpp editor/dependency_editor.cpp #: editor/export_template_manager.cpp editor/groups_editor.cpp #: editor/plugins/animation_player_editor_plugin.cpp @@ -759,12 +829,12 @@ msgstr "DeconectaÈ›i" #: editor/connections_dialog.cpp #, fuzzy -msgid "Connect Signal: " +msgid "Connect a Signal to a Method" msgstr "ConectaÈ›i Semnal:" #: editor/connections_dialog.cpp #, fuzzy -msgid "Edit Connection: " +msgid "Edit Connection:" msgstr "Eroare de Conexiune" #: editor/connections_dialog.cpp @@ -800,7 +870,6 @@ msgid "Change %s Type" msgstr "SchimbaÈ›i Tipul %s" #: editor/create_dialog.cpp editor/project_settings_editor.cpp -#: modules/visual_script/visual_script_editor.cpp msgid "Change" msgstr "SchimbaÈ›i" @@ -831,7 +900,8 @@ msgid "Matches:" msgstr "Potriviri:" #: editor/create_dialog.cpp editor/plugin_config_dialog.cpp -#: editor/plugins/asset_library_editor_plugin.cpp editor/property_selector.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/property_selector.cpp #: modules/visual_script/visual_script_property_selector.cpp msgid "Description:" msgstr "Descriere:" @@ -845,17 +915,19 @@ msgid "Dependencies For:" msgstr "DependenÈ›e Pentru:" #: editor/dependency_editor.cpp +#, fuzzy msgid "" "Scene '%s' is currently being edited.\n" -"Changes will not take effect unless reloaded." +"Changes will only take effect when reloaded." msgstr "" "Scena '%s' este în proces de editare. \n" "Modificările nu vor avea efect dacă nu reîncărcaÈ›i." #: editor/dependency_editor.cpp +#, fuzzy msgid "" "Resource '%s' is in use.\n" -"Changes will take effect when reloaded." +"Changes will only take effect when reloaded." msgstr "" "Resursa '%s' este în folosință.\n" "Modificările vor avea efect după ce reîncărcaÈ›i." @@ -952,21 +1024,14 @@ msgid "Permanently delete %d item(s)? (No undo!)" msgstr "ȘtergeÈ›i permanent %d articol(e)? (Fără anulare!)" #: editor/dependency_editor.cpp -msgid "Owns" -msgstr "DeÈ›ine" - -#: editor/dependency_editor.cpp -msgid "Resources Without Explicit Ownership:" -msgstr "Resurse Fără DeÈ›inere Explicită:" +#, fuzzy +msgid "Show Dependencies" +msgstr "DependenÈ›e" #: editor/dependency_editor.cpp editor/editor_node.cpp msgid "Orphan Resource Explorer" msgstr "Explorator de Resurse Orfane" -#: editor/dependency_editor.cpp -msgid "Delete selected files?" -msgstr "ÅžtergeÈ›i fiÅŸierele selectate?" - #: editor/dependency_editor.cpp editor/editor_audio_buses.cpp #: editor/editor_file_dialog.cpp editor/editor_node.cpp #: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp @@ -975,6 +1040,14 @@ msgstr "ÅžtergeÈ›i fiÅŸierele selectate?" msgid "Delete" msgstr "ȘtergeÈ›i" +#: editor/dependency_editor.cpp +msgid "Owns" +msgstr "DeÈ›ine" + +#: editor/dependency_editor.cpp +msgid "Resources Without Explicit Ownership:" +msgstr "Resurse Fără DeÈ›inere Explicită:" + #: editor/dictionary_property_edit.cpp msgid "Change Dictionary Key" msgstr "SchimbaÈ›i Cheie DicÅ£ionar" @@ -1089,7 +1162,7 @@ msgstr "Pachet Instalat cu Succes!" msgid "Success!" msgstr "Succes!" -#: editor/editor_asset_installer.cpp +#: editor/editor_asset_installer.cpp editor/editor_node.cpp #: editor/plugins/asset_library_editor_plugin.cpp msgid "Install" msgstr "InstalaÈ›i" @@ -1216,8 +1289,12 @@ msgid "Open Audio Bus Layout" msgstr "Deschide Schema Pistei Audio" #: editor/editor_audio_buses.cpp -msgid "There is no 'res://default_bus_layout.tres' file." -msgstr "Nu există nici un fiÅŸier 'res://default_bus_layout.tres'." +msgid "There is no '%s' file." +msgstr "" + +#: editor/editor_audio_buses.cpp editor/plugins/canvas_item_editor_plugin.cpp +msgid "Layout" +msgstr "Schemă" #: editor/editor_audio_buses.cpp msgid "Invalid file, not an audio bus layout." @@ -1271,23 +1348,30 @@ msgid "Valid characters:" msgstr "Caractere valide:" #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing engine class name." +#, fuzzy +msgid "Must not collide with an existing engine class name." msgstr "" "Nume nevalid. Nu trebuie să se lovească cu un nume de clasa deja existent în " "motor." #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing buit-in type name." +#, fuzzy +msgid "Must not collide with an existing buit-in type name." msgstr "" "Nume nevalid. Nu trebuie să se lovească cu un nume de tip deja existent în " "motor tip." #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing global constant name." +#, fuzzy +msgid "Must not collide with an existing global constant name." msgstr "" "Nume nevalid. Nu trebuie să se lovească cu un nume ce constante globale." #: editor/editor_autoload_settings.cpp +msgid "Keyword cannot be used as an autoload name." +msgstr "" + +#: editor/editor_autoload_settings.cpp msgid "Autoload '%s' already exists!" msgstr "AutoLoad '%s' există deja!" @@ -1315,11 +1399,12 @@ msgstr "ActivaÈ›i" msgid "Rearrange Autoloads" msgstr "RearanjaÈ›i Autoload-urile" -#: editor/editor_autoload_settings.cpp -msgid "Invalid Path." +#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp +#, fuzzy +msgid "Invalid path." msgstr "Cale nevalidă." -#: editor/editor_autoload_settings.cpp +#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp msgid "File does not exist." msgstr "FiÈ™ierul nu există." @@ -1370,7 +1455,8 @@ msgid "[unsaved]" msgstr "[nesalvat]" #: editor/editor_dir_dialog.cpp -msgid "Please select a base directory first" +#, fuzzy +msgid "Please select a base directory first." msgstr "Vă rugăm să selectaÅ£i mai întâi un director de baza" #: editor/editor_dir_dialog.cpp @@ -1378,7 +1464,8 @@ msgid "Choose a Directory" msgstr "AlegeÅ£i un Director" #: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp -#: editor/filesystem_dock.cpp scene/gui/file_dialog.cpp +#: editor/filesystem_dock.cpp editor/project_manager.cpp +#: scene/gui/file_dialog.cpp msgid "Create Folder" msgstr "CreaÈ›i Director" @@ -1447,6 +1534,176 @@ msgstr "" msgid "Template file not found:" msgstr "FiÈ™ierul È™ablon nu a fost găsit:" +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "3D Editor" +msgstr "Editor" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Script Editor" +msgstr "Deschide Editorul de Scripturi" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Asset Library" +msgstr "Deschide Librăria de Asseturi" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Scene Tree Editing" +msgstr "Setările de ExecuÈ›ie ale Scenei" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Import Dock" +msgstr "Importă" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Node Dock" +msgstr "Mod Mutare" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Filesystem Dock" +msgstr "Sistemul De FiÈ™iere" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Erase profile '%s'? (no undo)" +msgstr "ÃŽnlocuiÈ›i Tot" + +#: editor/editor_feature_profile.cpp +msgid "Profile must be a valid filename and must not contain '.'" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Profile with this name already exists." +msgstr "Un fiÈ™ier sau un director cu acest nume există deja." + +#: editor/editor_feature_profile.cpp +msgid "(Editor Disabled, Properties Disabled)" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "(Properties Disabled)" +msgstr "Proprietăți" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "(Editor Disabled)" +msgstr "Dezactivat" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Class Options:" +msgstr "Descriere:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enable Contextual Editor" +msgstr "Deschide Editorul următor" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enabled Properties:" +msgstr "Proprietăți" + +#: editor/editor_feature_profile.cpp +msgid "Enabled Features:" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enabled Classes:" +msgstr "Căutare Clase" + +#: editor/editor_feature_profile.cpp +msgid "File '%s' format is invalid, import aborted." +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "" +"Profile '%s' already exists. Remote it first before importing, import " +"aborted." +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Error saving profile to path: '%s'." +msgstr "Eroare la salvarea TileSet!" + +#: editor/editor_feature_profile.cpp +msgid "Unset" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Current Profile" +msgstr "Versiune Curentă:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Make Current" +msgstr "Curent:" + +#: editor/editor_feature_profile.cpp +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "New" +msgstr "" + +#: editor/editor_feature_profile.cpp editor/editor_node.cpp +#: editor/plugins/asset_library_editor_plugin.cpp editor/project_manager.cpp +msgid "Import" +msgstr "Importă" + +#: editor/editor_feature_profile.cpp editor/editor_node.cpp +#: editor/project_export.cpp +msgid "Export" +msgstr "Exportare" + +#: editor/editor_feature_profile.cpp +msgid "Available Profiles" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enabled Classes" +msgstr "Căutare Clase" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Class Options" +msgstr "Descriere" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "New profile name:" +msgstr "Nume nou:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Erase Profile" +msgstr "RMB: Șterge Punctul." + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Import Profile(s)" +msgstr "%d mai multe fiÈ™iere" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Export Profile" +msgstr "Exportă Proiectul" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Manage Editor Feature Profiles" +msgstr "Administrează Șabloanele de Export" + #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Select Current Folder" msgstr "SelectaÅ£i directorul curent" @@ -1469,8 +1726,8 @@ msgstr "CopiaÅ£i Calea" msgid "Open in File Manager" msgstr "ArătaÈ›i în Administratorul de FiÈ™iere" -#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp -#: editor/project_manager.cpp +#: editor/editor_file_dialog.cpp editor/editor_node.cpp +#: editor/filesystem_dock.cpp editor/project_manager.cpp #, fuzzy msgid "Show in File Manager" msgstr "ArătaÈ›i în Administratorul de FiÈ™iere" @@ -1530,7 +1787,7 @@ msgstr "ÃŽnainte" msgid "Go Up" msgstr "Sus" -#: editor/editor_file_dialog.cpp +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Toggle Hidden Files" msgstr "ComutaÈ›i FiÈ™iere Ascunse" @@ -1564,8 +1821,9 @@ msgstr "Fila anterioară" msgid "Next Folder" msgstr "CreaÈ›i Director" -#: editor/editor_file_dialog.cpp -msgid "Go to parent folder" +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp +#, fuzzy +msgid "Go to parent folder." msgstr "AccesaÈ›i Directorul Părinte" #: editor/editor_file_dialog.cpp @@ -1573,6 +1831,11 @@ msgstr "AccesaÈ›i Directorul Părinte" msgid "(Un)favorite current folder." msgstr "Directorul nu a putut fi creat." +#: editor/editor_file_dialog.cpp +#, fuzzy +msgid "Toggle visibility of hidden files." +msgstr "ComutaÈ›i FiÈ™iere Ascunse" + #: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp #, fuzzy msgid "View items as a grid of thumbnails." @@ -1589,6 +1852,7 @@ msgstr "Directoare È™i FiÅŸiere:" #: editor/editor_file_dialog.cpp editor/plugins/sprite_editor_plugin.cpp #: editor/plugins/style_box_editor_plugin.cpp +#: editor/plugins/theme_editor_plugin.cpp msgid "Preview:" msgstr "PrevizualizaÈ›i:" @@ -1605,6 +1869,12 @@ msgid "ScanSources" msgstr "SurseScan" #: editor/editor_file_system.cpp +msgid "" +"There are multiple importers for different types pointing to file %s, import " +"aborted" +msgstr "" + +#: editor/editor_file_system.cpp msgid "(Re)Importing Assets" msgstr "(Re)Importând Asset-uri" @@ -1806,6 +2076,11 @@ msgstr "" msgid "Output:" msgstr "AfiÈ™are:" +#: editor/editor_log.cpp editor/plugins/tile_map_editor_plugin.cpp +#, fuzzy +msgid "Copy Selection" +msgstr "ElminaÈ›i SelecÈ›ia" + #: editor/editor_log.cpp editor/editor_profiler.cpp #: editor/editor_properties.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp @@ -1957,9 +2232,10 @@ msgstr "" "înÅ£elege mai bine cum sa lucraÈ›i cu acestea." #: editor/editor_node.cpp +#, fuzzy msgid "" "This resource belongs to a scene that was instanced or inherited.\n" -"Changes to it will not be kept when saving the current scene." +"Changes to it won't be kept when saving the current scene." msgstr "" "Această resursă este o scena care a fost instanÈ›ată sau moÅŸtenită.\n" "Modificările la acesta nu vor fi păstrate la salvarea scenei curente." @@ -1973,8 +2249,9 @@ msgstr "" "setările din panoul de import ÅŸi apoi reimportaÈ›i." #: editor/editor_node.cpp +#, fuzzy msgid "" -"This scene was imported, so changes to it will not be kept.\n" +"This scene was imported, so changes to it won't be kept.\n" "Instancing it or inheriting will allow making changes to it.\n" "Please read the documentation relevant to importing scenes to better " "understand this workflow." @@ -1986,8 +2263,9 @@ msgstr "" "înÅ£elege mai bine acest mod de lucru." #: editor/editor_node.cpp +#, fuzzy msgid "" -"This is a remote object so changes to it will not be kept.\n" +"This is a remote object, so changes to it won't be kept.\n" "Please read the documentation relevant to debugging to better understand " "this workflow." msgstr "" @@ -2001,33 +2279,6 @@ msgid "There is no defined scene to run." msgstr "Nu există nici o scenă definită pentru a execuÈ›ie." #: editor/editor_node.cpp -msgid "" -"No main scene has ever been defined, select one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" -"Nici o scena principala a fost definită, selectaÈ›i una?\n" -"PuteÈ›i schimba mai târziu, în \"Setări Proiect\" în categoria 'AplicaÈ›ie'." - -#: editor/editor_node.cpp -msgid "" -"Selected scene '%s' does not exist, select a valid one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" -"Scena selectată ’%s’ nu există, selectaÈ›i una?\n" -"PuteÈ›i schimba mai târziu în „Setări Proiect†în categoria „AplicaÈ›ieâ€." - -#: editor/editor_node.cpp -msgid "" -"Selected scene '%s' is not a scene file, select a valid one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" -"Scena selectată ’%s’ nu este un fiÈ™ier scenă, selectaÈ›i una validă?\n" -"PuteÈ›i schimba mai târziu în „Setări Proiect†în categoria „AplicaÈ›ieâ€." - -#: editor/editor_node.cpp msgid "Current scene was never saved, please save it prior to running." msgstr "" "Scena curentă nu a fost salvată niciodată, salvaÈ›i-o înainte de rulare." @@ -2036,7 +2287,7 @@ msgstr "" msgid "Could not start subprocess!" msgstr "Nu s-a putut porni subprocesul!" -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/filesystem_dock.cpp msgid "Open Scene" msgstr "Deschide o scenă" @@ -2045,6 +2296,11 @@ msgid "Open Base Scene" msgstr "Deschide o scenă de bază" #: editor/editor_node.cpp +#, fuzzy +msgid "Quick Open..." +msgstr "Deschide o scenă rapid..." + +#: editor/editor_node.cpp msgid "Quick Open Scene..." msgstr "Deschide o scenă rapid..." @@ -2226,6 +2482,33 @@ msgid "Clear Recent Scenes" msgstr "Curăță Scenele Recente" #: editor/editor_node.cpp +msgid "" +"No main scene has ever been defined, select one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" +"Nici o scena principala a fost definită, selectaÈ›i una?\n" +"PuteÈ›i schimba mai târziu, în \"Setări Proiect\" în categoria 'AplicaÈ›ie'." + +#: editor/editor_node.cpp +msgid "" +"Selected scene '%s' does not exist, select a valid one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" +"Scena selectată ’%s’ nu există, selectaÈ›i una?\n" +"PuteÈ›i schimba mai târziu în „Setări Proiect†în categoria „AplicaÈ›ieâ€." + +#: editor/editor_node.cpp +msgid "" +"Selected scene '%s' is not a scene file, select a valid one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" +"Scena selectată ’%s’ nu este un fiÈ™ier scenă, selectaÈ›i una validă?\n" +"PuteÈ›i schimba mai târziu în „Setări Proiect†în categoria „AplicaÈ›ieâ€." + +#: editor/editor_node.cpp msgid "Save Layout" msgstr "Salvează Schema" @@ -2254,6 +2537,19 @@ msgstr "Rulează Scena" msgid "Close Tab" msgstr "Aproape" +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +msgid "Close Other Tabs" +msgstr "" + +#: editor/editor_node.cpp +msgid "Close Tabs to the Right" +msgstr "" + +#: editor/editor_node.cpp +#, fuzzy +msgid "Close All Tabs" +msgstr "Aproape" + #: editor/editor_node.cpp msgid "Switch Scene Tab" msgstr "ComutaÈ›i între Scene" @@ -2377,10 +2673,6 @@ msgstr "Proiect" msgid "Project Settings" msgstr "Setări ale Proiectului" -#: editor/editor_node.cpp editor/project_export.cpp -msgid "Export" -msgstr "Exportare" - #: editor/editor_node.cpp editor/plugins/tile_set_editor_plugin.cpp msgid "Tools" msgstr "Unelte" @@ -2391,6 +2683,10 @@ msgid "Open Project Data Folder" msgstr "Deschizi Managerul de Proiect?" #: editor/editor_node.cpp +msgid "Install Android Build Template" +msgstr "" + +#: editor/editor_node.cpp msgid "Quit to Project List" msgstr "ÃŽnchide spre Lista Proiectului" @@ -2516,6 +2812,11 @@ msgstr "" msgid "Open Editor Settings Folder" msgstr "Setări ale Editorului" +#: editor/editor_node.cpp +#, fuzzy +msgid "Manage Editor Features" +msgstr "Administrează Șabloanele de Export" + #: editor/editor_node.cpp editor/project_export.cpp msgid "Manage Export Templates" msgstr "Administrează Șabloanele de Export" @@ -2528,6 +2829,7 @@ msgstr "Ajutor" #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp #: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp #: editor/project_settings_editor.cpp editor/rename_dialog.cpp msgid "Search" msgstr "Căutare" @@ -2618,11 +2920,6 @@ msgstr "Modificări ale Actualizării" msgid "Disable Update Spinner" msgstr "Dezactivează Cercul de Actualizare" -#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp -#: editor/project_manager.cpp -msgid "Import" -msgstr "Importă" - #: editor/editor_node.cpp msgid "FileSystem" msgstr "Sistemul De FiÈ™iere" @@ -2649,6 +2946,28 @@ msgid "Don't Save" msgstr "Nu Salva" #: editor/editor_node.cpp +msgid "Android build template is missing, please install relevant templates." +msgstr "" + +#: editor/editor_node.cpp +#, fuzzy +msgid "Manage Templates" +msgstr "Administrează Șabloanele de Export" + +#: editor/editor_node.cpp +msgid "" +"This will install the Android project for custom builds.\n" +"Note that, in order to use it, it needs to be enabled per export preset." +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"Android build template is already installed and it won't be overwritten.\n" +"Remove the \"build\" directory manually before attempting this operation " +"again." +msgstr "" + +#: editor/editor_node.cpp msgid "Import Templates From ZIP File" msgstr "Importă Șabloane Dintr-o Arhivă ZIP" @@ -2774,10 +3093,6 @@ msgid "Physics Frame %" msgstr "Cadru Fizic %" #: editor/editor_profiler.cpp -msgid "Time:" -msgstr "Timp:" - -#: editor/editor_profiler.cpp msgid "Inclusive" msgstr "Inclusiv" @@ -2916,10 +3231,6 @@ msgid "Remove Item" msgstr "" #: editor/editor_run_native.cpp -msgid "Select device from the list" -msgstr "Selectează un dispozitiv din listă" - -#: editor/editor_run_native.cpp msgid "" "No runnable export preset found for this platform.\n" "Please add a runnable preset in the export menu." @@ -2956,6 +3267,10 @@ msgstr "Ai uitat cumva metoda '_run' ?" msgid "Select Node(s) to Import" msgstr "Selectează Nodul(rile) pentru Importare" +#: editor/editor_sub_scene.cpp editor/project_manager.cpp +msgid "Browse" +msgstr "" + #: editor/editor_sub_scene.cpp msgid "Scene Path:" msgstr "Calea Scenei:" @@ -3121,6 +3436,11 @@ msgid "SSL Handshake Error" msgstr "Eroare SSL Handshake" #: editor/export_template_manager.cpp +#, fuzzy +msgid "Uncompressing Android Build Sources" +msgstr "Decomprimare Asset-uri" + +#: editor/export_template_manager.cpp msgid "Current Version:" msgstr "Versiune Curentă:" @@ -3137,7 +3457,8 @@ msgid "Remove Template" msgstr "Elimină Șablon" #: editor/export_template_manager.cpp -msgid "Select template file" +#, fuzzy +msgid "Select Template File" msgstr "Selectează fiÈ™ierul È™ablon" #: editor/export_template_manager.cpp @@ -3201,7 +3522,8 @@ msgid "No name provided." msgstr "Niciun nume furnizat." #: editor/filesystem_dock.cpp -msgid "Provided name contains invalid characters" +#, fuzzy +msgid "Provided name contains invalid characters." msgstr "Numele furnizat conÈ›ine caractere nevalide" #: editor/filesystem_dock.cpp @@ -3229,8 +3551,14 @@ msgid "Duplicating folder:" msgstr "Duplicând directorul:" #: editor/filesystem_dock.cpp -msgid "Open Scene(s)" -msgstr "Deschide Scena(ele)" +#, fuzzy +msgid "New Inherited Scene" +msgstr "Scenă Derivată Nouă..." + +#: editor/filesystem_dock.cpp +#, fuzzy +msgid "Open Scenes" +msgstr "Deschide o scenă" #: editor/filesystem_dock.cpp msgid "Instance" @@ -3238,12 +3566,12 @@ msgstr "Instanță" #: editor/filesystem_dock.cpp #, fuzzy -msgid "Add to favorites" +msgid "Add to Favorites" msgstr "Favorite:" #: editor/filesystem_dock.cpp #, fuzzy -msgid "Remove from favorites" +msgid "Remove from Favorites" msgstr "Elimină din Grup" #: editor/filesystem_dock.cpp @@ -3276,12 +3604,14 @@ msgstr "Deschide un script rapid..." msgid "New Resource..." msgstr "SalvaÈ›i Resursa Ca..." -#: editor/filesystem_dock.cpp editor/script_editor_debugger.cpp +#: editor/filesystem_dock.cpp editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_editor_debugger.cpp #, fuzzy msgid "Expand All" msgstr "Extinde toate" -#: editor/filesystem_dock.cpp editor/script_editor_debugger.cpp +#: editor/filesystem_dock.cpp editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_editor_debugger.cpp #, fuzzy msgid "Collapse All" msgstr "Restrânge toate" @@ -3294,12 +3624,14 @@ msgid "Rename" msgstr "RedenumeÈ™te" #: editor/filesystem_dock.cpp -msgid "Previous Directory" -msgstr "Directorul Anterior" +#, fuzzy +msgid "Previous Folder/File" +msgstr "Fila anterioară" #: editor/filesystem_dock.cpp -msgid "Next Directory" -msgstr "Directorul Urmator" +#, fuzzy +msgid "Next Folder/File" +msgstr "CreaÈ›i Director" #: editor/filesystem_dock.cpp msgid "Re-Scan Filesystem" @@ -3307,7 +3639,7 @@ msgstr "Rescanează Sistemul de FiÈ™iere" #: editor/filesystem_dock.cpp #, fuzzy -msgid "Toggle split mode" +msgid "Toggle Split Mode" msgstr "Modul de Comutare" #: editor/filesystem_dock.cpp @@ -3340,7 +3672,7 @@ msgstr "" msgid "Create Script" msgstr "" -#: editor/find_in_files.cpp +#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp #, fuzzy msgid "Find in Files" msgstr "%d mai multe fiÈ™iere" @@ -3360,6 +3692,12 @@ msgstr "CreaÈ›i Director" msgid "Filters:" msgstr "Filtre..." +#: editor/find_in_files.cpp +msgid "" +"Include the files with the following extensions. Add or remove them in " +"ProjectSettings." +msgstr "" + #: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp msgid "Find..." @@ -3827,7 +4165,7 @@ msgstr "Nod de AnimaÈ›ie" #: editor/plugins/animation_blend_space_2d_editor.cpp #, fuzzy -msgid "Triangle already exists" +msgid "Triangle already exists." msgstr "EROARE: Numele animaÈ›iei există deja!" #: editor/plugins/animation_blend_space_2d_editor.cpp @@ -3909,7 +4247,6 @@ msgid "Node Moved" msgstr "Mod Mutare" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Unable to connect, port may be in use or connection may be invalid." msgstr "" @@ -3984,8 +4321,9 @@ msgid "Edit Filtered Tracks:" msgstr "Editează Filtrele" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -msgid "Enable filtering" -msgstr "" +#, fuzzy +msgid "Enable Filtering" +msgstr "SchimbaÈ›i Lung Anim" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Toggle Autoplay" @@ -4104,10 +4442,6 @@ msgid "Animation" msgstr "AnimaÈ›ie" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "New" -msgstr "" - -#: editor/plugins/animation_player_editor_plugin.cpp #, fuzzy msgid "Edit Transitions..." msgstr "TranziÈ›ii" @@ -4126,14 +4460,15 @@ msgid "Autoplay on Load" msgstr "Auto-Execută la ÃŽncărcare" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Onion Skinning" -msgstr "Onion Skinning" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Enable Onion Skinning" msgstr "Activează Onion Skinning" #: editor/plugins/animation_player_editor_plugin.cpp +#, fuzzy +msgid "Onion Skinning Options" +msgstr "Onion Skinning" + +#: editor/plugins/animation_player_editor_plugin.cpp msgid "Directions" msgstr "DirecÈ›ii" @@ -4698,13 +5033,19 @@ msgid "Move CanvasItem" msgstr "Editează ObiectulPânză" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"Children of containers have their anchors and margins values overridden by " +"their parent." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Presets for the anchors and margins values of a Control node." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "" -"Children of containers have their anchors and margins values overridden by " -"their parent." +"When active, moving Control nodes changes their anchors instead of their " +"margins." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4720,10 +5061,51 @@ msgid "Change Anchors" msgstr "Modifică Ancorele" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Lock Selected" +msgstr "Selectează" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Unlock Selected" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Group Selected" +msgstr "ElminaÈ›i SelecÈ›ia" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Ungroup Selected" +msgstr "ElminaÈ›i SelecÈ›ia" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Paste Pose" msgstr "LipeÈ™te Postura" #: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Create Custom Bone(s) from Node(s)" +msgstr "Creează Puncte de Emisie Din Mesh" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Clear Bones" +msgstr "Curăță Postura" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Make IK Chain" +msgstr "Creează LanÈ› IK" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Clear IK Chain" +msgstr "Curăță LanÈ›ul IK" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "" "Warning: Children of a container get their position and size determined only " "by their parent." @@ -4803,7 +5185,8 @@ msgid "Snapping Options" msgstr "OpÈ›iuni Snapping" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to grid" +#, fuzzy +msgid "Snap to Grid" msgstr "Snap pe grilă" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4824,32 +5207,38 @@ msgid "Use Pixel Snap" msgstr "Utilizează Pixel Snap" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Smart snapping" +#, fuzzy +msgid "Smart Snapping" msgstr "Snapping inteligent" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to parent" +#, fuzzy +msgid "Snap to Parent" msgstr "Snap către părinte" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node anchor" +#, fuzzy +msgid "Snap to Node Anchor" msgstr "Snap către ancora nodului" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node sides" +#, fuzzy +msgid "Snap to Node Sides" msgstr "Snap pe feÈ›ele nodului" #: editor/plugins/canvas_item_editor_plugin.cpp #, fuzzy -msgid "Snap to node center" +msgid "Snap to Node Center" msgstr "Snap către ancora nodului" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to other nodes" +#, fuzzy +msgid "Snap to Other Nodes" msgstr "Snap către alte noduri" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to guides" +#, fuzzy +msgid "Snap to Guides" msgstr "Snap pe ghizi" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4863,10 +5252,12 @@ msgid "Unlock the selected object (can be moved)." msgstr "Remobilizează obiectul selectat (poate fi miÈ™cat)." #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Makes sure the object's children are not selectable." msgstr "Asigură-te că nu pot fi selectaÈ›i copiii obiectului." #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Restores the object's children's ability to be selected." msgstr "Restaurează abilitatea copiilor obiectului de a fi selectaÈ›i." @@ -4880,14 +5271,6 @@ msgid "Show Bones" msgstr "Arată Oasele" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Make IK Chain" -msgstr "Creează LanÈ› IK" - -#: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Clear IK Chain" -msgstr "Curăță LanÈ›ul IK" - -#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Make Custom Bone(s) from Node(s)" msgstr "" @@ -4939,8 +5322,8 @@ msgid "Frame Selection" msgstr "ÃŽncadrează în Ecran SelecÈ›ia" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Layout" -msgstr "Schemă" +msgid "Preview Canvas Scale" +msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Translation mask for inserting keys." @@ -4993,6 +5376,11 @@ msgid "Divide grid step by 2" msgstr "ÃŽmparte pasul pe grilă cu 2" #: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Pan View" +msgstr "Perspectivă Snap" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Add %s" msgstr "Adaugă %s" @@ -5015,7 +5403,8 @@ msgid "Error instancing scene from %s" msgstr "Eroare la instanÈ›ierea scenei din %s" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Change default type" +#, fuzzy +msgid "Change Default Type" msgstr "Schimbă tipul implicit" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -5105,20 +5494,22 @@ msgid "Create Emission Points From Node" msgstr "Creare Puncte de Emisie din Nod" #: editor/plugins/curve_editor_plugin.cpp -msgid "Flat0" +#, fuzzy +msgid "Flat 0" msgstr "Plat0" #: editor/plugins/curve_editor_plugin.cpp -msgid "Flat1" +#, fuzzy +msgid "Flat 1" msgstr "Plat1" -#: editor/plugins/curve_editor_plugin.cpp -msgid "Ease in" -msgstr "Facilitare în" +#: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp +msgid "Ease In" +msgstr "" -#: editor/plugins/curve_editor_plugin.cpp -msgid "Ease out" -msgstr "Facilitare din" +#: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp +msgid "Ease Out" +msgstr "" #: editor/plugins/curve_editor_plugin.cpp msgid "Smoothstep" @@ -5137,23 +5528,28 @@ msgid "Load Curve Preset" msgstr "ÃŽncarcă Presetare a Curbei" #: editor/plugins/curve_editor_plugin.cpp -msgid "Add point" +#, fuzzy +msgid "Add Point" msgstr "Adaugă punct" #: editor/plugins/curve_editor_plugin.cpp -msgid "Remove point" +#, fuzzy +msgid "Remove Point" msgstr "Elimină punct" #: editor/plugins/curve_editor_plugin.cpp -msgid "Left linear" +#, fuzzy +msgid "Left Linear" msgstr "Stânga liniară" #: editor/plugins/curve_editor_plugin.cpp -msgid "Right linear" +#, fuzzy +msgid "Right Linear" msgstr "Dreapta liniară" #: editor/plugins/curve_editor_plugin.cpp -msgid "Load preset" +#, fuzzy +msgid "Load Preset" msgstr "ÃŽncarcă presetare" #: editor/plugins/curve_editor_plugin.cpp @@ -5209,11 +5605,17 @@ msgid "This doesn't work on scene root!" msgstr "Asta nu funcÈ›ionează în rădăcina scenei!" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Trimesh Shape" +#, fuzzy +msgid "Create Trimesh Static Shape" msgstr "Creează o Formă Trimesh" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Shape" +msgid "Failed creating shapes!" +msgstr "" + +#: editor/plugins/mesh_instance_editor_plugin.cpp +#, fuzzy +msgid "Create Convex Shape(s)" msgstr "Creează o Formă Convexă" #: editor/plugins/mesh_instance_editor_plugin.cpp @@ -5266,15 +5668,12 @@ msgid "Create Trimesh Static Body" msgstr "Creează un Corp Static Trimesh" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Static Body" -msgstr "Creează un Corp Static Convex" - -#: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Trimesh Collision Sibling" msgstr "Creează un Frate de Coliziune Trimesh" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Collision Sibling" +#, fuzzy +msgid "Create Convex Collision Sibling(s)" msgstr "Creează un Frate de Coliziune Convex" #: editor/plugins/mesh_instance_editor_plugin.cpp @@ -5428,6 +5827,11 @@ msgid "Create Navigation Polygon" msgstr "Creare Poligon de Navigare" #: editor/plugins/particles_2d_editor_plugin.cpp +#: editor/plugins/particles_editor_plugin.cpp +msgid "Convert to CPUParticles" +msgstr "" + +#: editor/plugins/particles_2d_editor_plugin.cpp #, fuzzy msgid "Generating Visibility Rect" msgstr "Generare Dreptunghi de Vizibilitate" @@ -5444,11 +5848,6 @@ msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp #: editor/plugins/particles_editor_plugin.cpp -msgid "Convert to CPUParticles" -msgstr "" - -#: editor/plugins/particles_2d_editor_plugin.cpp -#: editor/plugins/particles_editor_plugin.cpp msgid "Generation Time (sec):" msgstr "Timp de Generare (sec):" @@ -5588,7 +5987,7 @@ msgstr "ÃŽnchidere curbă" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp editor/plugins/theme_editor_plugin.cpp -#: editor/project_export.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_export.cpp msgid "Options" msgstr "" @@ -5640,7 +6039,7 @@ msgstr "Divizare segment (pe curbă)" #: editor/plugins/physical_bone_plugin.cpp #, fuzzy -msgid "Move joint" +msgid "Move Joint" msgstr "Deplasare punct" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5892,7 +6291,6 @@ msgid "Open in Editor" msgstr "Deschidere în Editor" #: editor/plugins/resource_preloader_editor_plugin.cpp -#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Load Resource" msgstr "" @@ -5993,6 +6391,11 @@ msgid "%s Class Reference" msgstr "" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp +msgid "Find Next" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp msgid "Toggle alphabetical sorting of the method list." msgstr "" @@ -6076,10 +6479,6 @@ msgstr "" msgid "Close All" msgstr "" -#: editor/plugins/script_editor_plugin.cpp -msgid "Close Other Tabs" -msgstr "" - #: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp msgid "Run" msgstr "Execută" @@ -6088,11 +6487,6 @@ msgstr "Execută" msgid "Toggle Scripts Panel" msgstr "" -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/script_text_editor.cpp -msgid "Find Next" -msgstr "" - #: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp msgid "Step Over" msgstr "" @@ -6120,15 +6514,16 @@ msgid "Debug with External Editor" msgstr "Deschide Editorul următor" #: editor/plugins/script_editor_plugin.cpp -msgid "Open Godot online documentation" -msgstr "" +#, fuzzy +msgid "Open Godot online documentation." +msgstr "Deschide Recente" #: editor/plugins/script_editor_plugin.cpp msgid "Request Docs" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Help improve the Godot documentation by giving feedback" +msgid "Help improve the Godot documentation by giving feedback." msgstr "" #: editor/plugins/script_editor_plugin.cpp @@ -6154,10 +6549,12 @@ msgid "" msgstr "" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp msgid "Reload" msgstr "" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp msgid "Resave" msgstr "" @@ -6172,6 +6569,31 @@ msgstr "CăutaÈ›i în Ajutor" #: editor/plugins/script_text_editor.cpp #, fuzzy +msgid "Connections to method:" +msgstr "ConectaÈ›i la Nod:" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Source" +msgstr "Resursă" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Signal" +msgstr "Semnale" + +#: editor/plugins/script_text_editor.cpp +msgid "Target" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "" +"Missing connected method '%s' for signal '%s' from node '%s' to node '%s'." +msgstr "DeconectaÈ›i '%s' de la '%s'" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy msgid "Line" msgstr "Linie:" @@ -6184,10 +6606,6 @@ msgstr "" msgid "Go to Function" msgstr "FaceÈ›i FuncÈ›ia" -#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp -msgid "Standard" -msgstr "" - #: editor/plugins/script_text_editor.cpp msgid "Only resources from filesystem can be dropped." msgstr "" @@ -6220,6 +6638,11 @@ msgstr "" msgid "Syntax Highlighter" msgstr "" +#: editor/plugins/script_text_editor.cpp +#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp +msgid "Bookmarks" +msgstr "" + #: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" @@ -6247,6 +6670,26 @@ msgid "Toggle Comment" msgstr "" #: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Toggle Bookmark" +msgstr "Modul de Comutare" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Go to Next Bookmark" +msgstr "MergeÈ›i la Pasul Următor" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Go to Previous Bookmark" +msgstr "MergeÈ›i la Pasul Anterior" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Remove All Bookmarks" +msgstr "EliminaÈ›i Autoload" + +#: editor/plugins/script_text_editor.cpp msgid "Fold/Unfold Line" msgstr "" @@ -6325,6 +6768,12 @@ msgid "Contextual Help" msgstr "" #: editor/plugins/shader_editor_plugin.cpp +msgid "" +"This shader has been modified on on disk.\n" +"What action should be taken?" +msgstr "" + +#: editor/plugins/shader_editor_plugin.cpp msgid "Shader" msgstr "" @@ -6671,7 +7120,7 @@ msgid "Right View" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Switch Perspective/Orthogonal view" +msgid "Switch Perspective/Orthogonal View" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp @@ -6711,12 +7160,14 @@ msgid "Toggle Freelook" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Transform" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Snap object to floor" -msgstr "" +#, fuzzy +msgid "Snap Object to Floor" +msgstr "Snap pe grilă" #: editor/plugins/spatial_editor_plugin.cpp msgid "Transform Dialog..." @@ -6861,42 +7312,42 @@ msgid "Invalid geometry, can't replace by mesh." msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Invalid geometry, can't create polygon." -msgstr "" - -#: editor/plugins/sprite_editor_plugin.cpp -msgid "Invalid geometry, can't create collision polygon." -msgstr "" - -#: editor/plugins/sprite_editor_plugin.cpp -msgid "Invalid geometry, can't create light occluder." -msgstr "" - -#: editor/plugins/sprite_editor_plugin.cpp -msgid "Sprite" -msgstr "" - -#: editor/plugins/sprite_editor_plugin.cpp #, fuzzy msgid "Convert to Mesh2D" msgstr "ConverteÈ™te ÃŽn..." #: editor/plugins/sprite_editor_plugin.cpp +msgid "Invalid geometry, can't create polygon." +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp #, fuzzy msgid "Convert to Polygon2D" msgstr "Deplasare poligon" #: editor/plugins/sprite_editor_plugin.cpp +msgid "Invalid geometry, can't create collision polygon." +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp #, fuzzy msgid "Create CollisionPolygon2D Sibling" msgstr "Creare Poligon de Navigare" #: editor/plugins/sprite_editor_plugin.cpp +msgid "Invalid geometry, can't create light occluder." +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp #, fuzzy msgid "Create LightOccluder2D Sibling" msgstr "Creează Poligon de Ocluziune" #: editor/plugins/sprite_editor_plugin.cpp +msgid "Sprite" +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp msgid "Simplification: " msgstr "" @@ -6915,7 +7366,12 @@ msgid "Settings:" msgstr "Setări Snap" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "ERROR: Couldn't load frame resource!" +#, fuzzy +msgid "No Frames Selected" +msgstr "ÃŽncadrează în Ecran SelecÈ›ia" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Add %d Frame(s)" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp @@ -6923,6 +7379,10 @@ msgid "Add Frame" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "ERROR: Couldn't load frame resource!" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Resource clipboard is empty or not a texture!" msgstr "" @@ -6966,6 +7426,15 @@ msgid "Animation Frames:" msgstr "Nume AnimaÈ›ie:" #: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Add a Texture from File" +msgstr "Capturare din Pixel" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Add Frames from a Sprite Sheet" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Insert Empty (Before)" msgstr "" @@ -6982,6 +7451,27 @@ msgid "Move (After)" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Select Frames" +msgstr "Mod Selectare" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Horizontal:" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Vertical:" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Select/Clear All Frames" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Create Frames from Sprite Sheet" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "SpriteFrames" msgstr "" @@ -7047,13 +7537,14 @@ msgstr "" msgid "Remove All Items" msgstr "" -#: editor/plugins/theme_editor_plugin.cpp +#: editor/plugins/theme_editor_plugin.cpp editor/project_manager.cpp msgid "Remove All" msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "Edit theme..." -msgstr "" +#, fuzzy +msgid "Edit Theme" +msgstr "Membri" #: editor/plugins/theme_editor_plugin.cpp msgid "Theme editing menu." @@ -7080,18 +7571,25 @@ msgid "Create From Current Editor Theme" msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "CheckBox Radio1" -msgstr "" +#, fuzzy +msgid "Toggle Button" +msgstr "Comutează Auto-ExecuÈ›ie" #: editor/plugins/theme_editor_plugin.cpp -msgid "CheckBox Radio2" -msgstr "" +#, fuzzy +msgid "Disabled Button" +msgstr "Dezactivat" #: editor/plugins/theme_editor_plugin.cpp msgid "Item" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Disabled Item" +msgstr "Dezactivat" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Check Item" msgstr "" @@ -7108,6 +7606,24 @@ msgid "Checked Radio Item" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +msgid "Named Sep." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Submenu" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Item 1" +msgstr "Obiect %d" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Item 2" +msgstr "Obiect %d" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Has" msgstr "" @@ -7116,8 +7632,9 @@ msgid "Many" msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "Has,Many,Options" -msgstr "" +#, fuzzy +msgid "Disabled LineEdit" +msgstr "Dezactivat" #: editor/plugins/theme_editor_plugin.cpp msgid "Tab 1" @@ -7132,6 +7649,19 @@ msgid "Tab 3" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Editable Item" +msgstr "Editează Filtrele" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Subtree" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Has,Many,Options" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Data Type:" msgstr "" @@ -7165,6 +7695,7 @@ msgid "Fix Invalid Tiles" msgstr "Nume nevalid." #: editor/plugins/tile_map_editor_plugin.cpp +#: modules/gridmap/grid_map_editor_plugin.cpp #, fuzzy msgid "Cut Selection" msgstr "Centrează SelecÈ›ia" @@ -7207,39 +7738,49 @@ msgid "Mirror Y" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp +msgid "Disable Autotile" +msgstr "" + +#: editor/plugins/tile_map_editor_plugin.cpp +#, fuzzy +msgid "Enable Priority" +msgstr "Editează Filtrele" + +#: editor/plugins/tile_map_editor_plugin.cpp msgid "Paint Tile" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Pick Tile" +msgid "" +"Shift+RMB: Line Draw\n" +"Shift+Ctrl+RMB: Rectangle Paint" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy -msgid "Copy Selection" -msgstr "ElminaÈ›i SelecÈ›ia" +msgid "Pick Tile" +msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp #, fuzzy -msgid "Rotate left" +msgid "Rotate Left" msgstr "Mod RotaÈ›ie" #: editor/plugins/tile_map_editor_plugin.cpp #, fuzzy -msgid "Rotate right" +msgid "Rotate Right" msgstr "RotaÈ›ie poligon" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Flip horizontally" +msgid "Flip Horizontally" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Flip vertically" +msgid "Flip Vertically" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp #, fuzzy -msgid "Clear transform" +msgid "Clear Transform" msgstr "Anim Schimbare transformare" #: editor/plugins/tile_set_editor_plugin.cpp @@ -7277,6 +7818,46 @@ msgid "Select the previous shape, subtile, or Tile." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Region Mode" +msgstr "Modul de ExecuÈ›ie:" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Collision Mode" +msgstr "Nod de AnimaÈ›ie" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Occlusion Mode" +msgstr "Editează Poligon" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Navigation Mode" +msgstr "Creează un Mesh de Navigare" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Bitmask Mode" +msgstr "Mod RotaÈ›ie" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Priority Mode" +msgstr "Exportă Proiectul" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Icon Mode" +msgstr "Mod ÃŽn Jur" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Z Index Mode" +msgstr "Mod ÃŽn Jur" + +#: editor/plugins/tile_set_editor_plugin.cpp msgid "Copy bitmask." msgstr "" @@ -7364,6 +7945,7 @@ msgstr "Șterge puncte" msgid "" "LMB: Set bit on.\n" "RMB: Set bit off.\n" +"Shift+LMB: Set wildcard bit.\n" "Click on another Tile to edit it." msgstr "" @@ -7488,6 +8070,77 @@ msgid "TileSet" msgstr "Set_de_Plăci..." #: 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 +" +msgstr "Adaugă Intrare(Input)" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar" +msgstr "Dimensiune:" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector" +msgstr "Inspector" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Add input port" +msgstr "Adaugă Intrare(Input)" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add output port" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change input port type" +msgstr "Schimbă tipul implicit" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change output port type" +msgstr "Schimbă tipul implicit" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change input port name" +msgstr "Schimbă Numele AnimaÈ›iei:" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Change output port name" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Remove input port" +msgstr "Elimină punct" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Remove output port" +msgstr "Elimină punct" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Set expression" +msgstr "Versiune Curentă:" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Resize VisualShader node" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Set Uniform Name" msgstr "" @@ -7527,6 +8180,852 @@ msgid "Light" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Create Shader Node" +msgstr "Creează Nod" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Color function." +msgstr "FaceÈ›i FuncÈ›ia" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Color operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Grayscale function." +msgstr "FaceÈ›i FuncÈ›ia" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts HSV vector to RGB equivalent." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts RGB vector to HSV equivalent." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Sepia function." +msgstr "FaceÈ›i FuncÈ›ia" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Burn operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Darken operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Difference operator." +msgstr "Doar DiferenÈ›e" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Dodge operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "HardLight operator" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Lighten operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Overlay operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Screen operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "SoftLight operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Color constant." +msgstr "Permanent" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Color uniform." +msgstr "Anim Schimbare transformare" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns an associated vector if the provided scalars are equal, greater or " +"less." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns an associated vector if the provided boolean value is true or false." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'camera' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'inv_camera' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'inv_projection' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'normal' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'projection' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'time' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'viewport_size' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'world' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'texture_pixel_size' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Input parameter." +msgstr "Snap către părinte" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'binormal' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'fragcoord' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_coord' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_uv' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'side' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'tangent' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv2' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'vertex' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'view' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'albedo' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'attenuation' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'diffuse' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_color' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'roughness' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'specular' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'transmission' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'modelview' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_size' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'tangent' input parameter for vertex and fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_pass' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_coord' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_pixel_size' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_uv' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_alpha' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_height' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_uv' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_vec' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'normal' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'shadow_color' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'extra' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'projection' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'vertex' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'world' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'active' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'custom' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'custom_alpha' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'delta' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'emission_transform' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'index' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'lifetime' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'restart' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'time' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'transform' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'velocity' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar function." +msgstr "ScalaÈ›i SelecÈ›ia" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar operator." +msgstr "Dimensiune (raport):" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "E constant (2.718282). Represents the base of the natural logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Epsilon constant (0.00001). Smallest possible scalar number." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Phi constant (1.618034). Golden ratio." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi/4 constant (0.785398) or 45 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi/2 constant (1.570796) or 90 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi constant (3.141593) or 180 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Tau constant (6.283185) or 360 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Sqrt2 constant (1.414214). Square root of 2." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the absolute value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-tangent of the parameters." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Finds the nearest integer that is greater than or equal to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Constrains a value to lie between two further values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts a quantity in radians to degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-e Exponential." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-2 Exponential." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Finds the nearest integer less than or equal to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Computes the fractional part of the argument." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the inverse of the square root of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Natural logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-2 logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the greater of two values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the lesser of two values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Linear interpolation between two scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the opposite value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 - scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns the value of the first parameter raised to the power of the second." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts a quantity in degrees to radians." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 / scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the nearest integer to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the nearest even integer to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Clamps the value between 0.0 and 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Extracts the sign of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the square root of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( scalar(edge0), scalar(edge1), scalar(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if x is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( scalar(edge), scalar(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the truncated value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Adds scalar to scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Divides scalar by scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies scalar by scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the remainder of the two scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Subtracts scalar from scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Scalar constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar uniform." +msgstr "Anim Schimbare transformare" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Perform the cubic texture lookup." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Perform the texture lookup." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Cubic texture uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "2D texture uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Transform function." +msgstr "Crează Poligon" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) Calculate the outer product of a pair of vectors.\n" +"\n" +"OuterProduct treats the first parameter 'c' as a column vector (matrix with " +"one column) and the second parameter 'r' as a row vector (matrix with one " +"row) and does a linear algebraic matrix multiply 'c * r', yielding a matrix " +"whose number of rows is the number of components in 'c' and whose number of " +"columns is the number of components in 'r'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Composes transform from four vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Decomposes transform to four vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the determinant of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the inverse of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the transpose of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies transform by transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies vector by transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Transform constant." +msgstr "Crează Poligon" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Transform uniform." +msgstr "Crează Poligon" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector function." +msgstr "FaceÈ›i FuncÈ›ia" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Composes vector from three scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Decomposes vector to three scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the cross product of two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the distance between two points." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the dot product of two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns a vector that points in the same direction as a reference vector. " +"The function has three vector parameters : N, the vector to orient, I, the " +"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 "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the length of a vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Linear interpolation between two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the normalize product of vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 - vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 / vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns a vector that points in the direction of reflection ( a : incident " +"vector, b : normal vector )." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns a vector that points in the direction of refraction." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( vector(edge0), vector(edge1), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if 'x' is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( scalar(edge0), scalar(edge1), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if 'x' is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( vector(edge), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( scalar(edge), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Adds vector to vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Divides vector by vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies vector by vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the remainder of the two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Subtracts vector from vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Custom Godot Shader Language expression, with custom amount of input and " +"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 "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns falloff based on the dot product of surface normal and view " +"direction of camera (pass associated inputs to it)." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) (Fragment/Light mode only) Scalar derivative function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) (Fragment/Light mode only) Vector derivative function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Derivative in 'x' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Derivative in 'x' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Derivative in 'y' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Derivative in 'y' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Sum of absolute derivative " +"in 'x' and 'y'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Sum of absolute derivative " +"in 'x' and 'y'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "VisualShader" msgstr "" @@ -7721,6 +9220,10 @@ msgid "Directory already contains a Godot project." msgstr "" #: editor/project_manager.cpp +msgid "New Game Project" +msgstr "" + +#: editor/project_manager.cpp msgid "Imported Project" msgstr "" @@ -7767,10 +9270,6 @@ msgid "Rename Project" msgstr "" #: editor/project_manager.cpp -msgid "New Game Project" -msgstr "" - -#: editor/project_manager.cpp msgid "Import Existing Project" msgstr "" @@ -7799,10 +9298,6 @@ msgid "Project Name:" msgstr "" #: editor/project_manager.cpp -msgid "Create folder" -msgstr "" - -#: editor/project_manager.cpp msgid "Project Path:" msgstr "" @@ -7811,10 +9306,6 @@ msgid "Project Installation Path:" msgstr "" #: editor/project_manager.cpp -msgid "Browse" -msgstr "" - -#: editor/project_manager.cpp msgid "Renderer:" msgstr "" @@ -7868,8 +9359,8 @@ msgid "" "\n" "If you proceed with opening it, it will be converted to Godot's current " "configuration file format.\n" -"Warning: You will not be able to open the project with previous versions of " -"the engine anymore." +"Warning: You won't be able to open the project with previous versions of the " +"engine anymore." msgstr "" #: editor/project_manager.cpp @@ -7880,8 +9371,8 @@ msgid "" "%s\n" "\n" "Do you want to convert it?\n" -"Warning: You will not be able to open the project with previous versions of " -"the engine anymore." +"Warning: You won't be able to open the project with previous versions of the " +"engine anymore." msgstr "" #: editor/project_manager.cpp @@ -7891,9 +9382,10 @@ msgid "" msgstr "" #: editor/project_manager.cpp +#, fuzzy msgid "" "Can't run project: no main scene defined.\n" -"Please edit the project and set the main scene in \"Project Settings\" under " +"Please edit the project and set the main scene in the Project Settings under " "the \"Application\" category." msgstr "" "Proiectul nu poate fi executat: nicio scenă principală nu a fost definită.\n" @@ -7909,23 +9401,38 @@ msgstr "" "Te rog editează proiectul pentru a declanÈ™a importul iniÈ›ial." #: editor/project_manager.cpp -msgid "Are you sure to run more than one project?" +#, fuzzy +msgid "Are you sure to run %d projects at once?" msgstr "EÈ™ti sigur că vrei să execuÈ›i acel proiect?" #: editor/project_manager.cpp -msgid "Remove project from the list? (Folder contents will not be modified)" +msgid "" +"Remove %d projects from the list?\n" +"The project folders' contents won't be modified." +msgstr "" + +#: editor/project_manager.cpp +msgid "" +"Remove this project from the list?\n" +"The project folder's contents won't be modified." +msgstr "" + +#: editor/project_manager.cpp +msgid "" +"Remove all missing projects from the list? (Folders contents will not be " +"modified)" msgstr "" #: editor/project_manager.cpp msgid "" "Language changed.\n" -"The UI will update next time the editor or project manager starts." +"The interface will update after restarting the editor or project manager." msgstr "" #: editor/project_manager.cpp msgid "" -"You are about the scan %s folders for existing Godot projects. Do you " -"confirm?" +"Are you sure to scan %s folders for existing Godot projects?\n" +"This could take a while." msgstr "" #: editor/project_manager.cpp @@ -7949,6 +9456,11 @@ msgid "New Project" msgstr "" #: editor/project_manager.cpp +#, fuzzy +msgid "Remove Missing" +msgstr "Elimină punct" + +#: editor/project_manager.cpp msgid "Templates" msgstr "" @@ -7965,9 +9477,10 @@ msgid "Can't run project" msgstr "Proiectul nu poate fi executat" #: editor/project_manager.cpp +#, fuzzy msgid "" -"You don't currently have any projects.\n" -"Would you like to explore the official example projects in the Asset Library?" +"You currently don't have any projects.\n" +"Would you like to explore official example projects in the Asset Library?" msgstr "" "Deocamdată nu ai niciun proiect.\n" "DoreÈ™ti să explorezi exemplele de proiecte oficiale din Librăria de Asset-" @@ -7996,8 +9509,9 @@ msgid "" msgstr "" #: editor/project_settings_editor.cpp -msgid "Action '%s' already exists!" -msgstr "" +#, fuzzy +msgid "An action with the name '%s' already exists." +msgstr "EROARE: Numele animaÈ›iei există deja!" #: editor/project_settings_editor.cpp msgid "Rename Input Action Event" @@ -8151,10 +9665,6 @@ msgid "" msgstr "" #: editor/project_settings_editor.cpp -msgid "Already existing" -msgstr "" - -#: editor/project_settings_editor.cpp msgid "Add Input Action" msgstr "" @@ -8219,7 +9729,7 @@ msgid "Override For..." msgstr "" #: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp -msgid "Editor must be restarted for changes to take effect" +msgid "The editor must be restarted for changes to take effect." msgstr "" #: editor/project_settings_editor.cpp @@ -8280,12 +9790,14 @@ msgid "Locales Filter" msgstr "" #: editor/project_settings_editor.cpp -msgid "Show all locales" -msgstr "" +#, fuzzy +msgid "Show All Locales" +msgstr "Arată Oasele" #: editor/project_settings_editor.cpp -msgid "Show only selected locales" -msgstr "" +#, fuzzy +msgid "Show Selected Locales Only" +msgstr "Numai SelecÈ›ia" #: editor/project_settings_editor.cpp msgid "Filter mode:" @@ -8300,14 +9812,6 @@ msgid "AutoLoad" msgstr "" #: editor/property_editor.cpp -msgid "Ease In" -msgstr "" - -#: editor/property_editor.cpp -msgid "Ease Out" -msgstr "" - -#: editor/property_editor.cpp msgid "Zero" msgstr "" @@ -8382,7 +9886,7 @@ msgstr "" #: editor/rename_dialog.cpp #, fuzzy -msgid "Advanced options" +msgid "Advanced Options" msgstr "OpÈ›iuni Snapping" #: editor/rename_dialog.cpp @@ -8648,7 +10152,7 @@ msgstr "Curăță Derivarea" #: editor/scene_tree_dock.cpp #, fuzzy -msgid "Custom Node" +msgid "Other Node" msgstr "Creează Nod" #: editor/scene_tree_dock.cpp @@ -8691,7 +10195,7 @@ msgstr "Curăță Derivarea" #: editor/scene_tree_dock.cpp #, fuzzy -msgid "Open documentation" +msgid "Open Documentation" msgstr "Deschide Recente" #: editor/scene_tree_dock.cpp @@ -8720,7 +10224,7 @@ msgstr "" msgid "Save Branch as Scene" msgstr "" -#: editor/scene_tree_dock.cpp +#: editor/scene_tree_dock.cpp editor/script_editor_debugger.cpp msgid "Copy Node Path" msgstr "" @@ -8764,6 +10268,21 @@ msgid "Toggle Visible" msgstr "ComutaÈ›i FiÈ™iere Ascunse" #: editor/scene_tree_editor.cpp +#, fuzzy +msgid "Unlock Node" +msgstr "Nod OneShot" + +#: editor/scene_tree_editor.cpp +#, fuzzy +msgid "Button Group" +msgstr "Adaugă în Grup" + +#: editor/scene_tree_editor.cpp +#, fuzzy +msgid "(Connecting From)" +msgstr "Eroare de Conexiune" + +#: editor/scene_tree_editor.cpp msgid "Node configuration warning:" msgstr "" @@ -8785,9 +10304,9 @@ msgid "" "Click to show groups dock." msgstr "" -#: editor/scene_tree_editor.cpp editor/script_create_dialog.cpp +#: editor/scene_tree_editor.cpp #, fuzzy -msgid "Open Script" +msgid "Open Script:" msgstr "Execută Scriptul" #: editor/scene_tree_editor.cpp @@ -8833,90 +10352,100 @@ msgid "Select a Node" msgstr "" #: editor/script_create_dialog.cpp -msgid "Error loading template '%s'" -msgstr "" - -#: editor/script_create_dialog.cpp -msgid "Error - Could not create script in filesystem." -msgstr "" +#, fuzzy +msgid "Path is empty." +msgstr "Mesh-ul este gol!" #: editor/script_create_dialog.cpp -msgid "Error loading script from %s" -msgstr "" +#, fuzzy +msgid "Filename is empty." +msgstr "Mesh-ul este gol!" #: editor/script_create_dialog.cpp -msgid "N/A" +msgid "Path is not local." msgstr "" #: editor/script_create_dialog.cpp #, fuzzy -msgid "Open Script/Choose Location" -msgstr "Deschide Editorul de Scripturi" +msgid "Invalid base path." +msgstr "Cale nevalidă." #: editor/script_create_dialog.cpp -msgid "Path is empty" -msgstr "" +#, fuzzy +msgid "A directory with the same name exists." +msgstr "Un fiÈ™ier sau un director cu acest nume există deja." #: editor/script_create_dialog.cpp #, fuzzy -msgid "Filename is empty" -msgstr "Mesh-ul este gol!" +msgid "Invalid extension." +msgstr "Trebuie să utilizaÅ£i o extensie valida." #: editor/script_create_dialog.cpp -msgid "Path is not local" +msgid "Wrong extension chosen." msgstr "" #: editor/script_create_dialog.cpp -msgid "Invalid base path" +msgid "Error loading template '%s'" msgstr "" #: editor/script_create_dialog.cpp -msgid "Directory of the same name exists" +msgid "Error - Could not create script in filesystem." msgstr "" #: editor/script_create_dialog.cpp -msgid "File exists, will be reused" +msgid "Error loading script from %s" msgstr "" #: editor/script_create_dialog.cpp -msgid "Invalid extension" +msgid "N/A" msgstr "" #: editor/script_create_dialog.cpp -msgid "Wrong extension chosen" -msgstr "" +#, fuzzy +msgid "Open Script / Choose Location" +msgstr "Deschide Editorul de Scripturi" #: editor/script_create_dialog.cpp -msgid "Invalid Path" -msgstr "" +#, fuzzy +msgid "Open Script" +msgstr "Execută Scriptul" #: editor/script_create_dialog.cpp -msgid "Invalid class name" +msgid "File exists, it will be reused." msgstr "" #: editor/script_create_dialog.cpp -msgid "Invalid inherited parent name or path" -msgstr "" +#, fuzzy +msgid "Invalid class name." +msgstr "Nume nevalid." #: editor/script_create_dialog.cpp -msgid "Script valid" +msgid "Invalid inherited parent name or path." msgstr "" #: editor/script_create_dialog.cpp +#, fuzzy +msgid "Script is valid." +msgstr "Arborele AnimaÈ›iei este valid." + +#: editor/script_create_dialog.cpp msgid "Allowed: a-z, A-Z, 0-9 and _" msgstr "" #: editor/script_create_dialog.cpp -msgid "Built-in script (into scene file)" -msgstr "" +#, fuzzy +msgid "Built-in script (into scene file)." +msgstr "OperaÈ›iuni cu fiÈ™iere tip scenă." #: editor/script_create_dialog.cpp -msgid "Create new script file" -msgstr "" +#, fuzzy +msgid "Will create a new script file." +msgstr "CreaÈ›i %s Nou" #: editor/script_create_dialog.cpp -msgid "Load existing script file" -msgstr "" +#, fuzzy +msgid "Will load an existing script file." +msgstr "ÃŽncărcaÅ£i o Schemă de Pistă Audio existentă." #: editor/script_create_dialog.cpp msgid "Language" @@ -9046,6 +10575,10 @@ msgstr "" msgid "Set From Tree" msgstr "" +#: editor/script_editor_debugger.cpp +msgid "Export measures as CSV" +msgstr "" + #: editor/settings_config_dialog.cpp #, fuzzy msgid "Erase Shortcut" @@ -9180,6 +10713,15 @@ msgid "GDNativeLibrary" msgstr "" #: 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 "Dezactivează Cercul de Actualizare" + +#: modules/gdnative/gdnative_library_singleton_editor.cpp msgid "Library" msgstr "" @@ -9265,8 +10807,9 @@ msgid "GridMap Fill Selection" msgstr "Toată selecÈ›ia" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "GridMap Duplicate Selection" -msgstr "" +#, fuzzy +msgid "GridMap Paste Selection" +msgstr "Toată selecÈ›ia" #: modules/gridmap/grid_map_editor_plugin.cpp msgid "GridMap Paint" @@ -9333,18 +10876,6 @@ msgid "Cursor Clear Rotation" msgstr "Curăță RotaÈ›ia Cursorului" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Create Area" -msgstr "" - -#: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Create Exterior Connector" -msgstr "" - -#: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Erase Area" -msgstr "" - -#: modules/gridmap/grid_map_editor_plugin.cpp msgid "Clear Selection" msgstr "Curăță SelecÈ›ia" @@ -9699,15 +11230,7 @@ msgid "Available Nodes:" msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Select or create a function to edit graph" -msgstr "" - -#: modules/visual_script/visual_script_editor.cpp -msgid "Edit Signal Arguments:" -msgstr "" - -#: modules/visual_script/visual_script_editor.cpp -msgid "Edit Variable:" +msgid "Select or create a function to edit its graph." msgstr "" #: modules/visual_script/visual_script_editor.cpp @@ -9839,6 +11362,19 @@ msgid "Debug keystore not configured in the Editor Settings nor in the preset." msgstr "" #: platform/android/export/export.cpp +msgid "Custom build requires a valid Android SDK path in Editor Settings." +msgstr "" + +#: platform/android/export/export.cpp +msgid "Invalid Android SDK path for custom build in Editor Settings." +msgstr "" + +#: platform/android/export/export.cpp +msgid "" +"Android project is not installed for compiling. Install from Editor menu." +msgstr "" + +#: platform/android/export/export.cpp msgid "Invalid public key for APK expansion." msgstr "" @@ -9847,6 +11383,34 @@ msgstr "" msgid "Invalid package name:" msgstr "Nume nevalid." +#: platform/android/export/export.cpp +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 "" +"Android build version mismatch:\n" +" Template installed: %s\n" +" Godot Version: %s\n" +"Please reinstall Android build template from 'Project' menu." +msgstr "" + +#: platform/android/export/export.cpp +msgid "Building Android Project (gradle)" +msgstr "" + +#: 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 "" + +#: platform/android/export/export.cpp +msgid "No build apk generated at: " +msgstr "" + #: platform/iphone/export/export.cpp msgid "Identifier is missing." msgstr "" @@ -10104,27 +11668,27 @@ msgid "ARVRCamera must have an ARVROrigin node as its parent" msgstr "" #: scene/3d/arvr_nodes.cpp -msgid "ARVRController must have an ARVROrigin node as its parent" +msgid "ARVRController must have an ARVROrigin node as its parent." msgstr "" #: scene/3d/arvr_nodes.cpp msgid "" -"The controller id must not be 0 or this controller will not be bound to an " -"actual controller" +"The controller ID must not be 0 or this controller won't be bound to an " +"actual controller." msgstr "" #: scene/3d/arvr_nodes.cpp -msgid "ARVRAnchor must have an ARVROrigin node as its parent" +msgid "ARVRAnchor must have an ARVROrigin node as its parent." msgstr "" #: scene/3d/arvr_nodes.cpp msgid "" -"The anchor id must not be 0 or this anchor will not be bound to an actual " -"anchor" +"The anchor ID must not be 0 or this anchor won't be bound to an actual " +"anchor." msgstr "" #: scene/3d/arvr_nodes.cpp -msgid "ARVROrigin requires an ARVRCamera child node" +msgid "ARVROrigin requires an ARVRCamera child node." msgstr "" #: scene/3d/baked_lightmap.cpp @@ -10194,8 +11758,8 @@ msgstr "" #: scene/3d/cpu_particles.cpp msgid "" -"CPUParticles animation requires the usage of a SpatialMaterial with " -"\"Billboard Particles\" enabled." +"CPUParticles animation requires the usage of a SpatialMaterial whose " +"Billboard Mode is set to \"Particle Billboard\"." msgstr "" #: scene/3d/gi_probe.cpp @@ -10232,8 +11796,8 @@ msgstr "" #: scene/3d/particles.cpp msgid "" -"Particles animation requires the usage of a SpatialMaterial with \"Billboard " -"Particles\" enabled." +"Particles animation requires the usage of a SpatialMaterial whose Billboard " +"Mode is set to \"Particle Billboard\"." msgstr "" #: scene/3d/path.cpp @@ -10258,7 +11822,7 @@ msgid "Path property must point to a valid Spatial node to work." msgstr "" #: scene/3d/soft_body.cpp -msgid "This body will be ignored until you set a mesh" +msgid "This body will be ignored until you set a mesh." msgstr "" #: scene/3d/soft_body.cpp @@ -10360,7 +11924,7 @@ msgstr "" msgid "" "Container by itself serves no purpose unless a script configures it's " "children placement behavior.\n" -"If you dont't intend to add a script, then please use a plain 'Control' node " +"If you don't intend to add a script, then please use a plain 'Control' node " "instead." msgstr "" @@ -10372,11 +11936,6 @@ msgstr "" msgid "Please Confirm..." msgstr "" -#: scene/gui/file_dialog.cpp -#, fuzzy -msgid "Go to parent folder." -msgstr "AccesaÈ›i Directorul Părinte" - #: scene/gui/popup.cpp msgid "" "Popups will hide by default unless you call popup() or any of the popup*() " @@ -10450,6 +12009,47 @@ msgstr "" msgid "Varyings can only be assigned in vertex function." msgstr "" +#: servers/visual/shader_language.cpp +msgid "Constants cannot be modified." +msgstr "" + +#~ msgid "Path to Node:" +#~ msgstr "Drum la Nod:" + +#~ msgid "Delete selected files?" +#~ msgstr "ÅžtergeÈ›i fiÅŸierele selectate?" + +#~ msgid "There is no 'res://default_bus_layout.tres' file." +#~ msgstr "Nu există nici un fiÅŸier 'res://default_bus_layout.tres'." + +#~ 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)" + +#~ msgid "Previous Directory" +#~ msgstr "Directorul Anterior" + +#~ msgid "Next Directory" +#~ msgstr "Directorul Urmator" + +#~ msgid "Ease in" +#~ msgstr "Facilitare în" + +#~ msgid "Ease out" +#~ msgstr "Facilitare din" + +#~ msgid "Create Convex Static Body" +#~ msgstr "Creează un Corp Static Convex" + +#, fuzzy +#~ msgid "Custom Node" +#~ msgstr "Creează Nod" + #, fuzzy #~ msgid "Snap (s): " #~ msgstr "Pas (s):" @@ -10538,9 +12138,6 @@ msgstr "" #~ msgid "Class List:" #~ msgstr "Listă de Clase:" -#~ msgid "Search Classes" -#~ msgstr "Căutare Clase" - #~ msgid "Public Methods" #~ msgstr "Metode Publice" @@ -10585,9 +12182,6 @@ msgstr "" #~ msgid "Modify Color Ramp" #~ msgstr "Modifică Rampa de Culori" -#~ msgid "Disabled" -#~ msgstr "Dezactivat" - #~ msgid "Move Anim Track Up" #~ msgstr "Mută Pista Anim Sus" diff --git a/editor/translations/ru.po b/editor/translations/ru.po index b9794177bb..90716403f1 100644 --- a/editor/translations/ru.po +++ b/editor/translations/ru.po @@ -43,12 +43,18 @@ # ÐÑ€Ñений Солодков <arsen332211@gmail.com>, 2019. # Nikita <yakrobat@protonmail.com>, 2019. # LAT_Rio <AlSenya@yandex.ru>, 2019. +# devnp <dev.necropan@gmail.com>, 2019. +# Виктор <victor8632@bk.ru>, 2019. +# Mickety <xyngraph@gmail.com>, 2019. +# Breadp4ck <iii103@mail.ru>, 2019. +# Dark King <damir@t1c.ru>, 2019. +# Teashrock <kajitsu22@gmail.com>, 2019. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2019-04-14 13:04+0000\n" -"Last-Translator: LAT_Rio <AlSenya@yandex.ru>\n" +"PO-Revision-Date: 2019-06-16 02:33+0000\n" +"Last-Translator: Teashrock <kajitsu22@gmail.com>\n" "Language-Team: Russian <https://hosted.weblate.org/projects/godot-engine/" "godot/ru/>\n" "Language: ru\n" @@ -57,7 +63,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.6-dev\n" +"X-Generator: Weblate 3.7-dev\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -112,6 +118,15 @@ msgstr "СбаланÑированный" msgid "Mirror" msgstr "Отобразить" +#: editor/animation_bezier_editor.cpp editor/editor_profiler.cpp +msgid "Time:" +msgstr "ВремÑ:" + +#: editor/animation_bezier_editor.cpp +#, fuzzy +msgid "Value:" +msgstr "Значение" + #: editor/animation_bezier_editor.cpp msgid "Insert Key Here" msgstr "Ð’Ñтавить ключ здеÑÑŒ" @@ -194,14 +209,18 @@ msgid "Animation Playback Track" msgstr "Трек ВоÑÐ¿Ñ€Ð¾Ð¸Ð·Ð²ÐµÐ´ÐµÐ½Ð¸Ñ Ðнимации" #: editor/animation_track_editor.cpp -msgid "Add Track" -msgstr "Добавить новый Трек" +msgid "Animation length (frames)" +msgstr "ПродолжительноÑть анимации (в кадрах)" #: editor/animation_track_editor.cpp -msgid "Animation Length Time (seconds)" +msgid "Animation length (seconds)" msgstr "ПродолжительноÑть анимации (в Ñекундах)" #: editor/animation_track_editor.cpp +msgid "Add Track" +msgstr "Добавить новый Трек" + +#: editor/animation_track_editor.cpp msgid "Animation Looping" msgstr "Зацикливание анимации" @@ -326,11 +345,13 @@ msgid "Create %d NEW tracks and insert keys?" msgstr "Создать %d новые дорожки и вÑтавить ключи?" #: editor/animation_track_editor.cpp editor/create_dialog.cpp -#: editor/editor_audio_buses.cpp editor/editor_plugin_settings.cpp -#: editor/plugin_config_dialog.cpp +#: editor/editor_audio_buses.cpp editor/editor_feature_profile.cpp +#: editor/editor_plugin_settings.cpp editor/plugin_config_dialog.cpp #: editor/plugins/abstract_polygon_2d_editor.cpp #: editor/plugins/mesh_instance_editor_plugin.cpp -#: editor/plugins/particles_editor_plugin.cpp editor/script_create_dialog.cpp +#: editor/plugins/particles_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_create_dialog.cpp msgid "Create" msgstr "Создать" @@ -446,6 +467,23 @@ msgstr "" "один трек." #: editor/animation_track_editor.cpp +msgid "" +"This animation belongs to an imported scene, so changes to imported tracks " +"will not be saved.\n" +"\n" +"To enable the ability to add custom tracks, navigate to the scene's import " +"settings and set\n" +"\"Animation > Storage\" to \"Files\", enable \"Animation > Keep Custom Tracks" +"\", then re-import.\n" +"Alternatively, use an import preset that imports animations to separate " +"files." +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Warning: Editing imported animation" +msgstr "" + +#: editor/animation_track_editor.cpp msgid "Only show tracks from nodes selected in tree." msgstr "Показывать треки только выделенных в дереве узлов." @@ -464,7 +502,7 @@ msgstr "Значение шага анимации." #: editor/animation_track_editor.cpp msgid "Seconds" -msgstr "" +msgstr "Секунды" #: editor/animation_track_editor.cpp msgid "FPS" @@ -579,7 +617,8 @@ msgstr "КоÑффициент маÑштабированиÑ:" msgid "Select tracks to copy:" msgstr "Выбрать треки Ð´Ð»Ñ ÐºÐ¾Ð¿Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ:" -#: editor/animation_track_editor.cpp editor/editor_properties.cpp +#: editor/animation_track_editor.cpp editor/editor_log.cpp +#: editor/editor_properties.cpp #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp @@ -647,6 +686,11 @@ msgstr "Заменить вÑÑ‘" msgid "Selection Only" msgstr "Только выделÑть" +#: editor/code_editor.cpp editor/plugins/script_text_editor.cpp +#: editor/plugins/text_editor.cpp +msgid "Standard" +msgstr "Стандартный" + #: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/texture_region_editor_plugin.cpp #: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp @@ -672,21 +716,39 @@ msgid "Line and column numbers." msgstr "Ðомера Ñтрок и Ñтолбцов." #: editor/connections_dialog.cpp -msgid "Method in target Node must be specified!" +#, fuzzy +msgid "Method in target node must be specified." msgstr "Метод должен быть указан в целевом Узле!" #: editor/connections_dialog.cpp +#, fuzzy msgid "" -"Target method not found! Specify a valid method or attach a script to target " -"Node." +"Target method not found. Specify a valid method or attach a script to the " +"target node." msgstr "" "Целевой метод не найден! Укажите правильный метод или прикрепите Ñкрипт на " "целевой узел." #: editor/connections_dialog.cpp -msgid "Connect To Node:" +#, fuzzy +msgid "Connect to Node:" msgstr "ПриÑоединить к узлу:" +#: editor/connections_dialog.cpp +#, fuzzy +msgid "Connect to Script:" +msgstr "Ðе удаётÑÑ Ð¿Ð¾Ð´ÐºÐ»ÑŽÑ‡Ð¸Ñ‚ÑŒÑÑ Ðº хоÑту:" + +#: editor/connections_dialog.cpp +#, fuzzy +msgid "From Signal:" +msgstr "Сигналы:" + +#: editor/connections_dialog.cpp +#, fuzzy +msgid "Scene does not contain any script." +msgstr "Узел не Ñодержит геометрии." + #: editor/connections_dialog.cpp editor/editor_autoload_settings.cpp #: editor/groups_editor.cpp editor/plugins/item_list_editor_plugin.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_settings_editor.cpp @@ -694,10 +756,12 @@ msgid "Add" msgstr "Добавить" #: editor/connections_dialog.cpp editor/dependency_editor.cpp -#: editor/groups_editor.cpp editor/plugins/animation_player_editor_plugin.cpp +#: editor/editor_feature_profile.cpp editor/groups_editor.cpp +#: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp #: editor/plugins/resource_preloader_editor_plugin.cpp -#: editor/plugins/theme_editor_plugin.cpp editor/project_manager.cpp +#: editor/plugins/theme_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_manager.cpp #: editor/project_settings_editor.cpp msgid "Remove" msgstr "Удалить" @@ -711,21 +775,32 @@ msgid "Extra Call Arguments:" msgstr "Дополнительные параметры вызова:" #: editor/connections_dialog.cpp -msgid "Path to Node:" -msgstr "Путь к Узлу:" - -#: editor/connections_dialog.cpp -msgid "Make Function" -msgstr "Сделать функцию" +#, fuzzy +msgid "Advanced" +msgstr "Дополнительные параметры" #: editor/connections_dialog.cpp msgid "Deferred" msgstr "Отложенное" #: editor/connections_dialog.cpp +msgid "" +"Defers the signal, storing it in a queue and only firing it at idle time." +msgstr "" + +#: editor/connections_dialog.cpp msgid "Oneshot" msgstr "Один раз" +#: editor/connections_dialog.cpp +msgid "Disconnects the signal after its first emission." +msgstr "" + +#: editor/connections_dialog.cpp +#, fuzzy +msgid "Cannot connect signal" +msgstr "Подключить Ñигнал: " + #: editor/connections_dialog.cpp editor/dependency_editor.cpp #: editor/export_template_manager.cpp editor/groups_editor.cpp #: editor/plugins/animation_player_editor_plugin.cpp @@ -766,11 +841,13 @@ msgid "Disconnect" msgstr "ОтÑоединить" #: editor/connections_dialog.cpp -msgid "Connect Signal: " +#, fuzzy +msgid "Connect a Signal to a Method" msgstr "Подключить Ñигнал: " #: editor/connections_dialog.cpp -msgid "Edit Connection: " +#, fuzzy +msgid "Edit Connection:" msgstr "Редактировать Подключение: " #: editor/connections_dialog.cpp @@ -802,7 +879,6 @@ msgid "Change %s Type" msgstr "Изменить тип %s" #: editor/create_dialog.cpp editor/project_settings_editor.cpp -#: modules/visual_script/visual_script_editor.cpp msgid "Change" msgstr "Изменить" @@ -833,7 +909,8 @@ msgid "Matches:" msgstr "СовпадениÑ:" #: editor/create_dialog.cpp editor/plugin_config_dialog.cpp -#: editor/plugins/asset_library_editor_plugin.cpp editor/property_selector.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/property_selector.cpp #: modules/visual_script/visual_script_property_selector.cpp msgid "Description:" msgstr "ОпиÑание:" @@ -847,17 +924,19 @@ msgid "Dependencies For:" msgstr "ЗавиÑимоÑти длÑ:" #: editor/dependency_editor.cpp +#, fuzzy msgid "" "Scene '%s' is currently being edited.\n" -"Changes will not take effect unless reloaded." +"Changes will only take effect when reloaded." msgstr "" "Сцена '%s' в наÑтоÑщее Ð²Ñ€ÐµÐ¼Ñ Ñ€ÐµÐ´Ð°ÐºÑ‚Ð¸Ñ€ÑƒÐµÑ‚ÑÑ.\n" "Ð˜Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð½Ðµ вÑтупÑÑ‚ в Ñилу без перезапуÑка." #: editor/dependency_editor.cpp +#, fuzzy msgid "" "Resource '%s' is in use.\n" -"Changes will take effect when reloaded." +"Changes will only take effect when reloaded." msgstr "" "РеÑурÑу '% s' иÑпользуетÑÑ.\n" "Ð˜Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð²ÑтупÑÑ‚ в Ñилу поÑле перезапуÑка." @@ -952,21 +1031,14 @@ msgid "Permanently delete %d item(s)? (No undo!)" msgstr "ÐавÑегда удалить %d Ñлемент(ов)? (ÐÐµÐ»ÑŒÐ·Ñ Ð¾Ñ‚Ð¼ÐµÐ½Ð¸Ñ‚ÑŒ!)" #: editor/dependency_editor.cpp -msgid "Owns" -msgstr "Кол-во" - -#: editor/dependency_editor.cpp -msgid "Resources Without Explicit Ownership:" -msgstr "РеÑурÑÑ‹ без Ñвного владениÑ:" +#, fuzzy +msgid "Show Dependencies" +msgstr "ЗавиÑимоÑти" #: editor/dependency_editor.cpp editor/editor_node.cpp msgid "Orphan Resource Explorer" msgstr "Обзор подключённых реÑурÑов" -#: editor/dependency_editor.cpp -msgid "Delete selected files?" -msgstr "Удалить выбранные файлы?" - #: editor/dependency_editor.cpp editor/editor_audio_buses.cpp #: editor/editor_file_dialog.cpp editor/editor_node.cpp #: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp @@ -975,6 +1047,14 @@ msgstr "Удалить выбранные файлы?" msgid "Delete" msgstr "Удалить" +#: editor/dependency_editor.cpp +msgid "Owns" +msgstr "Кол-во" + +#: editor/dependency_editor.cpp +msgid "Resources Without Explicit Ownership:" +msgstr "РеÑурÑÑ‹ без Ñвного владениÑ:" + #: editor/dictionary_property_edit.cpp msgid "Change Dictionary Key" msgstr "Изменить ключ ÑловарÑ" @@ -1088,7 +1168,7 @@ msgstr "Пакет уÑпешно уÑтановлен!" msgid "Success!" msgstr "УÑпех!" -#: editor/editor_asset_installer.cpp +#: editor/editor_asset_installer.cpp editor/editor_node.cpp #: editor/plugins/asset_library_editor_plugin.cpp msgid "Install" msgstr "УÑтановить" @@ -1215,8 +1295,12 @@ msgid "Open Audio Bus Layout" msgstr "Открыть раÑкладку звуковой шины" #: editor/editor_audio_buses.cpp -msgid "There is no 'res://default_bus_layout.tres' file." -msgstr "ОтÑутÑтвует файл «res://default_bus_layout.tres»." +msgid "There is no '%s' file." +msgstr "" + +#: editor/editor_audio_buses.cpp editor/plugins/canvas_item_editor_plugin.cpp +msgid "Layout" +msgstr "Макет" #: editor/editor_audio_buses.cpp msgid "Invalid file, not an audio bus layout." @@ -1269,24 +1353,31 @@ msgid "Valid characters:" msgstr "ДопуÑтимые Ñимволы:" #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing engine class name." +#, fuzzy +msgid "Must not collide with an existing engine class name." msgstr "" "ÐедопуÑтимое имÑ. Ðе должно конфликтовать Ñ ÑущеÑтвующим именем клаÑÑа " "движка." #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing buit-in type name." +#, fuzzy +msgid "Must not collide with an existing buit-in type name." msgstr "" "ÐедопуÑтимое имÑ. Ðе должно конфликтовать Ñ ÑущеÑтвующим вÑтроенным именем " "типа." #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing global constant name." +#, fuzzy +msgid "Must not collide with an existing global constant name." msgstr "" "ÐедопуÑтимое имÑ. Ðе должно конфликтовать Ñ ÑущеÑтвующим глобальным именем " "конÑтанты." #: editor/editor_autoload_settings.cpp +msgid "Keyword cannot be used as an autoload name." +msgstr "" + +#: editor/editor_autoload_settings.cpp msgid "Autoload '%s' already exists!" msgstr "Ðвтозагрузка '%s' уже ÑущеÑтвует!" @@ -1314,11 +1405,12 @@ msgstr "Включить" msgid "Rearrange Autoloads" msgstr "ПереÑтановка автозагрузок" -#: editor/editor_autoload_settings.cpp -msgid "Invalid Path." +#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp +#, fuzzy +msgid "Invalid path." msgstr "ÐедопуÑтимый путь." -#: editor/editor_autoload_settings.cpp +#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp msgid "File does not exist." msgstr "Файл не ÑущеÑтвует." @@ -1369,7 +1461,8 @@ msgid "[unsaved]" msgstr "[не Ñохранено]" #: editor/editor_dir_dialog.cpp -msgid "Please select a base directory first" +#, fuzzy +msgid "Please select a base directory first." msgstr "ПожалуйÑта, выберите базовый каталог" #: editor/editor_dir_dialog.cpp @@ -1377,7 +1470,8 @@ msgid "Choose a Directory" msgstr "Выбрать каталог" #: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp -#: editor/filesystem_dock.cpp scene/gui/file_dialog.cpp +#: editor/filesystem_dock.cpp editor/project_manager.cpp +#: scene/gui/file_dialog.cpp msgid "Create Folder" msgstr "Создать папку" @@ -1452,6 +1546,178 @@ msgstr "ПользовательÑкий релизный шаблон не на msgid "Template file not found:" msgstr "Файл шаблона не найден:" +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "3D Editor" +msgstr "Редактор" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Script Editor" +msgstr "Открыть редактор Ñкриптов" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Asset Library" +msgstr "Открыть библиотеку шаблонов" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Scene Tree Editing" +msgstr "Дерево Ñцены (Узлы):" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Import Dock" +msgstr "Импорт" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Node Dock" +msgstr "Режим перемещениÑ" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Filesystem Dock" +msgstr "Ð¤Ð°Ð¹Ð»Ð¾Ð²Ð°Ñ ÑиÑтема" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Erase profile '%s'? (no undo)" +msgstr "Заменить вÑÑ‘ (без возможноÑти отмены)" + +#: editor/editor_feature_profile.cpp +msgid "Profile must be a valid filename and must not contain '.'" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Profile with this name already exists." +msgstr "Файл или папка Ñ Ñ‚Ð°ÐºÐ¸Ð¼ именем уже ÑущеÑтвует." + +#: editor/editor_feature_profile.cpp +msgid "(Editor Disabled, Properties Disabled)" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "(Properties Disabled)" +msgstr "Только ÑвойÑтва" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "(Editor Disabled)" +msgstr "Отключить обрезку" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Class Options:" +msgstr "ОпиÑание клаÑÑа:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enable Contextual Editor" +msgstr "Открыть Ñледующий редактор" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enabled Properties:" +msgstr "СвойÑтва:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enabled Features:" +msgstr "ОÑобенноÑти" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enabled Classes:" +msgstr "ПоиÑк клаÑÑов" + +#: editor/editor_feature_profile.cpp +msgid "File '%s' format is invalid, import aborted." +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "" +"Profile '%s' already exists. Remote it first before importing, import " +"aborted." +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Error saving profile to path: '%s'." +msgstr "Ошибка при загрузке шаблона '%s'" + +#: editor/editor_feature_profile.cpp +msgid "Unset" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Current Profile" +msgstr "Ð¢ÐµÐºÑƒÑ‰Ð°Ñ Ð²ÐµÑ€ÑиÑ:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Make Current" +msgstr "Выбранный:" + +#: editor/editor_feature_profile.cpp +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "New" +msgstr "Ðовый" + +#: editor/editor_feature_profile.cpp editor/editor_node.cpp +#: editor/plugins/asset_library_editor_plugin.cpp editor/project_manager.cpp +msgid "Import" +msgstr "Импорт" + +#: editor/editor_feature_profile.cpp editor/editor_node.cpp +#: editor/project_export.cpp +msgid "Export" +msgstr "ÐкÑпорт" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Available Profiles" +msgstr "ДоÑтупные узлы:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enabled Classes" +msgstr "ПоиÑк клаÑÑов" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Class Options" +msgstr "ОпиÑание клаÑÑа" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "New profile name:" +msgstr "Ðовое имÑ:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Erase Profile" +msgstr "Стереть облаÑть" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Import Profile(s)" +msgstr "Импортированный проект" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Export Profile" +msgstr "ÐкÑпортировать проект" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Manage Editor Feature Profiles" +msgstr "Управление шаблонами ÑкÑпорта" + #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Select Current Folder" msgstr "Выбрать текущую папку" @@ -1472,8 +1738,8 @@ msgstr "Копировать путь" msgid "Open in File Manager" msgstr "Открыть в проводнике" -#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp -#: editor/project_manager.cpp +#: editor/editor_file_dialog.cpp editor/editor_node.cpp +#: editor/filesystem_dock.cpp editor/project_manager.cpp msgid "Show in File Manager" msgstr "ПроÑмотреть в проводнике" @@ -1532,7 +1798,7 @@ msgstr "Вперёд" msgid "Go Up" msgstr "Вверх" -#: editor/editor_file_dialog.cpp +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Toggle Hidden Files" msgstr "Скрыть файлы" @@ -1564,14 +1830,19 @@ msgstr "ÐŸÑ€ÐµÐ´Ñ‹Ð´ÑƒÑ‰Ð°Ñ Ð¿Ð°Ð¿ÐºÐ°" msgid "Next Folder" msgstr "Ð¡Ð»ÐµÐ´ÑƒÑŽÑ‰Ð°Ñ Ð¿Ð°Ð¿ÐºÐ°" -#: editor/editor_file_dialog.cpp -msgid "Go to parent folder" -msgstr "Перейти к родительÑкой папке" +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp +msgid "Go to parent folder." +msgstr "Перейти к родительÑкой папке." #: editor/editor_file_dialog.cpp msgid "(Un)favorite current folder." msgstr "Добавить или удалить текущую папку из избранных." +#: editor/editor_file_dialog.cpp +#, fuzzy +msgid "Toggle visibility of hidden files." +msgstr "Скрыть файлы" + #: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp msgid "View items as a grid of thumbnails." msgstr "ПроÑмотр Ñлементов в виде миниатюр." @@ -1586,6 +1857,7 @@ msgstr "Каталоги и файлы:" #: editor/editor_file_dialog.cpp editor/plugins/sprite_editor_plugin.cpp #: editor/plugins/style_box_editor_plugin.cpp +#: editor/plugins/theme_editor_plugin.cpp msgid "Preview:" msgstr "ПредпроÑмотр:" @@ -1602,6 +1874,12 @@ msgid "ScanSources" msgstr "Сканировать иÑходники" #: editor/editor_file_system.cpp +msgid "" +"There are multiple importers for different types pointing to file %s, import " +"aborted" +msgstr "" + +#: editor/editor_file_system.cpp msgid "(Re)Importing Assets" msgstr "(Ре)Импортировать" @@ -1784,6 +2062,10 @@ msgstr "УÑтановить МножеÑтво:" msgid "Output:" msgstr "Вывод:" +#: editor/editor_log.cpp editor/plugins/tile_map_editor_plugin.cpp +msgid "Copy Selection" +msgstr "Копировать выделенное" + #: editor/editor_log.cpp editor/editor_profiler.cpp #: editor/editor_properties.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp @@ -1841,7 +2123,7 @@ msgstr "Ошибка при Ñохранении." #: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp msgid "Can't open '%s'. The file could have been moved or deleted." -msgstr "Ðе возможно открыть '%s'. Возможно файл перемещен или удален." +msgstr "Ðе удалоÑÑŒ открыть '%s'. Файл мог быть перемещён или удалён." #: editor/editor_node.cpp msgid "Error while parsing '%s'." @@ -1940,9 +2222,10 @@ msgstr "" "чтобы лучше понÑть Ñтот процеÑÑ." #: editor/editor_node.cpp +#, fuzzy msgid "" "This resource belongs to a scene that was instanced or inherited.\n" -"Changes to it will not be kept when saving the current scene." +"Changes to it won't be kept when saving the current scene." msgstr "" "Ðтот реÑÑƒÑ€Ñ Ð¿Ñ€Ð¸Ð½Ð°Ð´Ð»ÐµÐ¶Ð¸Ñ‚ к Ñцене, инÑтанцированной или унаÑледованной.\n" "Ð˜Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð½Ðµ будут Ñохранены при Ñохранении текущей Ñцены." @@ -1956,8 +2239,9 @@ msgstr "" "наÑтройки в панеле импорта, а затем повторно импортируйте." #: editor/editor_node.cpp +#, fuzzy msgid "" -"This scene was imported, so changes to it will not be kept.\n" +"This scene was imported, so changes to it won't be kept.\n" "Instancing it or inheriting will allow making changes to it.\n" "Please read the documentation relevant to importing scenes to better " "understand this workflow." @@ -1968,8 +2252,9 @@ msgstr "" "чтобы лучше понÑть Ñтот процеÑÑ." #: editor/editor_node.cpp +#, fuzzy msgid "" -"This is a remote object so changes to it will not be kept.\n" +"This is a remote object, so changes to it won't be kept.\n" "Please read the documentation relevant to debugging to better understand " "this workflow." msgstr "" @@ -1982,36 +2267,6 @@ msgid "There is no defined scene to run." msgstr "Ðет определённой Ñцены, чтобы работать." #: editor/editor_node.cpp -msgid "" -"No main scene has ever been defined, select one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" -"Ðе назначена Ð³Ð»Ð°Ð²Ð½Ð°Ñ Ñцена. Хотите выбрать?\n" -"Позже вы можете указать её в параметре \"main_scene\" раÑположенном\n" -"в \"ÐаÑтройки проекта - ОÑновное - application\"." - -#: editor/editor_node.cpp -msgid "" -"Selected scene '%s' does not exist, select a valid one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" -"Ð’Ñ‹Ð±Ñ€Ð°Ð½Ð½Ð°Ñ Ñцена '%s' не ÑущеÑтвует. Хотите выбрать другую?\n" -"Позже вы можете указать её в параметре \"main_scene\" раÑположенном\n" -"в \"ÐаÑтройки проекта - ОÑновное - application\"." - -#: editor/editor_node.cpp -msgid "" -"Selected scene '%s' is not a scene file, select a valid one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" -"Выбранный файл '%s' не ÑвлÑетÑÑ Ñ„Ð°Ð¹Ð»Ð¾Ð¼ Ñцены. Хотите выбрать другой файл?\n" -"Позже вы можете указать её в параметре \"main_scene\" раÑположенном\n" -"в \"ÐаÑтройки проекта - ОÑновное - application\"." - -#: editor/editor_node.cpp msgid "Current scene was never saved, please save it prior to running." msgstr "Ð¢ÐµÐºÑƒÑ‰Ð°Ñ Ñцена никогда не была Ñохранена, Ñохраните его до выполнениÑ." @@ -2019,7 +2274,7 @@ msgstr "Ð¢ÐµÐºÑƒÑ‰Ð°Ñ Ñцена никогда не была ÑохраненРmsgid "Could not start subprocess!" msgstr "Ðе удаётÑÑ Ð·Ð°Ð¿ÑƒÑтить подпроцеÑÑ!" -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/filesystem_dock.cpp msgid "Open Scene" msgstr "Открыть Ñцену" @@ -2028,6 +2283,11 @@ msgid "Open Base Scene" msgstr "Открыть оÑновную Ñцену" #: editor/editor_node.cpp +#, fuzzy +msgid "Quick Open..." +msgstr "БыÑтро открыть Ñцену..." + +#: editor/editor_node.cpp msgid "Quick Open Scene..." msgstr "БыÑтро открыть Ñцену..." @@ -2203,6 +2463,36 @@ msgid "Clear Recent Scenes" msgstr "ОчиÑтить поÑледние Ñцены" #: editor/editor_node.cpp +msgid "" +"No main scene has ever been defined, select one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" +"Ðе назначена Ð³Ð»Ð°Ð²Ð½Ð°Ñ Ñцена. Хотите выбрать?\n" +"Позже вы можете указать её в параметре \"main_scene\" раÑположенном\n" +"в \"ÐаÑтройки проекта - ОÑновное - application\"." + +#: editor/editor_node.cpp +msgid "" +"Selected scene '%s' does not exist, select a valid one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" +"Ð’Ñ‹Ð±Ñ€Ð°Ð½Ð½Ð°Ñ Ñцена '%s' не ÑущеÑтвует. Хотите выбрать другую?\n" +"Позже вы можете указать её в параметре \"main_scene\" раÑположенном\n" +"в \"ÐаÑтройки проекта - ОÑновное - application\"." + +#: editor/editor_node.cpp +msgid "" +"Selected scene '%s' is not a scene file, select a valid one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" +"Выбранный файл '%s' не ÑвлÑетÑÑ Ñ„Ð°Ð¹Ð»Ð¾Ð¼ Ñцены. Хотите выбрать другой файл?\n" +"Позже вы можете указать её в параметре \"main_scene\" раÑположенном\n" +"в \"ÐаÑтройки проекта - ОÑновное - application\"." + +#: editor/editor_node.cpp msgid "Save Layout" msgstr "Сохранить макет" @@ -2228,6 +2518,19 @@ msgstr "ЗапуÑтить Ñцену" msgid "Close Tab" msgstr "Закрыть вкладку" +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +msgid "Close Other Tabs" +msgstr "Закрыть другие вкладки" + +#: editor/editor_node.cpp +msgid "Close Tabs to the Right" +msgstr "" + +#: editor/editor_node.cpp +#, fuzzy +msgid "Close All Tabs" +msgstr "Закрыть вÑÑ‘" + #: editor/editor_node.cpp msgid "Switch Scene Tab" msgstr "Переключить вкладку Ñцены" @@ -2350,10 +2653,6 @@ msgstr "Проект" msgid "Project Settings" msgstr "Параметры проекта" -#: editor/editor_node.cpp editor/project_export.cpp -msgid "Export" -msgstr "ÐкÑпорт" - #: editor/editor_node.cpp editor/plugins/tile_set_editor_plugin.cpp msgid "Tools" msgstr "ИнÑтрументы" @@ -2363,6 +2662,10 @@ msgid "Open Project Data Folder" msgstr "Открыть папку Ñ Ð´Ð°Ð½Ð½Ñ‹Ð¼Ð¸ проекта" #: editor/editor_node.cpp +msgid "Install Android Build Template" +msgstr "" + +#: editor/editor_node.cpp msgid "Quit to Project List" msgstr "Выйти в ÑпиÑок проектов" @@ -2486,6 +2789,11 @@ msgstr "Открыть папку редактора данных" msgid "Open Editor Settings Folder" msgstr "Открыть папку наÑтроек редактора" +#: editor/editor_node.cpp +#, fuzzy +msgid "Manage Editor Features" +msgstr "Управление шаблонами ÑкÑпорта" + #: editor/editor_node.cpp editor/project_export.cpp msgid "Manage Export Templates" msgstr "Управление шаблонами ÑкÑпорта" @@ -2498,6 +2806,7 @@ msgstr "Справка" #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp #: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp #: editor/project_settings_editor.cpp editor/rename_dialog.cpp msgid "Search" msgstr "ПоиÑк" @@ -2587,11 +2896,6 @@ msgstr "ОбновлÑть при изменениÑÑ…" msgid "Disable Update Spinner" msgstr "Отключить Ñчётчик обновлений" -#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp -#: editor/project_manager.cpp -msgid "Import" -msgstr "Импорт" - #: editor/editor_node.cpp msgid "FileSystem" msgstr "Ð¤Ð°Ð¹Ð»Ð¾Ð²Ð°Ñ ÑиÑтема" @@ -2617,6 +2921,28 @@ msgid "Don't Save" msgstr "Ðе ÑохранÑть" #: editor/editor_node.cpp +msgid "Android build template is missing, please install relevant templates." +msgstr "" + +#: editor/editor_node.cpp +#, fuzzy +msgid "Manage Templates" +msgstr "Управление шаблонами ÑкÑпорта" + +#: editor/editor_node.cpp +msgid "" +"This will install the Android project for custom builds.\n" +"Note that, in order to use it, it needs to be enabled per export preset." +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"Android build template is already installed and it won't be overwritten.\n" +"Remove the \"build\" directory manually before attempting this operation " +"again." +msgstr "" + +#: editor/editor_node.cpp msgid "Import Templates From ZIP File" msgstr "Импортировать шаблоны из ZIP файла" @@ -2739,10 +3065,6 @@ msgid "Physics Frame %" msgstr "Кадр физики %" #: editor/editor_profiler.cpp -msgid "Time:" -msgstr "ВремÑ:" - -#: editor/editor_profiler.cpp msgid "Inclusive" msgstr "Включительно" @@ -2885,10 +3207,6 @@ msgid "Remove Item" msgstr "Удалить Ñлемент" #: editor/editor_run_native.cpp -msgid "Select device from the list" -msgstr "Выберите уÑтройÑтво из ÑпиÑка" - -#: editor/editor_run_native.cpp msgid "" "No runnable export preset found for this platform.\n" "Please add a runnable preset in the export menu." @@ -2924,6 +3242,10 @@ msgstr "Быть может вы забыли метод _run()?" msgid "Select Node(s) to Import" msgstr "Выберите Узел(узлы) Ð´Ð»Ñ Ð¸Ð¼Ð¿Ð¾Ñ€Ñ‚Ð°" +#: editor/editor_sub_scene.cpp editor/project_manager.cpp +msgid "Browse" +msgstr "Обзор" + #: editor/editor_sub_scene.cpp msgid "Scene Path:" msgstr "Путь к Ñцене:" @@ -3089,6 +3411,11 @@ msgid "SSL Handshake Error" msgstr "Ошибка Ñ€ÑƒÐºÐ¾Ð¿Ð¾Ð¶Ð°Ñ‚Ð¸Ñ SSH" #: editor/export_template_manager.cpp +#, fuzzy +msgid "Uncompressing Android Build Sources" +msgstr "РаÑпаковка аÑÑетов" + +#: editor/export_template_manager.cpp msgid "Current Version:" msgstr "Ð¢ÐµÐºÑƒÑ‰Ð°Ñ Ð²ÐµÑ€ÑиÑ:" @@ -3105,7 +3432,8 @@ msgid "Remove Template" msgstr "Удалить шаблон" #: editor/export_template_manager.cpp -msgid "Select template file" +#, fuzzy +msgid "Select Template File" msgstr "Выбрать файл шаблона" #: editor/export_template_manager.cpp @@ -3166,7 +3494,8 @@ msgid "No name provided." msgstr "Ðе предоÑтавлено имÑ." #: editor/filesystem_dock.cpp -msgid "Provided name contains invalid characters" +#, fuzzy +msgid "Provided name contains invalid characters." msgstr "Ð˜Ð¼Ñ Ñодержит недопуÑтимые Ñимволы" #: editor/filesystem_dock.cpp @@ -3194,19 +3523,27 @@ msgid "Duplicating folder:" msgstr "Дублирование папки:" #: editor/filesystem_dock.cpp -msgid "Open Scene(s)" -msgstr "Открыть Ñцену(ны)" +#, fuzzy +msgid "New Inherited Scene" +msgstr "ÐÐ¾Ð²Ð°Ñ ÑƒÐ½Ð°ÑÐ»ÐµÐ´Ð¾Ð²Ð°Ð½Ð½Ð°Ñ Ð¡Ñ†ÐµÐ½Ð°..." + +#: editor/filesystem_dock.cpp +#, fuzzy +msgid "Open Scenes" +msgstr "Открыть Ñцену" #: editor/filesystem_dock.cpp msgid "Instance" msgstr "Добавить ÑкземплÑÑ€" #: editor/filesystem_dock.cpp -msgid "Add to favorites" +#, fuzzy +msgid "Add to Favorites" msgstr "Добавить в избранное" #: editor/filesystem_dock.cpp -msgid "Remove from favorites" +#, fuzzy +msgid "Remove from Favorites" msgstr "Удалить из избранного" #: editor/filesystem_dock.cpp @@ -3237,11 +3574,13 @@ msgstr "Ðовый Ñкрипт..." msgid "New Resource..." msgstr "Ðовый реÑурÑ..." -#: editor/filesystem_dock.cpp editor/script_editor_debugger.cpp +#: editor/filesystem_dock.cpp editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_editor_debugger.cpp msgid "Expand All" msgstr "Развернуть вÑе" -#: editor/filesystem_dock.cpp editor/script_editor_debugger.cpp +#: editor/filesystem_dock.cpp editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_editor_debugger.cpp msgid "Collapse All" msgstr "Свернуть вÑе" @@ -3253,19 +3592,22 @@ msgid "Rename" msgstr "Переименовать" #: editor/filesystem_dock.cpp -msgid "Previous Directory" -msgstr "Предыдущий каталог" +#, fuzzy +msgid "Previous Folder/File" +msgstr "ÐŸÑ€ÐµÐ´Ñ‹Ð´ÑƒÑ‰Ð°Ñ Ð¿Ð°Ð¿ÐºÐ°" #: editor/filesystem_dock.cpp -msgid "Next Directory" -msgstr "Следующий каталог" +#, fuzzy +msgid "Next Folder/File" +msgstr "Ð¡Ð»ÐµÐ´ÑƒÑŽÑ‰Ð°Ñ Ð¿Ð°Ð¿ÐºÐ°" #: editor/filesystem_dock.cpp msgid "Re-Scan Filesystem" msgstr "ПереÑканировать файловую ÑиÑтему" #: editor/filesystem_dock.cpp -msgid "Toggle split mode" +#, fuzzy +msgid "Toggle Split Mode" msgstr "Переключить режим разделениÑ" #: editor/filesystem_dock.cpp @@ -3296,7 +3638,7 @@ msgstr "ПерезапиÑать" msgid "Create Script" msgstr "Создать Ñкрипт" -#: editor/find_in_files.cpp +#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp msgid "Find in Files" msgstr "Ðайти в файлах" @@ -3312,6 +3654,12 @@ msgstr "Папка:" msgid "Filters:" msgstr "Фильтры:" +#: editor/find_in_files.cpp +msgid "" +"Include the files with the following extensions. Add or remove them in " +"ProjectSettings." +msgstr "" + #: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp msgid "Find..." @@ -3673,9 +4021,8 @@ msgstr "Загрузка..." #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp -#, fuzzy msgid "Move Node Point" -msgstr "Передвинуть Точку" +msgstr "Передвинуть узел" #: editor/plugins/animation_blend_space_1d_editor.cpp msgid "Change BlendSpace1D Limits" @@ -3750,7 +4097,8 @@ msgid "Open Animation Node" msgstr "Открыть Узел Ðнимации" #: editor/plugins/animation_blend_space_2d_editor.cpp -msgid "Triangle already exists" +#, fuzzy +msgid "Triangle already exists." msgstr "Треугольник уже ÑущеÑтвует" #: editor/plugins/animation_blend_space_2d_editor.cpp @@ -3826,7 +4174,6 @@ msgid "Node Moved" msgstr "Режим перемещениÑ" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Unable to connect, port may be in use or connection may be invalid." msgstr "" "Ðевозможно подключитьÑÑ, возможно порт уже иÑпользуетÑÑ Ð¸Ð»Ð¸ недейÑтвительный." @@ -3897,7 +4244,8 @@ msgid "Edit Filtered Tracks:" msgstr "Редактировать фильтры:" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -msgid "Enable filtering" +#, fuzzy +msgid "Enable Filtering" msgstr "Включить фильтр" #: editor/plugins/animation_player_editor_plugin.cpp @@ -4015,10 +4363,6 @@ msgid "Animation" msgstr "ÐнимациÑ" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "New" -msgstr "Ðовый" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Edit Transitions..." msgstr "Редактировать переходы..." @@ -4035,14 +4379,15 @@ msgid "Autoplay on Load" msgstr "ÐвтовоÑпроизведение" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Onion Skinning" -msgstr "Режим кальки" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Enable Onion Skinning" msgstr "Включить режим кальки" #: editor/plugins/animation_player_editor_plugin.cpp +#, fuzzy +msgid "Onion Skinning Options" +msgstr "Режим кальки" + +#: editor/plugins/animation_player_editor_plugin.cpp msgid "Directions" msgstr "ÐаправлениÑ" @@ -4590,14 +4935,20 @@ msgid "Move CanvasItem" msgstr "ПеремеÑтить CanvasItem" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"Children of containers have their anchors and margins values overridden by " +"their parent." +msgstr "Ð¯ÐºÐ¾Ñ€Ñ Ð¸ отÑтупы дочерних контейнеров переопределÑÑŽÑ‚ÑÑ Ð¸Ñ… родителÑми." + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Presets for the anchors and margins values of a Control node." msgstr "ПредуÑтановки Ð´Ð»Ñ Ñкорей и Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð¾Ñ‚Ñтупов контрольного узла." #: editor/plugins/canvas_item_editor_plugin.cpp msgid "" -"Children of containers have their anchors and margins values overridden by " -"their parent." -msgstr "Ð¯ÐºÐ¾Ñ€Ñ Ð¸ отÑтупы дочерних контейнеров переопределÑÑŽÑ‚ÑÑ Ð¸Ñ… родителÑми." +"When active, moving Control nodes changes their anchors instead of their " +"margins." +msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Anchors only" @@ -4612,10 +4963,52 @@ msgid "Change Anchors" msgstr "Изменить привÑзку" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Lock Selected" +msgstr "ИнÑтрумент выбора" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Unlock Selected" +msgstr "Удалить выделенное" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Group Selected" +msgstr "Копировать выделенное" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Ungroup Selected" +msgstr "Копировать выделенное" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Paste Pose" msgstr "Ð’Ñтавить позу" #: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Create Custom Bone(s) from Node(s)" +msgstr "Сделать ПользовательÑкие КоÑть(и) от Узла(ов)" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Clear Bones" +msgstr "ОчиÑтить позу" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Make IK Chain" +msgstr "Создать цепь ИК" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Clear IK Chain" +msgstr "ОчиÑтить цепь ИК" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "" "Warning: Children of a container get their position and size determined only " "by their parent." @@ -4693,7 +5086,8 @@ msgid "Snapping Options" msgstr "Параметры ПривÑзки" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to grid" +#, fuzzy +msgid "Snap to Grid" msgstr "ПривÑзка к Ñетке" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4714,31 +5108,38 @@ msgid "Use Pixel Snap" msgstr "ИÑпользовать попикÑельную привÑзку" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Smart snapping" +#, fuzzy +msgid "Smart Snapping" msgstr "Ð˜Ð½Ñ‚ÐµÐ»Ð»ÐµÐºÑ‚ÑƒÐ°Ð»ÑŒÐ½Ð°Ñ Ð¿Ñ€Ð¸Ð²Ñзка" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to parent" +#, fuzzy +msgid "Snap to Parent" msgstr "ПривÑзка к родителю" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node anchor" +#, fuzzy +msgid "Snap to Node Anchor" msgstr "ПривÑзка к Ñкорю узла" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node sides" +#, fuzzy +msgid "Snap to Node Sides" msgstr "ПривÑзка к Ñторонам узла" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node center" +#, fuzzy +msgid "Snap to Node Center" msgstr "ПривÑзка к центру узла" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to other nodes" +#, fuzzy +msgid "Snap to Other Nodes" msgstr "ПривÑзка к другим узлам" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to guides" +#, fuzzy +msgid "Snap to Guides" msgstr "ПривÑзка к направлÑющим" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4752,10 +5153,12 @@ msgid "Unlock the selected object (can be moved)." msgstr "Разблокировать выбранный объект." #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Makes sure the object's children are not selectable." msgstr "Делает потомков объекта невыбираемыми." #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Restores the object's children's ability to be selected." msgstr "ВоÑÑтанавливает возможноÑть выбора потомков объекта." @@ -4768,14 +5171,6 @@ msgid "Show Bones" msgstr "Показать коÑти" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Make IK Chain" -msgstr "Создать цепь ИК" - -#: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Clear IK Chain" -msgstr "ОчиÑтить цепь ИК" - -#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Make Custom Bone(s) from Node(s)" msgstr "Сделать ПользовательÑкие КоÑть(и) от Узла(ов)" @@ -4826,38 +5221,48 @@ msgid "Frame Selection" msgstr "Кадрировать выбранное" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Layout" -msgstr "Макет" +#, fuzzy +msgid "Preview Canvas Scale" +msgstr "ПредпроÑмотр атлаÑа" #: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy msgid "Translation mask for inserting keys." -msgstr "" +msgstr "МаÑка Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ Ð´Ð»Ñ Ð´Ð¾Ð±Ð°Ð²Ð»Ñемых ключей." #: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy msgid "Rotation mask for inserting keys." -msgstr "" +msgstr "МаÑка поворота Ð´Ð»Ñ Ð´Ð¾Ð±Ð°Ð²Ð»Ñемых ключей." #: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy msgid "Scale mask for inserting keys." -msgstr "" +msgstr "МаÑка маÑштаба Ð´Ð»Ñ Ð´Ð¾Ð±Ð°Ð²Ð»Ñемых ключей." #: editor/plugins/canvas_item_editor_plugin.cpp #, fuzzy msgid "Insert keys (based on mask)." -msgstr "Ð’Ñтавить ключи (Ins)" +msgstr "Ð’Ñтавить ключи (в завиÑимоÑти от маÑки)" #: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy msgid "" "Auto insert keys when objects are translated, rotated on scaled (based on " "mask).\n" "Keys are only added to existing tracks, no new tracks will be created.\n" "Keys must be inserted manually for the first time." msgstr "" +"ÐвтоматичеÑки вÑтавлÑть ключи когда объекты перемещены, повёрнуты или их " +"размер изменён (завиÑит от маÑки).\n" +"Ключи добавлÑÑŽÑ‚ÑÑ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ в ÑущеÑтвующие дорожки, новые дорожки не будут " +"Ñозданы.\n" +"Первые ключи должны быть добавлены вручную." #: editor/plugins/canvas_item_editor_plugin.cpp #, fuzzy msgid "Auto Insert Key" -msgstr "Ð’Ñтавить ключ" +msgstr "ÐвтоматичеÑки вÑтавлÑть ключ" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Insert Key (Existing Tracks)" @@ -4880,6 +5285,11 @@ msgid "Divide grid step by 2" msgstr "Разделить шаг Ñетки на 2" #: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Pan View" +msgstr "Вид Ñзади" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Add %s" msgstr "Добавить %s" @@ -4902,7 +5312,8 @@ msgid "Error instancing scene from %s" msgstr "Ошибка Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ñцены из %s" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Change default type" +#, fuzzy +msgid "Change Default Type" msgstr "Изменить тип по умолчанию" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4990,19 +5401,21 @@ msgid "Create Emission Points From Node" msgstr "Создать излучатель из узла" #: editor/plugins/curve_editor_plugin.cpp -msgid "Flat0" +#, fuzzy +msgid "Flat 0" msgstr "ПлоÑкий0" #: editor/plugins/curve_editor_plugin.cpp -msgid "Flat1" +#, fuzzy +msgid "Flat 1" msgstr "ПлоÑкий1" -#: editor/plugins/curve_editor_plugin.cpp -msgid "Ease in" +#: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp +msgid "Ease In" msgstr "Переход Ð’" -#: editor/plugins/curve_editor_plugin.cpp -msgid "Ease out" +#: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp +msgid "Ease Out" msgstr "Переход ИЗ" #: editor/plugins/curve_editor_plugin.cpp @@ -5022,23 +5435,28 @@ msgid "Load Curve Preset" msgstr "Загрузить заготовку кривой" #: editor/plugins/curve_editor_plugin.cpp -msgid "Add point" +#, fuzzy +msgid "Add Point" msgstr "Добавить точку" #: editor/plugins/curve_editor_plugin.cpp -msgid "Remove point" +#, fuzzy +msgid "Remove Point" msgstr "Удалить точку" #: editor/plugins/curve_editor_plugin.cpp -msgid "Left linear" +#, fuzzy +msgid "Left Linear" msgstr "Левый линейный" #: editor/plugins/curve_editor_plugin.cpp -msgid "Right linear" +#, fuzzy +msgid "Right Linear" msgstr "Правый линейный" #: editor/plugins/curve_editor_plugin.cpp -msgid "Load preset" +#, fuzzy +msgid "Load Preset" msgstr "Загрузить заготовку" #: editor/plugins/curve_editor_plugin.cpp @@ -5094,11 +5512,17 @@ msgid "This doesn't work on scene root!" msgstr "Ðто не работает на корне Ñцены!" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Trimesh Shape" +#, fuzzy +msgid "Create Trimesh Static Shape" msgstr "Создать вогнутую форму" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Shape" +msgid "Failed creating shapes!" +msgstr "" + +#: editor/plugins/mesh_instance_editor_plugin.cpp +#, fuzzy +msgid "Create Convex Shape(s)" msgstr "Создать выгнутую форму" #: editor/plugins/mesh_instance_editor_plugin.cpp @@ -5151,15 +5575,12 @@ msgid "Create Trimesh Static Body" msgstr "Создать вогнутое Ñтатичное тело" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Static Body" -msgstr "Создать выпуклое Ñтатичное тело" - -#: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Trimesh Collision Sibling" msgstr "Создать вогнутую облаÑть ÑтолкновениÑ" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Collision Sibling" +#, fuzzy +msgid "Create Convex Collision Sibling(s)" msgstr "Создать выпуклую облаÑть ÑтолкновениÑ" #: editor/plugins/mesh_instance_editor_plugin.cpp @@ -5313,6 +5734,11 @@ msgid "Create Navigation Polygon" msgstr "Создать Navigation Polygon" #: editor/plugins/particles_2d_editor_plugin.cpp +#: editor/plugins/particles_editor_plugin.cpp +msgid "Convert to CPUParticles" +msgstr "Преобразовать в CPUParticles" + +#: editor/plugins/particles_2d_editor_plugin.cpp msgid "Generating Visibility Rect" msgstr "Создать облаÑть видимоÑти" @@ -5326,11 +5752,6 @@ msgstr "Возможно уÑтановить точку только в Particl #: editor/plugins/particles_2d_editor_plugin.cpp #: editor/plugins/particles_editor_plugin.cpp -msgid "Convert to CPUParticles" -msgstr "Преобразовать в CPUParticles" - -#: editor/plugins/particles_2d_editor_plugin.cpp -#: editor/plugins/particles_editor_plugin.cpp msgid "Generation Time (sec):" msgstr "Ð’Ñ€ÐµÐ¼Ñ Ð³ÐµÐ½ÐµÑ€Ð°Ñ†Ð¸Ð¸ (Ñек):" @@ -5468,7 +5889,7 @@ msgstr "Сомкнуть кривую" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp editor/plugins/theme_editor_plugin.cpp -#: editor/project_export.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_export.cpp msgid "Options" msgstr "Параметры" @@ -5519,7 +5940,8 @@ msgid "Split Segment (in curve)" msgstr "Разделить Ñегмент (в кривой)" #: editor/plugins/physical_bone_plugin.cpp -msgid "Move joint" +#, fuzzy +msgid "Move Joint" msgstr "Передвинуть ÑуÑтав" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5759,7 +6181,6 @@ msgid "Open in Editor" msgstr "Открыть в редакторе" #: editor/plugins/resource_preloader_editor_plugin.cpp -#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Load Resource" msgstr "Загрузить реÑурÑ" @@ -5846,7 +6267,12 @@ msgstr "Сохранить тему как..." #: editor/plugins/script_editor_plugin.cpp #, fuzzy msgid "%s Class Reference" -msgstr " СÑылка на КлаÑÑ" +msgstr "%s Справка по клаÑÑу" + +#: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp +msgid "Find Next" +msgstr "Ðайти Ñледующее" #: editor/plugins/script_editor_plugin.cpp msgid "Toggle alphabetical sorting of the method list." @@ -5929,10 +6355,6 @@ msgstr "Закрыть документацию" msgid "Close All" msgstr "Закрыть вÑÑ‘" -#: editor/plugins/script_editor_plugin.cpp -msgid "Close Other Tabs" -msgstr "Закрыть другие вкладки" - #: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp msgid "Run" msgstr "ЗапуÑтить" @@ -5941,11 +6363,6 @@ msgstr "ЗапуÑтить" msgid "Toggle Scripts Panel" msgstr "Переключить панель Ñкриптов" -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/script_text_editor.cpp -msgid "Find Next" -msgstr "Ðайти Ñледующее" - #: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp msgid "Step Over" msgstr "Шаг через" @@ -5972,7 +6389,8 @@ msgid "Debug with External Editor" msgstr "Отладка Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ внешнего редактора" #: editor/plugins/script_editor_plugin.cpp -msgid "Open Godot online documentation" +#, fuzzy +msgid "Open Godot online documentation." msgstr "Открыть онлайн документацию Godot" #: editor/plugins/script_editor_plugin.cpp @@ -5980,7 +6398,8 @@ msgid "Request Docs" msgstr "Запрашиваемые Документы" #: editor/plugins/script_editor_plugin.cpp -msgid "Help improve the Godot documentation by giving feedback" +#, fuzzy +msgid "Help improve the Godot documentation by giving feedback." msgstr "Помогите улучшить документацию Godot, предоÑтавив обратную ÑвÑзь" #: editor/plugins/script_editor_plugin.cpp @@ -6008,10 +6427,12 @@ msgstr "" "Какие меры должны быть принÑты?:" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp msgid "Reload" msgstr "Перезагрузить" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp msgid "Resave" msgstr "ПереÑохранить" @@ -6024,6 +6445,31 @@ msgid "Search Results" msgstr "Результаты поиÑка" #: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Connections to method:" +msgstr "ПриÑоединить к узлу:" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Source" +msgstr "ИÑточник:" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Signal" +msgstr "Сигналы" + +#: editor/plugins/script_text_editor.cpp +msgid "Target" +msgstr "Цель" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "" +"Missing connected method '%s' for signal '%s' from node '%s' to node '%s'." +msgstr "Ðичего не подключено к входу \"%s\" узла \"%s\"." + +#: editor/plugins/script_text_editor.cpp msgid "Line" msgstr "Строка" @@ -6035,10 +6481,6 @@ msgstr "(игнорировать)" msgid "Go to Function" msgstr "Перейти к функции" -#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp -msgid "Standard" -msgstr "Стандартный" - #: editor/plugins/script_text_editor.cpp msgid "Only resources from filesystem can be dropped." msgstr "Можно перетащить только реÑÑƒÑ€Ñ Ð¸Ð· файловой ÑиÑтемы." @@ -6071,6 +6513,11 @@ msgstr "ПропиÑные" msgid "Syntax Highlighter" msgstr "ПодÑветка СинтакÑиÑа" +#: editor/plugins/script_text_editor.cpp +#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp +msgid "Bookmarks" +msgstr "" + #: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" @@ -6098,6 +6545,26 @@ msgid "Toggle Comment" msgstr "Переключить комментарий" #: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Toggle Bookmark" +msgstr "Переключить Ñвободный обзор" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Go to Next Bookmark" +msgstr "Перейти к Ñледующей точке оÑтановки" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Go to Previous Bookmark" +msgstr "Перейти к предыдущей точке оÑтановки" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Remove All Bookmarks" +msgstr "Удалить вÑе Ñлементы" + +#: editor/plugins/script_text_editor.cpp msgid "Fold/Unfold Line" msgstr "Свернуть/Развернуть Ñтроку" @@ -6171,6 +6638,15 @@ msgid "Contextual Help" msgstr "КонтекÑÑ‚Ð½Ð°Ñ Ñправка" #: editor/plugins/shader_editor_plugin.cpp +#, fuzzy +msgid "" +"This shader has been modified on on disk.\n" +"What action should be taken?" +msgstr "" +"Следующие файлы новее на диÑке.\n" +"Какие меры должны быть принÑты?:" + +#: editor/plugins/shader_editor_plugin.cpp msgid "Shader" msgstr "Шейдер" @@ -6518,7 +6994,8 @@ msgid "Right View" msgstr "Вид Ñправа" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Switch Perspective/Orthogonal view" +#, fuzzy +msgid "Switch Perspective/Orthogonal View" msgstr "Переключить перÑпективный/ортогональный вид" #: editor/plugins/spatial_editor_plugin.cpp @@ -6558,11 +7035,13 @@ msgid "Toggle Freelook" msgstr "Переключить Ñвободный обзор" #: editor/plugins/spatial_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Transform" msgstr "Преобразование" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Snap object to floor" +#, fuzzy +msgid "Snap Object to Floor" msgstr "ПривÑзать объект к полу" #: editor/plugins/spatial_editor_plugin.cpp @@ -6671,9 +7150,8 @@ msgid "Post" msgstr "ПоÑле" #: editor/plugins/spatial_editor_plugin.cpp -#, fuzzy msgid "Nameless gizmo" -msgstr "БезымÑнный гизмо" +msgstr "БезымÑÐ½Ð½Ð°Ñ ÑˆÑ‚ÑƒÐºÐ¾Ð²Ð¸Ð½Ð°" #: editor/plugins/sprite_editor_plugin.cpp #, fuzzy @@ -6710,37 +7188,31 @@ msgstr "ÐÐµÐºÐ¾Ñ€Ñ€ÐµÐºÑ‚Ð½Ð°Ñ Ð³ÐµÐ¾Ð¼ÐµÑ‚Ñ€Ð¸Ñ, не может быть з #: editor/plugins/sprite_editor_plugin.cpp #, fuzzy -msgid "Invalid geometry, can't create polygon." -msgstr "ÐÐµÐºÐ¾Ñ€Ñ€ÐµÐºÑ‚Ð½Ð°Ñ Ð³ÐµÐ¾Ð¼ÐµÑ‚Ñ€Ð¸Ñ, не может быть заменена Ñеткой." - -#: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy -msgid "Invalid geometry, can't create collision polygon." -msgstr "ÐÐµÐºÐ¾Ñ€Ñ€ÐµÐºÑ‚Ð½Ð°Ñ Ð³ÐµÐ¾Ð¼ÐµÑ‚Ñ€Ð¸Ñ, не может быть заменена Ñеткой." +msgid "Convert to Mesh2D" +msgstr "Преобразовать в 2D Mesh" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy -msgid "Invalid geometry, can't create light occluder." -msgstr "ÐÐµÐºÐ¾Ñ€Ñ€ÐµÐºÑ‚Ð½Ð°Ñ Ð³ÐµÐ¾Ð¼ÐµÑ‚Ñ€Ð¸Ñ, не может быть заменена Ñеткой." +msgid "Invalid geometry, can't create polygon." +msgstr "ÐÐµÐºÐ¾Ñ€Ñ€ÐµÐºÑ‚Ð½Ð°Ñ Ð³ÐµÐ¾Ð¼ÐµÑ‚Ñ€Ð¸Ñ, Ð½ÐµÐ»ÑŒÐ·Ñ Ñоздать полигональную Ñетку." #: editor/plugins/sprite_editor_plugin.cpp -msgid "Sprite" -msgstr "Спрайт" +msgid "Convert to Polygon2D" +msgstr "Преобразовать в Polygon2D" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy -msgid "Convert to Mesh2D" -msgstr "Преобразовать в 2D Mesh" +msgid "Invalid geometry, can't create collision polygon." +msgstr "" +"ÐÐµÐºÐ¾Ñ€Ñ€ÐµÐºÑ‚Ð½Ð°Ñ Ð³ÐµÐ¾Ð¼ÐµÑ‚Ñ€Ð¸Ñ, Ð½ÐµÐ»ÑŒÐ·Ñ Ñоздать полигональную Ñетку Ñтолкновений." #: editor/plugins/sprite_editor_plugin.cpp #, fuzzy -msgid "Convert to Polygon2D" -msgstr "Передвинуть полигон" +msgid "Create CollisionPolygon2D Sibling" +msgstr "Создать полигон Ñтолкновений" #: editor/plugins/sprite_editor_plugin.cpp #, fuzzy -msgid "Create CollisionPolygon2D Sibling" -msgstr "Создать полигон Ñтолкновений" +msgid "Invalid geometry, can't create light occluder." +msgstr "ÐÐµÐºÐ¾Ñ€Ñ€ÐµÐºÑ‚Ð½Ð°Ñ Ð³ÐµÐ¾Ð¼ÐµÑ‚Ñ€Ð¸Ñ, не может быть заменена Ñеткой." #: editor/plugins/sprite_editor_plugin.cpp #, fuzzy @@ -6748,6 +7220,10 @@ msgid "Create LightOccluder2D Sibling" msgstr "Создан затенÑющий полигон" #: editor/plugins/sprite_editor_plugin.cpp +msgid "Sprite" +msgstr "Спрайт" + +#: editor/plugins/sprite_editor_plugin.cpp msgid "Simplification: " msgstr "Упрощение: " @@ -6764,14 +7240,24 @@ msgid "Settings:" msgstr "Параметры:" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "ERROR: Couldn't load frame resource!" -msgstr "ОШИБКÐ: Ðевозможно загрузить кадр!" +#, fuzzy +msgid "No Frames Selected" +msgstr "Кадрировать выбранное" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Add %d Frame(s)" +msgstr "Добавить кадр" #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Add Frame" msgstr "Добавить кадр" #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "ERROR: Couldn't load frame resource!" +msgstr "ОШИБКÐ: Ðевозможно загрузить кадр!" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Resource clipboard is empty or not a texture!" msgstr "Буфер обмена чиÑÑ‚ или не Ñодержит текÑтуру!" @@ -6812,6 +7298,15 @@ msgid "Animation Frames:" msgstr "Кадры анимации:" #: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Add a Texture from File" +msgstr "Добавить текÑтуру(Ñ‹) в TileSet." + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Add Frames from a Sprite Sheet" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Insert Empty (Before)" msgstr "Ð’Ñтавить пуÑтоту (До)" @@ -6828,6 +7323,31 @@ msgid "Move (After)" msgstr "ПеремеÑтить (поÑле)" #: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Select Frames" +msgstr "Стек" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Horizontal:" +msgstr "Отразить по горизонтали" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Vertical:" +msgstr "Вершины" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Select/Clear All Frames" +msgstr "Выбрать вÑе" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Create Frames from Sprite Sheet" +msgstr "Создать из Ñцены" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "SpriteFrames" msgstr "Спрайт кадры" @@ -6892,12 +7412,13 @@ msgstr "Добавить вÑе" msgid "Remove All Items" msgstr "Удалить вÑе Ñлементы" -#: editor/plugins/theme_editor_plugin.cpp +#: editor/plugins/theme_editor_plugin.cpp editor/project_manager.cpp msgid "Remove All" msgstr "Удалить вÑе" #: editor/plugins/theme_editor_plugin.cpp -msgid "Edit theme..." +#, fuzzy +msgid "Edit Theme" msgstr "Редактировать тему..." #: editor/plugins/theme_editor_plugin.cpp @@ -6925,18 +7446,25 @@ msgid "Create From Current Editor Theme" msgstr "Создать из текущей темы редактора" #: editor/plugins/theme_editor_plugin.cpp -msgid "CheckBox Radio1" -msgstr "Ð§ÐµÐºÐ±Ð¾ÐºÑ 1" +#, fuzzy +msgid "Toggle Button" +msgstr "Кнопка мыши" #: editor/plugins/theme_editor_plugin.cpp -msgid "CheckBox Radio2" -msgstr "Ð§ÐµÐºÐ±Ð¾ÐºÑ 2" +#, fuzzy +msgid "Disabled Button" +msgstr "СреднÑÑ ÐºÐ½Ð¾Ð¿ÐºÐ° мыши" #: editor/plugins/theme_editor_plugin.cpp msgid "Item" msgstr "Ðлемент" #: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Disabled Item" +msgstr "Отключено" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Check Item" msgstr "Отметить Ñлемент" @@ -6953,6 +7481,24 @@ msgid "Checked Radio Item" msgstr "Отмеченный переключатель" #: editor/plugins/theme_editor_plugin.cpp +msgid "Named Sep." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Submenu" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Item 1" +msgstr "Ðлемент" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Item 2" +msgstr "Ðлемент" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Has" msgstr "Имеет" @@ -6961,8 +7507,9 @@ msgid "Many" msgstr "Много" #: editor/plugins/theme_editor_plugin.cpp -msgid "Has,Many,Options" -msgstr "ЕÑть,Много,Вариантов" +#, fuzzy +msgid "Disabled LineEdit" +msgstr "Отключено" #: editor/plugins/theme_editor_plugin.cpp msgid "Tab 1" @@ -6977,6 +7524,19 @@ msgid "Tab 3" msgstr "Вкладка 3" #: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Editable Item" +msgstr "Редактируемые потомки" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Subtree" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Has,Many,Options" +msgstr "ЕÑть,Много,Вариантов" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Data Type:" msgstr "Тип информации:" @@ -7009,6 +7569,7 @@ msgid "Fix Invalid Tiles" msgstr "ИÑправить недопуÑтимые плитки" #: editor/plugins/tile_map_editor_plugin.cpp +#: modules/gridmap/grid_map_editor_plugin.cpp msgid "Cut Selection" msgstr "Вырезать выделенное" @@ -7049,35 +7610,52 @@ msgid "Mirror Y" msgstr "Зеркально по Y" #: editor/plugins/tile_map_editor_plugin.cpp +#, fuzzy +msgid "Disable Autotile" +msgstr "Ðвтотайлы" + +#: editor/plugins/tile_map_editor_plugin.cpp +#, fuzzy +msgid "Enable Priority" +msgstr "Редактировать приоритет тайла" + +#: editor/plugins/tile_map_editor_plugin.cpp msgid "Paint Tile" msgstr "РиÑовать тайл" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Pick Tile" -msgstr "Выбрать тайл" +msgid "" +"Shift+RMB: Line Draw\n" +"Shift+Ctrl+RMB: Rectangle Paint" +msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Copy Selection" -msgstr "Копировать выделенное" +msgid "Pick Tile" +msgstr "Выбрать тайл" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Rotate left" +#, fuzzy +msgid "Rotate Left" msgstr "Повернуть влево" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Rotate right" +#, fuzzy +msgid "Rotate Right" msgstr "Повернуть вправо" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Flip horizontally" +#, fuzzy +msgid "Flip Horizontally" msgstr "Отразить по горизонтали" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Flip vertically" +#, fuzzy +msgid "Flip Vertically" msgstr "Отразить по вертикали" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Clear transform" +#, fuzzy +msgid "Clear Transform" msgstr "ОчиÑтить преобразование" #: editor/plugins/tile_set_editor_plugin.cpp @@ -7113,6 +7691,46 @@ msgid "Select the previous shape, subtile, or Tile." msgstr "Выберите предыдущую форму, Ñлемент тайла или тайл." #: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Region Mode" +msgstr "Режим запуÑка:" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Collision Mode" +msgstr "Режим Перехода" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Occlusion Mode" +msgstr "Редактировать полигон перекрытиÑ" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Navigation Mode" +msgstr "Создать полиÑетку навигации" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Bitmask Mode" +msgstr "Режим поворота" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Priority Mode" +msgstr "Режим ÑкÑпортированиÑ:" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Icon Mode" +msgstr "Режим оÑмотра" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Z Index Mode" +msgstr "Режим оÑмотра" + +#: editor/plugins/tile_set_editor_plugin.cpp msgid "Copy bitmask." msgstr "Копировать битовую маÑку." @@ -7194,9 +7812,11 @@ msgid "Delete polygon." msgstr "Удалить полигон." #: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy msgid "" "LMB: Set bit on.\n" "RMB: Set bit off.\n" +"Shift+LMB: Set wildcard bit.\n" "Click on another Tile to edit it." msgstr "" "ЛКМ: уÑтановить бит.\n" @@ -7314,6 +7934,79 @@ msgid "TileSet" msgstr "Ðабор Тайлов" #: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Add input +" +msgstr "Добавить вход" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Add output +" +msgstr "Добавить вход" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar" +msgstr "МаÑштаб:" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector" +msgstr "ИнÑпектор" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Add input port" +msgstr "Добавить вход" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add output port" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change input port type" +msgstr "Изменить тип по умолчанию" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change output port type" +msgstr "Изменить тип по умолчанию" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change input port name" +msgstr "Изменить Ð¸Ð¼Ñ Ð²Ñ…Ð¾Ð´Ð°" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change output port name" +msgstr "Изменить Ð¸Ð¼Ñ Ð²Ñ…Ð¾Ð´Ð°" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Remove input port" +msgstr "Удалить точку" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Remove output port" +msgstr "Удалить точку" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Set expression" +msgstr "Изменить выражение" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Resize VisualShader node" +msgstr "Визуальный Шейдер" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Set Uniform Name" msgstr "Задать единообразное имÑ" @@ -7331,9 +8024,8 @@ msgid "Duplicate Nodes" msgstr "Дублировать узлы" #: editor/plugins/visual_shader_editor_plugin.cpp -#, fuzzy msgid "Delete Nodes" -msgstr "Удалить узел" +msgstr "Удалить узлы" #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Visual Shader Input Type Changed" @@ -7352,6 +8044,859 @@ msgid "Light" msgstr "Свет" #: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Create Shader Node" +msgstr "Создать узел" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Color function." +msgstr "Перейти к функции" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Color operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Grayscale function." +msgstr "Сделать функцию" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts HSV vector to RGB equivalent." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts RGB vector to HSV equivalent." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Sepia function." +msgstr "Переименовать функцию" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Burn operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Darken operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Difference operator." +msgstr "Только разница" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Dodge operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "HardLight operator" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Lighten operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Overlay operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Screen operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "SoftLight operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Color constant." +msgstr "ПоÑтоÑнный" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Color uniform." +msgstr "ОчиÑтить преобразование" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns an associated vector if the provided scalars are equal, greater or " +"less." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns an associated vector if the provided boolean value is true or false." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Boolean constant." +msgstr "Изменить векторную конÑтанту" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'camera' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'inv_camera' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'inv_projection' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'normal' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'projection' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'time' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'viewport_size' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'world' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'texture_pixel_size' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Input parameter." +msgstr "ПривÑзка к родителю" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'binormal' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'fragcoord' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_coord' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_uv' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'side' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'tangent' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv2' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'vertex' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'view' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'albedo' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'attenuation' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'diffuse' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_color' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'roughness' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'specular' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'transmission' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'modelview' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_size' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'tangent' input parameter for vertex and fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_pass' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_coord' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_pixel_size' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_uv' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_alpha' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_height' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_uv' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_vec' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'normal' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'shadow_color' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'extra' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'projection' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'vertex' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'world' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'active' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'custom' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'custom_alpha' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'delta' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'emission_transform' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'index' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'lifetime' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'restart' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'time' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'transform' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'velocity' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar function." +msgstr "Изменить чиÑловую функцию" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar operator." +msgstr "Изменить чиÑловой оператор" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "E constant (2.718282). Represents the base of the natural logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Epsilon constant (0.00001). Smallest possible scalar number." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Phi constant (1.618034). Golden ratio." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi/4 constant (0.785398) or 45 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi/2 constant (1.570796) or 90 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi constant (3.141593) or 180 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Tau constant (6.283185) or 360 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Sqrt2 constant (1.414214). Square root of 2." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the absolute value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-tangent of the parameters." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Finds the nearest integer that is greater than or equal to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Constrains a value to lie between two further values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts a quantity in radians to degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-e Exponential." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-2 Exponential." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Finds the nearest integer less than or equal to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Computes the fractional part of the argument." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the inverse of the square root of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Natural logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-2 logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the greater of two values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the lesser of two values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Linear interpolation between two scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the opposite value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 - scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns the value of the first parameter raised to the power of the second." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts a quantity in degrees to radians." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 / scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the nearest integer to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the nearest even integer to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Clamps the value between 0.0 and 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Extracts the sign of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the square root of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( scalar(edge0), scalar(edge1), scalar(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if x is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( scalar(edge), scalar(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the truncated value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Adds scalar to scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Divides scalar by scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies scalar by scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the remainder of the two scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Subtracts scalar from scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar constant." +msgstr "Изменить чиÑловую конÑтанту" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar uniform." +msgstr "Изменить чиÑловую единицу" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Perform the cubic texture lookup." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Perform the texture lookup." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Cubic texture uniform." +msgstr "Изменить текÑтурную единицу" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "2D texture uniform." +msgstr "Изменить текÑтурную единицу" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Transform function." +msgstr "Окно преобразованиÑ..." + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) Calculate the outer product of a pair of vectors.\n" +"\n" +"OuterProduct treats the first parameter 'c' as a column vector (matrix with " +"one column) and the second parameter 'r' as a row vector (matrix with one " +"row) and does a linear algebraic matrix multiply 'c * r', yielding a matrix " +"whose number of rows is the number of components in 'c' and whose number of " +"columns is the number of components in 'r'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Composes transform from four vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Decomposes transform to four vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the determinant of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the inverse of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the transpose of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies transform by transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies vector by transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Transform constant." +msgstr "Преобразование прервано." + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Transform uniform." +msgstr "Преобразование прервано." + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector function." +msgstr "Ðазначение функции." + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector operator." +msgstr "Изменить векторный оператор" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Composes vector from three scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Decomposes vector to three scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the cross product of two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the distance between two points." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the dot product of two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns a vector that points in the same direction as a reference vector. " +"The function has three vector parameters : N, the vector to orient, I, the " +"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 "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the length of a vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Linear interpolation between two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the normalize product of vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 - vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 / vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns a vector that points in the direction of reflection ( a : incident " +"vector, b : normal vector )." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns a vector that points in the direction of refraction." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( vector(edge0), vector(edge1), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if 'x' is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( scalar(edge0), scalar(edge1), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if 'x' is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( vector(edge), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( scalar(edge), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Adds vector to vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Divides vector by vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies vector by vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the remainder of the two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Subtracts vector from vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector constant." +msgstr "Изменить векторную конÑтанту" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector uniform." +msgstr "Ðазначить форму." + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Custom Godot Shader Language expression, with custom amount of input and " +"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 "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns falloff based on the dot product of surface normal and view " +"direction of camera (pass associated inputs to it)." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) (Fragment/Light mode only) Scalar derivative function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) (Fragment/Light mode only) Vector derivative function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Derivative in 'x' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Derivative in 'x' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Derivative in 'y' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Derivative in 'y' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Sum of absolute derivative " +"in 'x' and 'y'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Sum of absolute derivative " +"in 'x' and 'y'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "VisualShader" msgstr "Визуальный Шейдер" @@ -7551,6 +9096,10 @@ msgid "Directory already contains a Godot project." msgstr "Каталог уже Ñодержит проект Godot." #: editor/project_manager.cpp +msgid "New Game Project" +msgstr "Ðовый игровой проект" + +#: editor/project_manager.cpp msgid "Imported Project" msgstr "Импортированный проект" @@ -7599,10 +9148,6 @@ msgid "Rename Project" msgstr "Переименовать проект" #: editor/project_manager.cpp -msgid "New Game Project" -msgstr "Ðовый игровой проект" - -#: editor/project_manager.cpp msgid "Import Existing Project" msgstr "Импортировать ÑущеÑтвующий проект" @@ -7631,10 +9176,6 @@ msgid "Project Name:" msgstr "Ðазвание проекта:" #: editor/project_manager.cpp -msgid "Create folder" -msgstr "Создать папку" - -#: editor/project_manager.cpp msgid "Project Path:" msgstr "Путь к проекту:" @@ -7643,10 +9184,6 @@ msgid "Project Installation Path:" msgstr "Путь уÑтановки проекта:" #: editor/project_manager.cpp -msgid "Browse" -msgstr "Обзор" - -#: editor/project_manager.cpp msgid "Renderer:" msgstr "ОтриÑовщик:" @@ -7710,8 +9247,8 @@ msgid "" "\n" "If you proceed with opening it, it will be converted to Godot's current " "configuration file format.\n" -"Warning: You will not be able to open the project with previous versions of " -"the engine anymore." +"Warning: You won't be able to open the project with previous versions of the " +"engine anymore." msgstr "" "Файл наÑтроек проекта не указывает верÑию верÑии движка, на котором он был " "Ñгенерирован:\n" @@ -7723,6 +9260,7 @@ msgstr "" "Внимание: Ð’Ñ‹ больше не Ñможете открыть проект предыдущими верÑиÑми движка." #: editor/project_manager.cpp +#, fuzzy msgid "" "The following project settings file was generated by an older engine " "version, and needs to be converted for this version:\n" @@ -7730,8 +9268,8 @@ msgid "" "%s\n" "\n" "Do you want to convert it?\n" -"Warning: You will not be able to open the project with previous versions of " -"the engine anymore." +"Warning: You won't be able to open the project with previous versions of the " +"engine anymore." msgstr "" "Файл наÑтроек проекта был Ñгенерирован Ñтарой верÑией движка и должен быть " "преобразован Ð´Ð»Ñ Ñ‚ÐµÐºÑƒÑ‰ÐµÐ¹ верÑии:\n" @@ -7750,9 +9288,10 @@ msgstr "" "неÑовмеÑтимы Ñ Ñ‚ÐµÐºÑƒÑ‰ÐµÐ¹ верÑией." #: editor/project_manager.cpp +#, fuzzy msgid "" "Can't run project: no main scene defined.\n" -"Please edit the project and set the main scene in \"Project Settings\" under " +"Please edit the project and set the main scene in the Project Settings under " "the \"Application\" category." msgstr "" "Ðе могу запуÑтить проект: не назначена Ð³Ð»Ð°Ð²Ð½Ð°Ñ Ñцена.\n" @@ -7768,25 +9307,45 @@ msgstr "" "ПожалуйÑта, отредактируйте проект, Ñто инициирует начальный импорт." #: editor/project_manager.cpp -msgid "Are you sure to run more than one project?" +#, fuzzy +msgid "Are you sure to run %d projects at once?" msgstr "Ð’Ñ‹ уверены, что хотите запуÑтить более одного проекта?" #: editor/project_manager.cpp -msgid "Remove project from the list? (Folder contents will not be modified)" +#, fuzzy +msgid "" +"Remove %d projects from the list?\n" +"The project folders' contents won't be modified." +msgstr "Удалить проект из ÑпиÑка? (Содержимое папки не будет изменено)" + +#: editor/project_manager.cpp +#, fuzzy +msgid "" +"Remove this project from the list?\n" +"The project folder's contents won't be modified." +msgstr "Удалить проект из ÑпиÑка? (Содержимое папки не будет изменено)" + +#: editor/project_manager.cpp +#, fuzzy +msgid "" +"Remove all missing projects from the list? (Folders contents will not be " +"modified)" msgstr "Удалить проект из ÑпиÑка? (Содержимое папки не будет изменено)" #: editor/project_manager.cpp +#, fuzzy msgid "" "Language changed.\n" -"The UI will update next time the editor or project manager starts." +"The interface will update after restarting the editor or project manager." msgstr "" "Язык изменилÑÑ.\n" "ПользовательÑкий Ð¸Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñ Ð±ÑƒÐ´ÐµÑ‚ обновлен при Ñледующем запуÑке редактора." #: editor/project_manager.cpp +#, fuzzy msgid "" -"You are about the scan %s folders for existing Godot projects. Do you " -"confirm?" +"Are you sure to scan %s folders for existing Godot projects?\n" +"This could take a while." msgstr "" "Ð’Ñ‹ ÑобираетеÑÑŒ Ñканировать %s папки Ð´Ð»Ñ ÑущеÑтвующих проектов Godot. " "Подтверждаете?" @@ -7812,6 +9371,11 @@ msgid "New Project" msgstr "Ðовый проект" #: editor/project_manager.cpp +#, fuzzy +msgid "Remove Missing" +msgstr "Удалить точку" + +#: editor/project_manager.cpp msgid "Templates" msgstr "Шаблоны" @@ -7828,9 +9392,10 @@ msgid "Can't run project" msgstr "Ðе удаётÑÑ Ð·Ð°Ð¿ÑƒÑтить проект" #: editor/project_manager.cpp +#, fuzzy msgid "" -"You don't currently have any projects.\n" -"Would you like to explore the official example projects in the Asset Library?" +"You currently don't have any projects.\n" +"Would you like to explore official example projects in the Asset Library?" msgstr "" "Ð’ наÑтоÑщее Ð²Ñ€ÐµÐ¼Ñ Ñƒ Ð²Ð°Ñ Ð½ÐµÑ‚ каких-либо проектов.\n" "Хотите изучить официальные примеры в библиотеке шаблонов?" @@ -7860,7 +9425,8 @@ msgstr "" "\"/\", \":\", \"=\", \"\\\" или \"''\"" #: editor/project_settings_editor.cpp -msgid "Action '%s' already exists!" +#, fuzzy +msgid "An action with the name '%s' already exists." msgstr "ДейÑтвие '%s' уже ÑущеÑтвует!" #: editor/project_settings_editor.cpp @@ -8016,10 +9582,6 @@ msgstr "" "'=', '\\' или '\"'." #: editor/project_settings_editor.cpp -msgid "Already existing" -msgstr "Уже ÑущеÑтвует" - -#: editor/project_settings_editor.cpp msgid "Add Input Action" msgstr "Добавить дейÑтвие" @@ -8084,7 +9646,8 @@ msgid "Override For..." msgstr "Переопределить длÑ..." #: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp -msgid "Editor must be restarted for changes to take effect" +#, fuzzy +msgid "The editor must be restarted for changes to take effect." msgstr "Чтобы Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð²Ñтупили в Ñилу, необходимо перезапуÑтить редактор" #: editor/project_settings_editor.cpp @@ -8144,11 +9707,13 @@ msgid "Locales Filter" msgstr "Фильтры локализации" #: editor/project_settings_editor.cpp -msgid "Show all locales" +#, fuzzy +msgid "Show All Locales" msgstr "Показать вÑе Ñзыки" #: editor/project_settings_editor.cpp -msgid "Show only selected locales" +#, fuzzy +msgid "Show Selected Locales Only" msgstr "Показать только выбранные Ñзыки" #: editor/project_settings_editor.cpp @@ -8164,14 +9729,6 @@ msgid "AutoLoad" msgstr "Ðвтозагрузка" #: editor/property_editor.cpp -msgid "Ease In" -msgstr "Переход Ð’" - -#: editor/property_editor.cpp -msgid "Ease Out" -msgstr "Переход ИЗ" - -#: editor/property_editor.cpp msgid "Zero" msgstr "Ðоль" @@ -8246,7 +9803,8 @@ msgid "Suffix" msgstr "СуффикÑ" #: editor/rename_dialog.cpp -msgid "Advanced options" +#, fuzzy +msgid "Advanced Options" msgstr "Дополнительные параметры" #: editor/rename_dialog.cpp @@ -8511,8 +10069,9 @@ msgid "User Interface" msgstr "ПользовательÑкий интерфейÑ" #: editor/scene_tree_dock.cpp -msgid "Custom Node" -msgstr "ПользовательÑкий узел" +#, fuzzy +msgid "Other Node" +msgstr "Удалить узел" #: editor/scene_tree_dock.cpp msgid "Can't operate on nodes from a foreign scene!" @@ -8555,7 +10114,8 @@ msgid "Clear Inheritance" msgstr "ОчиÑтить наÑледование" #: editor/scene_tree_dock.cpp -msgid "Open documentation" +#, fuzzy +msgid "Open Documentation" msgstr "Открыть документацию" #: editor/scene_tree_dock.cpp @@ -8582,7 +10142,7 @@ msgstr "Соединить Ñо Ñценой" msgid "Save Branch as Scene" msgstr "Сохранить ветку, как Ñцену" -#: editor/scene_tree_dock.cpp +#: editor/scene_tree_dock.cpp editor/script_editor_debugger.cpp msgid "Copy Node Path" msgstr "Копировать путь" @@ -8627,6 +10187,21 @@ msgid "Toggle Visible" msgstr "Переключить видимоÑть" #: editor/scene_tree_editor.cpp +#, fuzzy +msgid "Unlock Node" +msgstr "Выбрать узел" + +#: editor/scene_tree_editor.cpp +#, fuzzy +msgid "Button Group" +msgstr "Кнопка 7" + +#: editor/scene_tree_editor.cpp +#, fuzzy +msgid "(Connecting From)" +msgstr "Ошибка подключениÑ" + +#: editor/scene_tree_editor.cpp msgid "Node configuration warning:" msgstr "Конфигурации узла, предупреждение:" @@ -8654,8 +10229,9 @@ msgstr "" "Узел принадлежит к группе.\n" "Ðажмите, чтобы показать панель групп." -#: editor/scene_tree_editor.cpp editor/script_create_dialog.cpp -msgid "Open Script" +#: editor/scene_tree_editor.cpp +#, fuzzy +msgid "Open Script:" msgstr "Открыть Ñкрипт" #: editor/scene_tree_editor.cpp @@ -8707,71 +10283,83 @@ msgid "Select a Node" msgstr "Выбрать узел" #: editor/script_create_dialog.cpp -msgid "Error loading template '%s'" -msgstr "Ошибка при загрузке шаблона '%s'" +#, fuzzy +msgid "Path is empty." +msgstr "Ðе указан путь" #: editor/script_create_dialog.cpp -msgid "Error - Could not create script in filesystem." -msgstr "Ошибка - Ðе удалоÑÑŒ Ñоздать Ñкрипт в файловой ÑиÑтеме." +#, fuzzy +msgid "Filename is empty." +msgstr "ПуÑтое Ð¸Ð¼Ñ Ñ„Ð°Ð¹Ð»Ð°" #: editor/script_create_dialog.cpp -msgid "Error loading script from %s" -msgstr "Ошибка при загрузке Ñкрипта из %s" +#, fuzzy +msgid "Path is not local." +msgstr "Путь не локальный" #: editor/script_create_dialog.cpp -msgid "N/A" -msgstr "Ð/Д" +#, fuzzy +msgid "Invalid base path." +msgstr "ÐедопуÑтимый базовый путь" #: editor/script_create_dialog.cpp -msgid "Open Script/Choose Location" -msgstr "Открыть Скрипт/Выбрать МеÑто" +#, fuzzy +msgid "A directory with the same name exists." +msgstr "Каталог Ñ Ñ‚Ð°ÐºÐ¸Ð¼ же именем ÑущеÑтвует" #: editor/script_create_dialog.cpp -msgid "Path is empty" -msgstr "Ðе указан путь" +#, fuzzy +msgid "Invalid extension." +msgstr "ÐедопуÑтимое раÑширение" #: editor/script_create_dialog.cpp -msgid "Filename is empty" -msgstr "ПуÑтое Ð¸Ð¼Ñ Ñ„Ð°Ð¹Ð»Ð°" +#, fuzzy +msgid "Wrong extension chosen." +msgstr "Выбрано неверное раÑширение" #: editor/script_create_dialog.cpp -msgid "Path is not local" -msgstr "Путь не локальный" +msgid "Error loading template '%s'" +msgstr "Ошибка при загрузке шаблона '%s'" #: editor/script_create_dialog.cpp -msgid "Invalid base path" -msgstr "ÐедопуÑтимый базовый путь" +msgid "Error - Could not create script in filesystem." +msgstr "Ошибка - Ðе удалоÑÑŒ Ñоздать Ñкрипт в файловой ÑиÑтеме." #: editor/script_create_dialog.cpp -msgid "Directory of the same name exists" -msgstr "Каталог Ñ Ñ‚Ð°ÐºÐ¸Ð¼ же именем ÑущеÑтвует" +msgid "Error loading script from %s" +msgstr "Ошибка при загрузке Ñкрипта из %s" #: editor/script_create_dialog.cpp -msgid "File exists, will be reused" -msgstr "Файл ÑущеÑтвует, будет иÑпользован повторно" +msgid "N/A" +msgstr "Ð/Д" #: editor/script_create_dialog.cpp -msgid "Invalid extension" -msgstr "ÐедопуÑтимое раÑширение" +#, fuzzy +msgid "Open Script / Choose Location" +msgstr "Открыть Скрипт/Выбрать МеÑто" #: editor/script_create_dialog.cpp -msgid "Wrong extension chosen" -msgstr "Выбрано неверное раÑширение" +msgid "Open Script" +msgstr "Открыть Ñкрипт" #: editor/script_create_dialog.cpp -msgid "Invalid Path" -msgstr "Ðеверный путь" +#, fuzzy +msgid "File exists, it will be reused." +msgstr "Файл ÑущеÑтвует, будет иÑпользован повторно" #: editor/script_create_dialog.cpp -msgid "Invalid class name" +#, fuzzy +msgid "Invalid class name." msgstr "ÐедопуÑтимое Ð¸Ð¼Ñ ÐºÐ»Ð°ÑÑа" #: editor/script_create_dialog.cpp -msgid "Invalid inherited parent name or path" +#, fuzzy +msgid "Invalid inherited parent name or path." msgstr "Ðеверное Ð¸Ð¼Ñ Ð¸Ð»Ð¸ путь наÑледуемого предка" #: editor/script_create_dialog.cpp -msgid "Script valid" +#, fuzzy +msgid "Script is valid." msgstr "Скрипт корректен" #: editor/script_create_dialog.cpp @@ -8779,15 +10367,18 @@ msgid "Allowed: a-z, A-Z, 0-9 and _" msgstr "ДопуÑкаютÑÑ: a-z, A-Z, 0-9 и _" #: editor/script_create_dialog.cpp -msgid "Built-in script (into scene file)" +#, fuzzy +msgid "Built-in script (into scene file)." msgstr "Ð’Ñтроенный Ñкрипт (в файл Ñцены)" #: editor/script_create_dialog.cpp -msgid "Create new script file" +#, fuzzy +msgid "Will create a new script file." msgstr "Создать новый Ñкрипт" #: editor/script_create_dialog.cpp -msgid "Load existing script file" +#, fuzzy +msgid "Will load an existing script file." msgstr "Загрузить ÑущеÑтвующий Ñкрипт" #: editor/script_create_dialog.cpp @@ -8885,7 +10476,7 @@ msgstr "Видео памÑть" #: editor/script_editor_debugger.cpp msgid "Resource Path" -msgstr "Путь реÑурÑа" +msgstr "Путь к реÑурÑу" #: editor/script_editor_debugger.cpp msgid "Type" @@ -8919,6 +10510,10 @@ msgstr "Редактирование ÐºÐ¾Ñ€Ð½Ñ Ð² реальном времен msgid "Set From Tree" msgstr "УÑтановить из дерева" +#: editor/script_editor_debugger.cpp +msgid "Export measures as CSV" +msgstr "" + #: editor/settings_config_dialog.cpp msgid "Erase Shortcut" msgstr "Удалить ПривÑзанную Кнопку" @@ -9048,6 +10643,15 @@ msgid "GDNativeLibrary" msgstr "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 "Отключить Ñчётчик обновлений" + +#: modules/gdnative/gdnative_library_singleton_editor.cpp msgid "Library" msgstr "Библиотека" @@ -9133,8 +10737,9 @@ msgid "GridMap Fill Selection" msgstr "Злить выделенную GridMap" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "GridMap Duplicate Selection" -msgstr "Дублировать выделенную Ñетку" +#, fuzzy +msgid "GridMap Paste Selection" +msgstr "Удалить выделенную Ñетку" #: modules/gridmap/grid_map_editor_plugin.cpp msgid "GridMap Paint" @@ -9201,18 +10806,6 @@ msgid "Cursor Clear Rotation" msgstr "КурÑор очиÑтить поворот" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Create Area" -msgstr "Создать облаÑть" - -#: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Create Exterior Connector" -msgstr "Создать внешний коннектор" - -#: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Erase Area" -msgstr "Стереть облаÑть" - -#: modules/gridmap/grid_map_editor_plugin.cpp msgid "Clear Selection" msgstr "ОчиÑтить выделение" @@ -9525,9 +11118,8 @@ msgid "Change Input Value" msgstr "Изменить входное значение" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy msgid "Resize Comment" -msgstr "Изменить размер CanvasItem" +msgstr "Изменить размер комментариÑ" #: modules/visual_script/visual_script_editor.cpp msgid "Can't copy the function node." @@ -9574,18 +11166,11 @@ msgid "Available Nodes:" msgstr "ДоÑтупные узлы:" #: modules/visual_script/visual_script_editor.cpp -msgid "Select or create a function to edit graph" +#, fuzzy +msgid "Select or create a function to edit its graph." msgstr "Выберите или Ñоздайте функцию Ð´Ð»Ñ Ñ€ÐµÐ´Ð°ÐºÑ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð³Ñ€Ð°Ñ„Ð°" #: modules/visual_script/visual_script_editor.cpp -msgid "Edit Signal Arguments:" -msgstr "Редактирование аргументов Ñигнала:" - -#: modules/visual_script/visual_script_editor.cpp -msgid "Edit Variable:" -msgstr "Редактировать переменную:" - -#: modules/visual_script/visual_script_editor.cpp msgid "Delete Selected" msgstr "Удалить выделенное" @@ -9717,6 +11302,19 @@ msgstr "" "предуÑтановках." #: platform/android/export/export.cpp +msgid "Custom build requires a valid Android SDK path in Editor Settings." +msgstr "" + +#: platform/android/export/export.cpp +msgid "Invalid Android SDK path for custom build in Editor Settings." +msgstr "" + +#: platform/android/export/export.cpp +msgid "" +"Android project is not installed for compiling. Install from Editor menu." +msgstr "" + +#: platform/android/export/export.cpp msgid "Invalid public key for APK expansion." msgstr "ÐедейÑтвительный публичный ключ Ð´Ð»Ñ Ñ€Ð°ÑÑˆÐ¸Ñ€ÐµÐ½Ð¸Ñ APK." @@ -9724,6 +11322,34 @@ msgstr "ÐедейÑтвительный публичный ключ Ð´Ð»Ñ Ñ€Ð° msgid "Invalid package name:" msgstr "ÐедопуÑтимое Ð¸Ð¼Ñ Ð¿Ð°ÐºÐµÑ‚Ð°:" +#: platform/android/export/export.cpp +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 "" +"Android build version mismatch:\n" +" Template installed: %s\n" +" Godot Version: %s\n" +"Please reinstall Android build template from 'Project' menu." +msgstr "" + +#: platform/android/export/export.cpp +msgid "Building Android Project (gradle)" +msgstr "" + +#: 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 "" + +#: platform/android/export/export.cpp +msgid "No build apk generated at: " +msgstr "" + #: platform/iphone/export/export.cpp msgid "Identifier is missing." msgstr "ОтÑутÑтвует определитель." @@ -10025,31 +11651,36 @@ msgid "ARVRCamera must have an ARVROrigin node as its parent" msgstr "ARVRCamera должна иметь узел ARVROrigin в качеÑтве предка" #: scene/3d/arvr_nodes.cpp -msgid "ARVRController must have an ARVROrigin node as its parent" +#, fuzzy +msgid "ARVRController must have an ARVROrigin node as its parent." msgstr "ARVRController должен иметь узел ARVROrigin в качеÑтве предка" #: scene/3d/arvr_nodes.cpp +#, fuzzy msgid "" -"The controller id must not be 0 or this controller will not be bound to an " -"actual controller" +"The controller ID must not be 0 or this controller won't be bound to an " +"actual controller." msgstr "" "Идентификатор контроллера не должен быть равен 0 или Ñтот контроллер не " "будет привÑзан к фактичеÑкому контроллеру" #: scene/3d/arvr_nodes.cpp -msgid "ARVRAnchor must have an ARVROrigin node as its parent" +#, fuzzy +msgid "ARVRAnchor must have an ARVROrigin node as its parent." msgstr "ARVRAnchor должен иметь узел ARVROrigin в качеÑтве предка" #: scene/3d/arvr_nodes.cpp +#, fuzzy msgid "" -"The anchor id must not be 0 or this anchor will not be bound to an actual " -"anchor" +"The anchor ID must not be 0 or this anchor won't be bound to an actual " +"anchor." msgstr "" "Идентификатор ÑÐºÐ¾Ñ€Ñ Ð½Ðµ должен быть равен 0 или Ñтот Ñкорь не будет привÑзан " "к фактичеÑкому Ñкорю" #: scene/3d/arvr_nodes.cpp -msgid "ARVROrigin requires an ARVRCamera child node" +#, fuzzy +msgid "ARVROrigin requires an ARVRCamera child node." msgstr "ARVROrigin требует дочерний узел ARVRCamera" #: scene/3d/baked_lightmap.cpp @@ -10132,9 +11763,10 @@ msgid "Nothing is visible because no mesh has been assigned." msgstr "Ðичто не видно, потому что не назначена Ñетка." #: scene/3d/cpu_particles.cpp +#, fuzzy msgid "" -"CPUParticles animation requires the usage of a SpatialMaterial with " -"\"Billboard Particles\" enabled." +"CPUParticles animation requires the usage of a SpatialMaterial whose " +"Billboard Mode is set to \"Particle Billboard\"." msgstr "" "ÐÐ½Ð¸Ð¼Ð°Ñ†Ð¸Ñ CPUParticles требует иÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ SpatialMaterial Ñ Ð²ÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ð¾Ð¹ " "функцией \"Billboard Particles\"." @@ -10180,9 +11812,10 @@ msgid "" msgstr "Ðичего не видно, потому что полиÑетки не были назначены на отриÑовку." #: scene/3d/particles.cpp +#, fuzzy msgid "" -"Particles animation requires the usage of a SpatialMaterial with \"Billboard " -"Particles\" enabled." +"Particles animation requires the usage of a SpatialMaterial whose Billboard " +"Mode is set to \"Particle Billboard\"." msgstr "" "ÐÐ½Ð¸Ð¼Ð°Ñ†Ð¸Ñ Ñ‡Ð°Ñтиц требует иÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ SpatialMaterial Ñ Ð²ÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ð¾Ð¹ функцией " "\"Billboard Particles\"." @@ -10214,7 +11847,8 @@ msgid "Path property must point to a valid Spatial node to work." msgstr "СвойÑтво Path должно указывать на дейÑтвительный Spatial узел." #: scene/3d/soft_body.cpp -msgid "This body will be ignored until you set a mesh" +#, fuzzy +msgid "This body will be ignored until you set a mesh." msgstr "Ðто тело будет игнорироватьÑÑ, пока вы не уÑтановите Ñетку" #: scene/3d/soft_body.cpp @@ -10321,10 +11955,11 @@ msgid "Add current color as a preset." msgstr "Добавить текущий цвет как преÑет" #: scene/gui/container.cpp +#, fuzzy msgid "" "Container by itself serves no purpose unless a script configures it's " "children placement behavior.\n" -"If you dont't intend to add a script, then please use a plain 'Control' node " +"If you don't intend to add a script, then please use a plain 'Control' node " "instead." msgstr "" "Контейнер Ñам по Ñебе не имеет ÑмыÑла, пока Ñкрипт не наÑтроит режим " @@ -10340,11 +11975,6 @@ msgstr "Внимание!" msgid "Please Confirm..." msgstr "Подтверждение..." -#: scene/gui/file_dialog.cpp -#, fuzzy -msgid "Go to parent folder." -msgstr "Перейти к родительÑкой папке" - #: scene/gui/popup.cpp msgid "" "Popups will hide by default unless you call popup() or any of the popup*() " @@ -10432,6 +12062,76 @@ msgstr "Ðазначить форму." msgid "Varyings can only be assigned in vertex function." msgstr "Ð˜Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¼Ð¾Ð³ÑƒÑ‚ быть назначены только в функции вершины." +#: servers/visual/shader_language.cpp +msgid "Constants cannot be modified." +msgstr "" + +#~ msgid "Path to Node:" +#~ msgstr "Путь к Узлу:" + +#~ msgid "Delete selected files?" +#~ msgstr "Удалить выбранные файлы?" + +#~ msgid "There is no 'res://default_bus_layout.tres' file." +#~ msgstr "ОтÑутÑтвует файл «res://default_bus_layout.tres»." + +#~ msgid "Go to parent folder" +#~ msgstr "Перейти к родительÑкой папке" + +#~ msgid "Select device from the list" +#~ msgstr "Выберите уÑтройÑтво из ÑпиÑка" + +#~ msgid "Open Scene(s)" +#~ msgstr "Открыть Ñцену(ны)" + +#~ msgid "Previous Directory" +#~ msgstr "Предыдущий каталог" + +#~ msgid "Next Directory" +#~ msgstr "Следующий каталог" + +#~ msgid "Ease in" +#~ msgstr "Переход Ð’" + +#~ msgid "Ease out" +#~ msgstr "Переход ИЗ" + +#~ msgid "Create Convex Static Body" +#~ msgstr "Создать выпуклое Ñтатичное тело" + +#~ msgid "CheckBox Radio1" +#~ msgstr "Ð§ÐµÐºÐ±Ð¾ÐºÑ 1" + +#~ msgid "CheckBox Radio2" +#~ msgstr "Ð§ÐµÐºÐ±Ð¾ÐºÑ 2" + +#~ msgid "Create folder" +#~ msgstr "Создать папку" + +#~ msgid "Already existing" +#~ msgstr "Уже ÑущеÑтвует" + +#~ msgid "Custom Node" +#~ msgstr "ПользовательÑкий узел" + +#~ msgid "Invalid Path" +#~ msgstr "Ðеверный путь" + +#~ msgid "GridMap Duplicate Selection" +#~ msgstr "Дублировать выделенную Ñетку" + +#~ msgid "Create Area" +#~ msgstr "Создать облаÑть" + +#~ msgid "Create Exterior Connector" +#~ msgstr "Создать внешний коннектор" + +#~ msgid "Edit Signal Arguments:" +#~ msgstr "Редактирование аргументов Ñигнала:" + +#~ msgid "Edit Variable:" +#~ msgstr "Редактировать переменную:" + #~ msgid "Snap (s): " #~ msgstr "ПривÑзка (Ñек): " @@ -10551,9 +12251,6 @@ msgstr "Ð˜Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¼Ð¾Ð³ÑƒÑ‚ быть назначены только Ð #~ msgid "Class List:" #~ msgstr "СпиÑок клаÑÑов:" -#~ msgid "Search Classes" -#~ msgstr "ПоиÑк клаÑÑов" - #~ msgid "Public Methods" #~ msgstr "Публичные методы" @@ -10630,9 +12327,6 @@ msgstr "Ð˜Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¼Ð¾Ð³ÑƒÑ‚ быть назначены только Ð #~ msgid "Error:" #~ msgstr "Ошибка:" -#~ msgid "Source:" -#~ msgstr "ИÑточник:" - #~ msgid "Function:" #~ msgstr "ФункциÑ:" @@ -10654,21 +12348,9 @@ msgstr "Ð˜Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¼Ð¾Ð³ÑƒÑ‚ быть назначены только Ð #~ msgid "Get" #~ msgstr "Получить" -#~ msgid "Change Scalar Constant" -#~ msgstr "Изменить чиÑловую конÑтанту" - -#~ msgid "Change Vec Constant" -#~ msgstr "Изменить векторную конÑтанту" - #~ msgid "Change RGB Constant" #~ msgstr "Изменить RGB конÑтанту" -#~ msgid "Change Scalar Operator" -#~ msgstr "Изменить чиÑловой оператор" - -#~ msgid "Change Vec Operator" -#~ msgstr "Изменить векторный оператор" - #~ msgid "Change Vec Scalar Operator" #~ msgstr "Изменить векторно-чиÑловой оператор" @@ -10678,15 +12360,9 @@ msgstr "Ð˜Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¼Ð¾Ð³ÑƒÑ‚ быть назначены только Ð #~ msgid "Toggle Rot Only" #~ msgstr "Переключить - только поворот" -#~ msgid "Change Scalar Function" -#~ msgstr "Изменить чиÑловую функцию" - #~ msgid "Change Vec Function" #~ msgstr "Изменить векторную функцию" -#~ msgid "Change Scalar Uniform" -#~ msgstr "Изменить чиÑловую единицу" - #~ msgid "Change Vec Uniform" #~ msgstr "Изменить векторную единицу" @@ -10699,9 +12375,6 @@ msgstr "Ð˜Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¼Ð¾Ð³ÑƒÑ‚ быть назначены только Ð #~ msgid "Change XForm Uniform" #~ msgstr "Изменить XForm единицу" -#~ msgid "Change Texture Uniform" -#~ msgstr "Изменить текÑтурную единицу" - #~ msgid "Change Cubemap Uniform" #~ msgstr "Изменить единицу кубичеÑкой карты" @@ -10720,9 +12393,6 @@ msgstr "Ð˜Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¼Ð¾Ð³ÑƒÑ‚ быть назначены только Ð #~ msgid "Modify Curve Map" #~ msgstr "Редактировать карту кривой" -#~ msgid "Change Input Name" -#~ msgstr "Изменить Ð¸Ð¼Ñ Ð²Ñ…Ð¾Ð´Ð°" - #~ msgid "Connect Graph Nodes" #~ msgstr "Соединить узлы графа" @@ -10750,9 +12420,6 @@ msgstr "Ð˜Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¼Ð¾Ð³ÑƒÑ‚ быть назначены только Ð #~ msgid "Add Shader Graph Node" #~ msgstr "Добавить узел графа шейдера" -#~ msgid "Disabled" -#~ msgstr "Отключено" - #~ msgid "Move Anim Track Up" #~ msgstr "Передвинуть дорожку вверх" @@ -10933,15 +12600,9 @@ msgstr "Ð˜Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¼Ð¾Ð³ÑƒÑ‚ быть назначены только Ð #~ msgid "Item name or ID:" #~ msgstr "ID или Ð¸Ð¼Ñ Ñлемента:" -#~ msgid "Autotiles" -#~ msgstr "Ðвтотайлы" - #~ msgid "Export templates for this platform are missing/corrupted: " #~ msgstr "Шаблоны ÑкÑпорта Ð´Ð»Ñ Ñтой платформы отÑутÑтвуют/повреждены: " -#~ msgid "Button 7" -#~ msgstr "Кнопка 7" - #~ msgid "Button 8" #~ msgstr "Кнопка 8" @@ -11845,9 +13506,6 @@ msgstr "Ð˜Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¼Ð¾Ð³ÑƒÑ‚ быть назначены только Ð #~ msgid "Project Export Settings" #~ msgstr "Параметры ÑкÑпорта проекта" -#~ msgid "Target" -#~ msgstr "Цель" - #~ msgid "Export to Platform" #~ msgstr "Платформа Ð´Ð»Ñ ÑкÑпорта" @@ -11902,9 +13560,6 @@ msgstr "Ð˜Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¼Ð¾Ð³ÑƒÑ‚ быть назначены только Ð #~ msgid "Shrink By:" #~ msgstr "Степень ÑжатиÑ:" -#~ msgid "Preview Atlas" -#~ msgstr "ПредпроÑмотр атлаÑа" - #~ msgid "Images:" #~ msgstr "ИзображениÑ:" diff --git a/editor/translations/si.po b/editor/translations/si.po index 581ab36ee0..b1f4ea0acd 100644 --- a/editor/translations/si.po +++ b/editor/translations/si.po @@ -70,6 +70,14 @@ msgstr "සමà¶à·”ලිà¶à¶ºà·’" msgid "Mirror" msgstr "à¶šà·à¶©à¶´à¶" +#: editor/animation_bezier_editor.cpp editor/editor_profiler.cpp +msgid "Time:" +msgstr "" + +#: editor/animation_bezier_editor.cpp +msgid "Value:" +msgstr "" + #: editor/animation_bezier_editor.cpp msgid "Insert Key Here" msgstr "මෙහි යà¶à·”à¶» ඇà¶à·”à¶½à¶à·Š කරන්න" @@ -153,14 +161,20 @@ msgid "Animation Playback Track" msgstr "සජීවීකරණ à¶°à·à·€à¶±à¶º ලුහුබදින්න" #: editor/animation_track_editor.cpp -msgid "Add Track" -msgstr "ලුහුබදින්නෙක් à¶‘à¶šà·Š කරන්න" +#, fuzzy +msgid "Animation length (frames)" +msgstr "සජීවීකරණ à¶šà·à¶½à¶º (à¶à¶´à·Šà¶´à¶»)" #: editor/animation_track_editor.cpp -msgid "Animation Length Time (seconds)" +#, fuzzy +msgid "Animation length (seconds)" msgstr "සජීවීකරණ à¶šà·à¶½à¶º (à¶à¶´à·Šà¶´à¶»)" #: editor/animation_track_editor.cpp +msgid "Add Track" +msgstr "ලුහුබදින්නෙක් à¶‘à¶šà·Š කරන්න" + +#: editor/animation_track_editor.cpp msgid "Animation Looping" msgstr "සජීවීකරණ පුනරà·à·€à¶»à·Šà¶®à¶±à¶º" @@ -286,11 +300,13 @@ msgid "Create %d NEW tracks and insert keys?" msgstr "%d සදහ෠ලුහුබදින්නන් à·ƒà·à¶¯à· යà¶à·”රු ඇà¶à·”à¶½à¶à·Š කරන්න?" #: editor/animation_track_editor.cpp editor/create_dialog.cpp -#: editor/editor_audio_buses.cpp editor/editor_plugin_settings.cpp -#: editor/plugin_config_dialog.cpp +#: editor/editor_audio_buses.cpp editor/editor_feature_profile.cpp +#: editor/editor_plugin_settings.cpp editor/plugin_config_dialog.cpp #: editor/plugins/abstract_polygon_2d_editor.cpp #: editor/plugins/mesh_instance_editor_plugin.cpp -#: editor/plugins/particles_editor_plugin.cpp editor/script_create_dialog.cpp +#: editor/plugins/particles_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_create_dialog.cpp msgid "Create" msgstr "à·ƒà·à¶¯à¶±à·Šà¶±" @@ -409,6 +425,23 @@ msgid "" msgstr "" #: editor/animation_track_editor.cpp +msgid "" +"This animation belongs to an imported scene, so changes to imported tracks " +"will not be saved.\n" +"\n" +"To enable the ability to add custom tracks, navigate to the scene's import " +"settings and set\n" +"\"Animation > Storage\" to \"Files\", enable \"Animation > Keep Custom Tracks" +"\", then re-import.\n" +"Alternatively, use an import preset that imports animations to separate " +"files." +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Warning: Editing imported animation" +msgstr "" + +#: editor/animation_track_editor.cpp msgid "Only show tracks from nodes selected in tree." msgstr "" @@ -541,7 +574,8 @@ msgstr "" msgid "Select tracks to copy:" msgstr "" -#: editor/animation_track_editor.cpp editor/editor_properties.cpp +#: editor/animation_track_editor.cpp editor/editor_log.cpp +#: editor/editor_properties.cpp #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp @@ -610,6 +644,11 @@ msgstr "" msgid "Selection Only" msgstr "" +#: editor/code_editor.cpp editor/plugins/script_text_editor.cpp +#: editor/plugins/text_editor.cpp +msgid "Standard" +msgstr "" + #: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/texture_region_editor_plugin.cpp #: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp @@ -635,17 +674,29 @@ msgid "Line and column numbers." msgstr "" #: editor/connections_dialog.cpp -msgid "Method in target Node must be specified!" +msgid "Method in target node must be specified." msgstr "" #: editor/connections_dialog.cpp msgid "" -"Target method not found! Specify a valid method or attach a script to target " -"Node." +"Target method not found. Specify a valid method or attach a script to the " +"target node." +msgstr "" + +#: editor/connections_dialog.cpp +msgid "Connect to Node:" +msgstr "" + +#: editor/connections_dialog.cpp +msgid "Connect to Script:" +msgstr "" + +#: editor/connections_dialog.cpp +msgid "From Signal:" msgstr "" #: editor/connections_dialog.cpp -msgid "Connect To Node:" +msgid "Scene does not contain any script." msgstr "" #: editor/connections_dialog.cpp editor/editor_autoload_settings.cpp @@ -655,10 +706,12 @@ msgid "Add" msgstr "" #: editor/connections_dialog.cpp editor/dependency_editor.cpp -#: editor/groups_editor.cpp editor/plugins/animation_player_editor_plugin.cpp +#: editor/editor_feature_profile.cpp editor/groups_editor.cpp +#: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp #: editor/plugins/resource_preloader_editor_plugin.cpp -#: editor/plugins/theme_editor_plugin.cpp editor/project_manager.cpp +#: editor/plugins/theme_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_manager.cpp #: editor/project_settings_editor.cpp msgid "Remove" msgstr "" @@ -672,21 +725,31 @@ msgid "Extra Call Arguments:" msgstr "" #: editor/connections_dialog.cpp -msgid "Path to Node:" -msgstr "" +#, fuzzy +msgid "Advanced" +msgstr "සමà¶à·”ලිà¶à¶ºà·’" #: editor/connections_dialog.cpp -msgid "Make Function" +msgid "Deferred" msgstr "" #: editor/connections_dialog.cpp -msgid "Deferred" +msgid "" +"Defers the signal, storing it in a queue and only firing it at idle time." msgstr "" #: editor/connections_dialog.cpp msgid "Oneshot" msgstr "" +#: editor/connections_dialog.cpp +msgid "Disconnects the signal after its first emission." +msgstr "" + +#: editor/connections_dialog.cpp +msgid "Cannot connect signal" +msgstr "" + #: editor/connections_dialog.cpp editor/dependency_editor.cpp #: editor/export_template_manager.cpp editor/groups_editor.cpp #: editor/plugins/animation_player_editor_plugin.cpp @@ -727,11 +790,11 @@ msgid "Disconnect" msgstr "" #: editor/connections_dialog.cpp -msgid "Connect Signal: " +msgid "Connect a Signal to a Method" msgstr "" #: editor/connections_dialog.cpp -msgid "Edit Connection: " +msgid "Edit Connection:" msgstr "" #: editor/connections_dialog.cpp @@ -763,7 +826,6 @@ msgid "Change %s Type" msgstr "" #: editor/create_dialog.cpp editor/project_settings_editor.cpp -#: modules/visual_script/visual_script_editor.cpp msgid "Change" msgstr "" @@ -794,7 +856,8 @@ msgid "Matches:" msgstr "" #: editor/create_dialog.cpp editor/plugin_config_dialog.cpp -#: editor/plugins/asset_library_editor_plugin.cpp editor/property_selector.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/property_selector.cpp #: modules/visual_script/visual_script_property_selector.cpp msgid "Description:" msgstr "" @@ -810,13 +873,13 @@ msgstr "" #: editor/dependency_editor.cpp msgid "" "Scene '%s' is currently being edited.\n" -"Changes will not take effect unless reloaded." +"Changes will only take effect when reloaded." msgstr "" #: editor/dependency_editor.cpp msgid "" "Resource '%s' is in use.\n" -"Changes will take effect when reloaded." +"Changes will only take effect when reloaded." msgstr "" #: editor/dependency_editor.cpp @@ -907,21 +970,13 @@ msgid "Permanently delete %d item(s)? (No undo!)" msgstr "" #: editor/dependency_editor.cpp -msgid "Owns" -msgstr "" - -#: editor/dependency_editor.cpp -msgid "Resources Without Explicit Ownership:" +msgid "Show Dependencies" msgstr "" #: editor/dependency_editor.cpp editor/editor_node.cpp msgid "Orphan Resource Explorer" msgstr "" -#: editor/dependency_editor.cpp -msgid "Delete selected files?" -msgstr "" - #: editor/dependency_editor.cpp editor/editor_audio_buses.cpp #: editor/editor_file_dialog.cpp editor/editor_node.cpp #: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp @@ -930,6 +985,14 @@ msgstr "" msgid "Delete" msgstr "" +#: editor/dependency_editor.cpp +msgid "Owns" +msgstr "" + +#: editor/dependency_editor.cpp +msgid "Resources Without Explicit Ownership:" +msgstr "" + #: editor/dictionary_property_edit.cpp msgid "Change Dictionary Key" msgstr "" @@ -1039,7 +1102,7 @@ msgstr "" msgid "Success!" msgstr "" -#: editor/editor_asset_installer.cpp +#: editor/editor_asset_installer.cpp editor/editor_node.cpp #: editor/plugins/asset_library_editor_plugin.cpp msgid "Install" msgstr "" @@ -1166,7 +1229,11 @@ msgid "Open Audio Bus Layout" msgstr "" #: editor/editor_audio_buses.cpp -msgid "There is no 'res://default_bus_layout.tres' file." +msgid "There is no '%s' file." +msgstr "" + +#: editor/editor_audio_buses.cpp editor/plugins/canvas_item_editor_plugin.cpp +msgid "Layout" msgstr "" #: editor/editor_audio_buses.cpp @@ -1220,15 +1287,19 @@ msgid "Valid characters:" msgstr "" #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing engine class name." +msgid "Must not collide with an existing engine class name." msgstr "" #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing buit-in type name." +msgid "Must not collide with an existing buit-in type name." msgstr "" #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing global constant name." +msgid "Must not collide with an existing global constant name." +msgstr "" + +#: editor/editor_autoload_settings.cpp +msgid "Keyword cannot be used as an autoload name." msgstr "" #: editor/editor_autoload_settings.cpp @@ -1259,11 +1330,11 @@ msgstr "" msgid "Rearrange Autoloads" msgstr "" -#: editor/editor_autoload_settings.cpp -msgid "Invalid Path." +#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp +msgid "Invalid path." msgstr "" -#: editor/editor_autoload_settings.cpp +#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp msgid "File does not exist." msgstr "" @@ -1314,7 +1385,7 @@ msgid "[unsaved]" msgstr "" #: editor/editor_dir_dialog.cpp -msgid "Please select a base directory first" +msgid "Please select a base directory first." msgstr "" #: editor/editor_dir_dialog.cpp @@ -1322,7 +1393,8 @@ msgid "Choose a Directory" msgstr "" #: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp -#: editor/filesystem_dock.cpp scene/gui/file_dialog.cpp +#: editor/filesystem_dock.cpp editor/project_manager.cpp +#: scene/gui/file_dialog.cpp msgid "Create Folder" msgstr "" @@ -1390,6 +1462,151 @@ msgstr "" msgid "Template file not found:" msgstr "" +#: editor/editor_feature_profile.cpp +msgid "3D Editor" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Script Editor" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Asset Library" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Scene Tree Editing" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Import Dock" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Node Dock" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Filesystem Dock" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Erase profile '%s'? (no undo)" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Profile must be a valid filename and must not contain '.'" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Profile with this name already exists." +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "(Editor Disabled, Properties Disabled)" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "(Properties Disabled)" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "(Editor Disabled)" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Class Options:" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Enable Contextual Editor" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Enabled Properties:" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Enabled Features:" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Enabled Classes:" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "File '%s' format is invalid, import aborted." +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "" +"Profile '%s' already exists. Remote it first before importing, import " +"aborted." +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Error saving profile to path: '%s'." +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Unset" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Current Profile" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Make Current" +msgstr "" + +#: editor/editor_feature_profile.cpp +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "New" +msgstr "" + +#: editor/editor_feature_profile.cpp editor/editor_node.cpp +#: editor/plugins/asset_library_editor_plugin.cpp editor/project_manager.cpp +msgid "Import" +msgstr "" + +#: editor/editor_feature_profile.cpp editor/editor_node.cpp +#: editor/project_export.cpp +msgid "Export" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Available Profiles" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Enabled Classes" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Class Options" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "New profile name:" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Erase Profile" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Import Profile(s)" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Export Profile" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Manage Editor Feature Profiles" +msgstr "" + #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Select Current Folder" msgstr "" @@ -1410,8 +1627,8 @@ msgstr "" msgid "Open in File Manager" msgstr "" -#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp -#: editor/project_manager.cpp +#: editor/editor_file_dialog.cpp editor/editor_node.cpp +#: editor/filesystem_dock.cpp editor/project_manager.cpp msgid "Show in File Manager" msgstr "" @@ -1470,7 +1687,7 @@ msgstr "" msgid "Go Up" msgstr "" -#: editor/editor_file_dialog.cpp +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Toggle Hidden Files" msgstr "" @@ -1502,14 +1719,18 @@ msgstr "" msgid "Next Folder" msgstr "" -#: editor/editor_file_dialog.cpp -msgid "Go to parent folder" +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp +msgid "Go to parent folder." msgstr "" #: editor/editor_file_dialog.cpp msgid "(Un)favorite current folder." msgstr "" +#: editor/editor_file_dialog.cpp +msgid "Toggle visibility of hidden files." +msgstr "" + #: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp msgid "View items as a grid of thumbnails." msgstr "" @@ -1524,6 +1745,7 @@ msgstr "" #: editor/editor_file_dialog.cpp editor/plugins/sprite_editor_plugin.cpp #: editor/plugins/style_box_editor_plugin.cpp +#: editor/plugins/theme_editor_plugin.cpp msgid "Preview:" msgstr "" @@ -1540,6 +1762,12 @@ msgid "ScanSources" msgstr "" #: editor/editor_file_system.cpp +msgid "" +"There are multiple importers for different types pointing to file %s, import " +"aborted" +msgstr "" + +#: editor/editor_file_system.cpp msgid "(Re)Importing Assets" msgstr "" @@ -1715,6 +1943,10 @@ msgstr "" msgid "Output:" msgstr "" +#: editor/editor_log.cpp editor/plugins/tile_map_editor_plugin.cpp +msgid "Copy Selection" +msgstr "" + #: editor/editor_log.cpp editor/editor_profiler.cpp #: editor/editor_properties.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp @@ -1862,7 +2094,7 @@ msgstr "" #: editor/editor_node.cpp msgid "" "This resource belongs to a scene that was instanced or inherited.\n" -"Changes to it will not be kept when saving the current scene." +"Changes to it won't be kept when saving the current scene." msgstr "" #: editor/editor_node.cpp @@ -1873,7 +2105,7 @@ msgstr "" #: editor/editor_node.cpp msgid "" -"This scene was imported, so changes to it will not be kept.\n" +"This scene was imported, so changes to it won't be kept.\n" "Instancing it or inheriting will allow making changes to it.\n" "Please read the documentation relevant to importing scenes to better " "understand this workflow." @@ -1881,7 +2113,7 @@ msgstr "" #: editor/editor_node.cpp msgid "" -"This is a remote object so changes to it will not be kept.\n" +"This is a remote object, so changes to it won't be kept.\n" "Please read the documentation relevant to debugging to better understand " "this workflow." msgstr "" @@ -1891,27 +2123,6 @@ msgid "There is no defined scene to run." msgstr "" #: editor/editor_node.cpp -msgid "" -"No main scene has ever been defined, select one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" - -#: editor/editor_node.cpp -msgid "" -"Selected scene '%s' does not exist, select a valid one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" - -#: editor/editor_node.cpp -msgid "" -"Selected scene '%s' is not a scene file, select a valid one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" - -#: editor/editor_node.cpp msgid "Current scene was never saved, please save it prior to running." msgstr "" @@ -1919,7 +2130,7 @@ msgstr "" msgid "Could not start subprocess!" msgstr "" -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/filesystem_dock.cpp msgid "Open Scene" msgstr "" @@ -1928,6 +2139,10 @@ msgid "Open Base Scene" msgstr "" #: editor/editor_node.cpp +msgid "Quick Open..." +msgstr "" + +#: editor/editor_node.cpp msgid "Quick Open Scene..." msgstr "" @@ -2089,6 +2304,27 @@ msgid "Clear Recent Scenes" msgstr "" #: editor/editor_node.cpp +msgid "" +"No main scene has ever been defined, select one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"Selected scene '%s' does not exist, select a valid one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"Selected scene '%s' is not a scene file, select a valid one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" + +#: editor/editor_node.cpp msgid "Save Layout" msgstr "" @@ -2114,6 +2350,18 @@ msgstr "" msgid "Close Tab" msgstr "" +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +msgid "Close Other Tabs" +msgstr "" + +#: editor/editor_node.cpp +msgid "Close Tabs to the Right" +msgstr "" + +#: editor/editor_node.cpp +msgid "Close All Tabs" +msgstr "" + #: editor/editor_node.cpp msgid "Switch Scene Tab" msgstr "" @@ -2236,10 +2484,6 @@ msgstr "" msgid "Project Settings" msgstr "" -#: editor/editor_node.cpp editor/project_export.cpp -msgid "Export" -msgstr "" - #: editor/editor_node.cpp editor/plugins/tile_set_editor_plugin.cpp msgid "Tools" msgstr "" @@ -2249,6 +2493,10 @@ msgid "Open Project Data Folder" msgstr "" #: editor/editor_node.cpp +msgid "Install Android Build Template" +msgstr "" + +#: editor/editor_node.cpp msgid "Quit to Project List" msgstr "" @@ -2353,6 +2601,10 @@ msgstr "" msgid "Open Editor Settings Folder" msgstr "" +#: editor/editor_node.cpp +msgid "Manage Editor Features" +msgstr "" + #: editor/editor_node.cpp editor/project_export.cpp msgid "Manage Export Templates" msgstr "" @@ -2365,6 +2617,7 @@ msgstr "" #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp #: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp #: editor/project_settings_editor.cpp editor/rename_dialog.cpp msgid "Search" msgstr "" @@ -2454,11 +2707,6 @@ msgstr "" msgid "Disable Update Spinner" msgstr "" -#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp -#: editor/project_manager.cpp -msgid "Import" -msgstr "" - #: editor/editor_node.cpp msgid "FileSystem" msgstr "" @@ -2484,6 +2732,27 @@ msgid "Don't Save" msgstr "" #: editor/editor_node.cpp +msgid "Android build template is missing, please install relevant templates." +msgstr "" + +#: editor/editor_node.cpp +msgid "Manage Templates" +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"This will install the Android project for custom builds.\n" +"Note that, in order to use it, it needs to be enabled per export preset." +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"Android build template is already installed and it won't be overwritten.\n" +"Remove the \"build\" directory manually before attempting this operation " +"again." +msgstr "" + +#: editor/editor_node.cpp msgid "Import Templates From ZIP File" msgstr "" @@ -2606,10 +2875,6 @@ msgid "Physics Frame %" msgstr "" #: editor/editor_profiler.cpp -msgid "Time:" -msgstr "" - -#: editor/editor_profiler.cpp msgid "Inclusive" msgstr "" @@ -2744,10 +3009,6 @@ msgid "Remove Item" msgstr "" #: editor/editor_run_native.cpp -msgid "Select device from the list" -msgstr "" - -#: editor/editor_run_native.cpp msgid "" "No runnable export preset found for this platform.\n" "Please add a runnable preset in the export menu." @@ -2781,6 +3042,10 @@ msgstr "" msgid "Select Node(s) to Import" msgstr "" +#: editor/editor_sub_scene.cpp editor/project_manager.cpp +msgid "Browse" +msgstr "" + #: editor/editor_sub_scene.cpp msgid "Scene Path:" msgstr "" @@ -2943,6 +3208,10 @@ msgid "SSL Handshake Error" msgstr "" #: editor/export_template_manager.cpp +msgid "Uncompressing Android Build Sources" +msgstr "" + +#: editor/export_template_manager.cpp msgid "Current Version:" msgstr "" @@ -2959,7 +3228,7 @@ msgid "Remove Template" msgstr "" #: editor/export_template_manager.cpp -msgid "Select template file" +msgid "Select Template File" msgstr "" #: editor/export_template_manager.cpp @@ -3015,7 +3284,7 @@ msgid "No name provided." msgstr "" #: editor/filesystem_dock.cpp -msgid "Provided name contains invalid characters" +msgid "Provided name contains invalid characters." msgstr "" #: editor/filesystem_dock.cpp @@ -3043,7 +3312,11 @@ msgid "Duplicating folder:" msgstr "" #: editor/filesystem_dock.cpp -msgid "Open Scene(s)" +msgid "New Inherited Scene" +msgstr "" + +#: editor/filesystem_dock.cpp +msgid "Open Scenes" msgstr "" #: editor/filesystem_dock.cpp @@ -3051,11 +3324,11 @@ msgid "Instance" msgstr "" #: editor/filesystem_dock.cpp -msgid "Add to favorites" +msgid "Add to Favorites" msgstr "" #: editor/filesystem_dock.cpp -msgid "Remove from favorites" +msgid "Remove from Favorites" msgstr "" #: editor/filesystem_dock.cpp @@ -3086,11 +3359,13 @@ msgstr "" msgid "New Resource..." msgstr "" -#: editor/filesystem_dock.cpp editor/script_editor_debugger.cpp +#: editor/filesystem_dock.cpp editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_editor_debugger.cpp msgid "Expand All" msgstr "" -#: editor/filesystem_dock.cpp editor/script_editor_debugger.cpp +#: editor/filesystem_dock.cpp editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_editor_debugger.cpp msgid "Collapse All" msgstr "" @@ -3102,11 +3377,11 @@ msgid "Rename" msgstr "" #: editor/filesystem_dock.cpp -msgid "Previous Directory" +msgid "Previous Folder/File" msgstr "" #: editor/filesystem_dock.cpp -msgid "Next Directory" +msgid "Next Folder/File" msgstr "" #: editor/filesystem_dock.cpp @@ -3114,7 +3389,7 @@ msgid "Re-Scan Filesystem" msgstr "" #: editor/filesystem_dock.cpp -msgid "Toggle split mode" +msgid "Toggle Split Mode" msgstr "" #: editor/filesystem_dock.cpp @@ -3143,7 +3418,7 @@ msgstr "" msgid "Create Script" msgstr "" -#: editor/find_in_files.cpp +#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp msgid "Find in Files" msgstr "" @@ -3159,6 +3434,12 @@ msgstr "" msgid "Filters:" msgstr "" +#: editor/find_in_files.cpp +msgid "" +"Include the files with the following extensions. Add or remove them in " +"ProjectSettings." +msgstr "" + #: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp msgid "Find..." @@ -3588,7 +3869,7 @@ msgid "Open Animation Node" msgstr "" #: editor/plugins/animation_blend_space_2d_editor.cpp -msgid "Triangle already exists" +msgid "Triangle already exists." msgstr "" #: editor/plugins/animation_blend_space_2d_editor.cpp @@ -3664,7 +3945,6 @@ msgid "Node Moved" msgstr "" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Unable to connect, port may be in use or connection may be invalid." msgstr "" @@ -3734,7 +4014,7 @@ msgid "Edit Filtered Tracks:" msgstr "" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -msgid "Enable filtering" +msgid "Enable Filtering" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp @@ -3849,10 +4129,6 @@ msgid "Animation" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "New" -msgstr "" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Edit Transitions..." msgstr "" @@ -3869,11 +4145,11 @@ msgid "Autoplay on Load" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Onion Skinning" +msgid "Enable Onion Skinning" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Enable Onion Skinning" +msgid "Onion Skinning Options" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp @@ -4414,13 +4690,19 @@ msgid "Move CanvasItem" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"Children of containers have their anchors and margins values overridden by " +"their parent." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Presets for the anchors and margins values of a Control node." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "" -"Children of containers have their anchors and margins values overridden by " -"their parent." +"When active, moving Control nodes changes their anchors instead of their " +"margins." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4436,10 +4718,47 @@ msgid "Change Anchors" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Lock Selected" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Unlock Selected" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Group Selected" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Ungroup Selected" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Paste Pose" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Create Custom Bone(s) from Node(s)" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Clear Bones" +msgstr "Anim පරිවර්à¶à¶±à¶º වෙනස් කරන්න" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Make IK Chain" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Clear IK Chain" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "" "Warning: Children of a container get their position and size determined only " "by their parent." @@ -4511,7 +4830,7 @@ msgid "Snapping Options" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to grid" +msgid "Snap to Grid" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4532,31 +4851,31 @@ msgid "Use Pixel Snap" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Smart snapping" +msgid "Smart Snapping" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to parent" +msgid "Snap to Parent" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node anchor" +msgid "Snap to Node Anchor" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node sides" +msgid "Snap to Node Sides" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node center" +msgid "Snap to Node Center" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to other nodes" +msgid "Snap to Other Nodes" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to guides" +msgid "Snap to Guides" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4570,10 +4889,12 @@ msgid "Unlock the selected object (can be moved)." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Makes sure the object's children are not selectable." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Restores the object's children's ability to be selected." msgstr "" @@ -4586,14 +4907,6 @@ msgid "Show Bones" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Make IK Chain" -msgstr "" - -#: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Clear IK Chain" -msgstr "" - -#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Make Custom Bone(s) from Node(s)" msgstr "" @@ -4644,7 +4957,7 @@ msgid "Frame Selection" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Layout" +msgid "Preview Canvas Scale" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4697,6 +5010,10 @@ msgid "Divide grid step by 2" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Pan View" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Add %s" msgstr "" @@ -4719,7 +5036,7 @@ msgid "Error instancing scene from %s" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Change default type" +msgid "Change Default Type" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4805,19 +5122,19 @@ msgid "Create Emission Points From Node" msgstr "" #: editor/plugins/curve_editor_plugin.cpp -msgid "Flat0" +msgid "Flat 0" msgstr "" #: editor/plugins/curve_editor_plugin.cpp -msgid "Flat1" +msgid "Flat 1" msgstr "" -#: editor/plugins/curve_editor_plugin.cpp -msgid "Ease in" +#: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp +msgid "Ease In" msgstr "" -#: editor/plugins/curve_editor_plugin.cpp -msgid "Ease out" +#: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp +msgid "Ease Out" msgstr "" #: editor/plugins/curve_editor_plugin.cpp @@ -4837,23 +5154,27 @@ msgid "Load Curve Preset" msgstr "" #: editor/plugins/curve_editor_plugin.cpp -msgid "Add point" -msgstr "" +#, fuzzy +msgid "Add Point" +msgstr "සජීවීකරණ පුනරà·à·€à¶»à·Šà¶®à¶±à¶º" #: editor/plugins/curve_editor_plugin.cpp -msgid "Remove point" -msgstr "" +#, fuzzy +msgid "Remove Point" +msgstr "මෙම ලුහුබදින්න෠ඉවà¶à·Š කරන්න." #: editor/plugins/curve_editor_plugin.cpp -msgid "Left linear" -msgstr "" +#, fuzzy +msgid "Left Linear" +msgstr "රේඛීය" #: editor/plugins/curve_editor_plugin.cpp -msgid "Right linear" -msgstr "" +#, fuzzy +msgid "Right Linear" +msgstr "රේඛීය" #: editor/plugins/curve_editor_plugin.cpp -msgid "Load preset" +msgid "Load Preset" msgstr "" #: editor/plugins/curve_editor_plugin.cpp @@ -4909,11 +5230,15 @@ msgid "This doesn't work on scene root!" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Trimesh Shape" +msgid "Create Trimesh Static Shape" +msgstr "" + +#: editor/plugins/mesh_instance_editor_plugin.cpp +msgid "Failed creating shapes!" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Shape" +msgid "Create Convex Shape(s)" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp @@ -4966,15 +5291,11 @@ msgid "Create Trimesh Static Body" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Static Body" -msgstr "" - -#: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Trimesh Collision Sibling" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Collision Sibling" +msgid "Create Convex Collision Sibling(s)" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp @@ -5128,20 +5449,20 @@ msgid "Create Navigation Polygon" msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp -msgid "Generating Visibility Rect" +#: editor/plugins/particles_editor_plugin.cpp +msgid "Convert to CPUParticles" msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp -msgid "Generate Visibility Rect" +msgid "Generating Visibility Rect" msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp -msgid "Can only set point into a ParticlesMaterial process material" +msgid "Generate Visibility Rect" msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp -#: editor/plugins/particles_editor_plugin.cpp -msgid "Convert to CPUParticles" +msgid "Can only set point into a ParticlesMaterial process material" msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp @@ -5283,7 +5604,7 @@ msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp editor/plugins/theme_editor_plugin.cpp -#: editor/project_export.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_export.cpp msgid "Options" msgstr "" @@ -5334,7 +5655,7 @@ msgid "Split Segment (in curve)" msgstr "" #: editor/plugins/physical_bone_plugin.cpp -msgid "Move joint" +msgid "Move Joint" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5567,7 +5888,6 @@ msgid "Open in Editor" msgstr "" #: editor/plugins/resource_preloader_editor_plugin.cpp -#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Load Resource" msgstr "" @@ -5656,6 +5976,11 @@ msgid "%s Class Reference" msgstr "" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp +msgid "Find Next" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp msgid "Toggle alphabetical sorting of the method list." msgstr "" @@ -5736,10 +6061,6 @@ msgstr "" msgid "Close All" msgstr "" -#: editor/plugins/script_editor_plugin.cpp -msgid "Close Other Tabs" -msgstr "" - #: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp msgid "Run" msgstr "" @@ -5748,11 +6069,6 @@ msgstr "" msgid "Toggle Scripts Panel" msgstr "" -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/script_text_editor.cpp -msgid "Find Next" -msgstr "" - #: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp msgid "Step Over" msgstr "" @@ -5779,7 +6095,7 @@ msgid "Debug with External Editor" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Open Godot online documentation" +msgid "Open Godot online documentation." msgstr "" #: editor/plugins/script_editor_plugin.cpp @@ -5787,7 +6103,7 @@ msgid "Request Docs" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Help improve the Godot documentation by giving feedback" +msgid "Help improve the Godot documentation by giving feedback." msgstr "" #: editor/plugins/script_editor_plugin.cpp @@ -5813,10 +6129,12 @@ msgid "" msgstr "" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp msgid "Reload" msgstr "" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp msgid "Resave" msgstr "" @@ -5829,6 +6147,27 @@ msgid "Search Results" msgstr "" #: editor/plugins/script_text_editor.cpp +msgid "Connections to method:" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Source" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Signal" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Target" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "" +"Missing connected method '%s' for signal '%s' from node '%s' to node '%s'." +msgstr "" + +#: editor/plugins/script_text_editor.cpp msgid "Line" msgstr "" @@ -5841,10 +6180,6 @@ msgstr "" msgid "Go to Function" msgstr "à·à·Šâ€à¶»à·’à¶:" -#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp -msgid "Standard" -msgstr "" - #: editor/plugins/script_text_editor.cpp msgid "Only resources from filesystem can be dropped." msgstr "" @@ -5877,6 +6212,11 @@ msgstr "" msgid "Syntax Highlighter" msgstr "" +#: editor/plugins/script_text_editor.cpp +#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp +msgid "Bookmarks" +msgstr "" + #: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" @@ -5904,6 +6244,22 @@ msgid "Toggle Comment" msgstr "" #: editor/plugins/script_text_editor.cpp +msgid "Toggle Bookmark" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Go to Next Bookmark" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Go to Previous Bookmark" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Remove All Bookmarks" +msgstr "" + +#: editor/plugins/script_text_editor.cpp msgid "Fold/Unfold Line" msgstr "" @@ -5977,6 +6333,12 @@ msgid "Contextual Help" msgstr "" #: editor/plugins/shader_editor_plugin.cpp +msgid "" +"This shader has been modified on on disk.\n" +"What action should be taken?" +msgstr "" + +#: editor/plugins/shader_editor_plugin.cpp msgid "Shader" msgstr "" @@ -6314,7 +6676,7 @@ msgid "Right View" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Switch Perspective/Orthogonal view" +msgid "Switch Perspective/Orthogonal View" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp @@ -6354,11 +6716,12 @@ msgid "Toggle Freelook" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Transform" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Snap object to floor" +msgid "Snap Object to Floor" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp @@ -6501,35 +6864,35 @@ msgid "Invalid geometry, can't replace by mesh." msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Invalid geometry, can't create polygon." +msgid "Convert to Mesh2D" msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Invalid geometry, can't create collision polygon." +msgid "Invalid geometry, can't create polygon." msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Invalid geometry, can't create light occluder." +msgid "Convert to Polygon2D" msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Sprite" +msgid "Invalid geometry, can't create collision polygon." msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Convert to Mesh2D" +msgid "Create CollisionPolygon2D Sibling" msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Convert to Polygon2D" +msgid "Invalid geometry, can't create light occluder." msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Create CollisionPolygon2D Sibling" +msgid "Create LightOccluder2D Sibling" msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Create LightOccluder2D Sibling" +msgid "Sprite" msgstr "" #: editor/plugins/sprite_editor_plugin.cpp @@ -6549,7 +6912,11 @@ msgid "Settings:" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "ERROR: Couldn't load frame resource!" +msgid "No Frames Selected" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Add %d Frame(s)" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp @@ -6557,6 +6924,10 @@ msgid "Add Frame" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "ERROR: Couldn't load frame resource!" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Resource clipboard is empty or not a texture!" msgstr "" @@ -6599,6 +6970,14 @@ msgid "Animation Frames:" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Add a Texture from File" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Add Frames from a Sprite Sheet" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Insert Empty (Before)" msgstr "" @@ -6615,6 +6994,26 @@ msgid "Move (After)" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Select Frames" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Horizontal:" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Vertical:" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Select/Clear All Frames" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Create Frames from Sprite Sheet" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "SpriteFrames" msgstr "" @@ -6679,12 +7078,12 @@ msgstr "" msgid "Remove All Items" msgstr "" -#: editor/plugins/theme_editor_plugin.cpp +#: editor/plugins/theme_editor_plugin.cpp editor/project_manager.cpp msgid "Remove All" msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "Edit theme..." +msgid "Edit Theme" msgstr "" #: editor/plugins/theme_editor_plugin.cpp @@ -6712,11 +7111,11 @@ msgid "Create From Current Editor Theme" msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "CheckBox Radio1" +msgid "Toggle Button" msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "CheckBox Radio2" +msgid "Disabled Button" msgstr "" #: editor/plugins/theme_editor_plugin.cpp @@ -6724,6 +7123,10 @@ msgid "Item" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +msgid "Disabled Item" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Check Item" msgstr "" @@ -6740,6 +7143,22 @@ msgid "Checked Radio Item" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +msgid "Named Sep." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Submenu" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Item 1" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Item 2" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Has" msgstr "" @@ -6748,7 +7167,7 @@ msgid "Many" msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "Has,Many,Options" +msgid "Disabled LineEdit" msgstr "" #: editor/plugins/theme_editor_plugin.cpp @@ -6764,6 +7183,18 @@ msgid "Tab 3" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +msgid "Editable Item" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Subtree" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Has,Many,Options" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Data Type:" msgstr "" @@ -6796,6 +7227,7 @@ msgid "Fix Invalid Tiles" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp +#: modules/gridmap/grid_map_editor_plugin.cpp msgid "Cut Selection" msgstr "" @@ -6836,36 +7268,46 @@ msgid "Mirror Y" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp +msgid "Disable Autotile" +msgstr "" + +#: editor/plugins/tile_map_editor_plugin.cpp +msgid "Enable Priority" +msgstr "" + +#: editor/plugins/tile_map_editor_plugin.cpp msgid "Paint Tile" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Pick Tile" +msgid "" +"Shift+RMB: Line Draw\n" +"Shift+Ctrl+RMB: Rectangle Paint" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Copy Selection" +msgid "Pick Tile" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Rotate left" +msgid "Rotate Left" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Rotate right" +msgid "Rotate Right" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Flip horizontally" +msgid "Flip Horizontally" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Flip vertically" +msgid "Flip Vertically" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp #, fuzzy -msgid "Clear transform" +msgid "Clear Transform" msgstr "Anim පරිවර්à¶à¶±à¶º වෙනස් කරන්න" #: editor/plugins/tile_set_editor_plugin.cpp @@ -6901,6 +7343,41 @@ msgid "Select the previous shape, subtile, or Tile." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Region Mode" +msgstr "නිවේà·à¶± මà·à¶¯à·’ලිය" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Collision Mode" +msgstr "නිවේà·à¶± මà·à¶¯à·’ලිය" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Occlusion Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Navigation Mode" +msgstr "නිවේà·à¶± මà·à¶¯à·’ලිය" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Bitmask Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Priority Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Icon Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Z Index Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp msgid "Copy bitmask." msgstr "" @@ -6981,6 +7458,7 @@ msgstr "" msgid "" "LMB: Set bit on.\n" "RMB: Set bit off.\n" +"Shift+LMB: Set wildcard bit.\n" "Click on another Tile to edit it." msgstr "" @@ -7089,6 +7567,67 @@ msgid "TileSet" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add input +" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add output +" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add input port" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add output port" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change input port type" +msgstr "සජීවීකරණ පුනරà·à·€à¶»à·Šà¶®à¶±à¶º" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Change output port type" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Change input port name" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Change output port name" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Remove input port" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Remove output port" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Set expression" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Resize VisualShader node" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Set Uniform Name" msgstr "" @@ -7127,6 +7666,842 @@ msgid "Light" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Create Shader Node" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Color function." +msgstr "à·à·Šâ€à¶»à·’à¶:" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Color operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Grayscale function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts HSV vector to RGB equivalent." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts RGB vector to HSV equivalent." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Sepia function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Burn operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Darken operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Difference operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Dodge operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "HardLight operator" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Lighten operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Overlay operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Screen operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "SoftLight operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Color constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Color uniform." +msgstr "Anim පරිවර්à¶à¶±à¶º වෙනස් කරන්න" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns an associated vector if the provided scalars are equal, greater or " +"less." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns an associated vector if the provided boolean value is true or false." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'camera' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'inv_camera' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'inv_projection' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'normal' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'projection' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'time' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'viewport_size' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'world' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'texture_pixel_size' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Input parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'binormal' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'fragcoord' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_coord' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_uv' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'side' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'tangent' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv2' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'vertex' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'view' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'albedo' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'attenuation' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'diffuse' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_color' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'roughness' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'specular' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'transmission' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'modelview' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_size' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'tangent' input parameter for vertex and fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_pass' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_coord' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_pixel_size' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_uv' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_alpha' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_height' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_uv' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_vec' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'normal' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'shadow_color' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'extra' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'projection' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'vertex' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'world' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'active' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'custom' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'custom_alpha' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'delta' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'emission_transform' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'index' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'lifetime' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'restart' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'time' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'transform' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'velocity' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Scalar function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Scalar operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "E constant (2.718282). Represents the base of the natural logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Epsilon constant (0.00001). Smallest possible scalar number." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Phi constant (1.618034). Golden ratio." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi/4 constant (0.785398) or 45 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi/2 constant (1.570796) or 90 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi constant (3.141593) or 180 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Tau constant (6.283185) or 360 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Sqrt2 constant (1.414214). Square root of 2." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the absolute value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-tangent of the parameters." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Finds the nearest integer that is greater than or equal to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Constrains a value to lie between two further values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts a quantity in radians to degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-e Exponential." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-2 Exponential." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Finds the nearest integer less than or equal to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Computes the fractional part of the argument." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the inverse of the square root of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Natural logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-2 logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the greater of two values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the lesser of two values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Linear interpolation between two scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the opposite value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 - scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns the value of the first parameter raised to the power of the second." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts a quantity in degrees to radians." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 / scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the nearest integer to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the nearest even integer to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Clamps the value between 0.0 and 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Extracts the sign of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the square root of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( scalar(edge0), scalar(edge1), scalar(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if x is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( scalar(edge), scalar(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the truncated value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Adds scalar to scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Divides scalar by scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies scalar by scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the remainder of the two scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Subtracts scalar from scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Scalar constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar uniform." +msgstr "Anim පරිවර්à¶à¶±à¶º වෙනස් කරන්න" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Perform the cubic texture lookup." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Perform the texture lookup." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Cubic texture uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "2D texture uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Transform function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) Calculate the outer product of a pair of vectors.\n" +"\n" +"OuterProduct treats the first parameter 'c' as a column vector (matrix with " +"one column) and the second parameter 'r' as a row vector (matrix with one " +"row) and does a linear algebraic matrix multiply 'c * r', yielding a matrix " +"whose number of rows is the number of components in 'c' and whose number of " +"columns is the number of components in 'r'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Composes transform from four vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Decomposes transform to four vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the determinant of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the inverse of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the transpose of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies transform by transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies vector by transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Transform constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Transform uniform." +msgstr "3D රූපà·à¶±à·Šà¶à¶»à¶«à¶º ලුහුබදින්න" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector function." +msgstr "à·à·Šâ€à¶»à·’à¶:" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Composes vector from three scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Decomposes vector to three scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the cross product of two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the distance between two points." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the dot product of two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns a vector that points in the same direction as a reference vector. " +"The function has three vector parameters : N, the vector to orient, I, the " +"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 "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the length of a vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Linear interpolation between two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the normalize product of vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 - vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 / vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns a vector that points in the direction of reflection ( a : incident " +"vector, b : normal vector )." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns a vector that points in the direction of refraction." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( vector(edge0), vector(edge1), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if 'x' is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( scalar(edge0), scalar(edge1), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if 'x' is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( vector(edge), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( scalar(edge), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Adds vector to vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Divides vector by vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies vector by vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the remainder of the two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Subtracts vector from vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Custom Godot Shader Language expression, with custom amount of input and " +"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 "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns falloff based on the dot product of surface normal and view " +"direction of camera (pass associated inputs to it)." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) (Fragment/Light mode only) Scalar derivative function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) (Fragment/Light mode only) Vector derivative function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Derivative in 'x' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Derivative in 'x' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Derivative in 'y' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Derivative in 'y' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Sum of absolute derivative " +"in 'x' and 'y'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Sum of absolute derivative " +"in 'x' and 'y'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "VisualShader" msgstr "" @@ -7314,6 +8689,10 @@ msgid "Directory already contains a Godot project." msgstr "" #: editor/project_manager.cpp +msgid "New Game Project" +msgstr "" + +#: editor/project_manager.cpp msgid "Imported Project" msgstr "" @@ -7360,10 +8739,6 @@ msgid "Rename Project" msgstr "" #: editor/project_manager.cpp -msgid "New Game Project" -msgstr "" - -#: editor/project_manager.cpp msgid "Import Existing Project" msgstr "" @@ -7392,10 +8767,6 @@ msgid "Project Name:" msgstr "" #: editor/project_manager.cpp -msgid "Create folder" -msgstr "" - -#: editor/project_manager.cpp msgid "Project Path:" msgstr "" @@ -7404,10 +8775,6 @@ msgid "Project Installation Path:" msgstr "" #: editor/project_manager.cpp -msgid "Browse" -msgstr "" - -#: editor/project_manager.cpp msgid "Renderer:" msgstr "" @@ -7460,8 +8827,8 @@ msgid "" "\n" "If you proceed with opening it, it will be converted to Godot's current " "configuration file format.\n" -"Warning: You will not be able to open the project with previous versions of " -"the engine anymore." +"Warning: You won't be able to open the project with previous versions of the " +"engine anymore." msgstr "" #: editor/project_manager.cpp @@ -7472,8 +8839,8 @@ msgid "" "%s\n" "\n" "Do you want to convert it?\n" -"Warning: You will not be able to open the project with previous versions of " -"the engine anymore." +"Warning: You won't be able to open the project with previous versions of the " +"engine anymore." msgstr "" #: editor/project_manager.cpp @@ -7485,7 +8852,7 @@ msgstr "" #: editor/project_manager.cpp msgid "" "Can't run project: no main scene defined.\n" -"Please edit the project and set the main scene in \"Project Settings\" under " +"Please edit the project and set the main scene in the Project Settings under " "the \"Application\" category." msgstr "" @@ -7496,23 +8863,37 @@ msgid "" msgstr "" #: editor/project_manager.cpp -msgid "Are you sure to run more than one project?" +msgid "Are you sure to run %d projects at once?" msgstr "" #: editor/project_manager.cpp -msgid "Remove project from the list? (Folder contents will not be modified)" +msgid "" +"Remove %d projects from the list?\n" +"The project folders' contents won't be modified." +msgstr "" + +#: editor/project_manager.cpp +msgid "" +"Remove this project from the list?\n" +"The project folder's contents won't be modified." +msgstr "" + +#: editor/project_manager.cpp +msgid "" +"Remove all missing projects from the list? (Folders contents will not be " +"modified)" msgstr "" #: editor/project_manager.cpp msgid "" "Language changed.\n" -"The UI will update next time the editor or project manager starts." +"The interface will update after restarting the editor or project manager." msgstr "" #: editor/project_manager.cpp msgid "" -"You are about the scan %s folders for existing Godot projects. Do you " -"confirm?" +"Are you sure to scan %s folders for existing Godot projects?\n" +"This could take a while." msgstr "" #: editor/project_manager.cpp @@ -7536,6 +8917,10 @@ msgid "New Project" msgstr "" #: editor/project_manager.cpp +msgid "Remove Missing" +msgstr "" + +#: editor/project_manager.cpp msgid "Templates" msgstr "" @@ -7553,8 +8938,8 @@ msgstr "" #: editor/project_manager.cpp msgid "" -"You don't currently have any projects.\n" -"Would you like to explore the official example projects in the Asset Library?" +"You currently don't have any projects.\n" +"Would you like to explore official example projects in the Asset Library?" msgstr "" #: editor/project_settings_editor.cpp @@ -7580,7 +8965,7 @@ msgid "" msgstr "" #: editor/project_settings_editor.cpp -msgid "Action '%s' already exists!" +msgid "An action with the name '%s' already exists." msgstr "" #: editor/project_settings_editor.cpp @@ -7734,10 +9119,6 @@ msgid "" msgstr "" #: editor/project_settings_editor.cpp -msgid "Already existing" -msgstr "" - -#: editor/project_settings_editor.cpp msgid "Add Input Action" msgstr "" @@ -7802,7 +9183,7 @@ msgid "Override For..." msgstr "" #: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp -msgid "Editor must be restarted for changes to take effect" +msgid "The editor must be restarted for changes to take effect." msgstr "" #: editor/project_settings_editor.cpp @@ -7862,11 +9243,11 @@ msgid "Locales Filter" msgstr "" #: editor/project_settings_editor.cpp -msgid "Show all locales" +msgid "Show All Locales" msgstr "" #: editor/project_settings_editor.cpp -msgid "Show only selected locales" +msgid "Show Selected Locales Only" msgstr "" #: editor/project_settings_editor.cpp @@ -7882,14 +9263,6 @@ msgid "AutoLoad" msgstr "" #: editor/property_editor.cpp -msgid "Ease In" -msgstr "" - -#: editor/property_editor.cpp -msgid "Ease Out" -msgstr "" - -#: editor/property_editor.cpp msgid "Zero" msgstr "" @@ -7962,7 +9335,7 @@ msgid "Suffix" msgstr "" #: editor/rename_dialog.cpp -msgid "Advanced options" +msgid "Advanced Options" msgstr "" #: editor/rename_dialog.cpp @@ -8214,8 +9587,9 @@ msgid "User Interface" msgstr "" #: editor/scene_tree_dock.cpp -msgid "Custom Node" -msgstr "" +#, fuzzy +msgid "Other Node" +msgstr "යà¶à·”රු මක෠දමන්න" #: editor/scene_tree_dock.cpp msgid "Can't operate on nodes from a foreign scene!" @@ -8256,7 +9630,7 @@ msgid "Clear Inheritance" msgstr "" #: editor/scene_tree_dock.cpp -msgid "Open documentation" +msgid "Open Documentation" msgstr "" #: editor/scene_tree_dock.cpp @@ -8283,7 +9657,7 @@ msgstr "" msgid "Save Branch as Scene" msgstr "" -#: editor/scene_tree_dock.cpp +#: editor/scene_tree_dock.cpp editor/script_editor_debugger.cpp msgid "Copy Node Path" msgstr "" @@ -8326,6 +9700,18 @@ msgid "Toggle Visible" msgstr "" #: editor/scene_tree_editor.cpp +msgid "Unlock Node" +msgstr "" + +#: editor/scene_tree_editor.cpp +msgid "Button Group" +msgstr "" + +#: editor/scene_tree_editor.cpp +msgid "(Connecting From)" +msgstr "" + +#: editor/scene_tree_editor.cpp msgid "Node configuration warning:" msgstr "" @@ -8347,8 +9733,8 @@ msgid "" "Click to show groups dock." msgstr "" -#: editor/scene_tree_editor.cpp editor/script_create_dialog.cpp -msgid "Open Script" +#: editor/scene_tree_editor.cpp +msgid "Open Script:" msgstr "" #: editor/scene_tree_editor.cpp @@ -8394,71 +9780,71 @@ msgid "Select a Node" msgstr "" #: editor/script_create_dialog.cpp -msgid "Error loading template '%s'" +msgid "Path is empty." msgstr "" #: editor/script_create_dialog.cpp -msgid "Error - Could not create script in filesystem." +msgid "Filename is empty." msgstr "" #: editor/script_create_dialog.cpp -msgid "Error loading script from %s" +msgid "Path is not local." msgstr "" #: editor/script_create_dialog.cpp -msgid "N/A" +msgid "Invalid base path." msgstr "" #: editor/script_create_dialog.cpp -msgid "Open Script/Choose Location" +msgid "A directory with the same name exists." msgstr "" #: editor/script_create_dialog.cpp -msgid "Path is empty" +msgid "Invalid extension." msgstr "" #: editor/script_create_dialog.cpp -msgid "Filename is empty" +msgid "Wrong extension chosen." msgstr "" #: editor/script_create_dialog.cpp -msgid "Path is not local" +msgid "Error loading template '%s'" msgstr "" #: editor/script_create_dialog.cpp -msgid "Invalid base path" +msgid "Error - Could not create script in filesystem." msgstr "" #: editor/script_create_dialog.cpp -msgid "Directory of the same name exists" +msgid "Error loading script from %s" msgstr "" #: editor/script_create_dialog.cpp -msgid "File exists, will be reused" +msgid "N/A" msgstr "" #: editor/script_create_dialog.cpp -msgid "Invalid extension" +msgid "Open Script / Choose Location" msgstr "" #: editor/script_create_dialog.cpp -msgid "Wrong extension chosen" +msgid "Open Script" msgstr "" #: editor/script_create_dialog.cpp -msgid "Invalid Path" +msgid "File exists, it will be reused." msgstr "" #: editor/script_create_dialog.cpp -msgid "Invalid class name" +msgid "Invalid class name." msgstr "" #: editor/script_create_dialog.cpp -msgid "Invalid inherited parent name or path" +msgid "Invalid inherited parent name or path." msgstr "" #: editor/script_create_dialog.cpp -msgid "Script valid" +msgid "Script is valid." msgstr "" #: editor/script_create_dialog.cpp @@ -8466,15 +9852,15 @@ msgid "Allowed: a-z, A-Z, 0-9 and _" msgstr "" #: editor/script_create_dialog.cpp -msgid "Built-in script (into scene file)" +msgid "Built-in script (into scene file)." msgstr "" #: editor/script_create_dialog.cpp -msgid "Create new script file" +msgid "Will create a new script file." msgstr "" #: editor/script_create_dialog.cpp -msgid "Load existing script file" +msgid "Will load an existing script file." msgstr "" #: editor/script_create_dialog.cpp @@ -8605,6 +9991,10 @@ msgstr "" msgid "Set From Tree" msgstr "" +#: editor/script_editor_debugger.cpp +msgid "Export measures as CSV" +msgstr "" + #: editor/settings_config_dialog.cpp msgid "Erase Shortcut" msgstr "" @@ -8734,6 +10124,14 @@ msgid "GDNativeLibrary" msgstr "" #: modules/gdnative/gdnative_library_singleton_editor.cpp +msgid "Enabled GDNative Singleton" +msgstr "" + +#: modules/gdnative/gdnative_library_singleton_editor.cpp +msgid "Disabled GDNative Singleton" +msgstr "" + +#: modules/gdnative/gdnative_library_singleton_editor.cpp msgid "Library" msgstr "" @@ -8818,7 +10216,7 @@ msgid "GridMap Fill Selection" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "GridMap Duplicate Selection" +msgid "GridMap Paste Selection" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp @@ -8886,18 +10284,6 @@ msgid "Cursor Clear Rotation" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Create Area" -msgstr "" - -#: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Create Exterior Connector" -msgstr "" - -#: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Erase Area" -msgstr "" - -#: modules/gridmap/grid_map_editor_plugin.cpp msgid "Clear Selection" msgstr "" @@ -9248,15 +10634,7 @@ msgid "Available Nodes:" msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Select or create a function to edit graph" -msgstr "" - -#: modules/visual_script/visual_script_editor.cpp -msgid "Edit Signal Arguments:" -msgstr "" - -#: modules/visual_script/visual_script_editor.cpp -msgid "Edit Variable:" +msgid "Select or create a function to edit its graph." msgstr "" #: modules/visual_script/visual_script_editor.cpp @@ -9386,6 +10764,19 @@ msgid "Debug keystore not configured in the Editor Settings nor in the preset." msgstr "" #: platform/android/export/export.cpp +msgid "Custom build requires a valid Android SDK path in Editor Settings." +msgstr "" + +#: platform/android/export/export.cpp +msgid "Invalid Android SDK path for custom build in Editor Settings." +msgstr "" + +#: platform/android/export/export.cpp +msgid "" +"Android project is not installed for compiling. Install from Editor menu." +msgstr "" + +#: platform/android/export/export.cpp msgid "Invalid public key for APK expansion." msgstr "" @@ -9393,6 +10784,34 @@ msgstr "" msgid "Invalid package name:" msgstr "" +#: platform/android/export/export.cpp +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 "" +"Android build version mismatch:\n" +" Template installed: %s\n" +" Godot Version: %s\n" +"Please reinstall Android build template from 'Project' menu." +msgstr "" + +#: platform/android/export/export.cpp +msgid "Building Android Project (gradle)" +msgstr "" + +#: 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 "" + +#: platform/android/export/export.cpp +msgid "No build apk generated at: " +msgstr "" + #: platform/iphone/export/export.cpp msgid "Identifier is missing." msgstr "" @@ -9645,27 +11064,27 @@ msgid "ARVRCamera must have an ARVROrigin node as its parent" msgstr "" #: scene/3d/arvr_nodes.cpp -msgid "ARVRController must have an ARVROrigin node as its parent" +msgid "ARVRController must have an ARVROrigin node as its parent." msgstr "" #: scene/3d/arvr_nodes.cpp msgid "" -"The controller id must not be 0 or this controller will not be bound to an " -"actual controller" +"The controller ID must not be 0 or this controller won't be bound to an " +"actual controller." msgstr "" #: scene/3d/arvr_nodes.cpp -msgid "ARVRAnchor must have an ARVROrigin node as its parent" +msgid "ARVRAnchor must have an ARVROrigin node as its parent." msgstr "" #: scene/3d/arvr_nodes.cpp msgid "" -"The anchor id must not be 0 or this anchor will not be bound to an actual " -"anchor" +"The anchor ID must not be 0 or this anchor won't be bound to an actual " +"anchor." msgstr "" #: scene/3d/arvr_nodes.cpp -msgid "ARVROrigin requires an ARVRCamera child node" +msgid "ARVROrigin requires an ARVRCamera child node." msgstr "" #: scene/3d/baked_lightmap.cpp @@ -9735,8 +11154,8 @@ msgstr "" #: scene/3d/cpu_particles.cpp msgid "" -"CPUParticles animation requires the usage of a SpatialMaterial with " -"\"Billboard Particles\" enabled." +"CPUParticles animation requires the usage of a SpatialMaterial whose " +"Billboard Mode is set to \"Particle Billboard\"." msgstr "" #: scene/3d/gi_probe.cpp @@ -9773,8 +11192,8 @@ msgstr "" #: scene/3d/particles.cpp msgid "" -"Particles animation requires the usage of a SpatialMaterial with \"Billboard " -"Particles\" enabled." +"Particles animation requires the usage of a SpatialMaterial whose Billboard " +"Mode is set to \"Particle Billboard\"." msgstr "" #: scene/3d/path.cpp @@ -9799,7 +11218,7 @@ msgid "Path property must point to a valid Spatial node to work." msgstr "" #: scene/3d/soft_body.cpp -msgid "This body will be ignored until you set a mesh" +msgid "This body will be ignored until you set a mesh." msgstr "" #: scene/3d/soft_body.cpp @@ -9896,7 +11315,7 @@ msgstr "" msgid "" "Container by itself serves no purpose unless a script configures it's " "children placement behavior.\n" -"If you dont't intend to add a script, then please use a plain 'Control' node " +"If you don't intend to add a script, then please use a plain 'Control' node " "instead." msgstr "" @@ -9908,10 +11327,6 @@ msgstr "" msgid "Please Confirm..." msgstr "" -#: scene/gui/file_dialog.cpp -msgid "Go to parent folder." -msgstr "" - #: scene/gui/popup.cpp msgid "" "Popups will hide by default unless you call popup() or any of the popup*() " @@ -9983,3 +11398,7 @@ msgstr "" #: servers/visual/shader_language.cpp msgid "Varyings can only be assigned in vertex function." msgstr "" + +#: servers/visual/shader_language.cpp +msgid "Constants cannot be modified." +msgstr "" diff --git a/editor/translations/sk.po b/editor/translations/sk.po index 862f095dd3..7a35e8905a 100644 --- a/editor/translations/sk.po +++ b/editor/translations/sk.po @@ -6,12 +6,13 @@ # MineGame 159 <minegame459@gmail.com>, 2018. # Zuzana Palenikova <sousana.is@gmail.com>, 2019. # MineGame159 <petulko08@gmail.com>, 2019. +# Michal <alladinsiffon@gmail.com>, 2019. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2019-03-12 15:26+0000\n" -"Last-Translator: MineGame159 <petulko08@gmail.com>\n" +"PO-Revision-Date: 2019-06-16 19:42+0000\n" +"Last-Translator: Michal <alladinsiffon@gmail.com>\n" "Language-Team: Slovak <https://hosted.weblate.org/projects/godot-engine/" "godot/sk/>\n" "Language: sk\n" @@ -19,7 +20,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" -"X-Generator: Weblate 3.5.1\n" +"X-Generator: Weblate 3.7-dev\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -74,6 +75,14 @@ msgstr "Vyvážený" msgid "Mirror" msgstr "Zrkadlový" +#: editor/animation_bezier_editor.cpp editor/editor_profiler.cpp +msgid "Time:" +msgstr "" + +#: editor/animation_bezier_editor.cpp +msgid "Value:" +msgstr "" + #: editor/animation_bezier_editor.cpp msgid "Insert Key Here" msgstr "VložiÅ¥ tu kľúÄ" @@ -158,14 +167,20 @@ msgid "Animation Playback Track" msgstr "" #: editor/animation_track_editor.cpp -msgid "Add Track" -msgstr "" +#, fuzzy +msgid "Animation length (frames)" +msgstr "Dĺžka ÄŒasu Animácie (v sekundách)" #: editor/animation_track_editor.cpp -msgid "Animation Length Time (seconds)" +#, fuzzy +msgid "Animation length (seconds)" msgstr "Dĺžka ÄŒasu Animácie (v sekundách)" #: editor/animation_track_editor.cpp +msgid "Add Track" +msgstr "" + +#: editor/animation_track_editor.cpp msgid "Animation Looping" msgstr "" @@ -292,11 +307,13 @@ msgid "Create %d NEW tracks and insert keys?" msgstr "" #: editor/animation_track_editor.cpp editor/create_dialog.cpp -#: editor/editor_audio_buses.cpp editor/editor_plugin_settings.cpp -#: editor/plugin_config_dialog.cpp +#: editor/editor_audio_buses.cpp editor/editor_feature_profile.cpp +#: editor/editor_plugin_settings.cpp editor/plugin_config_dialog.cpp #: editor/plugins/abstract_polygon_2d_editor.cpp #: editor/plugins/mesh_instance_editor_plugin.cpp -#: editor/plugins/particles_editor_plugin.cpp editor/script_create_dialog.cpp +#: editor/plugins/particles_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_create_dialog.cpp msgid "Create" msgstr "VytvoriÅ¥" @@ -413,6 +430,23 @@ msgid "" msgstr "" #: editor/animation_track_editor.cpp +msgid "" +"This animation belongs to an imported scene, so changes to imported tracks " +"will not be saved.\n" +"\n" +"To enable the ability to add custom tracks, navigate to the scene's import " +"settings and set\n" +"\"Animation > Storage\" to \"Files\", enable \"Animation > Keep Custom Tracks" +"\", then re-import.\n" +"Alternatively, use an import preset that imports animations to separate " +"files." +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Warning: Editing imported animation" +msgstr "" + +#: editor/animation_track_editor.cpp msgid "Only show tracks from nodes selected in tree." msgstr "" @@ -548,7 +582,8 @@ msgstr "" msgid "Select tracks to copy:" msgstr "" -#: editor/animation_track_editor.cpp editor/editor_properties.cpp +#: editor/animation_track_editor.cpp editor/editor_log.cpp +#: editor/editor_properties.cpp #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp @@ -616,6 +651,11 @@ msgstr "" msgid "Selection Only" msgstr "" +#: editor/code_editor.cpp editor/plugins/script_text_editor.cpp +#: editor/plugins/text_editor.cpp +msgid "Standard" +msgstr "" + #: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/texture_region_editor_plugin.cpp #: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp @@ -641,19 +681,34 @@ msgid "Line and column numbers." msgstr "" #: editor/connections_dialog.cpp -msgid "Method in target Node must be specified!" +msgid "Method in target node must be specified." msgstr "" #: editor/connections_dialog.cpp msgid "" -"Target method not found! Specify a valid method or attach a script to target " -"Node." +"Target method not found. Specify a valid method or attach a script to the " +"target node." msgstr "" #: editor/connections_dialog.cpp -msgid "Connect To Node:" +#, fuzzy +msgid "Connect to Node:" msgstr "PripojiÅ¥ k Node:" +#: editor/connections_dialog.cpp +#, fuzzy +msgid "Connect to Script:" +msgstr "PripojiÅ¥ k Node:" + +#: editor/connections_dialog.cpp +#, fuzzy +msgid "From Signal:" +msgstr "Signály:" + +#: editor/connections_dialog.cpp +msgid "Scene does not contain any script." +msgstr "" + #: editor/connections_dialog.cpp editor/editor_autoload_settings.cpp #: editor/groups_editor.cpp editor/plugins/item_list_editor_plugin.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_settings_editor.cpp @@ -661,10 +716,12 @@ msgid "Add" msgstr "PridaÅ¥" #: editor/connections_dialog.cpp editor/dependency_editor.cpp -#: editor/groups_editor.cpp editor/plugins/animation_player_editor_plugin.cpp +#: editor/editor_feature_profile.cpp editor/groups_editor.cpp +#: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp #: editor/plugins/resource_preloader_editor_plugin.cpp -#: editor/plugins/theme_editor_plugin.cpp editor/project_manager.cpp +#: editor/plugins/theme_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_manager.cpp #: editor/project_settings_editor.cpp msgid "Remove" msgstr "OdstrániÅ¥" @@ -678,21 +735,32 @@ msgid "Extra Call Arguments:" msgstr "" #: editor/connections_dialog.cpp -msgid "Path to Node:" -msgstr "Cesta k Node:" +#, fuzzy +msgid "Advanced" +msgstr "Vyvážený" #: editor/connections_dialog.cpp -msgid "Make Function" +msgid "Deferred" msgstr "" #: editor/connections_dialog.cpp -msgid "Deferred" +msgid "" +"Defers the signal, storing it in a queue and only firing it at idle time." msgstr "" #: editor/connections_dialog.cpp msgid "Oneshot" msgstr "" +#: editor/connections_dialog.cpp +msgid "Disconnects the signal after its first emission." +msgstr "" + +#: editor/connections_dialog.cpp +#, fuzzy +msgid "Cannot connect signal" +msgstr "PripojiÅ¥ Signál: " + #: editor/connections_dialog.cpp editor/dependency_editor.cpp #: editor/export_template_manager.cpp editor/groups_editor.cpp #: editor/plugins/animation_player_editor_plugin.cpp @@ -733,11 +801,13 @@ msgid "Disconnect" msgstr "OdpojiÅ¥" #: editor/connections_dialog.cpp -msgid "Connect Signal: " +#, fuzzy +msgid "Connect a Signal to a Method" msgstr "PripojiÅ¥ Signál: " #: editor/connections_dialog.cpp -msgid "Edit Connection: " +#, fuzzy +msgid "Edit Connection:" msgstr "UpraviÅ¥ Pripojenie: " #: editor/connections_dialog.cpp @@ -769,7 +839,6 @@ msgid "Change %s Type" msgstr "ZmeniÅ¥ %s Typ" #: editor/create_dialog.cpp editor/project_settings_editor.cpp -#: modules/visual_script/visual_script_editor.cpp msgid "Change" msgstr "ZmeniÅ¥" @@ -800,7 +869,8 @@ msgid "Matches:" msgstr "Zhody:" #: editor/create_dialog.cpp editor/plugin_config_dialog.cpp -#: editor/plugins/asset_library_editor_plugin.cpp editor/property_selector.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/property_selector.cpp #: modules/visual_script/visual_script_property_selector.cpp msgid "Description:" msgstr "Popis:" @@ -814,18 +884,22 @@ msgid "Dependencies For:" msgstr "Závislosti pre:" #: editor/dependency_editor.cpp +#, fuzzy msgid "" "Scene '%s' is currently being edited.\n" -"Changes will not take effect unless reloaded." +"Changes will only take effect when reloaded." msgstr "" "Scéna '%s' sa práve upravuje.\n" "Zmeny sa neprejavia, pokiaľ znovu naÄÃtané." #: editor/dependency_editor.cpp +#, fuzzy msgid "" "Resource '%s' is in use.\n" -"Changes will take effect when reloaded." +"Changes will only take effect when reloaded." msgstr "" +"Scéna '%s' sa práve upravuje.\n" +"Zmeny sa neprejavia, pokiaľ znovu naÄÃtané." #: editor/dependency_editor.cpp #: modules/gdnative/gdnative_library_editor_plugin.cpp @@ -917,21 +991,14 @@ msgid "Permanently delete %d item(s)? (No undo!)" msgstr "Natrvalo odstrániÅ¥ %d položky? (Nedá sa vrátiÅ¥ späť!)" #: editor/dependency_editor.cpp -msgid "Owns" -msgstr "VlastnÃ" - -#: editor/dependency_editor.cpp -msgid "Resources Without Explicit Ownership:" -msgstr "Zdroje Bez Výslovného VlastnÃctva:" +#, fuzzy +msgid "Show Dependencies" +msgstr "ZávislostÃ" #: editor/dependency_editor.cpp editor/editor_node.cpp msgid "Orphan Resource Explorer" msgstr "" -#: editor/dependency_editor.cpp -msgid "Delete selected files?" -msgstr "OdstrániÅ¥ vybraté súbory?" - #: editor/dependency_editor.cpp editor/editor_audio_buses.cpp #: editor/editor_file_dialog.cpp editor/editor_node.cpp #: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp @@ -940,6 +1007,14 @@ msgstr "OdstrániÅ¥ vybraté súbory?" msgid "Delete" msgstr "VymazaÅ¥" +#: editor/dependency_editor.cpp +msgid "Owns" +msgstr "VlastnÃ" + +#: editor/dependency_editor.cpp +msgid "Resources Without Explicit Ownership:" +msgstr "Zdroje Bez Výslovného VlastnÃctva:" + #: editor/dictionary_property_edit.cpp msgid "Change Dictionary Key" msgstr "ZmeniÅ¥ KÄ¾ÃºÄ v SlovnÃku" @@ -1050,7 +1125,7 @@ msgstr "BalÃk bol úspeÅ¡ne nainÅ¡talovaný!" msgid "Success!" msgstr "Úspech!" -#: editor/editor_asset_installer.cpp +#: editor/editor_asset_installer.cpp editor/editor_node.cpp #: editor/plugins/asset_library_editor_plugin.cpp msgid "Install" msgstr "InÅ¡talovaÅ¥" @@ -1179,8 +1254,12 @@ msgid "Open Audio Bus Layout" msgstr "" #: editor/editor_audio_buses.cpp -msgid "There is no 'res://default_bus_layout.tres' file." -msgstr "Neexistuje žiadny súbor \"res://default_bus_layout.tres\"." +msgid "There is no '%s' file." +msgstr "" + +#: editor/editor_audio_buses.cpp editor/plugins/canvas_item_editor_plugin.cpp +msgid "Layout" +msgstr "" #: editor/editor_audio_buses.cpp msgid "Invalid file, not an audio bus layout." @@ -1234,15 +1313,19 @@ msgid "Valid characters:" msgstr "" #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing engine class name." +msgid "Must not collide with an existing engine class name." msgstr "" #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing buit-in type name." +msgid "Must not collide with an existing buit-in type name." msgstr "" #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing global constant name." +msgid "Must not collide with an existing global constant name." +msgstr "" + +#: editor/editor_autoload_settings.cpp +msgid "Keyword cannot be used as an autoload name." msgstr "" #: editor/editor_autoload_settings.cpp @@ -1273,11 +1356,12 @@ msgstr "" msgid "Rearrange Autoloads" msgstr "" -#: editor/editor_autoload_settings.cpp -msgid "Invalid Path." -msgstr "" +#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp +#, fuzzy +msgid "Invalid path." +msgstr "Neplatný Názov." -#: editor/editor_autoload_settings.cpp +#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp msgid "File does not exist." msgstr "" @@ -1328,7 +1412,7 @@ msgid "[unsaved]" msgstr "" #: editor/editor_dir_dialog.cpp -msgid "Please select a base directory first" +msgid "Please select a base directory first." msgstr "" #: editor/editor_dir_dialog.cpp @@ -1336,7 +1420,8 @@ msgid "Choose a Directory" msgstr "" #: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp -#: editor/filesystem_dock.cpp scene/gui/file_dialog.cpp +#: editor/filesystem_dock.cpp editor/project_manager.cpp +#: scene/gui/file_dialog.cpp msgid "Create Folder" msgstr "VytvoriÅ¥ adresár" @@ -1404,6 +1489,159 @@ msgstr "" msgid "Template file not found:" msgstr "" +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "3D Editor" +msgstr "Otvorit prieÄinok" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Script Editor" +msgstr "Otvorit prieÄinok" + +#: editor/editor_feature_profile.cpp +msgid "Asset Library" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Scene Tree Editing" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Import Dock" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Node Dock" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Filesystem Dock" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Erase profile '%s'? (no undo)" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Profile must be a valid filename and must not contain '.'" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Profile with this name already exists." +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "(Editor Disabled, Properties Disabled)" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "(Properties Disabled)" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "(Editor Disabled)" +msgstr "Vypnuté" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Class Options:" +msgstr "Popis:" + +#: editor/editor_feature_profile.cpp +msgid "Enable Contextual Editor" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enabled Properties:" +msgstr "Filter:" + +#: editor/editor_feature_profile.cpp +msgid "Enabled Features:" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Enabled Classes:" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "File '%s' format is invalid, import aborted." +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "" +"Profile '%s' already exists. Remote it first before importing, import " +"aborted." +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Error saving profile to path: '%s'." +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Unset" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Current Profile" +msgstr "VytvoriÅ¥ adresár" + +#: editor/editor_feature_profile.cpp +msgid "Make Current" +msgstr "" + +#: editor/editor_feature_profile.cpp +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "New" +msgstr "" + +#: editor/editor_feature_profile.cpp editor/editor_node.cpp +#: editor/plugins/asset_library_editor_plugin.cpp editor/project_manager.cpp +msgid "Import" +msgstr "" + +#: editor/editor_feature_profile.cpp editor/editor_node.cpp +#: editor/project_export.cpp +msgid "Export" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Available Profiles" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Enabled Classes" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Class Options" +msgstr "Popis:" + +#: editor/editor_feature_profile.cpp +msgid "New profile name:" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Erase Profile" +msgstr "VÅ¡etky vybrané" + +#: editor/editor_feature_profile.cpp +msgid "Import Profile(s)" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Export Profile" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Manage Editor Feature Profiles" +msgstr "" + #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp #, fuzzy msgid "Select Current Folder" @@ -1427,8 +1665,8 @@ msgstr "" msgid "Open in File Manager" msgstr "OtvoriÅ¥ súbor" -#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp -#: editor/project_manager.cpp +#: editor/editor_file_dialog.cpp editor/editor_node.cpp +#: editor/filesystem_dock.cpp editor/project_manager.cpp #, fuzzy msgid "Show in File Manager" msgstr "OtvoriÅ¥ súbor" @@ -1489,7 +1727,7 @@ msgstr "" msgid "Go Up" msgstr "" -#: editor/editor_file_dialog.cpp +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Toggle Hidden Files" msgstr "" @@ -1523,12 +1761,17 @@ msgstr "VytvoriÅ¥ adresár" msgid "Next Folder" msgstr "VytvoriÅ¥ adresár" +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp +#, fuzzy +msgid "Go to parent folder." +msgstr "VytvoriÅ¥ adresár" + #: editor/editor_file_dialog.cpp -msgid "Go to parent folder" +msgid "(Un)favorite current folder." msgstr "" #: editor/editor_file_dialog.cpp -msgid "(Un)favorite current folder." +msgid "Toggle visibility of hidden files." msgstr "" #: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp @@ -1545,6 +1788,7 @@ msgstr "PrieÄinky a Súbory:" #: editor/editor_file_dialog.cpp editor/plugins/sprite_editor_plugin.cpp #: editor/plugins/style_box_editor_plugin.cpp +#: editor/plugins/theme_editor_plugin.cpp msgid "Preview:" msgstr "" @@ -1561,6 +1805,12 @@ msgid "ScanSources" msgstr "" #: editor/editor_file_system.cpp +msgid "" +"There are multiple importers for different types pointing to file %s, import " +"aborted" +msgstr "" + +#: editor/editor_file_system.cpp msgid "(Re)Importing Assets" msgstr "" @@ -1750,6 +2000,11 @@ msgstr "" msgid "Output:" msgstr "" +#: editor/editor_log.cpp editor/plugins/tile_map_editor_plugin.cpp +#, fuzzy +msgid "Copy Selection" +msgstr "OdstrániÅ¥ výber" + #: editor/editor_log.cpp editor/editor_profiler.cpp #: editor/editor_properties.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp @@ -1898,7 +2153,7 @@ msgstr "" #: editor/editor_node.cpp msgid "" "This resource belongs to a scene that was instanced or inherited.\n" -"Changes to it will not be kept when saving the current scene." +"Changes to it won't be kept when saving the current scene." msgstr "" #: editor/editor_node.cpp @@ -1909,7 +2164,7 @@ msgstr "" #: editor/editor_node.cpp msgid "" -"This scene was imported, so changes to it will not be kept.\n" +"This scene was imported, so changes to it won't be kept.\n" "Instancing it or inheriting will allow making changes to it.\n" "Please read the documentation relevant to importing scenes to better " "understand this workflow." @@ -1917,7 +2172,7 @@ msgstr "" #: editor/editor_node.cpp msgid "" -"This is a remote object so changes to it will not be kept.\n" +"This is a remote object, so changes to it won't be kept.\n" "Please read the documentation relevant to debugging to better understand " "this workflow." msgstr "" @@ -1927,27 +2182,6 @@ msgid "There is no defined scene to run." msgstr "" #: editor/editor_node.cpp -msgid "" -"No main scene has ever been defined, select one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" - -#: editor/editor_node.cpp -msgid "" -"Selected scene '%s' does not exist, select a valid one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" - -#: editor/editor_node.cpp -msgid "" -"Selected scene '%s' is not a scene file, select a valid one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" - -#: editor/editor_node.cpp msgid "Current scene was never saved, please save it prior to running." msgstr "" @@ -1955,7 +2189,7 @@ msgstr "" msgid "Could not start subprocess!" msgstr "" -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/filesystem_dock.cpp msgid "Open Scene" msgstr "" @@ -1964,6 +2198,11 @@ msgid "Open Base Scene" msgstr "" #: editor/editor_node.cpp +#, fuzzy +msgid "Quick Open..." +msgstr "OtvoriÅ¥" + +#: editor/editor_node.cpp msgid "Quick Open Scene..." msgstr "" @@ -2127,6 +2366,27 @@ msgid "Clear Recent Scenes" msgstr "" #: editor/editor_node.cpp +msgid "" +"No main scene has ever been defined, select one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"Selected scene '%s' does not exist, select a valid one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"Selected scene '%s' is not a scene file, select a valid one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" + +#: editor/editor_node.cpp msgid "Save Layout" msgstr "" @@ -2152,6 +2412,18 @@ msgstr "" msgid "Close Tab" msgstr "" +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +msgid "Close Other Tabs" +msgstr "" + +#: editor/editor_node.cpp +msgid "Close Tabs to the Right" +msgstr "" + +#: editor/editor_node.cpp +msgid "Close All Tabs" +msgstr "" + #: editor/editor_node.cpp msgid "Switch Scene Tab" msgstr "" @@ -2276,10 +2548,6 @@ msgstr "" msgid "Project Settings" msgstr "" -#: editor/editor_node.cpp editor/project_export.cpp -msgid "Export" -msgstr "" - #: editor/editor_node.cpp editor/plugins/tile_set_editor_plugin.cpp msgid "Tools" msgstr "" @@ -2289,6 +2557,10 @@ msgid "Open Project Data Folder" msgstr "" #: editor/editor_node.cpp +msgid "Install Android Build Template" +msgstr "" + +#: editor/editor_node.cpp msgid "Quit to Project List" msgstr "" @@ -2393,6 +2665,10 @@ msgstr "" msgid "Open Editor Settings Folder" msgstr "" +#: editor/editor_node.cpp +msgid "Manage Editor Features" +msgstr "" + #: editor/editor_node.cpp editor/project_export.cpp msgid "Manage Export Templates" msgstr "" @@ -2405,6 +2681,7 @@ msgstr "" #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp #: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp #: editor/project_settings_editor.cpp editor/rename_dialog.cpp msgid "Search" msgstr "" @@ -2427,7 +2704,7 @@ msgstr "Komunita" #: editor/editor_node.cpp msgid "About" -msgstr "" +msgstr "O nás" #: editor/editor_node.cpp msgid "Play the project." @@ -2495,11 +2772,6 @@ msgstr "" msgid "Disable Update Spinner" msgstr "" -#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp -#: editor/project_manager.cpp -msgid "Import" -msgstr "" - #: editor/editor_node.cpp msgid "FileSystem" msgstr "" @@ -2525,6 +2797,28 @@ msgid "Don't Save" msgstr "" #: editor/editor_node.cpp +msgid "Android build template is missing, please install relevant templates." +msgstr "" + +#: editor/editor_node.cpp +#, fuzzy +msgid "Manage Templates" +msgstr "VÅ¡etky vybrané" + +#: editor/editor_node.cpp +msgid "" +"This will install the Android project for custom builds.\n" +"Note that, in order to use it, it needs to be enabled per export preset." +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"Android build template is already installed and it won't be overwritten.\n" +"Remove the \"build\" directory manually before attempting this operation " +"again." +msgstr "" + +#: editor/editor_node.cpp msgid "Import Templates From ZIP File" msgstr "" @@ -2651,10 +2945,6 @@ msgid "Physics Frame %" msgstr "" #: editor/editor_profiler.cpp -msgid "Time:" -msgstr "" - -#: editor/editor_profiler.cpp msgid "Inclusive" msgstr "" @@ -2792,10 +3082,6 @@ msgid "Remove Item" msgstr "" #: editor/editor_run_native.cpp -msgid "Select device from the list" -msgstr "" - -#: editor/editor_run_native.cpp msgid "" "No runnable export preset found for this platform.\n" "Please add a runnable preset in the export menu." @@ -2829,6 +3115,10 @@ msgstr "" msgid "Select Node(s) to Import" msgstr "" +#: editor/editor_sub_scene.cpp editor/project_manager.cpp +msgid "Browse" +msgstr "" + #: editor/editor_sub_scene.cpp msgid "Scene Path:" msgstr "" @@ -2991,6 +3281,10 @@ msgid "SSL Handshake Error" msgstr "" #: editor/export_template_manager.cpp +msgid "Uncompressing Android Build Sources" +msgstr "" + +#: editor/export_template_manager.cpp msgid "Current Version:" msgstr "" @@ -3008,8 +3302,9 @@ msgid "Remove Template" msgstr "VÅ¡etky vybrané" #: editor/export_template_manager.cpp -msgid "Select template file" -msgstr "" +#, fuzzy +msgid "Select Template File" +msgstr "VytvoriÅ¥ adresár" #: editor/export_template_manager.cpp msgid "Export Template Manager" @@ -3065,7 +3360,7 @@ msgid "No name provided." msgstr "" #: editor/filesystem_dock.cpp -msgid "Provided name contains invalid characters" +msgid "Provided name contains invalid characters." msgstr "" #: editor/filesystem_dock.cpp @@ -3094,7 +3389,12 @@ msgstr "" #: editor/filesystem_dock.cpp #, fuzzy -msgid "Open Scene(s)" +msgid "New Inherited Scene" +msgstr "Popis:" + +#: editor/filesystem_dock.cpp +#, fuzzy +msgid "Open Scenes" msgstr "OtvoriÅ¥ súbor(y)" #: editor/filesystem_dock.cpp @@ -3102,12 +3402,13 @@ msgid "Instance" msgstr "" #: editor/filesystem_dock.cpp -msgid "Add to favorites" -msgstr "" +#, fuzzy +msgid "Add to Favorites" +msgstr "Obľúbené:" #: editor/filesystem_dock.cpp #, fuzzy -msgid "Remove from favorites" +msgid "Remove from Favorites" msgstr "VÅ¡etky vybrané" #: editor/filesystem_dock.cpp @@ -3140,11 +3441,13 @@ msgstr "Popis:" msgid "New Resource..." msgstr "VytvoriÅ¥ adresár" -#: editor/filesystem_dock.cpp editor/script_editor_debugger.cpp +#: editor/filesystem_dock.cpp editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_editor_debugger.cpp msgid "Expand All" msgstr "" -#: editor/filesystem_dock.cpp editor/script_editor_debugger.cpp +#: editor/filesystem_dock.cpp editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_editor_debugger.cpp msgid "Collapse All" msgstr "" @@ -3156,19 +3459,21 @@ msgid "Rename" msgstr "" #: editor/filesystem_dock.cpp -msgid "Previous Directory" -msgstr "" +#, fuzzy +msgid "Previous Folder/File" +msgstr "VytvoriÅ¥ adresár" #: editor/filesystem_dock.cpp -msgid "Next Directory" -msgstr "" +#, fuzzy +msgid "Next Folder/File" +msgstr "VytvoriÅ¥ adresár" #: editor/filesystem_dock.cpp msgid "Re-Scan Filesystem" msgstr "" #: editor/filesystem_dock.cpp -msgid "Toggle split mode" +msgid "Toggle Split Mode" msgstr "" #: editor/filesystem_dock.cpp @@ -3197,7 +3502,7 @@ msgstr "" msgid "Create Script" msgstr "" -#: editor/find_in_files.cpp +#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp #, fuzzy msgid "Find in Files" msgstr "Súbor:" @@ -3216,6 +3521,12 @@ msgstr "VytvoriÅ¥ adresár" msgid "Filters:" msgstr "Filter:" +#: editor/find_in_files.cpp +msgid "" +"Include the files with the following extensions. Add or remove them in " +"ProjectSettings." +msgstr "" + #: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp msgid "Find..." @@ -3659,7 +3970,7 @@ msgid "Open Animation Node" msgstr "" #: editor/plugins/animation_blend_space_2d_editor.cpp -msgid "Triangle already exists" +msgid "Triangle already exists." msgstr "" #: editor/plugins/animation_blend_space_2d_editor.cpp @@ -3737,7 +4048,6 @@ msgid "Node Moved" msgstr "" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Unable to connect, port may be in use or connection may be invalid." msgstr "" @@ -3807,7 +4117,7 @@ msgid "Edit Filtered Tracks:" msgstr "Súbor:" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -msgid "Enable filtering" +msgid "Enable Filtering" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp @@ -3922,10 +4232,6 @@ msgid "Animation" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "New" -msgstr "" - -#: editor/plugins/animation_player_editor_plugin.cpp #, fuzzy msgid "Edit Transitions..." msgstr "Prechody" @@ -3944,11 +4250,11 @@ msgid "Autoplay on Load" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Onion Skinning" +msgid "Enable Onion Skinning" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Enable Onion Skinning" +msgid "Onion Skinning Options" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp @@ -4502,13 +4808,19 @@ msgid "Move CanvasItem" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"Children of containers have their anchors and margins values overridden by " +"their parent." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Presets for the anchors and margins values of a Control node." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "" -"Children of containers have their anchors and margins values overridden by " -"their parent." +"When active, moving Control nodes changes their anchors instead of their " +"margins." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4524,10 +4836,51 @@ msgid "Change Anchors" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Lock Selected" +msgstr "VÅ¡etky vybrané" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Unlock Selected" +msgstr "VÅ¡etky vybrané" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Group Selected" +msgstr "OdstrániÅ¥ výber" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Ungroup Selected" +msgstr "OdstrániÅ¥ výber" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Paste Pose" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Create Custom Bone(s) from Node(s)" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Clear Bones" +msgstr "VÅ¡etky vybrané" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Make IK Chain" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Clear IK Chain" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "" "Warning: Children of a container get their position and size determined only " "by their parent." @@ -4599,7 +4952,7 @@ msgid "Snapping Options" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to grid" +msgid "Snap to Grid" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4620,31 +4973,32 @@ msgid "Use Pixel Snap" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Smart snapping" +msgid "Smart Snapping" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to parent" +msgid "Snap to Parent" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node anchor" +msgid "Snap to Node Anchor" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node sides" +msgid "Snap to Node Sides" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node center" +msgid "Snap to Node Center" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to other nodes" -msgstr "" +#, fuzzy +msgid "Snap to Other Nodes" +msgstr "VložiÅ¥" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to guides" +msgid "Snap to Guides" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4658,10 +5012,12 @@ msgid "Unlock the selected object (can be moved)." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Makes sure the object's children are not selectable." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Restores the object's children's ability to be selected." msgstr "" @@ -4675,14 +5031,6 @@ msgid "Show Bones" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Make IK Chain" -msgstr "" - -#: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Clear IK Chain" -msgstr "" - -#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Make Custom Bone(s) from Node(s)" msgstr "" @@ -4733,7 +5081,7 @@ msgid "Frame Selection" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Layout" +msgid "Preview Canvas Scale" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4786,6 +5134,10 @@ msgid "Divide grid step by 2" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Pan View" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Add %s" msgstr "" @@ -4808,8 +5160,9 @@ msgid "Error instancing scene from %s" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Change default type" -msgstr "" +#, fuzzy +msgid "Change Default Type" +msgstr "ZmeniÅ¥ %s Typ" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "" @@ -4895,20 +5248,19 @@ msgid "Create Emission Points From Node" msgstr "" #: editor/plugins/curve_editor_plugin.cpp -msgid "Flat0" +msgid "Flat 0" msgstr "" #: editor/plugins/curve_editor_plugin.cpp -msgid "Flat1" +msgid "Flat 1" msgstr "" -#: editor/plugins/curve_editor_plugin.cpp -#, fuzzy -msgid "Ease in" -msgstr "VÅ¡etky vybrané" +#: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp +msgid "Ease In" +msgstr "" -#: editor/plugins/curve_editor_plugin.cpp -msgid "Ease out" +#: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp +msgid "Ease Out" msgstr "" #: editor/plugins/curve_editor_plugin.cpp @@ -4929,25 +5281,28 @@ msgstr "" #: editor/plugins/curve_editor_plugin.cpp #, fuzzy -msgid "Add point" +msgid "Add Point" msgstr "Signály:" #: editor/plugins/curve_editor_plugin.cpp #, fuzzy -msgid "Remove point" +msgid "Remove Point" msgstr "VÅ¡etky vybrané" #: editor/plugins/curve_editor_plugin.cpp -msgid "Left linear" -msgstr "" +#, fuzzy +msgid "Left Linear" +msgstr "Lineárne" #: editor/plugins/curve_editor_plugin.cpp -msgid "Right linear" -msgstr "" +#, fuzzy +msgid "Right Linear" +msgstr "Lineárne" #: editor/plugins/curve_editor_plugin.cpp -msgid "Load preset" -msgstr "" +#, fuzzy +msgid "Load Preset" +msgstr "NaÄÃtaÅ¥ predvolené" #: editor/plugins/curve_editor_plugin.cpp #, fuzzy @@ -5003,14 +5358,19 @@ msgid "This doesn't work on scene root!" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Trimesh Shape" +msgid "Create Trimesh Static Shape" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Shape" +msgid "Failed creating shapes!" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp +#, fuzzy +msgid "Create Convex Shape(s)" +msgstr "VytvoriÅ¥ adresár" + +#: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Navigation Mesh" msgstr "" @@ -5060,16 +5420,13 @@ msgid "Create Trimesh Static Body" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Static Body" -msgstr "" - -#: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Trimesh Collision Sibling" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Collision Sibling" -msgstr "" +#, fuzzy +msgid "Create Convex Collision Sibling(s)" +msgstr "VytvoriÅ¥ adresár" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Outline Mesh..." @@ -5224,20 +5581,20 @@ msgid "Create Navigation Polygon" msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp -msgid "Generating Visibility Rect" +#: editor/plugins/particles_editor_plugin.cpp +msgid "Convert to CPUParticles" msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp -msgid "Generate Visibility Rect" +msgid "Generating Visibility Rect" msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp -msgid "Can only set point into a ParticlesMaterial process material" +msgid "Generate Visibility Rect" msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp -#: editor/plugins/particles_editor_plugin.cpp -msgid "Convert to CPUParticles" +msgid "Can only set point into a ParticlesMaterial process material" msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp @@ -5379,7 +5736,7 @@ msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp editor/plugins/theme_editor_plugin.cpp -#: editor/project_export.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_export.cpp msgid "Options" msgstr "" @@ -5435,7 +5792,7 @@ msgstr "" #: editor/plugins/physical_bone_plugin.cpp #, fuzzy -msgid "Move joint" +msgid "Move Joint" msgstr "VÅ¡etky vybrané" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5676,7 +6033,6 @@ msgid "Open in Editor" msgstr "" #: editor/plugins/resource_preloader_editor_plugin.cpp -#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Load Resource" msgstr "" @@ -5768,6 +6124,11 @@ msgid "%s Class Reference" msgstr "" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp +msgid "Find Next" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp msgid "Toggle alphabetical sorting of the method list." msgstr "" @@ -5850,10 +6211,6 @@ msgstr "" msgid "Close All" msgstr "" -#: editor/plugins/script_editor_plugin.cpp -msgid "Close Other Tabs" -msgstr "" - #: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp msgid "Run" msgstr "" @@ -5862,11 +6219,6 @@ msgstr "" msgid "Toggle Scripts Panel" msgstr "" -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/script_text_editor.cpp -msgid "Find Next" -msgstr "" - #: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp msgid "Step Over" msgstr "" @@ -5893,15 +6245,16 @@ msgid "Debug with External Editor" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Open Godot online documentation" -msgstr "" +#, fuzzy +msgid "Open Godot online documentation." +msgstr "Popis:" #: editor/plugins/script_editor_plugin.cpp msgid "Request Docs" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Help improve the Godot documentation by giving feedback" +msgid "Help improve the Godot documentation by giving feedback." msgstr "" #: editor/plugins/script_editor_plugin.cpp @@ -5927,10 +6280,12 @@ msgid "" msgstr "" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp msgid "Reload" msgstr "" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp msgid "Resave" msgstr "" @@ -5944,6 +6299,30 @@ msgid "Search Results" msgstr "VložiÅ¥" #: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Connections to method:" +msgstr "PripojiÅ¥ k Node:" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Source" +msgstr "Prostriedok" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Signal" +msgstr "Signály" + +#: editor/plugins/script_text_editor.cpp +msgid "Target" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "" +"Missing connected method '%s' for signal '%s' from node '%s' to node '%s'." +msgstr "" + +#: editor/plugins/script_text_editor.cpp msgid "Line" msgstr "" @@ -5956,10 +6335,6 @@ msgstr "" msgid "Go to Function" msgstr "VÅ¡etky vybrané" -#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp -msgid "Standard" -msgstr "" - #: editor/plugins/script_text_editor.cpp msgid "Only resources from filesystem can be dropped." msgstr "" @@ -5992,6 +6367,11 @@ msgstr "" msgid "Syntax Highlighter" msgstr "" +#: editor/plugins/script_text_editor.cpp +#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp +msgid "Bookmarks" +msgstr "" + #: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" @@ -6019,6 +6399,25 @@ msgid "Toggle Comment" msgstr "" #: editor/plugins/script_text_editor.cpp +msgid "Toggle Bookmark" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Go to Next Bookmark" +msgstr "PrejsÅ¥ na Äalšà krok" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Go to Previous Bookmark" +msgstr "PrejsÅ¥ na predchádzajúci krok" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Remove All Bookmarks" +msgstr "VÅ¡etky vybrané" + +#: editor/plugins/script_text_editor.cpp msgid "Fold/Unfold Line" msgstr "" @@ -6095,6 +6494,12 @@ msgid "Contextual Help" msgstr "" #: editor/plugins/shader_editor_plugin.cpp +msgid "" +"This shader has been modified on on disk.\n" +"What action should be taken?" +msgstr "" + +#: editor/plugins/shader_editor_plugin.cpp msgid "Shader" msgstr "" @@ -6434,7 +6839,7 @@ msgid "Right View" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Switch Perspective/Orthogonal view" +msgid "Switch Perspective/Orthogonal View" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp @@ -6477,11 +6882,12 @@ msgid "Toggle Freelook" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Transform" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Snap object to floor" +msgid "Snap Object to Floor" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp @@ -6626,23 +7032,11 @@ msgid "Invalid geometry, can't replace by mesh." msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Invalid geometry, can't create polygon." -msgstr "" - -#: editor/plugins/sprite_editor_plugin.cpp -msgid "Invalid geometry, can't create collision polygon." -msgstr "" - -#: editor/plugins/sprite_editor_plugin.cpp -msgid "Invalid geometry, can't create light occluder." -msgstr "" - -#: editor/plugins/sprite_editor_plugin.cpp -msgid "Sprite" +msgid "Convert to Mesh2D" msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Convert to Mesh2D" +msgid "Invalid geometry, can't create polygon." msgstr "" #: editor/plugins/sprite_editor_plugin.cpp @@ -6651,15 +7045,27 @@ msgid "Convert to Polygon2D" msgstr "VÅ¡etky vybrané" #: editor/plugins/sprite_editor_plugin.cpp +msgid "Invalid geometry, can't create collision polygon." +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp #, fuzzy msgid "Create CollisionPolygon2D Sibling" msgstr "VytvoriÅ¥ adresár" #: editor/plugins/sprite_editor_plugin.cpp +msgid "Invalid geometry, can't create light occluder." +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp msgid "Create LightOccluder2D Sibling" msgstr "" #: editor/plugins/sprite_editor_plugin.cpp +msgid "Sprite" +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp msgid "Simplification: " msgstr "" @@ -6676,7 +7082,12 @@ msgid "Settings:" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "ERROR: Couldn't load frame resource!" +#, fuzzy +msgid "No Frames Selected" +msgstr "VÅ¡etky vybrané" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Add %d Frame(s)" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp @@ -6684,6 +7095,10 @@ msgid "Add Frame" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "ERROR: Couldn't load frame resource!" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Resource clipboard is empty or not a texture!" msgstr "" @@ -6726,6 +7141,15 @@ msgid "Animation Frames:" msgstr "Popis:" #: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Add a Texture from File" +msgstr "VÅ¡etky vybrané" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Add Frames from a Sprite Sheet" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Insert Empty (Before)" msgstr "" @@ -6743,6 +7167,26 @@ msgid "Move (After)" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Select Frames" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Horizontal:" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Vertical:" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Select/Clear All Frames" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Create Frames from Sprite Sheet" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "SpriteFrames" msgstr "" @@ -6808,14 +7252,15 @@ msgstr "" msgid "Remove All Items" msgstr "VÅ¡etky vybrané" -#: editor/plugins/theme_editor_plugin.cpp +#: editor/plugins/theme_editor_plugin.cpp editor/project_manager.cpp #, fuzzy msgid "Remove All" msgstr "VÅ¡etky vybrané" #: editor/plugins/theme_editor_plugin.cpp -msgid "Edit theme..." -msgstr "" +#, fuzzy +msgid "Edit Theme" +msgstr "Súbor:" #: editor/plugins/theme_editor_plugin.cpp msgid "Theme editing menu." @@ -6842,18 +7287,25 @@ msgid "Create From Current Editor Theme" msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "CheckBox Radio1" -msgstr "" +#, fuzzy +msgid "Toggle Button" +msgstr "TlaÄidlo" #: editor/plugins/theme_editor_plugin.cpp -msgid "CheckBox Radio2" -msgstr "" +#, fuzzy +msgid "Disabled Button" +msgstr "Vypnuté" #: editor/plugins/theme_editor_plugin.cpp msgid "Item" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Disabled Item" +msgstr "Vypnuté" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Check Item" msgstr "" @@ -6870,6 +7322,22 @@ msgid "Checked Radio Item" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +msgid "Named Sep." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Submenu" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Item 1" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Item 2" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Has" msgstr "" @@ -6878,8 +7346,9 @@ msgid "Many" msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "Has,Many,Options" -msgstr "" +#, fuzzy +msgid "Disabled LineEdit" +msgstr "Vypnuté" #: editor/plugins/theme_editor_plugin.cpp msgid "Tab 1" @@ -6894,6 +7363,19 @@ msgid "Tab 3" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Editable Item" +msgstr "Súbor:" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Subtree" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Has,Many,Options" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Data Type:" msgstr "" @@ -6927,6 +7409,7 @@ msgid "Fix Invalid Tiles" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp +#: modules/gridmap/grid_map_editor_plugin.cpp #, fuzzy msgid "Cut Selection" msgstr "VÅ¡etky vybrané" @@ -6968,36 +7451,46 @@ msgid "Mirror Y" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp +msgid "Disable Autotile" +msgstr "" + +#: editor/plugins/tile_map_editor_plugin.cpp +#, fuzzy +msgid "Enable Priority" +msgstr "Súbor:" + +#: editor/plugins/tile_map_editor_plugin.cpp msgid "Paint Tile" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Pick Tile" +msgid "" +"Shift+RMB: Line Draw\n" +"Shift+Ctrl+RMB: Rectangle Paint" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy -msgid "Copy Selection" -msgstr "OdstrániÅ¥ výber" +msgid "Pick Tile" +msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Rotate left" +msgid "Rotate Left" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Rotate right" +msgid "Rotate Right" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Flip horizontally" +msgid "Flip Horizontally" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Flip vertically" +msgid "Flip Vertically" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Clear transform" +msgid "Clear Transform" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp @@ -7035,6 +7528,42 @@ msgid "Select the previous shape, subtile, or Tile." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Region Mode" +msgstr "Režim Interpolácie" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Collision Mode" +msgstr "Režim Interpolácie" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Occlusion Mode" +msgstr "Signály:" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Navigation Mode" +msgstr "Signály:" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Bitmask Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Priority Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Icon Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Z Index Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp msgid "Copy bitmask." msgstr "" @@ -7124,6 +7653,7 @@ msgstr "VÅ¡etky vybrané" msgid "" "LMB: Set bit on.\n" "RMB: Set bit off.\n" +"Shift+LMB: Set wildcard bit.\n" "Click on another Tile to edit it." msgstr "VytvoriÅ¥ adresár" @@ -7246,6 +7776,73 @@ msgid "TileSet" msgstr "Súbor:" #: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Add input +" +msgstr "Signály:" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add output +" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Add input port" +msgstr "Signály:" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add output port" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change input port type" +msgstr "ZmeniÅ¥ %s Typ" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Change output port type" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change input port name" +msgstr "ZmeniÅ¥ Hodnotu v SlovnÃku" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Change output port name" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Remove input port" +msgstr "VÅ¡etky vybrané" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Remove output port" +msgstr "VÅ¡etky vybrané" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Set expression" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Resize VisualShader node" +msgstr "VložiÅ¥" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Set Uniform Name" msgstr "" @@ -7284,6 +7881,846 @@ msgid "Light" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Create Shader Node" +msgstr "VytvoriÅ¥ adresár" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Color function." +msgstr "VÅ¡etky vybrané" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Color operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Grayscale function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts HSV vector to RGB equivalent." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts RGB vector to HSV equivalent." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Sepia function." +msgstr "VÅ¡etky vybrané" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Burn operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Darken operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Difference operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Dodge operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "HardLight operator" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Lighten operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Overlay operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Screen operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "SoftLight operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Color constant." +msgstr "KonÅ¡tanty:" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Color uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns an associated vector if the provided scalars are equal, greater or " +"less." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns an associated vector if the provided boolean value is true or false." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'camera' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'inv_camera' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'inv_projection' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'normal' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'projection' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'time' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'viewport_size' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'world' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'texture_pixel_size' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Input parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'binormal' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'fragcoord' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_coord' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_uv' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'side' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'tangent' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv2' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'vertex' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'view' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'albedo' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'attenuation' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'diffuse' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_color' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'roughness' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'specular' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'transmission' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'modelview' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_size' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'tangent' input parameter for vertex and fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_pass' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_coord' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_pixel_size' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_uv' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_alpha' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_height' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_uv' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_vec' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'normal' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'shadow_color' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'extra' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'projection' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'vertex' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'world' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'active' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'custom' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'custom_alpha' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'delta' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'emission_transform' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'index' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'lifetime' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'restart' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'time' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'transform' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'velocity' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar function." +msgstr "ZmeniÅ¥ veľkosÅ¥ výberu" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Scalar operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "E constant (2.718282). Represents the base of the natural logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Epsilon constant (0.00001). Smallest possible scalar number." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Phi constant (1.618034). Golden ratio." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi/4 constant (0.785398) or 45 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi/2 constant (1.570796) or 90 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi constant (3.141593) or 180 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Tau constant (6.283185) or 360 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Sqrt2 constant (1.414214). Square root of 2." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the absolute value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-tangent of the parameters." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Finds the nearest integer that is greater than or equal to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Constrains a value to lie between two further values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts a quantity in radians to degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-e Exponential." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-2 Exponential." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Finds the nearest integer less than or equal to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Computes the fractional part of the argument." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the inverse of the square root of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Natural logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-2 logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the greater of two values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the lesser of two values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Linear interpolation between two scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the opposite value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 - scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns the value of the first parameter raised to the power of the second." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts a quantity in degrees to radians." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 / scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the nearest integer to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the nearest even integer to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Clamps the value between 0.0 and 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Extracts the sign of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the square root of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( scalar(edge0), scalar(edge1), scalar(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if x is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( scalar(edge), scalar(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the truncated value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Adds scalar to scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Divides scalar by scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies scalar by scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the remainder of the two scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Subtracts scalar from scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Scalar constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Scalar uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Perform the cubic texture lookup." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Perform the texture lookup." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Cubic texture uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "2D texture uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Transform function." +msgstr "VytvoriÅ¥ adresár" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) Calculate the outer product of a pair of vectors.\n" +"\n" +"OuterProduct treats the first parameter 'c' as a column vector (matrix with " +"one column) and the second parameter 'r' as a row vector (matrix with one " +"row) and does a linear algebraic matrix multiply 'c * r', yielding a matrix " +"whose number of rows is the number of components in 'c' and whose number of " +"columns is the number of components in 'r'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Composes transform from four vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Decomposes transform to four vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the determinant of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the inverse of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the transpose of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies transform by transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies vector by transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Transform constant." +msgstr "VytvoriÅ¥ adresár" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Transform uniform." +msgstr "VytvoriÅ¥ adresár" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector function." +msgstr "VÅ¡etky vybrané" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Composes vector from three scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Decomposes vector to three scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the cross product of two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the distance between two points." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the dot product of two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns a vector that points in the same direction as a reference vector. " +"The function has three vector parameters : N, the vector to orient, I, the " +"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 "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the length of a vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Linear interpolation between two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the normalize product of vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 - vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 / vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns a vector that points in the direction of reflection ( a : incident " +"vector, b : normal vector )." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns a vector that points in the direction of refraction." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( vector(edge0), vector(edge1), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if 'x' is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( scalar(edge0), scalar(edge1), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if 'x' is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( vector(edge), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( scalar(edge), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Adds vector to vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Divides vector by vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies vector by vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the remainder of the two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Subtracts vector from vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Custom Godot Shader Language expression, with custom amount of input and " +"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 "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns falloff based on the dot product of surface normal and view " +"direction of camera (pass associated inputs to it)." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) (Fragment/Light mode only) Scalar derivative function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) (Fragment/Light mode only) Vector derivative function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Derivative in 'x' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Derivative in 'x' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Derivative in 'y' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Derivative in 'y' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Sum of absolute derivative " +"in 'x' and 'y'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Sum of absolute derivative " +"in 'x' and 'y'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "VisualShader" msgstr "" @@ -7473,6 +8910,10 @@ msgid "Directory already contains a Godot project." msgstr "" #: editor/project_manager.cpp +msgid "New Game Project" +msgstr "" + +#: editor/project_manager.cpp msgid "Imported Project" msgstr "" @@ -7521,10 +8962,6 @@ msgid "Rename Project" msgstr "VÅ¡etky vybrané" #: editor/project_manager.cpp -msgid "New Game Project" -msgstr "" - -#: editor/project_manager.cpp msgid "Import Existing Project" msgstr "" @@ -7554,11 +8991,6 @@ msgid "Project Name:" msgstr "" #: editor/project_manager.cpp -#, fuzzy -msgid "Create folder" -msgstr "VytvoriÅ¥ adresár" - -#: editor/project_manager.cpp msgid "Project Path:" msgstr "" @@ -7567,10 +8999,6 @@ msgid "Project Installation Path:" msgstr "" #: editor/project_manager.cpp -msgid "Browse" -msgstr "" - -#: editor/project_manager.cpp msgid "Renderer:" msgstr "" @@ -7623,8 +9051,8 @@ msgid "" "\n" "If you proceed with opening it, it will be converted to Godot's current " "configuration file format.\n" -"Warning: You will not be able to open the project with previous versions of " -"the engine anymore." +"Warning: You won't be able to open the project with previous versions of the " +"engine anymore." msgstr "" #: editor/project_manager.cpp @@ -7635,8 +9063,8 @@ msgid "" "%s\n" "\n" "Do you want to convert it?\n" -"Warning: You will not be able to open the project with previous versions of " -"the engine anymore." +"Warning: You won't be able to open the project with previous versions of the " +"engine anymore." msgstr "" #: editor/project_manager.cpp @@ -7648,7 +9076,7 @@ msgstr "" #: editor/project_manager.cpp msgid "" "Can't run project: no main scene defined.\n" -"Please edit the project and set the main scene in \"Project Settings\" under " +"Please edit the project and set the main scene in the Project Settings under " "the \"Application\" category." msgstr "" @@ -7659,23 +9087,37 @@ msgid "" msgstr "" #: editor/project_manager.cpp -msgid "Are you sure to run more than one project?" +msgid "Are you sure to run %d projects at once?" +msgstr "" + +#: editor/project_manager.cpp +msgid "" +"Remove %d projects from the list?\n" +"The project folders' contents won't be modified." +msgstr "" + +#: editor/project_manager.cpp +msgid "" +"Remove this project from the list?\n" +"The project folder's contents won't be modified." msgstr "" #: editor/project_manager.cpp -msgid "Remove project from the list? (Folder contents will not be modified)" +msgid "" +"Remove all missing projects from the list? (Folders contents will not be " +"modified)" msgstr "" #: editor/project_manager.cpp msgid "" "Language changed.\n" -"The UI will update next time the editor or project manager starts." +"The interface will update after restarting the editor or project manager." msgstr "" #: editor/project_manager.cpp msgid "" -"You are about the scan %s folders for existing Godot projects. Do you " -"confirm?" +"Are you sure to scan %s folders for existing Godot projects?\n" +"This could take a while." msgstr "" #: editor/project_manager.cpp @@ -7700,6 +9142,11 @@ msgstr "" #: editor/project_manager.cpp #, fuzzy +msgid "Remove Missing" +msgstr "VÅ¡etky vybrané" + +#: editor/project_manager.cpp +#, fuzzy msgid "Templates" msgstr "VÅ¡etky vybrané" @@ -7717,8 +9164,8 @@ msgstr "" #: editor/project_manager.cpp msgid "" -"You don't currently have any projects.\n" -"Would you like to explore the official example projects in the Asset Library?" +"You currently don't have any projects.\n" +"Would you like to explore official example projects in the Asset Library?" msgstr "" #: editor/project_settings_editor.cpp @@ -7744,7 +9191,7 @@ msgid "" msgstr "" #: editor/project_settings_editor.cpp -msgid "Action '%s' already exists!" +msgid "An action with the name '%s' already exists." msgstr "" #: editor/project_settings_editor.cpp @@ -7902,10 +9349,6 @@ msgid "" msgstr "" #: editor/project_settings_editor.cpp -msgid "Already existing" -msgstr "" - -#: editor/project_settings_editor.cpp msgid "Add Input Action" msgstr "" @@ -7963,14 +9406,14 @@ msgstr "" #: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp msgid "General" -msgstr "" +msgstr "Hlavné" #: editor/project_settings_editor.cpp msgid "Override For..." msgstr "" #: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp -msgid "Editor must be restarted for changes to take effect" +msgid "The editor must be restarted for changes to take effect." msgstr "" #: editor/project_settings_editor.cpp @@ -8031,11 +9474,11 @@ msgid "Locales Filter" msgstr "" #: editor/project_settings_editor.cpp -msgid "Show all locales" +msgid "Show All Locales" msgstr "" #: editor/project_settings_editor.cpp -msgid "Show only selected locales" +msgid "Show Selected Locales Only" msgstr "" #: editor/project_settings_editor.cpp @@ -8052,14 +9495,6 @@ msgid "AutoLoad" msgstr "" #: editor/property_editor.cpp -msgid "Ease In" -msgstr "" - -#: editor/property_editor.cpp -msgid "Ease Out" -msgstr "" - -#: editor/property_editor.cpp msgid "Zero" msgstr "" @@ -8133,7 +9568,7 @@ msgid "Suffix" msgstr "" #: editor/rename_dialog.cpp -msgid "Advanced options" +msgid "Advanced Options" msgstr "" #: editor/rename_dialog.cpp @@ -8388,8 +9823,8 @@ msgstr "" #: editor/scene_tree_dock.cpp #, fuzzy -msgid "Custom Node" -msgstr "VložiÅ¥" +msgid "Other Node" +msgstr "VÅ¡etky vybrané" #: editor/scene_tree_dock.cpp msgid "Can't operate on nodes from a foreign scene!" @@ -8432,7 +9867,7 @@ msgstr "" #: editor/scene_tree_dock.cpp #, fuzzy -msgid "Open documentation" +msgid "Open Documentation" msgstr "Popis:" #: editor/scene_tree_dock.cpp @@ -8460,7 +9895,7 @@ msgstr "" msgid "Save Branch as Scene" msgstr "" -#: editor/scene_tree_dock.cpp +#: editor/scene_tree_dock.cpp editor/script_editor_debugger.cpp msgid "Copy Node Path" msgstr "" @@ -8504,6 +9939,21 @@ msgid "Toggle Visible" msgstr "" #: editor/scene_tree_editor.cpp +#, fuzzy +msgid "Unlock Node" +msgstr "VložiÅ¥" + +#: editor/scene_tree_editor.cpp +#, fuzzy +msgid "Button Group" +msgstr "TlaÄidlo" + +#: editor/scene_tree_editor.cpp +#, fuzzy +msgid "(Connecting From)" +msgstr "PripojiÅ¥ Signál: " + +#: editor/scene_tree_editor.cpp msgid "Node configuration warning:" msgstr "" @@ -8525,9 +9975,9 @@ msgid "" "Click to show groups dock." msgstr "" -#: editor/scene_tree_editor.cpp editor/script_create_dialog.cpp +#: editor/scene_tree_editor.cpp #, fuzzy -msgid "Open Script" +msgid "Open Script:" msgstr "Popis:" #: editor/scene_tree_editor.cpp @@ -8573,71 +10023,75 @@ msgid "Select a Node" msgstr "" #: editor/script_create_dialog.cpp -msgid "Error loading template '%s'" +msgid "Path is empty." msgstr "" #: editor/script_create_dialog.cpp -msgid "Error - Could not create script in filesystem." +msgid "Filename is empty." msgstr "" #: editor/script_create_dialog.cpp -msgid "Error loading script from %s" +msgid "Path is not local." msgstr "" #: editor/script_create_dialog.cpp -msgid "N/A" -msgstr "" +#, fuzzy +msgid "Invalid base path." +msgstr "Neplatný Názov." #: editor/script_create_dialog.cpp -msgid "Open Script/Choose Location" +msgid "A directory with the same name exists." msgstr "" #: editor/script_create_dialog.cpp -msgid "Path is empty" -msgstr "" +#, fuzzy +msgid "Invalid extension." +msgstr "Nesprávna veľkosÅ¥ pÃsma." #: editor/script_create_dialog.cpp -msgid "Filename is empty" +msgid "Wrong extension chosen." msgstr "" #: editor/script_create_dialog.cpp -msgid "Path is not local" +msgid "Error loading template '%s'" msgstr "" #: editor/script_create_dialog.cpp -msgid "Invalid base path" +msgid "Error - Could not create script in filesystem." msgstr "" #: editor/script_create_dialog.cpp -msgid "Directory of the same name exists" +msgid "Error loading script from %s" msgstr "" #: editor/script_create_dialog.cpp -msgid "File exists, will be reused" +msgid "N/A" msgstr "" #: editor/script_create_dialog.cpp -msgid "Invalid extension" +msgid "Open Script / Choose Location" msgstr "" #: editor/script_create_dialog.cpp -msgid "Wrong extension chosen" -msgstr "" +#, fuzzy +msgid "Open Script" +msgstr "Popis:" #: editor/script_create_dialog.cpp -msgid "Invalid Path" +msgid "File exists, it will be reused." msgstr "" #: editor/script_create_dialog.cpp -msgid "Invalid class name" -msgstr "" +#, fuzzy +msgid "Invalid class name." +msgstr "Neplatný Názov." #: editor/script_create_dialog.cpp -msgid "Invalid inherited parent name or path" +msgid "Invalid inherited parent name or path." msgstr "" #: editor/script_create_dialog.cpp -msgid "Script valid" +msgid "Script is valid." msgstr "" #: editor/script_create_dialog.cpp @@ -8645,17 +10099,17 @@ msgid "Allowed: a-z, A-Z, 0-9 and _" msgstr "" #: editor/script_create_dialog.cpp -msgid "Built-in script (into scene file)" +msgid "Built-in script (into scene file)." msgstr "" #: editor/script_create_dialog.cpp #, fuzzy -msgid "Create new script file" +msgid "Will create a new script file." msgstr "Popis:" #: editor/script_create_dialog.cpp #, fuzzy -msgid "Load existing script file" +msgid "Will load an existing script file." msgstr "Popis:" #: editor/script_create_dialog.cpp @@ -8790,6 +10244,10 @@ msgstr "" msgid "Set From Tree" msgstr "" +#: editor/script_editor_debugger.cpp +msgid "Export measures as CSV" +msgstr "" + #: editor/settings_config_dialog.cpp #, fuzzy msgid "Erase Shortcut" @@ -8921,6 +10379,14 @@ msgid "GDNativeLibrary" msgstr "" #: modules/gdnative/gdnative_library_singleton_editor.cpp +msgid "Enabled GDNative Singleton" +msgstr "" + +#: modules/gdnative/gdnative_library_singleton_editor.cpp +msgid "Disabled GDNative Singleton" +msgstr "" + +#: modules/gdnative/gdnative_library_singleton_editor.cpp msgid "Library" msgstr "" @@ -9008,8 +10474,9 @@ msgid "GridMap Fill Selection" msgstr "VÅ¡etky vybrané" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "GridMap Duplicate Selection" -msgstr "" +#, fuzzy +msgid "GridMap Paste Selection" +msgstr "VÅ¡etky vybrané" #: modules/gridmap/grid_map_editor_plugin.cpp msgid "GridMap Paint" @@ -9077,19 +10544,6 @@ msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp #, fuzzy -msgid "Create Area" -msgstr "VytvoriÅ¥ adresár" - -#: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Create Exterior Connector" -msgstr "" - -#: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Erase Area" -msgstr "" - -#: modules/gridmap/grid_map_editor_plugin.cpp -#, fuzzy msgid "Clear Selection" msgstr "VÅ¡etky vybrané" @@ -9449,15 +10903,7 @@ msgid "Available Nodes:" msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Select or create a function to edit graph" -msgstr "" - -#: modules/visual_script/visual_script_editor.cpp -msgid "Edit Signal Arguments:" -msgstr "" - -#: modules/visual_script/visual_script_editor.cpp -msgid "Edit Variable:" +msgid "Select or create a function to edit its graph." msgstr "" #: modules/visual_script/visual_script_editor.cpp @@ -9590,6 +11036,19 @@ msgid "Debug keystore not configured in the Editor Settings nor in the preset." msgstr "" #: platform/android/export/export.cpp +msgid "Custom build requires a valid Android SDK path in Editor Settings." +msgstr "" + +#: platform/android/export/export.cpp +msgid "Invalid Android SDK path for custom build in Editor Settings." +msgstr "" + +#: platform/android/export/export.cpp +msgid "" +"Android project is not installed for compiling. Install from Editor menu." +msgstr "" + +#: platform/android/export/export.cpp msgid "Invalid public key for APK expansion." msgstr "" @@ -9598,6 +11057,34 @@ msgstr "" msgid "Invalid package name:" msgstr "Nesprávna veľkosÅ¥ pÃsma." +#: platform/android/export/export.cpp +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 "" +"Android build version mismatch:\n" +" Template installed: %s\n" +" Godot Version: %s\n" +"Please reinstall Android build template from 'Project' menu." +msgstr "" + +#: platform/android/export/export.cpp +msgid "Building Android Project (gradle)" +msgstr "" + +#: 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 "" + +#: platform/android/export/export.cpp +msgid "No build apk generated at: " +msgstr "" + #: platform/iphone/export/export.cpp msgid "Identifier is missing." msgstr "" @@ -9862,27 +11349,27 @@ msgid "ARVRCamera must have an ARVROrigin node as its parent" msgstr "" #: scene/3d/arvr_nodes.cpp -msgid "ARVRController must have an ARVROrigin node as its parent" +msgid "ARVRController must have an ARVROrigin node as its parent." msgstr "" #: scene/3d/arvr_nodes.cpp msgid "" -"The controller id must not be 0 or this controller will not be bound to an " -"actual controller" +"The controller ID must not be 0 or this controller won't be bound to an " +"actual controller." msgstr "" #: scene/3d/arvr_nodes.cpp -msgid "ARVRAnchor must have an ARVROrigin node as its parent" +msgid "ARVRAnchor must have an ARVROrigin node as its parent." msgstr "" #: scene/3d/arvr_nodes.cpp msgid "" -"The anchor id must not be 0 or this anchor will not be bound to an actual " -"anchor" +"The anchor ID must not be 0 or this anchor won't be bound to an actual " +"anchor." msgstr "" #: scene/3d/arvr_nodes.cpp -msgid "ARVROrigin requires an ARVRCamera child node" +msgid "ARVROrigin requires an ARVRCamera child node." msgstr "" #: scene/3d/baked_lightmap.cpp @@ -9952,8 +11439,8 @@ msgstr "" #: scene/3d/cpu_particles.cpp msgid "" -"CPUParticles animation requires the usage of a SpatialMaterial with " -"\"Billboard Particles\" enabled." +"CPUParticles animation requires the usage of a SpatialMaterial whose " +"Billboard Mode is set to \"Particle Billboard\"." msgstr "" #: scene/3d/gi_probe.cpp @@ -9990,8 +11477,8 @@ msgstr "" #: scene/3d/particles.cpp msgid "" -"Particles animation requires the usage of a SpatialMaterial with \"Billboard " -"Particles\" enabled." +"Particles animation requires the usage of a SpatialMaterial whose Billboard " +"Mode is set to \"Particle Billboard\"." msgstr "" #: scene/3d/path.cpp @@ -10016,7 +11503,7 @@ msgid "Path property must point to a valid Spatial node to work." msgstr "" #: scene/3d/soft_body.cpp -msgid "This body will be ignored until you set a mesh" +msgid "This body will be ignored until you set a mesh." msgstr "" #: scene/3d/soft_body.cpp @@ -10114,7 +11601,7 @@ msgstr "" msgid "" "Container by itself serves no purpose unless a script configures it's " "children placement behavior.\n" -"If you dont't intend to add a script, then please use a plain 'Control' node " +"If you don't intend to add a script, then please use a plain 'Control' node " "instead." msgstr "" @@ -10126,11 +11613,6 @@ msgstr "" msgid "Please Confirm..." msgstr "" -#: scene/gui/file_dialog.cpp -#, fuzzy -msgid "Go to parent folder." -msgstr "VytvoriÅ¥ adresár" - #: scene/gui/popup.cpp msgid "" "Popups will hide by default unless you call popup() or any of the popup*() " @@ -10204,6 +11686,35 @@ msgstr "" msgid "Varyings can only be assigned in vertex function." msgstr "" +#: servers/visual/shader_language.cpp +msgid "Constants cannot be modified." +msgstr "" + +#~ msgid "Path to Node:" +#~ msgstr "Cesta k Node:" + +#~ msgid "Delete selected files?" +#~ msgstr "OdstrániÅ¥ vybraté súbory?" + +#~ msgid "There is no 'res://default_bus_layout.tres' file." +#~ msgstr "Neexistuje žiadny súbor \"res://default_bus_layout.tres\"." + +#, fuzzy +#~ msgid "Ease in" +#~ msgstr "VÅ¡etky vybrané" + +#, fuzzy +#~ msgid "Create folder" +#~ msgstr "VytvoriÅ¥ adresár" + +#, fuzzy +#~ msgid "Custom Node" +#~ msgstr "VložiÅ¥" + +#, fuzzy +#~ msgid "Create Area" +#~ msgstr "VytvoriÅ¥ adresár" + #, fuzzy #~ msgid "Add Split" #~ msgstr "Signály:" @@ -10223,9 +11734,6 @@ msgstr "" #~ msgid "Show current scene file." #~ msgstr "VytvoriÅ¥ adresár" -#~ msgid "Disabled" -#~ msgstr "Vypnuté" - #~ msgid "Set Transitions to:" #~ msgstr "NastaviÅ¥ prechody na:" diff --git a/editor/translations/sl.po b/editor/translations/sl.po index 23d7e5ebee..1e5ca2be9c 100644 --- a/editor/translations/sl.po +++ b/editor/translations/sl.po @@ -8,12 +8,13 @@ # Simon Å ander <simon.sand3r@gmail.com>, 2017. # Yahara Octanis <yaharao55@gmail.com>, 2018. # Tine Jozelj <tine@tjo.space>, 2018. +# Andrej Poženel <andrej.pozenel@outlook.com>, 2019. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2018-12-13 14:43+0100\n" -"Last-Translator: Tine Jozelj <tine@tjo.space>\n" +"PO-Revision-Date: 2019-05-16 18:49+0000\n" +"Last-Translator: Andrej Poženel <andrej.pozenel@outlook.com>\n" "Language-Team: Slovenian <https://hosted.weblate.org/projects/godot-engine/" "godot/sl/>\n" "Language: sl\n" @@ -22,26 +23,27 @@ 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: Poedit 2.2\n" +"X-Generator: Weblate 3.7-dev\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 "Neveljavena vrsta argumenta za convert(), uporabite TYPE_* konstanto." +msgstr "Neveljavna vrsta argumenta za convert(), uporabite TYPE_* konstanto." #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: 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 neveljaven format." +msgstr "" +"Ni dovolj pomnilnika za dekodiranje bajtov, ali pa je neveljaven format." #: core/math/expression.cpp msgid "Invalid input %i (not passed) in expression" -msgstr "" +msgstr "NapaÄen vnos %i(ni podan) v izrazu" #: core/math/expression.cpp msgid "self can't be used because instance is null (not passed)" -msgstr "self nemore biti uporabljen, ker instanca ni null (ni podano)" +msgstr "self ne more biti uporabljen, ker instanca ni null (ni podano)" #: core/math/expression.cpp #, fuzzy @@ -78,6 +80,15 @@ msgstr "Uravnoteženo" msgid "Mirror" msgstr "Zrcali" +#: editor/animation_bezier_editor.cpp editor/editor_profiler.cpp +msgid "Time:" +msgstr "ÄŒas:" + +#: editor/animation_bezier_editor.cpp +#, fuzzy +msgid "Value:" +msgstr "Novo ime:" + #: editor/animation_bezier_editor.cpp msgid "Insert Key Here" msgstr "Vstavi KljuÄ Tukaj" @@ -166,16 +177,21 @@ msgstr "Ustavi predvajanje animacije. (S)" #: editor/animation_track_editor.cpp #, fuzzy -msgid "Add Track" -msgstr "Animacija Dodaj sled" +msgid "Animation length (frames)" +msgstr "Dolžina animacije (v sekundah)." #: editor/animation_track_editor.cpp #, fuzzy -msgid "Animation Length Time (seconds)" +msgid "Animation length (seconds)" msgstr "Dolžina animacije (v sekundah)." #: editor/animation_track_editor.cpp #, fuzzy +msgid "Add Track" +msgstr "Animacija Dodaj sled" + +#: editor/animation_track_editor.cpp +#, fuzzy msgid "Animation Looping" msgstr "Približaj animacijo." @@ -310,11 +326,13 @@ msgid "Create %d NEW tracks and insert keys?" msgstr "Ustvarim %d NOVO sled in vstavim kljuÄe?" #: editor/animation_track_editor.cpp editor/create_dialog.cpp -#: editor/editor_audio_buses.cpp editor/editor_plugin_settings.cpp -#: editor/plugin_config_dialog.cpp +#: editor/editor_audio_buses.cpp editor/editor_feature_profile.cpp +#: editor/editor_plugin_settings.cpp editor/plugin_config_dialog.cpp #: editor/plugins/abstract_polygon_2d_editor.cpp #: editor/plugins/mesh_instance_editor_plugin.cpp -#: editor/plugins/particles_editor_plugin.cpp editor/script_create_dialog.cpp +#: editor/plugins/particles_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_create_dialog.cpp msgid "Create" msgstr "Ustvari" @@ -432,6 +450,23 @@ msgid "" msgstr "" #: editor/animation_track_editor.cpp +msgid "" +"This animation belongs to an imported scene, so changes to imported tracks " +"will not be saved.\n" +"\n" +"To enable the ability to add custom tracks, navigate to the scene's import " +"settings and set\n" +"\"Animation > Storage\" to \"Files\", enable \"Animation > Keep Custom Tracks" +"\", then re-import.\n" +"Alternatively, use an import preset that imports animations to separate " +"files." +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Warning: Editing imported animation" +msgstr "" + +#: editor/animation_track_editor.cpp msgid "Only show tracks from nodes selected in tree." msgstr "" @@ -571,7 +606,8 @@ msgstr "Razmerje Obsega:" msgid "Select tracks to copy:" msgstr "" -#: editor/animation_track_editor.cpp editor/editor_properties.cpp +#: editor/animation_track_editor.cpp editor/editor_log.cpp +#: editor/editor_properties.cpp #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp @@ -640,6 +676,11 @@ msgstr "Zamenjaj Vse" msgid "Selection Only" msgstr "Samo Izbira" +#: editor/code_editor.cpp editor/plugins/script_text_editor.cpp +#: editor/plugins/text_editor.cpp +msgid "Standard" +msgstr "" + #: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/texture_region_editor_plugin.cpp #: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp @@ -665,21 +706,38 @@ msgid "Line and column numbers." msgstr "" #: editor/connections_dialog.cpp -msgid "Method in target Node must be specified!" +#, fuzzy +msgid "Method in target node must be specified." msgstr "Metoda v ciljnem gradniku mora biti navedena!" #: editor/connections_dialog.cpp +#, fuzzy msgid "" -"Target method not found! Specify a valid method or attach a script to target " -"Node." +"Target method not found. Specify a valid method or attach a script to the " +"target node." msgstr "" "Ciljna metoda ni bila najdena! Navedite veljavno metodo ali priložite " "skripto, ki cilja na Gradnik." #: editor/connections_dialog.cpp -msgid "Connect To Node:" +#, fuzzy +msgid "Connect to Node:" msgstr "Poveži se z Gradnikom:" +#: editor/connections_dialog.cpp +#, fuzzy +msgid "Connect to Script:" +msgstr "NemogoÄe se je povezati z gostiteljem:" + +#: editor/connections_dialog.cpp +#, fuzzy +msgid "From Signal:" +msgstr "Signali:" + +#: editor/connections_dialog.cpp +msgid "Scene does not contain any script." +msgstr "" + #: editor/connections_dialog.cpp editor/editor_autoload_settings.cpp #: editor/groups_editor.cpp editor/plugins/item_list_editor_plugin.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_settings_editor.cpp @@ -687,10 +745,12 @@ msgid "Add" msgstr "Dodaj" #: editor/connections_dialog.cpp editor/dependency_editor.cpp -#: editor/groups_editor.cpp editor/plugins/animation_player_editor_plugin.cpp +#: editor/editor_feature_profile.cpp editor/groups_editor.cpp +#: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp #: editor/plugins/resource_preloader_editor_plugin.cpp -#: editor/plugins/theme_editor_plugin.cpp editor/project_manager.cpp +#: editor/plugins/theme_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_manager.cpp #: editor/project_settings_editor.cpp msgid "Remove" msgstr "Odstrani" @@ -704,21 +764,32 @@ msgid "Extra Call Arguments:" msgstr "Dodatni Klicni Argumenti:" #: editor/connections_dialog.cpp -msgid "Path to Node:" -msgstr "Pot do Gradnika:" - -#: editor/connections_dialog.cpp -msgid "Make Function" -msgstr "Naredi Funkcijo" +#, fuzzy +msgid "Advanced" +msgstr "Možnosti pripenjanja" #: editor/connections_dialog.cpp msgid "Deferred" msgstr "Odloženo" #: editor/connections_dialog.cpp +msgid "" +"Defers the signal, storing it in a queue and only firing it at idle time." +msgstr "" + +#: editor/connections_dialog.cpp msgid "Oneshot" msgstr "En Poizkus" +#: editor/connections_dialog.cpp +msgid "Disconnects the signal after its first emission." +msgstr "" + +#: editor/connections_dialog.cpp +#, fuzzy +msgid "Cannot connect signal" +msgstr "Povezovanje Signala:" + #: editor/connections_dialog.cpp editor/dependency_editor.cpp #: editor/export_template_manager.cpp editor/groups_editor.cpp #: editor/plugins/animation_player_editor_plugin.cpp @@ -761,12 +832,12 @@ msgstr "Odklopi" #: editor/connections_dialog.cpp #, fuzzy -msgid "Connect Signal: " +msgid "Connect a Signal to a Method" msgstr "Povezovanje Signala:" #: editor/connections_dialog.cpp #, fuzzy -msgid "Edit Connection: " +msgid "Edit Connection:" msgstr "Napaka Pri Povezavi" #: editor/connections_dialog.cpp @@ -801,7 +872,6 @@ msgid "Change %s Type" msgstr "Spremeni Tip %s" #: editor/create_dialog.cpp editor/project_settings_editor.cpp -#: modules/visual_script/visual_script_editor.cpp msgid "Change" msgstr "Spremeni" @@ -832,7 +902,8 @@ msgid "Matches:" msgstr "Zadetki:" #: editor/create_dialog.cpp editor/plugin_config_dialog.cpp -#: editor/plugins/asset_library_editor_plugin.cpp editor/property_selector.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/property_selector.cpp #: modules/visual_script/visual_script_property_selector.cpp msgid "Description:" msgstr "Opis:" @@ -846,17 +917,19 @@ msgid "Dependencies For:" msgstr "Odvisnosti Za:" #: editor/dependency_editor.cpp +#, fuzzy msgid "" "Scene '%s' is currently being edited.\n" -"Changes will not take effect unless reloaded." +"Changes will only take effect when reloaded." msgstr "" "Scena '%s' je trenutno v urejanju.\n" "Spremembe bodo zaÄele veljati, ko bodo znova naložene." #: editor/dependency_editor.cpp +#, fuzzy msgid "" "Resource '%s' is in use.\n" -"Changes will take effect when reloaded." +"Changes will only take effect when reloaded." msgstr "" "Vir '%s' je v uporabi.\n" "Spremembe bodo zaÄele veljati, ko bodo znova naložene." @@ -952,21 +1025,14 @@ msgid "Permanently delete %d item(s)? (No undo!)" msgstr "Trajno izbriÅ¡em %d predmet(e)? (Brez vrnitve!)" #: editor/dependency_editor.cpp -msgid "Owns" -msgstr "Lastnik" - -#: editor/dependency_editor.cpp -msgid "Resources Without Explicit Ownership:" -msgstr "Viri Brez Izrecnega LastniÅ¡tva:" +#, fuzzy +msgid "Show Dependencies" +msgstr "Odvisnosti" #: editor/dependency_editor.cpp editor/editor_node.cpp msgid "Orphan Resource Explorer" msgstr "Raziskovalec Osamljenih Virov" -#: editor/dependency_editor.cpp -msgid "Delete selected files?" -msgstr "IzbriÅ¡em izbrane datoteke?" - #: editor/dependency_editor.cpp editor/editor_audio_buses.cpp #: editor/editor_file_dialog.cpp editor/editor_node.cpp #: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp @@ -975,6 +1041,14 @@ msgstr "IzbriÅ¡em izbrane datoteke?" msgid "Delete" msgstr "IzbriÅ¡i" +#: editor/dependency_editor.cpp +msgid "Owns" +msgstr "Lastnik" + +#: editor/dependency_editor.cpp +msgid "Resources Without Explicit Ownership:" +msgstr "Viri Brez Izrecnega LastniÅ¡tva:" + #: editor/dictionary_property_edit.cpp msgid "Change Dictionary Key" msgstr "Spremeni Slovarski KljuÄ" @@ -1089,7 +1163,7 @@ msgstr "Paket je UspeÅ¡no NameÅ¡Äen!" msgid "Success!" msgstr "Uspelo je!" -#: editor/editor_asset_installer.cpp +#: editor/editor_asset_installer.cpp editor/editor_node.cpp #: editor/plugins/asset_library_editor_plugin.cpp msgid "Install" msgstr "Namesti" @@ -1216,8 +1290,12 @@ msgid "Open Audio Bus Layout" msgstr "Odpri ZvoÄno Vodilo" #: editor/editor_audio_buses.cpp -msgid "There is no 'res://default_bus_layout.tres' file." -msgstr "Datoteka 'res://default_bus_layout.tres' ne obstaja." +msgid "There is no '%s' file." +msgstr "" + +#: editor/editor_audio_buses.cpp editor/plugins/canvas_item_editor_plugin.cpp +msgid "Layout" +msgstr "" #: editor/editor_audio_buses.cpp msgid "Invalid file, not an audio bus layout." @@ -1271,20 +1349,27 @@ msgid "Valid characters:" msgstr "Veljavni znaki:" #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing engine class name." +#, fuzzy +msgid "Must not collide with an existing engine class name." msgstr "Neveljavno ime. Ne sme se prekrivati z obstojeÄim imenom razreda." #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing buit-in type name." +#, fuzzy +msgid "Must not collide with an existing buit-in type name." msgstr "" "Neveljavno ime. Ne sme se prekrivati z obstojeÄim vgrajenim imenom tipa." #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing global constant name." +#, fuzzy +msgid "Must not collide with an existing global constant name." msgstr "" "Neveljavno ime. Ne sme se prekrivati z obstojeÄim imenom globalne konstante." #: editor/editor_autoload_settings.cpp +msgid "Keyword cannot be used as an autoload name." +msgstr "" + +#: editor/editor_autoload_settings.cpp msgid "Autoload '%s' already exists!" msgstr "SamodejnoNalaganje '%s' že obstaja!" @@ -1312,11 +1397,12 @@ msgstr "OmogoÄi" msgid "Rearrange Autoloads" msgstr "Preuredi SamodejnoNalaganje" -#: editor/editor_autoload_settings.cpp -msgid "Invalid Path." +#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp +#, fuzzy +msgid "Invalid path." msgstr "Neveljavna Pot." -#: editor/editor_autoload_settings.cpp +#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp msgid "File does not exist." msgstr "Datoteka ne obstaja." @@ -1367,7 +1453,8 @@ msgid "[unsaved]" msgstr "[neshranjeno]" #: editor/editor_dir_dialog.cpp -msgid "Please select a base directory first" +#, fuzzy +msgid "Please select a base directory first." msgstr "Najprej izberi osnovno mapo" #: editor/editor_dir_dialog.cpp @@ -1375,7 +1462,8 @@ msgid "Choose a Directory" msgstr "Izberi Mapo" #: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp -#: editor/filesystem_dock.cpp scene/gui/file_dialog.cpp +#: editor/filesystem_dock.cpp editor/project_manager.cpp +#: scene/gui/file_dialog.cpp msgid "Create Folder" msgstr "Ustvarite Mapo" @@ -1444,6 +1532,176 @@ msgstr "" msgid "Template file not found:" msgstr "Predloge ni mogoÄe najti:" +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "3D Editor" +msgstr "Urejevalnik" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Script Editor" +msgstr "Odpri Urejevalnik Skript" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Asset Library" +msgstr "Odpri Knjižnico Dodatkov" + +#: editor/editor_feature_profile.cpp +msgid "Scene Tree Editing" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Import Dock" +msgstr "Uvozi" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Node Dock" +msgstr "NaÄin Premika" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Filesystem Dock" +msgstr "DatoteÄniSistem" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Erase profile '%s'? (no undo)" +msgstr "Zamenjaj Vse" + +#: editor/editor_feature_profile.cpp +msgid "Profile must be a valid filename and must not contain '.'" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Profile with this name already exists." +msgstr "Datoteka ali mapa s tem imenom že obstaja." + +#: editor/editor_feature_profile.cpp +msgid "(Editor Disabled, Properties Disabled)" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "(Properties Disabled)" +msgstr "Lastnosti" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "(Editor Disabled)" +msgstr "Uredi Spremenljivko" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Class Options:" +msgstr "Opis:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enable Contextual Editor" +msgstr "Odpri naslednji Urejevalnik" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enabled Properties:" +msgstr "Lastnosti" + +#: editor/editor_feature_profile.cpp +msgid "Enabled Features:" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enabled Classes:" +msgstr "IÅ¡Äi Razrede" + +#: editor/editor_feature_profile.cpp +msgid "File '%s' format is invalid, import aborted." +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "" +"Profile '%s' already exists. Remote it first before importing, import " +"aborted." +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Error saving profile to path: '%s'." +msgstr "Napaka pri shranjevanju PloÅ¡ÄnegaNiza!" + +#: editor/editor_feature_profile.cpp +msgid "Unset" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Current Profile" +msgstr "Trenutna RazliÄica:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Make Current" +msgstr "Trenutno:" + +#: editor/editor_feature_profile.cpp +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "New" +msgstr "" + +#: editor/editor_feature_profile.cpp editor/editor_node.cpp +#: editor/plugins/asset_library_editor_plugin.cpp editor/project_manager.cpp +msgid "Import" +msgstr "Uvozi" + +#: editor/editor_feature_profile.cpp editor/editor_node.cpp +#: editor/project_export.cpp +msgid "Export" +msgstr "Izvozi" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Available Profiles" +msgstr "Na voljo Nodes:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enabled Classes" +msgstr "IÅ¡Äi Razrede" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Class Options" +msgstr "Opis" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "New profile name:" +msgstr "Novo ime:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Erase Profile" +msgstr "IzbriÅ¡i toÄke" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Import Profile(s)" +msgstr "%d veÄ datotek" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Export Profile" +msgstr "Izvozi Projekt" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Manage Editor Feature Profiles" +msgstr "Upravljaj Izvozne Predloge" + #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Select Current Folder" msgstr "Izberite Trenutno Mapo" @@ -1466,8 +1724,8 @@ msgstr "Kopiraj Pot" msgid "Open in File Manager" msgstr "Pokaži V Upravitelju Datotek" -#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp -#: editor/project_manager.cpp +#: editor/editor_file_dialog.cpp editor/editor_node.cpp +#: editor/filesystem_dock.cpp editor/project_manager.cpp #, fuzzy msgid "Show in File Manager" msgstr "Pokaži V Upravitelju Datotek" @@ -1527,7 +1785,7 @@ msgstr "Pojdi Naprej" msgid "Go Up" msgstr "Pojdi Navzgor" -#: editor/editor_file_dialog.cpp +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Toggle Hidden Files" msgstr "Preklopi na Skrite Datoteke" @@ -1561,8 +1819,9 @@ msgstr "PrejÅ¡nji zavihek" msgid "Next Folder" msgstr "Ustvarite Mapo" -#: editor/editor_file_dialog.cpp -msgid "Go to parent folder" +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp +#, fuzzy +msgid "Go to parent folder." msgstr "Pojdi v nadrejeno mapo" #: editor/editor_file_dialog.cpp @@ -1570,6 +1829,11 @@ msgstr "Pojdi v nadrejeno mapo" msgid "(Un)favorite current folder." msgstr "Mape ni mogoÄe ustvariti." +#: editor/editor_file_dialog.cpp +#, fuzzy +msgid "Toggle visibility of hidden files." +msgstr "Preklopi na Skrite Datoteke" + #: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp #, fuzzy msgid "View items as a grid of thumbnails." @@ -1586,6 +1850,7 @@ msgstr "Mape & Datoteke:" #: editor/editor_file_dialog.cpp editor/plugins/sprite_editor_plugin.cpp #: editor/plugins/style_box_editor_plugin.cpp +#: editor/plugins/theme_editor_plugin.cpp msgid "Preview:" msgstr "Predogled:" @@ -1602,6 +1867,12 @@ msgid "ScanSources" msgstr "BranjeVirov" #: editor/editor_file_system.cpp +msgid "" +"There are multiple importers for different types pointing to file %s, import " +"aborted" +msgstr "" + +#: editor/editor_file_system.cpp msgid "(Re)Importing Assets" msgstr "Uvoz Dodatkov" @@ -1801,6 +2072,11 @@ msgstr "" msgid "Output:" msgstr "Izhod:" +#: editor/editor_log.cpp editor/plugins/tile_map_editor_plugin.cpp +#, fuzzy +msgid "Copy Selection" +msgstr "Odstrani izbrano" + #: editor/editor_log.cpp editor/editor_profiler.cpp #: editor/editor_properties.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp @@ -1950,9 +2226,10 @@ msgstr "" "Za boljÅ¡e razumevanje preberi dokumentacijo namenjeno za uvažanje scen." #: editor/editor_node.cpp +#, fuzzy msgid "" "This resource belongs to a scene that was instanced or inherited.\n" -"Changes to it will not be kept when saving the current scene." +"Changes to it won't be kept when saving the current scene." msgstr "" "Ta vir pripada sceni, ki je dedovana ali je primer druge.\n" "Pri shranjevanju trenutne scene se spremembe ne bodo ohranile." @@ -1966,8 +2243,9 @@ msgstr "" "nastavitve na ploÅ¡Äi za uvoz in nato znova uvozite." #: editor/editor_node.cpp +#, fuzzy msgid "" -"This scene was imported, so changes to it will not be kept.\n" +"This scene was imported, so changes to it won't be kept.\n" "Instancing it or inheriting will allow making changes to it.\n" "Please read the documentation relevant to importing scenes to better " "understand this workflow." @@ -1977,8 +2255,9 @@ msgstr "" "Za boljÅ¡e razumevanje preberi dokumentacijo namenjeno za uvažanje scen." #: editor/editor_node.cpp +#, fuzzy msgid "" -"This is a remote object so changes to it will not be kept.\n" +"This is a remote object, so changes to it won't be kept.\n" "Please read the documentation relevant to debugging to better understand " "this workflow." msgstr "" @@ -1990,36 +2269,6 @@ msgid "There is no defined scene to run." msgstr "Ni doloÄene scene za zagon." #: editor/editor_node.cpp -msgid "" -"No main scene has ever been defined, select one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" -"Glavna scena ni bila doloÄena, izberem eno?\n" -"Kasneje jo lahko spremeniÅ¡ v \"Nastavitve Projekta\" pod kategorijo " -"'aplikacija'." - -#: editor/editor_node.cpp -msgid "" -"Selected scene '%s' does not exist, select a valid one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" -"Izbrana scena '%s' ne obstaja, izberem veljavno?\n" -"Kasneje jo lahko spremeniÅ¡ v \"Nastavitve Projekta\" pod kategorijo " -"'aplikacija'." - -#: editor/editor_node.cpp -msgid "" -"Selected scene '%s' is not a scene file, select a valid one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" -"Izbrana scena '%s' ni datoteka scene, izberem veljavno?\n" -"Kasneje jo lahko spremeniÅ¡ v \"Nastavitve Projekta\" pod kategorijo " -"'aplikacija'." - -#: editor/editor_node.cpp msgid "Current scene was never saved, please save it prior to running." msgstr "Trenutna scena ni bila shranjena, shranite jo pred zagonom." @@ -2027,7 +2276,7 @@ msgstr "Trenutna scena ni bila shranjena, shranite jo pred zagonom." msgid "Could not start subprocess!" msgstr "Nemorem zaÄeti podprocesa!" -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/filesystem_dock.cpp msgid "Open Scene" msgstr "Odpri Sceno" @@ -2036,6 +2285,11 @@ msgid "Open Base Scene" msgstr "Odpri Osnovno Sceno" #: editor/editor_node.cpp +#, fuzzy +msgid "Quick Open..." +msgstr "Hitro Odpri Sceno..." + +#: editor/editor_node.cpp msgid "Quick Open Scene..." msgstr "Hitro Odpri Sceno..." @@ -2213,6 +2467,36 @@ msgid "Clear Recent Scenes" msgstr "PoÄisti Nedavne Prizore" #: editor/editor_node.cpp +msgid "" +"No main scene has ever been defined, select one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" +"Glavna scena ni bila doloÄena, izberem eno?\n" +"Kasneje jo lahko spremeniÅ¡ v \"Nastavitve Projekta\" pod kategorijo " +"'aplikacija'." + +#: editor/editor_node.cpp +msgid "" +"Selected scene '%s' does not exist, select a valid one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" +"Izbrana scena '%s' ne obstaja, izberem veljavno?\n" +"Kasneje jo lahko spremeniÅ¡ v \"Nastavitve Projekta\" pod kategorijo " +"'aplikacija'." + +#: editor/editor_node.cpp +msgid "" +"Selected scene '%s' is not a scene file, select a valid one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" +"Izbrana scena '%s' ni datoteka scene, izberem veljavno?\n" +"Kasneje jo lahko spremeniÅ¡ v \"Nastavitve Projekta\" pod kategorijo " +"'aplikacija'." + +#: editor/editor_node.cpp msgid "Save Layout" msgstr "Shrani Postavitev" @@ -2241,6 +2525,19 @@ msgstr "Zaženi Prizor" msgid "Close Tab" msgstr "Zapri" +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +msgid "Close Other Tabs" +msgstr "" + +#: editor/editor_node.cpp +msgid "Close Tabs to the Right" +msgstr "" + +#: editor/editor_node.cpp +#, fuzzy +msgid "Close All Tabs" +msgstr "Zapri Vse" + #: editor/editor_node.cpp msgid "Switch Scene Tab" msgstr "Preklopi na zavihek Prizor" @@ -2364,10 +2661,6 @@ msgstr "Projekt" msgid "Project Settings" msgstr "Nastavitve Projekta" -#: editor/editor_node.cpp editor/project_export.cpp -msgid "Export" -msgstr "Izvozi" - #: editor/editor_node.cpp editor/plugins/tile_set_editor_plugin.cpp msgid "Tools" msgstr "Orodja" @@ -2378,6 +2671,10 @@ msgid "Open Project Data Folder" msgstr "Odprem Upravljalnik Projekta?" #: editor/editor_node.cpp +msgid "Install Android Build Template" +msgstr "" + +#: editor/editor_node.cpp msgid "Quit to Project List" msgstr "Zapri na Seznam Projektov" @@ -2501,6 +2798,11 @@ msgstr "" msgid "Open Editor Settings Folder" msgstr "Nastavitve Urejevalnika" +#: editor/editor_node.cpp +#, fuzzy +msgid "Manage Editor Features" +msgstr "Upravljaj Izvozne Predloge" + #: editor/editor_node.cpp editor/project_export.cpp msgid "Manage Export Templates" msgstr "Upravljaj Izvozne Predloge" @@ -2513,6 +2815,7 @@ msgstr "PomoÄ" #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp #: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp #: editor/project_settings_editor.cpp editor/rename_dialog.cpp msgid "Search" msgstr "Iskanje" @@ -2604,11 +2907,6 @@ msgstr "Posodobi Spremembe" msgid "Disable Update Spinner" msgstr "OnemogoÄi Posodobitve Kolesca" -#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp -#: editor/project_manager.cpp -msgid "Import" -msgstr "Uvozi" - #: editor/editor_node.cpp msgid "FileSystem" msgstr "DatoteÄniSistem" @@ -2635,6 +2933,28 @@ msgid "Don't Save" msgstr "Ne Shrani" #: editor/editor_node.cpp +msgid "Android build template is missing, please install relevant templates." +msgstr "" + +#: editor/editor_node.cpp +#, fuzzy +msgid "Manage Templates" +msgstr "Upravljaj Izvozne Predloge" + +#: editor/editor_node.cpp +msgid "" +"This will install the Android project for custom builds.\n" +"Note that, in order to use it, it needs to be enabled per export preset." +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"Android build template is already installed and it won't be overwritten.\n" +"Remove the \"build\" directory manually before attempting this operation " +"again." +msgstr "" + +#: editor/editor_node.cpp msgid "Import Templates From ZIP File" msgstr "Uvozi Predloge iz ZIP Datoteke" @@ -2760,10 +3080,6 @@ msgid "Physics Frame %" msgstr "Fizikalni Okvir %" #: editor/editor_profiler.cpp -msgid "Time:" -msgstr "ÄŒas:" - -#: editor/editor_profiler.cpp msgid "Inclusive" msgstr "VkljuÄno" @@ -2902,10 +3218,6 @@ msgid "Remove Item" msgstr "" #: editor/editor_run_native.cpp -msgid "Select device from the list" -msgstr "Izberite napravo s seznama" - -#: editor/editor_run_native.cpp msgid "" "No runnable export preset found for this platform.\n" "Please add a runnable preset in the export menu." @@ -2941,6 +3253,10 @@ msgstr "Ali si pozabil metodo '_run' ?" msgid "Select Node(s) to Import" msgstr "Izberi Gradnik(e) za Uvoz" +#: editor/editor_sub_scene.cpp editor/project_manager.cpp +msgid "Browse" +msgstr "Brskaj" + #: editor/editor_sub_scene.cpp msgid "Scene Path:" msgstr "Pot Prizora:" @@ -3106,6 +3422,11 @@ msgid "SSL Handshake Error" msgstr "Napaka Pri Usklanjevanju SSH" #: editor/export_template_manager.cpp +#, fuzzy +msgid "Uncompressing Android Build Sources" +msgstr "RazÅ¡irjenje Dodatkov" + +#: editor/export_template_manager.cpp msgid "Current Version:" msgstr "Trenutna RazliÄica:" @@ -3122,7 +3443,8 @@ msgid "Remove Template" msgstr "Odstrani Predlogo" #: editor/export_template_manager.cpp -msgid "Select template file" +#, fuzzy +msgid "Select Template File" msgstr "Izberi datoteko predloge" #: editor/export_template_manager.cpp @@ -3185,7 +3507,8 @@ msgid "No name provided." msgstr "Ime ni doloÄeno." #: editor/filesystem_dock.cpp -msgid "Provided name contains invalid characters" +#, fuzzy +msgid "Provided name contains invalid characters." msgstr "VneÅ¡eno ime vsebuje neveljavne znake" #: editor/filesystem_dock.cpp @@ -3213,8 +3536,14 @@ msgid "Duplicating folder:" msgstr "Podvajanje mape:" #: editor/filesystem_dock.cpp -msgid "Open Scene(s)" -msgstr "Odpri Prizor(e)" +#, fuzzy +msgid "New Inherited Scene" +msgstr "Nov Podedovan Prizor..." + +#: editor/filesystem_dock.cpp +#, fuzzy +msgid "Open Scenes" +msgstr "Odpri Sceno" #: editor/filesystem_dock.cpp msgid "Instance" @@ -3222,12 +3551,12 @@ msgstr "Primer" #: editor/filesystem_dock.cpp #, fuzzy -msgid "Add to favorites" +msgid "Add to Favorites" msgstr "Priljubljene:" #: editor/filesystem_dock.cpp #, fuzzy -msgid "Remove from favorites" +msgid "Remove from Favorites" msgstr "Odstrani iz Skupine" #: editor/filesystem_dock.cpp @@ -3260,12 +3589,14 @@ msgstr "Hitro Odpri Skripto..." msgid "New Resource..." msgstr "Shrani Vire Kot..." -#: editor/filesystem_dock.cpp editor/script_editor_debugger.cpp +#: editor/filesystem_dock.cpp editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_editor_debugger.cpp #, fuzzy msgid "Expand All" msgstr "RazÅ¡iri vse" -#: editor/filesystem_dock.cpp editor/script_editor_debugger.cpp +#: editor/filesystem_dock.cpp editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_editor_debugger.cpp #, fuzzy msgid "Collapse All" msgstr "SkrÄi vse" @@ -3278,12 +3609,14 @@ msgid "Rename" msgstr "Preimenuj" #: editor/filesystem_dock.cpp -msgid "Previous Directory" -msgstr "PrejÅ¡na Mapa" +#, fuzzy +msgid "Previous Folder/File" +msgstr "PrejÅ¡nji zavihek" #: editor/filesystem_dock.cpp -msgid "Next Directory" -msgstr "Naslednja Mapa" +#, fuzzy +msgid "Next Folder/File" +msgstr "Ustvarite Mapo" #: editor/filesystem_dock.cpp msgid "Re-Scan Filesystem" @@ -3291,7 +3624,7 @@ msgstr "Ponovno Preglej DatoteÄni Sistem" #: editor/filesystem_dock.cpp #, fuzzy -msgid "Toggle split mode" +msgid "Toggle Split Mode" msgstr "Preklopi NaÄin" #: editor/filesystem_dock.cpp @@ -3324,7 +3657,7 @@ msgstr "" msgid "Create Script" msgstr "" -#: editor/find_in_files.cpp +#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp #, fuzzy msgid "Find in Files" msgstr "%d veÄ datotek" @@ -3344,6 +3677,12 @@ msgstr "Ustvarite Mapo" msgid "Filters:" msgstr "Filtri..." +#: editor/find_in_files.cpp +msgid "" +"Include the files with the following extensions. Add or remove them in " +"ProjectSettings." +msgstr "" + #: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp msgid "Find..." @@ -3810,7 +4149,7 @@ msgstr "Animacijski Gradnik" #: editor/plugins/animation_blend_space_2d_editor.cpp #, fuzzy -msgid "Triangle already exists" +msgid "Triangle already exists." msgstr "NAPAKA: Animacija s tem imenom že obstaja!" #: editor/plugins/animation_blend_space_2d_editor.cpp @@ -3894,7 +4233,6 @@ msgid "Node Moved" msgstr "NaÄin Premika" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Unable to connect, port may be in use or connection may be invalid." msgstr "" @@ -3970,8 +4308,9 @@ msgid "Edit Filtered Tracks:" msgstr "Uredi Filtre" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -msgid "Enable filtering" -msgstr "" +#, fuzzy +msgid "Enable Filtering" +msgstr "Spremeni Dolžino Animacije" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Toggle Autoplay" @@ -4090,10 +4429,6 @@ msgid "Animation" msgstr "Animacija" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "New" -msgstr "" - -#: editor/plugins/animation_player_editor_plugin.cpp #, fuzzy msgid "Edit Transitions..." msgstr "Prehodi" @@ -4112,14 +4447,15 @@ msgid "Autoplay on Load" msgstr "Samodejno predvajaj ob nalaganju" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Onion Skinning" -msgstr "Lupljenje ÄŒebule" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Enable Onion Skinning" msgstr "OmogoÄi Lupljenje ÄŒebule" #: editor/plugins/animation_player_editor_plugin.cpp +#, fuzzy +msgid "Onion Skinning Options" +msgstr "Lupljenje ÄŒebule" + +#: editor/plugins/animation_player_editor_plugin.cpp msgid "Directions" msgstr "Smeri" @@ -4683,13 +5019,19 @@ msgid "Move CanvasItem" msgstr "Uredi Platno Stvari" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"Children of containers have their anchors and margins values overridden by " +"their parent." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Presets for the anchors and margins values of a Control node." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "" -"Children of containers have their anchors and margins values overridden by " -"their parent." +"When active, moving Control nodes changes their anchors instead of their " +"margins." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4705,10 +5047,52 @@ msgid "Change Anchors" msgstr "Spremeni SidriÅ¡Äa" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Lock Selected" +msgstr "Izbira Orodja" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Unlock Selected" +msgstr "IzbriÅ¡i Izbrano" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Group Selected" +msgstr "Odstrani izbrano" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Ungroup Selected" +msgstr "Odstrani izbrano" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Paste Pose" msgstr "Prilepi Pozicijo" #: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Create Custom Bone(s) from Node(s)" +msgstr "Zaženi Prizor po Meri" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Clear Bones" +msgstr "Zaženi Prizor po Meri" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Make IK Chain" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Clear IK Chain" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "" "Warning: Children of a container get their position and size determined only " "by their parent." @@ -4788,7 +5172,8 @@ msgid "Snapping Options" msgstr "Možnosti pripenjanja" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to grid" +#, fuzzy +msgid "Snap to Grid" msgstr "Pripni na mrežo" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4809,32 +5194,38 @@ msgid "Use Pixel Snap" msgstr "Uporabi Pripenjanje Pikslov" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Smart snapping" +#, fuzzy +msgid "Smart Snapping" msgstr "Pametno pripenjanje" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to parent" +#, fuzzy +msgid "Snap to Parent" msgstr "Pripni na Predhodnika" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node anchor" +#, fuzzy +msgid "Snap to Node Anchor" msgstr "Pripni na gradnik vodilo" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node sides" +#, fuzzy +msgid "Snap to Node Sides" msgstr "Pripni na gradnik strani" #: editor/plugins/canvas_item_editor_plugin.cpp #, fuzzy -msgid "Snap to node center" +msgid "Snap to Node Center" msgstr "Pripni na gradnik vodilo" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to other nodes" +#, fuzzy +msgid "Snap to Other Nodes" msgstr "Pripni na druge gradnike" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to guides" +#, fuzzy +msgid "Snap to Guides" msgstr "Pripni na vodnike" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4848,10 +5239,12 @@ msgid "Unlock the selected object (can be moved)." msgstr "Odkleni izbrani predmet (lahko ga premaknete)." #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Makes sure the object's children are not selectable." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Restores the object's children's ability to be selected." msgstr "" @@ -4865,14 +5258,6 @@ msgid "Show Bones" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Make IK Chain" -msgstr "" - -#: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Clear IK Chain" -msgstr "" - -#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Make Custom Bone(s) from Node(s)" msgstr "" @@ -4924,7 +5309,7 @@ msgid "Frame Selection" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Layout" +msgid "Preview Canvas Scale" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4978,6 +5363,11 @@ msgid "Divide grid step by 2" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Pan View" +msgstr "Pogled" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Add %s" msgstr "" @@ -5000,8 +5390,9 @@ msgid "Error instancing scene from %s" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Change default type" -msgstr "" +#, fuzzy +msgid "Change Default Type" +msgstr "Spremeni Osnovni Tip" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "" @@ -5087,19 +5478,19 @@ msgid "Create Emission Points From Node" msgstr "" #: editor/plugins/curve_editor_plugin.cpp -msgid "Flat0" +msgid "Flat 0" msgstr "" #: editor/plugins/curve_editor_plugin.cpp -msgid "Flat1" +msgid "Flat 1" msgstr "" -#: editor/plugins/curve_editor_plugin.cpp -msgid "Ease in" +#: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp +msgid "Ease In" msgstr "" -#: editor/plugins/curve_editor_plugin.cpp -msgid "Ease out" +#: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp +msgid "Ease Out" msgstr "" #: editor/plugins/curve_editor_plugin.cpp @@ -5119,24 +5510,29 @@ msgid "Load Curve Preset" msgstr "" #: editor/plugins/curve_editor_plugin.cpp -msgid "Add point" +#, fuzzy +msgid "Add Point" msgstr "Dodaj toÄko" #: editor/plugins/curve_editor_plugin.cpp -msgid "Remove point" +#, fuzzy +msgid "Remove Point" msgstr "Odstrani toÄko" #: editor/plugins/curve_editor_plugin.cpp -msgid "Left linear" -msgstr "" +#, fuzzy +msgid "Left Linear" +msgstr "Linearno" #: editor/plugins/curve_editor_plugin.cpp -msgid "Right linear" -msgstr "" +#, fuzzy +msgid "Right Linear" +msgstr "Linearno" #: editor/plugins/curve_editor_plugin.cpp -msgid "Load preset" -msgstr "" +#, fuzzy +msgid "Load Preset" +msgstr "Napake pri Nalaganju" #: editor/plugins/curve_editor_plugin.cpp msgid "Remove Curve Point" @@ -5191,14 +5587,19 @@ msgid "This doesn't work on scene root!" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Trimesh Shape" +msgid "Create Trimesh Static Shape" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Shape" +msgid "Failed creating shapes!" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp +#, fuzzy +msgid "Create Convex Shape(s)" +msgstr "Ustvari Nov %s" + +#: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Navigation Mesh" msgstr "" @@ -5248,16 +5649,13 @@ msgid "Create Trimesh Static Body" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Static Body" -msgstr "" - -#: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Trimesh Collision Sibling" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Collision Sibling" -msgstr "" +#, fuzzy +msgid "Create Convex Collision Sibling(s)" +msgstr "Ustvarite Poligon" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Outline Mesh..." @@ -5410,20 +5808,20 @@ msgid "Create Navigation Polygon" msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp -msgid "Generating Visibility Rect" +#: editor/plugins/particles_editor_plugin.cpp +msgid "Convert to CPUParticles" msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp -msgid "Generate Visibility Rect" +msgid "Generating Visibility Rect" msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp -msgid "Can only set point into a ParticlesMaterial process material" +msgid "Generate Visibility Rect" msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp -#: editor/plugins/particles_editor_plugin.cpp -msgid "Convert to CPUParticles" +msgid "Can only set point into a ParticlesMaterial process material" msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp @@ -5566,7 +5964,7 @@ msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp editor/plugins/theme_editor_plugin.cpp -#: editor/project_export.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_export.cpp msgid "Options" msgstr "" @@ -5618,7 +6016,7 @@ msgstr "" #: editor/plugins/physical_bone_plugin.cpp #, fuzzy -msgid "Move joint" +msgid "Move Joint" msgstr "Odstrani toÄko" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5867,7 +6265,6 @@ msgid "Open in Editor" msgstr "" #: editor/plugins/resource_preloader_editor_plugin.cpp -#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Load Resource" msgstr "" @@ -5968,6 +6365,11 @@ msgid "%s Class Reference" msgstr "" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp +msgid "Find Next" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp msgid "Toggle alphabetical sorting of the method list." msgstr "" @@ -6051,10 +6453,6 @@ msgstr "" msgid "Close All" msgstr "Zapri Vse" -#: editor/plugins/script_editor_plugin.cpp -msgid "Close Other Tabs" -msgstr "" - #: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp msgid "Run" msgstr "Zaženi" @@ -6063,11 +6461,6 @@ msgstr "Zaženi" msgid "Toggle Scripts Panel" msgstr "" -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/script_text_editor.cpp -msgid "Find Next" -msgstr "" - #: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp msgid "Step Over" msgstr "" @@ -6095,15 +6488,16 @@ msgid "Debug with External Editor" msgstr "Odpri naslednji Urejevalnik" #: editor/plugins/script_editor_plugin.cpp -msgid "Open Godot online documentation" -msgstr "" +#, fuzzy +msgid "Open Godot online documentation." +msgstr "Odpri Nedavne" #: editor/plugins/script_editor_plugin.cpp msgid "Request Docs" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Help improve the Godot documentation by giving feedback" +msgid "Help improve the Godot documentation by giving feedback." msgstr "" #: editor/plugins/script_editor_plugin.cpp @@ -6129,10 +6523,12 @@ msgid "" msgstr "" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp msgid "Reload" msgstr "" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp msgid "Resave" msgstr "" @@ -6147,6 +6543,31 @@ msgstr "IÅ¡Äi PomoÄ" #: editor/plugins/script_text_editor.cpp #, fuzzy +msgid "Connections to method:" +msgstr "Poveži se z Gradnikom:" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Source" +msgstr "Viri" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Signal" +msgstr "Signali" + +#: editor/plugins/script_text_editor.cpp +msgid "Target" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "" +"Missing connected method '%s' for signal '%s' from node '%s' to node '%s'." +msgstr "Odklopite '%s' iz '%s'" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy msgid "Line" msgstr "Vrstica:" @@ -6159,10 +6580,6 @@ msgstr "" msgid "Go to Function" msgstr "Dodaj Funkcijo" -#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp -msgid "Standard" -msgstr "" - #: editor/plugins/script_text_editor.cpp msgid "Only resources from filesystem can be dropped." msgstr "" @@ -6195,6 +6612,11 @@ msgstr "" msgid "Syntax Highlighter" msgstr "" +#: editor/plugins/script_text_editor.cpp +#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp +msgid "Bookmarks" +msgstr "" + #: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" @@ -6222,6 +6644,26 @@ msgid "Toggle Comment" msgstr "" #: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Toggle Bookmark" +msgstr "Preklopi Svobodni Pregled" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Go to Next Bookmark" +msgstr "Pojdi na naslednji korak" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Go to Previous Bookmark" +msgstr "Preklopi na Zaustavitev" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Remove All Bookmarks" +msgstr "Odstrani Vse Stvari" + +#: editor/plugins/script_text_editor.cpp msgid "Fold/Unfold Line" msgstr "Pregibna/Nepregibna ÄŒrta" @@ -6300,6 +6742,12 @@ msgid "Contextual Help" msgstr "" #: editor/plugins/shader_editor_plugin.cpp +msgid "" +"This shader has been modified on on disk.\n" +"What action should be taken?" +msgstr "" + +#: editor/plugins/shader_editor_plugin.cpp msgid "Shader" msgstr "" @@ -6646,7 +7094,7 @@ msgid "Right View" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Switch Perspective/Orthogonal view" +msgid "Switch Perspective/Orthogonal View" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp @@ -6686,12 +7134,14 @@ msgid "Toggle Freelook" msgstr "Preklopi Svobodni Pregled" #: editor/plugins/spatial_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Transform" msgstr "Preoblikovanje" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Snap object to floor" -msgstr "" +#, fuzzy +msgid "Snap Object to Floor" +msgstr "Pripni na mrežo" #: editor/plugins/spatial_editor_plugin.cpp msgid "Transform Dialog..." @@ -6836,38 +7286,38 @@ msgid "Invalid geometry, can't replace by mesh." msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Invalid geometry, can't create polygon." -msgstr "" +#, fuzzy +msgid "Convert to Mesh2D" +msgstr "Pretvori V..." #: editor/plugins/sprite_editor_plugin.cpp -msgid "Invalid geometry, can't create collision polygon." +msgid "Invalid geometry, can't create polygon." msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Invalid geometry, can't create light occluder." -msgstr "" +#, fuzzy +msgid "Convert to Polygon2D" +msgstr "Odstrani Poligon in ToÄko" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Sprite" +msgid "Invalid geometry, can't create collision polygon." msgstr "" #: editor/plugins/sprite_editor_plugin.cpp #, fuzzy -msgid "Convert to Mesh2D" -msgstr "Pretvori V..." +msgid "Create CollisionPolygon2D Sibling" +msgstr "Ustvarite Poligon" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy -msgid "Convert to Polygon2D" -msgstr "Odstrani Poligon in ToÄko" +msgid "Invalid geometry, can't create light occluder." +msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy -msgid "Create CollisionPolygon2D Sibling" -msgstr "Ustvarite Poligon" +msgid "Create LightOccluder2D Sibling" +msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Create LightOccluder2D Sibling" +msgid "Sprite" msgstr "" #: editor/plugins/sprite_editor_plugin.cpp @@ -6889,7 +7339,12 @@ msgid "Settings:" msgstr "Nastavitve ZaskoÄenja" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "ERROR: Couldn't load frame resource!" +#, fuzzy +msgid "No Frames Selected" +msgstr "IzbriÅ¡i Izbrano" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Add %d Frame(s)" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp @@ -6897,6 +7352,10 @@ msgid "Add Frame" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "ERROR: Couldn't load frame resource!" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Resource clipboard is empty or not a texture!" msgstr "" @@ -6940,6 +7399,15 @@ msgid "Animation Frames:" msgstr "Ime Animacije:" #: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Add a Texture from File" +msgstr "Dodaj Gradnik(e) iz Drevesa" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Add Frames from a Sprite Sheet" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Insert Empty (Before)" msgstr "" @@ -6956,6 +7424,27 @@ msgid "Move (After)" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Select Frames" +msgstr "Izberi NaÄin" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Horizontal:" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Vertical:" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Select/Clear All Frames" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Create Frames from Sprite Sheet" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "SpriteFrames" msgstr "" @@ -7020,13 +7509,14 @@ msgstr "" msgid "Remove All Items" msgstr "Odstrani Vse Stvari" -#: editor/plugins/theme_editor_plugin.cpp +#: editor/plugins/theme_editor_plugin.cpp editor/project_manager.cpp msgid "Remove All" msgstr "Odstrani Vse" #: editor/plugins/theme_editor_plugin.cpp -msgid "Edit theme..." -msgstr "" +#, fuzzy +msgid "Edit Theme" +msgstr "ÄŒlani" #: editor/plugins/theme_editor_plugin.cpp msgid "Theme editing menu." @@ -7053,18 +7543,25 @@ msgid "Create From Current Editor Theme" msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "CheckBox Radio1" -msgstr "" +#, fuzzy +msgid "Toggle Button" +msgstr "Preklop funkcije Samodejno Predvajanje" #: editor/plugins/theme_editor_plugin.cpp -msgid "CheckBox Radio2" -msgstr "" +#, fuzzy +msgid "Disabled Button" +msgstr "OnemogoÄen" #: editor/plugins/theme_editor_plugin.cpp msgid "Item" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Disabled Item" +msgstr "OnemogoÄen" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Check Item" msgstr "" @@ -7081,6 +7578,22 @@ msgid "Checked Radio Item" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +msgid "Named Sep." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Submenu" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Item 1" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Item 2" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Has" msgstr "" @@ -7089,8 +7602,9 @@ msgid "Many" msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "Has,Many,Options" -msgstr "" +#, fuzzy +msgid "Disabled LineEdit" +msgstr "OnemogoÄen" #: editor/plugins/theme_editor_plugin.cpp msgid "Tab 1" @@ -7105,6 +7619,19 @@ msgid "Tab 3" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Editable Item" +msgstr "Uredi Spremenljivko" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Subtree" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Has,Many,Options" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Data Type:" msgstr "" @@ -7138,6 +7665,7 @@ msgid "Fix Invalid Tiles" msgstr "Neveljavno ime." #: editor/plugins/tile_map_editor_plugin.cpp +#: modules/gridmap/grid_map_editor_plugin.cpp #, fuzzy msgid "Cut Selection" msgstr "PoÄisti izbrano" @@ -7180,39 +7708,49 @@ msgid "Mirror Y" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp +msgid "Disable Autotile" +msgstr "" + +#: editor/plugins/tile_map_editor_plugin.cpp +#, fuzzy +msgid "Enable Priority" +msgstr "Uredi Filtre" + +#: editor/plugins/tile_map_editor_plugin.cpp msgid "Paint Tile" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Pick Tile" +msgid "" +"Shift+RMB: Line Draw\n" +"Shift+Ctrl+RMB: Rectangle Paint" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy -msgid "Copy Selection" -msgstr "Odstrani izbrano" +msgid "Pick Tile" +msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp #, fuzzy -msgid "Rotate left" +msgid "Rotate Left" msgstr "NaÄin Vrtenja" #: editor/plugins/tile_map_editor_plugin.cpp #, fuzzy -msgid "Rotate right" +msgid "Rotate Right" msgstr "NaÄin Vrtenja" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Flip horizontally" +msgid "Flip Horizontally" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Flip vertically" +msgid "Flip Vertically" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp #, fuzzy -msgid "Clear transform" +msgid "Clear Transform" msgstr "Preoblikovanje" #: editor/plugins/tile_set_editor_plugin.cpp @@ -7251,6 +7789,46 @@ msgid "Select the previous shape, subtile, or Tile." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Region Mode" +msgstr "NaÄin Vrtenja" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Collision Mode" +msgstr "Animacijski Gradnik" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Occlusion Mode" +msgstr "Uredi Poligon" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Navigation Mode" +msgstr "Animacijski Gradnik" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Bitmask Mode" +msgstr "NaÄin Vrtenja" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Priority Mode" +msgstr "Izvozi Projekt" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Icon Mode" +msgstr "NaÄin PloÅ¡Äe" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Z Index Mode" +msgstr "NaÄin PloÅ¡Äe" + +#: editor/plugins/tile_set_editor_plugin.cpp msgid "Copy bitmask." msgstr "" @@ -7340,6 +7918,7 @@ msgstr "IzbriÅ¡i toÄke" msgid "" "LMB: Set bit on.\n" "RMB: Set bit off.\n" +"Shift+LMB: Set wildcard bit.\n" "Click on another Tile to edit it." msgstr "Izberi trenutno pod-ploÅ¡Äo v urejanju." @@ -7464,6 +8043,77 @@ msgid "TileSet" msgstr "Izvozi PloÅ¡Äno Zbirko" #: 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 +" +msgstr "Dodaj Vnos" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar" +msgstr "Prilagodi Velikost:" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector" +msgstr "Nadzornik" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Add input port" +msgstr "Dodaj Vnos" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add output port" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change input port type" +msgstr "Spremeni Tip %s" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Change output port type" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change input port name" +msgstr "Spremeni Ime Animacije:" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Change output port name" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Remove input port" +msgstr "Odstrani toÄko" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Remove output port" +msgstr "Odstrani toÄko" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Set expression" +msgstr "Trenutna RazliÄica:" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Resize VisualShader node" +msgstr "Odstrani Gradnik VizualnaSkripta" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Set Uniform Name" msgstr "" @@ -7503,6 +8153,851 @@ msgid "Light" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Create Shader Node" +msgstr "Ustvarite Mapo" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Color function." +msgstr "Dodaj Funkcijo" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Color operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Grayscale function." +msgstr "Naredi Funkcijo" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts HSV vector to RGB equivalent." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts RGB vector to HSV equivalent." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Sepia function." +msgstr "Preimenuj Funkcijo" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Burn operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Darken operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Difference operator." +msgstr "Samo Razlike" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Dodge operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "HardLight operator" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Lighten operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Overlay operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Screen operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "SoftLight operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Color constant." +msgstr "Konstanta" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Color uniform." +msgstr "Preoblikovanje" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns an associated vector if the provided scalars are equal, greater or " +"less." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns an associated vector if the provided boolean value is true or false." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'camera' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'inv_camera' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'inv_projection' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'normal' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'projection' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'time' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'viewport_size' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'world' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'texture_pixel_size' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Input parameter." +msgstr "Pripni na Predhodnika" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'binormal' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'fragcoord' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_coord' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_uv' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'side' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'tangent' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv2' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'vertex' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'view' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'albedo' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'attenuation' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'diffuse' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_color' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'roughness' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'specular' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'transmission' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'modelview' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_size' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'tangent' input parameter for vertex and fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_pass' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_coord' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_pixel_size' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_uv' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_alpha' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_height' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_uv' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_vec' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'normal' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'shadow_color' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'extra' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'projection' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'vertex' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'world' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'active' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'custom' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'custom_alpha' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'delta' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'emission_transform' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'index' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'lifetime' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'restart' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'time' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'transform' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'velocity' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar function." +msgstr "PoveÄaj izbiro" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Scalar operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "E constant (2.718282). Represents the base of the natural logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Epsilon constant (0.00001). Smallest possible scalar number." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Phi constant (1.618034). Golden ratio." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi/4 constant (0.785398) or 45 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi/2 constant (1.570796) or 90 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi constant (3.141593) or 180 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Tau constant (6.283185) or 360 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Sqrt2 constant (1.414214). Square root of 2." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the absolute value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-tangent of the parameters." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Finds the nearest integer that is greater than or equal to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Constrains a value to lie between two further values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts a quantity in radians to degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-e Exponential." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-2 Exponential." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Finds the nearest integer less than or equal to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Computes the fractional part of the argument." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the inverse of the square root of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Natural logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-2 logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the greater of two values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the lesser of two values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Linear interpolation between two scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the opposite value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 - scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns the value of the first parameter raised to the power of the second." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts a quantity in degrees to radians." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 / scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the nearest integer to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the nearest even integer to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Clamps the value between 0.0 and 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Extracts the sign of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the square root of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( scalar(edge0), scalar(edge1), scalar(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if x is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( scalar(edge), scalar(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the truncated value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Adds scalar to scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Divides scalar by scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies scalar by scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the remainder of the two scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Subtracts scalar from scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Scalar constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar uniform." +msgstr "Preoblikovanje" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Perform the cubic texture lookup." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Perform the texture lookup." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Cubic texture uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "2D texture uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Transform function." +msgstr "Preoblikovanje Dialoga..." + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) Calculate the outer product of a pair of vectors.\n" +"\n" +"OuterProduct treats the first parameter 'c' as a column vector (matrix with " +"one column) and the second parameter 'r' as a row vector (matrix with one " +"row) and does a linear algebraic matrix multiply 'c * r', yielding a matrix " +"whose number of rows is the number of components in 'c' and whose number of " +"columns is the number of components in 'r'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Composes transform from four vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Decomposes transform to four vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the determinant of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the inverse of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the transpose of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies transform by transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies vector by transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Transform constant." +msgstr "Preoblikovanje Sprememb" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Transform uniform." +msgstr "Preoblikovanje Dialoga..." + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector function." +msgstr "Odstrani Funkcijo" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Composes vector from three scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Decomposes vector to three scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the cross product of two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the distance between two points." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the dot product of two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns a vector that points in the same direction as a reference vector. " +"The function has three vector parameters : N, the vector to orient, I, the " +"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 "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the length of a vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Linear interpolation between two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the normalize product of vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 - vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 / vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns a vector that points in the direction of reflection ( a : incident " +"vector, b : normal vector )." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns a vector that points in the direction of refraction." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( vector(edge0), vector(edge1), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if 'x' is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( scalar(edge0), scalar(edge1), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if 'x' is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( vector(edge), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( scalar(edge), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Adds vector to vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Divides vector by vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies vector by vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the remainder of the two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Subtracts vector from vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Custom Godot Shader Language expression, with custom amount of input and " +"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 "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns falloff based on the dot product of surface normal and view " +"direction of camera (pass associated inputs to it)." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) (Fragment/Light mode only) Scalar derivative function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) (Fragment/Light mode only) Vector derivative function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Derivative in 'x' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Derivative in 'x' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Derivative in 'y' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Derivative in 'y' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Sum of absolute derivative " +"in 'x' and 'y'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Sum of absolute derivative " +"in 'x' and 'y'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "VisualShader" msgstr "" @@ -7699,6 +9194,10 @@ msgid "Directory already contains a Godot project." msgstr "" #: editor/project_manager.cpp +msgid "New Game Project" +msgstr "Novi Projekt Igre" + +#: editor/project_manager.cpp msgid "Imported Project" msgstr "" @@ -7745,10 +9244,6 @@ msgid "Rename Project" msgstr "Preimenuj Projekt" #: editor/project_manager.cpp -msgid "New Game Project" -msgstr "Novi Projekt Igre" - -#: editor/project_manager.cpp msgid "Import Existing Project" msgstr "Uvoz ObstojeÄega Projekta" @@ -7777,10 +9272,6 @@ msgid "Project Name:" msgstr "Ime Projekta:" #: editor/project_manager.cpp -msgid "Create folder" -msgstr "Ustvarite mapo" - -#: editor/project_manager.cpp msgid "Project Path:" msgstr "Pot Projekta:" @@ -7790,10 +9281,6 @@ msgid "Project Installation Path:" msgstr "Pot Projekta:" #: editor/project_manager.cpp -msgid "Browse" -msgstr "Brskaj" - -#: editor/project_manager.cpp msgid "Renderer:" msgstr "" @@ -7847,8 +9334,8 @@ msgid "" "\n" "If you proceed with opening it, it will be converted to Godot's current " "configuration file format.\n" -"Warning: You will not be able to open the project with previous versions of " -"the engine anymore." +"Warning: You won't be able to open the project with previous versions of the " +"engine anymore." msgstr "" #: editor/project_manager.cpp @@ -7859,8 +9346,8 @@ msgid "" "%s\n" "\n" "Do you want to convert it?\n" -"Warning: You will not be able to open the project with previous versions of " -"the engine anymore." +"Warning: You won't be able to open the project with previous versions of the " +"engine anymore." msgstr "" #: editor/project_manager.cpp @@ -7870,11 +9357,15 @@ msgid "" msgstr "" #: editor/project_manager.cpp +#, fuzzy msgid "" "Can't run project: no main scene defined.\n" -"Please edit the project and set the main scene in \"Project Settings\" under " +"Please edit the project and set the main scene in the Project Settings under " "the \"Application\" category." msgstr "" +"Glavna scena ni bila doloÄena, izberem eno?\n" +"Kasneje jo lahko spremeniÅ¡ v \"Nastavitve Projekta\" pod kategorijo " +"'aplikacija'." #: editor/project_manager.cpp msgid "" @@ -7883,23 +9374,37 @@ msgid "" msgstr "" #: editor/project_manager.cpp -msgid "Are you sure to run more than one project?" +msgid "Are you sure to run %d projects at once?" +msgstr "" + +#: editor/project_manager.cpp +msgid "" +"Remove %d projects from the list?\n" +"The project folders' contents won't be modified." +msgstr "" + +#: editor/project_manager.cpp +msgid "" +"Remove this project from the list?\n" +"The project folder's contents won't be modified." msgstr "" #: editor/project_manager.cpp -msgid "Remove project from the list? (Folder contents will not be modified)" +msgid "" +"Remove all missing projects from the list? (Folders contents will not be " +"modified)" msgstr "" #: editor/project_manager.cpp msgid "" "Language changed.\n" -"The UI will update next time the editor or project manager starts." +"The interface will update after restarting the editor or project manager." msgstr "" #: editor/project_manager.cpp msgid "" -"You are about the scan %s folders for existing Godot projects. Do you " -"confirm?" +"Are you sure to scan %s folders for existing Godot projects?\n" +"This could take a while." msgstr "" #: editor/project_manager.cpp @@ -7923,6 +9428,11 @@ msgid "New Project" msgstr "Nov Projekt" #: editor/project_manager.cpp +#, fuzzy +msgid "Remove Missing" +msgstr "Odstrani toÄko" + +#: editor/project_manager.cpp msgid "Templates" msgstr "Predloge" @@ -7939,9 +9449,10 @@ msgid "Can't run project" msgstr "" #: editor/project_manager.cpp +#, fuzzy msgid "" -"You don't currently have any projects.\n" -"Would you like to explore the official example projects in the Asset Library?" +"You currently don't have any projects.\n" +"Would you like to explore official example projects in the Asset Library?" msgstr "" "Trenutno nimate projektov.\n" "Želite raziskovati uradne primere projektov v Asset Library?" @@ -7969,8 +9480,9 @@ msgid "" msgstr "" #: editor/project_settings_editor.cpp -msgid "Action '%s' already exists!" -msgstr "" +#, fuzzy +msgid "An action with the name '%s' already exists." +msgstr "NAPAKA: Animacija s tem imenom že obstaja!" #: editor/project_settings_editor.cpp msgid "Rename Input Action Event" @@ -8124,10 +9636,6 @@ msgid "" msgstr "" #: editor/project_settings_editor.cpp -msgid "Already existing" -msgstr "" - -#: editor/project_settings_editor.cpp msgid "Add Input Action" msgstr "" @@ -8192,7 +9700,7 @@ msgid "Override For..." msgstr "" #: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp -msgid "Editor must be restarted for changes to take effect" +msgid "The editor must be restarted for changes to take effect." msgstr "" #: editor/project_settings_editor.cpp @@ -8253,12 +9761,13 @@ msgid "Locales Filter" msgstr "" #: editor/project_settings_editor.cpp -msgid "Show all locales" +msgid "Show All Locales" msgstr "" #: editor/project_settings_editor.cpp -msgid "Show only selected locales" -msgstr "" +#, fuzzy +msgid "Show Selected Locales Only" +msgstr "Samo Izbira" #: editor/project_settings_editor.cpp msgid "Filter mode:" @@ -8273,14 +9782,6 @@ msgid "AutoLoad" msgstr "" #: editor/property_editor.cpp -msgid "Ease In" -msgstr "" - -#: editor/property_editor.cpp -msgid "Ease Out" -msgstr "" - -#: editor/property_editor.cpp msgid "Zero" msgstr "" @@ -8355,7 +9856,7 @@ msgstr "" #: editor/rename_dialog.cpp #, fuzzy -msgid "Advanced options" +msgid "Advanced Options" msgstr "Možnosti pripenjanja" #: editor/rename_dialog.cpp @@ -8619,8 +10120,8 @@ msgstr "" #: editor/scene_tree_dock.cpp #, fuzzy -msgid "Custom Node" -msgstr "Gradnik Prehod" +msgid "Other Node" +msgstr "Izberi Gradnik" #: editor/scene_tree_dock.cpp msgid "Can't operate on nodes from a foreign scene!" @@ -8662,7 +10163,7 @@ msgstr "" #: editor/scene_tree_dock.cpp #, fuzzy -msgid "Open documentation" +msgid "Open Documentation" msgstr "Odpri Nedavne" #: editor/scene_tree_dock.cpp @@ -8691,7 +10192,7 @@ msgstr "" msgid "Save Branch as Scene" msgstr "" -#: editor/scene_tree_dock.cpp +#: editor/scene_tree_dock.cpp editor/script_editor_debugger.cpp msgid "Copy Node Path" msgstr "" @@ -8735,6 +10236,21 @@ msgid "Toggle Visible" msgstr "Preklopi na Skrite Datoteke" #: editor/scene_tree_editor.cpp +#, fuzzy +msgid "Unlock Node" +msgstr "Izberi Gradnik" + +#: editor/scene_tree_editor.cpp +#, fuzzy +msgid "Button Group" +msgstr "Dodaj v Skupino" + +#: editor/scene_tree_editor.cpp +#, fuzzy +msgid "(Connecting From)" +msgstr "Napaka Pri Povezavi" + +#: editor/scene_tree_editor.cpp msgid "Node configuration warning:" msgstr "" @@ -8756,9 +10272,9 @@ msgid "" "Click to show groups dock." msgstr "" -#: editor/scene_tree_editor.cpp editor/script_create_dialog.cpp +#: editor/scene_tree_editor.cpp #, fuzzy -msgid "Open Script" +msgid "Open Script:" msgstr "Zaženi Skripto" #: editor/scene_tree_editor.cpp @@ -8804,90 +10320,102 @@ msgid "Select a Node" msgstr "" #: editor/script_create_dialog.cpp -msgid "Error loading template '%s'" -msgstr "" - -#: editor/script_create_dialog.cpp -msgid "Error - Could not create script in filesystem." -msgstr "" +#, fuzzy +msgid "Path is empty." +msgstr "Model je prazen!" #: editor/script_create_dialog.cpp -msgid "Error loading script from %s" -msgstr "" +#, fuzzy +msgid "Filename is empty." +msgstr "Model je prazen!" #: editor/script_create_dialog.cpp -msgid "N/A" -msgstr "" +#, fuzzy +msgid "Path is not local." +msgstr "Pot ne vodi do vozliÅ¡Äa!" #: editor/script_create_dialog.cpp #, fuzzy -msgid "Open Script/Choose Location" -msgstr "Odpri Urejevalnik Skript" +msgid "Invalid base path." +msgstr "Neveljavna Pot." #: editor/script_create_dialog.cpp -msgid "Path is empty" -msgstr "" +#, fuzzy +msgid "A directory with the same name exists." +msgstr "Datoteka ali mapa s tem imenom že obstaja." #: editor/script_create_dialog.cpp #, fuzzy -msgid "Filename is empty" -msgstr "Model je prazen!" +msgid "Invalid extension." +msgstr "Uporabiti moraÅ¡ valjavno razÅ¡iritev." #: editor/script_create_dialog.cpp -msgid "Path is not local" +msgid "Wrong extension chosen." msgstr "" #: editor/script_create_dialog.cpp -msgid "Invalid base path" +msgid "Error loading template '%s'" msgstr "" #: editor/script_create_dialog.cpp -msgid "Directory of the same name exists" +msgid "Error - Could not create script in filesystem." msgstr "" #: editor/script_create_dialog.cpp -msgid "File exists, will be reused" +msgid "Error loading script from %s" msgstr "" #: editor/script_create_dialog.cpp -msgid "Invalid extension" +msgid "N/A" msgstr "" #: editor/script_create_dialog.cpp -msgid "Wrong extension chosen" -msgstr "" +#, fuzzy +msgid "Open Script / Choose Location" +msgstr "Odpri Urejevalnik Skript" #: editor/script_create_dialog.cpp -msgid "Invalid Path" -msgstr "Neveljavna Pot" +#, fuzzy +msgid "Open Script" +msgstr "Zaženi Skripto" #: editor/script_create_dialog.cpp -msgid "Invalid class name" +msgid "File exists, it will be reused." msgstr "" #: editor/script_create_dialog.cpp -msgid "Invalid inherited parent name or path" +#, fuzzy +msgid "Invalid class name." +msgstr "Neveljavno ime." + +#: editor/script_create_dialog.cpp +#, fuzzy +msgid "Invalid inherited parent name or path." msgstr "Neveljaveno prevzeto ime ali pot nadrejenega" #: editor/script_create_dialog.cpp -msgid "Script valid" -msgstr "" +#, fuzzy +msgid "Script is valid." +msgstr "Drevo animacije je veljavno." #: editor/script_create_dialog.cpp msgid "Allowed: a-z, A-Z, 0-9 and _" msgstr "" #: editor/script_create_dialog.cpp -msgid "Built-in script (into scene file)" -msgstr "" +#, fuzzy +msgid "Built-in script (into scene file)." +msgstr "Operacije z datotekami prizora." #: editor/script_create_dialog.cpp -msgid "Create new script file" -msgstr "" +#, fuzzy +msgid "Will create a new script file." +msgstr "Ustvari Nov %s" #: editor/script_create_dialog.cpp -msgid "Load existing script file" -msgstr "" +#, fuzzy +msgid "Will load an existing script file." +msgstr "Naloži obstojeÄo Postavitev Vodila." #: editor/script_create_dialog.cpp msgid "Language" @@ -9017,6 +10545,10 @@ msgstr "" msgid "Set From Tree" msgstr "" +#: editor/script_editor_debugger.cpp +msgid "Export measures as CSV" +msgstr "" + #: editor/settings_config_dialog.cpp msgid "Erase Shortcut" msgstr "" @@ -9150,6 +10682,15 @@ msgid "GDNativeLibrary" msgstr "" #: 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 "OnemogoÄi Posodobitve Kolesca" + +#: modules/gdnative/gdnative_library_singleton_editor.cpp msgid "Library" msgstr "" @@ -9237,8 +10778,9 @@ msgid "GridMap Fill Selection" msgstr "GridMap IzbriÅ¡i Izbor" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "GridMap Duplicate Selection" -msgstr "" +#, fuzzy +msgid "GridMap Paste Selection" +msgstr "GridMap IzbriÅ¡i Izbor" #: modules/gridmap/grid_map_editor_plugin.cpp msgid "GridMap Paint" @@ -9305,18 +10847,6 @@ msgid "Cursor Clear Rotation" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Create Area" -msgstr "" - -#: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Create Exterior Connector" -msgstr "" - -#: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Erase Area" -msgstr "" - -#: modules/gridmap/grid_map_editor_plugin.cpp msgid "Clear Selection" msgstr "PoÄisti izbrano" @@ -9679,18 +11209,11 @@ msgid "Available Nodes:" msgstr "Na voljo Nodes:" #: modules/visual_script/visual_script_editor.cpp -msgid "Select or create a function to edit graph" +#, fuzzy +msgid "Select or create a function to edit its graph." msgstr "Izberi ali ustvari funkcijo za urejanje grafa" #: modules/visual_script/visual_script_editor.cpp -msgid "Edit Signal Arguments:" -msgstr "Uredi Argumente Signala:" - -#: modules/visual_script/visual_script_editor.cpp -msgid "Edit Variable:" -msgstr "Uredi Spremenljivko:" - -#: modules/visual_script/visual_script_editor.cpp msgid "Delete Selected" msgstr "IzbriÅ¡i Izbrano" @@ -9821,6 +11344,19 @@ msgid "Debug keystore not configured in the Editor Settings nor in the preset." msgstr "" #: platform/android/export/export.cpp +msgid "Custom build requires a valid Android SDK path in Editor Settings." +msgstr "" + +#: platform/android/export/export.cpp +msgid "Invalid Android SDK path for custom build in Editor Settings." +msgstr "" + +#: platform/android/export/export.cpp +msgid "" +"Android project is not installed for compiling. Install from Editor menu." +msgstr "" + +#: platform/android/export/export.cpp msgid "Invalid public key for APK expansion." msgstr "" @@ -9829,6 +11365,34 @@ msgstr "" msgid "Invalid package name:" msgstr "Neveljavno ime." +#: platform/android/export/export.cpp +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 "" +"Android build version mismatch:\n" +" Template installed: %s\n" +" Godot Version: %s\n" +"Please reinstall Android build template from 'Project' menu." +msgstr "" + +#: platform/android/export/export.cpp +msgid "Building Android Project (gradle)" +msgstr "" + +#: 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 "" + +#: platform/android/export/export.cpp +msgid "No build apk generated at: " +msgstr "" + #: platform/iphone/export/export.cpp msgid "Identifier is missing." msgstr "" @@ -10099,27 +11663,27 @@ msgid "ARVRCamera must have an ARVROrigin node as its parent" msgstr "" #: scene/3d/arvr_nodes.cpp -msgid "ARVRController must have an ARVROrigin node as its parent" +msgid "ARVRController must have an ARVROrigin node as its parent." msgstr "" #: scene/3d/arvr_nodes.cpp msgid "" -"The controller id must not be 0 or this controller will not be bound to an " -"actual controller" +"The controller ID must not be 0 or this controller won't be bound to an " +"actual controller." msgstr "" #: scene/3d/arvr_nodes.cpp -msgid "ARVRAnchor must have an ARVROrigin node as its parent" +msgid "ARVRAnchor must have an ARVROrigin node as its parent." msgstr "" #: scene/3d/arvr_nodes.cpp msgid "" -"The anchor id must not be 0 or this anchor will not be bound to an actual " -"anchor" +"The anchor ID must not be 0 or this anchor won't be bound to an actual " +"anchor." msgstr "" #: scene/3d/arvr_nodes.cpp -msgid "ARVROrigin requires an ARVRCamera child node" +msgid "ARVROrigin requires an ARVRCamera child node." msgstr "" #: scene/3d/baked_lightmap.cpp @@ -10189,8 +11753,8 @@ msgstr "" #: scene/3d/cpu_particles.cpp msgid "" -"CPUParticles animation requires the usage of a SpatialMaterial with " -"\"Billboard Particles\" enabled." +"CPUParticles animation requires the usage of a SpatialMaterial whose " +"Billboard Mode is set to \"Particle Billboard\"." msgstr "" #: scene/3d/gi_probe.cpp @@ -10227,8 +11791,8 @@ msgstr "" #: scene/3d/particles.cpp msgid "" -"Particles animation requires the usage of a SpatialMaterial with \"Billboard " -"Particles\" enabled." +"Particles animation requires the usage of a SpatialMaterial whose Billboard " +"Mode is set to \"Particle Billboard\"." msgstr "" #: scene/3d/path.cpp @@ -10253,7 +11817,7 @@ msgid "Path property must point to a valid Spatial node to work." msgstr "" #: scene/3d/soft_body.cpp -msgid "This body will be ignored until you set a mesh" +msgid "This body will be ignored until you set a mesh." msgstr "" #: scene/3d/soft_body.cpp @@ -10357,7 +11921,7 @@ msgstr "Dodaj trenutno barvo kot prednastavljeno" msgid "" "Container by itself serves no purpose unless a script configures it's " "children placement behavior.\n" -"If you dont't intend to add a script, then please use a plain 'Control' node " +"If you don't intend to add a script, then please use a plain 'Control' node " "instead." msgstr "" @@ -10369,11 +11933,6 @@ msgstr "Opozorilo!" msgid "Please Confirm..." msgstr "Prosimo Potrdite..." -#: scene/gui/file_dialog.cpp -#, fuzzy -msgid "Go to parent folder." -msgstr "Pojdi v nadrejeno mapo" - #: scene/gui/popup.cpp msgid "" "Popups will hide by default unless you call popup() or any of the popup*() " @@ -10450,6 +12009,50 @@ msgstr "" msgid "Varyings can only be assigned in vertex function." msgstr "" +#: servers/visual/shader_language.cpp +msgid "Constants cannot be modified." +msgstr "" + +#~ msgid "Path to Node:" +#~ msgstr "Pot do Gradnika:" + +#~ msgid "Delete selected files?" +#~ msgstr "IzbriÅ¡em izbrane datoteke?" + +#~ msgid "There is no 'res://default_bus_layout.tres' file." +#~ msgstr "Datoteka 'res://default_bus_layout.tres' ne obstaja." + +#~ 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)" + +#~ msgid "Previous Directory" +#~ msgstr "PrejÅ¡na Mapa" + +#~ msgid "Next Directory" +#~ msgstr "Naslednja Mapa" + +#~ msgid "Create folder" +#~ msgstr "Ustvarite mapo" + +#, fuzzy +#~ msgid "Custom Node" +#~ msgstr "Gradnik Prehod" + +#~ msgid "Invalid Path" +#~ msgstr "Neveljavna Pot" + +#~ msgid "Edit Signal Arguments:" +#~ msgstr "Uredi Argumente Signala:" + +#~ msgid "Edit Variable:" +#~ msgstr "Uredi Spremenljivko:" + #~ msgid "Instance the selected scene(s) as child of the selected node." #~ msgstr "" #~ "Naredi primer iz izbranih prizorov, ki bo naslednik izbranega gradnika." @@ -10512,9 +12115,6 @@ msgstr "" #~ msgid "Class List:" #~ msgstr "Seznam Razredov:" -#~ msgid "Search Classes" -#~ msgstr "IÅ¡Äi Razrede" - #~ msgid "Public Methods" #~ msgstr "Javne Metode" @@ -10551,9 +12151,6 @@ msgstr "" #~ msgid "Search in files" #~ msgstr "IÅ¡Äi Razrede" -#~ msgid "Disabled" -#~ msgstr "OnemogoÄen" - #~ msgid "Move Anim Track Up" #~ msgstr "Premakni animacijsko sled gor" @@ -10677,9 +12274,6 @@ msgstr "" #~ msgid "Set pivot at mouse position" #~ msgstr "Nastavite toÄko na položaj miÅ¡ke" -#~ msgid "Edit Variable" -#~ msgstr "Uredi Spremenljivko" - #~ msgid "Edit Signal" #~ msgstr "Uredi Signal" diff --git a/editor/translations/sq.po b/editor/translations/sq.po index d52ebdcd96..b6db8eed22 100644 --- a/editor/translations/sq.po +++ b/editor/translations/sq.po @@ -72,6 +72,15 @@ msgstr "I Balancuar" msgid "Mirror" msgstr "Pasqyrë" +#: editor/animation_bezier_editor.cpp editor/editor_profiler.cpp +msgid "Time:" +msgstr "Koha:" + +#: editor/animation_bezier_editor.cpp +#, fuzzy +msgid "Value:" +msgstr "Vlerë e Re:" + #: editor/animation_bezier_editor.cpp msgid "Insert Key Here" msgstr "Vendos Çelësin Këtu" @@ -154,14 +163,20 @@ msgid "Animation Playback Track" msgstr "Binari i Rishikimit të Animacionit" #: editor/animation_track_editor.cpp -msgid "Add Track" -msgstr "Shto Binarë" +#, fuzzy +msgid "Animation length (frames)" +msgstr "Kohëzgjatja e Animacionit (sekonda)" #: editor/animation_track_editor.cpp -msgid "Animation Length Time (seconds)" +#, fuzzy +msgid "Animation length (seconds)" msgstr "Kohëzgjatja e Animacionit (sekonda)" #: editor/animation_track_editor.cpp +msgid "Add Track" +msgstr "Shto Binarë" + +#: editor/animation_track_editor.cpp msgid "Animation Looping" msgstr "Përsëritje Animacioni" @@ -285,11 +300,13 @@ msgid "Create %d NEW tracks and insert keys?" msgstr "" #: editor/animation_track_editor.cpp editor/create_dialog.cpp -#: editor/editor_audio_buses.cpp editor/editor_plugin_settings.cpp -#: editor/plugin_config_dialog.cpp +#: editor/editor_audio_buses.cpp editor/editor_feature_profile.cpp +#: editor/editor_plugin_settings.cpp editor/plugin_config_dialog.cpp #: editor/plugins/abstract_polygon_2d_editor.cpp #: editor/plugins/mesh_instance_editor_plugin.cpp -#: editor/plugins/particles_editor_plugin.cpp editor/script_create_dialog.cpp +#: editor/plugins/particles_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_create_dialog.cpp msgid "Create" msgstr "Krijo" @@ -399,6 +416,23 @@ msgid "" msgstr "" #: editor/animation_track_editor.cpp +msgid "" +"This animation belongs to an imported scene, so changes to imported tracks " +"will not be saved.\n" +"\n" +"To enable the ability to add custom tracks, navigate to the scene's import " +"settings and set\n" +"\"Animation > Storage\" to \"Files\", enable \"Animation > Keep Custom Tracks" +"\", then re-import.\n" +"Alternatively, use an import preset that imports animations to separate " +"files." +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Warning: Editing imported animation" +msgstr "" + +#: editor/animation_track_editor.cpp msgid "Only show tracks from nodes selected in tree." msgstr "" @@ -531,7 +565,8 @@ msgstr "" msgid "Select tracks to copy:" msgstr "" -#: editor/animation_track_editor.cpp editor/editor_properties.cpp +#: editor/animation_track_editor.cpp editor/editor_log.cpp +#: editor/editor_properties.cpp #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp @@ -599,6 +634,11 @@ msgstr "" msgid "Selection Only" msgstr "" +#: editor/code_editor.cpp editor/plugins/script_text_editor.cpp +#: editor/plugins/text_editor.cpp +msgid "Standard" +msgstr "" + #: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/texture_region_editor_plugin.cpp #: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp @@ -624,19 +664,34 @@ msgid "Line and column numbers." msgstr "" #: editor/connections_dialog.cpp -msgid "Method in target Node must be specified!" +msgid "Method in target node must be specified." msgstr "" #: editor/connections_dialog.cpp msgid "" -"Target method not found! Specify a valid method or attach a script to target " -"Node." +"Target method not found. Specify a valid method or attach a script to the " +"target node." msgstr "" #: editor/connections_dialog.cpp -msgid "Connect To Node:" +#, fuzzy +msgid "Connect to Node:" msgstr "Lidhë me Nyjen:" +#: editor/connections_dialog.cpp +#, fuzzy +msgid "Connect to Script:" +msgstr "Lidhë me Nyjen:" + +#: editor/connections_dialog.cpp +#, fuzzy +msgid "From Signal:" +msgstr "Sinjalet:" + +#: editor/connections_dialog.cpp +msgid "Scene does not contain any script." +msgstr "" + #: editor/connections_dialog.cpp editor/editor_autoload_settings.cpp #: editor/groups_editor.cpp editor/plugins/item_list_editor_plugin.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_settings_editor.cpp @@ -644,10 +699,12 @@ msgid "Add" msgstr "Shto" #: editor/connections_dialog.cpp editor/dependency_editor.cpp -#: editor/groups_editor.cpp editor/plugins/animation_player_editor_plugin.cpp +#: editor/editor_feature_profile.cpp editor/groups_editor.cpp +#: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp #: editor/plugins/resource_preloader_editor_plugin.cpp -#: editor/plugins/theme_editor_plugin.cpp editor/project_manager.cpp +#: editor/plugins/theme_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_manager.cpp #: editor/project_settings_editor.cpp msgid "Remove" msgstr "Hiq" @@ -661,21 +718,32 @@ msgid "Extra Call Arguments:" msgstr "" #: editor/connections_dialog.cpp -msgid "Path to Node:" -msgstr "" +#, fuzzy +msgid "Advanced" +msgstr "I Balancuar" #: editor/connections_dialog.cpp -msgid "Make Function" +msgid "Deferred" msgstr "" #: editor/connections_dialog.cpp -msgid "Deferred" +msgid "" +"Defers the signal, storing it in a queue and only firing it at idle time." msgstr "" #: editor/connections_dialog.cpp msgid "Oneshot" msgstr "" +#: editor/connections_dialog.cpp +msgid "Disconnects the signal after its first emission." +msgstr "" + +#: editor/connections_dialog.cpp +#, fuzzy +msgid "Cannot connect signal" +msgstr "Lidh Sinjalin: " + #: editor/connections_dialog.cpp editor/dependency_editor.cpp #: editor/export_template_manager.cpp editor/groups_editor.cpp #: editor/plugins/animation_player_editor_plugin.cpp @@ -716,11 +784,13 @@ msgid "Disconnect" msgstr "Shkëput" #: editor/connections_dialog.cpp -msgid "Connect Signal: " +#, fuzzy +msgid "Connect a Signal to a Method" msgstr "Lidh Sinjalin: " #: editor/connections_dialog.cpp -msgid "Edit Connection: " +#, fuzzy +msgid "Edit Connection:" msgstr "Modifiko Lidhjen: " #: editor/connections_dialog.cpp @@ -752,7 +822,6 @@ msgid "Change %s Type" msgstr "Ndrysho Tipin e %s" #: editor/create_dialog.cpp editor/project_settings_editor.cpp -#: modules/visual_script/visual_script_editor.cpp msgid "Change" msgstr "Ndrysho" @@ -783,7 +852,8 @@ msgid "Matches:" msgstr "Përputhjet:" #: editor/create_dialog.cpp editor/plugin_config_dialog.cpp -#: editor/plugins/asset_library_editor_plugin.cpp editor/property_selector.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/property_selector.cpp #: modules/visual_script/visual_script_property_selector.cpp msgid "Description:" msgstr "Përshkrimi:" @@ -797,17 +867,19 @@ msgid "Dependencies For:" msgstr "Varësit Për:" #: editor/dependency_editor.cpp +#, fuzzy msgid "" "Scene '%s' is currently being edited.\n" -"Changes will not take effect unless reloaded." +"Changes will only take effect when reloaded." msgstr "" "Skena '%s' është duke u modifikuar.\n" "Ndryshimet nuk do të kenë efekt në qoftë se nuk ringarkohet." #: editor/dependency_editor.cpp +#, fuzzy msgid "" "Resource '%s' is in use.\n" -"Changes will take effect when reloaded." +"Changes will only take effect when reloaded." msgstr "" "Resursi '%s' është në përdorim.\n" "Ndryshimet do të marrin efekt kur të ringarkohet." @@ -903,21 +975,14 @@ msgid "Permanently delete %d item(s)? (No undo!)" msgstr "Përfundimisht fshi %d artikuj? (pa kthim pas)" #: editor/dependency_editor.cpp -msgid "Owns" -msgstr "Zotëron" - -#: editor/dependency_editor.cpp -msgid "Resources Without Explicit Ownership:" -msgstr "Resurset Pa Zotërues Të Caktuar:" +#, fuzzy +msgid "Show Dependencies" +msgstr "Varësitë" #: editor/dependency_editor.cpp editor/editor_node.cpp msgid "Orphan Resource Explorer" msgstr "Eksploruesi I Resurseve Pa Zotërues" -#: editor/dependency_editor.cpp -msgid "Delete selected files?" -msgstr "Fshi skedarët e zgjedhur?" - #: editor/dependency_editor.cpp editor/editor_audio_buses.cpp #: editor/editor_file_dialog.cpp editor/editor_node.cpp #: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp @@ -926,6 +991,14 @@ msgstr "Fshi skedarët e zgjedhur?" msgid "Delete" msgstr "Fshi" +#: editor/dependency_editor.cpp +msgid "Owns" +msgstr "Zotëron" + +#: editor/dependency_editor.cpp +msgid "Resources Without Explicit Ownership:" +msgstr "Resurset Pa Zotërues Të Caktuar:" + #: editor/dictionary_property_edit.cpp msgid "Change Dictionary Key" msgstr "Ndrysho Çelësin e Fjalorit" @@ -1039,7 +1112,7 @@ msgstr "Paketa u instalua me sukses!" msgid "Success!" msgstr "Sukses!" -#: editor/editor_asset_installer.cpp +#: editor/editor_asset_installer.cpp editor/editor_node.cpp #: editor/plugins/asset_library_editor_plugin.cpp msgid "Install" msgstr "Instalo" @@ -1166,7 +1239,11 @@ msgid "Open Audio Bus Layout" msgstr "" #: editor/editor_audio_buses.cpp -msgid "There is no 'res://default_bus_layout.tres' file." +msgid "There is no '%s' file." +msgstr "" + +#: editor/editor_audio_buses.cpp editor/plugins/canvas_item_editor_plugin.cpp +msgid "Layout" msgstr "" #: editor/editor_audio_buses.cpp @@ -1220,21 +1297,28 @@ msgid "Valid characters:" msgstr "Karakteret e lejuar:" #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing engine class name." +#, fuzzy +msgid "Must not collide with an existing engine class name." msgstr "" "Emër i palejuar. Nuk duhet të përplaset me emrin e një klase egzistuese të " "programit." #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing buit-in type name." +#, fuzzy +msgid "Must not collide with an existing buit-in type name." msgstr "Emër i palejuar. Nuk duhet të përplaset me emrin e një tipi 'buit-in'." #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing global constant name." +#, fuzzy +msgid "Must not collide with an existing global constant name." msgstr "" "Emër i palejuar. Nuk duhet të përplaset me emrin e një konstante globale." #: editor/editor_autoload_settings.cpp +msgid "Keyword cannot be used as an autoload name." +msgstr "" + +#: editor/editor_autoload_settings.cpp msgid "Autoload '%s' already exists!" msgstr "Autoload '%s' egziston!" @@ -1262,11 +1346,12 @@ msgstr "Lejo" msgid "Rearrange Autoloads" msgstr "Riorganizo Autoload-et" -#: editor/editor_autoload_settings.cpp -msgid "Invalid Path." +#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp +#, fuzzy +msgid "Invalid path." msgstr "Rruga e pasaktë." -#: editor/editor_autoload_settings.cpp +#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp msgid "File does not exist." msgstr "Skedari nuk egziston." @@ -1317,7 +1402,8 @@ msgid "[unsaved]" msgstr "[e paruajtur]" #: editor/editor_dir_dialog.cpp -msgid "Please select a base directory first" +#, fuzzy +msgid "Please select a base directory first." msgstr "Ju lutem zgjidhni direktorin bazë në fillim" #: editor/editor_dir_dialog.cpp @@ -1325,7 +1411,8 @@ msgid "Choose a Directory" msgstr "Zgjidh një Direktori" #: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp -#: editor/filesystem_dock.cpp scene/gui/file_dialog.cpp +#: editor/filesystem_dock.cpp editor/project_manager.cpp +#: scene/gui/file_dialog.cpp msgid "Create Folder" msgstr "Krijo një Folder" @@ -1401,6 +1488,171 @@ msgstr "Shablloni 'Custom release' nuk u gjet." msgid "Template file not found:" msgstr "Skedari shabllon nuk u gjet:" +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "3D Editor" +msgstr "Editor" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Script Editor" +msgstr "Hap Editorin e Shkrimit" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Asset Library" +msgstr "Hap Editorin e Aseteve" + +#: editor/editor_feature_profile.cpp +msgid "Scene Tree Editing" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Import Dock" +msgstr "Importo" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Node Dock" +msgstr "Nyje" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Filesystem Dock" +msgstr "FileSystem" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Erase profile '%s'? (no undo)" +msgstr "Zëvendëso të gjitha (pa kthim pas)" + +#: editor/editor_feature_profile.cpp +msgid "Profile must be a valid filename and must not contain '.'" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Profile with this name already exists." +msgstr "Një skedar ose folder me këtë emër ekziston që më parë." + +#: editor/editor_feature_profile.cpp +msgid "(Editor Disabled, Properties Disabled)" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "(Properties Disabled)" +msgstr "Vetëm Vetitë" + +#: editor/editor_feature_profile.cpp +msgid "(Editor Disabled)" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Class Options:" +msgstr "Përshkrimi i Klasës:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enable Contextual Editor" +msgstr "Hap Editorin tjetër" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enabled Properties:" +msgstr "Vetitë:" + +#: editor/editor_feature_profile.cpp +msgid "Enabled Features:" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Enabled Classes:" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "File '%s' format is invalid, import aborted." +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "" +"Profile '%s' already exists. Remote it first before importing, import " +"aborted." +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Error saving profile to path: '%s'." +msgstr "Gabim gjatë ruajtjes së TileSet-it!" + +#: editor/editor_feature_profile.cpp +msgid "Unset" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Current Profile" +msgstr "Versioni Aktual:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Make Current" +msgstr "(Aktual)" + +#: editor/editor_feature_profile.cpp +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "New" +msgstr "" + +#: editor/editor_feature_profile.cpp editor/editor_node.cpp +#: editor/plugins/asset_library_editor_plugin.cpp editor/project_manager.cpp +msgid "Import" +msgstr "Importo" + +#: editor/editor_feature_profile.cpp editor/editor_node.cpp +#: editor/project_export.cpp +msgid "Export" +msgstr "Eksporto" + +#: editor/editor_feature_profile.cpp +msgid "Available Profiles" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Enabled Classes" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Class Options" +msgstr "Përshkrimi i Klasës" + +#: editor/editor_feature_profile.cpp +msgid "New profile name:" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Erase Profile" +msgstr "Fshi Pikat." + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Import Profile(s)" +msgstr "%d skedarë më shumë" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Export Profile" +msgstr "Eksporto Projektin" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Manage Editor Feature Profiles" +msgstr "Menaxho Shabllonet e Eksportit" + #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Select Current Folder" msgstr "Zgjidh Folderin Aktual" @@ -1421,8 +1673,8 @@ msgstr "Kopjo Rrugën" msgid "Open in File Manager" msgstr "Hap në Menaxherin e Skedarëve" -#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp -#: editor/project_manager.cpp +#: editor/editor_file_dialog.cpp editor/editor_node.cpp +#: editor/filesystem_dock.cpp editor/project_manager.cpp msgid "Show in File Manager" msgstr "Shfaq në Menaxherin e Skedarëve" @@ -1481,7 +1733,7 @@ msgstr "Shko Përpara" msgid "Go Up" msgstr "Shko Lartë" -#: editor/editor_file_dialog.cpp +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Toggle Hidden Files" msgstr "Ndrysho Skedarët e Fshehur" @@ -1513,14 +1765,19 @@ msgstr "Folderi i Mëparshëm" msgid "Next Folder" msgstr "Folderi Tjetër" -#: editor/editor_file_dialog.cpp -msgid "Go to parent folder" -msgstr "Shko te folderi prind" +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp +msgid "Go to parent folder." +msgstr "" #: editor/editor_file_dialog.cpp msgid "(Un)favorite current folder." msgstr "Hiqe nga të preferuarat folderin aktual." +#: editor/editor_file_dialog.cpp +#, fuzzy +msgid "Toggle visibility of hidden files." +msgstr "Ndrysho Skedarët e Fshehur" + #: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp msgid "View items as a grid of thumbnails." msgstr "Shiko artikujt si një rrjet kornizash." @@ -1535,6 +1792,7 @@ msgstr "Direktorit & Skedarët:" #: editor/editor_file_dialog.cpp editor/plugins/sprite_editor_plugin.cpp #: editor/plugins/style_box_editor_plugin.cpp +#: editor/plugins/theme_editor_plugin.cpp msgid "Preview:" msgstr "Shikim paraprak:" @@ -1551,6 +1809,12 @@ msgid "ScanSources" msgstr "SkanoBurimet" #: editor/editor_file_system.cpp +msgid "" +"There are multiple importers for different types pointing to file %s, import " +"aborted" +msgstr "" + +#: editor/editor_file_system.cpp msgid "(Re)Importing Assets" msgstr "Duke (Ri)Importuar Asetet" @@ -1733,6 +1997,10 @@ msgstr "Vendos të Shumëfishta:" msgid "Output:" msgstr "Përfundimi:" +#: editor/editor_log.cpp editor/plugins/tile_map_editor_plugin.cpp +msgid "Copy Selection" +msgstr "" + #: editor/editor_log.cpp editor/editor_profiler.cpp #: editor/editor_properties.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp @@ -1888,9 +2156,10 @@ msgstr "" "kuptoni më mirë këtë metodë të punuari." #: editor/editor_node.cpp +#, fuzzy msgid "" "This resource belongs to a scene that was instanced or inherited.\n" -"Changes to it will not be kept when saving the current scene." +"Changes to it won't be kept when saving the current scene." msgstr "" "Ky resurs i përket një skene që është instancuar ose trashëguat.\n" "Ndryshimet në të nuk do të ruhen kur të ruani skenën aktuale." @@ -1904,8 +2173,9 @@ msgstr "" "ndrysho opsionet e tij në panelin e importit dhe më pas ri-importoje." #: editor/editor_node.cpp +#, fuzzy msgid "" -"This scene was imported, so changes to it will not be kept.\n" +"This scene was imported, so changes to it won't be kept.\n" "Instancing it or inheriting will allow making changes to it.\n" "Please read the documentation relevant to importing scenes to better " "understand this workflow." @@ -1916,8 +2186,9 @@ msgstr "" "kuptoni më mirë këtë metodë të punuari." #: editor/editor_node.cpp +#, fuzzy msgid "" -"This is a remote object so changes to it will not be kept.\n" +"This is a remote object, so changes to it won't be kept.\n" "Please read the documentation relevant to debugging to better understand " "this workflow." msgstr "" @@ -1931,36 +2202,6 @@ msgid "There is no defined scene to run." msgstr "Nuk ka një skenë të përcaktuar për të filluar." #: editor/editor_node.cpp -msgid "" -"No main scene has ever been defined, select one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" -"Nuk është përcaktuar një skenë kryesore më parë, zgjidh një?\n" -"Mund ta ndryshosh më vonë në \"Opsionet e Projektit\" nën kategorin " -"'aplikacioni'." - -#: editor/editor_node.cpp -msgid "" -"Selected scene '%s' does not exist, select a valid one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" -"Skena e zgjedhur '%s' nuk egziston, zgjidh një të saktë?\n" -"Mund ta ndryshosh më vonë te \"Opsionet e Projektit\" nën kategorin " -"'aplikacioni'." - -#: editor/editor_node.cpp -msgid "" -"Selected scene '%s' is not a scene file, select a valid one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" -"Skena e zgjedhur nuk është një skedar skene, zgjidh një të saktë?\n" -"Mund ta ndryshosh më vonë te \"Opsionet e Projektit\" nën kategorin " -"'aplikacioni'." - -#: editor/editor_node.cpp msgid "Current scene was never saved, please save it prior to running." msgstr "" "Skena aktuale nuk është ruajtur më parë, ju lutem ruajeni para se të filloni." @@ -1969,7 +2210,7 @@ msgstr "" msgid "Could not start subprocess!" msgstr "Nuk mund të fillojë subprocess-in!" -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/filesystem_dock.cpp msgid "Open Scene" msgstr "Hap Skenën" @@ -1978,6 +2219,11 @@ msgid "Open Base Scene" msgstr "Hap Skenën Bazë" #: editor/editor_node.cpp +#, fuzzy +msgid "Quick Open..." +msgstr "Hap Skenën Shpejtë..." + +#: editor/editor_node.cpp msgid "Quick Open Scene..." msgstr "Hap Skenën Shpejtë..." @@ -2156,6 +2402,36 @@ msgid "Clear Recent Scenes" msgstr "Pastro Skenat e Fundit" #: editor/editor_node.cpp +msgid "" +"No main scene has ever been defined, select one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" +"Nuk është përcaktuar një skenë kryesore më parë, zgjidh një?\n" +"Mund ta ndryshosh më vonë në \"Opsionet e Projektit\" nën kategorin " +"'aplikacioni'." + +#: editor/editor_node.cpp +msgid "" +"Selected scene '%s' does not exist, select a valid one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" +"Skena e zgjedhur '%s' nuk egziston, zgjidh një të saktë?\n" +"Mund ta ndryshosh më vonë te \"Opsionet e Projektit\" nën kategorin " +"'aplikacioni'." + +#: editor/editor_node.cpp +msgid "" +"Selected scene '%s' is not a scene file, select a valid one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" +"Skena e zgjedhur nuk është një skedar skene, zgjidh një të saktë?\n" +"Mund ta ndryshosh më vonë te \"Opsionet e Projektit\" nën kategorin " +"'aplikacioni'." + +#: editor/editor_node.cpp msgid "Save Layout" msgstr "Ruaj Faqosjen" @@ -2181,6 +2457,19 @@ msgstr "Luaj Këtë Skenë" msgid "Close Tab" msgstr "Mbyll Tabin" +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +msgid "Close Other Tabs" +msgstr "" + +#: editor/editor_node.cpp +msgid "Close Tabs to the Right" +msgstr "" + +#: editor/editor_node.cpp +#, fuzzy +msgid "Close All Tabs" +msgstr "Mbyll Tabin" + #: editor/editor_node.cpp msgid "Switch Scene Tab" msgstr "Ndrysho Tabin e Skenës" @@ -2303,10 +2592,6 @@ msgstr "Projekti" msgid "Project Settings" msgstr "Opsionet e Projektit" -#: editor/editor_node.cpp editor/project_export.cpp -msgid "Export" -msgstr "Eksporto" - #: editor/editor_node.cpp editor/plugins/tile_set_editor_plugin.cpp msgid "Tools" msgstr "Veglat" @@ -2316,6 +2601,10 @@ msgid "Open Project Data Folder" msgstr "Hap Folderin e të Dhënave të Projektit" #: editor/editor_node.cpp +msgid "Install Android Build Template" +msgstr "" + +#: editor/editor_node.cpp msgid "Quit to Project List" msgstr "Dil të Lista Projekteve" @@ -2438,6 +2727,11 @@ msgstr "Hap Folderin e të Dhënave të Editorit" msgid "Open Editor Settings Folder" msgstr "Hap Folderin e Opsioneve të Editorit" +#: editor/editor_node.cpp +#, fuzzy +msgid "Manage Editor Features" +msgstr "Menaxho Shabllonet e Eksportit" + #: editor/editor_node.cpp editor/project_export.cpp msgid "Manage Export Templates" msgstr "Menaxho Shabllonet e Eksportit" @@ -2450,6 +2744,7 @@ msgstr "Ndihmë" #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp #: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp #: editor/project_settings_editor.cpp editor/rename_dialog.cpp msgid "Search" msgstr "Kërko" @@ -2539,11 +2834,6 @@ msgstr "Përditëso Ndryshimet" msgid "Disable Update Spinner" msgstr "Çaktivizo Rrotulluesin e Përditësimit" -#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp -#: editor/project_manager.cpp -msgid "Import" -msgstr "Importo" - #: editor/editor_node.cpp #, fuzzy msgid "FileSystem" @@ -2570,6 +2860,28 @@ msgid "Don't Save" msgstr "Mos Ruaj" #: editor/editor_node.cpp +msgid "Android build template is missing, please install relevant templates." +msgstr "" + +#: editor/editor_node.cpp +#, fuzzy +msgid "Manage Templates" +msgstr "Menaxho Shabllonet e Eksportit" + +#: editor/editor_node.cpp +msgid "" +"This will install the Android project for custom builds.\n" +"Note that, in order to use it, it needs to be enabled per export preset." +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"Android build template is already installed and it won't be overwritten.\n" +"Remove the \"build\" directory manually before attempting this operation " +"again." +msgstr "" + +#: editor/editor_node.cpp msgid "Import Templates From ZIP File" msgstr "Importo Shabllonet Nga Skedari ZIP" @@ -2692,10 +3004,6 @@ msgid "Physics Frame %" msgstr "Hapi i Fizikës %" #: editor/editor_profiler.cpp -msgid "Time:" -msgstr "Koha:" - -#: editor/editor_profiler.cpp msgid "Inclusive" msgstr "Gjithpërfshirës" @@ -2839,10 +3147,6 @@ msgid "Remove Item" msgstr "Hiq Artikullin" #: editor/editor_run_native.cpp -msgid "Select device from the list" -msgstr "Zgjidh paisjen nga lista" - -#: editor/editor_run_native.cpp msgid "" "No runnable export preset found for this platform.\n" "Please add a runnable preset in the export menu." @@ -2878,6 +3182,10 @@ msgstr "A mos harrove metodën '_run'?" msgid "Select Node(s) to Import" msgstr "Zgjidh Nyjet Për ti Importuar" +#: editor/editor_sub_scene.cpp editor/project_manager.cpp +msgid "Browse" +msgstr "" + #: editor/editor_sub_scene.cpp msgid "Scene Path:" msgstr "Rruga Skenës:" @@ -3044,6 +3352,11 @@ msgid "SSL Handshake Error" msgstr "Gabim në 'SSL Handshake'" #: editor/export_template_manager.cpp +#, fuzzy +msgid "Uncompressing Android Build Sources" +msgstr "Duke Dekompresuar Asetet" + +#: editor/export_template_manager.cpp msgid "Current Version:" msgstr "Versioni Aktual:" @@ -3060,7 +3373,8 @@ msgid "Remove Template" msgstr "Hiq Shabllonin" #: editor/export_template_manager.cpp -msgid "Select template file" +#, fuzzy +msgid "Select Template File" msgstr "Zgjidh skedarin e shabllonit" #: editor/export_template_manager.cpp @@ -3121,7 +3435,8 @@ msgid "No name provided." msgstr "Nuk u dha një emër." #: editor/filesystem_dock.cpp -msgid "Provided name contains invalid characters" +#, fuzzy +msgid "Provided name contains invalid characters." msgstr "Emri i dhënë përmban karaktere të pasakta" #: editor/filesystem_dock.cpp @@ -3149,19 +3464,27 @@ msgid "Duplicating folder:" msgstr "Duke dyfishuar folderin:" #: editor/filesystem_dock.cpp -msgid "Open Scene(s)" -msgstr "Hap Skenat" +#, fuzzy +msgid "New Inherited Scene" +msgstr "Skenë e Re e Trashëguar..." + +#: editor/filesystem_dock.cpp +#, fuzzy +msgid "Open Scenes" +msgstr "Hap Skenën" #: editor/filesystem_dock.cpp msgid "Instance" msgstr "Instanco" #: editor/filesystem_dock.cpp -msgid "Add to favorites" +#, fuzzy +msgid "Add to Favorites" msgstr "Shto te të preferuarat" #: editor/filesystem_dock.cpp -msgid "Remove from favorites" +#, fuzzy +msgid "Remove from Favorites" msgstr "Hiq nga të preferuarat" #: editor/filesystem_dock.cpp @@ -3192,11 +3515,13 @@ msgstr "Shkrim i Ri..." msgid "New Resource..." msgstr "Resurs i Ri..." -#: editor/filesystem_dock.cpp editor/script_editor_debugger.cpp +#: editor/filesystem_dock.cpp editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_editor_debugger.cpp msgid "Expand All" msgstr "Zgjero të Gjitha" -#: editor/filesystem_dock.cpp editor/script_editor_debugger.cpp +#: editor/filesystem_dock.cpp editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_editor_debugger.cpp msgid "Collapse All" msgstr "Mbyll të Gjitha" @@ -3208,19 +3533,22 @@ msgid "Rename" msgstr "Riemërto" #: editor/filesystem_dock.cpp -msgid "Previous Directory" -msgstr "Direktoria e Mëparshme" +#, fuzzy +msgid "Previous Folder/File" +msgstr "Folderi i Mëparshëm" #: editor/filesystem_dock.cpp -msgid "Next Directory" -msgstr "Direktoria Tjetër" +#, fuzzy +msgid "Next Folder/File" +msgstr "Folderi Tjetër" #: editor/filesystem_dock.cpp msgid "Re-Scan Filesystem" msgstr "Riskano 'Filesystem'-in" #: editor/filesystem_dock.cpp -msgid "Toggle split mode" +#, fuzzy +msgid "Toggle Split Mode" msgstr "Ndrysho metodën e ndarjes" #: editor/filesystem_dock.cpp @@ -3253,7 +3581,7 @@ msgstr "Mbishkruaj" msgid "Create Script" msgstr "Krijo një Shkrim" -#: editor/find_in_files.cpp +#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp msgid "Find in Files" msgstr "Gjej në Skedarët" @@ -3269,6 +3597,12 @@ msgstr "Folderi:" msgid "Filters:" msgstr "Filtrat:" +#: editor/find_in_files.cpp +msgid "" +"Include the files with the following extensions. Add or remove them in " +"ProjectSettings." +msgstr "" + #: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp msgid "Find..." @@ -3702,8 +4036,9 @@ msgid "Open Animation Node" msgstr "" #: editor/plugins/animation_blend_space_2d_editor.cpp -msgid "Triangle already exists" -msgstr "" +#, fuzzy +msgid "Triangle already exists." +msgstr "Emri i grupit ekziston që më parë." #: editor/plugins/animation_blend_space_2d_editor.cpp msgid "Add Triangle" @@ -3777,7 +4112,6 @@ msgid "Node Moved" msgstr "" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Unable to connect, port may be in use or connection may be invalid." msgstr "" @@ -3844,7 +4178,7 @@ msgid "Edit Filtered Tracks:" msgstr "" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -msgid "Enable filtering" +msgid "Enable Filtering" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp @@ -3959,10 +4293,6 @@ msgid "Animation" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "New" -msgstr "" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Edit Transitions..." msgstr "" @@ -3979,11 +4309,11 @@ msgid "Autoplay on Load" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Onion Skinning" +msgid "Enable Onion Skinning" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Enable Onion Skinning" +msgid "Onion Skinning Options" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp @@ -4523,13 +4853,19 @@ msgid "Move CanvasItem" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"Children of containers have their anchors and margins values overridden by " +"their parent." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Presets for the anchors and margins values of a Control node." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "" -"Children of containers have their anchors and margins values overridden by " -"their parent." +"When active, moving Control nodes changes their anchors instead of their " +"margins." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4545,10 +4881,49 @@ msgid "Change Anchors" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Lock Selected" +msgstr "Zgjidh" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Unlock Selected" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Group Selected" +msgstr "Zgjidh" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Ungroup Selected" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Paste Pose" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Create Custom Bone(s) from Node(s)" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Clear Bones" +msgstr "Pastro" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Make IK Chain" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Clear IK Chain" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "" "Warning: Children of a container get their position and size determined only " "by their parent." @@ -4620,7 +4995,7 @@ msgid "Snapping Options" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to grid" +msgid "Snap to Grid" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4641,31 +5016,31 @@ msgid "Use Pixel Snap" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Smart snapping" +msgid "Smart Snapping" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to parent" +msgid "Snap to Parent" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node anchor" +msgid "Snap to Node Anchor" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node sides" +msgid "Snap to Node Sides" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node center" +msgid "Snap to Node Center" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to other nodes" +msgid "Snap to Other Nodes" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to guides" +msgid "Snap to Guides" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4679,10 +5054,12 @@ msgid "Unlock the selected object (can be moved)." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Makes sure the object's children are not selectable." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Restores the object's children's ability to be selected." msgstr "" @@ -4695,14 +5072,6 @@ msgid "Show Bones" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Make IK Chain" -msgstr "" - -#: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Clear IK Chain" -msgstr "" - -#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Make Custom Bone(s) from Node(s)" msgstr "" @@ -4753,7 +5122,7 @@ msgid "Frame Selection" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Layout" +msgid "Preview Canvas Scale" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4806,6 +5175,11 @@ msgid "Divide grid step by 2" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Pan View" +msgstr "Zgjidh një 'Viewport'" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Add %s" msgstr "" @@ -4828,8 +5202,9 @@ msgid "Error instancing scene from %s" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Change default type" -msgstr "" +#, fuzzy +msgid "Change Default Type" +msgstr "Ndrysho Tipin e %s" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "" @@ -4914,19 +5289,19 @@ msgid "Create Emission Points From Node" msgstr "" #: editor/plugins/curve_editor_plugin.cpp -msgid "Flat0" +msgid "Flat 0" msgstr "" #: editor/plugins/curve_editor_plugin.cpp -msgid "Flat1" +msgid "Flat 1" msgstr "" -#: editor/plugins/curve_editor_plugin.cpp -msgid "Ease in" +#: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp +msgid "Ease In" msgstr "" -#: editor/plugins/curve_editor_plugin.cpp -msgid "Ease out" +#: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp +msgid "Ease Out" msgstr "" #: editor/plugins/curve_editor_plugin.cpp @@ -4946,24 +5321,27 @@ msgid "Load Curve Preset" msgstr "" #: editor/plugins/curve_editor_plugin.cpp -msgid "Add point" -msgstr "" +#, fuzzy +msgid "Add Point" +msgstr "Shto Pikë në Animacion" #: editor/plugins/curve_editor_plugin.cpp -msgid "Remove point" -msgstr "" +#, fuzzy +msgid "Remove Point" +msgstr "Hiq Artikullin" #: editor/plugins/curve_editor_plugin.cpp -msgid "Left linear" +msgid "Left Linear" msgstr "" #: editor/plugins/curve_editor_plugin.cpp -msgid "Right linear" +msgid "Right Linear" msgstr "" #: editor/plugins/curve_editor_plugin.cpp -msgid "Load preset" -msgstr "" +#, fuzzy +msgid "Load Preset" +msgstr "Ngarko Gabimet" #: editor/plugins/curve_editor_plugin.cpp msgid "Remove Curve Point" @@ -5018,11 +5396,15 @@ msgid "This doesn't work on scene root!" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Trimesh Shape" +msgid "Create Trimesh Static Shape" +msgstr "" + +#: editor/plugins/mesh_instance_editor_plugin.cpp +msgid "Failed creating shapes!" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Shape" +msgid "Create Convex Shape(s)" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp @@ -5075,16 +5457,13 @@ msgid "Create Trimesh Static Body" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Static Body" -msgstr "" - -#: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Trimesh Collision Sibling" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Collision Sibling" -msgstr "" +#, fuzzy +msgid "Create Convex Collision Sibling(s)" +msgstr "Krijo një Poligon" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Outline Mesh..." @@ -5237,20 +5616,20 @@ msgid "Create Navigation Polygon" msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp -msgid "Generating Visibility Rect" +#: editor/plugins/particles_editor_plugin.cpp +msgid "Convert to CPUParticles" msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp -msgid "Generate Visibility Rect" +msgid "Generating Visibility Rect" msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp -msgid "Can only set point into a ParticlesMaterial process material" +msgid "Generate Visibility Rect" msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp -#: editor/plugins/particles_editor_plugin.cpp -msgid "Convert to CPUParticles" +msgid "Can only set point into a ParticlesMaterial process material" msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp @@ -5392,7 +5771,7 @@ msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp editor/plugins/theme_editor_plugin.cpp -#: editor/project_export.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_export.cpp msgid "Options" msgstr "" @@ -5443,8 +5822,9 @@ msgid "Split Segment (in curve)" msgstr "" #: editor/plugins/physical_bone_plugin.cpp -msgid "Move joint" -msgstr "" +#, fuzzy +msgid "Move Joint" +msgstr "Lëviz të Preferuarën Lartë" #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "" @@ -5676,7 +6056,6 @@ msgid "Open in Editor" msgstr "" #: editor/plugins/resource_preloader_editor_plugin.cpp -#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Load Resource" msgstr "" @@ -5765,6 +6144,11 @@ msgid "%s Class Reference" msgstr "" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp +msgid "Find Next" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp msgid "Toggle alphabetical sorting of the method list." msgstr "" @@ -5845,10 +6229,6 @@ msgstr "" msgid "Close All" msgstr "" -#: editor/plugins/script_editor_plugin.cpp -msgid "Close Other Tabs" -msgstr "" - #: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp msgid "Run" msgstr "" @@ -5857,11 +6237,6 @@ msgstr "" msgid "Toggle Scripts Panel" msgstr "" -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/script_text_editor.cpp -msgid "Find Next" -msgstr "" - #: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp msgid "Step Over" msgstr "" @@ -5888,7 +6263,7 @@ msgid "Debug with External Editor" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Open Godot online documentation" +msgid "Open Godot online documentation." msgstr "" #: editor/plugins/script_editor_plugin.cpp @@ -5896,7 +6271,7 @@ msgid "Request Docs" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Help improve the Godot documentation by giving feedback" +msgid "Help improve the Godot documentation by giving feedback." msgstr "" #: editor/plugins/script_editor_plugin.cpp @@ -5922,10 +6297,12 @@ msgid "" msgstr "" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp msgid "Reload" msgstr "" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp msgid "Resave" msgstr "" @@ -5938,6 +6315,30 @@ msgid "Search Results" msgstr "" #: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Connections to method:" +msgstr "Lidhë me Nyjen:" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Source" +msgstr "Resursi" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Signal" +msgstr "Sinjalet" + +#: editor/plugins/script_text_editor.cpp +msgid "Target" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "" +"Missing connected method '%s' for signal '%s' from node '%s' to node '%s'." +msgstr "" + +#: editor/plugins/script_text_editor.cpp msgid "Line" msgstr "" @@ -5949,10 +6350,6 @@ msgstr "" msgid "Go to Function" msgstr "" -#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp -msgid "Standard" -msgstr "" - #: editor/plugins/script_text_editor.cpp msgid "Only resources from filesystem can be dropped." msgstr "" @@ -5985,6 +6382,11 @@ msgstr "" msgid "Syntax Highlighter" msgstr "" +#: editor/plugins/script_text_editor.cpp +#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp +msgid "Bookmarks" +msgstr "" + #: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" @@ -6012,6 +6414,26 @@ msgid "Toggle Comment" msgstr "" #: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Toggle Bookmark" +msgstr "Ndrysho Mënyrën" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Go to Next Bookmark" +msgstr "Shko tek Hapi Tjetër" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Go to Previous Bookmark" +msgstr "Shko tek Hapi i Mëparshëm" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Remove All Bookmarks" +msgstr "Hiq Autoload-in" + +#: editor/plugins/script_text_editor.cpp msgid "Fold/Unfold Line" msgstr "" @@ -6085,6 +6507,12 @@ msgid "Contextual Help" msgstr "" #: editor/plugins/shader_editor_plugin.cpp +msgid "" +"This shader has been modified on on disk.\n" +"What action should be taken?" +msgstr "" + +#: editor/plugins/shader_editor_plugin.cpp msgid "Shader" msgstr "" @@ -6422,7 +6850,7 @@ msgid "Right View" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Switch Perspective/Orthogonal view" +msgid "Switch Perspective/Orthogonal View" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp @@ -6462,11 +6890,12 @@ msgid "Toggle Freelook" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Transform" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Snap object to floor" +msgid "Snap Object to Floor" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp @@ -6611,37 +7040,37 @@ msgid "Invalid geometry, can't replace by mesh." msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Invalid geometry, can't create polygon." -msgstr "" +#, fuzzy +msgid "Convert to Mesh2D" +msgstr "Konverto në %s" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Invalid geometry, can't create collision polygon." +msgid "Invalid geometry, can't create polygon." msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Invalid geometry, can't create light occluder." -msgstr "" +#, fuzzy +msgid "Convert to Polygon2D" +msgstr "Krijo një Poligon" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Sprite" +msgid "Invalid geometry, can't create collision polygon." msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy -msgid "Convert to Mesh2D" -msgstr "Konverto në %s" +msgid "Create CollisionPolygon2D Sibling" +msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy -msgid "Convert to Polygon2D" -msgstr "Krijo një Poligon" +msgid "Invalid geometry, can't create light occluder." +msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Create CollisionPolygon2D Sibling" +msgid "Create LightOccluder2D Sibling" msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Create LightOccluder2D Sibling" +msgid "Sprite" msgstr "" #: editor/plugins/sprite_editor_plugin.cpp @@ -6661,7 +7090,11 @@ msgid "Settings:" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "ERROR: Couldn't load frame resource!" +msgid "No Frames Selected" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Add %d Frame(s)" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp @@ -6669,6 +7102,10 @@ msgid "Add Frame" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "ERROR: Couldn't load frame resource!" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Resource clipboard is empty or not a texture!" msgstr "" @@ -6709,6 +7146,14 @@ msgid "Animation Frames:" msgstr "Kornizat e Animacionit:" #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Add a Texture from File" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Add Frames from a Sprite Sheet" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Insert Empty (Before)" msgstr "" @@ -6725,6 +7170,27 @@ msgid "Move (After)" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Select Frames" +msgstr "Zgjidh" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Horizontal:" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Vertical:" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Select/Clear All Frames" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Create Frames from Sprite Sheet" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "SpriteFrames" msgstr "" @@ -6789,12 +7255,12 @@ msgstr "" msgid "Remove All Items" msgstr "" -#: editor/plugins/theme_editor_plugin.cpp +#: editor/plugins/theme_editor_plugin.cpp editor/project_manager.cpp msgid "Remove All" msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "Edit theme..." +msgid "Edit Theme" msgstr "" #: editor/plugins/theme_editor_plugin.cpp @@ -6822,11 +7288,12 @@ msgid "Create From Current Editor Theme" msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "CheckBox Radio1" -msgstr "" +#, fuzzy +msgid "Toggle Button" +msgstr "Ndrysho Mënyrën" #: editor/plugins/theme_editor_plugin.cpp -msgid "CheckBox Radio2" +msgid "Disabled Button" msgstr "" #: editor/plugins/theme_editor_plugin.cpp @@ -6834,6 +7301,10 @@ msgid "Item" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +msgid "Disabled Item" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Check Item" msgstr "" @@ -6850,6 +7321,22 @@ msgid "Checked Radio Item" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +msgid "Named Sep." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Submenu" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Item 1" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Item 2" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Has" msgstr "" @@ -6858,8 +7345,9 @@ msgid "Many" msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "Has,Many,Options" -msgstr "" +#, fuzzy +msgid "Disabled LineEdit" +msgstr "Çaktivizo Rrotulluesin e Përditësimit" #: editor/plugins/theme_editor_plugin.cpp msgid "Tab 1" @@ -6874,6 +7362,18 @@ msgid "Tab 3" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +msgid "Editable Item" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Subtree" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Has,Many,Options" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Data Type:" msgstr "" @@ -6906,6 +7406,7 @@ msgid "Fix Invalid Tiles" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp +#: modules/gridmap/grid_map_editor_plugin.cpp msgid "Cut Selection" msgstr "" @@ -6946,37 +7447,48 @@ msgid "Mirror Y" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Paint Tile" +msgid "Disable Autotile" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Pick Tile" +msgid "Enable Priority" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Copy Selection" +msgid "Paint Tile" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Rotate left" +msgid "" +"Shift+RMB: Line Draw\n" +"Shift+Ctrl+RMB: Rectangle Paint" +msgstr "" + +#: editor/plugins/tile_map_editor_plugin.cpp +msgid "Pick Tile" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Rotate right" +msgid "Rotate Left" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Flip horizontally" +msgid "Rotate Right" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Flip vertically" +msgid "Flip Horizontally" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Clear transform" +msgid "Flip Vertically" msgstr "" +#: editor/plugins/tile_map_editor_plugin.cpp +#, fuzzy +msgid "Clear Transform" +msgstr "Binari i Transformimeve 3D" + #: editor/plugins/tile_set_editor_plugin.cpp msgid "Add Texture(s) to TileSet." msgstr "" @@ -7010,6 +7522,40 @@ msgid "Select the previous shape, subtile, or Tile." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp +msgid "Region Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Collision Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Occlusion Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Navigation Mode" +msgstr "Metoda Pa Shpërqëndrime" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Bitmask Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Priority Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Icon Mode" +msgstr "Ndrysho Mënyrën" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Z Index Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp msgid "Copy bitmask." msgstr "" @@ -7089,6 +7635,7 @@ msgstr "" msgid "" "LMB: Set bit on.\n" "RMB: Set bit off.\n" +"Shift+LMB: Set wildcard bit.\n" "Click on another Tile to edit it." msgstr "" @@ -7196,6 +7743,73 @@ msgid "TileSet" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add input +" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add output +" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector" +msgstr "Inspektori" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Add input port" +msgstr "Shto te të preferuarat" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add output port" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change input port type" +msgstr "Ndrysho Tipin e %s" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Change output port type" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change input port name" +msgstr "Ndrysho Vlerën e Fjalorit" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Change output port name" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Remove input port" +msgstr "Hiq Autoload-in" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Remove output port" +msgstr "Hiq nga të preferuarat" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Set expression" +msgstr "Versioni Aktual:" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Resize VisualShader node" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Set Uniform Name" msgstr "" @@ -7233,6 +7847,840 @@ msgid "Light" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Create Shader Node" +msgstr "Krijo një Folder" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Color function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Color operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Grayscale function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts HSV vector to RGB equivalent." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts RGB vector to HSV equivalent." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Sepia function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Burn operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Darken operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Difference operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Dodge operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "HardLight operator" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Lighten operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Overlay operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Screen operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "SoftLight operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Color constant." +msgstr "Konstantet" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Color uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns an associated vector if the provided scalars are equal, greater or " +"less." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns an associated vector if the provided boolean value is true or false." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'camera' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'inv_camera' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'inv_projection' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'normal' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'projection' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'time' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'viewport_size' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'world' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'texture_pixel_size' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Input parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'binormal' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'fragcoord' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_coord' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_uv' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'side' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'tangent' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv2' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'vertex' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'view' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'albedo' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'attenuation' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'diffuse' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_color' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'roughness' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'specular' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'transmission' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'modelview' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_size' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'tangent' input parameter for vertex and fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_pass' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_coord' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_pixel_size' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_uv' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_alpha' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_height' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_uv' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_vec' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'normal' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'shadow_color' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'extra' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'projection' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'vertex' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'world' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'active' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'custom' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'custom_alpha' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'delta' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'emission_transform' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'index' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'lifetime' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'restart' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'time' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'transform' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'velocity' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Scalar function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Scalar operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "E constant (2.718282). Represents the base of the natural logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Epsilon constant (0.00001). Smallest possible scalar number." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Phi constant (1.618034). Golden ratio." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi/4 constant (0.785398) or 45 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi/2 constant (1.570796) or 90 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi constant (3.141593) or 180 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Tau constant (6.283185) or 360 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Sqrt2 constant (1.414214). Square root of 2." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the absolute value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-tangent of the parameters." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Finds the nearest integer that is greater than or equal to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Constrains a value to lie between two further values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts a quantity in radians to degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-e Exponential." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-2 Exponential." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Finds the nearest integer less than or equal to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Computes the fractional part of the argument." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the inverse of the square root of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Natural logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-2 logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the greater of two values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the lesser of two values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Linear interpolation between two scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the opposite value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 - scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns the value of the first parameter raised to the power of the second." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts a quantity in degrees to radians." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 / scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the nearest integer to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the nearest even integer to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Clamps the value between 0.0 and 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Extracts the sign of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the square root of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( scalar(edge0), scalar(edge1), scalar(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if x is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( scalar(edge), scalar(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the truncated value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Adds scalar to scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Divides scalar by scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies scalar by scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the remainder of the two scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Subtracts scalar from scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Scalar constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Scalar uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Perform the cubic texture lookup." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Perform the texture lookup." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Cubic texture uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "2D texture uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Transform function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) Calculate the outer product of a pair of vectors.\n" +"\n" +"OuterProduct treats the first parameter 'c' as a column vector (matrix with " +"one column) and the second parameter 'r' as a row vector (matrix with one " +"row) and does a linear algebraic matrix multiply 'c * r', yielding a matrix " +"whose number of rows is the number of components in 'c' and whose number of " +"columns is the number of components in 'r'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Composes transform from four vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Decomposes transform to four vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the determinant of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the inverse of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the transpose of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies transform by transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies vector by transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Transform constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Transform uniform." +msgstr "Binari i Transformimeve 3D" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Composes vector from three scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Decomposes vector to three scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the cross product of two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the distance between two points." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the dot product of two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns a vector that points in the same direction as a reference vector. " +"The function has three vector parameters : N, the vector to orient, I, the " +"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 "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the length of a vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Linear interpolation between two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the normalize product of vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 - vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 / vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns a vector that points in the direction of reflection ( a : incident " +"vector, b : normal vector )." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns a vector that points in the direction of refraction." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( vector(edge0), vector(edge1), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if 'x' is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( scalar(edge0), scalar(edge1), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if 'x' is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( vector(edge), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( scalar(edge), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Adds vector to vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Divides vector by vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies vector by vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the remainder of the two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Subtracts vector from vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Custom Godot Shader Language expression, with custom amount of input and " +"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 "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns falloff based on the dot product of surface normal and view " +"direction of camera (pass associated inputs to it)." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) (Fragment/Light mode only) Scalar derivative function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) (Fragment/Light mode only) Vector derivative function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Derivative in 'x' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Derivative in 'x' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Derivative in 'y' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Derivative in 'y' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Sum of absolute derivative " +"in 'x' and 'y'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Sum of absolute derivative " +"in 'x' and 'y'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "VisualShader" msgstr "" @@ -7420,6 +8868,10 @@ msgid "Directory already contains a Godot project." msgstr "" #: editor/project_manager.cpp +msgid "New Game Project" +msgstr "" + +#: editor/project_manager.cpp msgid "Imported Project" msgstr "" @@ -7466,10 +8918,6 @@ msgid "Rename Project" msgstr "" #: editor/project_manager.cpp -msgid "New Game Project" -msgstr "" - -#: editor/project_manager.cpp msgid "Import Existing Project" msgstr "" @@ -7498,10 +8946,6 @@ msgid "Project Name:" msgstr "" #: editor/project_manager.cpp -msgid "Create folder" -msgstr "" - -#: editor/project_manager.cpp msgid "Project Path:" msgstr "" @@ -7510,10 +8954,6 @@ msgid "Project Installation Path:" msgstr "" #: editor/project_manager.cpp -msgid "Browse" -msgstr "" - -#: editor/project_manager.cpp msgid "Renderer:" msgstr "" @@ -7566,8 +9006,8 @@ msgid "" "\n" "If you proceed with opening it, it will be converted to Godot's current " "configuration file format.\n" -"Warning: You will not be able to open the project with previous versions of " -"the engine anymore." +"Warning: You won't be able to open the project with previous versions of the " +"engine anymore." msgstr "" #: editor/project_manager.cpp @@ -7578,8 +9018,8 @@ msgid "" "%s\n" "\n" "Do you want to convert it?\n" -"Warning: You will not be able to open the project with previous versions of " -"the engine anymore." +"Warning: You won't be able to open the project with previous versions of the " +"engine anymore." msgstr "" #: editor/project_manager.cpp @@ -7589,11 +9029,15 @@ msgid "" msgstr "" #: editor/project_manager.cpp +#, fuzzy msgid "" "Can't run project: no main scene defined.\n" -"Please edit the project and set the main scene in \"Project Settings\" under " +"Please edit the project and set the main scene in the Project Settings under " "the \"Application\" category." msgstr "" +"Nuk është përcaktuar një skenë kryesore më parë, zgjidh një?\n" +"Mund ta ndryshosh më vonë në \"Opsionet e Projektit\" nën kategorin " +"'aplikacioni'." #: editor/project_manager.cpp msgid "" @@ -7602,23 +9046,37 @@ msgid "" msgstr "" #: editor/project_manager.cpp -msgid "Are you sure to run more than one project?" +msgid "Are you sure to run %d projects at once?" +msgstr "" + +#: editor/project_manager.cpp +msgid "" +"Remove %d projects from the list?\n" +"The project folders' contents won't be modified." msgstr "" #: editor/project_manager.cpp -msgid "Remove project from the list? (Folder contents will not be modified)" +msgid "" +"Remove this project from the list?\n" +"The project folder's contents won't be modified." +msgstr "" + +#: editor/project_manager.cpp +msgid "" +"Remove all missing projects from the list? (Folders contents will not be " +"modified)" msgstr "" #: editor/project_manager.cpp msgid "" "Language changed.\n" -"The UI will update next time the editor or project manager starts." +"The interface will update after restarting the editor or project manager." msgstr "" #: editor/project_manager.cpp msgid "" -"You are about the scan %s folders for existing Godot projects. Do you " -"confirm?" +"Are you sure to scan %s folders for existing Godot projects?\n" +"This could take a while." msgstr "" #: editor/project_manager.cpp @@ -7642,6 +9100,11 @@ msgid "New Project" msgstr "" #: editor/project_manager.cpp +#, fuzzy +msgid "Remove Missing" +msgstr "Fshi një Pllakë" + +#: editor/project_manager.cpp msgid "Templates" msgstr "" @@ -7659,8 +9122,8 @@ msgstr "" #: editor/project_manager.cpp msgid "" -"You don't currently have any projects.\n" -"Would you like to explore the official example projects in the Asset Library?" +"You currently don't have any projects.\n" +"Would you like to explore official example projects in the Asset Library?" msgstr "" #: editor/project_settings_editor.cpp @@ -7686,8 +9149,9 @@ msgid "" msgstr "" #: editor/project_settings_editor.cpp -msgid "Action '%s' already exists!" -msgstr "" +#, fuzzy +msgid "An action with the name '%s' already exists." +msgstr "Një skedar ose folder me këtë emër ekziston që më parë." #: editor/project_settings_editor.cpp msgid "Rename Input Action Event" @@ -7840,10 +9304,6 @@ msgid "" msgstr "" #: editor/project_settings_editor.cpp -msgid "Already existing" -msgstr "" - -#: editor/project_settings_editor.cpp msgid "Add Input Action" msgstr "" @@ -7908,7 +9368,7 @@ msgid "Override For..." msgstr "" #: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp -msgid "Editor must be restarted for changes to take effect" +msgid "The editor must be restarted for changes to take effect." msgstr "" #: editor/project_settings_editor.cpp @@ -7968,11 +9428,11 @@ msgid "Locales Filter" msgstr "" #: editor/project_settings_editor.cpp -msgid "Show all locales" +msgid "Show All Locales" msgstr "" #: editor/project_settings_editor.cpp -msgid "Show only selected locales" +msgid "Show Selected Locales Only" msgstr "" #: editor/project_settings_editor.cpp @@ -7988,14 +9448,6 @@ msgid "AutoLoad" msgstr "" #: editor/property_editor.cpp -msgid "Ease In" -msgstr "" - -#: editor/property_editor.cpp -msgid "Ease Out" -msgstr "" - -#: editor/property_editor.cpp msgid "Zero" msgstr "" @@ -8068,7 +9520,7 @@ msgid "Suffix" msgstr "" #: editor/rename_dialog.cpp -msgid "Advanced options" +msgid "Advanced Options" msgstr "" #: editor/rename_dialog.cpp @@ -8320,8 +9772,9 @@ msgid "User Interface" msgstr "" #: editor/scene_tree_dock.cpp -msgid "Custom Node" -msgstr "" +#, fuzzy +msgid "Other Node" +msgstr "Fshi Nyjen" #: editor/scene_tree_dock.cpp msgid "Can't operate on nodes from a foreign scene!" @@ -8362,8 +9815,9 @@ msgid "Clear Inheritance" msgstr "" #: editor/scene_tree_dock.cpp -msgid "Open documentation" -msgstr "" +#, fuzzy +msgid "Open Documentation" +msgstr "Hap të Fundit" #: editor/scene_tree_dock.cpp msgid "Add Child Node" @@ -8389,7 +9843,7 @@ msgstr "" msgid "Save Branch as Scene" msgstr "" -#: editor/scene_tree_dock.cpp +#: editor/scene_tree_dock.cpp editor/script_editor_debugger.cpp msgid "Copy Node Path" msgstr "" @@ -8432,6 +9886,20 @@ msgid "Toggle Visible" msgstr "" #: editor/scene_tree_editor.cpp +msgid "Unlock Node" +msgstr "" + +#: editor/scene_tree_editor.cpp +#, fuzzy +msgid "Button Group" +msgstr "Shto te Grupi" + +#: editor/scene_tree_editor.cpp +#, fuzzy +msgid "(Connecting From)" +msgstr "Gabim në Lidhje" + +#: editor/scene_tree_editor.cpp msgid "Node configuration warning:" msgstr "" @@ -8453,9 +9921,10 @@ msgid "" "Click to show groups dock." msgstr "" -#: editor/scene_tree_editor.cpp editor/script_create_dialog.cpp -msgid "Open Script" -msgstr "" +#: editor/scene_tree_editor.cpp +#, fuzzy +msgid "Open Script:" +msgstr "Hap Editorin e Shkrimit" #: editor/scene_tree_editor.cpp msgid "" @@ -8500,71 +9969,77 @@ msgid "Select a Node" msgstr "" #: editor/script_create_dialog.cpp -msgid "Error loading template '%s'" -msgstr "" +#, fuzzy +msgid "Path is empty." +msgstr "Clipboard-i është bosh" #: editor/script_create_dialog.cpp -msgid "Error - Could not create script in filesystem." -msgstr "" +#, fuzzy +msgid "Filename is empty." +msgstr "Clipboard-i është bosh" #: editor/script_create_dialog.cpp -msgid "Error loading script from %s" +msgid "Path is not local." msgstr "" #: editor/script_create_dialog.cpp -msgid "N/A" -msgstr "" +#, fuzzy +msgid "Invalid base path." +msgstr "Rruga e pasaktë." #: editor/script_create_dialog.cpp -msgid "Open Script/Choose Location" -msgstr "" +#, fuzzy +msgid "A directory with the same name exists." +msgstr "Një skedar ose folder me këtë emër ekziston që më parë." #: editor/script_create_dialog.cpp -msgid "Path is empty" -msgstr "" +#, fuzzy +msgid "Invalid extension." +msgstr "Duhet të perdorësh një shtesë të lejuar." #: editor/script_create_dialog.cpp -msgid "Filename is empty" +msgid "Wrong extension chosen." msgstr "" #: editor/script_create_dialog.cpp -msgid "Path is not local" +msgid "Error loading template '%s'" msgstr "" #: editor/script_create_dialog.cpp -msgid "Invalid base path" +msgid "Error - Could not create script in filesystem." msgstr "" #: editor/script_create_dialog.cpp -msgid "Directory of the same name exists" +msgid "Error loading script from %s" msgstr "" #: editor/script_create_dialog.cpp -msgid "File exists, will be reused" +msgid "N/A" msgstr "" #: editor/script_create_dialog.cpp -msgid "Invalid extension" +msgid "Open Script / Choose Location" msgstr "" #: editor/script_create_dialog.cpp -msgid "Wrong extension chosen" +msgid "Open Script" msgstr "" #: editor/script_create_dialog.cpp -msgid "Invalid Path" +msgid "File exists, it will be reused." msgstr "" #: editor/script_create_dialog.cpp -msgid "Invalid class name" -msgstr "" +#, fuzzy +msgid "Invalid class name." +msgstr "Emër i palejuar." #: editor/script_create_dialog.cpp -msgid "Invalid inherited parent name or path" +msgid "Invalid inherited parent name or path." msgstr "" #: editor/script_create_dialog.cpp -msgid "Script valid" +msgid "Script is valid." msgstr "" #: editor/script_create_dialog.cpp @@ -8572,15 +10047,16 @@ msgid "Allowed: a-z, A-Z, 0-9 and _" msgstr "" #: editor/script_create_dialog.cpp -msgid "Built-in script (into scene file)" -msgstr "" +#, fuzzy +msgid "Built-in script (into scene file)." +msgstr "Veprime me skedarët e skenave." #: editor/script_create_dialog.cpp -msgid "Create new script file" +msgid "Will create a new script file." msgstr "" #: editor/script_create_dialog.cpp -msgid "Load existing script file" +msgid "Will load an existing script file." msgstr "" #: editor/script_create_dialog.cpp @@ -8711,6 +10187,10 @@ msgstr "" msgid "Set From Tree" msgstr "" +#: editor/script_editor_debugger.cpp +msgid "Export measures as CSV" +msgstr "" + #: editor/settings_config_dialog.cpp msgid "Erase Shortcut" msgstr "" @@ -8840,6 +10320,15 @@ msgid "GDNativeLibrary" msgstr "" #: 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 "Çaktivizo Rrotulluesin e Përditësimit" + +#: modules/gdnative/gdnative_library_singleton_editor.cpp msgid "Library" msgstr "" @@ -8924,8 +10413,9 @@ msgid "GridMap Fill Selection" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "GridMap Duplicate Selection" -msgstr "" +#, fuzzy +msgid "GridMap Paste Selection" +msgstr "Fshi të Selektuarat" #: modules/gridmap/grid_map_editor_plugin.cpp msgid "GridMap Paint" @@ -8992,18 +10482,6 @@ msgid "Cursor Clear Rotation" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Create Area" -msgstr "" - -#: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Create Exterior Connector" -msgstr "" - -#: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Erase Area" -msgstr "" - -#: modules/gridmap/grid_map_editor_plugin.cpp msgid "Clear Selection" msgstr "" @@ -9354,15 +10832,7 @@ msgid "Available Nodes:" msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Select or create a function to edit graph" -msgstr "" - -#: modules/visual_script/visual_script_editor.cpp -msgid "Edit Signal Arguments:" -msgstr "" - -#: modules/visual_script/visual_script_editor.cpp -msgid "Edit Variable:" +msgid "Select or create a function to edit its graph." msgstr "" #: modules/visual_script/visual_script_editor.cpp @@ -9492,6 +10962,19 @@ msgid "Debug keystore not configured in the Editor Settings nor in the preset." msgstr "" #: platform/android/export/export.cpp +msgid "Custom build requires a valid Android SDK path in Editor Settings." +msgstr "" + +#: platform/android/export/export.cpp +msgid "Invalid Android SDK path for custom build in Editor Settings." +msgstr "" + +#: platform/android/export/export.cpp +msgid "" +"Android project is not installed for compiling. Install from Editor menu." +msgstr "" + +#: platform/android/export/export.cpp msgid "Invalid public key for APK expansion." msgstr "" @@ -9499,6 +10982,34 @@ msgstr "" msgid "Invalid package name:" msgstr "" +#: platform/android/export/export.cpp +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 "" +"Android build version mismatch:\n" +" Template installed: %s\n" +" Godot Version: %s\n" +"Please reinstall Android build template from 'Project' menu." +msgstr "" + +#: platform/android/export/export.cpp +msgid "Building Android Project (gradle)" +msgstr "" + +#: 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 "" + +#: platform/android/export/export.cpp +msgid "No build apk generated at: " +msgstr "" + #: platform/iphone/export/export.cpp msgid "Identifier is missing." msgstr "" @@ -9751,27 +11262,27 @@ msgid "ARVRCamera must have an ARVROrigin node as its parent" msgstr "" #: scene/3d/arvr_nodes.cpp -msgid "ARVRController must have an ARVROrigin node as its parent" +msgid "ARVRController must have an ARVROrigin node as its parent." msgstr "" #: scene/3d/arvr_nodes.cpp msgid "" -"The controller id must not be 0 or this controller will not be bound to an " -"actual controller" +"The controller ID must not be 0 or this controller won't be bound to an " +"actual controller." msgstr "" #: scene/3d/arvr_nodes.cpp -msgid "ARVRAnchor must have an ARVROrigin node as its parent" +msgid "ARVRAnchor must have an ARVROrigin node as its parent." msgstr "" #: scene/3d/arvr_nodes.cpp msgid "" -"The anchor id must not be 0 or this anchor will not be bound to an actual " -"anchor" +"The anchor ID must not be 0 or this anchor won't be bound to an actual " +"anchor." msgstr "" #: scene/3d/arvr_nodes.cpp -msgid "ARVROrigin requires an ARVRCamera child node" +msgid "ARVROrigin requires an ARVRCamera child node." msgstr "" #: scene/3d/baked_lightmap.cpp @@ -9841,8 +11352,8 @@ msgstr "" #: scene/3d/cpu_particles.cpp msgid "" -"CPUParticles animation requires the usage of a SpatialMaterial with " -"\"Billboard Particles\" enabled." +"CPUParticles animation requires the usage of a SpatialMaterial whose " +"Billboard Mode is set to \"Particle Billboard\"." msgstr "" #: scene/3d/gi_probe.cpp @@ -9879,8 +11390,8 @@ msgstr "" #: scene/3d/particles.cpp msgid "" -"Particles animation requires the usage of a SpatialMaterial with \"Billboard " -"Particles\" enabled." +"Particles animation requires the usage of a SpatialMaterial whose Billboard " +"Mode is set to \"Particle Billboard\"." msgstr "" #: scene/3d/path.cpp @@ -9905,7 +11416,7 @@ msgid "Path property must point to a valid Spatial node to work." msgstr "" #: scene/3d/soft_body.cpp -msgid "This body will be ignored until you set a mesh" +msgid "This body will be ignored until you set a mesh." msgstr "" #: scene/3d/soft_body.cpp @@ -10002,7 +11513,7 @@ msgstr "" msgid "" "Container by itself serves no purpose unless a script configures it's " "children placement behavior.\n" -"If you dont't intend to add a script, then please use a plain 'Control' node " +"If you don't intend to add a script, then please use a plain 'Control' node " "instead." msgstr "" @@ -10014,10 +11525,6 @@ msgstr "" msgid "Please Confirm..." msgstr "" -#: scene/gui/file_dialog.cpp -msgid "Go to parent folder." -msgstr "" - #: scene/gui/popup.cpp msgid "" "Popups will hide by default unless you call popup() or any of the popup*() " @@ -10089,3 +11596,25 @@ msgstr "" #: servers/visual/shader_language.cpp msgid "Varyings can only be assigned in vertex function." msgstr "" + +#: servers/visual/shader_language.cpp +msgid "Constants cannot be modified." +msgstr "" + +#~ msgid "Delete selected files?" +#~ msgstr "Fshi skedarët e zgjedhur?" + +#~ msgid "Go to parent folder" +#~ msgstr "Shko te folderi prind" + +#~ msgid "Select device from the list" +#~ msgstr "Zgjidh paisjen nga lista" + +#~ msgid "Open Scene(s)" +#~ msgstr "Hap Skenat" + +#~ msgid "Previous Directory" +#~ msgstr "Direktoria e Mëparshme" + +#~ msgid "Next Directory" +#~ msgstr "Direktoria Tjetër" diff --git a/editor/translations/sr_Cyrl.po b/editor/translations/sr_Cyrl.po index 57e05ca847..19e6536f86 100644 --- a/editor/translations/sr_Cyrl.po +++ b/editor/translations/sr_Cyrl.po @@ -72,6 +72,15 @@ msgstr "" msgid "Mirror" msgstr "Огледало X оÑе" +#: editor/animation_bezier_editor.cpp editor/editor_profiler.cpp +msgid "Time:" +msgstr "Време:" + +#: editor/animation_bezier_editor.cpp +#, fuzzy +msgid "Value:" +msgstr "Ðово име:" + #: editor/animation_bezier_editor.cpp #, fuzzy msgid "Insert Key Here" @@ -165,16 +174,21 @@ msgstr "ЗауÑтави анимацију. (S)" #: editor/animation_track_editor.cpp #, fuzzy -msgid "Add Track" -msgstr "Додај нову траку" +msgid "Animation length (frames)" +msgstr "Дужина анимације (у Ñекундама)." #: editor/animation_track_editor.cpp #, fuzzy -msgid "Animation Length Time (seconds)" +msgid "Animation length (seconds)" msgstr "Дужина анимације (у Ñекундама)." #: editor/animation_track_editor.cpp #, fuzzy +msgid "Add Track" +msgstr "Додај нову траку" + +#: editor/animation_track_editor.cpp +#, fuzzy msgid "Animation Looping" msgstr "Скала анимације." @@ -311,11 +325,13 @@ msgid "Create %d NEW tracks and insert keys?" msgstr "Ðаправите %d нових трака и убаците кључеве?" #: editor/animation_track_editor.cpp editor/create_dialog.cpp -#: editor/editor_audio_buses.cpp editor/editor_plugin_settings.cpp -#: editor/plugin_config_dialog.cpp +#: editor/editor_audio_buses.cpp editor/editor_feature_profile.cpp +#: editor/editor_plugin_settings.cpp editor/plugin_config_dialog.cpp #: editor/plugins/abstract_polygon_2d_editor.cpp #: editor/plugins/mesh_instance_editor_plugin.cpp -#: editor/plugins/particles_editor_plugin.cpp editor/script_create_dialog.cpp +#: editor/plugins/particles_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_create_dialog.cpp msgid "Create" msgstr "Ðаправи" @@ -433,6 +449,23 @@ msgid "" msgstr "" #: editor/animation_track_editor.cpp +msgid "" +"This animation belongs to an imported scene, so changes to imported tracks " +"will not be saved.\n" +"\n" +"To enable the ability to add custom tracks, navigate to the scene's import " +"settings and set\n" +"\"Animation > Storage\" to \"Files\", enable \"Animation > Keep Custom Tracks" +"\", then re-import.\n" +"Alternatively, use an import preset that imports animations to separate " +"files." +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Warning: Editing imported animation" +msgstr "" + +#: editor/animation_track_editor.cpp msgid "Only show tracks from nodes selected in tree." msgstr "" @@ -572,7 +605,8 @@ msgstr "Размера Ñкале:" msgid "Select tracks to copy:" msgstr "" -#: editor/animation_track_editor.cpp editor/editor_properties.cpp +#: editor/animation_track_editor.cpp editor/editor_log.cpp +#: editor/editor_properties.cpp #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp @@ -641,6 +675,11 @@ msgstr "Замени Ñве" msgid "Selection Only" msgstr "Само одабрано" +#: editor/code_editor.cpp editor/plugins/script_text_editor.cpp +#: editor/plugins/text_editor.cpp +msgid "Standard" +msgstr "" + #: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/texture_region_editor_plugin.cpp #: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp @@ -666,21 +705,39 @@ msgid "Line and column numbers." msgstr "" #: editor/connections_dialog.cpp -msgid "Method in target Node must be specified!" +#, fuzzy +msgid "Method in target node must be specified." msgstr "Метода у циљаном чвору мора бити наведена!" #: editor/connections_dialog.cpp +#, fuzzy msgid "" -"Target method not found! Specify a valid method or attach a script to target " -"Node." +"Target method not found. Specify a valid method or attach a script to the " +"target node." msgstr "" "Циљана метода није пронађена! Ðаведите валидну методу или прикачите " "Ñкриптицу на циљани чвор." #: editor/connections_dialog.cpp -msgid "Connect To Node:" +#, fuzzy +msgid "Connect to Node:" msgstr "Повежи Ñа чвором:" +#: editor/connections_dialog.cpp +#, fuzzy +msgid "Connect to Script:" +msgstr "Ðе могу Ñе повезати Ñа хоÑтом:" + +#: editor/connections_dialog.cpp +#, fuzzy +msgid "From Signal:" +msgstr "Сигнали:" + +#: editor/connections_dialog.cpp +#, fuzzy +msgid "Scene does not contain any script." +msgstr "Чвор не Ñадржи геометрију." + #: editor/connections_dialog.cpp editor/editor_autoload_settings.cpp #: editor/groups_editor.cpp editor/plugins/item_list_editor_plugin.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_settings_editor.cpp @@ -688,10 +745,12 @@ msgid "Add" msgstr "Додај" #: editor/connections_dialog.cpp editor/dependency_editor.cpp -#: editor/groups_editor.cpp editor/plugins/animation_player_editor_plugin.cpp +#: editor/editor_feature_profile.cpp editor/groups_editor.cpp +#: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp #: editor/plugins/resource_preloader_editor_plugin.cpp -#: editor/plugins/theme_editor_plugin.cpp editor/project_manager.cpp +#: editor/plugins/theme_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_manager.cpp #: editor/project_settings_editor.cpp msgid "Remove" msgstr "Обриши" @@ -705,21 +764,32 @@ msgid "Extra Call Arguments:" msgstr "Додатни аргументи позива:" #: editor/connections_dialog.cpp -msgid "Path to Node:" -msgstr "Пут ка чвору:" - -#: editor/connections_dialog.cpp -msgid "Make Function" -msgstr "Ðаправи функцију" +#, fuzzy +msgid "Advanced" +msgstr "ПоÑтавке залепљавања" #: editor/connections_dialog.cpp msgid "Deferred" msgstr "Одложен" #: editor/connections_dialog.cpp +msgid "" +"Defers the signal, storing it in a queue and only firing it at idle time." +msgstr "" + +#: editor/connections_dialog.cpp msgid "Oneshot" msgstr "Једном" +#: editor/connections_dialog.cpp +msgid "Disconnects the signal after its first emission." +msgstr "" + +#: editor/connections_dialog.cpp +#, fuzzy +msgid "Cannot connect signal" +msgstr "Везујући Ñигнал:" + #: editor/connections_dialog.cpp editor/dependency_editor.cpp #: editor/export_template_manager.cpp editor/groups_editor.cpp #: editor/plugins/animation_player_editor_plugin.cpp @@ -763,12 +833,12 @@ msgstr "ИÑкопчати" #: editor/connections_dialog.cpp #, fuzzy -msgid "Connect Signal: " +msgid "Connect a Signal to a Method" msgstr "Везујући Ñигнал:" #: editor/connections_dialog.cpp #, fuzzy -msgid "Edit Connection: " +msgid "Edit Connection:" msgstr "Повезивање не уÑпешно" #: editor/connections_dialog.cpp @@ -804,7 +874,6 @@ msgid "Change %s Type" msgstr "Измени уобичајен тип" #: editor/create_dialog.cpp editor/project_settings_editor.cpp -#: modules/visual_script/visual_script_editor.cpp msgid "Change" msgstr "" @@ -836,7 +905,8 @@ msgid "Matches:" msgstr "Подударање:" #: editor/create_dialog.cpp editor/plugin_config_dialog.cpp -#: editor/plugins/asset_library_editor_plugin.cpp editor/property_selector.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/property_selector.cpp #: modules/visual_script/visual_script_property_selector.cpp msgid "Description:" msgstr "ОпиÑ:" @@ -850,17 +920,19 @@ msgid "Dependencies For:" msgstr "ЗавиÑноÑти за:" #: editor/dependency_editor.cpp +#, fuzzy msgid "" "Scene '%s' is currently being edited.\n" -"Changes will not take effect unless reloaded." +"Changes will only take effect when reloaded." msgstr "" "Ðа Ñцени '%s' Ñе тренутно ради.\n" "Промене неће бити у ефекту док Ñе не поново отвори." #: editor/dependency_editor.cpp +#, fuzzy msgid "" "Resource '%s' is in use.\n" -"Changes will take effect when reloaded." +"Changes will only take effect when reloaded." msgstr "" "РеÑÑƒÑ€Ñ '%s' Ñе тренутно кориÑти.\n" "Промене неће бити у ефекту док Ñе поново не отворе." @@ -957,21 +1029,14 @@ msgid "Permanently delete %d item(s)? (No undo!)" msgstr "Трајно обриши %d Ñтавка(и)? (ÐЕМРОПОЗИВÐЊÐ)" #: editor/dependency_editor.cpp -msgid "Owns" -msgstr "ВлаÑништво" - -#: editor/dependency_editor.cpp -msgid "Resources Without Explicit Ownership:" -msgstr "РеÑурÑи без одређеног влаÑника:" +#, fuzzy +msgid "Show Dependencies" +msgstr "ЗавиÑноÑти" #: editor/dependency_editor.cpp editor/editor_node.cpp msgid "Orphan Resource Explorer" msgstr "Преглед повезаних реÑурÑа" -#: editor/dependency_editor.cpp -msgid "Delete selected files?" -msgstr "Обриши одабране датотеке?" - #: editor/dependency_editor.cpp editor/editor_audio_buses.cpp #: editor/editor_file_dialog.cpp editor/editor_node.cpp #: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp @@ -980,6 +1045,14 @@ msgstr "Обриши одабране датотеке?" msgid "Delete" msgstr "Обриши" +#: editor/dependency_editor.cpp +msgid "Owns" +msgstr "ВлаÑништво" + +#: editor/dependency_editor.cpp +msgid "Resources Without Explicit Ownership:" +msgstr "РеÑурÑи без одређеног влаÑника:" + #: editor/dictionary_property_edit.cpp msgid "Change Dictionary Key" msgstr "Измени кључ речника" @@ -1095,7 +1168,7 @@ msgstr "Пакет је инÑталиран уÑпешно!" msgid "Success!" msgstr "УÑпех!" -#: editor/editor_asset_installer.cpp +#: editor/editor_asset_installer.cpp editor/editor_node.cpp #: editor/plugins/asset_library_editor_plugin.cpp msgid "Install" msgstr "ИнÑталирај" @@ -1223,8 +1296,12 @@ msgid "Open Audio Bus Layout" msgstr "Отвори раÑпоред звучног баÑа" #: editor/editor_audio_buses.cpp -msgid "There is no 'res://default_bus_layout.tres' file." -msgstr "Датотека „res://default_bus_layout.tres“ не поÑтоји." +msgid "There is no '%s' file." +msgstr "" + +#: editor/editor_audio_buses.cpp editor/plugins/canvas_item_editor_plugin.cpp +msgid "Layout" +msgstr "РаÑпоред" #: editor/editor_audio_buses.cpp msgid "Invalid file, not an audio bus layout." @@ -1278,18 +1355,25 @@ msgid "Valid characters:" msgstr "Важећа Ñлова:" #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing engine class name." +#, fuzzy +msgid "Must not collide with an existing engine class name." msgstr "Ðеважеће име. Име је резервиÑано за поÑтојећу клаÑу." #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing buit-in type name." +#, fuzzy +msgid "Must not collide with an existing buit-in type name." msgstr "Ðеважеће име. Име је резервиÑано за поÑтојећи уграђени тип." #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing global constant name." +#, fuzzy +msgid "Must not collide with an existing global constant name." msgstr "Ðеважеће име. Име је резервиÑано за поÑтојећу глобалну конÑтанту." #: editor/editor_autoload_settings.cpp +msgid "Keyword cannot be used as an autoload name." +msgstr "" + +#: editor/editor_autoload_settings.cpp msgid "Autoload '%s' already exists!" msgstr "ÐутоматÑко учитавање '%s' већ поÑтоји!" @@ -1317,11 +1401,12 @@ msgstr "Укључи" msgid "Rearrange Autoloads" msgstr "Преуреди аутоматÑка учитавања" -#: editor/editor_autoload_settings.cpp -msgid "Invalid Path." +#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp +#, fuzzy +msgid "Invalid path." msgstr "Ðеважећи пут." -#: editor/editor_autoload_settings.cpp +#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp msgid "File does not exist." msgstr "Датотека не поÑтоји." @@ -1373,7 +1458,8 @@ msgid "[unsaved]" msgstr "" #: editor/editor_dir_dialog.cpp -msgid "Please select a base directory first" +#, fuzzy +msgid "Please select a base directory first." msgstr "Молим, одаберите базни директоријум" #: editor/editor_dir_dialog.cpp @@ -1381,7 +1467,8 @@ msgid "Choose a Directory" msgstr "Одабери директоријум" #: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp -#: editor/filesystem_dock.cpp scene/gui/file_dialog.cpp +#: editor/filesystem_dock.cpp editor/project_manager.cpp +#: scene/gui/file_dialog.cpp msgid "Create Folder" msgstr "Ðаправи директоријум" @@ -1451,6 +1538,176 @@ msgstr "" msgid "Template file not found:" msgstr "ШаблонÑка датотека није пронађена:\n" +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "3D Editor" +msgstr "Уредник" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Script Editor" +msgstr "Отвори уредник Ñкриптица" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Asset Library" +msgstr "Отвори библиотеку ÑредÑтва" + +#: editor/editor_feature_profile.cpp +msgid "Scene Tree Editing" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Import Dock" +msgstr "Увоз" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Node Dock" +msgstr "Режим померања" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Filesystem Dock" +msgstr "Датотечни ÑиÑтем" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Erase profile '%s'? (no undo)" +msgstr "Замени Ñве" + +#: editor/editor_feature_profile.cpp +msgid "Profile must be a valid filename and must not contain '.'" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Profile with this name already exists." +msgstr "Датотека или директоријум Ñа овим именом већ поÑтоји." + +#: editor/editor_feature_profile.cpp +msgid "(Editor Disabled, Properties Disabled)" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "(Properties Disabled)" +msgstr "ОÑобине" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "(Editor Disabled)" +msgstr "Онемогућено" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Class Options:" +msgstr "ОпиÑ:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enable Contextual Editor" +msgstr "Отвори Ñледећи уредник" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enabled Properties:" +msgstr "ОÑобине" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enabled Features:" +msgstr "КарактериÑтике" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enabled Classes:" +msgstr "Потражи клаÑе" + +#: editor/editor_feature_profile.cpp +msgid "File '%s' format is invalid, import aborted." +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "" +"Profile '%s' already exists. Remote it first before importing, import " +"aborted." +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Error saving profile to path: '%s'." +msgstr "Грешка при чувању TileSet!" + +#: editor/editor_feature_profile.cpp +msgid "Unset" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Current Profile" +msgstr "Тренутна верзија:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Make Current" +msgstr "Тренутно:" + +#: editor/editor_feature_profile.cpp +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "New" +msgstr "Ðова" + +#: editor/editor_feature_profile.cpp editor/editor_node.cpp +#: editor/plugins/asset_library_editor_plugin.cpp editor/project_manager.cpp +msgid "Import" +msgstr "Увоз" + +#: editor/editor_feature_profile.cpp editor/editor_node.cpp +#: editor/project_export.cpp +msgid "Export" +msgstr "Извоз" + +#: editor/editor_feature_profile.cpp +msgid "Available Profiles" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enabled Classes" +msgstr "Потражи клаÑе" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Class Options" +msgstr "ОпиÑ" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "New profile name:" +msgstr "Ðово име:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Erase Profile" +msgstr "Обриши TileMap" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Import Profile(s)" +msgstr "још %d датотека/е" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Export Profile" +msgstr "Извези пројекат" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Manage Editor Feature Profiles" +msgstr "Управљај извозним шаблонима" + #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Select Current Folder" msgstr "Одабери тренутни директоријум" @@ -1473,8 +1730,8 @@ msgstr "Копирај пут" msgid "Open in File Manager" msgstr "Покажи у менаџеру датотека" -#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp -#: editor/project_manager.cpp +#: editor/editor_file_dialog.cpp editor/editor_node.cpp +#: editor/filesystem_dock.cpp editor/project_manager.cpp #, fuzzy msgid "Show in File Manager" msgstr "Покажи у менаџеру датотека" @@ -1534,7 +1791,7 @@ msgstr "Ðапред" msgid "Go Up" msgstr "Иди горе" -#: editor/editor_file_dialog.cpp +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Toggle Hidden Files" msgstr "Прикажи Ñакривене датотеке" @@ -1568,8 +1825,9 @@ msgstr "Претодни Ñпрат" msgid "Next Folder" msgstr "Ðаправи директоријум" -#: editor/editor_file_dialog.cpp -msgid "Go to parent folder" +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp +#, fuzzy +msgid "Go to parent folder." msgstr "Иди у родитељÑки директоријум" #: editor/editor_file_dialog.cpp @@ -1577,6 +1835,11 @@ msgstr "Иди у родитељÑки директоријум" msgid "(Un)favorite current folder." msgstr "ÐеуÑпех при прављењу директоријума." +#: editor/editor_file_dialog.cpp +#, fuzzy +msgid "Toggle visibility of hidden files." +msgstr "Прикажи Ñакривене датотеке" + #: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp #, fuzzy msgid "View items as a grid of thumbnails." @@ -1593,6 +1856,7 @@ msgstr "Директоријуми и датотеке:" #: editor/editor_file_dialog.cpp editor/plugins/sprite_editor_plugin.cpp #: editor/plugins/style_box_editor_plugin.cpp +#: editor/plugins/theme_editor_plugin.cpp msgid "Preview:" msgstr "Преглед:" @@ -1609,6 +1873,12 @@ msgid "ScanSources" msgstr "Скенирање извора" #: editor/editor_file_system.cpp +msgid "" +"There are multiple importers for different types pointing to file %s, import " +"aborted" +msgstr "" + +#: editor/editor_file_system.cpp msgid "(Re)Importing Assets" msgstr "(Поновно) Увожење ÑредÑтава" @@ -1810,6 +2080,11 @@ msgstr "" msgid "Output:" msgstr "Излаз:" +#: editor/editor_log.cpp editor/plugins/tile_map_editor_plugin.cpp +#, fuzzy +msgid "Copy Selection" +msgstr "Обриши одабрано" + #: editor/editor_log.cpp editor/editor_profiler.cpp #: editor/editor_properties.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp @@ -1960,9 +2235,10 @@ msgstr "" "начин рада." #: editor/editor_node.cpp +#, fuzzy msgid "" "This resource belongs to a scene that was instanced or inherited.\n" -"Changes to it will not be kept when saving the current scene." +"Changes to it won't be kept when saving the current scene." msgstr "" "Овај реÑÑƒÑ€Ñ Ð¿Ñ€Ð¸Ð¿Ð°Ð´Ð° Ñцени која је или коришћена или наÑлеђена.\n" "Промене нећу бити задржане при чувању тренутне Ñцене." @@ -1976,8 +2252,9 @@ msgstr "" "поÑтавке у прозору за увоз и онда га поново унеÑите." #: editor/editor_node.cpp +#, fuzzy msgid "" -"This scene was imported, so changes to it will not be kept.\n" +"This scene was imported, so changes to it won't be kept.\n" "Instancing it or inheriting will allow making changes to it.\n" "Please read the documentation relevant to importing scenes to better " "understand this workflow." @@ -1988,8 +2265,9 @@ msgstr "" "начин рада." #: editor/editor_node.cpp +#, fuzzy msgid "" -"This is a remote object so changes to it will not be kept.\n" +"This is a remote object, so changes to it won't be kept.\n" "Please read the documentation relevant to debugging to better understand " "this workflow." msgstr "" @@ -2002,36 +2280,6 @@ msgid "There is no defined scene to run." msgstr "Ðе поÑтоји дефиниÑана Ñцена за покретање." #: editor/editor_node.cpp -msgid "" -"No main scene has ever been defined, select one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" -"Главна Ñцена није дефиниÑана, одаберите једну?\n" -"Можете је променити каÑније у „ПоÑтавке пројекта“ иÑпод категорије " -"„апликација“." - -#: editor/editor_node.cpp -msgid "" -"Selected scene '%s' does not exist, select a valid one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" -"Одабрана Ñцена '%s' не поÑтоји, одаберите важећу?\n" -"Можете је променити каÑније у „ПоÑтавке пројекта“ иÑпод категорије " -"„апликација“." - -#: editor/editor_node.cpp -msgid "" -"Selected scene '%s' is not a scene file, select a valid one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" -"Одабрана Ñцена '%s' није датотека Ñцене, одаберите бажећу?\n" -"Можете је променити каÑније у „ПоÑтавке пројекта“ иÑпод категорије " -"„апликација“." - -#: editor/editor_node.cpp msgid "Current scene was never saved, please save it prior to running." msgstr "Тренутна Ñцена није Ñачувана, молим Ñачувајте је пре покретања." @@ -2039,7 +2287,7 @@ msgstr "Тренутна Ñцена није Ñачувана, молим Ñач msgid "Could not start subprocess!" msgstr "Ðе могу покренути подпроцеÑ!" -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/filesystem_dock.cpp msgid "Open Scene" msgstr "Отвори Ñцену" @@ -2048,6 +2296,11 @@ msgid "Open Base Scene" msgstr "Отвори базну Ñцену" #: editor/editor_node.cpp +#, fuzzy +msgid "Quick Open..." +msgstr "Брзо отварање Ñцене..." + +#: editor/editor_node.cpp msgid "Quick Open Scene..." msgstr "Брзо отварање Ñцене..." @@ -2224,6 +2477,36 @@ msgid "Clear Recent Scenes" msgstr "ОчиÑти недавне Ñцене" #: editor/editor_node.cpp +msgid "" +"No main scene has ever been defined, select one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" +"Главна Ñцена није дефиниÑана, одаберите једну?\n" +"Можете је променити каÑније у „ПоÑтавке пројекта“ иÑпод категорије " +"„апликација“." + +#: editor/editor_node.cpp +msgid "" +"Selected scene '%s' does not exist, select a valid one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" +"Одабрана Ñцена '%s' не поÑтоји, одаберите важећу?\n" +"Можете је променити каÑније у „ПоÑтавке пројекта“ иÑпод категорије " +"„апликација“." + +#: editor/editor_node.cpp +msgid "" +"Selected scene '%s' is not a scene file, select a valid one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" +"Одабрана Ñцена '%s' није датотека Ñцене, одаберите бажећу?\n" +"Можете је променити каÑније у „ПоÑтавке пројекта“ иÑпод категорије " +"„апликација“." + +#: editor/editor_node.cpp msgid "Save Layout" msgstr "Сачувај раÑпоред" @@ -2252,6 +2535,19 @@ msgstr "Покрени Ñцену" msgid "Close Tab" msgstr "Затвори оÑтале зупчанике" +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +msgid "Close Other Tabs" +msgstr "Затвори оÑтале зупчанике" + +#: editor/editor_node.cpp +msgid "Close Tabs to the Right" +msgstr "" + +#: editor/editor_node.cpp +#, fuzzy +msgid "Close All Tabs" +msgstr "Затвори Ñве" + #: editor/editor_node.cpp msgid "Switch Scene Tab" msgstr "Промени ÑценÑки таб" @@ -2375,10 +2671,6 @@ msgstr "Пројекат" msgid "Project Settings" msgstr "ПоÑтавке пројекта" -#: editor/editor_node.cpp editor/project_export.cpp -msgid "Export" -msgstr "Извоз" - #: editor/editor_node.cpp editor/plugins/tile_set_editor_plugin.cpp msgid "Tools" msgstr "Ðлати" @@ -2389,6 +2681,10 @@ msgid "Open Project Data Folder" msgstr "Отвори менаџер пројекта?" #: editor/editor_node.cpp +msgid "Install Android Build Template" +msgstr "" + +#: editor/editor_node.cpp msgid "Quit to Project List" msgstr "Изађи у лиÑту пројекта" @@ -2514,6 +2810,11 @@ msgstr "" msgid "Open Editor Settings Folder" msgstr "ПоÑтавке уредника" +#: editor/editor_node.cpp +#, fuzzy +msgid "Manage Editor Features" +msgstr "Управљај извозним шаблонима" + #: editor/editor_node.cpp editor/project_export.cpp msgid "Manage Export Templates" msgstr "Управљај извозним шаблонима" @@ -2526,6 +2827,7 @@ msgstr "Помоћ" #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp #: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp #: editor/project_settings_editor.cpp editor/rename_dialog.cpp msgid "Search" msgstr "Тражи" @@ -2617,11 +2919,6 @@ msgstr "Ðжурирај промене" msgid "Disable Update Spinner" msgstr "ИÑкључи индикатор ажурирања" -#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp -#: editor/project_manager.cpp -msgid "Import" -msgstr "Увоз" - #: editor/editor_node.cpp msgid "FileSystem" msgstr "Датотечни ÑиÑтем" @@ -2648,6 +2945,28 @@ msgid "Don't Save" msgstr "Ðемој Ñачувати" #: editor/editor_node.cpp +msgid "Android build template is missing, please install relevant templates." +msgstr "" + +#: editor/editor_node.cpp +#, fuzzy +msgid "Manage Templates" +msgstr "Управљај извозним шаблонима" + +#: editor/editor_node.cpp +msgid "" +"This will install the Android project for custom builds.\n" +"Note that, in order to use it, it needs to be enabled per export preset." +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"Android build template is already installed and it won't be overwritten.\n" +"Remove the \"build\" directory manually before attempting this operation " +"again." +msgstr "" + +#: editor/editor_node.cpp msgid "Import Templates From ZIP File" msgstr "Увези шаблоне из ZIP датотеке" @@ -2773,10 +3092,6 @@ msgid "Physics Frame %" msgstr "Слика физике %" #: editor/editor_profiler.cpp -msgid "Time:" -msgstr "Време:" - -#: editor/editor_profiler.cpp msgid "Inclusive" msgstr "Закључно" @@ -2918,10 +3233,6 @@ msgid "Remove Item" msgstr "Обриши Ñтавку" #: editor/editor_run_native.cpp -msgid "Select device from the list" -msgstr "Одабери уређај Ñа лиÑте" - -#: editor/editor_run_native.cpp msgid "" "No runnable export preset found for this platform.\n" "Please add a runnable preset in the export menu." @@ -2957,6 +3268,10 @@ msgstr "Да ли Ñте заборавили методу „_run“?" msgid "Select Node(s) to Import" msgstr "Одабери чвор/ове за увоз" +#: editor/editor_sub_scene.cpp editor/project_manager.cpp +msgid "Browse" +msgstr "" + #: editor/editor_sub_scene.cpp msgid "Scene Path:" msgstr "Пут Ñцене:" @@ -3125,6 +3440,11 @@ msgid "SSL Handshake Error" msgstr "Грешка SSL руковања" #: editor/export_template_manager.cpp +#, fuzzy +msgid "Uncompressing Android Build Sources" +msgstr "ДекомпреÑија ÑредÑтва" + +#: editor/export_template_manager.cpp msgid "Current Version:" msgstr "Тренутна верзија:" @@ -3141,7 +3461,8 @@ msgid "Remove Template" msgstr "Обриши шаблон" #: editor/export_template_manager.cpp -msgid "Select template file" +#, fuzzy +msgid "Select Template File" msgstr "Одабери шаблонÑку датотеку" #: editor/export_template_manager.cpp @@ -3209,7 +3530,8 @@ msgid "No name provided." msgstr "Име није дато." #: editor/filesystem_dock.cpp -msgid "Provided name contains invalid characters" +#, fuzzy +msgid "Provided name contains invalid characters." msgstr "Дато име Ñадржи неважећа Ñлова" #: editor/filesystem_dock.cpp @@ -3240,7 +3562,12 @@ msgstr "Преименовање директоријума:" #: editor/filesystem_dock.cpp #, fuzzy -msgid "Open Scene(s)" +msgid "New Inherited Scene" +msgstr "Ðова наÑлеђена Ñцена..." + +#: editor/filesystem_dock.cpp +#, fuzzy +msgid "Open Scenes" msgstr "Отвори Ñцену" #: editor/filesystem_dock.cpp @@ -3249,12 +3576,12 @@ msgstr "Додај инÑтанцу" #: editor/filesystem_dock.cpp #, fuzzy -msgid "Add to favorites" +msgid "Add to Favorites" msgstr "Омиљене:" #: editor/filesystem_dock.cpp #, fuzzy -msgid "Remove from favorites" +msgid "Remove from Favorites" msgstr "Обриши из групе" #: editor/filesystem_dock.cpp @@ -3288,12 +3615,14 @@ msgstr "Брзо отварање Ñкриптице..." msgid "New Resource..." msgstr "Сачувај реÑÑƒÑ€Ñ ÐºÐ°Ð¾..." -#: editor/filesystem_dock.cpp editor/script_editor_debugger.cpp +#: editor/filesystem_dock.cpp editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_editor_debugger.cpp #, fuzzy msgid "Expand All" msgstr "Прошири Ñве" -#: editor/filesystem_dock.cpp editor/script_editor_debugger.cpp +#: editor/filesystem_dock.cpp editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_editor_debugger.cpp #, fuzzy msgid "Collapse All" msgstr "Умањи Ñве" @@ -3306,12 +3635,14 @@ msgid "Rename" msgstr "Преименуј" #: editor/filesystem_dock.cpp -msgid "Previous Directory" -msgstr "Претодни директоријум" +#, fuzzy +msgid "Previous Folder/File" +msgstr "Претодни Ñпрат" #: editor/filesystem_dock.cpp -msgid "Next Directory" -msgstr "Следећи директоријум" +#, fuzzy +msgid "Next Folder/File" +msgstr "Ðаправи директоријум" #: editor/filesystem_dock.cpp msgid "Re-Scan Filesystem" @@ -3319,7 +3650,7 @@ msgstr "Поново Ñкенирај датотеке" #: editor/filesystem_dock.cpp #, fuzzy -msgid "Toggle split mode" +msgid "Toggle Split Mode" msgstr "Промени режим" #: editor/filesystem_dock.cpp @@ -3352,7 +3683,7 @@ msgstr "" msgid "Create Script" msgstr "Ðаправи Ñкриптицу" -#: editor/find_in_files.cpp +#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp #, fuzzy msgid "Find in Files" msgstr "Ðађи плочицу" @@ -3372,6 +3703,12 @@ msgstr "ПреÑавији линију" msgid "Filters:" msgstr "Филтери..." +#: editor/find_in_files.cpp +msgid "" +"Include the files with the following extensions. Add or remove them in " +"ProjectSettings." +msgstr "" + #: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp msgid "Find..." @@ -3840,7 +4177,7 @@ msgstr "Ðнимациони чвор" #: editor/plugins/animation_blend_space_2d_editor.cpp #, fuzzy -msgid "Triangle already exists" +msgid "Triangle already exists." msgstr "Грешка: име анимације већ поÑтоји!" #: editor/plugins/animation_blend_space_2d_editor.cpp @@ -3922,7 +4259,6 @@ msgid "Node Moved" msgstr "Режим померања" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Unable to connect, port may be in use or connection may be invalid." msgstr "" @@ -3997,8 +4333,9 @@ msgid "Edit Filtered Tracks:" msgstr "Уреди филтере" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -msgid "Enable filtering" -msgstr "" +#, fuzzy +msgid "Enable Filtering" +msgstr "Измени дужину анимације" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Toggle Autoplay" @@ -4117,10 +4454,6 @@ msgid "Animation" msgstr "Ðнимација" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "New" -msgstr "Ðова" - -#: editor/plugins/animation_player_editor_plugin.cpp #, fuzzy msgid "Edit Transitions..." msgstr "Прелази" @@ -4139,12 +4472,13 @@ msgid "Autoplay on Load" msgstr "ÐутоматÑко пуштање након учитавања" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Onion Skinning" +msgid "Enable Onion Skinning" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Enable Onion Skinning" -msgstr "" +#, fuzzy +msgid "Onion Skinning Options" +msgstr "ПоÑтавке залепљавања" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Directions" @@ -4704,13 +5038,19 @@ msgid "Move CanvasItem" msgstr "Уреди CanvasItem" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"Children of containers have their anchors and margins values overridden by " +"their parent." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Presets for the anchors and margins values of a Control node." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "" -"Children of containers have their anchors and margins values overridden by " -"their parent." +"When active, moving Control nodes changes their anchors instead of their " +"margins." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4726,10 +5066,52 @@ msgid "Change Anchors" msgstr "Промени Ñидра" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Lock Selected" +msgstr "Избор алатки" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Unlock Selected" +msgstr "Избор алатки" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Group Selected" +msgstr "Обриши одабрано" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Ungroup Selected" +msgstr "Обриши одабрано" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Paste Pose" msgstr "Ðалепи позу" #: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Create Custom Bone(s) from Node(s)" +msgstr "Ðаправи тачке емиÑије од мреже" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Clear Bones" +msgstr "Обриши позу" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Make IK Chain" +msgstr "Ðаправи IK ланац" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Clear IK Chain" +msgstr "ОчиÑти IK ланац" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "" "Warning: Children of a container get their position and size determined only " "by their parent." @@ -4808,7 +5190,8 @@ msgid "Snapping Options" msgstr "ПоÑтавке залепљавања" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to grid" +#, fuzzy +msgid "Snap to Grid" msgstr "Залепи за мрежу" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4829,32 +5212,38 @@ msgid "Use Pixel Snap" msgstr "КориÑти лепљење за пикÑеле" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Smart snapping" +#, fuzzy +msgid "Smart Snapping" msgstr "Паметно лепљење" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to parent" +#, fuzzy +msgid "Snap to Parent" msgstr "Лепи за родитеља" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node anchor" +#, fuzzy +msgid "Snap to Node Anchor" msgstr "Лепи за Ñидро чвора" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node sides" +#, fuzzy +msgid "Snap to Node Sides" msgstr "Лепи за Ñтране чвора" #: editor/plugins/canvas_item_editor_plugin.cpp #, fuzzy -msgid "Snap to node center" +msgid "Snap to Node Center" msgstr "Лепи за Ñидро чвора" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to other nodes" +#, fuzzy +msgid "Snap to Other Nodes" msgstr "Лепи за оÑтале чворове" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to guides" +#, fuzzy +msgid "Snap to Guides" msgstr "Залепи за мрежу" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4868,10 +5257,12 @@ msgid "Unlock the selected object (can be moved)." msgstr "Откључај одабрани објекат (могуће померање)." #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Makes sure the object's children are not selectable." msgstr "Уверава Ñе да деца објекта не могу бити изабрана." #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Restores the object's children's ability to be selected." msgstr "Врати могућноÑÑ‚ бирања деце објекта." @@ -4885,14 +5276,6 @@ msgid "Show Bones" msgstr "Покажи коÑти" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Make IK Chain" -msgstr "Ðаправи IK ланац" - -#: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Clear IK Chain" -msgstr "ОчиÑти IK ланац" - -#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Make Custom Bone(s) from Node(s)" msgstr "" @@ -4946,8 +5329,8 @@ msgid "Frame Selection" msgstr "Ибор рама" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Layout" -msgstr "РаÑпоред" +msgid "Preview Canvas Scale" +msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Translation mask for inserting keys." @@ -5000,6 +5383,11 @@ msgid "Divide grid step by 2" msgstr "Подели корак мреже Ñа 2" #: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Pan View" +msgstr "Поглед позади" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Add %s" msgstr "Додај %s" @@ -5022,7 +5410,8 @@ msgid "Error instancing scene from %s" msgstr "Грешка при прављењу Ñцене од %s" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Change default type" +#, fuzzy +msgid "Change Default Type" msgstr "Измени уобичајен тип" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -5112,20 +5501,22 @@ msgid "Create Emission Points From Node" msgstr "Ðаправи тачке емиÑије од чвора" #: editor/plugins/curve_editor_plugin.cpp -msgid "Flat0" +#, fuzzy +msgid "Flat 0" msgstr "Раван0" #: editor/plugins/curve_editor_plugin.cpp -msgid "Flat1" +#, fuzzy +msgid "Flat 1" msgstr "Раван1" -#: editor/plugins/curve_editor_plugin.cpp -msgid "Ease in" -msgstr "Улазна транзиција" +#: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp +msgid "Ease In" +msgstr "" -#: editor/plugins/curve_editor_plugin.cpp -msgid "Ease out" -msgstr "Излазна транзиција" +#: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp +msgid "Ease Out" +msgstr "" #: editor/plugins/curve_editor_plugin.cpp msgid "Smoothstep" @@ -5144,23 +5535,28 @@ msgid "Load Curve Preset" msgstr "Учитај поÑтавке криве" #: editor/plugins/curve_editor_plugin.cpp -msgid "Add point" +#, fuzzy +msgid "Add Point" msgstr "Додај тачку" #: editor/plugins/curve_editor_plugin.cpp -msgid "Remove point" +#, fuzzy +msgid "Remove Point" msgstr "Обриши тачку" #: editor/plugins/curve_editor_plugin.cpp -msgid "Left linear" +#, fuzzy +msgid "Left Linear" msgstr "Леви линеарни" #: editor/plugins/curve_editor_plugin.cpp -msgid "Right linear" +#, fuzzy +msgid "Right Linear" msgstr "ДеÑни линеарни" #: editor/plugins/curve_editor_plugin.cpp -msgid "Load preset" +#, fuzzy +msgid "Load Preset" msgstr "Учитај подешавања" #: editor/plugins/curve_editor_plugin.cpp @@ -5216,11 +5612,17 @@ msgid "This doesn't work on scene root!" msgstr "Ово не ради на корену Ñцене!" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Trimesh Shape" +#, fuzzy +msgid "Create Trimesh Static Shape" msgstr "Ðаправи фигуру од троуглова" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Shape" +msgid "Failed creating shapes!" +msgstr "" + +#: editor/plugins/mesh_instance_editor_plugin.cpp +#, fuzzy +msgid "Create Convex Shape(s)" msgstr "Ðаправи конвекÑну фигуру" #: editor/plugins/mesh_instance_editor_plugin.cpp @@ -5273,15 +5675,12 @@ msgid "Create Trimesh Static Body" msgstr "Ðаправи троуглаÑто Ñтатично тело" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Static Body" -msgstr "Ðаправи конвекÑно Ñтатично тело" - -#: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Trimesh Collision Sibling" msgstr "Ðаправи троуглаÑтог Ñударног брата" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Collision Sibling" +#, fuzzy +msgid "Create Convex Collision Sibling(s)" msgstr "Ðаправи конвекÑног Ñударног брата" #: editor/plugins/mesh_instance_editor_plugin.cpp @@ -5437,6 +5836,12 @@ msgid "Create Navigation Polygon" msgstr "Ðаправи навигациони полигон" #: editor/plugins/particles_2d_editor_plugin.cpp +#: editor/plugins/particles_editor_plugin.cpp +#, fuzzy +msgid "Convert to CPUParticles" +msgstr "Претвори у велика Ñлова" + +#: editor/plugins/particles_2d_editor_plugin.cpp #, fuzzy msgid "Generating Visibility Rect" msgstr "Генериши правоугаоник видљивоÑти" @@ -5451,12 +5856,6 @@ msgstr "Тачка Ñе Ñамо може поÑтавити у ParticlesMateria #: editor/plugins/particles_2d_editor_plugin.cpp #: editor/plugins/particles_editor_plugin.cpp -#, fuzzy -msgid "Convert to CPUParticles" -msgstr "Претвори у велика Ñлова" - -#: editor/plugins/particles_2d_editor_plugin.cpp -#: editor/plugins/particles_editor_plugin.cpp msgid "Generation Time (sec):" msgstr "Време генериÑања (Ñек.):" @@ -5596,7 +5995,7 @@ msgstr "Затвори криву" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp editor/plugins/theme_editor_plugin.cpp -#: editor/project_export.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_export.cpp msgid "Options" msgstr "Опција" @@ -5648,7 +6047,7 @@ msgstr "Подели Ñегмент (у криви)" #: editor/plugins/physical_bone_plugin.cpp #, fuzzy -msgid "Move joint" +msgid "Move Joint" msgstr "Помери тачку" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5900,7 +6299,6 @@ msgid "Open in Editor" msgstr "" #: editor/plugins/resource_preloader_editor_plugin.cpp -#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Load Resource" msgstr "Учитај реÑурÑ" @@ -6006,6 +6404,11 @@ msgid "%s Class Reference" msgstr " референца клаÑе" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp +msgid "Find Next" +msgstr "Тражи Ñледећи" + +#: editor/plugins/script_editor_plugin.cpp msgid "Toggle alphabetical sorting of the method list." msgstr "" @@ -6091,10 +6494,6 @@ msgstr "Затвори документацију" msgid "Close All" msgstr "Затвори Ñве" -#: editor/plugins/script_editor_plugin.cpp -msgid "Close Other Tabs" -msgstr "Затвори оÑтале зупчанике" - #: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp msgid "Run" msgstr "Покрени" @@ -6103,11 +6502,6 @@ msgstr "Покрени" msgid "Toggle Scripts Panel" msgstr "Прикажи панел Ñкриптица" -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/script_text_editor.cpp -msgid "Find Next" -msgstr "Тражи Ñледећи" - #: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp msgid "Step Over" msgstr "Корак преко" @@ -6135,7 +6529,8 @@ msgid "Debug with External Editor" msgstr "Дебагуј Ñа Ñпољашњим уредником" #: editor/plugins/script_editor_plugin.cpp -msgid "Open Godot online documentation" +#, fuzzy +msgid "Open Godot online documentation." msgstr "Отвори Godot онлајн документацију" #: editor/plugins/script_editor_plugin.cpp @@ -6143,7 +6538,7 @@ msgid "Request Docs" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Help improve the Godot documentation by giving feedback" +msgid "Help improve the Godot documentation by giving feedback." msgstr "" #: editor/plugins/script_editor_plugin.cpp @@ -6171,10 +6566,12 @@ msgstr "" "Која акција Ñе треба предузети?:" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp msgid "Reload" msgstr "ОÑвежи" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp msgid "Resave" msgstr "Поново Ñачувај" @@ -6189,6 +6586,33 @@ msgstr "Потражи помоћ" #: editor/plugins/script_text_editor.cpp #, fuzzy +msgid "Connections to method:" +msgstr "Повежи Ñа чвором:" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Source" +msgstr "" +"\n" +"Извор: " + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Signal" +msgstr "Сигнали" + +#: editor/plugins/script_text_editor.cpp +msgid "Target" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "" +"Missing connected method '%s' for signal '%s' from node '%s' to node '%s'." +msgstr "Повежи '%s' Ñа '%s'" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy msgid "Line" msgstr "Линија:" @@ -6201,10 +6625,6 @@ msgstr "" msgid "Go to Function" msgstr "Иди на функцију..." -#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp -msgid "Standard" -msgstr "" - #: editor/plugins/script_text_editor.cpp msgid "Only resources from filesystem can be dropped." msgstr "Само реÑурÑи из датотечног ÑиÑтема Ñе могу убацити." @@ -6238,6 +6658,11 @@ msgstr "Велика Ñлова" msgid "Syntax Highlighter" msgstr "" +#: editor/plugins/script_text_editor.cpp +#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp +msgid "Bookmarks" +msgstr "" + #: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" @@ -6266,6 +6691,26 @@ msgstr "Коментариши" #: editor/plugins/script_text_editor.cpp #, fuzzy +msgid "Toggle Bookmark" +msgstr "Укљ./ИÑкљ. режим Ñлободног гледања" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Go to Next Bookmark" +msgstr "Иди на Ñледећу прекудну тачку" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Go to Previous Bookmark" +msgstr "Иди на претходну прекидну тачку" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Remove All Bookmarks" +msgstr "Обриши Ñве Ñтавке" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy msgid "Fold/Unfold Line" msgstr "Откриј линију" @@ -6346,6 +6791,15 @@ msgid "Contextual Help" msgstr "КонтекÑтуална помоћ" #: editor/plugins/shader_editor_plugin.cpp +#, fuzzy +msgid "" +"This shader has been modified on on disk.\n" +"What action should be taken?" +msgstr "" +"Следеће датотеке Ñу нове на диÑку.\n" +"Која акција Ñе треба предузети?:" + +#: editor/plugins/shader_editor_plugin.cpp msgid "Shader" msgstr "Шејдер" @@ -6700,7 +7154,8 @@ msgid "Right View" msgstr "Поглед Ñ Ð´ÐµÑна" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Switch Perspective/Orthogonal view" +#, fuzzy +msgid "Switch Perspective/Orthogonal View" msgstr "Пребаци у перÑпективни/ортогонални поглед" #: editor/plugins/spatial_editor_plugin.cpp @@ -6740,12 +7195,14 @@ msgid "Toggle Freelook" msgstr "Укљ./ИÑкљ. режим Ñлободног гледања" #: editor/plugins/spatial_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Transform" msgstr "ТранÑформација" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Snap object to floor" -msgstr "" +#, fuzzy +msgid "Snap Object to Floor" +msgstr "Залепи за мрежу" #: editor/plugins/spatial_editor_plugin.cpp msgid "Transform Dialog..." @@ -6891,43 +7348,43 @@ msgid "Invalid geometry, can't replace by mesh." msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Invalid geometry, can't create polygon." -msgstr "" - -#: editor/plugins/sprite_editor_plugin.cpp -msgid "Invalid geometry, can't create collision polygon." -msgstr "" - -#: editor/plugins/sprite_editor_plugin.cpp -msgid "Invalid geometry, can't create light occluder." -msgstr "" - -#: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy -msgid "Sprite" -msgstr "Ðалепи оквир" - -#: editor/plugins/sprite_editor_plugin.cpp #, fuzzy msgid "Convert to Mesh2D" msgstr "Претвори у велика Ñлова" #: editor/plugins/sprite_editor_plugin.cpp +msgid "Invalid geometry, can't create polygon." +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp #, fuzzy msgid "Convert to Polygon2D" msgstr "Помери полигон" #: editor/plugins/sprite_editor_plugin.cpp +msgid "Invalid geometry, can't create collision polygon." +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp #, fuzzy msgid "Create CollisionPolygon2D Sibling" msgstr "Ðаправи навигациони полигон" #: editor/plugins/sprite_editor_plugin.cpp +msgid "Invalid geometry, can't create light occluder." +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp #, fuzzy msgid "Create LightOccluder2D Sibling" msgstr "Ðаправи оÑенчен полигон" #: editor/plugins/sprite_editor_plugin.cpp +#, fuzzy +msgid "Sprite" +msgstr "Ðалепи оквир" + +#: editor/plugins/sprite_editor_plugin.cpp msgid "Simplification: " msgstr "" @@ -6946,14 +7403,24 @@ msgid "Settings:" msgstr "ПоÑтавке" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "ERROR: Couldn't load frame resource!" -msgstr "Грешка: неуÑпех при учитавању реÑурÑа оквира!" +#, fuzzy +msgid "No Frames Selected" +msgstr "Ибор рама" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Add %d Frame(s)" +msgstr "Додај оквир" #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Add Frame" msgstr "Додај оквир" #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "ERROR: Couldn't load frame resource!" +msgstr "Грешка: неуÑпех при учитавању реÑурÑа оквира!" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Resource clipboard is empty or not a texture!" msgstr "РеÑÑƒÑ€Ñ Ð·Ð° копирање не поÑтоји или није текÑтура!" @@ -6998,6 +7465,15 @@ msgid "Animation Frames:" msgstr "Ðнимационе Ñлике" #: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Add a Texture from File" +msgstr "Сними од пикÑела" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Add Frames from a Sprite Sheet" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Insert Empty (Before)" msgstr "Уметни празан (иза)" @@ -7015,6 +7491,30 @@ msgstr "Помери (иÑпред)" #: editor/plugins/sprite_frames_editor_plugin.cpp #, fuzzy +msgid "Select Frames" +msgstr "Одабери режим" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Horizontal:" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Vertical:" +msgstr "Тачке" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Select/Clear All Frames" +msgstr "Одабери Ñве" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Create Frames from Sprite Sheet" +msgstr "Ðаправи од Ñцене" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy msgid "SpriteFrames" msgstr "Ðалепи оквир" @@ -7082,12 +7582,13 @@ msgstr "Додај Ñве" msgid "Remove All Items" msgstr "Обриши Ñве Ñтавке" -#: editor/plugins/theme_editor_plugin.cpp +#: editor/plugins/theme_editor_plugin.cpp editor/project_manager.cpp msgid "Remove All" msgstr "Обриши Ñве" #: editor/plugins/theme_editor_plugin.cpp -msgid "Edit theme..." +#, fuzzy +msgid "Edit Theme" msgstr "Измени тему..." #: editor/plugins/theme_editor_plugin.cpp @@ -7116,19 +7617,24 @@ msgstr "Ðаправи од тренутне теме уредника" #: editor/plugins/theme_editor_plugin.cpp #, fuzzy -msgid "CheckBox Radio1" -msgstr "CheckBox Radio1" +msgid "Toggle Button" +msgstr "Укљ./ИÑкљ. аутоматÑко покретање" #: editor/plugins/theme_editor_plugin.cpp #, fuzzy -msgid "CheckBox Radio2" -msgstr "CheckBox Radio2" +msgid "Disabled Button" +msgstr "Онемогућено" #: editor/plugins/theme_editor_plugin.cpp msgid "Item" msgstr "Ставка" #: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Disabled Item" +msgstr "Онемогућено" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Check Item" msgstr "" @@ -7147,6 +7653,24 @@ msgid "Checked Radio Item" msgstr "CheckBox Radio1" #: editor/plugins/theme_editor_plugin.cpp +msgid "Named Sep." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Submenu" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Item 1" +msgstr "Ставка" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Item 2" +msgstr "Ставка" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Has" msgstr "Има" @@ -7156,8 +7680,8 @@ msgstr "Много" #: editor/plugins/theme_editor_plugin.cpp #, fuzzy -msgid "Has,Many,Options" -msgstr "Има,много,неколико,опција!" +msgid "Disabled LineEdit" +msgstr "Онемогућено" #: editor/plugins/theme_editor_plugin.cpp #, fuzzy @@ -7174,6 +7698,20 @@ msgid "Tab 3" msgstr "Tab 3" #: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Editable Item" +msgstr "Измени тему..." + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Subtree" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Has,Many,Options" +msgstr "Има,много,неколико,опција!" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Data Type:" msgstr "Тип податка:" @@ -7207,6 +7745,7 @@ msgid "Fix Invalid Tiles" msgstr "Ðеважеће име." #: editor/plugins/tile_map_editor_plugin.cpp +#: modules/gridmap/grid_map_editor_plugin.cpp #, fuzzy msgid "Cut Selection" msgstr "Центрирај одабрано" @@ -7250,39 +7789,50 @@ msgid "Mirror Y" msgstr "Огледало Y оÑе" #: editor/plugins/tile_map_editor_plugin.cpp +#, fuzzy +msgid "Disable Autotile" +msgstr "ÐутоматÑки рез" + +#: editor/plugins/tile_map_editor_plugin.cpp +#, fuzzy +msgid "Enable Priority" +msgstr "Уреди филтере" + +#: editor/plugins/tile_map_editor_plugin.cpp msgid "Paint Tile" msgstr "Цртај полчице" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Pick Tile" -msgstr "Одабери плочицу" +msgid "" +"Shift+RMB: Line Draw\n" +"Shift+Ctrl+RMB: Rectangle Paint" +msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy -msgid "Copy Selection" -msgstr "Обриши одабрано" +msgid "Pick Tile" +msgstr "Одабери плочицу" #: editor/plugins/tile_map_editor_plugin.cpp #, fuzzy -msgid "Rotate left" +msgid "Rotate Left" msgstr "Режим ротације" #: editor/plugins/tile_map_editor_plugin.cpp #, fuzzy -msgid "Rotate right" +msgid "Rotate Right" msgstr "Ротирај полигон" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Flip horizontally" +msgid "Flip Horizontally" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Flip vertically" +msgid "Flip Vertically" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp #, fuzzy -msgid "Clear transform" +msgid "Clear Transform" msgstr "ТранÑформација" #: editor/plugins/tile_set_editor_plugin.cpp @@ -7322,6 +7872,46 @@ msgid "Select the previous shape, subtile, or Tile." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Region Mode" +msgstr "Режим ротације" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Collision Mode" +msgstr "Ðнимациони чвор" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Occlusion Mode" +msgstr "Измени полигон" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Navigation Mode" +msgstr "Ðаправи навигациону мрежу" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Bitmask Mode" +msgstr "Режим ротације" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Priority Mode" +msgstr "Режим извоза:" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Icon Mode" +msgstr "Режим инÑпекције" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Z Index Mode" +msgstr "Режим инÑпекције" + +#: editor/plugins/tile_set_editor_plugin.cpp msgid "Copy bitmask." msgstr "" @@ -7412,6 +8002,7 @@ msgstr "Обриши тачке" msgid "" "LMB: Set bit on.\n" "RMB: Set bit off.\n" +"Shift+LMB: Set wildcard bit.\n" "Click on another Tile to edit it." msgstr "Сачувај тренутно измењени реÑурÑ." @@ -7538,6 +8129,79 @@ msgid "TileSet" msgstr "TileSet..." #: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Add input +" +msgstr "Додај улаз" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Add output +" +msgstr "Додај улаз" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar" +msgstr "Скала:" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector" +msgstr "ИнÑпектор" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Add input port" +msgstr "Додај улаз" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add output port" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change input port type" +msgstr "Измени уобичајен тип" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change output port type" +msgstr "Измени уобичајен тип" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change input port name" +msgstr "Промени улазно име" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change output port name" +msgstr "Промени улазно име" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Remove input port" +msgstr "Обриши тачку" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Remove output port" +msgstr "Обриши тачку" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Set expression" +msgstr "ПоÑтави правоугаони регион" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Resize VisualShader node" +msgstr "Шејдер" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Set Uniform Name" msgstr "" @@ -7581,6 +8245,859 @@ msgstr "деÑно" #: editor/plugins/visual_shader_editor_plugin.cpp #, fuzzy +msgid "Create Shader Node" +msgstr "Ðаправи чвор" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Color function." +msgstr "Иди на функцију..." + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Color operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Grayscale function." +msgstr "Ðаправи функцију" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts HSV vector to RGB equivalent." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts RGB vector to HSV equivalent." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Sepia function." +msgstr "Ðаправи функцију" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Burn operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Darken operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Difference operator." +msgstr "Само разлике" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Dodge operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "HardLight operator" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Lighten operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Overlay operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Screen operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "SoftLight operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Color constant." +msgstr "КонÑтантан" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Color uniform." +msgstr "ТранÑформација" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns an associated vector if the provided scalars are equal, greater or " +"less." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns an associated vector if the provided boolean value is true or false." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Boolean constant." +msgstr "Промени векторÑку конÑтанту" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'camera' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'inv_camera' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'inv_projection' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'normal' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'projection' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'time' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'viewport_size' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'world' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'texture_pixel_size' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Input parameter." +msgstr "Лепи за родитеља" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'binormal' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'fragcoord' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_coord' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_uv' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'side' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'tangent' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv2' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'vertex' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'view' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'albedo' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'attenuation' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'diffuse' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_color' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'roughness' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'specular' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'transmission' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'modelview' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_size' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'tangent' input parameter for vertex and fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_pass' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_coord' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_pixel_size' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_uv' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_alpha' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_height' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_uv' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_vec' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'normal' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'shadow_color' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'extra' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'projection' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'vertex' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'world' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'active' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'custom' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'custom_alpha' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'delta' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'emission_transform' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'index' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'lifetime' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'restart' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'time' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'transform' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'velocity' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar function." +msgstr "Промени Ñкаларну функцију" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar operator." +msgstr "Промени Ñкаларни оператор" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "E constant (2.718282). Represents the base of the natural logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Epsilon constant (0.00001). Smallest possible scalar number." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Phi constant (1.618034). Golden ratio." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi/4 constant (0.785398) or 45 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi/2 constant (1.570796) or 90 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi constant (3.141593) or 180 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Tau constant (6.283185) or 360 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Sqrt2 constant (1.414214). Square root of 2." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the absolute value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-tangent of the parameters." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Finds the nearest integer that is greater than or equal to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Constrains a value to lie between two further values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts a quantity in radians to degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-e Exponential." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-2 Exponential." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Finds the nearest integer less than or equal to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Computes the fractional part of the argument." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the inverse of the square root of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Natural logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-2 logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the greater of two values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the lesser of two values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Linear interpolation between two scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the opposite value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 - scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns the value of the first parameter raised to the power of the second." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts a quantity in degrees to radians." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 / scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the nearest integer to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the nearest even integer to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Clamps the value between 0.0 and 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Extracts the sign of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the square root of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( scalar(edge0), scalar(edge1), scalar(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if x is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( scalar(edge), scalar(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the truncated value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Adds scalar to scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Divides scalar by scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies scalar by scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the remainder of the two scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Subtracts scalar from scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar constant." +msgstr "Промени Ñкаларну конÑтанту" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar uniform." +msgstr "Промени Ñкаларну униформу (uniform)" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Perform the cubic texture lookup." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Perform the texture lookup." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Cubic texture uniform." +msgstr "Промени текÑтурну униформу (uniform)" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "2D texture uniform." +msgstr "Промени текÑтурну униформу (uniform)" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Transform function." +msgstr "Прозор транÑформације..." + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) Calculate the outer product of a pair of vectors.\n" +"\n" +"OuterProduct treats the first parameter 'c' as a column vector (matrix with " +"one column) and the second parameter 'r' as a row vector (matrix with one " +"row) and does a linear algebraic matrix multiply 'c * r', yielding a matrix " +"whose number of rows is the number of components in 'c' and whose number of " +"columns is the number of components in 'r'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Composes transform from four vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Decomposes transform to four vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the determinant of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the inverse of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the transpose of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies transform by transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies vector by transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Transform constant." +msgstr "ТранÑформација прекинута." + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Transform uniform." +msgstr "ТранÑформација прекинута." + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector function." +msgstr "Иди на функцију..." + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector operator." +msgstr "Промени векторÑки оператор" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Composes vector from three scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Decomposes vector to three scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the cross product of two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the distance between two points." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the dot product of two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns a vector that points in the same direction as a reference vector. " +"The function has three vector parameters : N, the vector to orient, I, the " +"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 "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the length of a vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Linear interpolation between two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the normalize product of vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 - vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 / vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns a vector that points in the direction of reflection ( a : incident " +"vector, b : normal vector )." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns a vector that points in the direction of refraction." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( vector(edge0), vector(edge1), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if 'x' is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( scalar(edge0), scalar(edge1), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if 'x' is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( vector(edge), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( scalar(edge), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Adds vector to vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Divides vector by vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies vector by vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the remainder of the two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Subtracts vector from vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector constant." +msgstr "Промени векторÑку конÑтанту" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector uniform." +msgstr "Промени векторÑку униформу (uniform)" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Custom Godot Shader Language expression, with custom amount of input and " +"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 "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns falloff based on the dot product of surface normal and view " +"direction of camera (pass associated inputs to it)." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) (Fragment/Light mode only) Scalar derivative function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) (Fragment/Light mode only) Vector derivative function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Derivative in 'x' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Derivative in 'x' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Derivative in 'y' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Derivative in 'y' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Sum of absolute derivative " +"in 'x' and 'y'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Sum of absolute derivative " +"in 'x' and 'y'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy msgid "VisualShader" msgstr "Шејдер" @@ -7784,6 +9301,10 @@ msgid "Directory already contains a Godot project." msgstr "" #: editor/project_manager.cpp +msgid "New Game Project" +msgstr "" + +#: editor/project_manager.cpp msgid "Imported Project" msgstr "" @@ -7832,10 +9353,6 @@ msgid "Rename Project" msgstr "" #: editor/project_manager.cpp -msgid "New Game Project" -msgstr "" - -#: editor/project_manager.cpp msgid "Import Existing Project" msgstr "" @@ -7867,10 +9384,6 @@ msgid "Project Name:" msgstr "" #: editor/project_manager.cpp -msgid "Create folder" -msgstr "" - -#: editor/project_manager.cpp msgid "Project Path:" msgstr "" @@ -7879,10 +9392,6 @@ msgid "Project Installation Path:" msgstr "" #: editor/project_manager.cpp -msgid "Browse" -msgstr "" - -#: editor/project_manager.cpp msgid "Renderer:" msgstr "" @@ -7936,8 +9445,8 @@ msgid "" "\n" "If you proceed with opening it, it will be converted to Godot's current " "configuration file format.\n" -"Warning: You will not be able to open the project with previous versions of " -"the engine anymore." +"Warning: You won't be able to open the project with previous versions of the " +"engine anymore." msgstr "" #: editor/project_manager.cpp @@ -7948,8 +9457,8 @@ msgid "" "%s\n" "\n" "Do you want to convert it?\n" -"Warning: You will not be able to open the project with previous versions of " -"the engine anymore." +"Warning: You won't be able to open the project with previous versions of the " +"engine anymore." msgstr "" #: editor/project_manager.cpp @@ -7959,11 +9468,15 @@ msgid "" msgstr "" #: editor/project_manager.cpp +#, fuzzy msgid "" "Can't run project: no main scene defined.\n" -"Please edit the project and set the main scene in \"Project Settings\" under " +"Please edit the project and set the main scene in the Project Settings under " "the \"Application\" category." msgstr "" +"Главна Ñцена није дефиниÑана, одаберите једну?\n" +"Можете је променити каÑније у „ПоÑтавке пројекта“ иÑпод категорије " +"„апликација“." #: editor/project_manager.cpp msgid "" @@ -7972,23 +9485,37 @@ msgid "" msgstr "" #: editor/project_manager.cpp -msgid "Are you sure to run more than one project?" +msgid "Are you sure to run %d projects at once?" msgstr "" #: editor/project_manager.cpp -msgid "Remove project from the list? (Folder contents will not be modified)" +msgid "" +"Remove %d projects from the list?\n" +"The project folders' contents won't be modified." +msgstr "" + +#: editor/project_manager.cpp +msgid "" +"Remove this project from the list?\n" +"The project folder's contents won't be modified." +msgstr "" + +#: editor/project_manager.cpp +msgid "" +"Remove all missing projects from the list? (Folders contents will not be " +"modified)" msgstr "" #: editor/project_manager.cpp msgid "" "Language changed.\n" -"The UI will update next time the editor or project manager starts." +"The interface will update after restarting the editor or project manager." msgstr "" #: editor/project_manager.cpp msgid "" -"You are about the scan %s folders for existing Godot projects. Do you " -"confirm?" +"Are you sure to scan %s folders for existing Godot projects?\n" +"This could take a while." msgstr "" #: editor/project_manager.cpp @@ -8012,6 +9539,11 @@ msgid "New Project" msgstr "" #: editor/project_manager.cpp +#, fuzzy +msgid "Remove Missing" +msgstr "Обриши тачку" + +#: editor/project_manager.cpp msgid "Templates" msgstr "" @@ -8029,8 +9561,8 @@ msgstr "" #: editor/project_manager.cpp msgid "" -"You don't currently have any projects.\n" -"Would you like to explore the official example projects in the Asset Library?" +"You currently don't have any projects.\n" +"Would you like to explore official example projects in the Asset Library?" msgstr "" #: editor/project_settings_editor.cpp @@ -8056,8 +9588,9 @@ msgid "" msgstr "" #: editor/project_settings_editor.cpp -msgid "Action '%s' already exists!" -msgstr "" +#, fuzzy +msgid "An action with the name '%s' already exists." +msgstr "Грешка: име анимације већ поÑтоји!" #: editor/project_settings_editor.cpp msgid "Rename Input Action Event" @@ -8212,10 +9745,6 @@ msgid "" msgstr "" #: editor/project_settings_editor.cpp -msgid "Already existing" -msgstr "" - -#: editor/project_settings_editor.cpp msgid "Add Input Action" msgstr "" @@ -8280,7 +9809,7 @@ msgid "Override For..." msgstr "" #: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp -msgid "Editor must be restarted for changes to take effect" +msgid "The editor must be restarted for changes to take effect." msgstr "" #: editor/project_settings_editor.cpp @@ -8341,12 +9870,14 @@ msgid "Locales Filter" msgstr "" #: editor/project_settings_editor.cpp -msgid "Show all locales" -msgstr "" +#, fuzzy +msgid "Show All Locales" +msgstr "Покажи коÑти" #: editor/project_settings_editor.cpp -msgid "Show only selected locales" -msgstr "" +#, fuzzy +msgid "Show Selected Locales Only" +msgstr "Само одабрано" #: editor/project_settings_editor.cpp msgid "Filter mode:" @@ -8361,14 +9892,6 @@ msgid "AutoLoad" msgstr "" #: editor/property_editor.cpp -msgid "Ease In" -msgstr "" - -#: editor/property_editor.cpp -msgid "Ease Out" -msgstr "" - -#: editor/property_editor.cpp msgid "Zero" msgstr "" @@ -8443,7 +9966,7 @@ msgstr "" #: editor/rename_dialog.cpp #, fuzzy -msgid "Advanced options" +msgid "Advanced Options" msgstr "ПоÑтавке залепљавања" #: editor/rename_dialog.cpp @@ -8710,7 +10233,7 @@ msgstr "" #: editor/scene_tree_dock.cpp #, fuzzy -msgid "Custom Node" +msgid "Other Node" msgstr "Ðаправи чвор" #: editor/scene_tree_dock.cpp @@ -8754,7 +10277,7 @@ msgstr "" #: editor/scene_tree_dock.cpp #, fuzzy -msgid "Open documentation" +msgid "Open Documentation" msgstr "Отвори Godot онлајн документацију" #: editor/scene_tree_dock.cpp @@ -8783,7 +10306,7 @@ msgstr "" msgid "Save Branch as Scene" msgstr "" -#: editor/scene_tree_dock.cpp +#: editor/scene_tree_dock.cpp editor/script_editor_debugger.cpp msgid "Copy Node Path" msgstr "" @@ -8827,6 +10350,21 @@ msgid "Toggle Visible" msgstr "Прикажи Ñакривене датотеке" #: editor/scene_tree_editor.cpp +#, fuzzy +msgid "Unlock Node" +msgstr "OneShot чвор" + +#: editor/scene_tree_editor.cpp +#, fuzzy +msgid "Button Group" +msgstr "Додај у групу" + +#: editor/scene_tree_editor.cpp +#, fuzzy +msgid "(Connecting From)" +msgstr "Повезивање не уÑпешно" + +#: editor/scene_tree_editor.cpp msgid "Node configuration warning:" msgstr "" @@ -8848,9 +10386,9 @@ msgid "" "Click to show groups dock." msgstr "" -#: editor/scene_tree_editor.cpp editor/script_create_dialog.cpp +#: editor/scene_tree_editor.cpp #, fuzzy -msgid "Open Script" +msgid "Open Script:" msgstr "Покрени Ñкриптицу" #: editor/scene_tree_editor.cpp @@ -8896,90 +10434,101 @@ msgid "Select a Node" msgstr "" #: editor/script_create_dialog.cpp -msgid "Error loading template '%s'" -msgstr "" - -#: editor/script_create_dialog.cpp -msgid "Error - Could not create script in filesystem." -msgstr "" +#, fuzzy +msgid "Path is empty." +msgstr "Мрежа је празна!" #: editor/script_create_dialog.cpp -msgid "Error loading script from %s" -msgstr "" +#, fuzzy +msgid "Filename is empty." +msgstr "Мрежа је празна!" #: editor/script_create_dialog.cpp -msgid "N/A" -msgstr "" +#, fuzzy +msgid "Path is not local." +msgstr "Путања не води ка чвору!" #: editor/script_create_dialog.cpp #, fuzzy -msgid "Open Script/Choose Location" -msgstr "Отвори уредник Ñкриптица" +msgid "Invalid base path." +msgstr "Ðеважећи пут." #: editor/script_create_dialog.cpp -msgid "Path is empty" -msgstr "" +#, fuzzy +msgid "A directory with the same name exists." +msgstr "Датотека или директоријум Ñа овим именом већ поÑтоји." #: editor/script_create_dialog.cpp #, fuzzy -msgid "Filename is empty" -msgstr "Мрежа је празна!" +msgid "Invalid extension." +msgstr "Мора Ñе кориÑтити важећа екÑтензија." #: editor/script_create_dialog.cpp -msgid "Path is not local" +msgid "Wrong extension chosen." msgstr "" #: editor/script_create_dialog.cpp -msgid "Invalid base path" +msgid "Error loading template '%s'" msgstr "" #: editor/script_create_dialog.cpp -msgid "Directory of the same name exists" +msgid "Error - Could not create script in filesystem." msgstr "" #: editor/script_create_dialog.cpp -msgid "File exists, will be reused" +msgid "Error loading script from %s" msgstr "" #: editor/script_create_dialog.cpp -msgid "Invalid extension" +msgid "N/A" msgstr "" #: editor/script_create_dialog.cpp -msgid "Wrong extension chosen" -msgstr "" +#, fuzzy +msgid "Open Script / Choose Location" +msgstr "Отвори уредник Ñкриптица" #: editor/script_create_dialog.cpp -msgid "Invalid Path" -msgstr "" +#, fuzzy +msgid "Open Script" +msgstr "Покрени Ñкриптицу" #: editor/script_create_dialog.cpp -msgid "Invalid class name" +msgid "File exists, it will be reused." msgstr "" #: editor/script_create_dialog.cpp -msgid "Invalid inherited parent name or path" -msgstr "" +#, fuzzy +msgid "Invalid class name." +msgstr "Ðеважеће име." #: editor/script_create_dialog.cpp -msgid "Script valid" +msgid "Invalid inherited parent name or path." msgstr "" #: editor/script_create_dialog.cpp +#, fuzzy +msgid "Script is valid." +msgstr "Ðнимационо дрво је важеће." + +#: editor/script_create_dialog.cpp msgid "Allowed: a-z, A-Z, 0-9 and _" msgstr "" #: editor/script_create_dialog.cpp -msgid "Built-in script (into scene file)" -msgstr "" +#, fuzzy +msgid "Built-in script (into scene file)." +msgstr "Операције Ñа датотекама Ñцена." #: editor/script_create_dialog.cpp -msgid "Create new script file" -msgstr "" +#, fuzzy +msgid "Will create a new script file." +msgstr "Ðаправи нов" #: editor/script_create_dialog.cpp -msgid "Load existing script file" -msgstr "" +#, fuzzy +msgid "Will load an existing script file." +msgstr "Учитај поÑтојећи Ð±Ð°Ñ Ñ€Ð°Ñпоред." #: editor/script_create_dialog.cpp msgid "Language" @@ -9110,6 +10659,10 @@ msgstr "" msgid "Set From Tree" msgstr "" +#: editor/script_editor_debugger.cpp +msgid "Export measures as CSV" +msgstr "" + #: editor/settings_config_dialog.cpp #, fuzzy msgid "Erase Shortcut" @@ -9245,6 +10798,15 @@ msgid "GDNativeLibrary" msgstr "" #: 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 "ИÑкључи индикатор ажурирања" + +#: modules/gdnative/gdnative_library_singleton_editor.cpp msgid "Library" msgstr "" @@ -9332,8 +10894,9 @@ msgid "GridMap Fill Selection" msgstr "Све одабрано" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "GridMap Duplicate Selection" -msgstr "" +#, fuzzy +msgid "GridMap Paste Selection" +msgstr "Све одабрано" #: modules/gridmap/grid_map_editor_plugin.cpp #, fuzzy @@ -9401,18 +10964,6 @@ msgid "Cursor Clear Rotation" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Create Area" -msgstr "" - -#: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Create Exterior Connector" -msgstr "" - -#: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Erase Area" -msgstr "" - -#: modules/gridmap/grid_map_editor_plugin.cpp msgid "Clear Selection" msgstr "Обриши избор" @@ -9775,15 +11326,7 @@ msgid "Available Nodes:" msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Select or create a function to edit graph" -msgstr "" - -#: modules/visual_script/visual_script_editor.cpp -msgid "Edit Signal Arguments:" -msgstr "" - -#: modules/visual_script/visual_script_editor.cpp -msgid "Edit Variable:" +msgid "Select or create a function to edit its graph." msgstr "" #: modules/visual_script/visual_script_editor.cpp @@ -9915,6 +11458,19 @@ msgid "Debug keystore not configured in the Editor Settings nor in the preset." msgstr "" #: platform/android/export/export.cpp +msgid "Custom build requires a valid Android SDK path in Editor Settings." +msgstr "" + +#: platform/android/export/export.cpp +msgid "Invalid Android SDK path for custom build in Editor Settings." +msgstr "" + +#: platform/android/export/export.cpp +msgid "" +"Android project is not installed for compiling. Install from Editor menu." +msgstr "" + +#: platform/android/export/export.cpp msgid "Invalid public key for APK expansion." msgstr "" @@ -9923,6 +11479,34 @@ msgstr "" msgid "Invalid package name:" msgstr "Ðеважеће име." +#: platform/android/export/export.cpp +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 "" +"Android build version mismatch:\n" +" Template installed: %s\n" +" Godot Version: %s\n" +"Please reinstall Android build template from 'Project' menu." +msgstr "" + +#: platform/android/export/export.cpp +msgid "Building Android Project (gradle)" +msgstr "" + +#: 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 "" + +#: platform/android/export/export.cpp +msgid "No build apk generated at: " +msgstr "" + #: platform/iphone/export/export.cpp msgid "Identifier is missing." msgstr "" @@ -10186,27 +11770,27 @@ msgid "ARVRCamera must have an ARVROrigin node as its parent" msgstr "" #: scene/3d/arvr_nodes.cpp -msgid "ARVRController must have an ARVROrigin node as its parent" +msgid "ARVRController must have an ARVROrigin node as its parent." msgstr "" #: scene/3d/arvr_nodes.cpp msgid "" -"The controller id must not be 0 or this controller will not be bound to an " -"actual controller" +"The controller ID must not be 0 or this controller won't be bound to an " +"actual controller." msgstr "" #: scene/3d/arvr_nodes.cpp -msgid "ARVRAnchor must have an ARVROrigin node as its parent" +msgid "ARVRAnchor must have an ARVROrigin node as its parent." msgstr "" #: scene/3d/arvr_nodes.cpp msgid "" -"The anchor id must not be 0 or this anchor will not be bound to an actual " -"anchor" +"The anchor ID must not be 0 or this anchor won't be bound to an actual " +"anchor." msgstr "" #: scene/3d/arvr_nodes.cpp -msgid "ARVROrigin requires an ARVRCamera child node" +msgid "ARVROrigin requires an ARVRCamera child node." msgstr "" #: scene/3d/baked_lightmap.cpp @@ -10276,8 +11860,8 @@ msgstr "" #: scene/3d/cpu_particles.cpp msgid "" -"CPUParticles animation requires the usage of a SpatialMaterial with " -"\"Billboard Particles\" enabled." +"CPUParticles animation requires the usage of a SpatialMaterial whose " +"Billboard Mode is set to \"Particle Billboard\"." msgstr "" #: scene/3d/gi_probe.cpp @@ -10314,8 +11898,8 @@ msgstr "" #: scene/3d/particles.cpp msgid "" -"Particles animation requires the usage of a SpatialMaterial with \"Billboard " -"Particles\" enabled." +"Particles animation requires the usage of a SpatialMaterial whose Billboard " +"Mode is set to \"Particle Billboard\"." msgstr "" #: scene/3d/path.cpp @@ -10340,7 +11924,7 @@ msgid "Path property must point to a valid Spatial node to work." msgstr "" #: scene/3d/soft_body.cpp -msgid "This body will be ignored until you set a mesh" +msgid "This body will be ignored until you set a mesh." msgstr "" #: scene/3d/soft_body.cpp @@ -10442,7 +12026,7 @@ msgstr "" msgid "" "Container by itself serves no purpose unless a script configures it's " "children placement behavior.\n" -"If you dont't intend to add a script, then please use a plain 'Control' node " +"If you don't intend to add a script, then please use a plain 'Control' node " "instead." msgstr "" @@ -10454,11 +12038,6 @@ msgstr "" msgid "Please Confirm..." msgstr "" -#: scene/gui/file_dialog.cpp -#, fuzzy -msgid "Go to parent folder." -msgstr "Иди у родитељÑки директоријум" - #: scene/gui/popup.cpp msgid "" "Popups will hide by default unless you call popup() or any of the popup*() " @@ -10533,6 +12112,56 @@ msgstr "" msgid "Varyings can only be assigned in vertex function." msgstr "" +#: servers/visual/shader_language.cpp +msgid "Constants cannot be modified." +msgstr "" + +#~ msgid "Path to Node:" +#~ msgstr "Пут ка чвору:" + +#~ msgid "Delete selected files?" +#~ msgstr "Обриши одабране датотеке?" + +#~ msgid "There is no 'res://default_bus_layout.tres' file." +#~ msgstr "Датотека „res://default_bus_layout.tres“ не поÑтоји." + +#~ msgid "Go to parent folder" +#~ msgstr "Иди у родитељÑки директоријум" + +#~ msgid "Select device from the list" +#~ msgstr "Одабери уређај Ñа лиÑте" + +#, fuzzy +#~ msgid "Open Scene(s)" +#~ msgstr "Отвори Ñцену" + +#~ msgid "Previous Directory" +#~ msgstr "Претодни директоријум" + +#~ msgid "Next Directory" +#~ msgstr "Следећи директоријум" + +#~ msgid "Ease in" +#~ msgstr "Улазна транзиција" + +#~ msgid "Ease out" +#~ msgstr "Излазна транзиција" + +#~ msgid "Create Convex Static Body" +#~ msgstr "Ðаправи конвекÑно Ñтатично тело" + +#, fuzzy +#~ msgid "CheckBox Radio1" +#~ msgstr "CheckBox Radio1" + +#, fuzzy +#~ msgid "CheckBox Radio2" +#~ msgstr "CheckBox Radio2" + +#, fuzzy +#~ msgid "Custom Node" +#~ msgstr "Ðаправи чвор" + #, fuzzy #~ msgid "Snap (s): " #~ msgstr "Један корак (Ñек.):" @@ -10630,9 +12259,6 @@ msgstr "" #~ msgid "Class List:" #~ msgstr "ЛиÑта клаÑа:" -#~ msgid "Search Classes" -#~ msgstr "Потражи клаÑе" - #~ msgid "Public Methods" #~ msgstr "Јавне методе" @@ -10704,21 +12330,9 @@ msgstr "" #~ msgid "Bake the navigation mesh." #~ msgstr "ИÑпеци навигациону мрежу.\n" -#~ msgid "Change Scalar Constant" -#~ msgstr "Промени Ñкаларну конÑтанту" - -#~ msgid "Change Vec Constant" -#~ msgstr "Промени векторÑку конÑтанту" - #~ msgid "Change RGB Constant" #~ msgstr "Промени RGB конÑтанту" -#~ msgid "Change Scalar Operator" -#~ msgstr "Промени Ñкаларни оператор" - -#~ msgid "Change Vec Operator" -#~ msgstr "Промени векторÑки оператор" - #~ msgid "Change Vec Scalar Operator" #~ msgstr "Промени векторÑко-Ñкаларни оператор" @@ -10728,18 +12342,9 @@ msgstr "" #~ msgid "Toggle Rot Only" #~ msgstr "Само ротација" -#~ msgid "Change Scalar Function" -#~ msgstr "Промени Ñкаларну функцију" - #~ msgid "Change Vec Function" #~ msgstr "Промени векторÑку функцију" -#~ msgid "Change Scalar Uniform" -#~ msgstr "Промени Ñкаларну униформу (uniform)" - -#~ msgid "Change Vec Uniform" -#~ msgstr "Промени векторÑку униформу (uniform)" - #~ msgid "Change RGB Uniform" #~ msgstr "Промени RGB униформу (uniform)" @@ -10749,9 +12354,6 @@ msgstr "" #~ msgid "Change XForm Uniform" #~ msgstr "Промени XForm униформу (uniform)" -#~ msgid "Change Texture Uniform" -#~ msgstr "Промени текÑтурну униформу (uniform)" - #~ msgid "Change Cubemap Uniform" #~ msgstr "Промени Cubemap униформу (uniform)" @@ -10770,9 +12372,6 @@ msgstr "" #~ msgid "Modify Curve Map" #~ msgstr "Модификуј мапу криве" -#~ msgid "Change Input Name" -#~ msgstr "Промени улазно име" - #~ msgid "Connect Graph Nodes" #~ msgstr "Повежи чворове графа" @@ -10797,9 +12396,6 @@ msgstr "" #~ msgid "Add Shader Graph Node" #~ msgstr "Додај чвор графа шејдера" -#~ msgid "Disabled" -#~ msgstr "Онемогућено" - #~ msgid "Move Anim Track Up" #~ msgstr "Помери траку горе" @@ -10963,10 +12559,6 @@ msgstr "" #~ msgid "Item name or ID:" #~ msgstr "Име Ñтавке или идентификатор (ID):" -#, fuzzy -#~ msgid "Autotiles" -#~ msgstr "ÐутоматÑки рез" - #~ msgid "Export templates for this platform are missing/corrupted: " #~ msgstr "Извозни шаблони за ову платформу Ñу или иÑкварени или непоÑтојећи: " @@ -11019,13 +12611,6 @@ msgstr "" #~ msgid "Cannot navigate to '" #~ msgstr "Ðе могу прећи у '" -#~ msgid "" -#~ "\n" -#~ "Source: " -#~ msgstr "" -#~ "\n" -#~ "Извор: " - #~ msgid "Remove Point from Line2D" #~ msgstr "Обриши тачку Ñа Line2D" diff --git a/editor/translations/sr_Latn.po b/editor/translations/sr_Latn.po index ac3590e494..b4089a1d5a 100644 --- a/editor/translations/sr_Latn.po +++ b/editor/translations/sr_Latn.po @@ -73,6 +73,14 @@ msgstr "" msgid "Mirror" msgstr "" +#: editor/animation_bezier_editor.cpp editor/editor_profiler.cpp +msgid "Time:" +msgstr "" + +#: editor/animation_bezier_editor.cpp +msgid "Value:" +msgstr "" + #: editor/animation_bezier_editor.cpp #, fuzzy msgid "Insert Key Here" @@ -159,12 +167,18 @@ msgstr "" #: editor/animation_track_editor.cpp #, fuzzy -msgid "Add Track" -msgstr "Animacija Dodaj Kanal" +msgid "Animation length (frames)" +msgstr "Optimizuj Animaciju" #: editor/animation_track_editor.cpp -msgid "Animation Length Time (seconds)" -msgstr "" +#, fuzzy +msgid "Animation length (seconds)" +msgstr "Promijeni Dužinu Animacije" + +#: editor/animation_track_editor.cpp +#, fuzzy +msgid "Add Track" +msgstr "Animacija Dodaj Kanal" #: editor/animation_track_editor.cpp msgid "Animation Looping" @@ -296,11 +310,13 @@ msgid "Create %d NEW tracks and insert keys?" msgstr "Napravi %d novih kanala i dodaj kljuÄeve?" #: editor/animation_track_editor.cpp editor/create_dialog.cpp -#: editor/editor_audio_buses.cpp editor/editor_plugin_settings.cpp -#: editor/plugin_config_dialog.cpp +#: editor/editor_audio_buses.cpp editor/editor_feature_profile.cpp +#: editor/editor_plugin_settings.cpp editor/plugin_config_dialog.cpp #: editor/plugins/abstract_polygon_2d_editor.cpp #: editor/plugins/mesh_instance_editor_plugin.cpp -#: editor/plugins/particles_editor_plugin.cpp editor/script_create_dialog.cpp +#: editor/plugins/particles_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_create_dialog.cpp msgid "Create" msgstr "Napravi" @@ -415,6 +431,23 @@ msgid "" msgstr "" #: editor/animation_track_editor.cpp +msgid "" +"This animation belongs to an imported scene, so changes to imported tracks " +"will not be saved.\n" +"\n" +"To enable the ability to add custom tracks, navigate to the scene's import " +"settings and set\n" +"\"Animation > Storage\" to \"Files\", enable \"Animation > Keep Custom Tracks" +"\", then re-import.\n" +"Alternatively, use an import preset that imports animations to separate " +"files." +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Warning: Editing imported animation" +msgstr "" + +#: editor/animation_track_editor.cpp msgid "Only show tracks from nodes selected in tree." msgstr "" @@ -550,7 +583,8 @@ msgstr "" msgid "Select tracks to copy:" msgstr "" -#: editor/animation_track_editor.cpp editor/editor_properties.cpp +#: editor/animation_track_editor.cpp editor/editor_log.cpp +#: editor/editor_properties.cpp #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp @@ -619,6 +653,11 @@ msgstr "" msgid "Selection Only" msgstr "" +#: editor/code_editor.cpp editor/plugins/script_text_editor.cpp +#: editor/plugins/text_editor.cpp +msgid "Standard" +msgstr "" + #: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/texture_region_editor_plugin.cpp #: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp @@ -644,17 +683,29 @@ msgid "Line and column numbers." msgstr "" #: editor/connections_dialog.cpp -msgid "Method in target Node must be specified!" +msgid "Method in target node must be specified." msgstr "" #: editor/connections_dialog.cpp msgid "" -"Target method not found! Specify a valid method or attach a script to target " -"Node." +"Target method not found. Specify a valid method or attach a script to the " +"target node." +msgstr "" + +#: editor/connections_dialog.cpp +msgid "Connect to Node:" +msgstr "" + +#: editor/connections_dialog.cpp +msgid "Connect to Script:" +msgstr "" + +#: editor/connections_dialog.cpp +msgid "From Signal:" msgstr "" #: editor/connections_dialog.cpp -msgid "Connect To Node:" +msgid "Scene does not contain any script." msgstr "" #: editor/connections_dialog.cpp editor/editor_autoload_settings.cpp @@ -664,10 +715,12 @@ msgid "Add" msgstr "" #: editor/connections_dialog.cpp editor/dependency_editor.cpp -#: editor/groups_editor.cpp editor/plugins/animation_player_editor_plugin.cpp +#: editor/editor_feature_profile.cpp editor/groups_editor.cpp +#: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp #: editor/plugins/resource_preloader_editor_plugin.cpp -#: editor/plugins/theme_editor_plugin.cpp editor/project_manager.cpp +#: editor/plugins/theme_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_manager.cpp #: editor/project_settings_editor.cpp msgid "Remove" msgstr "" @@ -681,21 +734,30 @@ msgid "Extra Call Arguments:" msgstr "" #: editor/connections_dialog.cpp -msgid "Path to Node:" +msgid "Advanced" msgstr "" #: editor/connections_dialog.cpp -msgid "Make Function" +msgid "Deferred" msgstr "" #: editor/connections_dialog.cpp -msgid "Deferred" +msgid "" +"Defers the signal, storing it in a queue and only firing it at idle time." msgstr "" #: editor/connections_dialog.cpp msgid "Oneshot" msgstr "" +#: editor/connections_dialog.cpp +msgid "Disconnects the signal after its first emission." +msgstr "" + +#: editor/connections_dialog.cpp +msgid "Cannot connect signal" +msgstr "" + #: editor/connections_dialog.cpp editor/dependency_editor.cpp #: editor/export_template_manager.cpp editor/groups_editor.cpp #: editor/plugins/animation_player_editor_plugin.cpp @@ -736,12 +798,12 @@ msgid "Disconnect" msgstr "" #: editor/connections_dialog.cpp -msgid "Connect Signal: " +msgid "Connect a Signal to a Method" msgstr "" #: editor/connections_dialog.cpp #, fuzzy -msgid "Edit Connection: " +msgid "Edit Connection:" msgstr "Izmjeni Selekciju Krivulje" #: editor/connections_dialog.cpp @@ -773,7 +835,6 @@ msgid "Change %s Type" msgstr "" #: editor/create_dialog.cpp editor/project_settings_editor.cpp -#: modules/visual_script/visual_script_editor.cpp msgid "Change" msgstr "" @@ -804,7 +865,8 @@ msgid "Matches:" msgstr "" #: editor/create_dialog.cpp editor/plugin_config_dialog.cpp -#: editor/plugins/asset_library_editor_plugin.cpp editor/property_selector.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/property_selector.cpp #: modules/visual_script/visual_script_property_selector.cpp msgid "Description:" msgstr "" @@ -820,13 +882,13 @@ msgstr "" #: editor/dependency_editor.cpp msgid "" "Scene '%s' is currently being edited.\n" -"Changes will not take effect unless reloaded." +"Changes will only take effect when reloaded." msgstr "" #: editor/dependency_editor.cpp msgid "" "Resource '%s' is in use.\n" -"Changes will take effect when reloaded." +"Changes will only take effect when reloaded." msgstr "" #: editor/dependency_editor.cpp @@ -917,21 +979,13 @@ msgid "Permanently delete %d item(s)? (No undo!)" msgstr "" #: editor/dependency_editor.cpp -msgid "Owns" -msgstr "" - -#: editor/dependency_editor.cpp -msgid "Resources Without Explicit Ownership:" +msgid "Show Dependencies" msgstr "" #: editor/dependency_editor.cpp editor/editor_node.cpp msgid "Orphan Resource Explorer" msgstr "" -#: editor/dependency_editor.cpp -msgid "Delete selected files?" -msgstr "" - #: editor/dependency_editor.cpp editor/editor_audio_buses.cpp #: editor/editor_file_dialog.cpp editor/editor_node.cpp #: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp @@ -940,6 +994,14 @@ msgstr "" msgid "Delete" msgstr "" +#: editor/dependency_editor.cpp +msgid "Owns" +msgstr "" + +#: editor/dependency_editor.cpp +msgid "Resources Without Explicit Ownership:" +msgstr "" + #: editor/dictionary_property_edit.cpp msgid "Change Dictionary Key" msgstr "" @@ -1049,7 +1111,7 @@ msgstr "" msgid "Success!" msgstr "" -#: editor/editor_asset_installer.cpp +#: editor/editor_asset_installer.cpp editor/editor_node.cpp #: editor/plugins/asset_library_editor_plugin.cpp msgid "Install" msgstr "" @@ -1176,7 +1238,11 @@ msgid "Open Audio Bus Layout" msgstr "" #: editor/editor_audio_buses.cpp -msgid "There is no 'res://default_bus_layout.tres' file." +msgid "There is no '%s' file." +msgstr "" + +#: editor/editor_audio_buses.cpp editor/plugins/canvas_item_editor_plugin.cpp +msgid "Layout" msgstr "" #: editor/editor_audio_buses.cpp @@ -1230,15 +1296,19 @@ msgid "Valid characters:" msgstr "" #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing engine class name." +msgid "Must not collide with an existing engine class name." +msgstr "" + +#: editor/editor_autoload_settings.cpp +msgid "Must not collide with an existing buit-in type name." msgstr "" #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing buit-in type name." +msgid "Must not collide with an existing global constant name." msgstr "" #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing global constant name." +msgid "Keyword cannot be used as an autoload name." msgstr "" #: editor/editor_autoload_settings.cpp @@ -1269,11 +1339,11 @@ msgstr "" msgid "Rearrange Autoloads" msgstr "" -#: editor/editor_autoload_settings.cpp -msgid "Invalid Path." +#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp +msgid "Invalid path." msgstr "" -#: editor/editor_autoload_settings.cpp +#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp msgid "File does not exist." msgstr "" @@ -1324,7 +1394,7 @@ msgid "[unsaved]" msgstr "" #: editor/editor_dir_dialog.cpp -msgid "Please select a base directory first" +msgid "Please select a base directory first." msgstr "" #: editor/editor_dir_dialog.cpp @@ -1332,7 +1402,8 @@ msgid "Choose a Directory" msgstr "" #: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp -#: editor/filesystem_dock.cpp scene/gui/file_dialog.cpp +#: editor/filesystem_dock.cpp editor/project_manager.cpp +#: scene/gui/file_dialog.cpp msgid "Create Folder" msgstr "" @@ -1400,6 +1471,152 @@ msgstr "" msgid "Template file not found:" msgstr "" +#: editor/editor_feature_profile.cpp +msgid "3D Editor" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Script Editor" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Asset Library" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Scene Tree Editing" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Import Dock" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Node Dock" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Filesystem Dock" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Erase profile '%s'? (no undo)" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Profile must be a valid filename and must not contain '.'" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Profile with this name already exists." +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "(Editor Disabled, Properties Disabled)" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "(Properties Disabled)" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "(Editor Disabled)" +msgstr "Onemogućeno" + +#: editor/editor_feature_profile.cpp +msgid "Class Options:" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Enable Contextual Editor" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Enabled Properties:" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Enabled Features:" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Enabled Classes:" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "File '%s' format is invalid, import aborted." +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "" +"Profile '%s' already exists. Remote it first before importing, import " +"aborted." +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Error saving profile to path: '%s'." +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Unset" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Current Profile" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Make Current" +msgstr "" + +#: editor/editor_feature_profile.cpp +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "New" +msgstr "" + +#: editor/editor_feature_profile.cpp editor/editor_node.cpp +#: editor/plugins/asset_library_editor_plugin.cpp editor/project_manager.cpp +msgid "Import" +msgstr "" + +#: editor/editor_feature_profile.cpp editor/editor_node.cpp +#: editor/project_export.cpp +msgid "Export" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Available Profiles" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Enabled Classes" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Class Options" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "New profile name:" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Erase Profile" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Import Profile(s)" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Export Profile" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Manage Editor Feature Profiles" +msgstr "" + #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Select Current Folder" msgstr "" @@ -1420,8 +1637,8 @@ msgstr "" msgid "Open in File Manager" msgstr "" -#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp -#: editor/project_manager.cpp +#: editor/editor_file_dialog.cpp editor/editor_node.cpp +#: editor/filesystem_dock.cpp editor/project_manager.cpp msgid "Show in File Manager" msgstr "" @@ -1480,7 +1697,7 @@ msgstr "" msgid "Go Up" msgstr "" -#: editor/editor_file_dialog.cpp +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Toggle Hidden Files" msgstr "" @@ -1512,14 +1729,18 @@ msgstr "" msgid "Next Folder" msgstr "" -#: editor/editor_file_dialog.cpp -msgid "Go to parent folder" +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp +msgid "Go to parent folder." msgstr "" #: editor/editor_file_dialog.cpp msgid "(Un)favorite current folder." msgstr "" +#: editor/editor_file_dialog.cpp +msgid "Toggle visibility of hidden files." +msgstr "" + #: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp msgid "View items as a grid of thumbnails." msgstr "" @@ -1534,6 +1755,7 @@ msgstr "" #: editor/editor_file_dialog.cpp editor/plugins/sprite_editor_plugin.cpp #: editor/plugins/style_box_editor_plugin.cpp +#: editor/plugins/theme_editor_plugin.cpp msgid "Preview:" msgstr "" @@ -1550,6 +1772,12 @@ msgid "ScanSources" msgstr "" #: editor/editor_file_system.cpp +msgid "" +"There are multiple importers for different types pointing to file %s, import " +"aborted" +msgstr "" + +#: editor/editor_file_system.cpp msgid "(Re)Importing Assets" msgstr "" @@ -1726,6 +1954,11 @@ msgstr "" msgid "Output:" msgstr "" +#: editor/editor_log.cpp editor/plugins/tile_map_editor_plugin.cpp +#, fuzzy +msgid "Copy Selection" +msgstr "ObriÅ¡i Selekciju" + #: editor/editor_log.cpp editor/editor_profiler.cpp #: editor/editor_properties.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp @@ -1873,7 +2106,7 @@ msgstr "" #: editor/editor_node.cpp msgid "" "This resource belongs to a scene that was instanced or inherited.\n" -"Changes to it will not be kept when saving the current scene." +"Changes to it won't be kept when saving the current scene." msgstr "" #: editor/editor_node.cpp @@ -1884,7 +2117,7 @@ msgstr "" #: editor/editor_node.cpp msgid "" -"This scene was imported, so changes to it will not be kept.\n" +"This scene was imported, so changes to it won't be kept.\n" "Instancing it or inheriting will allow making changes to it.\n" "Please read the documentation relevant to importing scenes to better " "understand this workflow." @@ -1892,7 +2125,7 @@ msgstr "" #: editor/editor_node.cpp msgid "" -"This is a remote object so changes to it will not be kept.\n" +"This is a remote object, so changes to it won't be kept.\n" "Please read the documentation relevant to debugging to better understand " "this workflow." msgstr "" @@ -1902,27 +2135,6 @@ msgid "There is no defined scene to run." msgstr "" #: editor/editor_node.cpp -msgid "" -"No main scene has ever been defined, select one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" - -#: editor/editor_node.cpp -msgid "" -"Selected scene '%s' does not exist, select a valid one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" - -#: editor/editor_node.cpp -msgid "" -"Selected scene '%s' is not a scene file, select a valid one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" - -#: editor/editor_node.cpp msgid "Current scene was never saved, please save it prior to running." msgstr "" @@ -1930,7 +2142,7 @@ msgstr "" msgid "Could not start subprocess!" msgstr "" -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/filesystem_dock.cpp msgid "Open Scene" msgstr "" @@ -1939,6 +2151,10 @@ msgid "Open Base Scene" msgstr "" #: editor/editor_node.cpp +msgid "Quick Open..." +msgstr "" + +#: editor/editor_node.cpp msgid "Quick Open Scene..." msgstr "" @@ -2100,6 +2316,27 @@ msgid "Clear Recent Scenes" msgstr "" #: editor/editor_node.cpp +msgid "" +"No main scene has ever been defined, select one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"Selected scene '%s' does not exist, select a valid one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"Selected scene '%s' is not a scene file, select a valid one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" + +#: editor/editor_node.cpp msgid "Save Layout" msgstr "" @@ -2125,6 +2362,18 @@ msgstr "" msgid "Close Tab" msgstr "" +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +msgid "Close Other Tabs" +msgstr "" + +#: editor/editor_node.cpp +msgid "Close Tabs to the Right" +msgstr "" + +#: editor/editor_node.cpp +msgid "Close All Tabs" +msgstr "" + #: editor/editor_node.cpp msgid "Switch Scene Tab" msgstr "" @@ -2247,10 +2496,6 @@ msgstr "" msgid "Project Settings" msgstr "" -#: editor/editor_node.cpp editor/project_export.cpp -msgid "Export" -msgstr "" - #: editor/editor_node.cpp editor/plugins/tile_set_editor_plugin.cpp msgid "Tools" msgstr "" @@ -2260,6 +2505,10 @@ msgid "Open Project Data Folder" msgstr "" #: editor/editor_node.cpp +msgid "Install Android Build Template" +msgstr "" + +#: editor/editor_node.cpp msgid "Quit to Project List" msgstr "" @@ -2364,6 +2613,10 @@ msgstr "" msgid "Open Editor Settings Folder" msgstr "" +#: editor/editor_node.cpp +msgid "Manage Editor Features" +msgstr "" + #: editor/editor_node.cpp editor/project_export.cpp msgid "Manage Export Templates" msgstr "" @@ -2376,6 +2629,7 @@ msgstr "" #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp #: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp #: editor/project_settings_editor.cpp editor/rename_dialog.cpp msgid "Search" msgstr "" @@ -2465,11 +2719,6 @@ msgstr "" msgid "Disable Update Spinner" msgstr "" -#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp -#: editor/project_manager.cpp -msgid "Import" -msgstr "" - #: editor/editor_node.cpp msgid "FileSystem" msgstr "" @@ -2495,6 +2744,27 @@ msgid "Don't Save" msgstr "" #: editor/editor_node.cpp +msgid "Android build template is missing, please install relevant templates." +msgstr "" + +#: editor/editor_node.cpp +msgid "Manage Templates" +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"This will install the Android project for custom builds.\n" +"Note that, in order to use it, it needs to be enabled per export preset." +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"Android build template is already installed and it won't be overwritten.\n" +"Remove the \"build\" directory manually before attempting this operation " +"again." +msgstr "" + +#: editor/editor_node.cpp msgid "Import Templates From ZIP File" msgstr "" @@ -2617,10 +2887,6 @@ msgid "Physics Frame %" msgstr "" #: editor/editor_profiler.cpp -msgid "Time:" -msgstr "" - -#: editor/editor_profiler.cpp msgid "Inclusive" msgstr "" @@ -2755,10 +3021,6 @@ msgid "Remove Item" msgstr "" #: editor/editor_run_native.cpp -msgid "Select device from the list" -msgstr "" - -#: editor/editor_run_native.cpp msgid "" "No runnable export preset found for this platform.\n" "Please add a runnable preset in the export menu." @@ -2792,6 +3054,10 @@ msgstr "" msgid "Select Node(s) to Import" msgstr "" +#: editor/editor_sub_scene.cpp editor/project_manager.cpp +msgid "Browse" +msgstr "" + #: editor/editor_sub_scene.cpp msgid "Scene Path:" msgstr "" @@ -2954,6 +3220,10 @@ msgid "SSL Handshake Error" msgstr "" #: editor/export_template_manager.cpp +msgid "Uncompressing Android Build Sources" +msgstr "" + +#: editor/export_template_manager.cpp msgid "Current Version:" msgstr "" @@ -2970,7 +3240,7 @@ msgid "Remove Template" msgstr "" #: editor/export_template_manager.cpp -msgid "Select template file" +msgid "Select Template File" msgstr "" #: editor/export_template_manager.cpp @@ -3026,7 +3296,7 @@ msgid "No name provided." msgstr "" #: editor/filesystem_dock.cpp -msgid "Provided name contains invalid characters" +msgid "Provided name contains invalid characters." msgstr "" #: editor/filesystem_dock.cpp @@ -3054,7 +3324,11 @@ msgid "Duplicating folder:" msgstr "" #: editor/filesystem_dock.cpp -msgid "Open Scene(s)" +msgid "New Inherited Scene" +msgstr "" + +#: editor/filesystem_dock.cpp +msgid "Open Scenes" msgstr "" #: editor/filesystem_dock.cpp @@ -3062,11 +3336,11 @@ msgid "Instance" msgstr "" #: editor/filesystem_dock.cpp -msgid "Add to favorites" +msgid "Add to Favorites" msgstr "" #: editor/filesystem_dock.cpp -msgid "Remove from favorites" +msgid "Remove from Favorites" msgstr "" #: editor/filesystem_dock.cpp @@ -3097,11 +3371,13 @@ msgstr "" msgid "New Resource..." msgstr "" -#: editor/filesystem_dock.cpp editor/script_editor_debugger.cpp +#: editor/filesystem_dock.cpp editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_editor_debugger.cpp msgid "Expand All" msgstr "" -#: editor/filesystem_dock.cpp editor/script_editor_debugger.cpp +#: editor/filesystem_dock.cpp editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_editor_debugger.cpp msgid "Collapse All" msgstr "" @@ -3113,11 +3389,11 @@ msgid "Rename" msgstr "" #: editor/filesystem_dock.cpp -msgid "Previous Directory" +msgid "Previous Folder/File" msgstr "" #: editor/filesystem_dock.cpp -msgid "Next Directory" +msgid "Next Folder/File" msgstr "" #: editor/filesystem_dock.cpp @@ -3125,7 +3401,7 @@ msgid "Re-Scan Filesystem" msgstr "" #: editor/filesystem_dock.cpp -msgid "Toggle split mode" +msgid "Toggle Split Mode" msgstr "" #: editor/filesystem_dock.cpp @@ -3154,7 +3430,7 @@ msgstr "" msgid "Create Script" msgstr "" -#: editor/find_in_files.cpp +#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp msgid "Find in Files" msgstr "" @@ -3170,6 +3446,12 @@ msgstr "" msgid "Filters:" msgstr "" +#: editor/find_in_files.cpp +msgid "" +"Include the files with the following extensions. Add or remove them in " +"ProjectSettings." +msgstr "" + #: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp msgid "Find..." @@ -3603,7 +3885,7 @@ msgid "Open Animation Node" msgstr "Optimizuj Animaciju" #: editor/plugins/animation_blend_space_2d_editor.cpp -msgid "Triangle already exists" +msgid "Triangle already exists." msgstr "" #: editor/plugins/animation_blend_space_2d_editor.cpp @@ -3679,7 +3961,6 @@ msgid "Node Moved" msgstr "" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Unable to connect, port may be in use or connection may be invalid." msgstr "" @@ -3748,7 +4029,7 @@ msgid "Edit Filtered Tracks:" msgstr "" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -msgid "Enable filtering" +msgid "Enable Filtering" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp @@ -3863,10 +4144,6 @@ msgid "Animation" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "New" -msgstr "" - -#: editor/plugins/animation_player_editor_plugin.cpp #, fuzzy msgid "Edit Transitions..." msgstr "Tranzicije" @@ -3884,11 +4161,11 @@ msgid "Autoplay on Load" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Onion Skinning" +msgid "Enable Onion Skinning" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Enable Onion Skinning" +msgid "Onion Skinning Options" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp @@ -4432,13 +4709,19 @@ msgid "Move CanvasItem" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"Children of containers have their anchors and margins values overridden by " +"their parent." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Presets for the anchors and margins values of a Control node." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "" -"Children of containers have their anchors and margins values overridden by " -"their parent." +"When active, moving Control nodes changes their anchors instead of their " +"margins." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4454,10 +4737,49 @@ msgid "Change Anchors" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Lock Selected" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Unlock Selected" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Group Selected" +msgstr "ObriÅ¡i Selekciju" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Ungroup Selected" +msgstr "ObriÅ¡i Selekciju" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Paste Pose" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Create Custom Bone(s) from Node(s)" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Clear Bones" +msgstr "Animacija Promjeni Transformaciju" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Make IK Chain" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Clear IK Chain" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "" "Warning: Children of a container get their position and size determined only " "by their parent." @@ -4529,7 +4851,7 @@ msgid "Snapping Options" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to grid" +msgid "Snap to Grid" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4550,31 +4872,31 @@ msgid "Use Pixel Snap" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Smart snapping" +msgid "Smart Snapping" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to parent" +msgid "Snap to Parent" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node anchor" +msgid "Snap to Node Anchor" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node sides" +msgid "Snap to Node Sides" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node center" +msgid "Snap to Node Center" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to other nodes" +msgid "Snap to Other Nodes" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to guides" +msgid "Snap to Guides" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4588,10 +4910,12 @@ msgid "Unlock the selected object (can be moved)." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Makes sure the object's children are not selectable." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Restores the object's children's ability to be selected." msgstr "" @@ -4604,14 +4928,6 @@ msgid "Show Bones" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Make IK Chain" -msgstr "" - -#: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Clear IK Chain" -msgstr "" - -#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Make Custom Bone(s) from Node(s)" msgstr "" @@ -4662,7 +4978,7 @@ msgid "Frame Selection" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Layout" +msgid "Preview Canvas Scale" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4716,6 +5032,10 @@ msgid "Divide grid step by 2" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Pan View" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Add %s" msgstr "" @@ -4738,7 +5058,7 @@ msgid "Error instancing scene from %s" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Change default type" +msgid "Change Default Type" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4825,19 +5145,19 @@ msgid "Create Emission Points From Node" msgstr "" #: editor/plugins/curve_editor_plugin.cpp -msgid "Flat0" +msgid "Flat 0" msgstr "" #: editor/plugins/curve_editor_plugin.cpp -msgid "Flat1" +msgid "Flat 1" msgstr "" -#: editor/plugins/curve_editor_plugin.cpp -msgid "Ease in" +#: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp +msgid "Ease In" msgstr "" -#: editor/plugins/curve_editor_plugin.cpp -msgid "Ease out" +#: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp +msgid "Ease Out" msgstr "" #: editor/plugins/curve_editor_plugin.cpp @@ -4857,23 +5177,27 @@ msgid "Load Curve Preset" msgstr "" #: editor/plugins/curve_editor_plugin.cpp -msgid "Add point" -msgstr "" +#, fuzzy +msgid "Add Point" +msgstr "Optimizuj Animaciju" #: editor/plugins/curve_editor_plugin.cpp -msgid "Remove point" -msgstr "" +#, fuzzy +msgid "Remove Point" +msgstr "ObriÅ¡i Selekciju" #: editor/plugins/curve_editor_plugin.cpp -msgid "Left linear" -msgstr "" +#, fuzzy +msgid "Left Linear" +msgstr "Linearna" #: editor/plugins/curve_editor_plugin.cpp -msgid "Right linear" -msgstr "" +#, fuzzy +msgid "Right Linear" +msgstr "Linearna" #: editor/plugins/curve_editor_plugin.cpp -msgid "Load preset" +msgid "Load Preset" msgstr "" #: editor/plugins/curve_editor_plugin.cpp @@ -4929,11 +5253,15 @@ msgid "This doesn't work on scene root!" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Trimesh Shape" +msgid "Create Trimesh Static Shape" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Shape" +msgid "Failed creating shapes!" +msgstr "" + +#: editor/plugins/mesh_instance_editor_plugin.cpp +msgid "Create Convex Shape(s)" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp @@ -4986,16 +5314,13 @@ msgid "Create Trimesh Static Body" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Static Body" -msgstr "" - -#: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Trimesh Collision Sibling" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Collision Sibling" -msgstr "" +#, fuzzy +msgid "Create Convex Collision Sibling(s)" +msgstr "Napravi" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Outline Mesh..." @@ -5148,20 +5473,20 @@ msgid "Create Navigation Polygon" msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp -msgid "Generating Visibility Rect" +#: editor/plugins/particles_editor_plugin.cpp +msgid "Convert to CPUParticles" msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp -msgid "Generate Visibility Rect" +msgid "Generating Visibility Rect" msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp -msgid "Can only set point into a ParticlesMaterial process material" +msgid "Generate Visibility Rect" msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp -#: editor/plugins/particles_editor_plugin.cpp -msgid "Convert to CPUParticles" +msgid "Can only set point into a ParticlesMaterial process material" msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp @@ -5304,7 +5629,7 @@ msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp editor/plugins/theme_editor_plugin.cpp -#: editor/project_export.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_export.cpp msgid "Options" msgstr "" @@ -5355,7 +5680,7 @@ msgid "Split Segment (in curve)" msgstr "" #: editor/plugins/physical_bone_plugin.cpp -msgid "Move joint" +msgid "Move Joint" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5592,7 +5917,6 @@ msgid "Open in Editor" msgstr "" #: editor/plugins/resource_preloader_editor_plugin.cpp -#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Load Resource" msgstr "" @@ -5681,6 +6005,11 @@ msgid "%s Class Reference" msgstr "" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp +msgid "Find Next" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp msgid "Toggle alphabetical sorting of the method list." msgstr "" @@ -5761,10 +6090,6 @@ msgstr "" msgid "Close All" msgstr "" -#: editor/plugins/script_editor_plugin.cpp -msgid "Close Other Tabs" -msgstr "" - #: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp msgid "Run" msgstr "" @@ -5773,11 +6098,6 @@ msgstr "" msgid "Toggle Scripts Panel" msgstr "" -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/script_text_editor.cpp -msgid "Find Next" -msgstr "" - #: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp msgid "Step Over" msgstr "" @@ -5804,7 +6124,7 @@ msgid "Debug with External Editor" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Open Godot online documentation" +msgid "Open Godot online documentation." msgstr "" #: editor/plugins/script_editor_plugin.cpp @@ -5812,7 +6132,7 @@ msgid "Request Docs" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Help improve the Godot documentation by giving feedback" +msgid "Help improve the Godot documentation by giving feedback." msgstr "" #: editor/plugins/script_editor_plugin.cpp @@ -5838,10 +6158,12 @@ msgid "" msgstr "" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp msgid "Reload" msgstr "" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp msgid "Resave" msgstr "" @@ -5854,6 +6176,27 @@ msgid "Search Results" msgstr "" #: editor/plugins/script_text_editor.cpp +msgid "Connections to method:" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Source" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Signal" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Target" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "" +"Missing connected method '%s' for signal '%s' from node '%s' to node '%s'." +msgstr "" + +#: editor/plugins/script_text_editor.cpp #, fuzzy msgid "Line" msgstr "Linearna" @@ -5866,10 +6209,6 @@ msgstr "" msgid "Go to Function" msgstr "" -#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp -msgid "Standard" -msgstr "" - #: editor/plugins/script_text_editor.cpp msgid "Only resources from filesystem can be dropped." msgstr "" @@ -5902,6 +6241,11 @@ msgstr "" msgid "Syntax Highlighter" msgstr "" +#: editor/plugins/script_text_editor.cpp +#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp +msgid "Bookmarks" +msgstr "" + #: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" @@ -5929,6 +6273,24 @@ msgid "Toggle Comment" msgstr "" #: editor/plugins/script_text_editor.cpp +msgid "Toggle Bookmark" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Go to Next Bookmark" +msgstr "OtiÄ‘i Na Sljedeći Korak" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Go to Previous Bookmark" +msgstr "OtiÄ‘i Na Prethodni Korak" + +#: editor/plugins/script_text_editor.cpp +msgid "Remove All Bookmarks" +msgstr "" + +#: editor/plugins/script_text_editor.cpp msgid "Fold/Unfold Line" msgstr "" @@ -6004,6 +6366,12 @@ msgid "Contextual Help" msgstr "" #: editor/plugins/shader_editor_plugin.cpp +msgid "" +"This shader has been modified on on disk.\n" +"What action should be taken?" +msgstr "" + +#: editor/plugins/shader_editor_plugin.cpp msgid "Shader" msgstr "" @@ -6341,7 +6709,7 @@ msgid "Right View" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Switch Perspective/Orthogonal view" +msgid "Switch Perspective/Orthogonal View" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp @@ -6381,11 +6749,12 @@ msgid "Toggle Freelook" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Transform" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Snap object to floor" +msgid "Snap Object to Floor" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp @@ -6530,40 +6899,40 @@ msgid "Invalid geometry, can't replace by mesh." msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Invalid geometry, can't create polygon." -msgstr "" - -#: editor/plugins/sprite_editor_plugin.cpp -msgid "Invalid geometry, can't create collision polygon." +msgid "Convert to Mesh2D" msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Invalid geometry, can't create light occluder." +msgid "Invalid geometry, can't create polygon." msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Sprite" -msgstr "" +#, fuzzy +msgid "Convert to Polygon2D" +msgstr "Napravi" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Convert to Mesh2D" +msgid "Invalid geometry, can't create collision polygon." msgstr "" #: editor/plugins/sprite_editor_plugin.cpp #, fuzzy -msgid "Convert to Polygon2D" +msgid "Create CollisionPolygon2D Sibling" msgstr "Napravi" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy -msgid "Create CollisionPolygon2D Sibling" -msgstr "Napravi" +msgid "Invalid geometry, can't create light occluder." +msgstr "" #: editor/plugins/sprite_editor_plugin.cpp msgid "Create LightOccluder2D Sibling" msgstr "" #: editor/plugins/sprite_editor_plugin.cpp +msgid "Sprite" +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp msgid "Simplification: " msgstr "" @@ -6580,7 +6949,11 @@ msgid "Settings:" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "ERROR: Couldn't load frame resource!" +msgid "No Frames Selected" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Add %d Frame(s)" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp @@ -6588,6 +6961,10 @@ msgid "Add Frame" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "ERROR: Couldn't load frame resource!" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Resource clipboard is empty or not a texture!" msgstr "" @@ -6631,6 +7008,15 @@ msgid "Animation Frames:" msgstr "Optimizuj Animaciju" #: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Add a Texture from File" +msgstr "ObriÅ¡i Selekciju" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Add Frames from a Sprite Sheet" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Insert Empty (Before)" msgstr "" @@ -6647,6 +7033,26 @@ msgid "Move (After)" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Select Frames" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Horizontal:" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Vertical:" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Select/Clear All Frames" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Create Frames from Sprite Sheet" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "SpriteFrames" msgstr "" @@ -6711,12 +7117,12 @@ msgstr "" msgid "Remove All Items" msgstr "" -#: editor/plugins/theme_editor_plugin.cpp +#: editor/plugins/theme_editor_plugin.cpp editor/project_manager.cpp msgid "Remove All" msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "Edit theme..." +msgid "Edit Theme" msgstr "" #: editor/plugins/theme_editor_plugin.cpp @@ -6744,18 +7150,24 @@ msgid "Create From Current Editor Theme" msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "CheckBox Radio1" +msgid "Toggle Button" msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "CheckBox Radio2" -msgstr "" +#, fuzzy +msgid "Disabled Button" +msgstr "Onemogućeno" #: editor/plugins/theme_editor_plugin.cpp msgid "Item" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Disabled Item" +msgstr "Onemogućeno" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Check Item" msgstr "" @@ -6772,6 +7184,22 @@ msgid "Checked Radio Item" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +msgid "Named Sep." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Submenu" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Item 1" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Item 2" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Has" msgstr "" @@ -6780,8 +7208,9 @@ msgid "Many" msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "Has,Many,Options" -msgstr "" +#, fuzzy +msgid "Disabled LineEdit" +msgstr "Onemogućeno" #: editor/plugins/theme_editor_plugin.cpp msgid "Tab 1" @@ -6796,6 +7225,18 @@ msgid "Tab 3" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +msgid "Editable Item" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Subtree" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Has,Many,Options" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Data Type:" msgstr "" @@ -6828,6 +7269,7 @@ msgid "Fix Invalid Tiles" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp +#: modules/gridmap/grid_map_editor_plugin.cpp #, fuzzy msgid "Cut Selection" msgstr "Uduplaj Selekciju" @@ -6869,37 +7311,46 @@ msgid "Mirror Y" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp +msgid "Disable Autotile" +msgstr "" + +#: editor/plugins/tile_map_editor_plugin.cpp +msgid "Enable Priority" +msgstr "" + +#: editor/plugins/tile_map_editor_plugin.cpp msgid "Paint Tile" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Pick Tile" +msgid "" +"Shift+RMB: Line Draw\n" +"Shift+Ctrl+RMB: Rectangle Paint" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy -msgid "Copy Selection" -msgstr "ObriÅ¡i Selekciju" +msgid "Pick Tile" +msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Rotate left" +msgid "Rotate Left" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Rotate right" +msgid "Rotate Right" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Flip horizontally" +msgid "Flip Horizontally" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Flip vertically" +msgid "Flip Vertically" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp #, fuzzy -msgid "Clear transform" +msgid "Clear Transform" msgstr "Animacija Promjeni Transformaciju" #: editor/plugins/tile_set_editor_plugin.cpp @@ -6936,6 +7387,41 @@ msgid "Select the previous shape, subtile, or Tile." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp +msgid "Region Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Collision Mode" +msgstr "Napravi" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Occlusion Mode" +msgstr "Napravi" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Navigation Mode" +msgstr "Napravi" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Bitmask Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Priority Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Icon Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Z Index Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp msgid "Copy bitmask." msgstr "" @@ -7021,6 +7507,7 @@ msgstr "Napravi" msgid "" "LMB: Set bit on.\n" "RMB: Set bit off.\n" +"Shift+LMB: Set wildcard bit.\n" "Click on another Tile to edit it." msgstr "" @@ -7136,6 +7623,69 @@ msgid "TileSet" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add input +" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add output +" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add input port" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add output port" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change input port type" +msgstr "PoÄisti Animaciju" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Change output port type" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Change input port name" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Change output port name" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Remove input port" +msgstr "ObriÅ¡i Selekciju" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Remove output port" +msgstr "ObriÅ¡i Selekciju" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Set expression" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Resize VisualShader node" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Set Uniform Name" msgstr "" @@ -7174,6 +7724,844 @@ msgid "Light" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Create Shader Node" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Color function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Color operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Grayscale function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts HSV vector to RGB equivalent." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts RGB vector to HSV equivalent." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Sepia function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Burn operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Darken operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Difference operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Dodge operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "HardLight operator" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Lighten operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Overlay operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Screen operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "SoftLight operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Color constant." +msgstr "Kontanta" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Color uniform." +msgstr "Animacija Promjeni Transformaciju" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns an associated vector if the provided scalars are equal, greater or " +"less." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns an associated vector if the provided boolean value is true or false." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'camera' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'inv_camera' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'inv_projection' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'normal' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'projection' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'time' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'viewport_size' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'world' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'texture_pixel_size' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Input parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'binormal' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'fragcoord' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_coord' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_uv' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'side' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'tangent' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv2' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'vertex' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'view' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'albedo' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'attenuation' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'diffuse' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_color' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'roughness' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'specular' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'transmission' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'modelview' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_size' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'tangent' input parameter for vertex and fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_pass' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_coord' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_pixel_size' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_uv' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_alpha' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_height' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_uv' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_vec' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'normal' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'shadow_color' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'extra' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'projection' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'vertex' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'world' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'active' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'custom' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'custom_alpha' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'delta' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'emission_transform' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'index' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'lifetime' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'restart' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'time' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'transform' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'velocity' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar function." +msgstr "Skaliraj Selekciju" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Scalar operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "E constant (2.718282). Represents the base of the natural logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Epsilon constant (0.00001). Smallest possible scalar number." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Phi constant (1.618034). Golden ratio." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi/4 constant (0.785398) or 45 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi/2 constant (1.570796) or 90 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi constant (3.141593) or 180 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Tau constant (6.283185) or 360 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Sqrt2 constant (1.414214). Square root of 2." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the absolute value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-tangent of the parameters." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Finds the nearest integer that is greater than or equal to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Constrains a value to lie between two further values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts a quantity in radians to degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-e Exponential." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-2 Exponential." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Finds the nearest integer less than or equal to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Computes the fractional part of the argument." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the inverse of the square root of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Natural logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-2 logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the greater of two values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the lesser of two values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Linear interpolation between two scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the opposite value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 - scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns the value of the first parameter raised to the power of the second." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts a quantity in degrees to radians." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 / scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the nearest integer to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the nearest even integer to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Clamps the value between 0.0 and 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Extracts the sign of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the square root of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( scalar(edge0), scalar(edge1), scalar(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if x is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( scalar(edge), scalar(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the truncated value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Adds scalar to scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Divides scalar by scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies scalar by scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the remainder of the two scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Subtracts scalar from scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Scalar constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar uniform." +msgstr "Animacija Promjeni Transformaciju" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Perform the cubic texture lookup." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Perform the texture lookup." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Cubic texture uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "2D texture uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Transform function." +msgstr "Napravi" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) Calculate the outer product of a pair of vectors.\n" +"\n" +"OuterProduct treats the first parameter 'c' as a column vector (matrix with " +"one column) and the second parameter 'r' as a row vector (matrix with one " +"row) and does a linear algebraic matrix multiply 'c * r', yielding a matrix " +"whose number of rows is the number of components in 'c' and whose number of " +"columns is the number of components in 'r'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Composes transform from four vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Decomposes transform to four vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the determinant of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the inverse of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the transpose of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies transform by transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies vector by transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Transform constant." +msgstr "Napravi" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Transform uniform." +msgstr "Napravi" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Composes vector from three scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Decomposes vector to three scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the cross product of two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the distance between two points." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the dot product of two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns a vector that points in the same direction as a reference vector. " +"The function has three vector parameters : N, the vector to orient, I, the " +"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 "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the length of a vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Linear interpolation between two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the normalize product of vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 - vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 / vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns a vector that points in the direction of reflection ( a : incident " +"vector, b : normal vector )." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns a vector that points in the direction of refraction." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( vector(edge0), vector(edge1), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if 'x' is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( scalar(edge0), scalar(edge1), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if 'x' is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( vector(edge), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( scalar(edge), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Adds vector to vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Divides vector by vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies vector by vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the remainder of the two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Subtracts vector from vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Custom Godot Shader Language expression, with custom amount of input and " +"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 "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns falloff based on the dot product of surface normal and view " +"direction of camera (pass associated inputs to it)." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) (Fragment/Light mode only) Scalar derivative function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) (Fragment/Light mode only) Vector derivative function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Derivative in 'x' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Derivative in 'x' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Derivative in 'y' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Derivative in 'y' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Sum of absolute derivative " +"in 'x' and 'y'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Sum of absolute derivative " +"in 'x' and 'y'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "VisualShader" msgstr "" @@ -7361,6 +8749,10 @@ msgid "Directory already contains a Godot project." msgstr "" #: editor/project_manager.cpp +msgid "New Game Project" +msgstr "" + +#: editor/project_manager.cpp msgid "Imported Project" msgstr "" @@ -7407,10 +8799,6 @@ msgid "Rename Project" msgstr "" #: editor/project_manager.cpp -msgid "New Game Project" -msgstr "" - -#: editor/project_manager.cpp msgid "Import Existing Project" msgstr "" @@ -7439,10 +8827,6 @@ msgid "Project Name:" msgstr "" #: editor/project_manager.cpp -msgid "Create folder" -msgstr "" - -#: editor/project_manager.cpp msgid "Project Path:" msgstr "" @@ -7451,10 +8835,6 @@ msgid "Project Installation Path:" msgstr "" #: editor/project_manager.cpp -msgid "Browse" -msgstr "" - -#: editor/project_manager.cpp msgid "Renderer:" msgstr "" @@ -7507,8 +8887,8 @@ msgid "" "\n" "If you proceed with opening it, it will be converted to Godot's current " "configuration file format.\n" -"Warning: You will not be able to open the project with previous versions of " -"the engine anymore." +"Warning: You won't be able to open the project with previous versions of the " +"engine anymore." msgstr "" #: editor/project_manager.cpp @@ -7519,8 +8899,8 @@ msgid "" "%s\n" "\n" "Do you want to convert it?\n" -"Warning: You will not be able to open the project with previous versions of " -"the engine anymore." +"Warning: You won't be able to open the project with previous versions of the " +"engine anymore." msgstr "" #: editor/project_manager.cpp @@ -7532,7 +8912,7 @@ msgstr "" #: editor/project_manager.cpp msgid "" "Can't run project: no main scene defined.\n" -"Please edit the project and set the main scene in \"Project Settings\" under " +"Please edit the project and set the main scene in the Project Settings under " "the \"Application\" category." msgstr "" @@ -7543,23 +8923,37 @@ msgid "" msgstr "" #: editor/project_manager.cpp -msgid "Are you sure to run more than one project?" +msgid "Are you sure to run %d projects at once?" +msgstr "" + +#: editor/project_manager.cpp +msgid "" +"Remove %d projects from the list?\n" +"The project folders' contents won't be modified." msgstr "" #: editor/project_manager.cpp -msgid "Remove project from the list? (Folder contents will not be modified)" +msgid "" +"Remove this project from the list?\n" +"The project folder's contents won't be modified." +msgstr "" + +#: editor/project_manager.cpp +msgid "" +"Remove all missing projects from the list? (Folders contents will not be " +"modified)" msgstr "" #: editor/project_manager.cpp msgid "" "Language changed.\n" -"The UI will update next time the editor or project manager starts." +"The interface will update after restarting the editor or project manager." msgstr "" #: editor/project_manager.cpp msgid "" -"You are about the scan %s folders for existing Godot projects. Do you " -"confirm?" +"Are you sure to scan %s folders for existing Godot projects?\n" +"This could take a while." msgstr "" #: editor/project_manager.cpp @@ -7583,6 +8977,11 @@ msgid "New Project" msgstr "" #: editor/project_manager.cpp +#, fuzzy +msgid "Remove Missing" +msgstr "ObriÅ¡i Selekciju" + +#: editor/project_manager.cpp msgid "Templates" msgstr "" @@ -7600,8 +8999,8 @@ msgstr "" #: editor/project_manager.cpp msgid "" -"You don't currently have any projects.\n" -"Would you like to explore the official example projects in the Asset Library?" +"You currently don't have any projects.\n" +"Would you like to explore official example projects in the Asset Library?" msgstr "" #: editor/project_settings_editor.cpp @@ -7627,7 +9026,7 @@ msgid "" msgstr "" #: editor/project_settings_editor.cpp -msgid "Action '%s' already exists!" +msgid "An action with the name '%s' already exists." msgstr "" #: editor/project_settings_editor.cpp @@ -7782,10 +9181,6 @@ msgid "" msgstr "" #: editor/project_settings_editor.cpp -msgid "Already existing" -msgstr "" - -#: editor/project_settings_editor.cpp msgid "Add Input Action" msgstr "" @@ -7850,7 +9245,7 @@ msgid "Override For..." msgstr "" #: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp -msgid "Editor must be restarted for changes to take effect" +msgid "The editor must be restarted for changes to take effect." msgstr "" #: editor/project_settings_editor.cpp @@ -7911,11 +9306,11 @@ msgid "Locales Filter" msgstr "" #: editor/project_settings_editor.cpp -msgid "Show all locales" +msgid "Show All Locales" msgstr "" #: editor/project_settings_editor.cpp -msgid "Show only selected locales" +msgid "Show Selected Locales Only" msgstr "" #: editor/project_settings_editor.cpp @@ -7931,14 +9326,6 @@ msgid "AutoLoad" msgstr "" #: editor/property_editor.cpp -msgid "Ease In" -msgstr "" - -#: editor/property_editor.cpp -msgid "Ease Out" -msgstr "" - -#: editor/property_editor.cpp msgid "Zero" msgstr "" @@ -8012,7 +9399,7 @@ msgid "Suffix" msgstr "" #: editor/rename_dialog.cpp -msgid "Advanced options" +msgid "Advanced Options" msgstr "" #: editor/rename_dialog.cpp @@ -8264,8 +9651,9 @@ msgid "User Interface" msgstr "" #: editor/scene_tree_dock.cpp -msgid "Custom Node" -msgstr "" +#, fuzzy +msgid "Other Node" +msgstr "Animacija ObriÅ¡i KljuÄeve" #: editor/scene_tree_dock.cpp msgid "Can't operate on nodes from a foreign scene!" @@ -8306,7 +9694,7 @@ msgid "Clear Inheritance" msgstr "" #: editor/scene_tree_dock.cpp -msgid "Open documentation" +msgid "Open Documentation" msgstr "" #: editor/scene_tree_dock.cpp @@ -8333,7 +9721,7 @@ msgstr "" msgid "Save Branch as Scene" msgstr "" -#: editor/scene_tree_dock.cpp +#: editor/scene_tree_dock.cpp editor/script_editor_debugger.cpp msgid "Copy Node Path" msgstr "" @@ -8376,6 +9764,18 @@ msgid "Toggle Visible" msgstr "" #: editor/scene_tree_editor.cpp +msgid "Unlock Node" +msgstr "" + +#: editor/scene_tree_editor.cpp +msgid "Button Group" +msgstr "" + +#: editor/scene_tree_editor.cpp +msgid "(Connecting From)" +msgstr "" + +#: editor/scene_tree_editor.cpp msgid "Node configuration warning:" msgstr "" @@ -8397,8 +9797,8 @@ msgid "" "Click to show groups dock." msgstr "" -#: editor/scene_tree_editor.cpp editor/script_create_dialog.cpp -msgid "Open Script" +#: editor/scene_tree_editor.cpp +msgid "Open Script:" msgstr "" #: editor/scene_tree_editor.cpp @@ -8444,71 +9844,71 @@ msgid "Select a Node" msgstr "" #: editor/script_create_dialog.cpp -msgid "Error loading template '%s'" +msgid "Path is empty." msgstr "" #: editor/script_create_dialog.cpp -msgid "Error - Could not create script in filesystem." +msgid "Filename is empty." msgstr "" #: editor/script_create_dialog.cpp -msgid "Error loading script from %s" +msgid "Path is not local." msgstr "" #: editor/script_create_dialog.cpp -msgid "N/A" +msgid "Invalid base path." msgstr "" #: editor/script_create_dialog.cpp -msgid "Open Script/Choose Location" +msgid "A directory with the same name exists." msgstr "" #: editor/script_create_dialog.cpp -msgid "Path is empty" +msgid "Invalid extension." msgstr "" #: editor/script_create_dialog.cpp -msgid "Filename is empty" +msgid "Wrong extension chosen." msgstr "" #: editor/script_create_dialog.cpp -msgid "Path is not local" +msgid "Error loading template '%s'" msgstr "" #: editor/script_create_dialog.cpp -msgid "Invalid base path" +msgid "Error - Could not create script in filesystem." msgstr "" #: editor/script_create_dialog.cpp -msgid "Directory of the same name exists" +msgid "Error loading script from %s" msgstr "" #: editor/script_create_dialog.cpp -msgid "File exists, will be reused" +msgid "N/A" msgstr "" #: editor/script_create_dialog.cpp -msgid "Invalid extension" +msgid "Open Script / Choose Location" msgstr "" #: editor/script_create_dialog.cpp -msgid "Wrong extension chosen" +msgid "Open Script" msgstr "" #: editor/script_create_dialog.cpp -msgid "Invalid Path" +msgid "File exists, it will be reused." msgstr "" #: editor/script_create_dialog.cpp -msgid "Invalid class name" +msgid "Invalid class name." msgstr "" #: editor/script_create_dialog.cpp -msgid "Invalid inherited parent name or path" +msgid "Invalid inherited parent name or path." msgstr "" #: editor/script_create_dialog.cpp -msgid "Script valid" +msgid "Script is valid." msgstr "" #: editor/script_create_dialog.cpp @@ -8516,15 +9916,16 @@ msgid "Allowed: a-z, A-Z, 0-9 and _" msgstr "" #: editor/script_create_dialog.cpp -msgid "Built-in script (into scene file)" +msgid "Built-in script (into scene file)." msgstr "" #: editor/script_create_dialog.cpp -msgid "Create new script file" -msgstr "" +#, fuzzy +msgid "Will create a new script file." +msgstr "Napravi" #: editor/script_create_dialog.cpp -msgid "Load existing script file" +msgid "Will load an existing script file." msgstr "" #: editor/script_create_dialog.cpp @@ -8655,6 +10056,10 @@ msgstr "" msgid "Set From Tree" msgstr "" +#: editor/script_editor_debugger.cpp +msgid "Export measures as CSV" +msgstr "" + #: editor/settings_config_dialog.cpp msgid "Erase Shortcut" msgstr "" @@ -8784,6 +10189,14 @@ msgid "GDNativeLibrary" msgstr "" #: modules/gdnative/gdnative_library_singleton_editor.cpp +msgid "Enabled GDNative Singleton" +msgstr "" + +#: modules/gdnative/gdnative_library_singleton_editor.cpp +msgid "Disabled GDNative Singleton" +msgstr "" + +#: modules/gdnative/gdnative_library_singleton_editor.cpp msgid "Library" msgstr "" @@ -8869,8 +10282,9 @@ msgid "GridMap Fill Selection" msgstr "Sve sekcije" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "GridMap Duplicate Selection" -msgstr "" +#, fuzzy +msgid "GridMap Paste Selection" +msgstr "Sve sekcije" #: modules/gridmap/grid_map_editor_plugin.cpp msgid "GridMap Paint" @@ -8937,18 +10351,6 @@ msgid "Cursor Clear Rotation" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Create Area" -msgstr "" - -#: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Create Exterior Connector" -msgstr "" - -#: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Erase Area" -msgstr "" - -#: modules/gridmap/grid_map_editor_plugin.cpp msgid "Clear Selection" msgstr "" @@ -9300,15 +10702,7 @@ msgid "Available Nodes:" msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Select or create a function to edit graph" -msgstr "" - -#: modules/visual_script/visual_script_editor.cpp -msgid "Edit Signal Arguments:" -msgstr "" - -#: modules/visual_script/visual_script_editor.cpp -msgid "Edit Variable:" +msgid "Select or create a function to edit its graph." msgstr "" #: modules/visual_script/visual_script_editor.cpp @@ -9438,6 +10832,19 @@ msgid "Debug keystore not configured in the Editor Settings nor in the preset." msgstr "" #: platform/android/export/export.cpp +msgid "Custom build requires a valid Android SDK path in Editor Settings." +msgstr "" + +#: platform/android/export/export.cpp +msgid "Invalid Android SDK path for custom build in Editor Settings." +msgstr "" + +#: platform/android/export/export.cpp +msgid "" +"Android project is not installed for compiling. Install from Editor menu." +msgstr "" + +#: platform/android/export/export.cpp msgid "Invalid public key for APK expansion." msgstr "" @@ -9445,6 +10852,34 @@ msgstr "" msgid "Invalid package name:" msgstr "" +#: platform/android/export/export.cpp +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 "" +"Android build version mismatch:\n" +" Template installed: %s\n" +" Godot Version: %s\n" +"Please reinstall Android build template from 'Project' menu." +msgstr "" + +#: platform/android/export/export.cpp +msgid "Building Android Project (gradle)" +msgstr "" + +#: 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 "" + +#: platform/android/export/export.cpp +msgid "No build apk generated at: " +msgstr "" + #: platform/iphone/export/export.cpp msgid "Identifier is missing." msgstr "" @@ -9697,27 +11132,27 @@ msgid "ARVRCamera must have an ARVROrigin node as its parent" msgstr "" #: scene/3d/arvr_nodes.cpp -msgid "ARVRController must have an ARVROrigin node as its parent" +msgid "ARVRController must have an ARVROrigin node as its parent." msgstr "" #: scene/3d/arvr_nodes.cpp msgid "" -"The controller id must not be 0 or this controller will not be bound to an " -"actual controller" +"The controller ID must not be 0 or this controller won't be bound to an " +"actual controller." msgstr "" #: scene/3d/arvr_nodes.cpp -msgid "ARVRAnchor must have an ARVROrigin node as its parent" +msgid "ARVRAnchor must have an ARVROrigin node as its parent." msgstr "" #: scene/3d/arvr_nodes.cpp msgid "" -"The anchor id must not be 0 or this anchor will not be bound to an actual " -"anchor" +"The anchor ID must not be 0 or this anchor won't be bound to an actual " +"anchor." msgstr "" #: scene/3d/arvr_nodes.cpp -msgid "ARVROrigin requires an ARVRCamera child node" +msgid "ARVROrigin requires an ARVRCamera child node." msgstr "" #: scene/3d/baked_lightmap.cpp @@ -9787,8 +11222,8 @@ msgstr "" #: scene/3d/cpu_particles.cpp msgid "" -"CPUParticles animation requires the usage of a SpatialMaterial with " -"\"Billboard Particles\" enabled." +"CPUParticles animation requires the usage of a SpatialMaterial whose " +"Billboard Mode is set to \"Particle Billboard\"." msgstr "" #: scene/3d/gi_probe.cpp @@ -9825,8 +11260,8 @@ msgstr "" #: scene/3d/particles.cpp msgid "" -"Particles animation requires the usage of a SpatialMaterial with \"Billboard " -"Particles\" enabled." +"Particles animation requires the usage of a SpatialMaterial whose Billboard " +"Mode is set to \"Particle Billboard\"." msgstr "" #: scene/3d/path.cpp @@ -9851,7 +11286,7 @@ msgid "Path property must point to a valid Spatial node to work." msgstr "" #: scene/3d/soft_body.cpp -msgid "This body will be ignored until you set a mesh" +msgid "This body will be ignored until you set a mesh." msgstr "" #: scene/3d/soft_body.cpp @@ -9948,7 +11383,7 @@ msgstr "" msgid "" "Container by itself serves no purpose unless a script configures it's " "children placement behavior.\n" -"If you dont't intend to add a script, then please use a plain 'Control' node " +"If you don't intend to add a script, then please use a plain 'Control' node " "instead." msgstr "" @@ -9960,10 +11395,6 @@ msgstr "" msgid "Please Confirm..." msgstr "" -#: scene/gui/file_dialog.cpp -msgid "Go to parent folder." -msgstr "" - #: scene/gui/popup.cpp msgid "" "Popups will hide by default unless you call popup() or any of the popup*() " @@ -10036,12 +11467,9 @@ msgstr "" msgid "Varyings can only be assigned in vertex function." msgstr "" -#, fuzzy -#~ msgid "Remove Split" -#~ msgstr "ObriÅ¡i Selekciju" - -#~ msgid "Disabled" -#~ msgstr "Onemogućeno" +#: servers/visual/shader_language.cpp +msgid "Constants cannot be modified." +msgstr "" #~ msgid "Move Anim Track Up" #~ msgstr "Pomjeri Kanal Animacije Gore" diff --git a/editor/translations/sv.po b/editor/translations/sv.po index 63a6d6e6c7..e746cdadcc 100644 --- a/editor/translations/sv.po +++ b/editor/translations/sv.po @@ -77,6 +77,15 @@ msgstr "Balanserad" msgid "Mirror" msgstr "Spegla" +#: editor/animation_bezier_editor.cpp editor/editor_profiler.cpp +msgid "Time:" +msgstr "Tid:" + +#: editor/animation_bezier_editor.cpp +#, fuzzy +msgid "Value:" +msgstr "Värde" + #: editor/animation_bezier_editor.cpp msgid "Insert Key Here" msgstr "Infoga Nyckel Här" @@ -161,15 +170,20 @@ msgstr "" #: editor/animation_track_editor.cpp #, fuzzy -msgid "Add Track" -msgstr "Anim Lägg till spÃ¥r" +msgid "Animation length (frames)" +msgstr "Animation längd (i sekunder)." #: editor/animation_track_editor.cpp #, fuzzy -msgid "Animation Length Time (seconds)" +msgid "Animation length (seconds)" msgstr "Animation längd (i sekunder)." #: editor/animation_track_editor.cpp +#, fuzzy +msgid "Add Track" +msgstr "Anim Lägg till spÃ¥r" + +#: editor/animation_track_editor.cpp msgid "Animation Looping" msgstr "Animationslooping" @@ -300,11 +314,13 @@ msgid "Create %d NEW tracks and insert keys?" msgstr "Skapa %d NYA spÃ¥r och infoga nycklar?" #: editor/animation_track_editor.cpp editor/create_dialog.cpp -#: editor/editor_audio_buses.cpp editor/editor_plugin_settings.cpp -#: editor/plugin_config_dialog.cpp +#: editor/editor_audio_buses.cpp editor/editor_feature_profile.cpp +#: editor/editor_plugin_settings.cpp editor/plugin_config_dialog.cpp #: editor/plugins/abstract_polygon_2d_editor.cpp #: editor/plugins/mesh_instance_editor_plugin.cpp -#: editor/plugins/particles_editor_plugin.cpp editor/script_create_dialog.cpp +#: editor/plugins/particles_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_create_dialog.cpp msgid "Create" msgstr "Skapa" @@ -423,6 +439,23 @@ msgid "" msgstr "" #: editor/animation_track_editor.cpp +msgid "" +"This animation belongs to an imported scene, so changes to imported tracks " +"will not be saved.\n" +"\n" +"To enable the ability to add custom tracks, navigate to the scene's import " +"settings and set\n" +"\"Animation > Storage\" to \"Files\", enable \"Animation > Keep Custom Tracks" +"\", then re-import.\n" +"Alternatively, use an import preset that imports animations to separate " +"files." +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Warning: Editing imported animation" +msgstr "" + +#: editor/animation_track_editor.cpp msgid "Only show tracks from nodes selected in tree." msgstr "" @@ -572,7 +605,8 @@ msgstr "Skalnings förhÃ¥llande:" msgid "Select tracks to copy:" msgstr "" -#: editor/animation_track_editor.cpp editor/editor_properties.cpp +#: editor/animation_track_editor.cpp editor/editor_log.cpp +#: editor/editor_properties.cpp #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp @@ -647,6 +681,11 @@ msgstr "Ersätt Alla" msgid "Selection Only" msgstr "Endast Urval" +#: editor/code_editor.cpp editor/plugins/script_text_editor.cpp +#: editor/plugins/text_editor.cpp +msgid "Standard" +msgstr "" + #: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/texture_region_editor_plugin.cpp #: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp @@ -674,22 +713,37 @@ msgstr "" #: editor/connections_dialog.cpp #, fuzzy -msgid "Method in target Node must be specified!" +msgid "Method in target node must be specified." msgstr "Metod i MÃ¥l-Node mÃ¥ste specificeras!" #: editor/connections_dialog.cpp #, fuzzy msgid "" -"Target method not found! Specify a valid method or attach a script to target " -"Node." +"Target method not found. Specify a valid method or attach a script to the " +"target node." msgstr "" "MÃ¥lmetod hittades inte! Specificera en giltig metod eller koppla ett skript " "till MÃ¥l-Node." #: editor/connections_dialog.cpp -msgid "Connect To Node:" +#, fuzzy +msgid "Connect to Node:" +msgstr "Anslut Till Node:" + +#: editor/connections_dialog.cpp +#, fuzzy +msgid "Connect to Script:" msgstr "Anslut Till Node:" +#: editor/connections_dialog.cpp +#, fuzzy +msgid "From Signal:" +msgstr "Signaler:" + +#: editor/connections_dialog.cpp +msgid "Scene does not contain any script." +msgstr "" + #: editor/connections_dialog.cpp editor/editor_autoload_settings.cpp #: editor/groups_editor.cpp editor/plugins/item_list_editor_plugin.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_settings_editor.cpp @@ -697,10 +751,12 @@ msgid "Add" msgstr "Lägg till" #: editor/connections_dialog.cpp editor/dependency_editor.cpp -#: editor/groups_editor.cpp editor/plugins/animation_player_editor_plugin.cpp +#: editor/editor_feature_profile.cpp editor/groups_editor.cpp +#: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp #: editor/plugins/resource_preloader_editor_plugin.cpp -#: editor/plugins/theme_editor_plugin.cpp editor/project_manager.cpp +#: editor/plugins/theme_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_manager.cpp #: editor/project_settings_editor.cpp msgid "Remove" msgstr "Ta bort" @@ -717,23 +773,32 @@ msgstr "Extra Call Argument:" #: editor/connections_dialog.cpp #, fuzzy -msgid "Path to Node:" -msgstr "Sökväg till Node:" - -#: editor/connections_dialog.cpp -#, fuzzy -msgid "Make Function" -msgstr "Skapa Funktion" +msgid "Advanced" +msgstr "Balanserad" #: editor/connections_dialog.cpp msgid "Deferred" msgstr "Uppskjuten" #: editor/connections_dialog.cpp +msgid "" +"Defers the signal, storing it in a queue and only firing it at idle time." +msgstr "" + +#: editor/connections_dialog.cpp #, fuzzy msgid "Oneshot" msgstr "Oneshot" +#: editor/connections_dialog.cpp +msgid "Disconnects the signal after its first emission." +msgstr "" + +#: editor/connections_dialog.cpp +#, fuzzy +msgid "Cannot connect signal" +msgstr "Ansluter Signal:" + #: editor/connections_dialog.cpp editor/dependency_editor.cpp #: editor/export_template_manager.cpp editor/groups_editor.cpp #: editor/plugins/animation_player_editor_plugin.cpp @@ -777,12 +842,12 @@ msgstr "Koppla frÃ¥n" #: editor/connections_dialog.cpp #, fuzzy -msgid "Connect Signal: " +msgid "Connect a Signal to a Method" msgstr "Ansluter Signal:" #: editor/connections_dialog.cpp #, fuzzy -msgid "Edit Connection: " +msgid "Edit Connection:" msgstr "Anslutningsfel" #: editor/connections_dialog.cpp @@ -819,7 +884,6 @@ msgid "Change %s Type" msgstr "Ändra Typ" #: editor/create_dialog.cpp editor/project_settings_editor.cpp -#: modules/visual_script/visual_script_editor.cpp #, fuzzy msgid "Change" msgstr "Ändra" @@ -854,7 +918,8 @@ msgid "Matches:" msgstr "Matchar:" #: editor/create_dialog.cpp editor/plugin_config_dialog.cpp -#: editor/plugins/asset_library_editor_plugin.cpp editor/property_selector.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/property_selector.cpp #: modules/visual_script/visual_script_property_selector.cpp msgid "Description:" msgstr "Beskrivning:" @@ -872,7 +937,7 @@ msgstr "Beroenden För:" #, fuzzy msgid "" "Scene '%s' is currently being edited.\n" -"Changes will not take effect unless reloaded." +"Changes will only take effect when reloaded." msgstr "" "Scen '%s' hÃ¥ller pÃ¥ att redigeras.\n" "Ändringarna börjar inte gälla förrän omladdning." @@ -881,7 +946,7 @@ msgstr "" #, fuzzy msgid "" "Resource '%s' is in use.\n" -"Changes will take effect when reloaded." +"Changes will only take effect when reloaded." msgstr "" "Resurs '%s' är i användning.\n" "Ändringarna börjar gälla när den laddas om." @@ -994,22 +1059,13 @@ msgstr "Ta bort %d sak(er) permanent? (GÃ¥r inte Ã¥ngra!)" #: editor/dependency_editor.cpp #, fuzzy -msgid "Owns" -msgstr "Äger" - -#: editor/dependency_editor.cpp -#, fuzzy -msgid "Resources Without Explicit Ownership:" -msgstr "Resurser Utan Explicit Ägande:" +msgid "Show Dependencies" +msgstr "Beroenden" #: editor/dependency_editor.cpp editor/editor_node.cpp msgid "Orphan Resource Explorer" msgstr "Föräldralös Resursutforskare" -#: editor/dependency_editor.cpp -msgid "Delete selected files?" -msgstr "Ta bort valda filer?" - #: editor/dependency_editor.cpp editor/editor_audio_buses.cpp #: editor/editor_file_dialog.cpp editor/editor_node.cpp #: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp @@ -1018,6 +1074,16 @@ msgstr "Ta bort valda filer?" 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" @@ -1152,7 +1218,7 @@ msgstr "Paketet installerades!" msgid "Success!" msgstr "Klart!" -#: editor/editor_asset_installer.cpp +#: editor/editor_asset_installer.cpp editor/editor_node.cpp #: editor/plugins/asset_library_editor_plugin.cpp msgid "Install" msgstr "Installera" @@ -1303,9 +1369,12 @@ msgid "Open Audio Bus Layout" msgstr "Öppna Ljud-Buss Layout" #: editor/editor_audio_buses.cpp -#, fuzzy -msgid "There is no 'res://default_bus_layout.tres' file." -msgstr "Det finns ingen 'res://default_bus_layout.tres' fil." +msgid "There is no '%s' file." +msgstr "" + +#: editor/editor_audio_buses.cpp editor/plugins/canvas_item_editor_plugin.cpp +msgid "Layout" +msgstr "Layout" #: editor/editor_audio_buses.cpp #, fuzzy @@ -1370,22 +1439,26 @@ msgstr "Giltiga tecken:" #: editor/editor_autoload_settings.cpp #, fuzzy -msgid "Invalid name. Must not collide with an existing engine class name." +msgid "Must not collide with an existing engine class name." msgstr "" "Ogiltigt namn. FÃ¥r inte vara samma som ett befintligt engine class-namn." #: editor/editor_autoload_settings.cpp #, fuzzy -msgid "Invalid name. Must not collide with an existing buit-in type name." +msgid "Must not collide with an existing buit-in type name." msgstr "Ogiltigt namn. FÃ¥r inte vara samma som ett befintligt inbyggt typnamn." #: editor/editor_autoload_settings.cpp #, fuzzy -msgid "Invalid name. Must not collide with an existing global constant name." +msgid "Must not collide with an existing global constant name." msgstr "" "Ogiltigt namn. FÃ¥r inte vara samma som ett befintligt global constant-namn." #: editor/editor_autoload_settings.cpp +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!" @@ -1419,12 +1492,12 @@ msgstr "Aktivera" msgid "Rearrange Autoloads" msgstr "Ändra ordning pÃ¥ Autoloads" -#: editor/editor_autoload_settings.cpp +#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp #, fuzzy -msgid "Invalid Path." +msgid "Invalid path." msgstr "Ogiltig Sökväg." -#: editor/editor_autoload_settings.cpp +#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp msgid "File does not exist." msgstr "Fil existerar inte." @@ -1483,7 +1556,7 @@ msgstr "" #: editor/editor_dir_dialog.cpp #, fuzzy -msgid "Please select a base directory first" +msgid "Please select a base directory first." msgstr "Vänligen välj en baskatalog först" #: editor/editor_dir_dialog.cpp @@ -1492,7 +1565,8 @@ msgid "Choose a Directory" msgstr "Välj en Katalog" #: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp -#: editor/filesystem_dock.cpp scene/gui/file_dialog.cpp +#: editor/filesystem_dock.cpp editor/project_manager.cpp +#: scene/gui/file_dialog.cpp msgid "Create Folder" msgstr "Skapa Mapp" @@ -1564,6 +1638,174 @@ msgstr "" msgid "Template file not found:" msgstr "Mallfil hittades inte:\n" +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "3D Editor" +msgstr "Öppna Skript-Redigerare" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Script Editor" +msgstr "Öppna Skript-Redigerare" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Asset Library" +msgstr "Bibliotek" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Scene Tree Editing" +msgstr "Scenträd (Noder):" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Import Dock" +msgstr "Importera" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Node Dock" +msgstr "Node Namn:" + +#: editor/editor_feature_profile.cpp +msgid "Filesystem Dock" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Erase profile '%s'? (no undo)" +msgstr "Ersätt Alla" + +#: editor/editor_feature_profile.cpp +msgid "Profile must be a valid filename and must not contain '.'" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Profile with this name already exists." +msgstr "En fil eller mapp med detta namn finns redan." + +#: editor/editor_feature_profile.cpp +msgid "(Editor Disabled, Properties Disabled)" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "(Properties Disabled)" +msgstr "Egenskaper" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "(Editor Disabled)" +msgstr "Redigera Variabel" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Class Options:" +msgstr "Beskrivning:" + +#: editor/editor_feature_profile.cpp +msgid "Enable Contextual Editor" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enabled Properties:" +msgstr "Egenskaper" + +#: editor/editor_feature_profile.cpp +msgid "Enabled Features:" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enabled Classes:" +msgstr "Sök Klasser" + +#: editor/editor_feature_profile.cpp +msgid "File '%s' format is invalid, import aborted." +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "" +"Profile '%s' already exists. Remote it first before importing, import " +"aborted." +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Error saving profile to path: '%s'." +msgstr "Fel vid laddning av mall '%s'" + +#: editor/editor_feature_profile.cpp +msgid "Unset" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Current Profile" +msgstr "Nuvarande Version:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Make Current" +msgstr "Nuvarande:" + +#: editor/editor_feature_profile.cpp +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "New" +msgstr "Ny" + +#: editor/editor_feature_profile.cpp editor/editor_node.cpp +#: editor/plugins/asset_library_editor_plugin.cpp editor/project_manager.cpp +msgid "Import" +msgstr "Importera" + +#: editor/editor_feature_profile.cpp editor/editor_node.cpp +#: editor/project_export.cpp +msgid "Export" +msgstr "Exportera" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Available Profiles" +msgstr "Tillgängliga Noder:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enabled Classes" +msgstr "Sök Klasser" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Class Options" +msgstr "Beskrivning" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "New profile name:" +msgstr "Nytt namn:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Erase Profile" +msgstr "Radera punkter" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Import Profile(s)" +msgstr "%d fler filer" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Export Profile" +msgstr "Exportera Projekt" + +#: editor/editor_feature_profile.cpp +msgid "Manage Editor Feature Profiles" +msgstr "" + #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp #, fuzzy msgid "Select Current Folder" @@ -1589,8 +1831,8 @@ msgstr "Kopiera Sökvägen" msgid "Open in File Manager" msgstr "Visa I Filhanteraren" -#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp -#: editor/project_manager.cpp +#: editor/editor_file_dialog.cpp editor/editor_node.cpp +#: editor/filesystem_dock.cpp editor/project_manager.cpp #, fuzzy msgid "Show in File Manager" msgstr "Visa I Filhanteraren" @@ -1652,7 +1894,7 @@ msgstr "GÃ¥ FramÃ¥t" msgid "Go Up" msgstr "GÃ¥ Upp" -#: editor/editor_file_dialog.cpp +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp #, fuzzy msgid "Toggle Hidden Files" msgstr "Växla Dolda Filer" @@ -1689,8 +1931,9 @@ msgstr "FöregÃ¥ende flik" msgid "Next Folder" msgstr "Skapa Mapp" -#: editor/editor_file_dialog.cpp -msgid "Go to parent folder" +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp +#, fuzzy +msgid "Go to parent folder." msgstr "GÃ¥ till överordnad mapp" #: editor/editor_file_dialog.cpp @@ -1698,6 +1941,11 @@ msgstr "GÃ¥ till överordnad mapp" msgid "(Un)favorite current folder." msgstr "Kunde inte skapa mapp." +#: editor/editor_file_dialog.cpp +#, fuzzy +msgid "Toggle visibility of hidden files." +msgstr "Växla Dolda Filer" + #: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp msgid "View items as a grid of thumbnails." msgstr "" @@ -1713,6 +1961,7 @@ msgstr "Kataloger & Filer:" #: editor/editor_file_dialog.cpp editor/plugins/sprite_editor_plugin.cpp #: editor/plugins/style_box_editor_plugin.cpp +#: editor/plugins/theme_editor_plugin.cpp msgid "Preview:" msgstr "Förhandsvisning:" @@ -1731,6 +1980,12 @@ msgid "ScanSources" msgstr "ScanSources" #: editor/editor_file_system.cpp +msgid "" +"There are multiple importers for different types pointing to file %s, import " +"aborted" +msgstr "" + +#: editor/editor_file_system.cpp #, fuzzy msgid "(Re)Importing Assets" msgstr "(Om)Importerar TillgÃ¥ngar" @@ -1944,6 +2199,11 @@ msgstr "" msgid "Output:" msgstr "Output:" +#: editor/editor_log.cpp editor/plugins/tile_map_editor_plugin.cpp +#, fuzzy +msgid "Copy Selection" +msgstr "Ta bort Urval" + #: editor/editor_log.cpp editor/editor_profiler.cpp #: editor/editor_properties.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp @@ -2117,7 +2377,7 @@ msgstr "" #, fuzzy msgid "" "This resource belongs to a scene that was instanced or inherited.\n" -"Changes to it will not be kept when saving the current scene." +"Changes to it won't be kept when saving the current scene." msgstr "" "Denna resurs tillhör en scen som var instansierad eller ärvd.\n" "Ändringar pÃ¥ den kommer inte att sparas när du sparar den nuvarande scenen." @@ -2134,7 +2394,7 @@ msgstr "" #: editor/editor_node.cpp #, fuzzy msgid "" -"This scene was imported, so changes to it will not be kept.\n" +"This scene was imported, so changes to it won't be kept.\n" "Instancing it or inheriting will allow making changes to it.\n" "Please read the documentation relevant to importing scenes to better " "understand this workflow." @@ -2147,7 +2407,7 @@ msgstr "" #: editor/editor_node.cpp #, fuzzy msgid "" -"This is a remote object so changes to it will not be kept.\n" +"This is a remote object, so changes to it won't be kept.\n" "Please read the documentation relevant to debugging to better understand " "this workflow." msgstr "" @@ -2160,39 +2420,6 @@ msgid "There is no defined scene to run." msgstr "Det finns ingen definierad scen att köra." #: editor/editor_node.cpp -#, fuzzy -msgid "" -"No main scene has ever been defined, select one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" -"Ingen huvudscen har definierats, välj en giltig?\n" -"Du kan ändra det senare i \"Projektinställningar\" under 'Applikation'-" -"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' " -"category." -msgstr "" -"Vald scene '%s' finns inte, välj en giltig?\n" -"Du kan ändra det senare i \"Projektinställningar\" under 'Applikation'-" -"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' " -"category." -msgstr "" -"Vald scen '%s' är inte en scenfil, välj en giltig?\n" -"Du kan ändra det senare i \"Projektinställningar\" under 'Applikation'-" -"kategorin." - -#: editor/editor_node.cpp 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." @@ -2201,7 +2428,7 @@ msgstr "Nuvarande scen har aldrig sparats, vänligen spara den innan körning." msgid "Could not start subprocess!" msgstr "Kunde inte starta underprocess!" -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/filesystem_dock.cpp msgid "Open Scene" msgstr "Öppna Scen" @@ -2212,6 +2439,11 @@ msgstr "Öppna Bas-Scen" #: editor/editor_node.cpp #, fuzzy +msgid "Quick Open..." +msgstr "Snabböppna Scen..." + +#: editor/editor_node.cpp +#, fuzzy msgid "Quick Open Scene..." msgstr "Snabböppna Scen..." @@ -2415,6 +2647,39 @@ 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' " +"category." +msgstr "" +"Ingen huvudscen har definierats, välj en giltig?\n" +"Du kan ändra det senare i \"Projektinställningar\" under 'Applikation'-" +"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' " +"category." +msgstr "" +"Vald scene '%s' finns inte, välj en giltig?\n" +"Du kan ändra det senare i \"Projektinställningar\" under 'Applikation'-" +"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' " +"category." +msgstr "" +"Vald scen '%s' är inte en scenfil, välj en giltig?\n" +"Du kan ändra det senare i \"Projektinställningar\" under 'Applikation'-" +"kategorin." + +#: editor/editor_node.cpp msgid "Save Layout" msgstr "Spara Layout" @@ -2444,6 +2709,20 @@ msgstr "Spela Scen" msgid "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" + +#: editor/editor_node.cpp +msgid "Close Tabs to the Right" +msgstr "" + +#: editor/editor_node.cpp +#, fuzzy +msgid "Close All Tabs" +msgstr "Stäng Alla" + #: editor/editor_node.cpp #, fuzzy msgid "Switch Scene Tab" @@ -2578,10 +2857,6 @@ msgstr "Projekt" msgid "Project Settings" msgstr "Projektinställningar" -#: editor/editor_node.cpp editor/project_export.cpp -msgid "Export" -msgstr "Exportera" - #: editor/editor_node.cpp editor/plugins/tile_set_editor_plugin.cpp msgid "Tools" msgstr "Verktyg" @@ -2592,6 +2867,10 @@ msgid "Open Project Data Folder" msgstr "Öppna Projekthanteraren?" #: editor/editor_node.cpp +msgid "Install Android Build Template" +msgstr "" + +#: editor/editor_node.cpp #, fuzzy msgid "Quit to Project List" msgstr "Avsluta till Projektlistan" @@ -2700,6 +2979,10 @@ msgstr "" msgid "Open Editor Settings Folder" msgstr "" +#: editor/editor_node.cpp +msgid "Manage Editor Features" +msgstr "" + #: editor/editor_node.cpp editor/project_export.cpp msgid "Manage Export Templates" msgstr "" @@ -2712,6 +2995,7 @@ msgstr "Hjälp" #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp #: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp #: editor/project_settings_editor.cpp editor/rename_dialog.cpp msgid "Search" msgstr "Sök" @@ -2808,11 +3092,6 @@ msgstr "Uppdatera Ändringar" msgid "Disable Update Spinner" msgstr "" -#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp -#: editor/project_manager.cpp -msgid "Import" -msgstr "Importera" - #: editor/editor_node.cpp msgid "FileSystem" msgstr "" @@ -2840,6 +3119,28 @@ msgid "Don't Save" msgstr "Spara Inte" #: editor/editor_node.cpp +msgid "Android build template is missing, please install relevant templates." +msgstr "" + +#: editor/editor_node.cpp +#, fuzzy +msgid "Manage Templates" +msgstr "Mallar" + +#: editor/editor_node.cpp +msgid "" +"This will install the Android project for custom builds.\n" +"Note that, in order to use it, it needs to be enabled per export preset." +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"Android build template is already installed and it won't be overwritten.\n" +"Remove the \"build\" directory manually before attempting this operation " +"again." +msgstr "" + +#: editor/editor_node.cpp msgid "Import Templates From ZIP File" msgstr "" @@ -2968,10 +3269,6 @@ msgid "Physics Frame %" msgstr "" #: editor/editor_profiler.cpp -msgid "Time:" -msgstr "Tid:" - -#: editor/editor_profiler.cpp msgid "Inclusive" msgstr "" @@ -3114,11 +3411,6 @@ msgid "Remove Item" msgstr "" #: editor/editor_run_native.cpp -#, fuzzy -msgid "Select device from the list" -msgstr "Välj enhet frÃ¥n listan" - -#: editor/editor_run_native.cpp msgid "" "No runnable export preset found for this platform.\n" "Please add a runnable preset in the export menu." @@ -3156,6 +3448,10 @@ msgstr "" msgid "Select Node(s) to Import" msgstr "Välj Nod(er) att Importera" +#: editor/editor_sub_scene.cpp editor/project_manager.cpp +msgid "Browse" +msgstr "Bläddra" + #: editor/editor_sub_scene.cpp msgid "Scene Path:" msgstr "" @@ -3333,6 +3629,11 @@ msgstr "" #: editor/export_template_manager.cpp #, fuzzy +msgid "Uncompressing Android Build Sources" +msgstr "Dekomprimerar TillgÃ¥ngar" + +#: editor/export_template_manager.cpp +#, fuzzy msgid "Current Version:" msgstr "Nuvarande Version:" @@ -3353,7 +3654,7 @@ msgstr "Ta Bort Mall" #: editor/export_template_manager.cpp #, fuzzy -msgid "Select template file" +msgid "Select Template File" msgstr "Välj mall-fil" #: editor/export_template_manager.cpp @@ -3414,7 +3715,7 @@ msgid "No name provided." msgstr "" #: editor/filesystem_dock.cpp -msgid "Provided name contains invalid characters" +msgid "Provided name contains invalid characters." msgstr "" #: editor/filesystem_dock.cpp @@ -3448,7 +3749,12 @@ msgstr "Byter namn pÃ¥ mappen:" #: editor/filesystem_dock.cpp #, fuzzy -msgid "Open Scene(s)" +msgid "New Inherited Scene" +msgstr "Ny Ärvd Scen..." + +#: editor/filesystem_dock.cpp +#, fuzzy +msgid "Open Scenes" msgstr "Öppna Scen" #: editor/filesystem_dock.cpp @@ -3458,12 +3764,12 @@ msgstr "Instans" #: editor/filesystem_dock.cpp #, fuzzy -msgid "Add to favorites" +msgid "Add to Favorites" msgstr "Favoriter:" #: editor/filesystem_dock.cpp #, fuzzy -msgid "Remove from favorites" +msgid "Remove from Favorites" msgstr "Ta bort frÃ¥n Grupp" #: editor/filesystem_dock.cpp @@ -3500,12 +3806,14 @@ msgstr "Nytt Skript" msgid "New Resource..." msgstr "Spara Resurs Som..." -#: editor/filesystem_dock.cpp editor/script_editor_debugger.cpp +#: editor/filesystem_dock.cpp editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_editor_debugger.cpp #, fuzzy msgid "Expand All" msgstr "Expandera alla" -#: editor/filesystem_dock.cpp editor/script_editor_debugger.cpp +#: editor/filesystem_dock.cpp editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_editor_debugger.cpp #, fuzzy msgid "Collapse All" msgstr "Stäng Alla" @@ -3518,12 +3826,14 @@ msgid "Rename" msgstr "Byt namn" #: editor/filesystem_dock.cpp -msgid "Previous Directory" -msgstr "" +#, fuzzy +msgid "Previous Folder/File" +msgstr "FöregÃ¥ende flik" #: editor/filesystem_dock.cpp -msgid "Next Directory" -msgstr "" +#, fuzzy +msgid "Next Folder/File" +msgstr "Skapa Mapp" #: editor/filesystem_dock.cpp msgid "Re-Scan Filesystem" @@ -3531,7 +3841,7 @@ msgstr "" #: editor/filesystem_dock.cpp #, fuzzy -msgid "Toggle split mode" +msgid "Toggle Split Mode" msgstr "Växla Läge" #: editor/filesystem_dock.cpp @@ -3562,7 +3872,7 @@ msgstr "" msgid "Create Script" msgstr "Skapa Skript" -#: editor/find_in_files.cpp +#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp #, fuzzy msgid "Find in Files" msgstr "%d fler filer" @@ -3582,6 +3892,12 @@ msgstr "Skapa Mapp" msgid "Filters:" msgstr "Filtrera noder" +#: editor/find_in_files.cpp +msgid "" +"Include the files with the following extensions. Add or remove them in " +"ProjectSettings." +msgstr "" + #: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp #, fuzzy @@ -4057,7 +4373,7 @@ msgstr "Animations-Node" #: editor/plugins/animation_blend_space_2d_editor.cpp #, fuzzy -msgid "Triangle already exists" +msgid "Triangle already exists." msgstr "ERROR: Animationsnamn finns redan!" #: editor/plugins/animation_blend_space_2d_editor.cpp @@ -4139,7 +4455,6 @@ msgid "Node Moved" msgstr "Node Namn:" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Unable to connect, port may be in use or connection may be invalid." msgstr "" @@ -4217,7 +4532,7 @@ msgstr "Redigera Filter" #: editor/plugins/animation_blend_tree_editor_plugin.cpp #, fuzzy -msgid "Enable filtering" +msgid "Enable Filtering" msgstr "Redigerbara Barn" #: editor/plugins/animation_player_editor_plugin.cpp @@ -4340,10 +4655,6 @@ msgid "Animation" msgstr "Animation" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "New" -msgstr "Ny" - -#: editor/plugins/animation_player_editor_plugin.cpp #, fuzzy msgid "Edit Transitions..." msgstr "ÖvergÃ¥ngar" @@ -4362,12 +4673,13 @@ msgid "Autoplay on Load" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Onion Skinning" +msgid "Enable Onion Skinning" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Enable Onion Skinning" -msgstr "" +#, fuzzy +msgid "Onion Skinning Options" +msgstr "Alternativ" #: editor/plugins/animation_player_editor_plugin.cpp #, fuzzy @@ -4939,13 +5251,19 @@ msgid "Move CanvasItem" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"Children of containers have their anchors and margins values overridden by " +"their parent." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Presets for the anchors and margins values of a Control node." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "" -"Children of containers have their anchors and margins values overridden by " -"their parent." +"When active, moving Control nodes changes their anchors instead of their " +"margins." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4961,10 +5279,51 @@ msgid "Change Anchors" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Lock Selected" +msgstr "Välj" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Unlock Selected" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Group Selected" +msgstr "Ta bort Urval" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Ungroup Selected" +msgstr "Ta bort Urval" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Paste Pose" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Create Custom Bone(s) from Node(s)" +msgstr "Skapa frÃ¥n Scen" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Clear Bones" +msgstr "Rensa" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Make IK Chain" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Clear IK Chain" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "" "Warning: Children of a container get their position and size determined only " "by their parent." @@ -5039,7 +5398,7 @@ msgid "Snapping Options" msgstr "Alternativ" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to grid" +msgid "Snap to Grid" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -5060,31 +5419,32 @@ msgid "Use Pixel Snap" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Smart snapping" +msgid "Smart Snapping" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to parent" +msgid "Snap to Parent" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node anchor" +msgid "Snap to Node Anchor" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node sides" +msgid "Snap to Node Sides" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node center" +msgid "Snap to Node Center" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to other nodes" -msgstr "" +#, fuzzy +msgid "Snap to Other Nodes" +msgstr "Klistra in Noder" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to guides" +msgid "Snap to Guides" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -5098,11 +5458,13 @@ msgid "Unlock the selected object (can be moved)." 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." @@ -5117,14 +5479,6 @@ msgid "Show Bones" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Make IK Chain" -msgstr "" - -#: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Clear IK Chain" -msgstr "" - -#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Make Custom Bone(s) from Node(s)" msgstr "" @@ -5175,8 +5529,8 @@ msgid "Frame Selection" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Layout" -msgstr "Layout" +msgid "Preview Canvas Scale" +msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Translation mask for inserting keys." @@ -5229,6 +5583,11 @@ msgid "Divide grid step by 2" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Pan View" +msgstr "Vy bakifrÃ¥n" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Add %s" msgstr "Lägg till %s" @@ -5252,8 +5611,9 @@ msgid "Error instancing scene from %s" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Change default type" -msgstr "" +#, fuzzy +msgid "Change Default Type" +msgstr "Ändra Typ" #: editor/plugins/canvas_item_editor_plugin.cpp #, fuzzy @@ -5344,19 +5704,19 @@ msgid "Create Emission Points From Node" msgstr "" #: editor/plugins/curve_editor_plugin.cpp -msgid "Flat0" +msgid "Flat 0" msgstr "" #: editor/plugins/curve_editor_plugin.cpp -msgid "Flat1" +msgid "Flat 1" msgstr "" -#: editor/plugins/curve_editor_plugin.cpp -msgid "Ease in" +#: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp +msgid "Ease In" msgstr "" -#: editor/plugins/curve_editor_plugin.cpp -msgid "Ease out" +#: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp +msgid "Ease Out" msgstr "" #: editor/plugins/curve_editor_plugin.cpp @@ -5376,24 +5736,29 @@ msgid "Load Curve Preset" msgstr "" #: editor/plugins/curve_editor_plugin.cpp -msgid "Add point" -msgstr "" +#, fuzzy +msgid "Add Point" +msgstr "Lägg Till Node" #: editor/plugins/curve_editor_plugin.cpp -msgid "Remove point" -msgstr "" +#, fuzzy +msgid "Remove Point" +msgstr "Flytta Ner" #: editor/plugins/curve_editor_plugin.cpp -msgid "Left linear" -msgstr "" +#, fuzzy +msgid "Left Linear" +msgstr "Linjär" #: editor/plugins/curve_editor_plugin.cpp -msgid "Right linear" -msgstr "" +#, fuzzy +msgid "Right Linear" +msgstr "Vy frÃ¥n höger" #: editor/plugins/curve_editor_plugin.cpp -msgid "Load preset" -msgstr "" +#, fuzzy +msgid "Load Preset" +msgstr "Ladda Resurs" #: editor/plugins/curve_editor_plugin.cpp msgid "Remove Curve Point" @@ -5449,14 +5814,19 @@ msgid "This doesn't work on scene root!" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Trimesh Shape" +msgid "Create Trimesh Static Shape" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Shape" +msgid "Failed creating shapes!" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp +#, fuzzy +msgid "Create Convex Shape(s)" +msgstr "Skapa Ny" + +#: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Navigation Mesh" msgstr "" @@ -5506,16 +5876,13 @@ msgid "Create Trimesh Static Body" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Static Body" -msgstr "" - -#: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Trimesh Collision Sibling" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Collision Sibling" -msgstr "" +#, fuzzy +msgid "Create Convex Collision Sibling(s)" +msgstr "Skapa Prenumeration" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Outline Mesh..." @@ -5677,6 +6044,12 @@ msgid "Create Navigation Polygon" msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp +#: editor/plugins/particles_editor_plugin.cpp +#, fuzzy +msgid "Convert to CPUParticles" +msgstr "Konvertera till Versaler" + +#: editor/plugins/particles_2d_editor_plugin.cpp msgid "Generating Visibility Rect" msgstr "" @@ -5690,12 +6063,6 @@ msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp #: editor/plugins/particles_editor_plugin.cpp -#, fuzzy -msgid "Convert to CPUParticles" -msgstr "Konvertera till Versaler" - -#: editor/plugins/particles_2d_editor_plugin.cpp -#: editor/plugins/particles_editor_plugin.cpp msgid "Generation Time (sec):" msgstr "" @@ -5835,7 +6202,7 @@ msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp editor/plugins/theme_editor_plugin.cpp -#: editor/project_export.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_export.cpp #, fuzzy msgid "Options" msgstr "Alternativ" @@ -5888,7 +6255,7 @@ msgstr "" #: editor/plugins/physical_bone_plugin.cpp #, fuzzy -msgid "Move joint" +msgid "Move Joint" msgstr "Flytta Ner" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -6130,7 +6497,6 @@ msgid "Open in Editor" msgstr "" #: editor/plugins/resource_preloader_editor_plugin.cpp -#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Load Resource" msgstr "Ladda Resurs" @@ -6237,6 +6603,12 @@ msgid "%s Class Reference" 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 msgid "Toggle alphabetical sorting of the method list." msgstr "" @@ -6329,11 +6701,6 @@ msgstr "" msgid "Close All" msgstr "Stäng Alla" -#: editor/plugins/script_editor_plugin.cpp -#, fuzzy -msgid "Close Other Tabs" -msgstr "Stänga Övriga Flikar" - #: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp msgid "Run" msgstr "Kör" @@ -6342,12 +6709,6 @@ msgstr "Kör" msgid "Toggle Scripts Panel" 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/script_editor_debugger.cpp msgid "Step Over" msgstr "" @@ -6374,15 +6735,16 @@ msgid "Debug with External Editor" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Open Godot online documentation" -msgstr "" +#, fuzzy +msgid "Open Godot online documentation." +msgstr "Öppna Senaste" #: editor/plugins/script_editor_plugin.cpp msgid "Request Docs" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Help improve the Godot documentation by giving feedback" +msgid "Help improve the Godot documentation by giving feedback." msgstr "" #: editor/plugins/script_editor_plugin.cpp @@ -6409,11 +6771,13 @@ msgid "" 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" @@ -6429,6 +6793,31 @@ msgstr "Sök Hjälp" #: editor/plugins/script_text_editor.cpp #, fuzzy +msgid "Connections to method:" +msgstr "Anslut Till Node:" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Source" +msgstr "Källa:" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Signal" +msgstr "Signaler" + +#: editor/plugins/script_text_editor.cpp +msgid "Target" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "" +"Missing connected method '%s' for signal '%s' from node '%s' to node '%s'." +msgstr "Anslut '%s' till '%s'" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy msgid "Line" msgstr "Rad:" @@ -6441,10 +6830,6 @@ msgstr "" msgid "Go to Function" msgstr "Funktion:" -#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp -msgid "Standard" -msgstr "" - #: editor/plugins/script_text_editor.cpp msgid "Only resources from filesystem can be dropped." msgstr "" @@ -6481,6 +6866,11 @@ msgstr "" msgid "Syntax Highlighter" msgstr "" +#: editor/plugins/script_text_editor.cpp +#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp +msgid "Bookmarks" +msgstr "" + #: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp #, fuzzy @@ -6511,6 +6901,26 @@ msgid "Toggle Comment" msgstr "" #: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Toggle Bookmark" +msgstr "Växla Läge" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Go to Next Bookmark" +msgstr "GÃ¥ Till Nästa Steg" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Go to Previous Bookmark" +msgstr "Ge Till FöregÃ¥ende Steg" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Remove All Bookmarks" +msgstr "Ta bort Alla" + +#: editor/plugins/script_text_editor.cpp msgid "Fold/Unfold Line" msgstr "" @@ -6592,6 +7002,12 @@ msgid "Contextual Help" msgstr "" #: editor/plugins/shader_editor_plugin.cpp +msgid "" +"This shader has been modified on on disk.\n" +"What action should be taken?" +msgstr "" + +#: editor/plugins/shader_editor_plugin.cpp msgid "Shader" msgstr "" @@ -6966,7 +7382,7 @@ msgid "Right View" msgstr "Vy frÃ¥n höger" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Switch Perspective/Orthogonal view" +msgid "Switch Perspective/Orthogonal View" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp @@ -7006,12 +7422,13 @@ msgid "Toggle Freelook" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp #, fuzzy msgid "Transform" msgstr "Transformera" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Snap object to floor" +msgid "Snap Object to Floor" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp @@ -7157,30 +7574,22 @@ msgid "Invalid geometry, can't replace by mesh." msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Invalid geometry, can't create polygon." -msgstr "" - -#: editor/plugins/sprite_editor_plugin.cpp -msgid "Invalid geometry, can't create collision polygon." -msgstr "" - -#: editor/plugins/sprite_editor_plugin.cpp -msgid "Invalid geometry, can't create light occluder." -msgstr "" +#, fuzzy +msgid "Convert to Mesh2D" +msgstr "Konvertera till %s" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Sprite" +msgid "Invalid geometry, can't create polygon." msgstr "" #: editor/plugins/sprite_editor_plugin.cpp #, fuzzy -msgid "Convert to Mesh2D" +msgid "Convert to Polygon2D" msgstr "Konvertera till %s" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy -msgid "Convert to Polygon2D" -msgstr "Konvertera till %s" +msgid "Invalid geometry, can't create collision polygon." +msgstr "" #: editor/plugins/sprite_editor_plugin.cpp #, fuzzy @@ -7188,10 +7597,18 @@ msgid "Create CollisionPolygon2D Sibling" msgstr "Skapa Prenumeration" #: editor/plugins/sprite_editor_plugin.cpp +msgid "Invalid geometry, can't create light occluder." +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp msgid "Create LightOccluder2D Sibling" msgstr "" #: editor/plugins/sprite_editor_plugin.cpp +msgid "Sprite" +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp msgid "Simplification: " msgstr "" @@ -7210,7 +7627,12 @@ msgid "Settings:" msgstr "Inställningar" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "ERROR: Couldn't load frame resource!" +#, fuzzy +msgid "No Frames Selected" +msgstr "Ansluten" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Add %d Frame(s)" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp @@ -7218,6 +7640,10 @@ msgid "Add Frame" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "ERROR: Couldn't load frame resource!" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Resource clipboard is empty or not a texture!" msgstr "" @@ -7263,6 +7689,15 @@ msgid "Animation Frames:" msgstr "Nytt Animationsnamn:" #: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Add a Texture from File" +msgstr "Flytta nuvarande spÃ¥r upp." + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Add Frames from a Sprite Sheet" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Insert Empty (Before)" msgstr "" @@ -7281,6 +7716,29 @@ msgid "Move (After)" msgstr "Flytta (efter)" #: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Select Frames" +msgstr "Välj en Node" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Horizontal:" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Vertical:" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Select/Clear All Frames" +msgstr "Välj Alla" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Create Frames from Sprite Sheet" +msgstr "Skapa frÃ¥n Scen" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "SpriteFrames" msgstr "" @@ -7347,14 +7805,14 @@ msgstr "Lägg till Alla" msgid "Remove All Items" msgstr "" -#: editor/plugins/theme_editor_plugin.cpp +#: editor/plugins/theme_editor_plugin.cpp editor/project_manager.cpp #, fuzzy msgid "Remove All" msgstr "Ta bort Alla" #: editor/plugins/theme_editor_plugin.cpp #, fuzzy -msgid "Edit theme..." +msgid "Edit Theme" msgstr "Redigera tema..." #: editor/plugins/theme_editor_plugin.cpp @@ -7383,18 +7841,25 @@ msgid "Create From Current Editor Theme" msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "CheckBox Radio1" -msgstr "" +#, fuzzy +msgid "Toggle Button" +msgstr "Musknapp" #: editor/plugins/theme_editor_plugin.cpp -msgid "CheckBox Radio2" -msgstr "" +#, fuzzy +msgid "Disabled Button" +msgstr "Avaktiverad" #: editor/plugins/theme_editor_plugin.cpp msgid "Item" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Disabled Item" +msgstr "Avaktiverad" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Check Item" msgstr "" @@ -7411,6 +7876,22 @@ msgid "Checked Radio Item" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +msgid "Named Sep." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Submenu" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Item 1" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Item 2" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Has" msgstr "" @@ -7420,8 +7901,8 @@ msgstr "" #: editor/plugins/theme_editor_plugin.cpp #, fuzzy -msgid "Has,Many,Options" -msgstr "Alternativ" +msgid "Disabled LineEdit" +msgstr "Avaktiverad" #: editor/plugins/theme_editor_plugin.cpp msgid "Tab 1" @@ -7437,6 +7918,20 @@ msgstr "" #: editor/plugins/theme_editor_plugin.cpp #, fuzzy +msgid "Editable Item" +msgstr "Redigerbara Barn" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Subtree" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Has,Many,Options" +msgstr "Alternativ" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy msgid "Data Type:" msgstr "Datatyp:" @@ -7472,6 +7967,7 @@ msgid "Fix Invalid Tiles" msgstr "Ogiltigt namn." #: editor/plugins/tile_map_editor_plugin.cpp +#: modules/gridmap/grid_map_editor_plugin.cpp #, fuzzy msgid "Cut Selection" msgstr "Rensa Urval" @@ -7516,37 +8012,47 @@ msgid "Mirror Y" msgstr "Spegla Y" #: editor/plugins/tile_map_editor_plugin.cpp +msgid "Disable Autotile" +msgstr "" + +#: editor/plugins/tile_map_editor_plugin.cpp +#, fuzzy +msgid "Enable Priority" +msgstr "Redigera Filter" + +#: editor/plugins/tile_map_editor_plugin.cpp msgid "Paint Tile" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Pick Tile" +msgid "" +"Shift+RMB: Line Draw\n" +"Shift+Ctrl+RMB: Rectangle Paint" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy -msgid "Copy Selection" -msgstr "Ta bort Urval" +msgid "Pick Tile" +msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Rotate left" +msgid "Rotate Left" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Rotate right" +msgid "Rotate Right" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Flip horizontally" +msgid "Flip Horizontally" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Flip vertically" +msgid "Flip Vertically" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp #, fuzzy -msgid "Clear transform" +msgid "Clear Transform" msgstr "Transformera" #: editor/plugins/tile_set_editor_plugin.cpp @@ -7585,6 +8091,45 @@ msgid "Select the previous shape, subtile, or Tile." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Region Mode" +msgstr "Raw-Läge" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Collision Mode" +msgstr "Animations-Node" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Occlusion Mode" +msgstr "Redigera Polygon" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Navigation Mode" +msgstr "Animations-Node" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Bitmask Mode" +msgstr "Raw-Läge" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Priority Mode" +msgstr "Exportera Projekt" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Icon Mode" +msgstr "Växla Läge" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Z Index Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp msgid "Copy bitmask." msgstr "" @@ -7674,6 +8219,7 @@ msgstr "Radera punkter" msgid "" "LMB: Set bit on.\n" "RMB: Set bit off.\n" +"Shift+LMB: Set wildcard bit.\n" "Click on another Tile to edit it." msgstr "Skapa Mapp" @@ -7797,6 +8343,75 @@ msgid "TileSet" msgstr "TileSet..." #: 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 "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar" +msgstr "Skala:" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector" +msgstr "Inspektör" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Add input port" +msgstr "Favoriter:" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add output port" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change input port type" +msgstr "Ändra Typ" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Change output port type" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change input port name" +msgstr "Ändra Animationsnamn:" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Change output port name" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Remove input port" +msgstr "Ta bort Autoload" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Remove output port" +msgstr "Ta Bort Mall" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Set expression" +msgstr "Nuvarande Version:" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Resize VisualShader node" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Set Uniform Name" msgstr "" @@ -7836,6 +8451,849 @@ msgid "Light" msgstr "Höger" #: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Create Shader Node" +msgstr "Skapa Node" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Color function." +msgstr "Funktion:" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Color operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Grayscale function." +msgstr "Skapa Funktion" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts HSV vector to RGB equivalent." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts RGB vector to HSV equivalent." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Sepia function." +msgstr "Byt namn pÃ¥ funktion" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Burn operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Darken operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Difference operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Dodge operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "HardLight operator" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Lighten operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Overlay operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Screen operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "SoftLight operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Color constant." +msgstr "Konstant" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Color uniform." +msgstr "Transformera" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns an associated vector if the provided scalars are equal, greater or " +"less." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns an associated vector if the provided boolean value is true or false." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'camera' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'inv_camera' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'inv_projection' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'normal' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'projection' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'time' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'viewport_size' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'world' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'texture_pixel_size' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Input parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'binormal' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'fragcoord' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_coord' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_uv' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'side' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'tangent' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv2' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'vertex' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'view' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'albedo' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'attenuation' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'diffuse' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_color' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'roughness' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'specular' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'transmission' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'modelview' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_size' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'tangent' input parameter for vertex and fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_pass' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_coord' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_pixel_size' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_uv' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_alpha' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_height' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_uv' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_vec' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'normal' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'shadow_color' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'extra' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'projection' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'vertex' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'world' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'active' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'custom' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'custom_alpha' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'delta' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'emission_transform' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'index' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'lifetime' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'restart' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'time' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'transform' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'velocity' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar function." +msgstr "Skala urval" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Scalar operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "E constant (2.718282). Represents the base of the natural logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Epsilon constant (0.00001). Smallest possible scalar number." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Phi constant (1.618034). Golden ratio." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi/4 constant (0.785398) or 45 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi/2 constant (1.570796) or 90 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi constant (3.141593) or 180 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Tau constant (6.283185) or 360 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Sqrt2 constant (1.414214). Square root of 2." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the absolute value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-tangent of the parameters." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Finds the nearest integer that is greater than or equal to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Constrains a value to lie between two further values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts a quantity in radians to degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-e Exponential." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-2 Exponential." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Finds the nearest integer less than or equal to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Computes the fractional part of the argument." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the inverse of the square root of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Natural logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-2 logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the greater of two values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the lesser of two values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Linear interpolation between two scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the opposite value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 - scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns the value of the first parameter raised to the power of the second." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts a quantity in degrees to radians." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 / scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the nearest integer to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the nearest even integer to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Clamps the value between 0.0 and 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Extracts the sign of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the square root of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( scalar(edge0), scalar(edge1), scalar(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if x is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( scalar(edge), scalar(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the truncated value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Adds scalar to scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Divides scalar by scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies scalar by scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the remainder of the two scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Subtracts scalar from scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Scalar constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar uniform." +msgstr "Transformera" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Perform the cubic texture lookup." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Perform the texture lookup." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Cubic texture uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "2D texture uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Transform function." +msgstr "Transformera" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) Calculate the outer product of a pair of vectors.\n" +"\n" +"OuterProduct treats the first parameter 'c' as a column vector (matrix with " +"one column) and the second parameter 'r' as a row vector (matrix with one " +"row) and does a linear algebraic matrix multiply 'c * r', yielding a matrix " +"whose number of rows is the number of components in 'c' and whose number of " +"columns is the number of components in 'r'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Composes transform from four vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Decomposes transform to four vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the determinant of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the inverse of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the transpose of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies transform by transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies vector by transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Transform constant." +msgstr "Transformera" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Transform uniform." +msgstr "Transformera" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector function." +msgstr "Ta bort Funktion" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Composes vector from three scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Decomposes vector to three scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the cross product of two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the distance between two points." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the dot product of two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns a vector that points in the same direction as a reference vector. " +"The function has three vector parameters : N, the vector to orient, I, the " +"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 "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the length of a vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Linear interpolation between two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the normalize product of vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 - vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 / vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns a vector that points in the direction of reflection ( a : incident " +"vector, b : normal vector )." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns a vector that points in the direction of refraction." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( vector(edge0), vector(edge1), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if 'x' is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( scalar(edge0), scalar(edge1), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if 'x' is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( vector(edge), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( scalar(edge), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Adds vector to vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Divides vector by vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies vector by vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the remainder of the two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Subtracts vector from vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Custom Godot Shader Language expression, with custom amount of input and " +"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 "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns falloff based on the dot product of surface normal and view " +"direction of camera (pass associated inputs to it)." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) (Fragment/Light mode only) Scalar derivative function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) (Fragment/Light mode only) Vector derivative function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Derivative in 'x' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Derivative in 'x' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Derivative in 'y' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Derivative in 'y' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Sum of absolute derivative " +"in 'x' and 'y'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Sum of absolute derivative " +"in 'x' and 'y'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "VisualShader" msgstr "" @@ -8035,6 +9493,11 @@ msgid "Directory already contains a Godot project." msgstr "" #: editor/project_manager.cpp +#, fuzzy +msgid "New Game Project" +msgstr "Nytt Spelprojekt" + +#: editor/project_manager.cpp msgid "Imported Project" msgstr "" @@ -8086,11 +9549,6 @@ msgstr "Byt namn pÃ¥ Projekt" #: editor/project_manager.cpp #, fuzzy -msgid "New Game Project" -msgstr "Nytt Spelprojekt" - -#: editor/project_manager.cpp -#, fuzzy msgid "Import Existing Project" msgstr "Importera Befintligt Projekt" @@ -8125,10 +9583,6 @@ msgid "Project Name:" msgstr "Projektnamn:" #: editor/project_manager.cpp -msgid "Create folder" -msgstr "Skapa mapp" - -#: editor/project_manager.cpp #, fuzzy msgid "Project Path:" msgstr "Sökväg till projektet:" @@ -8139,10 +9593,6 @@ msgid "Project Installation Path:" msgstr "Sökväg till projektet:" #: editor/project_manager.cpp -msgid "Browse" -msgstr "Bläddra" - -#: editor/project_manager.cpp msgid "Renderer:" msgstr "" @@ -8197,8 +9647,8 @@ msgid "" "\n" "If you proceed with opening it, it will be converted to Godot's current " "configuration file format.\n" -"Warning: You will not be able to open the project with previous versions of " -"the engine anymore." +"Warning: You won't be able to open the project with previous versions of the " +"engine anymore." msgstr "" #: editor/project_manager.cpp @@ -8209,8 +9659,8 @@ msgid "" "%s\n" "\n" "Do you want to convert it?\n" -"Warning: You will not be able to open the project with previous versions of " -"the engine anymore." +"Warning: You won't be able to open the project with previous versions of the " +"engine anymore." msgstr "" #: editor/project_manager.cpp @@ -8220,11 +9670,15 @@ msgid "" msgstr "" #: editor/project_manager.cpp +#, fuzzy msgid "" "Can't run project: no main scene defined.\n" -"Please edit the project and set the main scene in \"Project Settings\" under " +"Please edit the project and set the main scene in the Project Settings under " "the \"Application\" category." msgstr "" +"Ingen huvudscen har definierats, välj en giltig?\n" +"Du kan ändra det senare i \"Projektinställningar\" under 'Applikation'-" +"kategorin." #: editor/project_manager.cpp msgid "" @@ -8233,23 +9687,37 @@ msgid "" msgstr "" #: editor/project_manager.cpp -msgid "Are you sure to run more than one project?" +msgid "Are you sure to run %d projects at once?" msgstr "" #: editor/project_manager.cpp -msgid "Remove project from the list? (Folder contents will not be modified)" +msgid "" +"Remove %d projects from the list?\n" +"The project folders' contents won't be modified." +msgstr "" + +#: editor/project_manager.cpp +msgid "" +"Remove this project from the list?\n" +"The project folder's contents won't be modified." +msgstr "" + +#: editor/project_manager.cpp +msgid "" +"Remove all missing projects from the list? (Folders contents will not be " +"modified)" msgstr "" #: editor/project_manager.cpp msgid "" "Language changed.\n" -"The UI will update next time the editor or project manager starts." +"The interface will update after restarting the editor or project manager." msgstr "" #: editor/project_manager.cpp msgid "" -"You are about the scan %s folders for existing Godot projects. Do you " -"confirm?" +"Are you sure to scan %s folders for existing Godot projects?\n" +"This could take a while." msgstr "" #: editor/project_manager.cpp @@ -8279,6 +9747,11 @@ msgstr "Nytt Projekt" #: editor/project_manager.cpp #, fuzzy +msgid "Remove Missing" +msgstr "Ta bort Animation" + +#: editor/project_manager.cpp +#, fuzzy msgid "Templates" msgstr "Mallar" @@ -8299,8 +9772,8 @@ msgstr "Kan inte köra projektet" #: editor/project_manager.cpp msgid "" -"You don't currently have any projects.\n" -"Would you like to explore the official example projects in the Asset Library?" +"You currently don't have any projects.\n" +"Would you like to explore official example projects in the Asset Library?" msgstr "" #: editor/project_settings_editor.cpp @@ -8328,8 +9801,9 @@ msgid "" msgstr "" #: editor/project_settings_editor.cpp -msgid "Action '%s' already exists!" -msgstr "" +#, fuzzy +msgid "An action with the name '%s' already exists." +msgstr "ERROR: Animationsnamn finns redan!" #: editor/project_settings_editor.cpp msgid "Rename Input Action Event" @@ -8489,10 +9963,6 @@ msgid "" msgstr "" #: editor/project_settings_editor.cpp -msgid "Already existing" -msgstr "" - -#: editor/project_settings_editor.cpp msgid "Add Input Action" msgstr "" @@ -8559,7 +10029,7 @@ msgid "Override For..." msgstr "" #: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp -msgid "Editor must be restarted for changes to take effect" +msgid "The editor must be restarted for changes to take effect." msgstr "" #: editor/project_settings_editor.cpp @@ -8624,12 +10094,13 @@ msgid "Locales Filter" msgstr "" #: editor/project_settings_editor.cpp -msgid "Show all locales" +msgid "Show All Locales" msgstr "" #: editor/project_settings_editor.cpp -msgid "Show only selected locales" -msgstr "" +#, fuzzy +msgid "Show Selected Locales Only" +msgstr "Endast Urval" #: editor/project_settings_editor.cpp msgid "Filter mode:" @@ -8644,14 +10115,6 @@ msgid "AutoLoad" msgstr "" #: editor/property_editor.cpp -msgid "Ease In" -msgstr "" - -#: editor/property_editor.cpp -msgid "Ease Out" -msgstr "" - -#: editor/property_editor.cpp #, fuzzy msgid "Zero" msgstr "Noll" @@ -8729,8 +10192,9 @@ msgid "Suffix" msgstr "" #: editor/rename_dialog.cpp -msgid "Advanced options" -msgstr "" +#, fuzzy +msgid "Advanced Options" +msgstr "Alternativ" #: editor/rename_dialog.cpp msgid "Substitute" @@ -9008,8 +10472,8 @@ msgstr "" #: editor/scene_tree_dock.cpp #, fuzzy -msgid "Custom Node" -msgstr "Klipp ut Noder" +msgid "Other Node" +msgstr "Ta bort Nod(er)" #: editor/scene_tree_dock.cpp msgid "Can't operate on nodes from a foreign scene!" @@ -9055,7 +10519,7 @@ msgstr "" #: editor/scene_tree_dock.cpp #, fuzzy -msgid "Open documentation" +msgid "Open Documentation" msgstr "Öppna Senaste" #: editor/scene_tree_dock.cpp @@ -9086,7 +10550,7 @@ msgstr "" msgid "Save Branch as Scene" msgstr "" -#: editor/scene_tree_dock.cpp +#: editor/scene_tree_dock.cpp editor/script_editor_debugger.cpp #, fuzzy msgid "Copy Node Path" msgstr "Kopiera Node-Sökväg" @@ -9133,6 +10597,21 @@ msgid "Toggle Visible" msgstr "Växla Dolda Filer" #: editor/scene_tree_editor.cpp +#, fuzzy +msgid "Unlock Node" +msgstr "Välj Node" + +#: editor/scene_tree_editor.cpp +#, fuzzy +msgid "Button Group" +msgstr "Lägg till i Grupp" + +#: editor/scene_tree_editor.cpp +#, fuzzy +msgid "(Connecting From)" +msgstr "Anslutningsfel" + +#: editor/scene_tree_editor.cpp msgid "Node configuration warning:" msgstr "" @@ -9154,9 +10633,9 @@ msgid "" "Click to show groups dock." msgstr "" -#: editor/scene_tree_editor.cpp editor/script_create_dialog.cpp +#: editor/scene_tree_editor.cpp #, fuzzy -msgid "Open Script" +msgid "Open Script:" msgstr "Öppna Skript" #: editor/scene_tree_editor.cpp @@ -9209,78 +10688,81 @@ msgstr "Välj en Node" #: editor/script_create_dialog.cpp #, fuzzy -msgid "Error loading template '%s'" -msgstr "Fel vid laddning av mall '%s'" - -#: editor/script_create_dialog.cpp -msgid "Error - Could not create script in filesystem." -msgstr "Fel - Kunde inte skapa Skript i filsystemet." +msgid "Path is empty." +msgstr "Sökvägen är tom" #: editor/script_create_dialog.cpp #, fuzzy -msgid "Error loading script from %s" -msgstr "Fel vid laddning av Skript frÃ¥n %s" +msgid "Filename is empty." +msgstr "Sökvägen är tom" #: editor/script_create_dialog.cpp -msgid "N/A" +msgid "Path is not local." msgstr "" #: editor/script_create_dialog.cpp #, fuzzy -msgid "Open Script/Choose Location" -msgstr "Öppna Skript-Redigerare" +msgid "Invalid base path." +msgstr "Ogiltig Sökväg." #: editor/script_create_dialog.cpp #, fuzzy -msgid "Path is empty" -msgstr "Sökvägen är tom" +msgid "A directory with the same name exists." +msgstr "Katalog med samma namn finns redan" #: editor/script_create_dialog.cpp #, fuzzy -msgid "Filename is empty" -msgstr "Sökvägen är tom" +msgid "Invalid extension." +msgstr "MÃ¥ste använda en giltigt filändelse." #: editor/script_create_dialog.cpp -msgid "Path is not local" +msgid "Wrong extension chosen." msgstr "" #: editor/script_create_dialog.cpp -msgid "Invalid base path" -msgstr "" +#, fuzzy +msgid "Error loading template '%s'" +msgstr "Fel vid laddning av mall '%s'" #: editor/script_create_dialog.cpp -#, fuzzy -msgid "Directory of the same name exists" -msgstr "Katalog med samma namn finns redan" +msgid "Error - Could not create script in filesystem." +msgstr "Fel - Kunde inte skapa Skript i filsystemet." #: editor/script_create_dialog.cpp -msgid "File exists, will be reused" -msgstr "" +#, fuzzy +msgid "Error loading script from %s" +msgstr "Fel vid laddning av Skript frÃ¥n %s" #: editor/script_create_dialog.cpp -msgid "Invalid extension" +msgid "N/A" msgstr "" #: editor/script_create_dialog.cpp -msgid "Wrong extension chosen" -msgstr "" +#, fuzzy +msgid "Open Script / Choose Location" +msgstr "Öppna Skript-Redigerare" #: editor/script_create_dialog.cpp #, fuzzy -msgid "Invalid Path" -msgstr "Ogiltig Sökväg" +msgid "Open Script" +msgstr "Öppna Skript" #: editor/script_create_dialog.cpp -msgid "Invalid class name" +msgid "File exists, it will be reused." msgstr "" #: editor/script_create_dialog.cpp -msgid "Invalid inherited parent name or path" +#, fuzzy +msgid "Invalid class name." +msgstr "Ogiltigt namn." + +#: editor/script_create_dialog.cpp +msgid "Invalid inherited parent name or path." msgstr "" #: editor/script_create_dialog.cpp #, fuzzy -msgid "Script valid" +msgid "Script is valid." msgstr "Skript giltigt" #: editor/script_create_dialog.cpp @@ -9288,17 +10770,18 @@ msgid "Allowed: a-z, A-Z, 0-9 and _" msgstr "TillÃ¥tna: a-z, a-Z, 0-9 och _" #: editor/script_create_dialog.cpp -msgid "Built-in script (into scene file)" -msgstr "" +#, fuzzy +msgid "Built-in script (into scene file)." +msgstr "Ã…tgärder med scenfiler." #: editor/script_create_dialog.cpp #, fuzzy -msgid "Create new script file" +msgid "Will create a new script file." msgstr "Skapa ny Skript-fil" #: editor/script_create_dialog.cpp #, fuzzy -msgid "Load existing script file" +msgid "Will load an existing script file." msgstr "Ladda in befintlig Skript-fil" #: editor/script_create_dialog.cpp @@ -9439,6 +10922,10 @@ msgstr "" msgid "Set From Tree" msgstr "" +#: editor/script_editor_debugger.cpp +msgid "Export measures as CSV" +msgstr "" + #: editor/settings_config_dialog.cpp #, fuzzy msgid "Erase Shortcut" @@ -9575,6 +11062,14 @@ msgid "GDNativeLibrary" msgstr "GDNative" #: modules/gdnative/gdnative_library_singleton_editor.cpp +msgid "Enabled GDNative Singleton" +msgstr "" + +#: modules/gdnative/gdnative_library_singleton_editor.cpp +msgid "Disabled GDNative Singleton" +msgstr "" + +#: modules/gdnative/gdnative_library_singleton_editor.cpp #, fuzzy msgid "Library" msgstr "Bibliotek" @@ -9667,8 +11162,9 @@ msgid "GridMap Fill Selection" msgstr "Alla urval" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "GridMap Duplicate Selection" -msgstr "" +#, fuzzy +msgid "GridMap Paste Selection" +msgstr "Alla urval" #: modules/gridmap/grid_map_editor_plugin.cpp msgid "GridMap Paint" @@ -9738,18 +11234,6 @@ msgid "Cursor Clear Rotation" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Create Area" -msgstr "" - -#: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Create Exterior Connector" -msgstr "" - -#: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Erase Area" -msgstr "" - -#: modules/gridmap/grid_map_editor_plugin.cpp #, fuzzy msgid "Clear Selection" msgstr "Rensa Urval" @@ -10129,19 +11613,10 @@ msgid "Available Nodes:" msgstr "Tillgängliga Noder:" #: modules/visual_script/visual_script_editor.cpp -msgid "Select or create a function to edit graph" -msgstr "" - -#: modules/visual_script/visual_script_editor.cpp -msgid "Edit Signal Arguments:" +msgid "Select or create a function to edit its graph." msgstr "" #: modules/visual_script/visual_script_editor.cpp -#, fuzzy -msgid "Edit Variable:" -msgstr "Redigera Variabel:" - -#: modules/visual_script/visual_script_editor.cpp msgid "Delete Selected" msgstr "" @@ -10274,6 +11749,19 @@ msgid "Debug keystore not configured in the Editor Settings nor in the preset." msgstr "" #: platform/android/export/export.cpp +msgid "Custom build requires a valid Android SDK path in Editor Settings." +msgstr "" + +#: platform/android/export/export.cpp +msgid "Invalid Android SDK path for custom build in Editor Settings." +msgstr "" + +#: platform/android/export/export.cpp +msgid "" +"Android project is not installed for compiling. Install from Editor menu." +msgstr "" + +#: platform/android/export/export.cpp msgid "Invalid public key for APK expansion." msgstr "" @@ -10282,6 +11770,34 @@ msgstr "" msgid "Invalid package name:" msgstr "Ogiltigt namn." +#: platform/android/export/export.cpp +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 "" +"Android build version mismatch:\n" +" Template installed: %s\n" +" Godot Version: %s\n" +"Please reinstall Android build template from 'Project' menu." +msgstr "" + +#: platform/android/export/export.cpp +msgid "Building Android Project (gradle)" +msgstr "" + +#: 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 "" + +#: platform/android/export/export.cpp +msgid "No build apk generated at: " +msgstr "" + #: platform/iphone/export/export.cpp msgid "Identifier is missing." msgstr "" @@ -10562,28 +12078,28 @@ msgid "ARVRCamera must have an ARVROrigin node as its parent" msgstr "" #: scene/3d/arvr_nodes.cpp -msgid "ARVRController must have an ARVROrigin node as its parent" +msgid "ARVRController must have an ARVROrigin node as its parent." msgstr "" #: scene/3d/arvr_nodes.cpp msgid "" -"The controller id must not be 0 or this controller will not be bound to an " -"actual controller" +"The controller ID must not be 0 or this controller won't be bound to an " +"actual controller." msgstr "" #: scene/3d/arvr_nodes.cpp -msgid "ARVRAnchor must have an ARVROrigin node as its parent" +msgid "ARVRAnchor must have an ARVROrigin node as its parent." msgstr "" #: scene/3d/arvr_nodes.cpp msgid "" -"The anchor id must not be 0 or this anchor will not be bound to an actual " -"anchor" +"The anchor ID must not be 0 or this anchor won't be bound to an actual " +"anchor." msgstr "" #: scene/3d/arvr_nodes.cpp #, fuzzy -msgid "ARVROrigin requires an ARVRCamera child node" +msgid "ARVROrigin requires an ARVRCamera child node." msgstr "ARVROrigin kräver en ARVRCamera Barn-Node" #: scene/3d/baked_lightmap.cpp @@ -10662,8 +12178,8 @@ msgstr "" #: scene/3d/cpu_particles.cpp msgid "" -"CPUParticles animation requires the usage of a SpatialMaterial with " -"\"Billboard Particles\" enabled." +"CPUParticles animation requires the usage of a SpatialMaterial whose " +"Billboard Mode is set to \"Particle Billboard\"." msgstr "" #: scene/3d/gi_probe.cpp @@ -10700,8 +12216,8 @@ msgstr "" #: scene/3d/particles.cpp msgid "" -"Particles animation requires the usage of a SpatialMaterial with \"Billboard " -"Particles\" enabled." +"Particles animation requires the usage of a SpatialMaterial whose Billboard " +"Mode is set to \"Particle Billboard\"." msgstr "" #: scene/3d/path.cpp @@ -10728,7 +12244,7 @@ msgid "Path property must point to a valid Spatial node to work." msgstr "" #: scene/3d/soft_body.cpp -msgid "This body will be ignored until you set a mesh" +msgid "This body will be ignored until you set a mesh." msgstr "" #: scene/3d/soft_body.cpp @@ -10831,7 +12347,7 @@ msgstr "Lägg till nuvarande färg som en förinställning" msgid "" "Container by itself serves no purpose unless a script configures it's " "children placement behavior.\n" -"If you dont't intend to add a script, then please use a plain 'Control' node " +"If you don't intend to add a script, then please use a plain 'Control' node " "instead." msgstr "" @@ -10845,11 +12361,6 @@ msgstr "Varning!" msgid "Please Confirm..." msgstr "Vänligen Bekräfta..." -#: scene/gui/file_dialog.cpp -#, fuzzy -msgid "Go to parent folder." -msgstr "GÃ¥ till överordnad mapp" - #: scene/gui/popup.cpp msgid "" "Popups will hide by default unless you call popup() or any of the popup*() " @@ -10927,6 +12438,47 @@ msgstr "" msgid "Varyings can only be assigned in vertex function." msgstr "" +#: servers/visual/shader_language.cpp +msgid "Constants cannot be modified." +msgstr "" + +#, fuzzy +#~ msgid "Path to Node:" +#~ msgstr "Sökväg till Node:" + +#~ msgid "Delete selected files?" +#~ msgstr "Ta bort valda filer?" + +#, fuzzy +#~ msgid "There is no 'res://default_bus_layout.tres' file." +#~ msgstr "Det finns ingen 'res://default_bus_layout.tres' fil." + +#~ msgid "Go to parent folder" +#~ 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" + +#~ msgid "Create folder" +#~ msgstr "Skapa mapp" + +#, fuzzy +#~ msgid "Custom Node" +#~ msgstr "Klipp ut Noder" + +#, fuzzy +#~ msgid "Invalid Path" +#~ msgstr "Ogiltig Sökväg" + +#, fuzzy +#~ msgid "Edit Variable:" +#~ msgstr "Redigera Variabel:" + #, fuzzy #~ msgid "Instance the selected scene(s) as child of the selected node." #~ msgstr "Instansiera valda scen(er) som barn till vald Node." @@ -10956,10 +12508,6 @@ msgstr "" #~ msgstr "Autoload '%s' finns redan!" #, fuzzy -#~ msgid "Add Split" -#~ msgstr "Lägg till Signal" - -#, fuzzy #~ msgid "Remove Split" #~ msgstr "Ta Bort Mall" @@ -11015,10 +12563,6 @@ msgstr "" #~ msgstr "Klasslista:" #, fuzzy -#~ msgid "Search Classes" -#~ msgstr "Sök Klasser" - -#, fuzzy #~ msgid "Public Methods" #~ msgstr "Publika Metoder" @@ -11081,10 +12625,6 @@ msgstr "" #~ msgstr "Fel:" #, fuzzy -#~ msgid "Source:" -#~ msgstr "Källa:" - -#, fuzzy #~ msgid "Variable" #~ msgstr "Variabel" @@ -11092,9 +12632,6 @@ msgstr "" #~ msgid "Errors:" #~ msgstr "Fel:" -#~ msgid "Disabled" -#~ msgstr "Avaktiverad" - #~ msgid "Move Anim Track Up" #~ msgstr "Flytta Anim SpÃ¥ra UppÃ¥t" @@ -11211,10 +12748,6 @@ msgstr "" #~ msgid "Iterator" #~ msgstr "Iterator" -#, fuzzy -#~ msgid "Edit Variable" -#~ msgstr "Redigera Variabel" - #~ msgid "Not found!" #~ msgstr "Hittades inte!" diff --git a/editor/translations/ta.po b/editor/translations/ta.po index 17e837d5b1..614ba6f47c 100644 --- a/editor/translations/ta.po +++ b/editor/translations/ta.po @@ -72,6 +72,14 @@ msgstr "" msgid "Mirror" msgstr "" +#: editor/animation_bezier_editor.cpp editor/editor_profiler.cpp +msgid "Time:" +msgstr "" + +#: editor/animation_bezier_editor.cpp +msgid "Value:" +msgstr "" + #: editor/animation_bezier_editor.cpp msgid "Insert Key Here" msgstr "" @@ -157,15 +165,19 @@ msgid "Animation Playback Track" msgstr "" #: editor/animation_track_editor.cpp -#, fuzzy -msgid "Add Track" -msgstr "அசைவூடà¯à®Ÿà¯ பாதை சேரà¯" +msgid "Animation length (frames)" +msgstr "" #: editor/animation_track_editor.cpp -msgid "Animation Length Time (seconds)" +msgid "Animation length (seconds)" msgstr "" #: editor/animation_track_editor.cpp +#, fuzzy +msgid "Add Track" +msgstr "அசைவூடà¯à®Ÿà¯ பாதை சேரà¯" + +#: editor/animation_track_editor.cpp msgid "Animation Looping" msgstr "" @@ -292,11 +304,13 @@ msgid "Create %d NEW tracks and insert keys?" msgstr "" #: editor/animation_track_editor.cpp editor/create_dialog.cpp -#: editor/editor_audio_buses.cpp editor/editor_plugin_settings.cpp -#: editor/plugin_config_dialog.cpp +#: editor/editor_audio_buses.cpp editor/editor_feature_profile.cpp +#: editor/editor_plugin_settings.cpp editor/plugin_config_dialog.cpp #: editor/plugins/abstract_polygon_2d_editor.cpp #: editor/plugins/mesh_instance_editor_plugin.cpp -#: editor/plugins/particles_editor_plugin.cpp editor/script_create_dialog.cpp +#: editor/plugins/particles_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_create_dialog.cpp msgid "Create" msgstr "" @@ -410,6 +424,23 @@ msgid "" msgstr "" #: editor/animation_track_editor.cpp +msgid "" +"This animation belongs to an imported scene, so changes to imported tracks " +"will not be saved.\n" +"\n" +"To enable the ability to add custom tracks, navigate to the scene's import " +"settings and set\n" +"\"Animation > Storage\" to \"Files\", enable \"Animation > Keep Custom Tracks" +"\", then re-import.\n" +"Alternatively, use an import preset that imports animations to separate " +"files." +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Warning: Editing imported animation" +msgstr "" + +#: editor/animation_track_editor.cpp msgid "Only show tracks from nodes selected in tree." msgstr "" @@ -543,7 +574,8 @@ msgstr "" msgid "Select tracks to copy:" msgstr "" -#: editor/animation_track_editor.cpp editor/editor_properties.cpp +#: editor/animation_track_editor.cpp editor/editor_log.cpp +#: editor/editor_properties.cpp #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp @@ -612,6 +644,11 @@ msgstr "" msgid "Selection Only" msgstr "" +#: editor/code_editor.cpp editor/plugins/script_text_editor.cpp +#: editor/plugins/text_editor.cpp +msgid "Standard" +msgstr "" + #: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/texture_region_editor_plugin.cpp #: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp @@ -637,17 +674,29 @@ msgid "Line and column numbers." msgstr "" #: editor/connections_dialog.cpp -msgid "Method in target Node must be specified!" +msgid "Method in target node must be specified." msgstr "" #: editor/connections_dialog.cpp msgid "" -"Target method not found! Specify a valid method or attach a script to target " -"Node." +"Target method not found. Specify a valid method or attach a script to the " +"target node." +msgstr "" + +#: editor/connections_dialog.cpp +msgid "Connect to Node:" +msgstr "" + +#: editor/connections_dialog.cpp +msgid "Connect to Script:" +msgstr "" + +#: editor/connections_dialog.cpp +msgid "From Signal:" msgstr "" #: editor/connections_dialog.cpp -msgid "Connect To Node:" +msgid "Scene does not contain any script." msgstr "" #: editor/connections_dialog.cpp editor/editor_autoload_settings.cpp @@ -657,10 +706,12 @@ msgid "Add" msgstr "" #: editor/connections_dialog.cpp editor/dependency_editor.cpp -#: editor/groups_editor.cpp editor/plugins/animation_player_editor_plugin.cpp +#: editor/editor_feature_profile.cpp editor/groups_editor.cpp +#: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp #: editor/plugins/resource_preloader_editor_plugin.cpp -#: editor/plugins/theme_editor_plugin.cpp editor/project_manager.cpp +#: editor/plugins/theme_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_manager.cpp #: editor/project_settings_editor.cpp msgid "Remove" msgstr "" @@ -674,21 +725,30 @@ msgid "Extra Call Arguments:" msgstr "" #: editor/connections_dialog.cpp -msgid "Path to Node:" +msgid "Advanced" msgstr "" #: editor/connections_dialog.cpp -msgid "Make Function" +msgid "Deferred" msgstr "" #: editor/connections_dialog.cpp -msgid "Deferred" +msgid "" +"Defers the signal, storing it in a queue and only firing it at idle time." msgstr "" #: editor/connections_dialog.cpp msgid "Oneshot" msgstr "" +#: editor/connections_dialog.cpp +msgid "Disconnects the signal after its first emission." +msgstr "" + +#: editor/connections_dialog.cpp +msgid "Cannot connect signal" +msgstr "" + #: editor/connections_dialog.cpp editor/dependency_editor.cpp #: editor/export_template_manager.cpp editor/groups_editor.cpp #: editor/plugins/animation_player_editor_plugin.cpp @@ -729,12 +789,12 @@ msgid "Disconnect" msgstr "" #: editor/connections_dialog.cpp -msgid "Connect Signal: " +msgid "Connect a Signal to a Method" msgstr "" #: editor/connections_dialog.cpp #, fuzzy -msgid "Edit Connection: " +msgid "Edit Connection:" msgstr "தேரà¯à®µà¯ வளைவை [Selection Curve] திரà¯à®¤à¯à®¤à¯" #: editor/connections_dialog.cpp @@ -766,7 +826,6 @@ msgid "Change %s Type" msgstr "" #: editor/create_dialog.cpp editor/project_settings_editor.cpp -#: modules/visual_script/visual_script_editor.cpp msgid "Change" msgstr "" @@ -797,7 +856,8 @@ msgid "Matches:" msgstr "" #: editor/create_dialog.cpp editor/plugin_config_dialog.cpp -#: editor/plugins/asset_library_editor_plugin.cpp editor/property_selector.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/property_selector.cpp #: modules/visual_script/visual_script_property_selector.cpp msgid "Description:" msgstr "" @@ -813,13 +873,13 @@ msgstr "" #: editor/dependency_editor.cpp msgid "" "Scene '%s' is currently being edited.\n" -"Changes will not take effect unless reloaded." +"Changes will only take effect when reloaded." msgstr "" #: editor/dependency_editor.cpp msgid "" "Resource '%s' is in use.\n" -"Changes will take effect when reloaded." +"Changes will only take effect when reloaded." msgstr "" #: editor/dependency_editor.cpp @@ -910,21 +970,13 @@ msgid "Permanently delete %d item(s)? (No undo!)" msgstr "" #: editor/dependency_editor.cpp -msgid "Owns" -msgstr "" - -#: editor/dependency_editor.cpp -msgid "Resources Without Explicit Ownership:" +msgid "Show Dependencies" msgstr "" #: editor/dependency_editor.cpp editor/editor_node.cpp msgid "Orphan Resource Explorer" msgstr "" -#: editor/dependency_editor.cpp -msgid "Delete selected files?" -msgstr "" - #: editor/dependency_editor.cpp editor/editor_audio_buses.cpp #: editor/editor_file_dialog.cpp editor/editor_node.cpp #: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp @@ -933,6 +985,14 @@ msgstr "" msgid "Delete" msgstr "" +#: editor/dependency_editor.cpp +msgid "Owns" +msgstr "" + +#: editor/dependency_editor.cpp +msgid "Resources Without Explicit Ownership:" +msgstr "" + #: editor/dictionary_property_edit.cpp msgid "Change Dictionary Key" msgstr "" @@ -1042,7 +1102,7 @@ msgstr "" msgid "Success!" msgstr "" -#: editor/editor_asset_installer.cpp +#: editor/editor_asset_installer.cpp editor/editor_node.cpp #: editor/plugins/asset_library_editor_plugin.cpp msgid "Install" msgstr "" @@ -1169,7 +1229,11 @@ msgid "Open Audio Bus Layout" msgstr "" #: editor/editor_audio_buses.cpp -msgid "There is no 'res://default_bus_layout.tres' file." +msgid "There is no '%s' file." +msgstr "" + +#: editor/editor_audio_buses.cpp editor/plugins/canvas_item_editor_plugin.cpp +msgid "Layout" msgstr "" #: editor/editor_audio_buses.cpp @@ -1223,15 +1287,19 @@ msgid "Valid characters:" msgstr "" #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing engine class name." +msgid "Must not collide with an existing engine class name." +msgstr "" + +#: editor/editor_autoload_settings.cpp +msgid "Must not collide with an existing buit-in type name." msgstr "" #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing buit-in type name." +msgid "Must not collide with an existing global constant name." msgstr "" #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing global constant name." +msgid "Keyword cannot be used as an autoload name." msgstr "" #: editor/editor_autoload_settings.cpp @@ -1262,11 +1330,11 @@ msgstr "" msgid "Rearrange Autoloads" msgstr "" -#: editor/editor_autoload_settings.cpp -msgid "Invalid Path." +#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp +msgid "Invalid path." msgstr "" -#: editor/editor_autoload_settings.cpp +#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp msgid "File does not exist." msgstr "" @@ -1317,7 +1385,7 @@ msgid "[unsaved]" msgstr "" #: editor/editor_dir_dialog.cpp -msgid "Please select a base directory first" +msgid "Please select a base directory first." msgstr "" #: editor/editor_dir_dialog.cpp @@ -1325,7 +1393,8 @@ msgid "Choose a Directory" msgstr "" #: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp -#: editor/filesystem_dock.cpp scene/gui/file_dialog.cpp +#: editor/filesystem_dock.cpp editor/project_manager.cpp +#: scene/gui/file_dialog.cpp msgid "Create Folder" msgstr "" @@ -1393,6 +1462,152 @@ msgstr "" msgid "Template file not found:" msgstr "" +#: editor/editor_feature_profile.cpp +msgid "3D Editor" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Script Editor" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Asset Library" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Scene Tree Editing" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Import Dock" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Node Dock" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Filesystem Dock" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Erase profile '%s'? (no undo)" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Profile must be a valid filename and must not contain '.'" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Profile with this name already exists." +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "(Editor Disabled, Properties Disabled)" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "(Properties Disabled)" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "(Editor Disabled)" +msgstr "à®®à¯à®Ÿà®•à¯à®•பà¯à®ªà®Ÿà¯à®Ÿà®¤à¯" + +#: editor/editor_feature_profile.cpp +msgid "Class Options:" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Enable Contextual Editor" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Enabled Properties:" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Enabled Features:" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Enabled Classes:" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "File '%s' format is invalid, import aborted." +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "" +"Profile '%s' already exists. Remote it first before importing, import " +"aborted." +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Error saving profile to path: '%s'." +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Unset" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Current Profile" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Make Current" +msgstr "" + +#: editor/editor_feature_profile.cpp +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "New" +msgstr "" + +#: editor/editor_feature_profile.cpp editor/editor_node.cpp +#: editor/plugins/asset_library_editor_plugin.cpp editor/project_manager.cpp +msgid "Import" +msgstr "" + +#: editor/editor_feature_profile.cpp editor/editor_node.cpp +#: editor/project_export.cpp +msgid "Export" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Available Profiles" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Enabled Classes" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Class Options" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "New profile name:" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Erase Profile" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Import Profile(s)" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Export Profile" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Manage Editor Feature Profiles" +msgstr "" + #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Select Current Folder" msgstr "" @@ -1413,8 +1628,8 @@ msgstr "" msgid "Open in File Manager" msgstr "" -#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp -#: editor/project_manager.cpp +#: editor/editor_file_dialog.cpp editor/editor_node.cpp +#: editor/filesystem_dock.cpp editor/project_manager.cpp msgid "Show in File Manager" msgstr "" @@ -1473,7 +1688,7 @@ msgstr "" msgid "Go Up" msgstr "" -#: editor/editor_file_dialog.cpp +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Toggle Hidden Files" msgstr "" @@ -1505,14 +1720,18 @@ msgstr "" msgid "Next Folder" msgstr "" -#: editor/editor_file_dialog.cpp -msgid "Go to parent folder" +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp +msgid "Go to parent folder." msgstr "" #: editor/editor_file_dialog.cpp msgid "(Un)favorite current folder." msgstr "" +#: editor/editor_file_dialog.cpp +msgid "Toggle visibility of hidden files." +msgstr "" + #: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp msgid "View items as a grid of thumbnails." msgstr "" @@ -1527,6 +1746,7 @@ msgstr "" #: editor/editor_file_dialog.cpp editor/plugins/sprite_editor_plugin.cpp #: editor/plugins/style_box_editor_plugin.cpp +#: editor/plugins/theme_editor_plugin.cpp msgid "Preview:" msgstr "" @@ -1543,6 +1763,12 @@ msgid "ScanSources" msgstr "" #: editor/editor_file_system.cpp +msgid "" +"There are multiple importers for different types pointing to file %s, import " +"aborted" +msgstr "" + +#: editor/editor_file_system.cpp msgid "(Re)Importing Assets" msgstr "" @@ -1718,6 +1944,11 @@ msgstr "" msgid "Output:" msgstr "" +#: editor/editor_log.cpp editor/plugins/tile_map_editor_plugin.cpp +#, fuzzy +msgid "Copy Selection" +msgstr "அனைதà¯à®¤à¯ தேரà¯à®µà¯à®•ளà¯" + #: editor/editor_log.cpp editor/editor_profiler.cpp #: editor/editor_properties.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp @@ -1865,7 +2096,7 @@ msgstr "" #: editor/editor_node.cpp msgid "" "This resource belongs to a scene that was instanced or inherited.\n" -"Changes to it will not be kept when saving the current scene." +"Changes to it won't be kept when saving the current scene." msgstr "" #: editor/editor_node.cpp @@ -1876,7 +2107,7 @@ msgstr "" #: editor/editor_node.cpp msgid "" -"This scene was imported, so changes to it will not be kept.\n" +"This scene was imported, so changes to it won't be kept.\n" "Instancing it or inheriting will allow making changes to it.\n" "Please read the documentation relevant to importing scenes to better " "understand this workflow." @@ -1884,7 +2115,7 @@ msgstr "" #: editor/editor_node.cpp msgid "" -"This is a remote object so changes to it will not be kept.\n" +"This is a remote object, so changes to it won't be kept.\n" "Please read the documentation relevant to debugging to better understand " "this workflow." msgstr "" @@ -1894,27 +2125,6 @@ msgid "There is no defined scene to run." msgstr "" #: editor/editor_node.cpp -msgid "" -"No main scene has ever been defined, select one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" - -#: editor/editor_node.cpp -msgid "" -"Selected scene '%s' does not exist, select a valid one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" - -#: editor/editor_node.cpp -msgid "" -"Selected scene '%s' is not a scene file, select a valid one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" - -#: editor/editor_node.cpp msgid "Current scene was never saved, please save it prior to running." msgstr "" @@ -1922,7 +2132,7 @@ msgstr "" msgid "Could not start subprocess!" msgstr "" -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/filesystem_dock.cpp msgid "Open Scene" msgstr "" @@ -1931,6 +2141,10 @@ msgid "Open Base Scene" msgstr "" #: editor/editor_node.cpp +msgid "Quick Open..." +msgstr "" + +#: editor/editor_node.cpp msgid "Quick Open Scene..." msgstr "" @@ -2092,6 +2306,27 @@ msgid "Clear Recent Scenes" msgstr "" #: editor/editor_node.cpp +msgid "" +"No main scene has ever been defined, select one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"Selected scene '%s' does not exist, select a valid one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"Selected scene '%s' is not a scene file, select a valid one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" + +#: editor/editor_node.cpp msgid "Save Layout" msgstr "" @@ -2117,6 +2352,18 @@ msgstr "" msgid "Close Tab" msgstr "" +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +msgid "Close Other Tabs" +msgstr "" + +#: editor/editor_node.cpp +msgid "Close Tabs to the Right" +msgstr "" + +#: editor/editor_node.cpp +msgid "Close All Tabs" +msgstr "" + #: editor/editor_node.cpp msgid "Switch Scene Tab" msgstr "" @@ -2239,10 +2486,6 @@ msgstr "" msgid "Project Settings" msgstr "" -#: editor/editor_node.cpp editor/project_export.cpp -msgid "Export" -msgstr "" - #: editor/editor_node.cpp editor/plugins/tile_set_editor_plugin.cpp msgid "Tools" msgstr "" @@ -2252,6 +2495,10 @@ msgid "Open Project Data Folder" msgstr "" #: editor/editor_node.cpp +msgid "Install Android Build Template" +msgstr "" + +#: editor/editor_node.cpp msgid "Quit to Project List" msgstr "" @@ -2356,6 +2603,10 @@ msgstr "" msgid "Open Editor Settings Folder" msgstr "" +#: editor/editor_node.cpp +msgid "Manage Editor Features" +msgstr "" + #: editor/editor_node.cpp editor/project_export.cpp msgid "Manage Export Templates" msgstr "" @@ -2368,6 +2619,7 @@ msgstr "" #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp #: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp #: editor/project_settings_editor.cpp editor/rename_dialog.cpp msgid "Search" msgstr "" @@ -2457,11 +2709,6 @@ msgstr "" msgid "Disable Update Spinner" msgstr "" -#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp -#: editor/project_manager.cpp -msgid "Import" -msgstr "" - #: editor/editor_node.cpp msgid "FileSystem" msgstr "" @@ -2487,6 +2734,27 @@ msgid "Don't Save" msgstr "" #: editor/editor_node.cpp +msgid "Android build template is missing, please install relevant templates." +msgstr "" + +#: editor/editor_node.cpp +msgid "Manage Templates" +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"This will install the Android project for custom builds.\n" +"Note that, in order to use it, it needs to be enabled per export preset." +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"Android build template is already installed and it won't be overwritten.\n" +"Remove the \"build\" directory manually before attempting this operation " +"again." +msgstr "" + +#: editor/editor_node.cpp msgid "Import Templates From ZIP File" msgstr "" @@ -2609,10 +2877,6 @@ msgid "Physics Frame %" msgstr "" #: editor/editor_profiler.cpp -msgid "Time:" -msgstr "" - -#: editor/editor_profiler.cpp msgid "Inclusive" msgstr "" @@ -2747,10 +3011,6 @@ msgid "Remove Item" msgstr "" #: editor/editor_run_native.cpp -msgid "Select device from the list" -msgstr "" - -#: editor/editor_run_native.cpp msgid "" "No runnable export preset found for this platform.\n" "Please add a runnable preset in the export menu." @@ -2784,6 +3044,10 @@ msgstr "" msgid "Select Node(s) to Import" msgstr "" +#: editor/editor_sub_scene.cpp editor/project_manager.cpp +msgid "Browse" +msgstr "" + #: editor/editor_sub_scene.cpp msgid "Scene Path:" msgstr "" @@ -2946,6 +3210,10 @@ msgid "SSL Handshake Error" msgstr "" #: editor/export_template_manager.cpp +msgid "Uncompressing Android Build Sources" +msgstr "" + +#: editor/export_template_manager.cpp msgid "Current Version:" msgstr "" @@ -2962,7 +3230,7 @@ msgid "Remove Template" msgstr "" #: editor/export_template_manager.cpp -msgid "Select template file" +msgid "Select Template File" msgstr "" #: editor/export_template_manager.cpp @@ -3018,7 +3286,7 @@ msgid "No name provided." msgstr "" #: editor/filesystem_dock.cpp -msgid "Provided name contains invalid characters" +msgid "Provided name contains invalid characters." msgstr "" #: editor/filesystem_dock.cpp @@ -3046,7 +3314,11 @@ msgid "Duplicating folder:" msgstr "" #: editor/filesystem_dock.cpp -msgid "Open Scene(s)" +msgid "New Inherited Scene" +msgstr "" + +#: editor/filesystem_dock.cpp +msgid "Open Scenes" msgstr "" #: editor/filesystem_dock.cpp @@ -3054,11 +3326,11 @@ msgid "Instance" msgstr "" #: editor/filesystem_dock.cpp -msgid "Add to favorites" +msgid "Add to Favorites" msgstr "" #: editor/filesystem_dock.cpp -msgid "Remove from favorites" +msgid "Remove from Favorites" msgstr "" #: editor/filesystem_dock.cpp @@ -3090,11 +3362,13 @@ msgstr "" msgid "New Resource..." msgstr "" -#: editor/filesystem_dock.cpp editor/script_editor_debugger.cpp +#: editor/filesystem_dock.cpp editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_editor_debugger.cpp msgid "Expand All" msgstr "" -#: editor/filesystem_dock.cpp editor/script_editor_debugger.cpp +#: editor/filesystem_dock.cpp editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_editor_debugger.cpp msgid "Collapse All" msgstr "" @@ -3106,11 +3380,11 @@ msgid "Rename" msgstr "" #: editor/filesystem_dock.cpp -msgid "Previous Directory" +msgid "Previous Folder/File" msgstr "" #: editor/filesystem_dock.cpp -msgid "Next Directory" +msgid "Next Folder/File" msgstr "" #: editor/filesystem_dock.cpp @@ -3118,7 +3392,7 @@ msgid "Re-Scan Filesystem" msgstr "" #: editor/filesystem_dock.cpp -msgid "Toggle split mode" +msgid "Toggle Split Mode" msgstr "" #: editor/filesystem_dock.cpp @@ -3147,7 +3421,7 @@ msgstr "" msgid "Create Script" msgstr "" -#: editor/find_in_files.cpp +#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp msgid "Find in Files" msgstr "" @@ -3163,6 +3437,12 @@ msgstr "" msgid "Filters:" msgstr "" +#: editor/find_in_files.cpp +msgid "" +"Include the files with the following extensions. Add or remove them in " +"ProjectSettings." +msgstr "" + #: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp msgid "Find..." @@ -3592,7 +3872,7 @@ msgid "Open Animation Node" msgstr "" #: editor/plugins/animation_blend_space_2d_editor.cpp -msgid "Triangle already exists" +msgid "Triangle already exists." msgstr "" #: editor/plugins/animation_blend_space_2d_editor.cpp @@ -3668,7 +3948,6 @@ msgid "Node Moved" msgstr "" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Unable to connect, port may be in use or connection may be invalid." msgstr "" @@ -3737,7 +4016,7 @@ msgid "Edit Filtered Tracks:" msgstr "" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -msgid "Enable filtering" +msgid "Enable Filtering" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp @@ -3852,10 +4131,6 @@ msgid "Animation" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "New" -msgstr "" - -#: editor/plugins/animation_player_editor_plugin.cpp #, fuzzy msgid "Edit Transitions..." msgstr "மாறà¯à®±à®™à¯à®•ளை இதறà¯à®•௠அமை:" @@ -3873,11 +4148,11 @@ msgid "Autoplay on Load" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Onion Skinning" +msgid "Enable Onion Skinning" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Enable Onion Skinning" +msgid "Onion Skinning Options" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp @@ -4421,13 +4696,19 @@ msgid "Move CanvasItem" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"Children of containers have their anchors and margins values overridden by " +"their parent." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Presets for the anchors and margins values of a Control node." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "" -"Children of containers have their anchors and margins values overridden by " -"their parent." +"When active, moving Control nodes changes their anchors instead of their " +"margins." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4443,10 +4724,49 @@ msgid "Change Anchors" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Lock Selected" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Unlock Selected" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Group Selected" +msgstr "அனைதà¯à®¤à¯ தேரà¯à®µà¯à®•ளà¯" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Ungroup Selected" +msgstr "அனைதà¯à®¤à¯ தேரà¯à®µà¯à®•ளà¯" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Paste Pose" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Create Custom Bone(s) from Node(s)" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Clear Bones" +msgstr "உரà¯à®®à®¾à®±à¯à®±à®®à¯ அசைவூடà¯à®Ÿà¯" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Make IK Chain" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Clear IK Chain" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "" "Warning: Children of a container get their position and size determined only " "by their parent." @@ -4518,7 +4838,7 @@ msgid "Snapping Options" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to grid" +msgid "Snap to Grid" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4539,31 +4859,31 @@ msgid "Use Pixel Snap" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Smart snapping" +msgid "Smart Snapping" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to parent" +msgid "Snap to Parent" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node anchor" +msgid "Snap to Node Anchor" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node sides" +msgid "Snap to Node Sides" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node center" +msgid "Snap to Node Center" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to other nodes" +msgid "Snap to Other Nodes" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to guides" +msgid "Snap to Guides" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4577,10 +4897,12 @@ msgid "Unlock the selected object (can be moved)." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Makes sure the object's children are not selectable." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Restores the object's children's ability to be selected." msgstr "" @@ -4593,14 +4915,6 @@ msgid "Show Bones" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Make IK Chain" -msgstr "" - -#: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Clear IK Chain" -msgstr "" - -#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Make Custom Bone(s) from Node(s)" msgstr "" @@ -4651,7 +4965,7 @@ msgid "Frame Selection" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Layout" +msgid "Preview Canvas Scale" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4703,6 +5017,10 @@ msgid "Divide grid step by 2" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Pan View" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Add %s" msgstr "" @@ -4725,7 +5043,7 @@ msgid "Error instancing scene from %s" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Change default type" +msgid "Change Default Type" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4811,19 +5129,19 @@ msgid "Create Emission Points From Node" msgstr "" #: editor/plugins/curve_editor_plugin.cpp -msgid "Flat0" +msgid "Flat 0" msgstr "" #: editor/plugins/curve_editor_plugin.cpp -msgid "Flat1" +msgid "Flat 1" msgstr "" -#: editor/plugins/curve_editor_plugin.cpp -msgid "Ease in" +#: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp +msgid "Ease In" msgstr "" -#: editor/plugins/curve_editor_plugin.cpp -msgid "Ease out" +#: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp +msgid "Ease Out" msgstr "" #: editor/plugins/curve_editor_plugin.cpp @@ -4843,23 +5161,25 @@ msgid "Load Curve Preset" msgstr "" #: editor/plugins/curve_editor_plugin.cpp -msgid "Add point" -msgstr "" +#, fuzzy +msgid "Add Point" +msgstr "மாறà¯à®±à®™à¯à®•ளை இதறà¯à®•௠அமை:" #: editor/plugins/curve_editor_plugin.cpp -msgid "Remove point" -msgstr "" +#, fuzzy +msgid "Remove Point" +msgstr "அசைவூடà¯à®Ÿà¯ பாதையை நீகà¯à®•à¯" #: editor/plugins/curve_editor_plugin.cpp -msgid "Left linear" +msgid "Left Linear" msgstr "" #: editor/plugins/curve_editor_plugin.cpp -msgid "Right linear" +msgid "Right Linear" msgstr "" #: editor/plugins/curve_editor_plugin.cpp -msgid "Load preset" +msgid "Load Preset" msgstr "" #: editor/plugins/curve_editor_plugin.cpp @@ -4915,11 +5235,15 @@ msgid "This doesn't work on scene root!" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Trimesh Shape" +msgid "Create Trimesh Static Shape" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Shape" +msgid "Failed creating shapes!" +msgstr "" + +#: editor/plugins/mesh_instance_editor_plugin.cpp +msgid "Create Convex Shape(s)" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp @@ -4972,15 +5296,11 @@ msgid "Create Trimesh Static Body" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Static Body" -msgstr "" - -#: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Trimesh Collision Sibling" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Collision Sibling" +msgid "Create Convex Collision Sibling(s)" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp @@ -5134,20 +5454,20 @@ msgid "Create Navigation Polygon" msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp -msgid "Generating Visibility Rect" +#: editor/plugins/particles_editor_plugin.cpp +msgid "Convert to CPUParticles" msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp -msgid "Generate Visibility Rect" +msgid "Generating Visibility Rect" msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp -msgid "Can only set point into a ParticlesMaterial process material" +msgid "Generate Visibility Rect" msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp -#: editor/plugins/particles_editor_plugin.cpp -msgid "Convert to CPUParticles" +msgid "Can only set point into a ParticlesMaterial process material" msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp @@ -5290,7 +5610,7 @@ msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp editor/plugins/theme_editor_plugin.cpp -#: editor/project_export.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_export.cpp msgid "Options" msgstr "" @@ -5341,8 +5661,9 @@ msgid "Split Segment (in curve)" msgstr "" #: editor/plugins/physical_bone_plugin.cpp -msgid "Move joint" -msgstr "" +#, fuzzy +msgid "Move Joint" +msgstr "சேர௠மà¯à®•à¯à®•ியபà¯à®ªà¯à®³à¯à®³à®¿à®¯à¯ˆ நகரà¯à®¤à¯à®¤à¯" #: editor/plugins/polygon_2d_editor_plugin.cpp msgid "" @@ -5574,7 +5895,6 @@ msgid "Open in Editor" msgstr "" #: editor/plugins/resource_preloader_editor_plugin.cpp -#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Load Resource" msgstr "" @@ -5663,6 +5983,11 @@ msgid "%s Class Reference" msgstr "" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp +msgid "Find Next" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp msgid "Toggle alphabetical sorting of the method list." msgstr "" @@ -5743,10 +6068,6 @@ msgstr "" msgid "Close All" msgstr "" -#: editor/plugins/script_editor_plugin.cpp -msgid "Close Other Tabs" -msgstr "" - #: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp msgid "Run" msgstr "" @@ -5755,11 +6076,6 @@ msgstr "" msgid "Toggle Scripts Panel" msgstr "" -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/script_text_editor.cpp -msgid "Find Next" -msgstr "" - #: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp msgid "Step Over" msgstr "" @@ -5786,7 +6102,7 @@ msgid "Debug with External Editor" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Open Godot online documentation" +msgid "Open Godot online documentation." msgstr "" #: editor/plugins/script_editor_plugin.cpp @@ -5794,7 +6110,7 @@ msgid "Request Docs" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Help improve the Godot documentation by giving feedback" +msgid "Help improve the Godot documentation by giving feedback." msgstr "" #: editor/plugins/script_editor_plugin.cpp @@ -5820,10 +6136,12 @@ msgid "" msgstr "" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp msgid "Reload" msgstr "" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp msgid "Resave" msgstr "" @@ -5836,6 +6154,27 @@ msgid "Search Results" msgstr "" #: editor/plugins/script_text_editor.cpp +msgid "Connections to method:" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Source" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Signal" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Target" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "" +"Missing connected method '%s' for signal '%s' from node '%s' to node '%s'." +msgstr "" + +#: editor/plugins/script_text_editor.cpp msgid "Line" msgstr "" @@ -5847,10 +6186,6 @@ msgstr "" msgid "Go to Function" msgstr "" -#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp -msgid "Standard" -msgstr "" - #: editor/plugins/script_text_editor.cpp msgid "Only resources from filesystem can be dropped." msgstr "" @@ -5883,6 +6218,11 @@ msgstr "" msgid "Syntax Highlighter" msgstr "" +#: editor/plugins/script_text_editor.cpp +#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp +msgid "Bookmarks" +msgstr "" + #: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" @@ -5910,6 +6250,22 @@ msgid "Toggle Comment" msgstr "" #: editor/plugins/script_text_editor.cpp +msgid "Toggle Bookmark" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Go to Next Bookmark" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Go to Previous Bookmark" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Remove All Bookmarks" +msgstr "" + +#: editor/plugins/script_text_editor.cpp msgid "Fold/Unfold Line" msgstr "" @@ -5983,6 +6339,12 @@ msgid "Contextual Help" msgstr "" #: editor/plugins/shader_editor_plugin.cpp +msgid "" +"This shader has been modified on on disk.\n" +"What action should be taken?" +msgstr "" + +#: editor/plugins/shader_editor_plugin.cpp msgid "Shader" msgstr "" @@ -6320,7 +6682,7 @@ msgid "Right View" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Switch Perspective/Orthogonal view" +msgid "Switch Perspective/Orthogonal View" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp @@ -6360,11 +6722,12 @@ msgid "Toggle Freelook" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Transform" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Snap object to floor" +msgid "Snap Object to Floor" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp @@ -6506,35 +6869,35 @@ msgid "Invalid geometry, can't replace by mesh." msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Invalid geometry, can't create polygon." +msgid "Convert to Mesh2D" msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Invalid geometry, can't create collision polygon." +msgid "Invalid geometry, can't create polygon." msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Invalid geometry, can't create light occluder." +msgid "Convert to Polygon2D" msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Sprite" +msgid "Invalid geometry, can't create collision polygon." msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Convert to Mesh2D" +msgid "Create CollisionPolygon2D Sibling" msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Convert to Polygon2D" +msgid "Invalid geometry, can't create light occluder." msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Create CollisionPolygon2D Sibling" +msgid "Create LightOccluder2D Sibling" msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Create LightOccluder2D Sibling" +msgid "Sprite" msgstr "" #: editor/plugins/sprite_editor_plugin.cpp @@ -6554,7 +6917,11 @@ msgid "Settings:" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "ERROR: Couldn't load frame resource!" +msgid "No Frames Selected" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Add %d Frame(s)" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp @@ -6562,6 +6929,10 @@ msgid "Add Frame" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "ERROR: Couldn't load frame resource!" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Resource clipboard is empty or not a texture!" msgstr "" @@ -6603,6 +6974,14 @@ msgid "Animation Frames:" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Add a Texture from File" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Add Frames from a Sprite Sheet" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Insert Empty (Before)" msgstr "" @@ -6619,6 +6998,26 @@ msgid "Move (After)" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Select Frames" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Horizontal:" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Vertical:" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Select/Clear All Frames" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Create Frames from Sprite Sheet" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "SpriteFrames" msgstr "" @@ -6683,12 +7082,12 @@ msgstr "" msgid "Remove All Items" msgstr "" -#: editor/plugins/theme_editor_plugin.cpp +#: editor/plugins/theme_editor_plugin.cpp editor/project_manager.cpp msgid "Remove All" msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "Edit theme..." +msgid "Edit Theme" msgstr "" #: editor/plugins/theme_editor_plugin.cpp @@ -6716,18 +7115,24 @@ msgid "Create From Current Editor Theme" msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "CheckBox Radio1" +msgid "Toggle Button" msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "CheckBox Radio2" -msgstr "" +#, fuzzy +msgid "Disabled Button" +msgstr "à®®à¯à®Ÿà®•à¯à®•பà¯à®ªà®Ÿà¯à®Ÿà®¤à¯" #: editor/plugins/theme_editor_plugin.cpp msgid "Item" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Disabled Item" +msgstr "à®®à¯à®Ÿà®•à¯à®•பà¯à®ªà®Ÿà¯à®Ÿà®¤à¯" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Check Item" msgstr "" @@ -6744,6 +7149,22 @@ msgid "Checked Radio Item" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +msgid "Named Sep." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Submenu" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Item 1" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Item 2" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Has" msgstr "" @@ -6752,8 +7173,9 @@ msgid "Many" msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "Has,Many,Options" -msgstr "" +#, fuzzy +msgid "Disabled LineEdit" +msgstr "à®®à¯à®Ÿà®•à¯à®•பà¯à®ªà®Ÿà¯à®Ÿà®¤à¯" #: editor/plugins/theme_editor_plugin.cpp msgid "Tab 1" @@ -6768,6 +7190,18 @@ msgid "Tab 3" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +msgid "Editable Item" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Subtree" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Has,Many,Options" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Data Type:" msgstr "" @@ -6800,6 +7234,7 @@ msgid "Fix Invalid Tiles" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp +#: modules/gridmap/grid_map_editor_plugin.cpp #, fuzzy msgid "Cut Selection" msgstr "அனைதà¯à®¤à¯ தேரà¯à®µà¯à®•ளà¯" @@ -6841,37 +7276,46 @@ msgid "Mirror Y" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp +msgid "Disable Autotile" +msgstr "" + +#: editor/plugins/tile_map_editor_plugin.cpp +msgid "Enable Priority" +msgstr "" + +#: editor/plugins/tile_map_editor_plugin.cpp msgid "Paint Tile" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Pick Tile" +msgid "" +"Shift+RMB: Line Draw\n" +"Shift+Ctrl+RMB: Rectangle Paint" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy -msgid "Copy Selection" -msgstr "அனைதà¯à®¤à¯ தேரà¯à®µà¯à®•ளà¯" +msgid "Pick Tile" +msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Rotate left" +msgid "Rotate Left" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Rotate right" +msgid "Rotate Right" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Flip horizontally" +msgid "Flip Horizontally" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Flip vertically" +msgid "Flip Vertically" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp #, fuzzy -msgid "Clear transform" +msgid "Clear Transform" msgstr "உரà¯à®®à®¾à®±à¯à®±à®®à¯ அசைவூடà¯à®Ÿà¯" #: editor/plugins/tile_set_editor_plugin.cpp @@ -6907,6 +7351,38 @@ msgid "Select the previous shape, subtile, or Tile." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp +msgid "Region Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Collision Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Occlusion Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Navigation Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Bitmask Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Priority Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Icon Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Z Index Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp msgid "Copy bitmask." msgstr "" @@ -6988,6 +7464,7 @@ msgstr "அனைதà¯à®¤à¯ தேரà¯à®µà¯à®•ளà¯" msgid "" "LMB: Set bit on.\n" "RMB: Set bit off.\n" +"Shift+LMB: Set wildcard bit.\n" "Click on another Tile to edit it." msgstr "" @@ -7095,6 +7572,67 @@ msgid "TileSet" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add input +" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add output +" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add input port" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add output port" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change input port type" +msgstr "மாறà¯à®±à®®à¯ அசைவூடà¯à®Ÿà¯" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Change output port type" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Change input port name" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Change output port name" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Remove input port" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Remove output port" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Set expression" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Resize VisualShader node" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Set Uniform Name" msgstr "" @@ -7133,6 +7671,839 @@ msgid "Light" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Create Shader Node" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Color function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Color operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Grayscale function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts HSV vector to RGB equivalent." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts RGB vector to HSV equivalent." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Sepia function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Burn operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Darken operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Difference operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Dodge operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "HardLight operator" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Lighten operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Overlay operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Screen operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "SoftLight operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Color constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Color uniform." +msgstr "உரà¯à®®à®¾à®±à¯à®±à®®à¯ அசைவூடà¯à®Ÿà¯" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns an associated vector if the provided scalars are equal, greater or " +"less." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns an associated vector if the provided boolean value is true or false." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'camera' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'inv_camera' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'inv_projection' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'normal' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'projection' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'time' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'viewport_size' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'world' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'texture_pixel_size' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Input parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'binormal' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'fragcoord' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_coord' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_uv' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'side' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'tangent' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv2' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'vertex' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'view' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'albedo' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'attenuation' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'diffuse' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_color' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'roughness' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'specular' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'transmission' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'modelview' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_size' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'tangent' input parameter for vertex and fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_pass' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_coord' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_pixel_size' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_uv' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_alpha' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_height' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_uv' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_vec' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'normal' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'shadow_color' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'extra' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'projection' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'vertex' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'world' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'active' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'custom' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'custom_alpha' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'delta' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'emission_transform' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'index' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'lifetime' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'restart' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'time' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'transform' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'velocity' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Scalar function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Scalar operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "E constant (2.718282). Represents the base of the natural logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Epsilon constant (0.00001). Smallest possible scalar number." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Phi constant (1.618034). Golden ratio." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi/4 constant (0.785398) or 45 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi/2 constant (1.570796) or 90 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi constant (3.141593) or 180 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Tau constant (6.283185) or 360 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Sqrt2 constant (1.414214). Square root of 2." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the absolute value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-tangent of the parameters." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Finds the nearest integer that is greater than or equal to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Constrains a value to lie between two further values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts a quantity in radians to degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-e Exponential." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-2 Exponential." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Finds the nearest integer less than or equal to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Computes the fractional part of the argument." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the inverse of the square root of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Natural logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-2 logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the greater of two values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the lesser of two values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Linear interpolation between two scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the opposite value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 - scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns the value of the first parameter raised to the power of the second." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts a quantity in degrees to radians." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 / scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the nearest integer to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the nearest even integer to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Clamps the value between 0.0 and 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Extracts the sign of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the square root of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( scalar(edge0), scalar(edge1), scalar(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if x is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( scalar(edge), scalar(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the truncated value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Adds scalar to scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Divides scalar by scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies scalar by scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the remainder of the two scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Subtracts scalar from scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Scalar constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar uniform." +msgstr "உரà¯à®®à®¾à®±à¯à®±à®®à¯ அசைவூடà¯à®Ÿà¯" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Perform the cubic texture lookup." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Perform the texture lookup." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Cubic texture uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "2D texture uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Transform function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) Calculate the outer product of a pair of vectors.\n" +"\n" +"OuterProduct treats the first parameter 'c' as a column vector (matrix with " +"one column) and the second parameter 'r' as a row vector (matrix with one " +"row) and does a linear algebraic matrix multiply 'c * r', yielding a matrix " +"whose number of rows is the number of components in 'c' and whose number of " +"columns is the number of components in 'r'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Composes transform from four vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Decomposes transform to four vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the determinant of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the inverse of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the transpose of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies transform by transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies vector by transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Transform constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Transform uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Composes vector from three scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Decomposes vector to three scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the cross product of two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the distance between two points." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the dot product of two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns a vector that points in the same direction as a reference vector. " +"The function has three vector parameters : N, the vector to orient, I, the " +"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 "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the length of a vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Linear interpolation between two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the normalize product of vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 - vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 / vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns a vector that points in the direction of reflection ( a : incident " +"vector, b : normal vector )." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns a vector that points in the direction of refraction." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( vector(edge0), vector(edge1), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if 'x' is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( scalar(edge0), scalar(edge1), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if 'x' is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( vector(edge), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( scalar(edge), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Adds vector to vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Divides vector by vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies vector by vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the remainder of the two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Subtracts vector from vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Custom Godot Shader Language expression, with custom amount of input and " +"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 "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns falloff based on the dot product of surface normal and view " +"direction of camera (pass associated inputs to it)." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) (Fragment/Light mode only) Scalar derivative function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) (Fragment/Light mode only) Vector derivative function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Derivative in 'x' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Derivative in 'x' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Derivative in 'y' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Derivative in 'y' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Sum of absolute derivative " +"in 'x' and 'y'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Sum of absolute derivative " +"in 'x' and 'y'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "VisualShader" msgstr "" @@ -7320,6 +8691,10 @@ msgid "Directory already contains a Godot project." msgstr "" #: editor/project_manager.cpp +msgid "New Game Project" +msgstr "" + +#: editor/project_manager.cpp msgid "Imported Project" msgstr "" @@ -7366,10 +8741,6 @@ msgid "Rename Project" msgstr "" #: editor/project_manager.cpp -msgid "New Game Project" -msgstr "" - -#: editor/project_manager.cpp msgid "Import Existing Project" msgstr "" @@ -7398,10 +8769,6 @@ msgid "Project Name:" msgstr "" #: editor/project_manager.cpp -msgid "Create folder" -msgstr "" - -#: editor/project_manager.cpp msgid "Project Path:" msgstr "" @@ -7410,10 +8777,6 @@ msgid "Project Installation Path:" msgstr "" #: editor/project_manager.cpp -msgid "Browse" -msgstr "" - -#: editor/project_manager.cpp msgid "Renderer:" msgstr "" @@ -7466,8 +8829,8 @@ msgid "" "\n" "If you proceed with opening it, it will be converted to Godot's current " "configuration file format.\n" -"Warning: You will not be able to open the project with previous versions of " -"the engine anymore." +"Warning: You won't be able to open the project with previous versions of the " +"engine anymore." msgstr "" #: editor/project_manager.cpp @@ -7478,8 +8841,8 @@ msgid "" "%s\n" "\n" "Do you want to convert it?\n" -"Warning: You will not be able to open the project with previous versions of " -"the engine anymore." +"Warning: You won't be able to open the project with previous versions of the " +"engine anymore." msgstr "" #: editor/project_manager.cpp @@ -7491,7 +8854,7 @@ msgstr "" #: editor/project_manager.cpp msgid "" "Can't run project: no main scene defined.\n" -"Please edit the project and set the main scene in \"Project Settings\" under " +"Please edit the project and set the main scene in the Project Settings under " "the \"Application\" category." msgstr "" @@ -7502,23 +8865,37 @@ msgid "" msgstr "" #: editor/project_manager.cpp -msgid "Are you sure to run more than one project?" +msgid "Are you sure to run %d projects at once?" +msgstr "" + +#: editor/project_manager.cpp +msgid "" +"Remove %d projects from the list?\n" +"The project folders' contents won't be modified." msgstr "" #: editor/project_manager.cpp -msgid "Remove project from the list? (Folder contents will not be modified)" +msgid "" +"Remove this project from the list?\n" +"The project folder's contents won't be modified." +msgstr "" + +#: editor/project_manager.cpp +msgid "" +"Remove all missing projects from the list? (Folders contents will not be " +"modified)" msgstr "" #: editor/project_manager.cpp msgid "" "Language changed.\n" -"The UI will update next time the editor or project manager starts." +"The interface will update after restarting the editor or project manager." msgstr "" #: editor/project_manager.cpp msgid "" -"You are about the scan %s folders for existing Godot projects. Do you " -"confirm?" +"Are you sure to scan %s folders for existing Godot projects?\n" +"This could take a while." msgstr "" #: editor/project_manager.cpp @@ -7542,6 +8919,10 @@ msgid "New Project" msgstr "" #: editor/project_manager.cpp +msgid "Remove Missing" +msgstr "" + +#: editor/project_manager.cpp msgid "Templates" msgstr "" @@ -7559,8 +8940,8 @@ msgstr "" #: editor/project_manager.cpp msgid "" -"You don't currently have any projects.\n" -"Would you like to explore the official example projects in the Asset Library?" +"You currently don't have any projects.\n" +"Would you like to explore official example projects in the Asset Library?" msgstr "" #: editor/project_settings_editor.cpp @@ -7586,7 +8967,7 @@ msgid "" msgstr "" #: editor/project_settings_editor.cpp -msgid "Action '%s' already exists!" +msgid "An action with the name '%s' already exists." msgstr "" #: editor/project_settings_editor.cpp @@ -7740,10 +9121,6 @@ msgid "" msgstr "" #: editor/project_settings_editor.cpp -msgid "Already existing" -msgstr "" - -#: editor/project_settings_editor.cpp msgid "Add Input Action" msgstr "" @@ -7808,7 +9185,7 @@ msgid "Override For..." msgstr "" #: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp -msgid "Editor must be restarted for changes to take effect" +msgid "The editor must be restarted for changes to take effect." msgstr "" #: editor/project_settings_editor.cpp @@ -7869,11 +9246,11 @@ msgid "Locales Filter" msgstr "" #: editor/project_settings_editor.cpp -msgid "Show all locales" +msgid "Show All Locales" msgstr "" #: editor/project_settings_editor.cpp -msgid "Show only selected locales" +msgid "Show Selected Locales Only" msgstr "" #: editor/project_settings_editor.cpp @@ -7889,14 +9266,6 @@ msgid "AutoLoad" msgstr "" #: editor/property_editor.cpp -msgid "Ease In" -msgstr "" - -#: editor/property_editor.cpp -msgid "Ease Out" -msgstr "" - -#: editor/property_editor.cpp msgid "Zero" msgstr "" @@ -7970,7 +9339,7 @@ msgid "Suffix" msgstr "" #: editor/rename_dialog.cpp -msgid "Advanced options" +msgid "Advanced Options" msgstr "" #: editor/rename_dialog.cpp @@ -8222,8 +9591,9 @@ msgid "User Interface" msgstr "" #: editor/scene_tree_dock.cpp -msgid "Custom Node" -msgstr "" +#, fuzzy +msgid "Other Node" +msgstr "அனைதà¯à®¤à¯ தேரà¯à®µà¯à®•ளà¯" #: editor/scene_tree_dock.cpp msgid "Can't operate on nodes from a foreign scene!" @@ -8264,7 +9634,7 @@ msgid "Clear Inheritance" msgstr "" #: editor/scene_tree_dock.cpp -msgid "Open documentation" +msgid "Open Documentation" msgstr "" #: editor/scene_tree_dock.cpp @@ -8291,7 +9661,7 @@ msgstr "" msgid "Save Branch as Scene" msgstr "" -#: editor/scene_tree_dock.cpp +#: editor/scene_tree_dock.cpp editor/script_editor_debugger.cpp msgid "Copy Node Path" msgstr "" @@ -8334,6 +9704,19 @@ msgid "Toggle Visible" msgstr "" #: editor/scene_tree_editor.cpp +#, fuzzy +msgid "Unlock Node" +msgstr "சேர௠மà¯à®•à¯à®•ியபà¯à®ªà¯à®³à¯à®³à®¿à®¯à¯ˆ நகரà¯à®¤à¯à®¤à¯" + +#: editor/scene_tree_editor.cpp +msgid "Button Group" +msgstr "" + +#: editor/scene_tree_editor.cpp +msgid "(Connecting From)" +msgstr "" + +#: editor/scene_tree_editor.cpp msgid "Node configuration warning:" msgstr "" @@ -8355,8 +9738,8 @@ msgid "" "Click to show groups dock." msgstr "" -#: editor/scene_tree_editor.cpp editor/script_create_dialog.cpp -msgid "Open Script" +#: editor/scene_tree_editor.cpp +msgid "Open Script:" msgstr "" #: editor/scene_tree_editor.cpp @@ -8402,71 +9785,71 @@ msgid "Select a Node" msgstr "" #: editor/script_create_dialog.cpp -msgid "Error loading template '%s'" +msgid "Path is empty." msgstr "" #: editor/script_create_dialog.cpp -msgid "Error - Could not create script in filesystem." +msgid "Filename is empty." msgstr "" #: editor/script_create_dialog.cpp -msgid "Error loading script from %s" +msgid "Path is not local." msgstr "" #: editor/script_create_dialog.cpp -msgid "N/A" +msgid "Invalid base path." msgstr "" #: editor/script_create_dialog.cpp -msgid "Open Script/Choose Location" +msgid "A directory with the same name exists." msgstr "" #: editor/script_create_dialog.cpp -msgid "Path is empty" +msgid "Invalid extension." msgstr "" #: editor/script_create_dialog.cpp -msgid "Filename is empty" +msgid "Wrong extension chosen." msgstr "" #: editor/script_create_dialog.cpp -msgid "Path is not local" +msgid "Error loading template '%s'" msgstr "" #: editor/script_create_dialog.cpp -msgid "Invalid base path" +msgid "Error - Could not create script in filesystem." msgstr "" #: editor/script_create_dialog.cpp -msgid "Directory of the same name exists" +msgid "Error loading script from %s" msgstr "" #: editor/script_create_dialog.cpp -msgid "File exists, will be reused" +msgid "N/A" msgstr "" #: editor/script_create_dialog.cpp -msgid "Invalid extension" +msgid "Open Script / Choose Location" msgstr "" #: editor/script_create_dialog.cpp -msgid "Wrong extension chosen" +msgid "Open Script" msgstr "" #: editor/script_create_dialog.cpp -msgid "Invalid Path" +msgid "File exists, it will be reused." msgstr "" #: editor/script_create_dialog.cpp -msgid "Invalid class name" +msgid "Invalid class name." msgstr "" #: editor/script_create_dialog.cpp -msgid "Invalid inherited parent name or path" +msgid "Invalid inherited parent name or path." msgstr "" #: editor/script_create_dialog.cpp -msgid "Script valid" +msgid "Script is valid." msgstr "" #: editor/script_create_dialog.cpp @@ -8474,15 +9857,15 @@ msgid "Allowed: a-z, A-Z, 0-9 and _" msgstr "" #: editor/script_create_dialog.cpp -msgid "Built-in script (into scene file)" +msgid "Built-in script (into scene file)." msgstr "" #: editor/script_create_dialog.cpp -msgid "Create new script file" +msgid "Will create a new script file." msgstr "" #: editor/script_create_dialog.cpp -msgid "Load existing script file" +msgid "Will load an existing script file." msgstr "" #: editor/script_create_dialog.cpp @@ -8613,6 +9996,10 @@ msgstr "" msgid "Set From Tree" msgstr "" +#: editor/script_editor_debugger.cpp +msgid "Export measures as CSV" +msgstr "" + #: editor/settings_config_dialog.cpp msgid "Erase Shortcut" msgstr "" @@ -8742,6 +10129,14 @@ msgid "GDNativeLibrary" msgstr "" #: modules/gdnative/gdnative_library_singleton_editor.cpp +msgid "Enabled GDNative Singleton" +msgstr "" + +#: modules/gdnative/gdnative_library_singleton_editor.cpp +msgid "Disabled GDNative Singleton" +msgstr "" + +#: modules/gdnative/gdnative_library_singleton_editor.cpp msgid "Library" msgstr "" @@ -8827,8 +10222,9 @@ msgid "GridMap Fill Selection" msgstr "அனைதà¯à®¤à¯ தேரà¯à®µà¯à®•ளà¯" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "GridMap Duplicate Selection" -msgstr "" +#, fuzzy +msgid "GridMap Paste Selection" +msgstr "அனைதà¯à®¤à¯ தேரà¯à®µà¯à®•ளà¯" #: modules/gridmap/grid_map_editor_plugin.cpp msgid "GridMap Paint" @@ -8895,18 +10291,6 @@ msgid "Cursor Clear Rotation" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Create Area" -msgstr "" - -#: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Create Exterior Connector" -msgstr "" - -#: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Erase Area" -msgstr "" - -#: modules/gridmap/grid_map_editor_plugin.cpp msgid "Clear Selection" msgstr "" @@ -9258,15 +10642,7 @@ msgid "Available Nodes:" msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Select or create a function to edit graph" -msgstr "" - -#: modules/visual_script/visual_script_editor.cpp -msgid "Edit Signal Arguments:" -msgstr "" - -#: modules/visual_script/visual_script_editor.cpp -msgid "Edit Variable:" +msgid "Select or create a function to edit its graph." msgstr "" #: modules/visual_script/visual_script_editor.cpp @@ -9396,6 +10772,19 @@ msgid "Debug keystore not configured in the Editor Settings nor in the preset." msgstr "" #: platform/android/export/export.cpp +msgid "Custom build requires a valid Android SDK path in Editor Settings." +msgstr "" + +#: platform/android/export/export.cpp +msgid "Invalid Android SDK path for custom build in Editor Settings." +msgstr "" + +#: platform/android/export/export.cpp +msgid "" +"Android project is not installed for compiling. Install from Editor menu." +msgstr "" + +#: platform/android/export/export.cpp msgid "Invalid public key for APK expansion." msgstr "" @@ -9403,6 +10792,34 @@ msgstr "" msgid "Invalid package name:" msgstr "" +#: platform/android/export/export.cpp +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 "" +"Android build version mismatch:\n" +" Template installed: %s\n" +" Godot Version: %s\n" +"Please reinstall Android build template from 'Project' menu." +msgstr "" + +#: platform/android/export/export.cpp +msgid "Building Android Project (gradle)" +msgstr "" + +#: 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 "" + +#: platform/android/export/export.cpp +msgid "No build apk generated at: " +msgstr "" + #: platform/iphone/export/export.cpp msgid "Identifier is missing." msgstr "" @@ -9655,27 +11072,27 @@ msgid "ARVRCamera must have an ARVROrigin node as its parent" msgstr "" #: scene/3d/arvr_nodes.cpp -msgid "ARVRController must have an ARVROrigin node as its parent" +msgid "ARVRController must have an ARVROrigin node as its parent." msgstr "" #: scene/3d/arvr_nodes.cpp msgid "" -"The controller id must not be 0 or this controller will not be bound to an " -"actual controller" +"The controller ID must not be 0 or this controller won't be bound to an " +"actual controller." msgstr "" #: scene/3d/arvr_nodes.cpp -msgid "ARVRAnchor must have an ARVROrigin node as its parent" +msgid "ARVRAnchor must have an ARVROrigin node as its parent." msgstr "" #: scene/3d/arvr_nodes.cpp msgid "" -"The anchor id must not be 0 or this anchor will not be bound to an actual " -"anchor" +"The anchor ID must not be 0 or this anchor won't be bound to an actual " +"anchor." msgstr "" #: scene/3d/arvr_nodes.cpp -msgid "ARVROrigin requires an ARVRCamera child node" +msgid "ARVROrigin requires an ARVRCamera child node." msgstr "" #: scene/3d/baked_lightmap.cpp @@ -9745,8 +11162,8 @@ msgstr "" #: scene/3d/cpu_particles.cpp msgid "" -"CPUParticles animation requires the usage of a SpatialMaterial with " -"\"Billboard Particles\" enabled." +"CPUParticles animation requires the usage of a SpatialMaterial whose " +"Billboard Mode is set to \"Particle Billboard\"." msgstr "" #: scene/3d/gi_probe.cpp @@ -9783,8 +11200,8 @@ msgstr "" #: scene/3d/particles.cpp msgid "" -"Particles animation requires the usage of a SpatialMaterial with \"Billboard " -"Particles\" enabled." +"Particles animation requires the usage of a SpatialMaterial whose Billboard " +"Mode is set to \"Particle Billboard\"." msgstr "" #: scene/3d/path.cpp @@ -9809,7 +11226,7 @@ msgid "Path property must point to a valid Spatial node to work." msgstr "" #: scene/3d/soft_body.cpp -msgid "This body will be ignored until you set a mesh" +msgid "This body will be ignored until you set a mesh." msgstr "" #: scene/3d/soft_body.cpp @@ -9906,7 +11323,7 @@ msgstr "" msgid "" "Container by itself serves no purpose unless a script configures it's " "children placement behavior.\n" -"If you dont't intend to add a script, then please use a plain 'Control' node " +"If you don't intend to add a script, then please use a plain 'Control' node " "instead." msgstr "" @@ -9918,10 +11335,6 @@ msgstr "" msgid "Please Confirm..." msgstr "" -#: scene/gui/file_dialog.cpp -msgid "Go to parent folder." -msgstr "" - #: scene/gui/popup.cpp msgid "" "Popups will hide by default unless you call popup() or any of the popup*() " @@ -9994,8 +11407,9 @@ msgstr "" msgid "Varyings can only be assigned in vertex function." msgstr "" -#~ msgid "Disabled" -#~ msgstr "à®®à¯à®Ÿà®•à¯à®•பà¯à®ªà®Ÿà¯à®Ÿà®¤à¯" +#: servers/visual/shader_language.cpp +msgid "Constants cannot be modified." +msgstr "" #~ msgid "Move Anim Track Up" #~ msgstr "அசைவூடà¯à®Ÿà¯ பாதையை மேலே நகரà¯à®¤à¯à®¤à¯" diff --git a/editor/translations/te.po b/editor/translations/te.po index b5f7015c88..5f79e35f08 100644 --- a/editor/translations/te.po +++ b/editor/translations/te.po @@ -70,6 +70,14 @@ msgstr "" msgid "Mirror" msgstr "" +#: editor/animation_bezier_editor.cpp editor/editor_profiler.cpp +msgid "Time:" +msgstr "" + +#: editor/animation_bezier_editor.cpp +msgid "Value:" +msgstr "" + #: editor/animation_bezier_editor.cpp msgid "Insert Key Here" msgstr "" @@ -152,11 +160,15 @@ msgid "Animation Playback Track" msgstr "" #: editor/animation_track_editor.cpp -msgid "Add Track" +msgid "Animation length (frames)" msgstr "" #: editor/animation_track_editor.cpp -msgid "Animation Length Time (seconds)" +msgid "Animation length (seconds)" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Add Track" msgstr "" #: editor/animation_track_editor.cpp @@ -283,11 +295,13 @@ msgid "Create %d NEW tracks and insert keys?" msgstr "" #: editor/animation_track_editor.cpp editor/create_dialog.cpp -#: editor/editor_audio_buses.cpp editor/editor_plugin_settings.cpp -#: editor/plugin_config_dialog.cpp +#: editor/editor_audio_buses.cpp editor/editor_feature_profile.cpp +#: editor/editor_plugin_settings.cpp editor/plugin_config_dialog.cpp #: editor/plugins/abstract_polygon_2d_editor.cpp #: editor/plugins/mesh_instance_editor_plugin.cpp -#: editor/plugins/particles_editor_plugin.cpp editor/script_create_dialog.cpp +#: editor/plugins/particles_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_create_dialog.cpp msgid "Create" msgstr "" @@ -397,6 +411,23 @@ msgid "" msgstr "" #: editor/animation_track_editor.cpp +msgid "" +"This animation belongs to an imported scene, so changes to imported tracks " +"will not be saved.\n" +"\n" +"To enable the ability to add custom tracks, navigate to the scene's import " +"settings and set\n" +"\"Animation > Storage\" to \"Files\", enable \"Animation > Keep Custom Tracks" +"\", then re-import.\n" +"Alternatively, use an import preset that imports animations to separate " +"files." +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Warning: Editing imported animation" +msgstr "" + +#: editor/animation_track_editor.cpp msgid "Only show tracks from nodes selected in tree." msgstr "" @@ -529,7 +560,8 @@ msgstr "" msgid "Select tracks to copy:" msgstr "" -#: editor/animation_track_editor.cpp editor/editor_properties.cpp +#: editor/animation_track_editor.cpp editor/editor_log.cpp +#: editor/editor_properties.cpp #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp @@ -597,6 +629,11 @@ msgstr "" msgid "Selection Only" msgstr "" +#: editor/code_editor.cpp editor/plugins/script_text_editor.cpp +#: editor/plugins/text_editor.cpp +msgid "Standard" +msgstr "" + #: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/texture_region_editor_plugin.cpp #: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp @@ -622,17 +659,29 @@ msgid "Line and column numbers." msgstr "" #: editor/connections_dialog.cpp -msgid "Method in target Node must be specified!" +msgid "Method in target node must be specified." msgstr "" #: editor/connections_dialog.cpp msgid "" -"Target method not found! Specify a valid method or attach a script to target " -"Node." +"Target method not found. Specify a valid method or attach a script to the " +"target node." +msgstr "" + +#: editor/connections_dialog.cpp +msgid "Connect to Node:" +msgstr "" + +#: editor/connections_dialog.cpp +msgid "Connect to Script:" +msgstr "" + +#: editor/connections_dialog.cpp +msgid "From Signal:" msgstr "" #: editor/connections_dialog.cpp -msgid "Connect To Node:" +msgid "Scene does not contain any script." msgstr "" #: editor/connections_dialog.cpp editor/editor_autoload_settings.cpp @@ -642,10 +691,12 @@ msgid "Add" msgstr "" #: editor/connections_dialog.cpp editor/dependency_editor.cpp -#: editor/groups_editor.cpp editor/plugins/animation_player_editor_plugin.cpp +#: editor/editor_feature_profile.cpp editor/groups_editor.cpp +#: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp #: editor/plugins/resource_preloader_editor_plugin.cpp -#: editor/plugins/theme_editor_plugin.cpp editor/project_manager.cpp +#: editor/plugins/theme_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_manager.cpp #: editor/project_settings_editor.cpp msgid "Remove" msgstr "" @@ -659,21 +710,30 @@ msgid "Extra Call Arguments:" msgstr "" #: editor/connections_dialog.cpp -msgid "Path to Node:" +msgid "Advanced" msgstr "" #: editor/connections_dialog.cpp -msgid "Make Function" +msgid "Deferred" msgstr "" #: editor/connections_dialog.cpp -msgid "Deferred" +msgid "" +"Defers the signal, storing it in a queue and only firing it at idle time." msgstr "" #: editor/connections_dialog.cpp msgid "Oneshot" msgstr "" +#: editor/connections_dialog.cpp +msgid "Disconnects the signal after its first emission." +msgstr "" + +#: editor/connections_dialog.cpp +msgid "Cannot connect signal" +msgstr "" + #: editor/connections_dialog.cpp editor/dependency_editor.cpp #: editor/export_template_manager.cpp editor/groups_editor.cpp #: editor/plugins/animation_player_editor_plugin.cpp @@ -714,11 +774,11 @@ msgid "Disconnect" msgstr "" #: editor/connections_dialog.cpp -msgid "Connect Signal: " +msgid "Connect a Signal to a Method" msgstr "" #: editor/connections_dialog.cpp -msgid "Edit Connection: " +msgid "Edit Connection:" msgstr "" #: editor/connections_dialog.cpp @@ -750,7 +810,6 @@ msgid "Change %s Type" msgstr "" #: editor/create_dialog.cpp editor/project_settings_editor.cpp -#: modules/visual_script/visual_script_editor.cpp msgid "Change" msgstr "" @@ -781,7 +840,8 @@ msgid "Matches:" msgstr "" #: editor/create_dialog.cpp editor/plugin_config_dialog.cpp -#: editor/plugins/asset_library_editor_plugin.cpp editor/property_selector.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/property_selector.cpp #: modules/visual_script/visual_script_property_selector.cpp msgid "Description:" msgstr "" @@ -797,13 +857,13 @@ msgstr "" #: editor/dependency_editor.cpp msgid "" "Scene '%s' is currently being edited.\n" -"Changes will not take effect unless reloaded." +"Changes will only take effect when reloaded." msgstr "" #: editor/dependency_editor.cpp msgid "" "Resource '%s' is in use.\n" -"Changes will take effect when reloaded." +"Changes will only take effect when reloaded." msgstr "" #: editor/dependency_editor.cpp @@ -894,21 +954,13 @@ msgid "Permanently delete %d item(s)? (No undo!)" msgstr "" #: editor/dependency_editor.cpp -msgid "Owns" -msgstr "" - -#: editor/dependency_editor.cpp -msgid "Resources Without Explicit Ownership:" +msgid "Show Dependencies" msgstr "" #: editor/dependency_editor.cpp editor/editor_node.cpp msgid "Orphan Resource Explorer" msgstr "" -#: editor/dependency_editor.cpp -msgid "Delete selected files?" -msgstr "" - #: editor/dependency_editor.cpp editor/editor_audio_buses.cpp #: editor/editor_file_dialog.cpp editor/editor_node.cpp #: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp @@ -917,6 +969,14 @@ msgstr "" msgid "Delete" msgstr "" +#: editor/dependency_editor.cpp +msgid "Owns" +msgstr "" + +#: editor/dependency_editor.cpp +msgid "Resources Without Explicit Ownership:" +msgstr "" + #: editor/dictionary_property_edit.cpp msgid "Change Dictionary Key" msgstr "" @@ -1026,7 +1086,7 @@ msgstr "" msgid "Success!" msgstr "" -#: editor/editor_asset_installer.cpp +#: editor/editor_asset_installer.cpp editor/editor_node.cpp #: editor/plugins/asset_library_editor_plugin.cpp msgid "Install" msgstr "" @@ -1153,7 +1213,11 @@ msgid "Open Audio Bus Layout" msgstr "" #: editor/editor_audio_buses.cpp -msgid "There is no 'res://default_bus_layout.tres' file." +msgid "There is no '%s' file." +msgstr "" + +#: editor/editor_audio_buses.cpp editor/plugins/canvas_item_editor_plugin.cpp +msgid "Layout" msgstr "" #: editor/editor_audio_buses.cpp @@ -1207,15 +1271,19 @@ msgid "Valid characters:" msgstr "" #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing engine class name." +msgid "Must not collide with an existing engine class name." msgstr "" #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing buit-in type name." +msgid "Must not collide with an existing buit-in type name." msgstr "" #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing global constant name." +msgid "Must not collide with an existing global constant name." +msgstr "" + +#: editor/editor_autoload_settings.cpp +msgid "Keyword cannot be used as an autoload name." msgstr "" #: editor/editor_autoload_settings.cpp @@ -1246,11 +1314,11 @@ msgstr "" msgid "Rearrange Autoloads" msgstr "" -#: editor/editor_autoload_settings.cpp -msgid "Invalid Path." +#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp +msgid "Invalid path." msgstr "" -#: editor/editor_autoload_settings.cpp +#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp msgid "File does not exist." msgstr "" @@ -1301,7 +1369,7 @@ msgid "[unsaved]" msgstr "" #: editor/editor_dir_dialog.cpp -msgid "Please select a base directory first" +msgid "Please select a base directory first." msgstr "" #: editor/editor_dir_dialog.cpp @@ -1309,7 +1377,8 @@ msgid "Choose a Directory" msgstr "" #: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp -#: editor/filesystem_dock.cpp scene/gui/file_dialog.cpp +#: editor/filesystem_dock.cpp editor/project_manager.cpp +#: scene/gui/file_dialog.cpp msgid "Create Folder" msgstr "" @@ -1377,6 +1446,151 @@ msgstr "" msgid "Template file not found:" msgstr "" +#: editor/editor_feature_profile.cpp +msgid "3D Editor" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Script Editor" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Asset Library" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Scene Tree Editing" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Import Dock" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Node Dock" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Filesystem Dock" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Erase profile '%s'? (no undo)" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Profile must be a valid filename and must not contain '.'" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Profile with this name already exists." +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "(Editor Disabled, Properties Disabled)" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "(Properties Disabled)" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "(Editor Disabled)" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Class Options:" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Enable Contextual Editor" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Enabled Properties:" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Enabled Features:" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Enabled Classes:" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "File '%s' format is invalid, import aborted." +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "" +"Profile '%s' already exists. Remote it first before importing, import " +"aborted." +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Error saving profile to path: '%s'." +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Unset" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Current Profile" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Make Current" +msgstr "" + +#: editor/editor_feature_profile.cpp +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "New" +msgstr "" + +#: editor/editor_feature_profile.cpp editor/editor_node.cpp +#: editor/plugins/asset_library_editor_plugin.cpp editor/project_manager.cpp +msgid "Import" +msgstr "" + +#: editor/editor_feature_profile.cpp editor/editor_node.cpp +#: editor/project_export.cpp +msgid "Export" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Available Profiles" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Enabled Classes" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Class Options" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "New profile name:" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Erase Profile" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Import Profile(s)" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Export Profile" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Manage Editor Feature Profiles" +msgstr "" + #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Select Current Folder" msgstr "" @@ -1397,8 +1611,8 @@ msgstr "" msgid "Open in File Manager" msgstr "" -#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp -#: editor/project_manager.cpp +#: editor/editor_file_dialog.cpp editor/editor_node.cpp +#: editor/filesystem_dock.cpp editor/project_manager.cpp msgid "Show in File Manager" msgstr "" @@ -1457,7 +1671,7 @@ msgstr "" msgid "Go Up" msgstr "" -#: editor/editor_file_dialog.cpp +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Toggle Hidden Files" msgstr "" @@ -1489,14 +1703,18 @@ msgstr "" msgid "Next Folder" msgstr "" -#: editor/editor_file_dialog.cpp -msgid "Go to parent folder" +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp +msgid "Go to parent folder." msgstr "" #: editor/editor_file_dialog.cpp msgid "(Un)favorite current folder." msgstr "" +#: editor/editor_file_dialog.cpp +msgid "Toggle visibility of hidden files." +msgstr "" + #: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp msgid "View items as a grid of thumbnails." msgstr "" @@ -1511,6 +1729,7 @@ msgstr "" #: editor/editor_file_dialog.cpp editor/plugins/sprite_editor_plugin.cpp #: editor/plugins/style_box_editor_plugin.cpp +#: editor/plugins/theme_editor_plugin.cpp msgid "Preview:" msgstr "" @@ -1527,6 +1746,12 @@ msgid "ScanSources" msgstr "" #: editor/editor_file_system.cpp +msgid "" +"There are multiple importers for different types pointing to file %s, import " +"aborted" +msgstr "" + +#: editor/editor_file_system.cpp msgid "(Re)Importing Assets" msgstr "" @@ -1702,6 +1927,10 @@ msgstr "" msgid "Output:" msgstr "" +#: editor/editor_log.cpp editor/plugins/tile_map_editor_plugin.cpp +msgid "Copy Selection" +msgstr "" + #: editor/editor_log.cpp editor/editor_profiler.cpp #: editor/editor_properties.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp @@ -1849,7 +2078,7 @@ msgstr "" #: editor/editor_node.cpp msgid "" "This resource belongs to a scene that was instanced or inherited.\n" -"Changes to it will not be kept when saving the current scene." +"Changes to it won't be kept when saving the current scene." msgstr "" #: editor/editor_node.cpp @@ -1860,7 +2089,7 @@ msgstr "" #: editor/editor_node.cpp msgid "" -"This scene was imported, so changes to it will not be kept.\n" +"This scene was imported, so changes to it won't be kept.\n" "Instancing it or inheriting will allow making changes to it.\n" "Please read the documentation relevant to importing scenes to better " "understand this workflow." @@ -1868,7 +2097,7 @@ msgstr "" #: editor/editor_node.cpp msgid "" -"This is a remote object so changes to it will not be kept.\n" +"This is a remote object, so changes to it won't be kept.\n" "Please read the documentation relevant to debugging to better understand " "this workflow." msgstr "" @@ -1878,27 +2107,6 @@ msgid "There is no defined scene to run." msgstr "" #: editor/editor_node.cpp -msgid "" -"No main scene has ever been defined, select one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" - -#: editor/editor_node.cpp -msgid "" -"Selected scene '%s' does not exist, select a valid one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" - -#: editor/editor_node.cpp -msgid "" -"Selected scene '%s' is not a scene file, select a valid one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" - -#: editor/editor_node.cpp msgid "Current scene was never saved, please save it prior to running." msgstr "" @@ -1906,7 +2114,7 @@ msgstr "" msgid "Could not start subprocess!" msgstr "" -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/filesystem_dock.cpp msgid "Open Scene" msgstr "" @@ -1915,6 +2123,10 @@ msgid "Open Base Scene" msgstr "" #: editor/editor_node.cpp +msgid "Quick Open..." +msgstr "" + +#: editor/editor_node.cpp msgid "Quick Open Scene..." msgstr "" @@ -2076,6 +2288,27 @@ msgid "Clear Recent Scenes" msgstr "" #: editor/editor_node.cpp +msgid "" +"No main scene has ever been defined, select one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"Selected scene '%s' does not exist, select a valid one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"Selected scene '%s' is not a scene file, select a valid one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" + +#: editor/editor_node.cpp msgid "Save Layout" msgstr "" @@ -2101,6 +2334,18 @@ msgstr "" msgid "Close Tab" msgstr "" +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +msgid "Close Other Tabs" +msgstr "" + +#: editor/editor_node.cpp +msgid "Close Tabs to the Right" +msgstr "" + +#: editor/editor_node.cpp +msgid "Close All Tabs" +msgstr "" + #: editor/editor_node.cpp msgid "Switch Scene Tab" msgstr "" @@ -2223,10 +2468,6 @@ msgstr "" msgid "Project Settings" msgstr "" -#: editor/editor_node.cpp editor/project_export.cpp -msgid "Export" -msgstr "" - #: editor/editor_node.cpp editor/plugins/tile_set_editor_plugin.cpp msgid "Tools" msgstr "" @@ -2236,6 +2477,10 @@ msgid "Open Project Data Folder" msgstr "" #: editor/editor_node.cpp +msgid "Install Android Build Template" +msgstr "" + +#: editor/editor_node.cpp msgid "Quit to Project List" msgstr "" @@ -2340,6 +2585,10 @@ msgstr "" msgid "Open Editor Settings Folder" msgstr "" +#: editor/editor_node.cpp +msgid "Manage Editor Features" +msgstr "" + #: editor/editor_node.cpp editor/project_export.cpp msgid "Manage Export Templates" msgstr "" @@ -2352,6 +2601,7 @@ msgstr "" #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp #: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp #: editor/project_settings_editor.cpp editor/rename_dialog.cpp msgid "Search" msgstr "" @@ -2441,11 +2691,6 @@ msgstr "" msgid "Disable Update Spinner" msgstr "" -#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp -#: editor/project_manager.cpp -msgid "Import" -msgstr "" - #: editor/editor_node.cpp msgid "FileSystem" msgstr "" @@ -2471,6 +2716,27 @@ msgid "Don't Save" msgstr "" #: editor/editor_node.cpp +msgid "Android build template is missing, please install relevant templates." +msgstr "" + +#: editor/editor_node.cpp +msgid "Manage Templates" +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"This will install the Android project for custom builds.\n" +"Note that, in order to use it, it needs to be enabled per export preset." +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"Android build template is already installed and it won't be overwritten.\n" +"Remove the \"build\" directory manually before attempting this operation " +"again." +msgstr "" + +#: editor/editor_node.cpp msgid "Import Templates From ZIP File" msgstr "" @@ -2593,10 +2859,6 @@ msgid "Physics Frame %" msgstr "" #: editor/editor_profiler.cpp -msgid "Time:" -msgstr "" - -#: editor/editor_profiler.cpp msgid "Inclusive" msgstr "" @@ -2731,10 +2993,6 @@ msgid "Remove Item" msgstr "" #: editor/editor_run_native.cpp -msgid "Select device from the list" -msgstr "" - -#: editor/editor_run_native.cpp msgid "" "No runnable export preset found for this platform.\n" "Please add a runnable preset in the export menu." @@ -2768,6 +3026,10 @@ msgstr "" msgid "Select Node(s) to Import" msgstr "" +#: editor/editor_sub_scene.cpp editor/project_manager.cpp +msgid "Browse" +msgstr "" + #: editor/editor_sub_scene.cpp msgid "Scene Path:" msgstr "" @@ -2930,6 +3192,10 @@ msgid "SSL Handshake Error" msgstr "" #: editor/export_template_manager.cpp +msgid "Uncompressing Android Build Sources" +msgstr "" + +#: editor/export_template_manager.cpp msgid "Current Version:" msgstr "" @@ -2946,7 +3212,7 @@ msgid "Remove Template" msgstr "" #: editor/export_template_manager.cpp -msgid "Select template file" +msgid "Select Template File" msgstr "" #: editor/export_template_manager.cpp @@ -3002,7 +3268,7 @@ msgid "No name provided." msgstr "" #: editor/filesystem_dock.cpp -msgid "Provided name contains invalid characters" +msgid "Provided name contains invalid characters." msgstr "" #: editor/filesystem_dock.cpp @@ -3030,7 +3296,11 @@ msgid "Duplicating folder:" msgstr "" #: editor/filesystem_dock.cpp -msgid "Open Scene(s)" +msgid "New Inherited Scene" +msgstr "" + +#: editor/filesystem_dock.cpp +msgid "Open Scenes" msgstr "" #: editor/filesystem_dock.cpp @@ -3038,11 +3308,11 @@ msgid "Instance" msgstr "" #: editor/filesystem_dock.cpp -msgid "Add to favorites" +msgid "Add to Favorites" msgstr "" #: editor/filesystem_dock.cpp -msgid "Remove from favorites" +msgid "Remove from Favorites" msgstr "" #: editor/filesystem_dock.cpp @@ -3073,11 +3343,13 @@ msgstr "" msgid "New Resource..." msgstr "" -#: editor/filesystem_dock.cpp editor/script_editor_debugger.cpp +#: editor/filesystem_dock.cpp editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_editor_debugger.cpp msgid "Expand All" msgstr "" -#: editor/filesystem_dock.cpp editor/script_editor_debugger.cpp +#: editor/filesystem_dock.cpp editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_editor_debugger.cpp msgid "Collapse All" msgstr "" @@ -3089,11 +3361,11 @@ msgid "Rename" msgstr "" #: editor/filesystem_dock.cpp -msgid "Previous Directory" +msgid "Previous Folder/File" msgstr "" #: editor/filesystem_dock.cpp -msgid "Next Directory" +msgid "Next Folder/File" msgstr "" #: editor/filesystem_dock.cpp @@ -3101,7 +3373,7 @@ msgid "Re-Scan Filesystem" msgstr "" #: editor/filesystem_dock.cpp -msgid "Toggle split mode" +msgid "Toggle Split Mode" msgstr "" #: editor/filesystem_dock.cpp @@ -3130,7 +3402,7 @@ msgstr "" msgid "Create Script" msgstr "" -#: editor/find_in_files.cpp +#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp msgid "Find in Files" msgstr "" @@ -3146,6 +3418,12 @@ msgstr "" msgid "Filters:" msgstr "" +#: editor/find_in_files.cpp +msgid "" +"Include the files with the following extensions. Add or remove them in " +"ProjectSettings." +msgstr "" + #: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp msgid "Find..." @@ -3574,7 +3852,7 @@ msgid "Open Animation Node" msgstr "" #: editor/plugins/animation_blend_space_2d_editor.cpp -msgid "Triangle already exists" +msgid "Triangle already exists." msgstr "" #: editor/plugins/animation_blend_space_2d_editor.cpp @@ -3649,7 +3927,6 @@ msgid "Node Moved" msgstr "" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Unable to connect, port may be in use or connection may be invalid." msgstr "" @@ -3716,7 +3993,7 @@ msgid "Edit Filtered Tracks:" msgstr "" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -msgid "Enable filtering" +msgid "Enable Filtering" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp @@ -3831,10 +4108,6 @@ msgid "Animation" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "New" -msgstr "" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Edit Transitions..." msgstr "" @@ -3851,11 +4124,11 @@ msgid "Autoplay on Load" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Onion Skinning" +msgid "Enable Onion Skinning" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Enable Onion Skinning" +msgid "Onion Skinning Options" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp @@ -4395,13 +4668,19 @@ msgid "Move CanvasItem" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"Children of containers have their anchors and margins values overridden by " +"their parent." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Presets for the anchors and margins values of a Control node." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "" -"Children of containers have their anchors and margins values overridden by " -"their parent." +"When active, moving Control nodes changes their anchors instead of their " +"margins." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4417,10 +4696,46 @@ msgid "Change Anchors" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Lock Selected" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Unlock Selected" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Group Selected" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +msgid "Ungroup Selected" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Paste Pose" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Create Custom Bone(s) from Node(s)" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Clear Bones" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Make IK Chain" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Clear IK Chain" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "" "Warning: Children of a container get their position and size determined only " "by their parent." @@ -4492,7 +4807,7 @@ msgid "Snapping Options" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to grid" +msgid "Snap to Grid" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4513,31 +4828,31 @@ msgid "Use Pixel Snap" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Smart snapping" +msgid "Smart Snapping" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to parent" +msgid "Snap to Parent" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node anchor" +msgid "Snap to Node Anchor" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node sides" +msgid "Snap to Node Sides" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node center" +msgid "Snap to Node Center" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to other nodes" +msgid "Snap to Other Nodes" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to guides" +msgid "Snap to Guides" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4551,10 +4866,12 @@ msgid "Unlock the selected object (can be moved)." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Makes sure the object's children are not selectable." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Restores the object's children's ability to be selected." msgstr "" @@ -4567,14 +4884,6 @@ msgid "Show Bones" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Make IK Chain" -msgstr "" - -#: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Clear IK Chain" -msgstr "" - -#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Make Custom Bone(s) from Node(s)" msgstr "" @@ -4625,7 +4934,7 @@ msgid "Frame Selection" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Layout" +msgid "Preview Canvas Scale" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4677,6 +4986,10 @@ msgid "Divide grid step by 2" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Pan View" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Add %s" msgstr "" @@ -4699,7 +5012,7 @@ msgid "Error instancing scene from %s" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Change default type" +msgid "Change Default Type" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4785,19 +5098,19 @@ msgid "Create Emission Points From Node" msgstr "" #: editor/plugins/curve_editor_plugin.cpp -msgid "Flat0" +msgid "Flat 0" msgstr "" #: editor/plugins/curve_editor_plugin.cpp -msgid "Flat1" +msgid "Flat 1" msgstr "" -#: editor/plugins/curve_editor_plugin.cpp -msgid "Ease in" +#: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp +msgid "Ease In" msgstr "" -#: editor/plugins/curve_editor_plugin.cpp -msgid "Ease out" +#: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp +msgid "Ease Out" msgstr "" #: editor/plugins/curve_editor_plugin.cpp @@ -4817,23 +5130,23 @@ msgid "Load Curve Preset" msgstr "" #: editor/plugins/curve_editor_plugin.cpp -msgid "Add point" +msgid "Add Point" msgstr "" #: editor/plugins/curve_editor_plugin.cpp -msgid "Remove point" +msgid "Remove Point" msgstr "" #: editor/plugins/curve_editor_plugin.cpp -msgid "Left linear" +msgid "Left Linear" msgstr "" #: editor/plugins/curve_editor_plugin.cpp -msgid "Right linear" +msgid "Right Linear" msgstr "" #: editor/plugins/curve_editor_plugin.cpp -msgid "Load preset" +msgid "Load Preset" msgstr "" #: editor/plugins/curve_editor_plugin.cpp @@ -4889,11 +5202,15 @@ msgid "This doesn't work on scene root!" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Trimesh Shape" +msgid "Create Trimesh Static Shape" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Shape" +msgid "Failed creating shapes!" +msgstr "" + +#: editor/plugins/mesh_instance_editor_plugin.cpp +msgid "Create Convex Shape(s)" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp @@ -4946,15 +5263,11 @@ msgid "Create Trimesh Static Body" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Static Body" -msgstr "" - -#: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Trimesh Collision Sibling" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Collision Sibling" +msgid "Create Convex Collision Sibling(s)" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp @@ -5108,20 +5421,20 @@ msgid "Create Navigation Polygon" msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp -msgid "Generating Visibility Rect" +#: editor/plugins/particles_editor_plugin.cpp +msgid "Convert to CPUParticles" msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp -msgid "Generate Visibility Rect" +msgid "Generating Visibility Rect" msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp -msgid "Can only set point into a ParticlesMaterial process material" +msgid "Generate Visibility Rect" msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp -#: editor/plugins/particles_editor_plugin.cpp -msgid "Convert to CPUParticles" +msgid "Can only set point into a ParticlesMaterial process material" msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp @@ -5263,7 +5576,7 @@ msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp editor/plugins/theme_editor_plugin.cpp -#: editor/project_export.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_export.cpp msgid "Options" msgstr "" @@ -5314,7 +5627,7 @@ msgid "Split Segment (in curve)" msgstr "" #: editor/plugins/physical_bone_plugin.cpp -msgid "Move joint" +msgid "Move Joint" msgstr "" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5547,7 +5860,6 @@ msgid "Open in Editor" msgstr "" #: editor/plugins/resource_preloader_editor_plugin.cpp -#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Load Resource" msgstr "" @@ -5636,6 +5948,11 @@ msgid "%s Class Reference" msgstr "" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp +msgid "Find Next" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp msgid "Toggle alphabetical sorting of the method list." msgstr "" @@ -5716,10 +6033,6 @@ msgstr "" msgid "Close All" msgstr "" -#: editor/plugins/script_editor_plugin.cpp -msgid "Close Other Tabs" -msgstr "" - #: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp msgid "Run" msgstr "" @@ -5728,11 +6041,6 @@ msgstr "" msgid "Toggle Scripts Panel" msgstr "" -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/script_text_editor.cpp -msgid "Find Next" -msgstr "" - #: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp msgid "Step Over" msgstr "" @@ -5759,7 +6067,7 @@ msgid "Debug with External Editor" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Open Godot online documentation" +msgid "Open Godot online documentation." msgstr "" #: editor/plugins/script_editor_plugin.cpp @@ -5767,7 +6075,7 @@ msgid "Request Docs" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Help improve the Godot documentation by giving feedback" +msgid "Help improve the Godot documentation by giving feedback." msgstr "" #: editor/plugins/script_editor_plugin.cpp @@ -5793,10 +6101,12 @@ msgid "" msgstr "" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp msgid "Reload" msgstr "" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp msgid "Resave" msgstr "" @@ -5809,6 +6119,27 @@ msgid "Search Results" msgstr "" #: editor/plugins/script_text_editor.cpp +msgid "Connections to method:" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Source" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Signal" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Target" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "" +"Missing connected method '%s' for signal '%s' from node '%s' to node '%s'." +msgstr "" + +#: editor/plugins/script_text_editor.cpp msgid "Line" msgstr "" @@ -5820,10 +6151,6 @@ msgstr "" msgid "Go to Function" msgstr "" -#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp -msgid "Standard" -msgstr "" - #: editor/plugins/script_text_editor.cpp msgid "Only resources from filesystem can be dropped." msgstr "" @@ -5856,6 +6183,11 @@ msgstr "" msgid "Syntax Highlighter" msgstr "" +#: editor/plugins/script_text_editor.cpp +#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp +msgid "Bookmarks" +msgstr "" + #: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" @@ -5883,6 +6215,22 @@ msgid "Toggle Comment" msgstr "" #: editor/plugins/script_text_editor.cpp +msgid "Toggle Bookmark" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Go to Next Bookmark" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Go to Previous Bookmark" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Remove All Bookmarks" +msgstr "" + +#: editor/plugins/script_text_editor.cpp msgid "Fold/Unfold Line" msgstr "" @@ -5956,6 +6304,12 @@ msgid "Contextual Help" msgstr "" #: editor/plugins/shader_editor_plugin.cpp +msgid "" +"This shader has been modified on on disk.\n" +"What action should be taken?" +msgstr "" + +#: editor/plugins/shader_editor_plugin.cpp msgid "Shader" msgstr "" @@ -6293,7 +6647,7 @@ msgid "Right View" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Switch Perspective/Orthogonal view" +msgid "Switch Perspective/Orthogonal View" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp @@ -6333,11 +6687,12 @@ msgid "Toggle Freelook" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Transform" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Snap object to floor" +msgid "Snap Object to Floor" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp @@ -6478,35 +6833,35 @@ msgid "Invalid geometry, can't replace by mesh." msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Invalid geometry, can't create polygon." +msgid "Convert to Mesh2D" msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Invalid geometry, can't create collision polygon." +msgid "Invalid geometry, can't create polygon." msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Invalid geometry, can't create light occluder." +msgid "Convert to Polygon2D" msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Sprite" +msgid "Invalid geometry, can't create collision polygon." msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Convert to Mesh2D" +msgid "Create CollisionPolygon2D Sibling" msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Convert to Polygon2D" +msgid "Invalid geometry, can't create light occluder." msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Create CollisionPolygon2D Sibling" +msgid "Create LightOccluder2D Sibling" msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Create LightOccluder2D Sibling" +msgid "Sprite" msgstr "" #: editor/plugins/sprite_editor_plugin.cpp @@ -6526,7 +6881,11 @@ msgid "Settings:" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "ERROR: Couldn't load frame resource!" +msgid "No Frames Selected" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Add %d Frame(s)" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp @@ -6534,6 +6893,10 @@ msgid "Add Frame" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "ERROR: Couldn't load frame resource!" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Resource clipboard is empty or not a texture!" msgstr "" @@ -6574,6 +6937,14 @@ msgid "Animation Frames:" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Add a Texture from File" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Add Frames from a Sprite Sheet" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Insert Empty (Before)" msgstr "" @@ -6590,6 +6961,26 @@ msgid "Move (After)" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Select Frames" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Horizontal:" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Vertical:" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Select/Clear All Frames" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Create Frames from Sprite Sheet" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "SpriteFrames" msgstr "" @@ -6654,12 +7045,12 @@ msgstr "" msgid "Remove All Items" msgstr "" -#: editor/plugins/theme_editor_plugin.cpp +#: editor/plugins/theme_editor_plugin.cpp editor/project_manager.cpp msgid "Remove All" msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "Edit theme..." +msgid "Edit Theme" msgstr "" #: editor/plugins/theme_editor_plugin.cpp @@ -6687,11 +7078,11 @@ msgid "Create From Current Editor Theme" msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "CheckBox Radio1" +msgid "Toggle Button" msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "CheckBox Radio2" +msgid "Disabled Button" msgstr "" #: editor/plugins/theme_editor_plugin.cpp @@ -6699,6 +7090,10 @@ msgid "Item" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +msgid "Disabled Item" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Check Item" msgstr "" @@ -6715,6 +7110,22 @@ msgid "Checked Radio Item" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +msgid "Named Sep." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Submenu" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Item 1" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Item 2" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Has" msgstr "" @@ -6723,7 +7134,7 @@ msgid "Many" msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "Has,Many,Options" +msgid "Disabled LineEdit" msgstr "" #: editor/plugins/theme_editor_plugin.cpp @@ -6739,6 +7150,18 @@ msgid "Tab 3" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +msgid "Editable Item" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Subtree" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Has,Many,Options" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Data Type:" msgstr "" @@ -6771,6 +7194,7 @@ msgid "Fix Invalid Tiles" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp +#: modules/gridmap/grid_map_editor_plugin.cpp msgid "Cut Selection" msgstr "" @@ -6811,35 +7235,45 @@ msgid "Mirror Y" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp +msgid "Disable Autotile" +msgstr "" + +#: editor/plugins/tile_map_editor_plugin.cpp +msgid "Enable Priority" +msgstr "" + +#: editor/plugins/tile_map_editor_plugin.cpp msgid "Paint Tile" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Pick Tile" +msgid "" +"Shift+RMB: Line Draw\n" +"Shift+Ctrl+RMB: Rectangle Paint" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Copy Selection" +msgid "Pick Tile" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Rotate left" +msgid "Rotate Left" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Rotate right" +msgid "Rotate Right" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Flip horizontally" +msgid "Flip Horizontally" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Flip vertically" +msgid "Flip Vertically" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Clear transform" +msgid "Clear Transform" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp @@ -6875,6 +7309,38 @@ msgid "Select the previous shape, subtile, or Tile." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp +msgid "Region Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Collision Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Occlusion Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Navigation Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Bitmask Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Priority Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Icon Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Z Index Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp msgid "Copy bitmask." msgstr "" @@ -6954,6 +7420,7 @@ msgstr "" msgid "" "LMB: Set bit on.\n" "RMB: Set bit off.\n" +"Shift+LMB: Set wildcard bit.\n" "Click on another Tile to edit it." msgstr "" @@ -7061,6 +7528,66 @@ msgid "TileSet" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add input +" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add output +" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add input port" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add output port" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Change input port type" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Change output port type" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Change input port name" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Change output port name" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Remove input port" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Remove output port" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Set expression" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Resize VisualShader node" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Set Uniform Name" msgstr "" @@ -7097,6 +7624,837 @@ msgid "Light" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Create Shader Node" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Color function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Color operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Grayscale function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts HSV vector to RGB equivalent." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts RGB vector to HSV equivalent." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Sepia function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Burn operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Darken operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Difference operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Dodge operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "HardLight operator" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Lighten operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Overlay operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Screen operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "SoftLight operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Color constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Color uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns an associated vector if the provided scalars are equal, greater or " +"less." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns an associated vector if the provided boolean value is true or false." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'camera' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'inv_camera' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'inv_projection' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'normal' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'projection' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'time' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'viewport_size' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'world' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'texture_pixel_size' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Input parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'binormal' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'fragcoord' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_coord' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_uv' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'side' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'tangent' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv2' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'vertex' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'view' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'albedo' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'attenuation' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'diffuse' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_color' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'roughness' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'specular' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'transmission' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'modelview' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_size' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'tangent' input parameter for vertex and fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_pass' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_coord' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_pixel_size' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_uv' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_alpha' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_height' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_uv' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_vec' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'normal' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'shadow_color' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'extra' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'projection' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'vertex' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'world' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'active' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'custom' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'custom_alpha' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'delta' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'emission_transform' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'index' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'lifetime' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'restart' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'time' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'transform' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'velocity' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Scalar function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Scalar operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "E constant (2.718282). Represents the base of the natural logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Epsilon constant (0.00001). Smallest possible scalar number." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Phi constant (1.618034). Golden ratio." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi/4 constant (0.785398) or 45 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi/2 constant (1.570796) or 90 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi constant (3.141593) or 180 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Tau constant (6.283185) or 360 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Sqrt2 constant (1.414214). Square root of 2." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the absolute value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-tangent of the parameters." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Finds the nearest integer that is greater than or equal to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Constrains a value to lie between two further values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts a quantity in radians to degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-e Exponential." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-2 Exponential." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Finds the nearest integer less than or equal to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Computes the fractional part of the argument." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the inverse of the square root of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Natural logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-2 logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the greater of two values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the lesser of two values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Linear interpolation between two scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the opposite value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 - scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns the value of the first parameter raised to the power of the second." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts a quantity in degrees to radians." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 / scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the nearest integer to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the nearest even integer to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Clamps the value between 0.0 and 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Extracts the sign of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the square root of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( scalar(edge0), scalar(edge1), scalar(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if x is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( scalar(edge), scalar(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the truncated value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Adds scalar to scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Divides scalar by scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies scalar by scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the remainder of the two scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Subtracts scalar from scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Scalar constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Scalar uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Perform the cubic texture lookup." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Perform the texture lookup." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Cubic texture uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "2D texture uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Transform function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) Calculate the outer product of a pair of vectors.\n" +"\n" +"OuterProduct treats the first parameter 'c' as a column vector (matrix with " +"one column) and the second parameter 'r' as a row vector (matrix with one " +"row) and does a linear algebraic matrix multiply 'c * r', yielding a matrix " +"whose number of rows is the number of components in 'c' and whose number of " +"columns is the number of components in 'r'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Composes transform from four vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Decomposes transform to four vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the determinant of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the inverse of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the transpose of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies transform by transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies vector by transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Transform constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Transform uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Composes vector from three scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Decomposes vector to three scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the cross product of two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the distance between two points." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the dot product of two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns a vector that points in the same direction as a reference vector. " +"The function has three vector parameters : N, the vector to orient, I, the " +"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 "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the length of a vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Linear interpolation between two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the normalize product of vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 - vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 / vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns a vector that points in the direction of reflection ( a : incident " +"vector, b : normal vector )." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns a vector that points in the direction of refraction." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( vector(edge0), vector(edge1), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if 'x' is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( scalar(edge0), scalar(edge1), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if 'x' is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( vector(edge), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( scalar(edge), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Adds vector to vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Divides vector by vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies vector by vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the remainder of the two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Subtracts vector from vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Custom Godot Shader Language expression, with custom amount of input and " +"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 "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns falloff based on the dot product of surface normal and view " +"direction of camera (pass associated inputs to it)." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) (Fragment/Light mode only) Scalar derivative function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) (Fragment/Light mode only) Vector derivative function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Derivative in 'x' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Derivative in 'x' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Derivative in 'y' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Derivative in 'y' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Sum of absolute derivative " +"in 'x' and 'y'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Sum of absolute derivative " +"in 'x' and 'y'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "VisualShader" msgstr "" @@ -7284,6 +8642,10 @@ msgid "Directory already contains a Godot project." msgstr "" #: editor/project_manager.cpp +msgid "New Game Project" +msgstr "" + +#: editor/project_manager.cpp msgid "Imported Project" msgstr "" @@ -7330,10 +8692,6 @@ msgid "Rename Project" msgstr "" #: editor/project_manager.cpp -msgid "New Game Project" -msgstr "" - -#: editor/project_manager.cpp msgid "Import Existing Project" msgstr "" @@ -7362,10 +8720,6 @@ msgid "Project Name:" msgstr "" #: editor/project_manager.cpp -msgid "Create folder" -msgstr "" - -#: editor/project_manager.cpp msgid "Project Path:" msgstr "" @@ -7374,10 +8728,6 @@ msgid "Project Installation Path:" msgstr "" #: editor/project_manager.cpp -msgid "Browse" -msgstr "" - -#: editor/project_manager.cpp msgid "Renderer:" msgstr "" @@ -7430,8 +8780,8 @@ msgid "" "\n" "If you proceed with opening it, it will be converted to Godot's current " "configuration file format.\n" -"Warning: You will not be able to open the project with previous versions of " -"the engine anymore." +"Warning: You won't be able to open the project with previous versions of the " +"engine anymore." msgstr "" #: editor/project_manager.cpp @@ -7442,8 +8792,8 @@ msgid "" "%s\n" "\n" "Do you want to convert it?\n" -"Warning: You will not be able to open the project with previous versions of " -"the engine anymore." +"Warning: You won't be able to open the project with previous versions of the " +"engine anymore." msgstr "" #: editor/project_manager.cpp @@ -7455,7 +8805,7 @@ msgstr "" #: editor/project_manager.cpp msgid "" "Can't run project: no main scene defined.\n" -"Please edit the project and set the main scene in \"Project Settings\" under " +"Please edit the project and set the main scene in the Project Settings under " "the \"Application\" category." msgstr "" @@ -7466,23 +8816,37 @@ msgid "" msgstr "" #: editor/project_manager.cpp -msgid "Are you sure to run more than one project?" +msgid "Are you sure to run %d projects at once?" +msgstr "" + +#: editor/project_manager.cpp +msgid "" +"Remove %d projects from the list?\n" +"The project folders' contents won't be modified." +msgstr "" + +#: editor/project_manager.cpp +msgid "" +"Remove this project from the list?\n" +"The project folder's contents won't be modified." msgstr "" #: editor/project_manager.cpp -msgid "Remove project from the list? (Folder contents will not be modified)" +msgid "" +"Remove all missing projects from the list? (Folders contents will not be " +"modified)" msgstr "" #: editor/project_manager.cpp msgid "" "Language changed.\n" -"The UI will update next time the editor or project manager starts." +"The interface will update after restarting the editor or project manager." msgstr "" #: editor/project_manager.cpp msgid "" -"You are about the scan %s folders for existing Godot projects. Do you " -"confirm?" +"Are you sure to scan %s folders for existing Godot projects?\n" +"This could take a while." msgstr "" #: editor/project_manager.cpp @@ -7506,6 +8870,10 @@ msgid "New Project" msgstr "" #: editor/project_manager.cpp +msgid "Remove Missing" +msgstr "" + +#: editor/project_manager.cpp msgid "Templates" msgstr "" @@ -7523,8 +8891,8 @@ msgstr "" #: editor/project_manager.cpp msgid "" -"You don't currently have any projects.\n" -"Would you like to explore the official example projects in the Asset Library?" +"You currently don't have any projects.\n" +"Would you like to explore official example projects in the Asset Library?" msgstr "" #: editor/project_settings_editor.cpp @@ -7550,7 +8918,7 @@ msgid "" msgstr "" #: editor/project_settings_editor.cpp -msgid "Action '%s' already exists!" +msgid "An action with the name '%s' already exists." msgstr "" #: editor/project_settings_editor.cpp @@ -7704,10 +9072,6 @@ msgid "" msgstr "" #: editor/project_settings_editor.cpp -msgid "Already existing" -msgstr "" - -#: editor/project_settings_editor.cpp msgid "Add Input Action" msgstr "" @@ -7772,7 +9136,7 @@ msgid "Override For..." msgstr "" #: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp -msgid "Editor must be restarted for changes to take effect" +msgid "The editor must be restarted for changes to take effect." msgstr "" #: editor/project_settings_editor.cpp @@ -7832,11 +9196,11 @@ msgid "Locales Filter" msgstr "" #: editor/project_settings_editor.cpp -msgid "Show all locales" +msgid "Show All Locales" msgstr "" #: editor/project_settings_editor.cpp -msgid "Show only selected locales" +msgid "Show Selected Locales Only" msgstr "" #: editor/project_settings_editor.cpp @@ -7852,14 +9216,6 @@ msgid "AutoLoad" msgstr "" #: editor/property_editor.cpp -msgid "Ease In" -msgstr "" - -#: editor/property_editor.cpp -msgid "Ease Out" -msgstr "" - -#: editor/property_editor.cpp msgid "Zero" msgstr "" @@ -7932,7 +9288,7 @@ msgid "Suffix" msgstr "" #: editor/rename_dialog.cpp -msgid "Advanced options" +msgid "Advanced Options" msgstr "" #: editor/rename_dialog.cpp @@ -8184,7 +9540,7 @@ msgid "User Interface" msgstr "" #: editor/scene_tree_dock.cpp -msgid "Custom Node" +msgid "Other Node" msgstr "" #: editor/scene_tree_dock.cpp @@ -8226,7 +9582,7 @@ msgid "Clear Inheritance" msgstr "" #: editor/scene_tree_dock.cpp -msgid "Open documentation" +msgid "Open Documentation" msgstr "" #: editor/scene_tree_dock.cpp @@ -8253,7 +9609,7 @@ msgstr "" msgid "Save Branch as Scene" msgstr "" -#: editor/scene_tree_dock.cpp +#: editor/scene_tree_dock.cpp editor/script_editor_debugger.cpp msgid "Copy Node Path" msgstr "" @@ -8296,6 +9652,18 @@ msgid "Toggle Visible" msgstr "" #: editor/scene_tree_editor.cpp +msgid "Unlock Node" +msgstr "" + +#: editor/scene_tree_editor.cpp +msgid "Button Group" +msgstr "" + +#: editor/scene_tree_editor.cpp +msgid "(Connecting From)" +msgstr "" + +#: editor/scene_tree_editor.cpp msgid "Node configuration warning:" msgstr "" @@ -8317,8 +9685,8 @@ msgid "" "Click to show groups dock." msgstr "" -#: editor/scene_tree_editor.cpp editor/script_create_dialog.cpp -msgid "Open Script" +#: editor/scene_tree_editor.cpp +msgid "Open Script:" msgstr "" #: editor/scene_tree_editor.cpp @@ -8364,71 +9732,71 @@ msgid "Select a Node" msgstr "" #: editor/script_create_dialog.cpp -msgid "Error loading template '%s'" +msgid "Path is empty." msgstr "" #: editor/script_create_dialog.cpp -msgid "Error - Could not create script in filesystem." +msgid "Filename is empty." msgstr "" #: editor/script_create_dialog.cpp -msgid "Error loading script from %s" +msgid "Path is not local." msgstr "" #: editor/script_create_dialog.cpp -msgid "N/A" +msgid "Invalid base path." msgstr "" #: editor/script_create_dialog.cpp -msgid "Open Script/Choose Location" +msgid "A directory with the same name exists." msgstr "" #: editor/script_create_dialog.cpp -msgid "Path is empty" +msgid "Invalid extension." msgstr "" #: editor/script_create_dialog.cpp -msgid "Filename is empty" +msgid "Wrong extension chosen." msgstr "" #: editor/script_create_dialog.cpp -msgid "Path is not local" +msgid "Error loading template '%s'" msgstr "" #: editor/script_create_dialog.cpp -msgid "Invalid base path" +msgid "Error - Could not create script in filesystem." msgstr "" #: editor/script_create_dialog.cpp -msgid "Directory of the same name exists" +msgid "Error loading script from %s" msgstr "" #: editor/script_create_dialog.cpp -msgid "File exists, will be reused" +msgid "N/A" msgstr "" #: editor/script_create_dialog.cpp -msgid "Invalid extension" +msgid "Open Script / Choose Location" msgstr "" #: editor/script_create_dialog.cpp -msgid "Wrong extension chosen" +msgid "Open Script" msgstr "" #: editor/script_create_dialog.cpp -msgid "Invalid Path" +msgid "File exists, it will be reused." msgstr "" #: editor/script_create_dialog.cpp -msgid "Invalid class name" +msgid "Invalid class name." msgstr "" #: editor/script_create_dialog.cpp -msgid "Invalid inherited parent name or path" +msgid "Invalid inherited parent name or path." msgstr "" #: editor/script_create_dialog.cpp -msgid "Script valid" +msgid "Script is valid." msgstr "" #: editor/script_create_dialog.cpp @@ -8436,15 +9804,15 @@ msgid "Allowed: a-z, A-Z, 0-9 and _" msgstr "" #: editor/script_create_dialog.cpp -msgid "Built-in script (into scene file)" +msgid "Built-in script (into scene file)." msgstr "" #: editor/script_create_dialog.cpp -msgid "Create new script file" +msgid "Will create a new script file." msgstr "" #: editor/script_create_dialog.cpp -msgid "Load existing script file" +msgid "Will load an existing script file." msgstr "" #: editor/script_create_dialog.cpp @@ -8575,6 +9943,10 @@ msgstr "" msgid "Set From Tree" msgstr "" +#: editor/script_editor_debugger.cpp +msgid "Export measures as CSV" +msgstr "" + #: editor/settings_config_dialog.cpp msgid "Erase Shortcut" msgstr "" @@ -8704,6 +10076,14 @@ msgid "GDNativeLibrary" msgstr "" #: modules/gdnative/gdnative_library_singleton_editor.cpp +msgid "Enabled GDNative Singleton" +msgstr "" + +#: modules/gdnative/gdnative_library_singleton_editor.cpp +msgid "Disabled GDNative Singleton" +msgstr "" + +#: modules/gdnative/gdnative_library_singleton_editor.cpp msgid "Library" msgstr "" @@ -8788,7 +10168,7 @@ msgid "GridMap Fill Selection" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "GridMap Duplicate Selection" +msgid "GridMap Paste Selection" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp @@ -8856,18 +10236,6 @@ msgid "Cursor Clear Rotation" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Create Area" -msgstr "" - -#: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Create Exterior Connector" -msgstr "" - -#: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Erase Area" -msgstr "" - -#: modules/gridmap/grid_map_editor_plugin.cpp msgid "Clear Selection" msgstr "" @@ -9218,15 +10586,7 @@ msgid "Available Nodes:" msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Select or create a function to edit graph" -msgstr "" - -#: modules/visual_script/visual_script_editor.cpp -msgid "Edit Signal Arguments:" -msgstr "" - -#: modules/visual_script/visual_script_editor.cpp -msgid "Edit Variable:" +msgid "Select or create a function to edit its graph." msgstr "" #: modules/visual_script/visual_script_editor.cpp @@ -9356,6 +10716,19 @@ msgid "Debug keystore not configured in the Editor Settings nor in the preset." msgstr "" #: platform/android/export/export.cpp +msgid "Custom build requires a valid Android SDK path in Editor Settings." +msgstr "" + +#: platform/android/export/export.cpp +msgid "Invalid Android SDK path for custom build in Editor Settings." +msgstr "" + +#: platform/android/export/export.cpp +msgid "" +"Android project is not installed for compiling. Install from Editor menu." +msgstr "" + +#: platform/android/export/export.cpp msgid "Invalid public key for APK expansion." msgstr "" @@ -9363,6 +10736,34 @@ msgstr "" msgid "Invalid package name:" msgstr "" +#: platform/android/export/export.cpp +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 "" +"Android build version mismatch:\n" +" Template installed: %s\n" +" Godot Version: %s\n" +"Please reinstall Android build template from 'Project' menu." +msgstr "" + +#: platform/android/export/export.cpp +msgid "Building Android Project (gradle)" +msgstr "" + +#: 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 "" + +#: platform/android/export/export.cpp +msgid "No build apk generated at: " +msgstr "" + #: platform/iphone/export/export.cpp msgid "Identifier is missing." msgstr "" @@ -9615,27 +11016,27 @@ msgid "ARVRCamera must have an ARVROrigin node as its parent" msgstr "" #: scene/3d/arvr_nodes.cpp -msgid "ARVRController must have an ARVROrigin node as its parent" +msgid "ARVRController must have an ARVROrigin node as its parent." msgstr "" #: scene/3d/arvr_nodes.cpp msgid "" -"The controller id must not be 0 or this controller will not be bound to an " -"actual controller" +"The controller ID must not be 0 or this controller won't be bound to an " +"actual controller." msgstr "" #: scene/3d/arvr_nodes.cpp -msgid "ARVRAnchor must have an ARVROrigin node as its parent" +msgid "ARVRAnchor must have an ARVROrigin node as its parent." msgstr "" #: scene/3d/arvr_nodes.cpp msgid "" -"The anchor id must not be 0 or this anchor will not be bound to an actual " -"anchor" +"The anchor ID must not be 0 or this anchor won't be bound to an actual " +"anchor." msgstr "" #: scene/3d/arvr_nodes.cpp -msgid "ARVROrigin requires an ARVRCamera child node" +msgid "ARVROrigin requires an ARVRCamera child node." msgstr "" #: scene/3d/baked_lightmap.cpp @@ -9705,8 +11106,8 @@ msgstr "" #: scene/3d/cpu_particles.cpp msgid "" -"CPUParticles animation requires the usage of a SpatialMaterial with " -"\"Billboard Particles\" enabled." +"CPUParticles animation requires the usage of a SpatialMaterial whose " +"Billboard Mode is set to \"Particle Billboard\"." msgstr "" #: scene/3d/gi_probe.cpp @@ -9743,8 +11144,8 @@ msgstr "" #: scene/3d/particles.cpp msgid "" -"Particles animation requires the usage of a SpatialMaterial with \"Billboard " -"Particles\" enabled." +"Particles animation requires the usage of a SpatialMaterial whose Billboard " +"Mode is set to \"Particle Billboard\"." msgstr "" #: scene/3d/path.cpp @@ -9769,7 +11170,7 @@ msgid "Path property must point to a valid Spatial node to work." msgstr "" #: scene/3d/soft_body.cpp -msgid "This body will be ignored until you set a mesh" +msgid "This body will be ignored until you set a mesh." msgstr "" #: scene/3d/soft_body.cpp @@ -9866,7 +11267,7 @@ msgstr "" msgid "" "Container by itself serves no purpose unless a script configures it's " "children placement behavior.\n" -"If you dont't intend to add a script, then please use a plain 'Control' node " +"If you don't intend to add a script, then please use a plain 'Control' node " "instead." msgstr "" @@ -9878,10 +11279,6 @@ msgstr "" msgid "Please Confirm..." msgstr "" -#: scene/gui/file_dialog.cpp -msgid "Go to parent folder." -msgstr "" - #: scene/gui/popup.cpp msgid "" "Popups will hide by default unless you call popup() or any of the popup*() " @@ -9953,3 +11350,7 @@ msgstr "" #: servers/visual/shader_language.cpp msgid "Varyings can only be assigned in vertex function." msgstr "" + +#: servers/visual/shader_language.cpp +msgid "Constants cannot be modified." +msgstr "" diff --git a/editor/translations/th.po b/editor/translations/th.po index 5b1470e970..0407a59452 100644 --- a/editor/translations/th.po +++ b/editor/translations/th.po @@ -77,6 +77,15 @@ msgstr "" msgid "Mirror" msgstr "สะท้à¸à¸™à¸‹à¹‰à¸²à¸¢à¸‚วา" +#: editor/animation_bezier_editor.cpp editor/editor_profiler.cpp +msgid "Time:" +msgstr "เวลา:" + +#: editor/animation_bezier_editor.cpp +#, fuzzy +msgid "Value:" +msgstr "ค่า" + #: editor/animation_bezier_editor.cpp #, fuzzy msgid "Insert Key Here" @@ -169,16 +178,21 @@ msgstr "หยุดà¸à¸²à¸£à¹€à¸¥à¹ˆà¸™à¹à¸à¸™à¸´à¹€à¸¡à¸Šà¸±à¸™ (S)" #: editor/animation_track_editor.cpp #, fuzzy -msgid "Add Track" -msgstr "เพิ่มà¹à¸—ร็à¸à¹à¸à¸™à¸´à¹€à¸¡à¸Šà¸±à¸™" +msgid "Animation length (frames)" +msgstr "ความยาวà¹à¸à¸™à¸´à¹€à¸¡à¸Šà¸±à¸™ (วินาที)" #: editor/animation_track_editor.cpp #, fuzzy -msgid "Animation Length Time (seconds)" +msgid "Animation length (seconds)" msgstr "ความยาวà¹à¸à¸™à¸´à¹€à¸¡à¸Šà¸±à¸™ (วินาที)" #: editor/animation_track_editor.cpp #, fuzzy +msgid "Add Track" +msgstr "เพิ่มà¹à¸—ร็à¸à¹à¸à¸™à¸´à¹€à¸¡à¸Šà¸±à¸™" + +#: editor/animation_track_editor.cpp +#, fuzzy msgid "Animation Looping" msgstr "ซูมà¹à¸à¸™à¸´à¹€à¸¡à¸Šà¸±à¸™" @@ -316,11 +330,13 @@ msgid "Create %d NEW tracks and insert keys?" msgstr "เพิ่ม %d à¹à¸—ร็à¸à¹ƒà¸«à¸¡à¹ˆà¹à¸¥à¸°à¹€à¸žà¸´à¹ˆà¸¡à¸„ีย์?" #: editor/animation_track_editor.cpp editor/create_dialog.cpp -#: editor/editor_audio_buses.cpp editor/editor_plugin_settings.cpp -#: editor/plugin_config_dialog.cpp +#: editor/editor_audio_buses.cpp editor/editor_feature_profile.cpp +#: editor/editor_plugin_settings.cpp editor/plugin_config_dialog.cpp #: editor/plugins/abstract_polygon_2d_editor.cpp #: editor/plugins/mesh_instance_editor_plugin.cpp -#: editor/plugins/particles_editor_plugin.cpp editor/script_create_dialog.cpp +#: editor/plugins/particles_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_create_dialog.cpp msgid "Create" msgstr "สร้าง" @@ -439,6 +455,23 @@ msgid "" msgstr "" #: editor/animation_track_editor.cpp +msgid "" +"This animation belongs to an imported scene, so changes to imported tracks " +"will not be saved.\n" +"\n" +"To enable the ability to add custom tracks, navigate to the scene's import " +"settings and set\n" +"\"Animation > Storage\" to \"Files\", enable \"Animation > Keep Custom Tracks" +"\", then re-import.\n" +"Alternatively, use an import preset that imports animations to separate " +"files." +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Warning: Editing imported animation" +msgstr "" + +#: editor/animation_track_editor.cpp msgid "Only show tracks from nodes selected in tree." msgstr "" @@ -578,7 +611,8 @@ msgstr "à¸à¸±à¸•ราส่วนเวลา:" msgid "Select tracks to copy:" msgstr "" -#: editor/animation_track_editor.cpp editor/editor_properties.cpp +#: editor/animation_track_editor.cpp editor/editor_log.cpp +#: editor/editor_properties.cpp #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp @@ -647,6 +681,11 @@ msgstr "à¹à¸—นที่ทั้งหมด" msgid "Selection Only" msgstr "เฉพาะที่à¸à¸³à¸¥à¸±à¸‡à¹€à¸¥à¸·à¸à¸" +#: editor/code_editor.cpp editor/plugins/script_text_editor.cpp +#: editor/plugins/text_editor.cpp +msgid "Standard" +msgstr "" + #: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/texture_region_editor_plugin.cpp #: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp @@ -672,19 +711,37 @@ msgid "Line and column numbers." msgstr "" #: editor/connections_dialog.cpp -msgid "Method in target Node must be specified!" +#, fuzzy +msgid "Method in target node must be specified." msgstr "ต้à¸à¸‡à¸£à¸°à¸šà¸¸à¹€à¸¡à¸—็à¸à¸”ในโหนดปลายทาง!" #: editor/connections_dialog.cpp +#, fuzzy msgid "" -"Target method not found! Specify a valid method or attach a script to target " -"Node." +"Target method not found. Specify a valid method or attach a script to the " +"target node." msgstr "ไม่พบเมท็à¸à¸”ปลายทาง! ระบุเมท็à¸à¸”ให้ถูà¸à¸•้à¸à¸‡à¸«à¸£à¸·à¸à¹€à¸žà¸´à¹ˆà¸¡à¸ªà¸„ริปต์ในโหนดปลายทาง" #: editor/connections_dialog.cpp -msgid "Connect To Node:" +#, fuzzy +msgid "Connect to Node:" msgstr "เชื่à¸à¸¡à¹„ปยังโหนด:" +#: editor/connections_dialog.cpp +#, fuzzy +msgid "Connect to Script:" +msgstr "ไม่สามารถเชื่à¸à¸¡à¸•่à¸à¸à¸±à¸šà¹‚ฮสต์:" + +#: editor/connections_dialog.cpp +#, fuzzy +msgid "From Signal:" +msgstr "สัà¸à¸à¸²à¸“:" + +#: editor/connections_dialog.cpp +#, fuzzy +msgid "Scene does not contain any script." +msgstr "โหนดไม่มี geometry" + #: editor/connections_dialog.cpp editor/editor_autoload_settings.cpp #: editor/groups_editor.cpp editor/plugins/item_list_editor_plugin.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_settings_editor.cpp @@ -692,10 +749,12 @@ msgid "Add" msgstr "เพิ่ม" #: editor/connections_dialog.cpp editor/dependency_editor.cpp -#: editor/groups_editor.cpp editor/plugins/animation_player_editor_plugin.cpp +#: editor/editor_feature_profile.cpp editor/groups_editor.cpp +#: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp #: editor/plugins/resource_preloader_editor_plugin.cpp -#: editor/plugins/theme_editor_plugin.cpp editor/project_manager.cpp +#: editor/plugins/theme_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_manager.cpp #: editor/project_settings_editor.cpp msgid "Remove" msgstr "ลบ" @@ -709,21 +768,32 @@ msgid "Extra Call Arguments:" msgstr "ตัวà¹à¸›à¸£à¹€à¸žà¸´à¹ˆà¸¡à¹€à¸•ิม:" #: editor/connections_dialog.cpp -msgid "Path to Node:" -msgstr "ตำà¹à¸«à¸™à¹ˆà¸‡à¸—ี่à¸à¸¢à¸¹à¹ˆà¹‚หนด:" - -#: editor/connections_dialog.cpp -msgid "Make Function" -msgstr "สร้างฟังà¸à¹Œà¸Šà¸±à¸™" +#, fuzzy +msgid "Advanced" +msgstr "ตัวเลืà¸à¸à¸à¸²à¸£à¸ˆà¸³à¸à¸±à¸”" #: editor/connections_dialog.cpp msgid "Deferred" msgstr "เรียà¸à¸ ายหลัง" #: editor/connections_dialog.cpp +msgid "" +"Defers the signal, storing it in a queue and only firing it at idle time." +msgstr "" + +#: editor/connections_dialog.cpp msgid "Oneshot" msgstr "ครั้งเดียว" +#: editor/connections_dialog.cpp +msgid "Disconnects the signal after its first emission." +msgstr "" + +#: editor/connections_dialog.cpp +#, fuzzy +msgid "Cannot connect signal" +msgstr "เชื่à¸à¸¡à¹‚ยงสัà¸à¸à¸²à¸“:" + #: editor/connections_dialog.cpp editor/dependency_editor.cpp #: editor/export_template_manager.cpp editor/groups_editor.cpp #: editor/plugins/animation_player_editor_plugin.cpp @@ -766,12 +836,12 @@ msgstr "ลบà¸à¸²à¸£à¹€à¸Šà¸·à¹ˆà¸à¸¡à¹‚ยง" #: editor/connections_dialog.cpp #, fuzzy -msgid "Connect Signal: " +msgid "Connect a Signal to a Method" msgstr "เชื่à¸à¸¡à¹‚ยงสัà¸à¸à¸²à¸“:" #: editor/connections_dialog.cpp #, fuzzy -msgid "Edit Connection: " +msgid "Edit Connection:" msgstr "à¹à¸à¹‰à¹„ขà¸à¸²à¸£à¹€à¸Šà¸·à¹ˆà¸à¸¡à¹‚ยง" #: editor/connections_dialog.cpp @@ -807,7 +877,6 @@ msgid "Change %s Type" msgstr "เปลี่ยนประเภท %s" #: editor/create_dialog.cpp editor/project_settings_editor.cpp -#: modules/visual_script/visual_script_editor.cpp msgid "Change" msgstr "เปลี่ยน" @@ -838,7 +907,8 @@ msgid "Matches:" msgstr "พบ:" #: editor/create_dialog.cpp editor/plugin_config_dialog.cpp -#: editor/plugins/asset_library_editor_plugin.cpp editor/property_selector.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/property_selector.cpp #: modules/visual_script/visual_script_property_selector.cpp msgid "Description:" msgstr "รายละเà¸à¸µà¸¢à¸”:" @@ -852,17 +922,19 @@ msgid "Dependencies For:" msgstr "à¸à¸²à¸£à¸à¹‰à¸²à¸‡à¸à¸´à¸‡à¸‚à¸à¸‡:" #: editor/dependency_editor.cpp +#, fuzzy msgid "" "Scene '%s' is currently being edited.\n" -"Changes will not take effect unless reloaded." +"Changes will only take effect when reloaded." msgstr "" "ฉาภ'%s' à¸à¸³à¸¥à¸±à¸‡à¸–ูà¸à¹€à¸›à¸´à¸”à¹à¸à¹‰à¹„ข\n" "à¸à¸²à¸£à¹à¸à¹‰à¹„ขจะไม่ส่งผลจนà¸à¸§à¹ˆà¸²à¸ˆà¸°à¹‚หลดใหม่" #: editor/dependency_editor.cpp +#, fuzzy msgid "" "Resource '%s' is in use.\n" -"Changes will take effect when reloaded." +"Changes will only take effect when reloaded." msgstr "" "รีซà¸à¸£à¹Œà¸ª '%s' à¸à¸³à¸¥à¸±à¸‡à¸–ูà¸à¹ƒà¸Šà¹‰à¸‡à¸²à¸™\n" "à¸à¸²à¸£à¹à¸à¹‰à¹„ขจะไม่ส่งผลจนà¸à¸§à¹ˆà¸²à¸ˆà¸°à¹‚หลดใหม่" @@ -958,21 +1030,14 @@ msgid "Permanently delete %d item(s)? (No undo!)" msgstr "ลบ %d ไฟล์ถาวร? (ย้à¸à¸™à¸à¸¥à¸±à¸šà¹„ม่ได้!)" #: editor/dependency_editor.cpp -msgid "Owns" -msgstr "เป็นเจ้าขà¸à¸‡" - -#: editor/dependency_editor.cpp -msgid "Resources Without Explicit Ownership:" -msgstr "รีซà¸à¸£à¹Œà¸ªà¸—ี่ไม่มีเจ้าขà¸à¸‡à¸—ี่ชัดเจน:" +#, fuzzy +msgid "Show Dependencies" +msgstr "à¸à¸²à¸£à¸à¹‰à¸²à¸‡à¸à¸´à¸‡" #: editor/dependency_editor.cpp editor/editor_node.cpp msgid "Orphan Resource Explorer" msgstr "ตัวจัดà¸à¸²à¸£à¸£à¸µà¸‹à¸à¸£à¹Œà¸ªà¸—ี่ไม่มีเจ้าขà¸à¸‡" -#: editor/dependency_editor.cpp -msgid "Delete selected files?" -msgstr "ลบไฟล์ที่เลืà¸à¸?" - #: editor/dependency_editor.cpp editor/editor_audio_buses.cpp #: editor/editor_file_dialog.cpp editor/editor_node.cpp #: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp @@ -981,6 +1046,14 @@ msgstr "ลบไฟล์ที่เลืà¸à¸?" msgid "Delete" msgstr "ลบ" +#: editor/dependency_editor.cpp +msgid "Owns" +msgstr "เป็นเจ้าขà¸à¸‡" + +#: editor/dependency_editor.cpp +msgid "Resources Without Explicit Ownership:" +msgstr "รีซà¸à¸£à¹Œà¸ªà¸—ี่ไม่มีเจ้าขà¸à¸‡à¸—ี่ชัดเจน:" + #: editor/dictionary_property_edit.cpp msgid "Change Dictionary Key" msgstr "à¹à¸à¹‰à¹„ขคีย์ดิà¸à¸Šà¸±à¸™à¸™à¸²à¸£à¸µ" @@ -1094,7 +1167,7 @@ msgstr "ติดตั้งà¹à¸žà¸„เà¸à¸ˆà¹€à¸ªà¸£à¹‡à¸ˆà¸ªà¸¡à¸šà¸¹à¸£à¸“ msgid "Success!" msgstr "สำเร็จ!" -#: editor/editor_asset_installer.cpp +#: editor/editor_asset_installer.cpp editor/editor_node.cpp #: editor/plugins/asset_library_editor_plugin.cpp msgid "Install" msgstr "ติดตั้ง" @@ -1221,8 +1294,12 @@ msgid "Open Audio Bus Layout" msgstr "เปิดเลย์เà¸à¸²à¸•์ขà¸à¸‡ Audio Bus" #: editor/editor_audio_buses.cpp -msgid "There is no 'res://default_bus_layout.tres' file." -msgstr "ไม่พบไฟล์ 'res://default_bus_layout.tres'" +msgid "There is no '%s' file." +msgstr "" + +#: editor/editor_audio_buses.cpp editor/plugins/canvas_item_editor_plugin.cpp +msgid "Layout" +msgstr "เลย์เà¸à¸²à¸•์" #: editor/editor_audio_buses.cpp msgid "Invalid file, not an audio bus layout." @@ -1276,18 +1353,25 @@ msgid "Valid characters:" msgstr "ตัวà¸à¸±à¸à¸©à¸£à¸—ี่ใช้ได้:" #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing engine class name." +#, fuzzy +msgid "Must not collide with an existing engine class name." msgstr "ชื่à¸à¸œà¸´à¸”พลาด ต้à¸à¸‡à¹„ม่ใช้ชื่à¸à¹€à¸”ียวà¸à¸±à¸šà¸„ลาสขà¸à¸‡à¹‚ปรà¹à¸à¸£à¸¡" #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing buit-in type name." +#, fuzzy +msgid "Must not collide with an existing buit-in type name." msgstr "ชื่à¸à¸œà¸´à¸”พลาด ต้à¸à¸‡à¹„ม่ใช้ชื่à¸à¹€à¸”ียวà¸à¸±à¸šà¸Šà¸™à¸´à¸”ตัวà¹à¸›à¸£" #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing global constant name." +#, fuzzy +msgid "Must not collide with an existing global constant name." msgstr "ชื่à¸à¸œà¸´à¸”พลาด ต้à¸à¸‡à¹„ม่ใช้ชื่à¸à¹€à¸”ียวà¸à¸±à¸šà¸„่าคงที่" #: editor/editor_autoload_settings.cpp +msgid "Keyword cannot be used as an autoload name." +msgstr "" + +#: editor/editor_autoload_settings.cpp msgid "Autoload '%s' already exists!" msgstr "มีà¸à¸à¹‚ต้โหลด '%s' à¸à¸¢à¸¹à¹ˆà¹à¸¥à¹‰à¸§!" @@ -1315,11 +1399,12 @@ msgstr "เปิด" msgid "Rearrange Autoloads" msgstr "จัดลำดับà¸à¸à¹‚ต้โหลด" -#: editor/editor_autoload_settings.cpp -msgid "Invalid Path." +#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp +#, fuzzy +msgid "Invalid path." msgstr "ตำà¹à¸«à¸™à¹ˆà¸‡à¸œà¸´à¸”พลาด" -#: editor/editor_autoload_settings.cpp +#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp msgid "File does not exist." msgstr "ไม่พบไฟล์" @@ -1370,7 +1455,8 @@ msgid "[unsaved]" msgstr "[ไฟล์ใหม่]" #: editor/editor_dir_dialog.cpp -msgid "Please select a base directory first" +#, fuzzy +msgid "Please select a base directory first." msgstr "à¸à¸£à¸¸à¸“าเลืà¸à¸à¹‚ฟลเดà¸à¸£à¹Œà¹€à¸£à¸´à¹ˆà¸¡à¸•้นà¸à¹ˆà¸à¸™" #: editor/editor_dir_dialog.cpp @@ -1378,7 +1464,8 @@ msgid "Choose a Directory" msgstr "เลืà¸à¸à¹‚ฟลเดà¸à¸£à¹Œ" #: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp -#: editor/filesystem_dock.cpp scene/gui/file_dialog.cpp +#: editor/filesystem_dock.cpp editor/project_manager.cpp +#: scene/gui/file_dialog.cpp msgid "Create Folder" msgstr "สร้างโฟลเดà¸à¸£à¹Œ" @@ -1451,6 +1538,178 @@ msgstr "ไม่พบà¹à¸žà¸„เà¸à¸ˆà¸ˆà¸³à¸«à¸™à¹ˆà¸²à¸¢à¸—ี่à¸à¸³à¸« msgid "Template file not found:" msgstr "ไม่พบà¹à¸¡à¹ˆà¹à¸šà¸š:" +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "3D Editor" +msgstr "โปรà¹à¸à¸£à¸¡" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Script Editor" +msgstr "เปิดตัวà¹à¸à¹‰à¹„ขสคริปต์" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Asset Library" +msgstr "เปิดà¹à¸«à¸¥à¹ˆà¸‡à¸£à¸§à¸¡à¸—รัพยาà¸à¸£" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Scene Tree Editing" +msgstr "ผังฉาภ(โหนด):" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Import Dock" +msgstr "นำเข้า" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Node Dock" +msgstr "โหมดเคลื่à¸à¸™à¸¢à¹‰à¸²à¸¢" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Filesystem Dock" +msgstr "ระบบไฟล์" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Erase profile '%s'? (no undo)" +msgstr "à¹à¸—นที่ทั้งหมด" + +#: editor/editor_feature_profile.cpp +msgid "Profile must be a valid filename and must not contain '.'" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Profile with this name already exists." +msgstr "มีชื่à¸à¸à¸¥à¸¸à¹ˆà¸¡à¸™à¸µà¹‰à¸à¸¢à¸¹à¹ˆà¹à¸¥à¹‰à¸§" + +#: editor/editor_feature_profile.cpp +msgid "(Editor Disabled, Properties Disabled)" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "(Properties Disabled)" +msgstr "คุณสมบัติ" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "(Editor Disabled)" +msgstr "ปิดà¸à¸²à¸£à¸•ัด" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Class Options:" +msgstr "รายละเà¸à¸µà¸¢à¸”:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enable Contextual Editor" +msgstr "เปิดตัวà¹à¸à¹‰à¹„ขถัดไป" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enabled Properties:" +msgstr "คุณสมบัติ:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enabled Features:" +msgstr "ฟีเจà¸à¸£à¹Œ" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enabled Classes:" +msgstr "ค้นหาคลาส" + +#: editor/editor_feature_profile.cpp +msgid "File '%s' format is invalid, import aborted." +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "" +"Profile '%s' already exists. Remote it first before importing, import " +"aborted." +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Error saving profile to path: '%s'." +msgstr "ผิดพลาดขณะโหลดà¹à¸¡à¹ˆà¹à¸šà¸š '%s'" + +#: editor/editor_feature_profile.cpp +msgid "Unset" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Current Profile" +msgstr "รุ่นปัจจุบัน:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Make Current" +msgstr "ปัจจุบัน:" + +#: editor/editor_feature_profile.cpp +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "New" +msgstr "ไฟล์ใหม่" + +#: editor/editor_feature_profile.cpp editor/editor_node.cpp +#: editor/plugins/asset_library_editor_plugin.cpp editor/project_manager.cpp +msgid "Import" +msgstr "นำเข้า" + +#: editor/editor_feature_profile.cpp editor/editor_node.cpp +#: editor/project_export.cpp +msgid "Export" +msgstr "ส่งà¸à¸à¸" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Available Profiles" +msgstr "โหนดที่มีให้ใช้:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enabled Classes" +msgstr "ค้นหาคลาส" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Class Options" +msgstr "รายละเà¸à¸µà¸¢à¸”" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "New profile name:" +msgstr "ชื่à¸à¹ƒà¸«à¸¡à¹ˆ:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Erase Profile" +msgstr "ลบพื้นที่" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Import Profile(s)" +msgstr "นำเข้าโปรเจà¸à¸•์à¹à¸¥à¹‰à¸§" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Export Profile" +msgstr "ส่งà¸à¸à¸à¹‚ปรเจà¸à¸•์" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Manage Editor Feature Profiles" +msgstr "จัดà¸à¸²à¸£à¹à¸¡à¹ˆà¹à¸šà¸šà¸ªà¹ˆà¸‡à¸à¸à¸" + #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Select Current Folder" msgstr "เลืà¸à¸à¹‚ฟลเดà¸à¸£à¹Œà¸›à¸±à¸ˆà¸ˆà¸¸à¸šà¸±à¸™" @@ -1473,8 +1732,8 @@ msgstr "คัดลà¸à¸à¸•ำà¹à¸«à¸™à¹ˆà¸‡" msgid "Open in File Manager" msgstr "à¹à¸ªà¸”งในตัวจัดà¸à¸²à¸£à¹„ฟล์" -#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp -#: editor/project_manager.cpp +#: editor/editor_file_dialog.cpp editor/editor_node.cpp +#: editor/filesystem_dock.cpp editor/project_manager.cpp #, fuzzy msgid "Show in File Manager" msgstr "à¹à¸ªà¸”งในตัวจัดà¸à¸²à¸£à¹„ฟล์" @@ -1534,7 +1793,7 @@ msgstr "ไปหน้า" msgid "Go Up" msgstr "ขึ้นบน" -#: editor/editor_file_dialog.cpp +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Toggle Hidden Files" msgstr "เปิด/ปิดไฟล์ที่ซ่à¸à¸™" @@ -1568,8 +1827,9 @@ msgstr "ไปชั้นล่าง" msgid "Next Folder" msgstr "ไปชั้นบน" -#: editor/editor_file_dialog.cpp -msgid "Go to parent folder" +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp +#, fuzzy +msgid "Go to parent folder." msgstr "ไปยังโฟลเดà¸à¸£à¹Œà¸«à¸¥à¸±à¸" #: editor/editor_file_dialog.cpp @@ -1577,6 +1837,11 @@ msgstr "ไปยังโฟลเดà¸à¸£à¹Œà¸«à¸¥à¸±à¸" msgid "(Un)favorite current folder." msgstr "ไม่สามารถสร้างโฟลเดà¸à¸£à¹Œ" +#: editor/editor_file_dialog.cpp +#, fuzzy +msgid "Toggle visibility of hidden files." +msgstr "เปิด/ปิดไฟล์ที่ซ่à¸à¸™" + #: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp #, fuzzy msgid "View items as a grid of thumbnails." @@ -1593,6 +1858,7 @@ msgstr "ไฟล์à¹à¸¥à¸°à¹‚ฟลเดà¸à¸£à¹Œ:" #: editor/editor_file_dialog.cpp editor/plugins/sprite_editor_plugin.cpp #: editor/plugins/style_box_editor_plugin.cpp +#: editor/plugins/theme_editor_plugin.cpp msgid "Preview:" msgstr "ตัวà¸à¸¢à¹ˆà¸²à¸‡:" @@ -1609,6 +1875,12 @@ msgid "ScanSources" msgstr "สà¹à¸à¸™à¸•้นฉบับ" #: editor/editor_file_system.cpp +msgid "" +"There are multiple importers for different types pointing to file %s, import " +"aborted" +msgstr "" + +#: editor/editor_file_system.cpp msgid "(Re)Importing Assets" msgstr "นำเข้าทรัพยาà¸à¸£(à¸à¸µà¸à¸„รั้ง)" @@ -1804,6 +2076,11 @@ msgstr "" msgid "Output:" msgstr "ข้à¸à¸„วาม:" +#: editor/editor_log.cpp editor/plugins/tile_map_editor_plugin.cpp +#, fuzzy +msgid "Copy Selection" +msgstr "ลบที่เลืà¸à¸" + #: editor/editor_log.cpp editor/editor_profiler.cpp #: editor/editor_properties.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp @@ -1951,9 +2228,10 @@ msgstr "" "à¸à¹ˆà¸²à¸™à¸£à¸²à¸¢à¸¥à¸°à¹€à¸à¸µà¸¢à¸”เพิ่มเติมได้จาà¸à¸„ู่มืà¸à¹ƒà¸™à¸ªà¹ˆà¸§à¸™à¸‚à¸à¸‡à¸à¸²à¸£à¸™à¸³à¹€à¸‚้าฉาà¸" #: editor/editor_node.cpp +#, fuzzy msgid "" "This resource belongs to a scene that was instanced or inherited.\n" -"Changes to it will not be kept when saving the current scene." +"Changes to it won't be kept when saving the current scene." msgstr "" "รีซà¸à¸£à¹Œà¸ªà¸™à¸µà¹‰à¹€à¸›à¹‡à¸™à¸‚à¸à¸‡à¸‰à¸²à¸à¸—ี่ถูà¸à¸à¸´à¸™à¸ªà¹à¸•นซ์หรืà¸à¸ªà¸·à¸šà¸—à¸à¸”\n" "à¸à¸²à¸£à¹à¸à¹‰à¹„ขจะไม่ถูà¸à¸šà¸±à¸™à¸—ึà¸" @@ -1965,8 +2243,9 @@ msgid "" msgstr "รีซà¸à¸£à¹Œà¸ªà¸™à¸µà¹‰à¸–ูà¸à¸™à¸³à¹€à¸‚้าจึงไม่สามารถà¹à¸à¹‰à¹„ขได้ ปรับตั้งค่าในà¹à¸œà¸‡à¸™à¸³à¹€à¸‚้าà¹à¸¥à¸°à¸™à¸³à¹€à¸‚้าใหม่" #: editor/editor_node.cpp +#, fuzzy msgid "" -"This scene was imported, so changes to it will not be kept.\n" +"This scene was imported, so changes to it won't be kept.\n" "Instancing it or inheriting will allow making changes to it.\n" "Please read the documentation relevant to importing scenes to better " "understand this workflow." @@ -1976,8 +2255,9 @@ msgstr "" "à¸à¹ˆà¸²à¸™à¸£à¸²à¸¢à¸¥à¸°à¹€à¸à¸µà¸¢à¸”เพิ่มเติมได้จาà¸à¸„ู่มืà¸à¹ƒà¸™à¸ªà¹ˆà¸§à¸™à¸‚à¸à¸‡à¸à¸²à¸£à¸™à¸³à¹€à¸‚้าฉาà¸" #: editor/editor_node.cpp +#, fuzzy msgid "" -"This is a remote object so changes to it will not be kept.\n" +"This is a remote object, so changes to it won't be kept.\n" "Please read the documentation relevant to debugging to better understand " "this workflow." msgstr "" @@ -1989,33 +2269,6 @@ msgid "There is no defined scene to run." msgstr "ยังไม่ได้เลืà¸à¸à¸‰à¸²à¸à¸—ี่จะเล่น" #: editor/editor_node.cpp -msgid "" -"No main scene has ever been defined, select one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" -"ยังไม่ได้à¸à¸³à¸«à¸™à¸”ฉาà¸à¹€à¸£à¸´à¹ˆà¸¡à¸•้น à¸à¸³à¸«à¸™à¸”ตà¸à¸™à¸™à¸µà¹‰à¸«à¸£à¸·à¸à¹„ม่?\n" -"สามารถà¹à¸à¹‰à¹„ขภายหลังที่ \"ตัวเลืà¸à¸à¹‚ปรเจà¸à¸•์\" ใต้หัวข้ภ'application'" - -#: editor/editor_node.cpp -msgid "" -"Selected scene '%s' does not exist, select a valid one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" -"ไม่มีฉาภ'%s' ที่เลืà¸à¸à¹„ว้ เลืà¸à¸à¹ƒà¸«à¸¡à¹ˆà¸•à¸à¸™à¸™à¸µà¹‰à¸«à¸£à¸·à¸à¹„ม่?\n" -"สามารถà¹à¸à¹‰à¹„ขภายหลังที่ \"ตัวเลืà¸à¸à¹‚ปรเจà¸à¸•์\" ใต้หัวข้ภ'application'" - -#: editor/editor_node.cpp -msgid "" -"Selected scene '%s' is not a scene file, select a valid one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" -"'%s' ไม่ใช่ไฟล์ฉาภเลืà¸à¸à¹ƒà¸«à¸¡à¹ˆà¸•à¸à¸™à¸™à¸µà¹‰à¸«à¸£à¸·à¸à¹„ม่?\n" -"สามารถà¹à¸à¹‰à¹„ขภายหลังที่ \"ตัวเลืà¸à¸à¹‚ปรเจà¸à¸•์\" ใต้หัวข้ภ'application'" - -#: editor/editor_node.cpp msgid "Current scene was never saved, please save it prior to running." msgstr "ฉาà¸à¸›à¸±à¸ˆà¸ˆà¸¸à¸šà¸±à¸™à¸¢à¸±à¸‡à¹„ม่ได้บันทึภà¸à¸£à¸¸à¸“าบันทึà¸à¸à¹ˆà¸à¸™à¹€à¸£à¸´à¹ˆà¸¡à¹‚ปรà¹à¸à¸£à¸¡" @@ -2023,7 +2276,7 @@ msgstr "ฉาà¸à¸›à¸±à¸ˆà¸ˆà¸¸à¸šà¸±à¸™à¸¢à¸±à¸‡à¹„ม่ได้บันท msgid "Could not start subprocess!" msgstr "ไม่สามารถเริ่มขั้นตà¸à¸™à¸¢à¹ˆà¸à¸¢!" -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/filesystem_dock.cpp msgid "Open Scene" msgstr "เปิดไฟล์ฉาà¸" @@ -2032,6 +2285,11 @@ msgid "Open Base Scene" msgstr "เปิดไฟล์ฉาà¸à¸—ี่ใช้สืบทà¸à¸”" #: editor/editor_node.cpp +#, fuzzy +msgid "Quick Open..." +msgstr "เปิดไฟล์ฉาà¸à¸”่วน..." + +#: editor/editor_node.cpp msgid "Quick Open Scene..." msgstr "เปิดไฟล์ฉาà¸à¸”่วน..." @@ -2201,6 +2459,33 @@ msgid "Clear Recent Scenes" msgstr "ล้างรายà¸à¸²à¸£à¸‰à¸²à¸à¸¥à¹ˆà¸²à¸ªà¸¸à¸”" #: editor/editor_node.cpp +msgid "" +"No main scene has ever been defined, select one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" +"ยังไม่ได้à¸à¸³à¸«à¸™à¸”ฉาà¸à¹€à¸£à¸´à¹ˆà¸¡à¸•้น à¸à¸³à¸«à¸™à¸”ตà¸à¸™à¸™à¸µà¹‰à¸«à¸£à¸·à¸à¹„ม่?\n" +"สามารถà¹à¸à¹‰à¹„ขภายหลังที่ \"ตัวเลืà¸à¸à¹‚ปรเจà¸à¸•์\" ใต้หัวข้ภ'application'" + +#: editor/editor_node.cpp +msgid "" +"Selected scene '%s' does not exist, select a valid one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" +"ไม่มีฉาภ'%s' ที่เลืà¸à¸à¹„ว้ เลืà¸à¸à¹ƒà¸«à¸¡à¹ˆà¸•à¸à¸™à¸™à¸µà¹‰à¸«à¸£à¸·à¸à¹„ม่?\n" +"สามารถà¹à¸à¹‰à¹„ขภายหลังที่ \"ตัวเลืà¸à¸à¹‚ปรเจà¸à¸•์\" ใต้หัวข้ภ'application'" + +#: editor/editor_node.cpp +msgid "" +"Selected scene '%s' is not a scene file, select a valid one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" +"'%s' ไม่ใช่ไฟล์ฉาภเลืà¸à¸à¹ƒà¸«à¸¡à¹ˆà¸•à¸à¸™à¸™à¸µà¹‰à¸«à¸£à¸·à¸à¹„ม่?\n" +"สามารถà¹à¸à¹‰à¹„ขภายหลังที่ \"ตัวเลืà¸à¸à¹‚ปรเจà¸à¸•์\" ใต้หัวข้ภ'application'" + +#: editor/editor_node.cpp msgid "Save Layout" msgstr "บันทึà¸à¹€à¸¥à¸¢à¹Œà¹€à¸à¸²à¸•์" @@ -2229,6 +2514,19 @@ msgstr "เล่น" msgid "Close Tab" msgstr "ปิดà¹à¸—็บà¸à¸·à¹ˆà¸™" +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +msgid "Close Other Tabs" +msgstr "ปิดà¹à¸—็บà¸à¸·à¹ˆà¸™" + +#: editor/editor_node.cpp +msgid "Close Tabs to the Right" +msgstr "" + +#: editor/editor_node.cpp +#, fuzzy +msgid "Close All Tabs" +msgstr "ปิดทั้งหมด" + #: editor/editor_node.cpp msgid "Switch Scene Tab" msgstr "สลับฉาà¸" @@ -2352,10 +2650,6 @@ msgstr "โปรเจà¸à¸•์" msgid "Project Settings" msgstr "ตัวเลืà¸à¸à¹‚ปรเจà¸à¸•์" -#: editor/editor_node.cpp editor/project_export.cpp -msgid "Export" -msgstr "ส่งà¸à¸à¸" - #: editor/editor_node.cpp editor/plugins/tile_set_editor_plugin.cpp msgid "Tools" msgstr "เครื่à¸à¸‡à¸¡à¸·à¸" @@ -2366,6 +2660,10 @@ msgid "Open Project Data Folder" msgstr "เปิดตัวจัดà¸à¸²à¸£à¹‚ปรเจà¸à¸•์?" #: editor/editor_node.cpp +msgid "Install Android Build Template" +msgstr "" + +#: editor/editor_node.cpp msgid "Quit to Project List" msgstr "ปิดà¹à¸¥à¸°à¸à¸¥à¸±à¸šà¸ªà¸¹à¹ˆà¸£à¸²à¸¢à¸Šà¸·à¹ˆà¸à¹‚ปรเจà¸à¸•์" @@ -2479,6 +2777,11 @@ msgstr "" msgid "Open Editor Settings Folder" msgstr "ตัวเลืà¸à¸à¹‚ปรà¹à¸à¸£à¸¡à¸ªà¸£à¹‰à¸²à¸‡à¹€à¸à¸¡" +#: editor/editor_node.cpp +#, fuzzy +msgid "Manage Editor Features" +msgstr "จัดà¸à¸²à¸£à¹à¸¡à¹ˆà¹à¸šà¸šà¸ªà¹ˆà¸‡à¸à¸à¸" + #: editor/editor_node.cpp editor/project_export.cpp msgid "Manage Export Templates" msgstr "จัดà¸à¸²à¸£à¹à¸¡à¹ˆà¹à¸šà¸šà¸ªà¹ˆà¸‡à¸à¸à¸" @@ -2491,6 +2794,7 @@ msgstr "ช่วยเหลืà¸" #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp #: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp #: editor/project_settings_editor.cpp editor/rename_dialog.cpp msgid "Search" msgstr "ค้นหา" @@ -2582,11 +2886,6 @@ msgstr "à¸à¸±à¸žà¹€à¸”ทเมื่à¸à¹€à¸›à¸¥à¸µà¹ˆà¸¢à¸™à¹à¸›à¸¥à¸‡" msgid "Disable Update Spinner" msgstr "ปิดà¸à¸²à¸£à¸à¸±à¸žà¹€à¸”ทตัวหมุน" -#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp -#: editor/project_manager.cpp -msgid "Import" -msgstr "นำเข้า" - #: editor/editor_node.cpp msgid "FileSystem" msgstr "ระบบไฟล์" @@ -2613,6 +2912,28 @@ msgid "Don't Save" msgstr "ไม่บันทึà¸" #: editor/editor_node.cpp +msgid "Android build template is missing, please install relevant templates." +msgstr "" + +#: editor/editor_node.cpp +#, fuzzy +msgid "Manage Templates" +msgstr "จัดà¸à¸²à¸£à¹à¸¡à¹ˆà¹à¸šà¸šà¸ªà¹ˆà¸‡à¸à¸à¸" + +#: editor/editor_node.cpp +msgid "" +"This will install the Android project for custom builds.\n" +"Note that, in order to use it, it needs to be enabled per export preset." +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"Android build template is already installed and it won't be overwritten.\n" +"Remove the \"build\" directory manually before attempting this operation " +"again." +msgstr "" + +#: editor/editor_node.cpp msgid "Import Templates From ZIP File" msgstr "นำเข้าà¹à¸¡à¹ˆà¹à¸šà¸šà¸ˆà¸²à¸à¹„ฟล์ ZIP" @@ -2738,10 +3059,6 @@ msgid "Physics Frame %" msgstr "% ขà¸à¸‡à¹€à¸Ÿà¸£à¸¡à¸Ÿà¸´à¸ªà¸´à¸à¸ªà¹Œ" #: editor/editor_profiler.cpp -msgid "Time:" -msgstr "เวลา:" - -#: editor/editor_profiler.cpp msgid "Inclusive" msgstr "รวม" @@ -2883,10 +3200,6 @@ msgid "Remove Item" msgstr "ลบไà¸à¹€à¸—ม" #: editor/editor_run_native.cpp -msgid "Select device from the list" -msgstr "เลืà¸à¸à¸à¸¸à¸›à¸à¸£à¸“์จาà¸à¸£à¸²à¸¢à¸Šà¸·à¹ˆà¸" - -#: editor/editor_run_native.cpp msgid "" "No runnable export preset found for this platform.\n" "Please add a runnable preset in the export menu." @@ -2922,6 +3235,10 @@ msgstr "ลืมใส่เมท็à¸à¸” '_run' หรืà¸à¹„ม่?" msgid "Select Node(s) to Import" msgstr "เลืà¸à¸à¹‚หนดเพื่à¸à¸™à¸³à¹€à¸‚้า" +#: editor/editor_sub_scene.cpp editor/project_manager.cpp +msgid "Browse" +msgstr "เลืà¸à¸" + #: editor/editor_sub_scene.cpp msgid "Scene Path:" msgstr "ตำà¹à¸«à¸™à¹ˆà¸‡à¸—ี่à¸à¸¢à¸¹à¹ˆà¸‰à¸²à¸:" @@ -3085,6 +3402,11 @@ msgid "SSL Handshake Error" msgstr "à¸à¸²à¸£à¸£à¸±à¸šà¸£à¸à¸‡à¸„วามปลà¸à¸”ภัยผิดพลาด" #: editor/export_template_manager.cpp +#, fuzzy +msgid "Uncompressing Android Build Sources" +msgstr "à¸à¸³à¸¥à¸±à¸‡à¸„ลายบีบà¸à¸±à¸”" + +#: editor/export_template_manager.cpp msgid "Current Version:" msgstr "รุ่นปัจจุบัน:" @@ -3101,7 +3423,8 @@ msgid "Remove Template" msgstr "ลบà¹à¸¡à¹ˆà¹à¸šà¸š" #: editor/export_template_manager.cpp -msgid "Select template file" +#, fuzzy +msgid "Select Template File" msgstr "เลืà¸à¸à¹„ฟล์à¹à¸¡à¹ˆà¹à¸šà¸š" #: editor/export_template_manager.cpp @@ -3159,7 +3482,8 @@ msgid "No name provided." msgstr "ไม่ได้ระบุชื่à¸" #: editor/filesystem_dock.cpp -msgid "Provided name contains invalid characters" +#, fuzzy +msgid "Provided name contains invalid characters." msgstr "ไม่สามารถใช้à¸à¸±à¸à¸©à¸£à¸šà¸²à¸‡à¸•ัวในชื่à¸à¹„ด้" #: editor/filesystem_dock.cpp @@ -3187,7 +3511,13 @@ msgid "Duplicating folder:" msgstr "ทำซ้ำโฟลเดà¸à¸£à¹Œ:" #: editor/filesystem_dock.cpp -msgid "Open Scene(s)" +#, fuzzy +msgid "New Inherited Scene" +msgstr "สืบทà¸à¸”ฉาà¸à¹ƒà¸«à¸¡à¹ˆ..." + +#: editor/filesystem_dock.cpp +#, fuzzy +msgid "Open Scenes" msgstr "เปิดไฟล์ฉาà¸" #: editor/filesystem_dock.cpp @@ -3196,12 +3526,12 @@ msgstr "à¸à¸´à¸™à¸ªà¹à¸•นซ์" #: editor/filesystem_dock.cpp #, fuzzy -msgid "Add to favorites" +msgid "Add to Favorites" msgstr "ที่ชื่นชà¸à¸š:" #: editor/filesystem_dock.cpp #, fuzzy -msgid "Remove from favorites" +msgid "Remove from Favorites" msgstr "ลบà¸à¸à¸à¸ˆà¸²à¸à¸à¸¥à¸¸à¹ˆà¸¡" #: editor/filesystem_dock.cpp @@ -3234,12 +3564,14 @@ msgstr "สคริปต์ใหม่" msgid "New Resource..." msgstr "บันทึà¸à¸£à¸µà¸‹à¸à¸£à¹Œà¸ªà¹€à¸›à¹‡à¸™..." -#: editor/filesystem_dock.cpp editor/script_editor_debugger.cpp +#: editor/filesystem_dock.cpp editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_editor_debugger.cpp #, fuzzy msgid "Expand All" msgstr "ขยายโฟลเดà¸à¸£à¹Œ" -#: editor/filesystem_dock.cpp editor/script_editor_debugger.cpp +#: editor/filesystem_dock.cpp editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_editor_debugger.cpp #, fuzzy msgid "Collapse All" msgstr "ยุบโฟลเดà¸à¸£à¹Œ" @@ -3252,12 +3584,14 @@ msgid "Rename" msgstr "เปลี่ยนชื่à¸" #: editor/filesystem_dock.cpp -msgid "Previous Directory" -msgstr "โฟลเดà¸à¸£à¹Œà¸à¹ˆà¸à¸™à¸«à¸™à¹‰à¸²" +#, fuzzy +msgid "Previous Folder/File" +msgstr "ไปชั้นล่าง" #: editor/filesystem_dock.cpp -msgid "Next Directory" -msgstr "โฟลเดà¸à¸£à¹Œà¸–ัดไป" +#, fuzzy +msgid "Next Folder/File" +msgstr "ไปชั้นบน" #: editor/filesystem_dock.cpp msgid "Re-Scan Filesystem" @@ -3265,7 +3599,7 @@ msgstr "สà¹à¸à¸™à¸£à¸°à¸šà¸šà¹„ฟล์ใหม่" #: editor/filesystem_dock.cpp #, fuzzy -msgid "Toggle split mode" +msgid "Toggle Split Mode" msgstr "สลับโหมด" #: editor/filesystem_dock.cpp @@ -3298,7 +3632,7 @@ msgstr "" msgid "Create Script" msgstr "สร้างสคริปต์" -#: editor/find_in_files.cpp +#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp #, fuzzy msgid "Find in Files" msgstr "ค้นหา tile" @@ -3318,6 +3652,12 @@ msgstr "ซ่à¸à¸™" msgid "Filters:" msgstr "ตัวà¸à¸£à¸à¸‡" +#: editor/find_in_files.cpp +msgid "" +"Include the files with the following extensions. Add or remove them in " +"ProjectSettings." +msgstr "" + #: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp msgid "Find..." @@ -3786,7 +4126,7 @@ msgstr "โหนดà¹à¸à¸™à¸´à¹€à¸¡à¸Šà¸±à¸™" #: editor/plugins/animation_blend_space_2d_editor.cpp #, fuzzy -msgid "Triangle already exists" +msgid "Triangle already exists." msgstr "มีà¸à¸²à¸£à¸à¸£à¸°à¸—ำ '%s' à¸à¸¢à¸¹à¹ˆà¹à¸¥à¹‰à¸§!" #: editor/plugins/animation_blend_space_2d_editor.cpp @@ -3871,7 +4211,6 @@ msgid "Node Moved" msgstr "โหมดเคลื่à¸à¸™à¸¢à¹‰à¸²à¸¢" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Unable to connect, port may be in use or connection may be invalid." msgstr "" @@ -3948,7 +4287,7 @@ msgstr "à¹à¸à¹‰à¹„ขตัวà¸à¸£à¸à¸‡" #: editor/plugins/animation_blend_tree_editor_plugin.cpp #, fuzzy -msgid "Enable filtering" +msgid "Enable Filtering" msgstr "à¹à¸à¹‰à¹„ขโหนดลูà¸à¹„ด้" #: editor/plugins/animation_player_editor_plugin.cpp @@ -4068,10 +4407,6 @@ msgid "Animation" msgstr "à¹à¸à¸™à¸´à¹€à¸¡à¸Šà¸±à¸™" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "New" -msgstr "ไฟล์ใหม่" - -#: editor/plugins/animation_player_editor_plugin.cpp #, fuzzy msgid "Edit Transitions..." msgstr "ทรานสิชัน" @@ -4090,14 +4425,15 @@ msgid "Autoplay on Load" msgstr "เล่นà¸à¸±à¸•โนมัติเมื่à¸à¹‚หลด" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Onion Skinning" -msgstr "ภาพเงาà¸à¸²à¸£à¹€à¸„ลื่à¸à¸™à¹„หว" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Enable Onion Skinning" msgstr "เปิดภาพเงาà¸à¸²à¸£à¹€à¸„ลื่à¸à¸™à¹„หว" #: editor/plugins/animation_player_editor_plugin.cpp +#, fuzzy +msgid "Onion Skinning Options" +msgstr "ภาพเงาà¸à¸²à¸£à¹€à¸„ลื่à¸à¸™à¹„หว" + +#: editor/plugins/animation_player_editor_plugin.cpp msgid "Directions" msgstr "ทิศทาง" @@ -4658,13 +4994,19 @@ msgid "Move CanvasItem" msgstr "à¹à¸à¹‰à¹„ข CanvasItem" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"Children of containers have their anchors and margins values overridden by " +"their parent." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Presets for the anchors and margins values of a Control node." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "" -"Children of containers have their anchors and margins values overridden by " -"their parent." +"When active, moving Control nodes changes their anchors instead of their " +"margins." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4680,10 +5022,52 @@ msgid "Change Anchors" msgstr "à¹à¸à¹‰à¹„ขà¸à¸²à¸£à¸•รึง" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Lock Selected" +msgstr "เครื่à¸à¸‡à¸¡à¸·à¸à¹€à¸¥à¸·à¸à¸" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Unlock Selected" +msgstr "ลบสิ่งที่เลืà¸à¸" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Group Selected" +msgstr "ลบที่เลืà¸à¸" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Ungroup Selected" +msgstr "ลบที่เลืà¸à¸" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Paste Pose" msgstr "วางท่าทาง" #: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Create Custom Bone(s) from Node(s)" +msgstr "สร้างจุดปะทุจาภMesh" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Clear Bones" +msgstr "ลบท่าทาง" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Make IK Chain" +msgstr "สร้าง IK Chain" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Clear IK Chain" +msgstr "ลบ IK Chain" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "" "Warning: Children of a container get their position and size determined only " "by their parent." @@ -4761,7 +5145,8 @@ msgid "Snapping Options" msgstr "ตัวเลืà¸à¸à¸à¸²à¸£à¸ˆà¸³à¸à¸±à¸”" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to grid" +#, fuzzy +msgid "Snap to Grid" msgstr "จำà¸à¸±à¸”ด้วยเส้นตาราง" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4782,32 +5167,38 @@ msgid "Use Pixel Snap" msgstr "จำà¸à¸±à¸”ให้ย้ายเป็นพิà¸à¹€à¸‹à¸¥" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Smart snapping" +#, fuzzy +msgid "Smart Snapping" msgstr "จำà¸à¸±à¸”à¸à¸±à¸•โนมัติ" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to parent" +#, fuzzy +msgid "Snap to Parent" msgstr "จำà¸à¸±à¸”ด้วยโหนดà¹à¸¡à¹ˆ" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node anchor" +#, fuzzy +msgid "Snap to Node Anchor" msgstr "จำà¸à¸±à¸”ด้วยจุดหมุนขà¸à¸‡à¹‚หนด" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node sides" +#, fuzzy +msgid "Snap to Node Sides" msgstr "จำà¸à¸±à¸”ด้วยเส้นขà¸à¸šà¸‚à¸à¸‡à¹‚หนด" #: editor/plugins/canvas_item_editor_plugin.cpp #, fuzzy -msgid "Snap to node center" +msgid "Snap to Node Center" msgstr "จำà¸à¸±à¸”ด้วยจุดหมุนขà¸à¸‡à¹‚หนด" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to other nodes" +#, fuzzy +msgid "Snap to Other Nodes" msgstr "จำà¸à¸±à¸”ด้วยโหนดà¸à¸·à¹ˆà¸™" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to guides" +#, fuzzy +msgid "Snap to Guides" msgstr "จำà¸à¸±à¸”ด้วยเส้นนำ" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4821,10 +5212,12 @@ msgid "Unlock the selected object (can be moved)." msgstr "ปลดล็à¸à¸„วัตถุที่เลืà¸à¸" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Makes sure the object's children are not selectable." msgstr "ทำให้เลืà¸à¸à¹‚หนดลูà¸à¹„ม่ได้" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Restores the object's children's ability to be selected." msgstr "ทำให้เลืà¸à¸à¹‚หนดลูà¸à¹„ด้เหมืà¸à¸™à¹€à¸”ิม" @@ -4838,14 +5231,6 @@ msgid "Show Bones" msgstr "à¹à¸ªà¸”งà¸à¸£à¸°à¸”ูà¸" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Make IK Chain" -msgstr "สร้าง IK Chain" - -#: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Clear IK Chain" -msgstr "ลบ IK Chain" - -#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Make Custom Bone(s) from Node(s)" msgstr "" @@ -4899,8 +5284,9 @@ msgid "Frame Selection" msgstr "ให้สิ่งที่เลืà¸à¸à¹€à¸•็มจà¸" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Layout" -msgstr "เลย์เà¸à¸²à¸•์" +#, fuzzy +msgid "Preview Canvas Scale" +msgstr "ตัวà¸à¸¢à¹ˆà¸²à¸‡ Atlas" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Translation mask for inserting keys." @@ -4953,6 +5339,11 @@ msgid "Divide grid step by 2" msgstr "ลดความถี่เส้นตารางลงครึ่งหนึ่ง" #: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Pan View" +msgstr "มุมหลัง" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Add %s" msgstr "เพิ่ม %s" @@ -4975,7 +5366,8 @@ msgid "Error instancing scene from %s" msgstr "ผิดพลาดขณะà¸à¸´à¸™à¸ªà¹à¸•นซ์ฉาà¸à¸ˆà¸²à¸ %s" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Change default type" +#, fuzzy +msgid "Change Default Type" msgstr "เปลี่ยนประเภท" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -5065,19 +5457,21 @@ msgid "Create Emission Points From Node" msgstr "สร้างจุดปะทุจาà¸à¹‚หนด" #: editor/plugins/curve_editor_plugin.cpp -msgid "Flat0" +#, fuzzy +msgid "Flat 0" msgstr "เรียบ 0" #: editor/plugins/curve_editor_plugin.cpp -msgid "Flat1" +#, fuzzy +msgid "Flat 1" msgstr "เรียบ 1" -#: editor/plugins/curve_editor_plugin.cpp -msgid "Ease in" +#: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp +msgid "Ease In" msgstr "เข้านุ่มนวล" -#: editor/plugins/curve_editor_plugin.cpp -msgid "Ease out" +#: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp +msgid "Ease Out" msgstr "à¸à¸à¸à¸™à¸¸à¹ˆà¸¡à¸™à¸§à¸¥" #: editor/plugins/curve_editor_plugin.cpp @@ -5097,23 +5491,28 @@ msgid "Load Curve Preset" msgstr "โหลดเส้นโค้งตัวà¸à¸¢à¹ˆà¸²à¸‡" #: editor/plugins/curve_editor_plugin.cpp -msgid "Add point" +#, fuzzy +msgid "Add Point" msgstr "เพิ่มจุด" #: editor/plugins/curve_editor_plugin.cpp -msgid "Remove point" +#, fuzzy +msgid "Remove Point" msgstr "ลบจุด" #: editor/plugins/curve_editor_plugin.cpp -msgid "Left linear" +#, fuzzy +msgid "Left Linear" msgstr "เส้นตรงซ้าย" #: editor/plugins/curve_editor_plugin.cpp -msgid "Right linear" +#, fuzzy +msgid "Right Linear" msgstr "เส้นตรงขวา" #: editor/plugins/curve_editor_plugin.cpp -msgid "Load preset" +#, fuzzy +msgid "Load Preset" msgstr "โหลดค่าล่วงหน้า" #: editor/plugins/curve_editor_plugin.cpp @@ -5169,11 +5568,17 @@ msgid "This doesn't work on scene root!" msgstr "ทำà¸à¸±à¸šà¹‚หนดราà¸à¹„ม่ได้!" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Trimesh Shape" +#, fuzzy +msgid "Create Trimesh Static Shape" msgstr "สร้างรูปทรง Trimesh" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Shape" +msgid "Failed creating shapes!" +msgstr "" + +#: editor/plugins/mesh_instance_editor_plugin.cpp +#, fuzzy +msgid "Create Convex Shape(s)" msgstr "สร้างรูปทรงนูน" #: editor/plugins/mesh_instance_editor_plugin.cpp @@ -5226,15 +5631,12 @@ msgid "Create Trimesh Static Body" msgstr "สร้าง Trimesh Static Body" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Static Body" -msgstr "สร้าง StaticBody ทรงตัน" - -#: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Trimesh Collision Sibling" msgstr "สร้างรูปทรงà¸à¸²à¸¢à¸ าพเป็นโหนดà¸à¸²à¸•ิ" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Collision Sibling" +#, fuzzy +msgid "Create Convex Collision Sibling(s)" msgstr "สร้างรูปทรงตันà¸à¸²à¸¢à¸ าพเป็นโหนดà¸à¸²à¸•ิ" #: editor/plugins/mesh_instance_editor_plugin.cpp @@ -5388,6 +5790,12 @@ msgid "Create Navigation Polygon" msgstr "สร้างรูปทรงนำทาง" #: editor/plugins/particles_2d_editor_plugin.cpp +#: editor/plugins/particles_editor_plugin.cpp +#, fuzzy +msgid "Convert to CPUParticles" +msgstr "à¹à¸›à¸¥à¸‡à¹€à¸›à¹‡à¸™à¸•ัวพิมพ์ใหà¸à¹ˆ" + +#: editor/plugins/particles_2d_editor_plugin.cpp #, fuzzy msgid "Generating Visibility Rect" msgstr "สร้างà¸à¸£à¸à¸šà¸à¸²à¸£à¸¡à¸à¸‡à¹€à¸«à¹‡à¸™" @@ -5402,12 +5810,6 @@ msgstr "สามารถà¸à¸³à¸«à¸™à¸”จุดให้à¹à¸à¹ˆ ParticlesMa #: editor/plugins/particles_2d_editor_plugin.cpp #: editor/plugins/particles_editor_plugin.cpp -#, fuzzy -msgid "Convert to CPUParticles" -msgstr "à¹à¸›à¸¥à¸‡à¹€à¸›à¹‡à¸™à¸•ัวพิมพ์ใหà¸à¹ˆ" - -#: editor/plugins/particles_2d_editor_plugin.cpp -#: editor/plugins/particles_editor_plugin.cpp msgid "Generation Time (sec):" msgstr "เวลาในà¸à¸²à¸£à¸ªà¸£à¹‰à¸²à¸‡ (วินาที):" @@ -5547,7 +5949,7 @@ msgstr "ปิดเส้นโค้ง" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp editor/plugins/theme_editor_plugin.cpp -#: editor/project_export.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_export.cpp msgid "Options" msgstr "ตัวเลืà¸à¸" @@ -5599,7 +6001,7 @@ msgstr "à¹à¸¢à¸à¸ªà¹ˆà¸§à¸™ (ในเส้นโค้ง)" #: editor/plugins/physical_bone_plugin.cpp #, fuzzy -msgid "Move joint" +msgid "Move Joint" msgstr "ย้ายจุด" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5851,7 +6253,6 @@ msgid "Open in Editor" msgstr "เปิดในโปรà¹à¸à¸£à¸¡à¹à¸à¹‰à¹„ข" #: editor/plugins/resource_preloader_editor_plugin.cpp -#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Load Resource" msgstr "โหลดรีซà¸à¸£à¹Œà¸ª" @@ -5953,6 +6354,11 @@ msgid "%s Class Reference" msgstr " ตำราà¸à¹‰à¸²à¸‡à¸à¸´à¸‡à¸„ลาส" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp +msgid "Find Next" +msgstr "ค้นหาต่à¸à¹„ป" + +#: editor/plugins/script_editor_plugin.cpp msgid "Toggle alphabetical sorting of the method list." msgstr "" @@ -6036,10 +6442,6 @@ msgstr "ปิดคู่มืà¸" msgid "Close All" msgstr "ปิดทั้งหมด" -#: editor/plugins/script_editor_plugin.cpp -msgid "Close Other Tabs" -msgstr "ปิดà¹à¸—็บà¸à¸·à¹ˆà¸™" - #: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp msgid "Run" msgstr "รัน" @@ -6048,11 +6450,6 @@ msgstr "รัน" msgid "Toggle Scripts Panel" msgstr "เปิด/ปิดà¹à¸œà¸‡à¸ªà¸„ริปต์" -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/script_text_editor.cpp -msgid "Find Next" -msgstr "ค้นหาต่à¸à¹„ป" - #: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp msgid "Step Over" msgstr "บรรทัดต่à¸à¹„ป" @@ -6080,7 +6477,8 @@ msgid "Debug with External Editor" msgstr "à¹à¸à¹‰à¸ˆà¸¸à¸”บà¸à¸žà¸£à¹ˆà¸à¸‡à¸”้วยโปรà¹à¸à¸£à¸¡à¸à¸·à¹ˆà¸™" #: editor/plugins/script_editor_plugin.cpp -msgid "Open Godot online documentation" +#, fuzzy +msgid "Open Godot online documentation." msgstr "เปิดคู่มืà¸" #: editor/plugins/script_editor_plugin.cpp @@ -6088,7 +6486,7 @@ msgid "Request Docs" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Help improve the Godot documentation by giving feedback" +msgid "Help improve the Godot documentation by giving feedback." msgstr "" #: editor/plugins/script_editor_plugin.cpp @@ -6116,10 +6514,12 @@ msgstr "" "จะทำà¸à¸¢à¹ˆà¸²à¸‡à¹„รต่à¸à¹„ป?:" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp msgid "Reload" msgstr "โหลดใหม่" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp msgid "Resave" msgstr "บันทึà¸à¸à¸µà¸à¸„รั้ง" @@ -6134,6 +6534,32 @@ msgstr "ค้นหาในคู่มืà¸" #: editor/plugins/script_text_editor.cpp #, fuzzy +msgid "Connections to method:" +msgstr "เชื่à¸à¸¡à¹„ปยังโหนด:" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Source" +msgstr "ต้นฉบับ:" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Signal" +msgstr "สัà¸à¸à¸²à¸“" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Target" +msgstr "ตำà¹à¸«à¸™à¹ˆà¸‡à¸—ี่à¸à¸¢à¸¹à¹ˆ:" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "" +"Missing connected method '%s' for signal '%s' from node '%s' to node '%s'." +msgstr "ลบà¸à¸²à¸£à¹€à¸Šà¸·à¹ˆà¸à¸¡à¹‚ยง '%s' à¸à¸±à¸š '%s'" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy msgid "Line" msgstr "บรรทัด:" @@ -6146,10 +6572,6 @@ msgstr "" msgid "Go to Function" msgstr "ไปยังฟังà¸à¹Œà¸Šà¸±à¸™..." -#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp -msgid "Standard" -msgstr "" - #: editor/plugins/script_text_editor.cpp msgid "Only resources from filesystem can be dropped." msgstr "สามารถวางรีซà¸à¸£à¹Œà¸ªà¸ˆà¸²à¸à¸£à¸°à¸šà¸šà¹„ฟล์ได้เท่านั้น" @@ -6183,6 +6605,11 @@ msgstr "à¸à¸±à¸à¸©à¸£à¹à¸£à¸à¸žà¸´à¸¡à¸žà¹Œà¹ƒà¸«à¸à¹ˆ" msgid "Syntax Highlighter" msgstr "" +#: editor/plugins/script_text_editor.cpp +#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp +msgid "Bookmarks" +msgstr "" + #: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" @@ -6210,6 +6637,26 @@ msgid "Toggle Comment" msgstr "เปิด/ปิด ความคิดเห็น" #: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Toggle Bookmark" +msgstr "เปิด/ปิดมุมมà¸à¸‡à¸à¸´à¸ªà¸£à¸°" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Go to Next Bookmark" +msgstr "ไปจุดพัà¸à¸–ัดไป" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Go to Previous Bookmark" +msgstr "ไปจุดพัà¸à¸à¹ˆà¸à¸™à¸«à¸™à¹‰à¸²" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Remove All Bookmarks" +msgstr "ลบทั้งหมด" + +#: editor/plugins/script_text_editor.cpp msgid "Fold/Unfold Line" msgstr "ซ่à¸à¸™/à¹à¸ªà¸”งบรรทัด" @@ -6290,6 +6737,15 @@ msgid "Contextual Help" msgstr "ค้นหาคำที่เลืà¸à¸à¹ƒà¸™à¸„ู่มืà¸" #: editor/plugins/shader_editor_plugin.cpp +#, fuzzy +msgid "" +"This shader has been modified on on disk.\n" +"What action should be taken?" +msgstr "" +"ไฟล์ต่à¸à¹„ปนี้ในดิสà¸à¹Œà¹ƒà¸«à¸¡à¹ˆà¸à¸§à¹ˆà¸²\n" +"จะทำà¸à¸¢à¹ˆà¸²à¸‡à¹„รต่à¸à¹„ป?:" + +#: editor/plugins/shader_editor_plugin.cpp msgid "Shader" msgstr "Shader" @@ -6641,7 +7097,8 @@ msgid "Right View" msgstr "มุมขวา" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Switch Perspective/Orthogonal view" +#, fuzzy +msgid "Switch Perspective/Orthogonal View" msgstr "สลับมุมมà¸à¸‡à¹€à¸žà¸à¸£à¹Œà¸ªà¹€à¸›à¸à¸—ีฟ/ขนาน" #: editor/plugins/spatial_editor_plugin.cpp @@ -6681,12 +7138,14 @@ msgid "Toggle Freelook" msgstr "เปิด/ปิดมุมมà¸à¸‡à¸à¸´à¸ªà¸£à¸°" #: editor/plugins/spatial_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Transform" msgstr "เคลื่à¸à¸™à¸¢à¹‰à¸²à¸¢" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Snap object to floor" -msgstr "" +#, fuzzy +msgid "Snap Object to Floor" +msgstr "จำà¸à¸±à¸”ด้วยเส้นตาราง" #: editor/plugins/spatial_editor_plugin.cpp msgid "Transform Dialog..." @@ -6832,43 +7291,43 @@ msgid "Invalid geometry, can't replace by mesh." msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Invalid geometry, can't create polygon." -msgstr "" - -#: editor/plugins/sprite_editor_plugin.cpp -msgid "Invalid geometry, can't create collision polygon." -msgstr "" - -#: editor/plugins/sprite_editor_plugin.cpp -msgid "Invalid geometry, can't create light occluder." -msgstr "" - -#: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy -msgid "Sprite" -msgstr "SpriteFrames" - -#: editor/plugins/sprite_editor_plugin.cpp #, fuzzy msgid "Convert to Mesh2D" msgstr "à¹à¸›à¸¥à¸‡à¹€à¸›à¹‡à¸™ %s" #: editor/plugins/sprite_editor_plugin.cpp +msgid "Invalid geometry, can't create polygon." +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp #, fuzzy msgid "Convert to Polygon2D" msgstr "ย้ายรูปหลายเหลี่ยม" #: editor/plugins/sprite_editor_plugin.cpp +msgid "Invalid geometry, can't create collision polygon." +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp #, fuzzy msgid "Create CollisionPolygon2D Sibling" msgstr "สร้างรูปทรงนำทาง" #: editor/plugins/sprite_editor_plugin.cpp +msgid "Invalid geometry, can't create light occluder." +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp #, fuzzy msgid "Create LightOccluder2D Sibling" msgstr "สร้างรูปหลายเหลี่ยมà¸à¸±à¹‰à¸™à¹à¸ªà¸‡" #: editor/plugins/sprite_editor_plugin.cpp +#, fuzzy +msgid "Sprite" +msgstr "SpriteFrames" + +#: editor/plugins/sprite_editor_plugin.cpp msgid "Simplification: " msgstr "" @@ -6888,14 +7347,24 @@ msgid "Settings:" msgstr "ตัวเลืà¸à¸" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "ERROR: Couldn't load frame resource!" -msgstr "ผิดพลาด: โหลดรีซà¸à¸£à¹Œà¸ªà¹€à¸Ÿà¸£à¸¡à¹„ม่ได้!" +#, fuzzy +msgid "No Frames Selected" +msgstr "ให้สิ่งที่เลืà¸à¸à¹€à¸•็มจà¸" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Add %d Frame(s)" +msgstr "เพิ่มเฟรม" #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Add Frame" msgstr "เพิ่มเฟรม" #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "ERROR: Couldn't load frame resource!" +msgstr "ผิดพลาด: โหลดรีซà¸à¸£à¹Œà¸ªà¹€à¸Ÿà¸£à¸¡à¹„ม่ได้!" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Resource clipboard is empty or not a texture!" msgstr "คลิปบà¸à¸£à¹Œà¸”ว่าง หรืà¸à¹„ม่ใช่ texture!" @@ -6939,6 +7408,15 @@ msgid "Animation Frames:" msgstr "เฟรมà¹à¸à¸™à¸´à¹€à¸¡à¸Šà¸±à¸™" #: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Add a Texture from File" +msgstr "เพิ่มโหนดจาà¸à¸œà¸±à¸‡" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Add Frames from a Sprite Sheet" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Insert Empty (Before)" msgstr "เพิ่มà¹à¸šà¸šà¸§à¹ˆà¸²à¸‡à¹€à¸›à¸¥à¹ˆà¸² (à¸à¹ˆà¸à¸™)" @@ -6955,6 +7433,30 @@ msgid "Move (After)" msgstr "ย้าย (หลัง)" #: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Select Frames" +msgstr "สà¹à¸•ค" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Horizontal:" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Vertical:" +msgstr "มุมรูปทรง" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Select/Clear All Frames" +msgstr "เลืà¸à¸à¸—ั้งหมด" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Create Frames from Sprite Sheet" +msgstr "สร้างจาà¸à¸‰à¸²à¸" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "SpriteFrames" msgstr "SpriteFrames" @@ -7022,12 +7524,13 @@ msgstr "เพิ่มทั้งหมด" msgid "Remove All Items" msgstr "ลบทั้งหมด" -#: editor/plugins/theme_editor_plugin.cpp +#: editor/plugins/theme_editor_plugin.cpp editor/project_manager.cpp msgid "Remove All" msgstr "ลบทั้งหมด" #: editor/plugins/theme_editor_plugin.cpp -msgid "Edit theme..." +#, fuzzy +msgid "Edit Theme" msgstr "à¹à¸à¹‰à¹„ขธีม..." #: editor/plugins/theme_editor_plugin.cpp @@ -7055,18 +7558,25 @@ msgid "Create From Current Editor Theme" msgstr "สร้างจาà¸à¸˜à¸µà¸¡à¸›à¸±à¸ˆà¸ˆà¸¸à¸šà¸±à¸™" #: editor/plugins/theme_editor_plugin.cpp -msgid "CheckBox Radio1" -msgstr "ปุ่มเรดิโภ1" +#, fuzzy +msgid "Toggle Button" +msgstr "ปุ่มเมาส์" #: editor/plugins/theme_editor_plugin.cpp -msgid "CheckBox Radio2" -msgstr "ปุ่มเรดิโภ2" +#, fuzzy +msgid "Disabled Button" +msgstr "เมาส์à¸à¸¥à¸²à¸‡" #: editor/plugins/theme_editor_plugin.cpp msgid "Item" msgstr "ไà¸à¹€à¸—ม" #: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Disabled Item" +msgstr "ปิดใช้งาน" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Check Item" msgstr "ทำเครื่à¸à¸‡à¸«à¸¡à¸²à¸¢à¹„à¸à¹€à¸—ม" @@ -7085,6 +7595,24 @@ msgid "Checked Radio Item" msgstr "ไà¸à¹€à¸—มมีเครื่à¸à¸‡à¸«à¸¡à¸²à¸¢" #: editor/plugins/theme_editor_plugin.cpp +msgid "Named Sep." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Submenu" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Item 1" +msgstr "ไà¸à¹€à¸—ม" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Item 2" +msgstr "ไà¸à¹€à¸—ม" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Has" msgstr "มี" @@ -7094,8 +7622,8 @@ msgstr "หลาย" #: editor/plugins/theme_editor_plugin.cpp #, fuzzy -msgid "Has,Many,Options" -msgstr "มี,มาà¸à¸¡à¸²à¸¢,หลาย,ตัวเลืà¸à¸!" +msgid "Disabled LineEdit" +msgstr "ปิดใช้งาน" #: editor/plugins/theme_editor_plugin.cpp msgid "Tab 1" @@ -7110,6 +7638,20 @@ msgid "Tab 3" msgstr "à¹à¸—็บ 3" #: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Editable Item" +msgstr "à¹à¸à¹‰à¹„ขโหนดลูà¸à¹„ด้" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Subtree" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Has,Many,Options" +msgstr "มี,มาà¸à¸¡à¸²à¸¢,หลาย,ตัวเลืà¸à¸!" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Data Type:" msgstr "ชนิดข้à¸à¸¡à¸¹à¸¥:" @@ -7143,6 +7685,7 @@ msgid "Fix Invalid Tiles" msgstr "ชื่à¸à¸œà¸´à¸”พลาด" #: editor/plugins/tile_map_editor_plugin.cpp +#: modules/gridmap/grid_map_editor_plugin.cpp #, fuzzy msgid "Cut Selection" msgstr "ให้สิ่งที่เลืà¸à¸à¸à¸¢à¸¹à¹ˆà¸à¸¥à¸²à¸‡à¸ˆà¸" @@ -7185,39 +7728,50 @@ msgid "Mirror Y" msgstr "สะท้à¸à¸™à¸šà¸™à¸¥à¹ˆà¸²à¸‡" #: editor/plugins/tile_map_editor_plugin.cpp +#, fuzzy +msgid "Disable Autotile" +msgstr "Autotiles" + +#: editor/plugins/tile_map_editor_plugin.cpp +#, fuzzy +msgid "Enable Priority" +msgstr "à¹à¸à¹‰à¹„ขตัวà¸à¸£à¸à¸‡" + +#: editor/plugins/tile_map_editor_plugin.cpp msgid "Paint Tile" msgstr "วาด Tile" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Pick Tile" -msgstr "เลืà¸à¸ Tile" +msgid "" +"Shift+RMB: Line Draw\n" +"Shift+Ctrl+RMB: Rectangle Paint" +msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy -msgid "Copy Selection" -msgstr "ลบที่เลืà¸à¸" +msgid "Pick Tile" +msgstr "เลืà¸à¸ Tile" #: editor/plugins/tile_map_editor_plugin.cpp #, fuzzy -msgid "Rotate left" +msgid "Rotate Left" msgstr "โหมดหมุน" #: editor/plugins/tile_map_editor_plugin.cpp #, fuzzy -msgid "Rotate right" +msgid "Rotate Right" msgstr "ย้ายไปขวา" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Flip horizontally" +msgid "Flip Horizontally" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Flip vertically" +msgid "Flip Vertically" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp #, fuzzy -msgid "Clear transform" +msgid "Clear Transform" msgstr "เคลื่à¸à¸™à¸¢à¹‰à¸²à¸¢" #: editor/plugins/tile_set_editor_plugin.cpp @@ -7257,6 +7811,46 @@ msgid "Select the previous shape, subtile, or Tile." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Region Mode" +msgstr "โหมดà¸à¸²à¸£à¸—ำงาน:" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Collision Mode" +msgstr "โหนดà¹à¸à¸™à¸´à¹€à¸¡à¸Šà¸±à¸™" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Occlusion Mode" +msgstr "à¹à¸à¹‰à¹„ขรูปหลายเหลี่ยม" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Navigation Mode" +msgstr "สร้าง Mesh นำทาง" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Bitmask Mode" +msgstr "โหมดหมุน" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Priority Mode" +msgstr "วิธีà¸à¸²à¸£à¸ªà¹ˆà¸‡à¸à¸à¸:" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Icon Mode" +msgstr "โหมดมุมมà¸à¸‡" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Z Index Mode" +msgstr "โหมดมุมมà¸à¸‡" + +#: editor/plugins/tile_set_editor_plugin.cpp msgid "Copy bitmask." msgstr "" @@ -7346,6 +7940,7 @@ msgstr "ลบจุด" msgid "" "LMB: Set bit on.\n" "RMB: Set bit off.\n" +"Shift+LMB: Set wildcard bit.\n" "Click on another Tile to edit it." msgstr "" "คลิà¸à¸‹à¹‰à¸²à¸¢: à¸à¸³à¸«à¸™à¸”ค่าบิต เปิด\n" @@ -7476,6 +8071,79 @@ msgid "TileSet" msgstr "Tile Set" #: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Add input +" +msgstr "เพิ่มà¸à¸´à¸™à¸žà¸¸à¸•" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Add output +" +msgstr "เพิ่มà¸à¸´à¸™à¸žà¸¸à¸•" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar" +msgstr "à¸à¸±à¸•ราส่วน:" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector" +msgstr "คุณสมบัติ" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Add input port" +msgstr "เพิ่มà¸à¸´à¸™à¸žà¸¸à¸•" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add output port" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change input port type" +msgstr "เปลี่ยนประเภท" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change output port type" +msgstr "เปลี่ยนประเภท" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change input port name" +msgstr "เปลี่ยนชื่à¸à¸à¸´à¸™à¸žà¸¸à¸•" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change output port name" +msgstr "เปลี่ยนชื่à¸à¸à¸´à¸™à¸žà¸¸à¸•" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Remove input port" +msgstr "ลบจุด" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Remove output port" +msgstr "ลบจุด" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Set expression" +msgstr "à¹à¸à¹‰à¹„ขสมà¸à¸²à¸£" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Resize VisualShader node" +msgstr "Shader" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Set Uniform Name" msgstr "" @@ -7520,6 +8188,859 @@ msgstr "ขวา" #: editor/plugins/visual_shader_editor_plugin.cpp #, fuzzy +msgid "Create Shader Node" +msgstr "สร้างโหนด" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Color function." +msgstr "ไปยังฟังà¸à¹Œà¸Šà¸±à¸™..." + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Color operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Grayscale function." +msgstr "สร้างฟังà¸à¹Œà¸Šà¸±à¸™" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts HSV vector to RGB equivalent." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts RGB vector to HSV equivalent." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Sepia function." +msgstr "เปลี่ยนชื่à¸à¸Ÿà¸±à¸‡à¸à¹Œà¸Šà¸±à¸™" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Burn operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Darken operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Difference operator." +msgstr "เฉพาะที่à¹à¸•à¸à¸•่าง" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Dodge operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "HardLight operator" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Lighten operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Overlay operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Screen operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "SoftLight operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Color constant." +msgstr "คงที่" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Color uniform." +msgstr "เคลื่à¸à¸™à¸¢à¹‰à¸²à¸¢" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns an associated vector if the provided scalars are equal, greater or " +"less." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns an associated vector if the provided boolean value is true or false." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Boolean constant." +msgstr "à¹à¸à¹‰à¹„ขค่าคงที่เวà¸à¹€à¸•à¸à¸£à¹Œ" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'camera' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'inv_camera' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'inv_projection' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'normal' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'projection' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'time' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'viewport_size' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'world' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'texture_pixel_size' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Input parameter." +msgstr "จำà¸à¸±à¸”ด้วยโหนดà¹à¸¡à¹ˆ" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'binormal' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'fragcoord' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_coord' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_uv' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'side' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'tangent' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv2' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'vertex' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'view' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'albedo' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'attenuation' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'diffuse' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_color' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'roughness' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'specular' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'transmission' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'modelview' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_size' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'tangent' input parameter for vertex and fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_pass' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_coord' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_pixel_size' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_uv' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_alpha' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_height' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_uv' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_vec' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'normal' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'shadow_color' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'extra' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'projection' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'vertex' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'world' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'active' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'custom' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'custom_alpha' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'delta' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'emission_transform' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'index' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'lifetime' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'restart' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'time' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'transform' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'velocity' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar function." +msgstr "à¹à¸à¹‰à¹„ขฟังà¸à¹Œà¸Šà¸±à¸™à¸ªà¹€à¸à¸¥à¸²à¸£à¹Œ" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar operator." +msgstr "à¹à¸à¹‰à¹„ขเครื่à¸à¸‡à¸«à¸¡à¸²à¸¢à¸ªà¹€à¸à¸¥à¸²à¸£à¹Œ" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "E constant (2.718282). Represents the base of the natural logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Epsilon constant (0.00001). Smallest possible scalar number." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Phi constant (1.618034). Golden ratio." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi/4 constant (0.785398) or 45 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi/2 constant (1.570796) or 90 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi constant (3.141593) or 180 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Tau constant (6.283185) or 360 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Sqrt2 constant (1.414214). Square root of 2." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the absolute value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-tangent of the parameters." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Finds the nearest integer that is greater than or equal to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Constrains a value to lie between two further values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts a quantity in radians to degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-e Exponential." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-2 Exponential." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Finds the nearest integer less than or equal to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Computes the fractional part of the argument." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the inverse of the square root of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Natural logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-2 logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the greater of two values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the lesser of two values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Linear interpolation between two scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the opposite value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 - scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns the value of the first parameter raised to the power of the second." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts a quantity in degrees to radians." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 / scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the nearest integer to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the nearest even integer to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Clamps the value between 0.0 and 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Extracts the sign of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the square root of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( scalar(edge0), scalar(edge1), scalar(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if x is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( scalar(edge), scalar(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the truncated value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Adds scalar to scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Divides scalar by scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies scalar by scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the remainder of the two scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Subtracts scalar from scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar constant." +msgstr "à¹à¸à¹‰à¹„ขค่าคงที่สเà¸à¸¥à¸²à¸£à¹Œ" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar uniform." +msgstr "à¹à¸à¹‰à¹„ขสเà¸à¸¥à¸²à¸£à¹Œ Uniform" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Perform the cubic texture lookup." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Perform the texture lookup." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Cubic texture uniform." +msgstr "à¹à¸à¹‰à¹„ข Texture Uniform" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "2D texture uniform." +msgstr "à¹à¸à¹‰à¹„ข Texture Uniform" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Transform function." +msgstr "เครื่à¸à¸‡à¸¡à¸·à¸à¹€à¸„ลื่à¸à¸™à¸¢à¹‰à¸²à¸¢..." + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) Calculate the outer product of a pair of vectors.\n" +"\n" +"OuterProduct treats the first parameter 'c' as a column vector (matrix with " +"one column) and the second parameter 'r' as a row vector (matrix with one " +"row) and does a linear algebraic matrix multiply 'c * r', yielding a matrix " +"whose number of rows is the number of components in 'c' and whose number of " +"columns is the number of components in 'r'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Composes transform from four vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Decomposes transform to four vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the determinant of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the inverse of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the transpose of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies transform by transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies vector by transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Transform constant." +msgstr "ยà¸à¹€à¸¥à¸´à¸à¸à¸²à¸£à¹€à¸„ลื่à¸à¸™à¸¢à¹‰à¸²à¸¢" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Transform uniform." +msgstr "ยà¸à¹€à¸¥à¸´à¸à¸à¸²à¸£à¹€à¸„ลื่à¸à¸™à¸¢à¹‰à¸²à¸¢" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector function." +msgstr "ไปยังฟังà¸à¹Œà¸Šà¸±à¸™..." + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector operator." +msgstr "à¹à¸à¹‰à¹„ขเครื่à¸à¸‡à¸«à¸¡à¸²à¸¢à¹€à¸§à¸à¹€à¸•à¸à¸£à¹Œ" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Composes vector from three scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Decomposes vector to three scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the cross product of two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the distance between two points." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the dot product of two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns a vector that points in the same direction as a reference vector. " +"The function has three vector parameters : N, the vector to orient, I, the " +"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 "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the length of a vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Linear interpolation between two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the normalize product of vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 - vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 / vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns a vector that points in the direction of reflection ( a : incident " +"vector, b : normal vector )." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns a vector that points in the direction of refraction." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( vector(edge0), vector(edge1), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if 'x' is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( scalar(edge0), scalar(edge1), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if 'x' is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( vector(edge), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( scalar(edge), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Adds vector to vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Divides vector by vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies vector by vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the remainder of the two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Subtracts vector from vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector constant." +msgstr "à¹à¸à¹‰à¹„ขค่าคงที่เวà¸à¹€à¸•à¸à¸£à¹Œ" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector uniform." +msgstr "à¹à¸à¹‰à¹„ขเวà¸à¹€à¸•à¸à¸£à¹Œ Uniform" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Custom Godot Shader Language expression, with custom amount of input and " +"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 "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns falloff based on the dot product of surface normal and view " +"direction of camera (pass associated inputs to it)." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) (Fragment/Light mode only) Scalar derivative function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) (Fragment/Light mode only) Vector derivative function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Derivative in 'x' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Derivative in 'x' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Derivative in 'y' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Derivative in 'y' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Sum of absolute derivative " +"in 'x' and 'y'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Sum of absolute derivative " +"in 'x' and 'y'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy msgid "VisualShader" msgstr "Shader" @@ -7718,6 +9239,10 @@ msgid "Directory already contains a Godot project." msgstr "" #: editor/project_manager.cpp +msgid "New Game Project" +msgstr "โปรเจà¸à¸•์ใหม่" + +#: editor/project_manager.cpp msgid "Imported Project" msgstr "นำเข้าโปรเจà¸à¸•์à¹à¸¥à¹‰à¸§" @@ -7766,10 +9291,6 @@ msgid "Rename Project" msgstr "เปลี่ยนชื่à¸à¹‚ปรเจà¸à¸•์" #: editor/project_manager.cpp -msgid "New Game Project" -msgstr "โปรเจà¸à¸•์ใหม่" - -#: editor/project_manager.cpp msgid "Import Existing Project" msgstr "นำเข้าโปรเจà¸à¸•์ที่มีà¸à¸¢à¸¹à¹ˆà¹€à¸”ิม" @@ -7798,10 +9319,6 @@ msgid "Project Name:" msgstr "ชื่à¸à¹‚ปรเจà¸à¸•์:" #: editor/project_manager.cpp -msgid "Create folder" -msgstr "สร้างโฟลเดà¸à¸£à¹Œ" - -#: editor/project_manager.cpp msgid "Project Path:" msgstr "ที่à¸à¸¢à¸¹à¹ˆà¹‚ปรเจà¸à¸•์:" @@ -7811,10 +9328,6 @@ msgid "Project Installation Path:" msgstr "ที่à¸à¸¢à¸¹à¹ˆà¹‚ปรเจà¸à¸•์:" #: editor/project_manager.cpp -msgid "Browse" -msgstr "เลืà¸à¸" - -#: editor/project_manager.cpp msgid "Renderer:" msgstr "" @@ -7868,8 +9381,8 @@ msgid "" "\n" "If you proceed with opening it, it will be converted to Godot's current " "configuration file format.\n" -"Warning: You will not be able to open the project with previous versions of " -"the engine anymore." +"Warning: You won't be able to open the project with previous versions of the " +"engine anymore." msgstr "" #: editor/project_manager.cpp @@ -7880,8 +9393,8 @@ msgid "" "%s\n" "\n" "Do you want to convert it?\n" -"Warning: You will not be able to open the project with previous versions of " -"the engine anymore." +"Warning: You won't be able to open the project with previous versions of the " +"engine anymore." msgstr "" #: editor/project_manager.cpp @@ -7891,9 +9404,10 @@ msgid "" msgstr "" #: editor/project_manager.cpp +#, fuzzy msgid "" "Can't run project: no main scene defined.\n" -"Please edit the project and set the main scene in \"Project Settings\" under " +"Please edit the project and set the main scene in the Project Settings under " "the \"Application\" category." msgstr "" "ยังไม่ได้à¸à¸³à¸«à¸™à¸”ฉาà¸à¹€à¸£à¸´à¹ˆà¸¡à¸•้น à¸à¸³à¸«à¸™à¸”ตà¸à¸™à¸™à¸µà¹‰à¸«à¸£à¸·à¸à¹„ม่?\n" @@ -7908,25 +9422,45 @@ msgstr "" "à¸à¸£à¸¸à¸“าเปิดà¹à¸à¹‰à¹„ขโปรเจà¸à¸•์เพื่à¸à¸™à¸³à¹€à¸‚้าไฟล์" #: editor/project_manager.cpp -msgid "Are you sure to run more than one project?" +#, fuzzy +msgid "Are you sure to run %d projects at once?" msgstr "ยืนยันà¸à¸²à¸£à¸£à¸±à¸™à¹‚ปรเจà¸à¸•์มาà¸à¸à¸§à¹ˆà¸² 1 โปรเจà¸à¸•์?" #: editor/project_manager.cpp -msgid "Remove project from the list? (Folder contents will not be modified)" +#, fuzzy +msgid "" +"Remove %d projects from the list?\n" +"The project folders' contents won't be modified." msgstr "ลบโปรเจà¸à¸•์à¸à¸à¸à¸ˆà¸²à¸à¸£à¸²à¸¢à¸Šà¸·à¹ˆà¸? (โฟลเดà¸à¸£à¹Œà¸ˆà¸°à¹„ม่ถูà¸à¸¥à¸š)" #: editor/project_manager.cpp +#, fuzzy +msgid "" +"Remove this project from the list?\n" +"The project folder's contents won't be modified." +msgstr "ลบโปรเจà¸à¸•์à¸à¸à¸à¸ˆà¸²à¸à¸£à¸²à¸¢à¸Šà¸·à¹ˆà¸? (โฟลเดà¸à¸£à¹Œà¸ˆà¸°à¹„ม่ถูà¸à¸¥à¸š)" + +#: editor/project_manager.cpp +#, fuzzy +msgid "" +"Remove all missing projects from the list? (Folders contents will not be " +"modified)" +msgstr "ลบโปรเจà¸à¸•์à¸à¸à¸à¸ˆà¸²à¸à¸£à¸²à¸¢à¸Šà¸·à¹ˆà¸? (โฟลเดà¸à¸£à¹Œà¸ˆà¸°à¹„ม่ถูà¸à¸¥à¸š)" + +#: editor/project_manager.cpp +#, fuzzy msgid "" "Language changed.\n" -"The UI will update next time the editor or project manager starts." +"The interface will update after restarting the editor or project manager." msgstr "" "เปลี่ยนภาษาà¹à¸¥à¹‰à¸§\n" "à¸à¸²à¸£à¹€à¸›à¸¥à¸µà¹ˆà¸¢à¸™à¹à¸›à¸¥à¸‡à¸ˆà¸°à¸¡à¸µà¸œà¸¥à¹€à¸¡à¸·à¹ˆà¸à¹€à¸›à¸´à¸”โปรà¹à¸à¸£à¸¡à¹à¸à¹‰à¹„ขหรืà¸à¸•ัวจัดà¸à¸²à¸£à¹‚ปรเจà¸à¸•์ใหม่" #: editor/project_manager.cpp +#, fuzzy msgid "" -"You are about the scan %s folders for existing Godot projects. Do you " -"confirm?" +"Are you sure to scan %s folders for existing Godot projects?\n" +"This could take a while." msgstr "จะทำà¸à¸²à¸£à¸ªà¹à¸à¸™à¸«à¸²à¹‚ปรเจà¸à¸•์ใน %s โฟลเดà¸à¸£à¹Œ ยืนยัน?" #: editor/project_manager.cpp @@ -7950,6 +9484,11 @@ msgid "New Project" msgstr "โปรเจà¸à¸•์ใหม่" #: editor/project_manager.cpp +#, fuzzy +msgid "Remove Missing" +msgstr "ลบจุด" + +#: editor/project_manager.cpp msgid "Templates" msgstr "à¹à¸¡à¹ˆà¹à¸šà¸š" @@ -7966,9 +9505,10 @@ msgid "Can't run project" msgstr "ไม่สามารถรันโปรเจà¸à¸•์" #: editor/project_manager.cpp +#, fuzzy msgid "" -"You don't currently have any projects.\n" -"Would you like to explore the official example projects in the Asset Library?" +"You currently don't have any projects.\n" +"Would you like to explore official example projects in the Asset Library?" msgstr "" "คุณยังไม่มีโปรเจà¸à¸•์ใด ๆ\n" "ต้à¸à¸‡à¸à¸²à¸£à¸ªà¸³à¸£à¸§à¸ˆà¹‚ปรเจà¸à¸•์ตัวà¸à¸¢à¹ˆà¸²à¸‡à¹ƒà¸™à¹à¸«à¸¥à¹ˆà¸‡à¸£à¸§à¸¡à¸—รัพยาà¸à¸£à¸«à¸£à¸·à¸à¹„ม่?" @@ -7996,7 +9536,8 @@ msgid "" msgstr "" #: editor/project_settings_editor.cpp -msgid "Action '%s' already exists!" +#, fuzzy +msgid "An action with the name '%s' already exists." msgstr "มีà¸à¸²à¸£à¸à¸£à¸°à¸—ำ '%s' à¸à¸¢à¸¹à¹ˆà¹à¸¥à¹‰à¸§!" #: editor/project_settings_editor.cpp @@ -8156,10 +9697,6 @@ msgid "" msgstr "" #: editor/project_settings_editor.cpp -msgid "Already existing" -msgstr "มีà¸à¸¢à¸¹à¹ˆà¸à¹ˆà¸à¸™à¹à¸¥à¹‰à¸§" - -#: editor/project_settings_editor.cpp msgid "Add Input Action" msgstr "เพิ่มà¸à¸²à¸£à¸à¸£à¸°à¸—ำ" @@ -8224,7 +9761,7 @@ msgid "Override For..." msgstr "à¸à¸³à¸«à¸™à¸”เฉพาะ..." #: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp -msgid "Editor must be restarted for changes to take effect" +msgid "The editor must be restarted for changes to take effect." msgstr "" #: editor/project_settings_editor.cpp @@ -8285,11 +9822,13 @@ msgid "Locales Filter" msgstr "ตัวà¸à¸£à¸à¸‡à¸ ูมิภาค" #: editor/project_settings_editor.cpp -msgid "Show all locales" +#, fuzzy +msgid "Show All Locales" msgstr "à¹à¸ªà¸”งทุà¸à¸ ูมิภาค" #: editor/project_settings_editor.cpp -msgid "Show only selected locales" +#, fuzzy +msgid "Show Selected Locales Only" msgstr "à¹à¸ªà¸”งเฉพาะภูมิภาคที่เลืà¸à¸" #: editor/project_settings_editor.cpp @@ -8305,14 +9844,6 @@ msgid "AutoLoad" msgstr "à¸à¸à¹‚ต้โหลด" #: editor/property_editor.cpp -msgid "Ease In" -msgstr "เข้านุ่มนวล" - -#: editor/property_editor.cpp -msgid "Ease Out" -msgstr "à¸à¸à¸à¸™à¸¸à¹ˆà¸¡à¸™à¸§à¸¥" - -#: editor/property_editor.cpp msgid "Zero" msgstr "ศูนย์" @@ -8387,7 +9918,7 @@ msgstr "" #: editor/rename_dialog.cpp #, fuzzy -msgid "Advanced options" +msgid "Advanced Options" msgstr "ตัวเลืà¸à¸à¸à¸²à¸£à¸ˆà¸³à¸à¸±à¸”" #: editor/rename_dialog.cpp @@ -8657,8 +10188,8 @@ msgstr "ลบà¸à¸²à¸£à¸ªà¸·à¸šà¸—à¸à¸”" #: editor/scene_tree_dock.cpp #, fuzzy -msgid "Custom Node" -msgstr "ตัดโหนด" +msgid "Other Node" +msgstr "ลบโหนด" #: editor/scene_tree_dock.cpp msgid "Can't operate on nodes from a foreign scene!" @@ -8700,7 +10231,7 @@ msgstr "ลบà¸à¸²à¸£à¸ªà¸·à¸šà¸—à¸à¸”" #: editor/scene_tree_dock.cpp #, fuzzy -msgid "Open documentation" +msgid "Open Documentation" msgstr "เปิดคู่มืà¸" #: editor/scene_tree_dock.cpp @@ -8729,7 +10260,7 @@ msgstr "รวมจาà¸à¸‰à¸²à¸" msgid "Save Branch as Scene" msgstr "บันทึà¸à¸à¸´à¹ˆà¸‡à¹€à¸›à¹‡à¸™à¸‰à¸²à¸" -#: editor/scene_tree_dock.cpp +#: editor/scene_tree_dock.cpp editor/script_editor_debugger.cpp msgid "Copy Node Path" msgstr "คัดลà¸à¸à¸•ำà¹à¸«à¸™à¹ˆà¸‡à¹‚หนด" @@ -8773,6 +10304,21 @@ msgid "Toggle Visible" msgstr "ซ่à¸à¸™/à¹à¸ªà¸”ง" #: editor/scene_tree_editor.cpp +#, fuzzy +msgid "Unlock Node" +msgstr "เลืà¸à¸à¹‚หนด" + +#: editor/scene_tree_editor.cpp +#, fuzzy +msgid "Button Group" +msgstr "ปุ่ม 7" + +#: editor/scene_tree_editor.cpp +#, fuzzy +msgid "(Connecting From)" +msgstr "เชื่à¸à¸¡à¸•่à¸à¸œà¸´à¸”พลาด" + +#: editor/scene_tree_editor.cpp msgid "Node configuration warning:" msgstr "คำเตืà¸à¸™à¸à¸²à¸£à¸•ั้งค่าโหนด:" @@ -8801,9 +10347,9 @@ msgstr "" "โหนดà¸à¸¢à¸¹à¹ˆà¹ƒà¸™à¸à¸¥à¸¸à¹ˆà¸¡\n" "คลิà¸à¹€à¸žà¸·à¹ˆà¸à¹à¸ªà¸”งà¹à¸œà¸‡à¸à¸¥à¸¸à¹ˆà¸¡" -#: editor/scene_tree_editor.cpp editor/script_create_dialog.cpp +#: editor/scene_tree_editor.cpp #, fuzzy -msgid "Open Script" +msgid "Open Script:" msgstr "เปิดสคริปต์" #: editor/scene_tree_editor.cpp @@ -8855,73 +10401,84 @@ msgid "Select a Node" msgstr "เลืà¸à¸à¹‚หนด" #: editor/script_create_dialog.cpp -msgid "Error loading template '%s'" -msgstr "ผิดพลาดขณะโหลดà¹à¸¡à¹ˆà¹à¸šà¸š '%s'" +#, fuzzy +msgid "Path is empty." +msgstr "ตำà¹à¸«à¸™à¹ˆà¸‡à¸—ี่à¸à¸¢à¸¹à¹ˆà¸§à¹ˆà¸²à¸‡à¹€à¸›à¸¥à¹ˆà¸²" #: editor/script_create_dialog.cpp -msgid "Error - Could not create script in filesystem." -msgstr "ผิดพลาด - สร้างสคริปต์ไม่ได้" +#, fuzzy +msgid "Filename is empty." +msgstr "ตำà¹à¸«à¸™à¹ˆà¸‡à¸šà¸±à¸™à¸—ึà¸à¸§à¹ˆà¸²à¸‡à¹€à¸›à¸¥à¹ˆà¸²!" #: editor/script_create_dialog.cpp -msgid "Error loading script from %s" -msgstr "ผิดพลาดขณะโหลดสคริปต์จาภ%s" +#, fuzzy +msgid "Path is not local." +msgstr "ตำà¹à¸«à¸™à¹ˆà¸‡à¸—ี่à¸à¸¢à¸¹à¹ˆà¹„ม่ใช่ภายใน" #: editor/script_create_dialog.cpp -msgid "N/A" -msgstr "ไม่มี" +#, fuzzy +msgid "Invalid base path." +msgstr "ตำà¹à¸«à¸™à¹ˆà¸‡à¹€à¸£à¸´à¹ˆà¸¡à¸•้นไม่ถูà¸à¸•้à¸à¸‡" #: editor/script_create_dialog.cpp #, fuzzy -msgid "Open Script/Choose Location" -msgstr "เปิดตัวà¹à¸à¹‰à¹„ขสคริปต์" +msgid "A directory with the same name exists." +msgstr "มีโฟลเดà¸à¸£à¹Œà¸Šà¸·à¹ˆà¸à¸™à¸µà¹‰à¸à¸¢à¸¹à¹ˆà¹à¸¥à¹‰à¸§" #: editor/script_create_dialog.cpp -msgid "Path is empty" -msgstr "ตำà¹à¸«à¸™à¹ˆà¸‡à¸—ี่à¸à¸¢à¸¹à¹ˆà¸§à¹ˆà¸²à¸‡à¹€à¸›à¸¥à¹ˆà¸²" +#, fuzzy +msgid "Invalid extension." +msgstr "นามสà¸à¸¸à¸¥à¹„ม่ถูà¸à¸•้à¸à¸‡" #: editor/script_create_dialog.cpp #, fuzzy -msgid "Filename is empty" -msgstr "ตำà¹à¸«à¸™à¹ˆà¸‡à¸šà¸±à¸™à¸—ึà¸à¸§à¹ˆà¸²à¸‡à¹€à¸›à¸¥à¹ˆà¸²!" +msgid "Wrong extension chosen." +msgstr "นามสà¸à¸¸à¸¥à¹„ม่ถูà¸à¸•้à¸à¸‡" #: editor/script_create_dialog.cpp -msgid "Path is not local" -msgstr "ตำà¹à¸«à¸™à¹ˆà¸‡à¸—ี่à¸à¸¢à¸¹à¹ˆà¹„ม่ใช่ภายใน" +msgid "Error loading template '%s'" +msgstr "ผิดพลาดขณะโหลดà¹à¸¡à¹ˆà¹à¸šà¸š '%s'" #: editor/script_create_dialog.cpp -msgid "Invalid base path" -msgstr "ตำà¹à¸«à¸™à¹ˆà¸‡à¹€à¸£à¸´à¹ˆà¸¡à¸•้นไม่ถูà¸à¸•้à¸à¸‡" +msgid "Error - Could not create script in filesystem." +msgstr "ผิดพลาด - สร้างสคริปต์ไม่ได้" #: editor/script_create_dialog.cpp -msgid "Directory of the same name exists" -msgstr "มีโฟลเดà¸à¸£à¹Œà¸Šà¸·à¹ˆà¸à¸™à¸µà¹‰à¸à¸¢à¸¹à¹ˆà¹à¸¥à¹‰à¸§" +msgid "Error loading script from %s" +msgstr "ผิดพลาดขณะโหลดสคริปต์จาภ%s" #: editor/script_create_dialog.cpp -msgid "File exists, will be reused" -msgstr "มีไฟล์นี้à¸à¸¢à¸¹à¹ˆà¹à¸¥à¹‰à¸§ จะนำมาใช้" +msgid "N/A" +msgstr "ไม่มี" #: editor/script_create_dialog.cpp -msgid "Invalid extension" -msgstr "นามสà¸à¸¸à¸¥à¹„ม่ถูà¸à¸•้à¸à¸‡" +#, fuzzy +msgid "Open Script / Choose Location" +msgstr "เปิดตัวà¹à¸à¹‰à¹„ขสคริปต์" #: editor/script_create_dialog.cpp -msgid "Wrong extension chosen" -msgstr "นามสà¸à¸¸à¸¥à¹„ม่ถูà¸à¸•้à¸à¸‡" +#, fuzzy +msgid "Open Script" +msgstr "เปิดสคริปต์" #: editor/script_create_dialog.cpp -msgid "Invalid Path" -msgstr "ตำà¹à¸«à¸™à¹ˆà¸‡à¸œà¸´à¸”พลาด" +#, fuzzy +msgid "File exists, it will be reused." +msgstr "มีไฟล์นี้à¸à¸¢à¸¹à¹ˆà¹à¸¥à¹‰à¸§ จะนำมาใช้" #: editor/script_create_dialog.cpp -msgid "Invalid class name" +#, fuzzy +msgid "Invalid class name." msgstr "ชื่à¸à¸„ลาสไม่ถูà¸à¸•้à¸à¸‡" #: editor/script_create_dialog.cpp -msgid "Invalid inherited parent name or path" +#, fuzzy +msgid "Invalid inherited parent name or path." msgstr "ชื่à¸à¸«à¸£à¸·à¸à¸•ำà¹à¸«à¸™à¹ˆà¸‡à¸—ีสืบทà¸à¸”ไม่ถูà¸à¸•้à¸à¸‡" #: editor/script_create_dialog.cpp -msgid "Script valid" +#, fuzzy +msgid "Script is valid." msgstr "สคริปต์ถูà¸à¸•้à¸à¸‡" #: editor/script_create_dialog.cpp @@ -8929,15 +10486,18 @@ msgid "Allowed: a-z, A-Z, 0-9 and _" msgstr "à¸à¸±à¸à¸‚ระที่ใช้ได้: a-z, A-Z, 0-9 à¹à¸¥à¸° _" #: editor/script_create_dialog.cpp -msgid "Built-in script (into scene file)" +#, fuzzy +msgid "Built-in script (into scene file)." msgstr "à¸à¸±à¸‡à¸ªà¸„ริปต์ในไฟล์ฉาà¸" #: editor/script_create_dialog.cpp -msgid "Create new script file" +#, fuzzy +msgid "Will create a new script file." msgstr "สร้างสคริปต์ใหม่" #: editor/script_create_dialog.cpp -msgid "Load existing script file" +#, fuzzy +msgid "Will load an existing script file." msgstr "โหลดสคริปต์จาà¸à¸”ิสà¸à¹Œ" #: editor/script_create_dialog.cpp @@ -9069,6 +10629,10 @@ msgstr "ราà¸à¸œà¸±à¸‡à¸‰à¸²à¸:" msgid "Set From Tree" msgstr "à¸à¸³à¸«à¸™à¸”จาà¸à¸œà¸±à¸‡" +#: editor/script_editor_debugger.cpp +msgid "Export measures as CSV" +msgstr "" + #: editor/settings_config_dialog.cpp #, fuzzy msgid "Erase Shortcut" @@ -9208,6 +10772,15 @@ msgid "GDNativeLibrary" msgstr "GDNativeLibrary" #: 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 "ปิดà¸à¸²à¸£à¸à¸±à¸žà¹€à¸”ทตัวหมุน" + +#: modules/gdnative/gdnative_library_singleton_editor.cpp msgid "Library" msgstr "ไลบรารี" @@ -9294,8 +10867,9 @@ msgid "GridMap Fill Selection" msgstr "ลบที่เลืà¸à¸à¹ƒà¸™ GridMap" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "GridMap Duplicate Selection" -msgstr "ทำซ้ำใน GridMap" +#, fuzzy +msgid "GridMap Paste Selection" +msgstr "ลบที่เลืà¸à¸à¹ƒà¸™ GridMap" #: modules/gridmap/grid_map_editor_plugin.cpp msgid "GridMap Paint" @@ -9362,18 +10936,6 @@ msgid "Cursor Clear Rotation" msgstr "เคà¸à¸£à¹Œà¹€à¸‹à¸à¸£à¹Œà¸¥à¸šà¸à¸²à¸£à¸«à¸¡à¸¸à¸™" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Create Area" -msgstr "สร้างพื้นที่ใหม่" - -#: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Create Exterior Connector" -msgstr "สร้างจุดเชื่à¸à¸¡à¸•่à¸à¸ ายนà¸à¸" - -#: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Erase Area" -msgstr "ลบพื้นที่" - -#: modules/gridmap/grid_map_editor_plugin.cpp msgid "Clear Selection" msgstr "ลบที่เลืà¸à¸" @@ -9730,18 +11292,11 @@ msgid "Available Nodes:" msgstr "โหนดที่มีให้ใช้:" #: modules/visual_script/visual_script_editor.cpp -msgid "Select or create a function to edit graph" +#, fuzzy +msgid "Select or create a function to edit its graph." msgstr "เลืà¸à¸à¸«à¸£à¸·à¸à¸ªà¸£à¹‰à¸²à¸‡à¸Ÿà¸±à¸‡à¸à¹Œà¸Šà¸±à¸™à¹€à¸žà¸·à¹ˆà¸à¹à¸à¹‰à¹„ขà¸à¸£à¸²à¸Ÿ" #: modules/visual_script/visual_script_editor.cpp -msgid "Edit Signal Arguments:" -msgstr "à¹à¸à¹‰à¹„ขตัวà¹à¸›à¸£à¸ªà¸±à¸à¸à¸²à¸“:" - -#: modules/visual_script/visual_script_editor.cpp -msgid "Edit Variable:" -msgstr "à¹à¸à¹‰à¹„ขตัวà¹à¸›à¸£:" - -#: modules/visual_script/visual_script_editor.cpp msgid "Delete Selected" msgstr "ลบสิ่งที่เลืà¸à¸" @@ -9870,6 +11425,19 @@ msgid "Debug keystore not configured in the Editor Settings nor in the preset." msgstr "" #: platform/android/export/export.cpp +msgid "Custom build requires a valid Android SDK path in Editor Settings." +msgstr "" + +#: platform/android/export/export.cpp +msgid "Invalid Android SDK path for custom build in Editor Settings." +msgstr "" + +#: platform/android/export/export.cpp +msgid "" +"Android project is not installed for compiling. Install from Editor menu." +msgstr "" + +#: platform/android/export/export.cpp msgid "Invalid public key for APK expansion." msgstr "" @@ -9878,6 +11446,34 @@ msgstr "" msgid "Invalid package name:" msgstr "ชื่à¸à¸„ลาสไม่ถูà¸à¸•้à¸à¸‡" +#: platform/android/export/export.cpp +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 "" +"Android build version mismatch:\n" +" Template installed: %s\n" +" Godot Version: %s\n" +"Please reinstall Android build template from 'Project' menu." +msgstr "" + +#: platform/android/export/export.cpp +msgid "Building Android Project (gradle)" +msgstr "" + +#: 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 "" + +#: platform/android/export/export.cpp +msgid "No build apk generated at: " +msgstr "" + #: platform/iphone/export/export.cpp msgid "Identifier is missing." msgstr "" @@ -10149,27 +11745,32 @@ msgid "ARVRCamera must have an ARVROrigin node as its parent" msgstr "ARVRCamera ต้à¸à¸‡à¸¡à¸µ ARVROrigin เป็นโหนดà¹à¸¡à¹ˆ" #: scene/3d/arvr_nodes.cpp -msgid "ARVRController must have an ARVROrigin node as its parent" +#, fuzzy +msgid "ARVRController must have an ARVROrigin node as its parent." msgstr "ARVRController ต้à¸à¸‡à¸¡à¸µ ARVROrigin เป็นโหนดà¹à¸¡à¹ˆ" #: scene/3d/arvr_nodes.cpp +#, fuzzy msgid "" -"The controller id must not be 0 or this controller will not be bound to an " -"actual controller" +"The controller ID must not be 0 or this controller won't be bound to an " +"actual controller." msgstr "Controller id ต้à¸à¸‡à¹„ม่เป็น 0 ไม่เช่นนั้นตัวควบคุมนี้จะไม่เชื่à¸à¸¡à¸à¸±à¸šà¸à¸¸à¸›à¸à¸£à¸“์จริง" #: scene/3d/arvr_nodes.cpp -msgid "ARVRAnchor must have an ARVROrigin node as its parent" +#, fuzzy +msgid "ARVRAnchor must have an ARVROrigin node as its parent." msgstr "ARVRAnchor ต้à¸à¸‡à¸¡à¸µ ARVROrigin เป็นโหนดà¹à¸¡à¹ˆ" #: scene/3d/arvr_nodes.cpp +#, fuzzy msgid "" -"The anchor id must not be 0 or this anchor will not be bound to an actual " -"anchor" +"The anchor ID must not be 0 or this anchor won't be bound to an actual " +"anchor." msgstr "Anchor id ต้à¸à¸‡à¹„ม่เป็น 0 ไม่เช่นนั้น anchor นี้จะไม่เชื่à¸à¸¡à¸à¸±à¸š anchor จริง" #: scene/3d/arvr_nodes.cpp -msgid "ARVROrigin requires an ARVRCamera child node" +#, fuzzy +msgid "ARVROrigin requires an ARVRCamera child node." msgstr "ARVROrigin ต้à¸à¸‡à¸¡à¸µ ARVRCamera เป็นโหนดลูà¸" #: scene/3d/baked_lightmap.cpp @@ -10247,8 +11848,8 @@ msgstr "ไม่มีà¸à¸²à¸£à¹à¸ªà¸”งผลเนื่à¸à¸‡à¸ˆà¸²à¸à¹„ #: scene/3d/cpu_particles.cpp msgid "" -"CPUParticles animation requires the usage of a SpatialMaterial with " -"\"Billboard Particles\" enabled." +"CPUParticles animation requires the usage of a SpatialMaterial whose " +"Billboard Mode is set to \"Particle Billboard\"." msgstr "" #: scene/3d/gi_probe.cpp @@ -10287,8 +11888,8 @@ msgstr "ไม่มีà¸à¸²à¸£à¹à¸ªà¸”งผลเนื่à¸à¸‡à¸ˆà¸²à¸à¹„ #: scene/3d/particles.cpp msgid "" -"Particles animation requires the usage of a SpatialMaterial with \"Billboard " -"Particles\" enabled." +"Particles animation requires the usage of a SpatialMaterial whose Billboard " +"Mode is set to \"Particle Billboard\"." msgstr "" #: scene/3d/path.cpp @@ -10316,7 +11917,7 @@ msgid "Path property must point to a valid Spatial node to work." msgstr "ต้à¸à¸‡à¹à¸à¹‰à¹„ข Path ให้ชี้ไปยังโหนด Spatial จึงจะทำงานได้" #: scene/3d/soft_body.cpp -msgid "This body will be ignored until you set a mesh" +msgid "This body will be ignored until you set a mesh." msgstr "" #: scene/3d/soft_body.cpp @@ -10422,7 +12023,7 @@ msgstr "เพิ่มสีที่เลืà¸à¸à¹ƒà¸™à¸£à¸²à¸¢à¸à¸²à¸£à¹‚ msgid "" "Container by itself serves no purpose unless a script configures it's " "children placement behavior.\n" -"If you dont't intend to add a script, then please use a plain 'Control' node " +"If you don't intend to add a script, then please use a plain 'Control' node " "instead." msgstr "" @@ -10434,11 +12035,6 @@ msgstr "à¹à¸ˆà¹‰à¸‡à¹€à¸•ืà¸à¸™!" msgid "Please Confirm..." msgstr "à¸à¸£à¸¸à¸“ายืนยัน..." -#: scene/gui/file_dialog.cpp -#, fuzzy -msgid "Go to parent folder." -msgstr "ไปยังโฟลเดà¸à¸£à¹Œà¸«à¸¥à¸±à¸" - #: scene/gui/popup.cpp msgid "" "Popups will hide by default unless you call popup() or any of the popup*() " @@ -10523,6 +12119,77 @@ msgstr "" msgid "Varyings can only be assigned in vertex function." msgstr "" +#: servers/visual/shader_language.cpp +msgid "Constants cannot be modified." +msgstr "" + +#~ msgid "Path to Node:" +#~ msgstr "ตำà¹à¸«à¸™à¹ˆà¸‡à¸—ี่à¸à¸¢à¸¹à¹ˆà¹‚หนด:" + +#~ msgid "Delete selected files?" +#~ msgstr "ลบไฟล์ที่เลืà¸à¸?" + +#~ msgid "There is no 'res://default_bus_layout.tres' file." +#~ msgstr "ไม่พบไฟล์ 'res://default_bus_layout.tres'" + +#~ msgid "Go to parent folder" +#~ msgstr "ไปยังโฟลเดà¸à¸£à¹Œà¸«à¸¥à¸±à¸" + +#~ msgid "Select device from the list" +#~ msgstr "เลืà¸à¸à¸à¸¸à¸›à¸à¸£à¸“์จาà¸à¸£à¸²à¸¢à¸Šà¸·à¹ˆà¸" + +#~ msgid "Open Scene(s)" +#~ msgstr "เปิดไฟล์ฉาà¸" + +#~ msgid "Previous Directory" +#~ msgstr "โฟลเดà¸à¸£à¹Œà¸à¹ˆà¸à¸™à¸«à¸™à¹‰à¸²" + +#~ msgid "Next Directory" +#~ msgstr "โฟลเดà¸à¸£à¹Œà¸–ัดไป" + +#~ msgid "Ease in" +#~ msgstr "เข้านุ่มนวล" + +#~ msgid "Ease out" +#~ msgstr "à¸à¸à¸à¸™à¸¸à¹ˆà¸¡à¸™à¸§à¸¥" + +#~ msgid "Create Convex Static Body" +#~ msgstr "สร้าง StaticBody ทรงตัน" + +#~ msgid "CheckBox Radio1" +#~ msgstr "ปุ่มเรดิโภ1" + +#~ msgid "CheckBox Radio2" +#~ msgstr "ปุ่มเรดิโภ2" + +#~ msgid "Create folder" +#~ msgstr "สร้างโฟลเดà¸à¸£à¹Œ" + +#~ msgid "Already existing" +#~ msgstr "มีà¸à¸¢à¸¹à¹ˆà¸à¹ˆà¸à¸™à¹à¸¥à¹‰à¸§" + +#, fuzzy +#~ msgid "Custom Node" +#~ msgstr "ตัดโหนด" + +#~ msgid "Invalid Path" +#~ msgstr "ตำà¹à¸«à¸™à¹ˆà¸‡à¸œà¸´à¸”พลาด" + +#~ msgid "GridMap Duplicate Selection" +#~ msgstr "ทำซ้ำใน GridMap" + +#~ msgid "Create Area" +#~ msgstr "สร้างพื้นที่ใหม่" + +#~ msgid "Create Exterior Connector" +#~ msgstr "สร้างจุดเชื่à¸à¸¡à¸•่à¸à¸ ายนà¸à¸" + +#~ msgid "Edit Signal Arguments:" +#~ msgstr "à¹à¸à¹‰à¹„ขตัวà¹à¸›à¸£à¸ªà¸±à¸à¸à¸²à¸“:" + +#~ msgid "Edit Variable:" +#~ msgstr "à¹à¸à¹‰à¹„ขตัวà¹à¸›à¸£:" + #, fuzzy #~ msgid "Snap (s): " #~ msgstr "Snap (พิà¸à¹€à¸‹à¸¥):" @@ -10645,9 +12312,6 @@ msgstr "" #~ msgid "Class List:" #~ msgstr "รายชื่à¸à¸„ลาส:" -#~ msgid "Search Classes" -#~ msgstr "ค้นหาคลาส" - #~ msgid "Public Methods" #~ msgstr "เมท็à¸à¸”" @@ -10726,9 +12390,6 @@ msgstr "" #~ msgid "Error:" #~ msgstr "ผิดพลาด:" -#~ msgid "Source:" -#~ msgstr "ต้นฉบับ:" - #~ msgid "Function:" #~ msgstr "ฟังà¸à¹Œà¸Šà¸±à¸™:" @@ -10750,21 +12411,9 @@ msgstr "" #~ msgid "Get" #~ msgstr "รับ" -#~ msgid "Change Scalar Constant" -#~ msgstr "à¹à¸à¹‰à¹„ขค่าคงที่สเà¸à¸¥à¸²à¸£à¹Œ" - -#~ msgid "Change Vec Constant" -#~ msgstr "à¹à¸à¹‰à¹„ขค่าคงที่เวà¸à¹€à¸•à¸à¸£à¹Œ" - #~ msgid "Change RGB Constant" #~ msgstr "à¹à¸à¹‰à¹„ขค่าคงที่สี" -#~ msgid "Change Scalar Operator" -#~ msgstr "à¹à¸à¹‰à¹„ขเครื่à¸à¸‡à¸«à¸¡à¸²à¸¢à¸ªà¹€à¸à¸¥à¸²à¸£à¹Œ" - -#~ msgid "Change Vec Operator" -#~ msgstr "à¹à¸à¹‰à¹„ขเครื่à¸à¸‡à¸«à¸¡à¸²à¸¢à¹€à¸§à¸à¹€à¸•à¸à¸£à¹Œ" - #~ msgid "Change Vec Scalar Operator" #~ msgstr "à¹à¸à¹‰à¹„ขเครื่à¸à¸‡à¸«à¸¡à¸²à¸¢à¹€à¸§à¸à¹€à¸•à¸à¸£à¹Œà¸ªà¹€à¸à¸¥à¸²à¸£à¹Œ" @@ -10774,18 +12423,9 @@ msgstr "" #~ msgid "Toggle Rot Only" #~ msgstr "สลับเฉพาะà¸à¸²à¸£à¸«à¸¡à¸¸à¸™" -#~ msgid "Change Scalar Function" -#~ msgstr "à¹à¸à¹‰à¹„ขฟังà¸à¹Œà¸Šà¸±à¸™à¸ªà¹€à¸à¸¥à¸²à¸£à¹Œ" - #~ msgid "Change Vec Function" #~ msgstr "à¹à¸à¹‰à¹„ขฟังà¸à¹Œà¸Šà¸±à¸™à¹€à¸§à¸à¹€à¸•à¸à¸£à¹Œ" -#~ msgid "Change Scalar Uniform" -#~ msgstr "à¹à¸à¹‰à¹„ขสเà¸à¸¥à¸²à¸£à¹Œ Uniform" - -#~ msgid "Change Vec Uniform" -#~ msgstr "à¹à¸à¹‰à¹„ขเวà¸à¹€à¸•à¸à¸£à¹Œ Uniform" - #~ msgid "Change RGB Uniform" #~ msgstr "à¹à¸à¹‰à¹„ข RGB Uniform" @@ -10795,9 +12435,6 @@ msgstr "" #~ msgid "Change XForm Uniform" #~ msgstr "à¹à¸à¹‰à¹„ข XForm Uniform" -#~ msgid "Change Texture Uniform" -#~ msgstr "à¹à¸à¹‰à¹„ข Texture Uniform" - #~ msgid "Change Cubemap Uniform" #~ msgstr "à¹à¸à¹‰à¹„ข Cubemap Uniform" @@ -10816,9 +12453,6 @@ msgstr "" #~ msgid "Modify Curve Map" #~ msgstr "à¹à¸à¹‰à¹„ขเส้นโค้ง" -#~ msgid "Change Input Name" -#~ msgstr "เปลี่ยนชื่à¸à¸à¸´à¸™à¸žà¸¸à¸•" - #~ msgid "Connect Graph Nodes" #~ msgstr "เชื่à¸à¸¡à¸•่à¸à¹‚หนด" @@ -10846,9 +12480,6 @@ msgstr "" #~ msgid "Add Shader Graph Node" #~ msgstr "เพิ่มโหนด" -#~ msgid "Disabled" -#~ msgstr "ปิดใช้งาน" - #~ msgid "Move Anim Track Up" #~ msgstr "เลื่à¸à¸™à¹à¸—ร็à¸à¹à¸à¸™à¸´à¹€à¸¡à¸Šà¸±à¸™à¸‚ึ้น" @@ -11029,15 +12660,9 @@ msgstr "" #~ msgid "Item name or ID:" #~ msgstr "ชื่à¸à¸«à¸£à¸·à¸ ID ไà¸à¹€à¸—ม:" -#~ msgid "Autotiles" -#~ msgstr "Autotiles" - #~ msgid "Export templates for this platform are missing/corrupted: " #~ msgstr "à¹à¸¡à¹ˆà¹à¸šà¸šà¸ªà¹ˆà¸‡à¸à¸à¸à¸ªà¸³à¸«à¸£à¸±à¸šà¹à¸žà¸¥à¸•ฟà¸à¸£à¹Œà¸¡à¸™à¸µà¹‰à¸ªà¸¹à¸à¸«à¸²à¸¢/เสียหาย: " -#~ msgid "Button 7" -#~ msgstr "ปุ่ม 7" - #~ msgid "Button 8" #~ msgstr "ปุ่ม 8" @@ -11306,9 +12931,6 @@ msgstr "" #~ msgid "Source Texture(s):" #~ msgstr "Texture ต้นฉบับ:" -#~ msgid "Target Path:" -#~ msgstr "ตำà¹à¸«à¸™à¹ˆà¸‡à¸—ี่à¸à¸¢à¸¹à¹ˆ:" - #~ msgid "Accept" #~ msgstr "ยà¸à¸¡à¸£à¸±à¸š" @@ -11924,9 +13546,6 @@ msgstr "" #~ msgid "Shrink By:" #~ msgstr "ลดไป:" -#~ msgid "Preview Atlas" -#~ msgstr "ตัวà¸à¸¢à¹ˆà¸²à¸‡ Atlas" - #~ msgid "Select None" #~ msgstr "ไม่เลืà¸à¸" diff --git a/editor/translations/tr.po b/editor/translations/tr.po index 30f753d6ab..16c42142ec 100644 --- a/editor/translations/tr.po +++ b/editor/translations/tr.po @@ -25,12 +25,14 @@ # Mertcan Duman <mertcan.dmn16@gmail.com>, 2019. # Furkan Türkal <furkan.turkal@hotmail.com>, 2019. # Aiden Demir <dnm00110011@hotmail.com>, 2019. +# Anton Semchenko <semchenkoanton@protonmail.com>, 2019. +# Enes Can Yerlikaya <enescanyerlikaya@gmail.com>, 2019. msgid "" msgstr "" "Project-Id-Version: Godot Engine editor\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2019-04-14 13:04+0000\n" -"Last-Translator: Aiden Demir <dnm00110011@hotmail.com>\n" +"PO-Revision-Date: 2019-06-16 19:41+0000\n" +"Last-Translator: Anton Semchenko <semchenkoanton@protonmail.com>\n" "Language-Team: Turkish <https://hosted.weblate.org/projects/godot-engine/" "godot/tr/>\n" "Language: tr\n" @@ -38,23 +40,22 @@ 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.6-dev\n" +"X-Generator: Weblate 3.7-dev\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() için geçersiz türde deÄŸiÅŸtirgen, TYPE_* sabitlerini kullanın." +msgstr "convert() için geçersiz argüman tipi, TYPE_* sabitlerini kullanın." #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: 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 "Byte kodu çözmek için yetersiz byte, ya da Geçersiz format." +msgstr "Byte kodu çözmek için yetersiz byte, ya da geçersiz format." #: core/math/expression.cpp msgid "Invalid input %i (not passed) in expression" -msgstr "%i ifadesindeki girdi geçersiz" +msgstr "İfade de geçersiz girdi %i (geçmedi)." #: core/math/expression.cpp msgid "self can't be used because instance is null (not passed)" @@ -67,22 +68,23 @@ msgstr "Geçersiz iÅŸlenen operatörler %s, %s ve %s" #: core/math/expression.cpp msgid "Invalid index of type %s for base type %s" -msgstr "%s temel tipi için, %s tipinde geçersiz index." +msgstr "%s temel tipi için, %s tipinde geçersiz indeks" #: core/math/expression.cpp msgid "Invalid named index '%s' for base type %s" -msgstr "%s temel tipi için, geçersiz isimlendirilmiÅŸ index %s" +msgstr "%s temel tipi için, geçersiz isimlendirilmiÅŸ indeks '%s'" #: core/math/expression.cpp msgid "Invalid arguments to construct '%s'" -msgstr "'%s' oluÅŸturulurken geçersiz argümanlar atandı." +msgstr "'%s' oluÅŸturulurken geçersiz argümanlar atandı" #: core/math/expression.cpp msgid "On call to '%s':" -msgstr "'%s': çaÄŸrıldığında." +msgstr "'%s' çaÄŸrıldığında:" #: editor/animation_bezier_editor.cpp #: editor/plugins/asset_library_editor_plugin.cpp +#, fuzzy msgid "Free" msgstr "Ücretsiz" @@ -94,6 +96,15 @@ msgstr "DengelenmiÅŸ" msgid "Mirror" msgstr "Ayna" +#: editor/animation_bezier_editor.cpp editor/editor_profiler.cpp +msgid "Time:" +msgstr "Süre:" + +#: editor/animation_bezier_editor.cpp +#, fuzzy +msgid "Value:" +msgstr "DeÄŸer" + #: editor/animation_bezier_editor.cpp msgid "Insert Key Here" msgstr "Anahtar Gir" @@ -177,12 +188,16 @@ msgid "Animation Playback Track" msgstr "Animasyon Oynatıcı İzi" #: editor/animation_track_editor.cpp -msgid "Add Track" -msgstr "İz Ekle" +msgid "Animation length (frames)" +msgstr "Animasyon uzunluÄŸu (kare)" #: editor/animation_track_editor.cpp -msgid "Animation Length Time (seconds)" -msgstr "Animasyon UzunluÄŸu (saniye)" +msgid "Animation length (seconds)" +msgstr "Animasyon uzunluÄŸu (kare)" + +#: editor/animation_track_editor.cpp +msgid "Add Track" +msgstr "İz Ekle" #: editor/animation_track_editor.cpp msgid "Animation Looping" @@ -276,9 +291,8 @@ msgid "Insert Key" msgstr "Anahtar Gir" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Duplicate Key(s)" -msgstr "Düğüm(leri) ÇoÄŸalt" +msgstr "Anahtar(lar)ı ÇoÄŸalt" #: editor/animation_track_editor.cpp msgid "Delete Key(s)" @@ -309,11 +323,13 @@ msgid "Create %d NEW tracks and insert keys?" msgstr "%d YENİ izler oluÅŸtur ve anahtarlar gir?" #: editor/animation_track_editor.cpp editor/create_dialog.cpp -#: editor/editor_audio_buses.cpp editor/editor_plugin_settings.cpp -#: editor/plugin_config_dialog.cpp +#: editor/editor_audio_buses.cpp editor/editor_feature_profile.cpp +#: editor/editor_plugin_settings.cpp editor/plugin_config_dialog.cpp #: editor/plugins/abstract_polygon_2d_editor.cpp #: editor/plugins/mesh_instance_editor_plugin.cpp -#: editor/plugins/particles_editor_plugin.cpp editor/script_create_dialog.cpp +#: editor/plugins/particles_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_create_dialog.cpp msgid "Create" msgstr "OluÅŸtur" @@ -348,7 +364,7 @@ msgstr "İzleri Yeniden Sırala" #: editor/animation_track_editor.cpp msgid "Transform tracks only apply to Spatial-based nodes." -msgstr "" +msgstr "Dönüşüm izleri sadece uzaysal köklü düğümlere uygulanabilir." #: editor/animation_track_editor.cpp msgid "" @@ -431,6 +447,23 @@ msgstr "" "Bu seçenek yalnızca tek izli olduÄŸundan, Bezier düzenlemede iÅŸe yaramaz." #: editor/animation_track_editor.cpp +msgid "" +"This animation belongs to an imported scene, so changes to imported tracks " +"will not be saved.\n" +"\n" +"To enable the ability to add custom tracks, navigate to the scene's import " +"settings and set\n" +"\"Animation > Storage\" to \"Files\", enable \"Animation > Keep Custom Tracks" +"\", then re-import.\n" +"Alternatively, use an import preset that imports animations to separate " +"files." +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Warning: Editing imported animation" +msgstr "" + +#: editor/animation_track_editor.cpp msgid "Only show tracks from nodes selected in tree." msgstr "sadece aÄŸaç'ta seçili düğümlerdeki izleri göster." @@ -439,9 +472,8 @@ msgid "Group tracks by node or display them as plain list." msgstr "İzleri düğüme göre grupla veya onları düz liste olarak göster." #: editor/animation_track_editor.cpp -#, fuzzy msgid "Snap:" -msgstr "Yapış" +msgstr "Yapıştır:" #: editor/animation_track_editor.cpp msgid "Animation step value." @@ -449,7 +481,7 @@ msgstr "Animasyon adım deÄŸeri." #: editor/animation_track_editor.cpp msgid "Seconds" -msgstr "" +msgstr "Saniye" #: editor/animation_track_editor.cpp msgid "FPS" @@ -564,7 +596,8 @@ msgstr "Ölçek Oranı:" msgid "Select tracks to copy:" msgstr "Kopyalanacak izleri seç:" -#: editor/animation_track_editor.cpp editor/editor_properties.cpp +#: editor/animation_track_editor.cpp editor/editor_log.cpp +#: editor/editor_properties.cpp #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp @@ -632,6 +665,11 @@ msgstr "Tümünü DeÄŸiÅŸtir" msgid "Selection Only" msgstr "Yalnızca Seçim" +#: editor/code_editor.cpp editor/plugins/script_text_editor.cpp +#: editor/plugins/text_editor.cpp +msgid "Standard" +msgstr "" + #: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/texture_region_editor_plugin.cpp #: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp @@ -657,21 +695,39 @@ msgid "Line and column numbers." msgstr "Satır ve sütun numaraları." #: editor/connections_dialog.cpp -msgid "Method in target Node must be specified!" +#, fuzzy +msgid "Method in target node must be specified." msgstr "Hedef Düğümdeki Metot tanımlanmış olmalı!" #: editor/connections_dialog.cpp +#, fuzzy msgid "" -"Target method not found! Specify a valid method or attach a script to target " -"Node." +"Target method not found. Specify a valid method or attach a script to the " +"target node." msgstr "" "Amaçlanan metot bulunamadı! Geçerli bir metot tanımla ya da amaçlanan düğüme " "bir betik iliÅŸtirin." #: editor/connections_dialog.cpp -msgid "Connect To Node:" +#, fuzzy +msgid "Connect to Node:" msgstr "Düğüme BaÄŸla:" +#: editor/connections_dialog.cpp +#, fuzzy +msgid "Connect to Script:" +msgstr "Ana makineye baÄŸlanılamadı:" + +#: editor/connections_dialog.cpp +#, fuzzy +msgid "From Signal:" +msgstr "Sinyaller:" + +#: editor/connections_dialog.cpp +#, fuzzy +msgid "Scene does not contain any script." +msgstr "Düğüm uzambilgisi içermiyor." + #: editor/connections_dialog.cpp editor/editor_autoload_settings.cpp #: editor/groups_editor.cpp editor/plugins/item_list_editor_plugin.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_settings_editor.cpp @@ -679,10 +735,12 @@ msgid "Add" msgstr "Ekle" #: editor/connections_dialog.cpp editor/dependency_editor.cpp -#: editor/groups_editor.cpp editor/plugins/animation_player_editor_plugin.cpp +#: editor/editor_feature_profile.cpp editor/groups_editor.cpp +#: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp #: editor/plugins/resource_preloader_editor_plugin.cpp -#: editor/plugins/theme_editor_plugin.cpp editor/project_manager.cpp +#: editor/plugins/theme_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_manager.cpp #: editor/project_settings_editor.cpp msgid "Remove" msgstr "Kaldır" @@ -696,21 +754,32 @@ msgid "Extra Call Arguments:" msgstr "Ekstra ÇaÄŸrı Argümanları:" #: editor/connections_dialog.cpp -msgid "Path to Node:" -msgstr "Düğüm Yolu:" - -#: editor/connections_dialog.cpp -msgid "Make Function" -msgstr "İşlev Yap" +#, fuzzy +msgid "Advanced" +msgstr "Yapışma ayarları" #: editor/connections_dialog.cpp msgid "Deferred" msgstr "ErtelenmiÅŸ" #: editor/connections_dialog.cpp +msgid "" +"Defers the signal, storing it in a queue and only firing it at idle time." +msgstr "" + +#: editor/connections_dialog.cpp msgid "Oneshot" msgstr "Tek sefer" +#: editor/connections_dialog.cpp +msgid "Disconnects the signal after its first emission." +msgstr "" + +#: editor/connections_dialog.cpp +#, fuzzy +msgid "Cannot connect signal" +msgstr "BaÄŸlantı Sinyali: " + #: editor/connections_dialog.cpp editor/dependency_editor.cpp #: editor/export_template_manager.cpp editor/groups_editor.cpp #: editor/plugins/animation_player_editor_plugin.cpp @@ -751,11 +820,13 @@ msgid "Disconnect" msgstr "BaÄŸlantıyı kes" #: editor/connections_dialog.cpp -msgid "Connect Signal: " +#, fuzzy +msgid "Connect a Signal to a Method" msgstr "BaÄŸlantı Sinyali: " #: editor/connections_dialog.cpp -msgid "Edit Connection: " +#, fuzzy +msgid "Edit Connection:" msgstr "BaÄŸlantıları Düzenle " #: editor/connections_dialog.cpp @@ -788,7 +859,6 @@ msgid "Change %s Type" msgstr "%s Tipini DeÄŸiÅŸtir" #: editor/create_dialog.cpp editor/project_settings_editor.cpp -#: modules/visual_script/visual_script_editor.cpp msgid "Change" msgstr "DeÄŸiÅŸtir" @@ -819,7 +889,8 @@ msgid "Matches:" msgstr "EÅŸleÅŸmeler:" #: editor/create_dialog.cpp editor/plugin_config_dialog.cpp -#: editor/plugins/asset_library_editor_plugin.cpp editor/property_selector.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/property_selector.cpp #: modules/visual_script/visual_script_property_selector.cpp msgid "Description:" msgstr "Açıklama:" @@ -833,17 +904,19 @@ msgid "Dependencies For:" msgstr "Åžunun İçin Bağımlılıklar:" #: editor/dependency_editor.cpp +#, fuzzy msgid "" "Scene '%s' is currently being edited.\n" -"Changes will not take effect unless reloaded." +"Changes will only take effect when reloaded." msgstr "" "'%s' Sahnesi ÅŸu anda düzenleniyor.\n" "Yeniden yüklenene kadar deÄŸiÅŸiklikler etki etmeyecek." #: editor/dependency_editor.cpp +#, fuzzy msgid "" "Resource '%s' is in use.\n" -"Changes will take effect when reloaded." +"Changes will only take effect when reloaded." msgstr "" "Kaynak '%s' kullanımda.\n" "DeÄŸiÅŸiklikler yeniden yükleme yapılınca etkin olacak." @@ -938,21 +1011,14 @@ msgid "Permanently delete %d item(s)? (No undo!)" msgstr "%d Öğeleri kalıcı olarak silsin mi? (Geri alınamaz!)" #: editor/dependency_editor.cpp -msgid "Owns" -msgstr "Sahipler" - -#: editor/dependency_editor.cpp -msgid "Resources Without Explicit Ownership:" -msgstr "Belirgin SahipliÄŸi Olmayan Kaynaklar:" +#, fuzzy +msgid "Show Dependencies" +msgstr "Bağımlılıklar" #: editor/dependency_editor.cpp editor/editor_node.cpp msgid "Orphan Resource Explorer" msgstr "Orphan Kaynak AraÅŸtırıcı" -#: editor/dependency_editor.cpp -msgid "Delete selected files?" -msgstr "Seçili dosyalar silinsin mi?" - #: editor/dependency_editor.cpp editor/editor_audio_buses.cpp #: editor/editor_file_dialog.cpp editor/editor_node.cpp #: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp @@ -961,6 +1027,14 @@ msgstr "Seçili dosyalar silinsin mi?" msgid "Delete" msgstr "Sil" +#: editor/dependency_editor.cpp +msgid "Owns" +msgstr "Sahipler" + +#: editor/dependency_editor.cpp +msgid "Resources Without Explicit Ownership:" +msgstr "Belirgin SahipliÄŸi Olmayan Kaynaklar:" + #: editor/dictionary_property_edit.cpp msgid "Change Dictionary Key" msgstr "Sözlük Anahtarını DeÄŸiÅŸtir" @@ -1074,7 +1148,7 @@ msgstr "Paket BaÅŸarı ile Kuruldu!" msgid "Success!" msgstr "BaÅŸarılı!" -#: editor/editor_asset_installer.cpp +#: editor/editor_asset_installer.cpp editor/editor_node.cpp #: editor/plugins/asset_library_editor_plugin.cpp msgid "Install" msgstr "Kur" @@ -1201,8 +1275,12 @@ msgid "Open Audio Bus Layout" msgstr "Audio Bus YerleÅŸim Düzenini Aç" #: editor/editor_audio_buses.cpp -msgid "There is no 'res://default_bus_layout.tres' file." -msgstr "'res://default_bus_layout.tres' dosyası bulunamadı." +msgid "There is no '%s' file." +msgstr "" + +#: editor/editor_audio_buses.cpp editor/plugins/canvas_item_editor_plugin.cpp +msgid "Layout" +msgstr "YerleÅŸim Düzeni" #: editor/editor_audio_buses.cpp msgid "Invalid file, not an audio bus layout." @@ -1214,7 +1292,7 @@ msgstr "Bus ekle" #: editor/editor_audio_buses.cpp msgid "Add a new Audio Bus to this layout." -msgstr "" +msgstr "Bu yerleÅŸim planına yeni ses veri yolu ekle." #: editor/editor_audio_buses.cpp editor/editor_properties.cpp #: editor/plugins/animation_player_editor_plugin.cpp editor/property_editor.cpp @@ -1255,18 +1333,25 @@ msgid "Valid characters:" msgstr "Geçerli damgalar:" #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing engine class name." +#, fuzzy +msgid "Must not collide with an existing engine class name." msgstr "Geçersiz isim. Varolan bir motor sınıf ismi ile çakışmamalı." #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing buit-in type name." +#, fuzzy +msgid "Must not collide with an existing buit-in type name." msgstr "Geçersiz ad. Var olan gömülü türdeki ad ile çakışmamalı." #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing global constant name." +#, fuzzy +msgid "Must not collide with an existing global constant name." msgstr "Geçersiz ad. Var olan genel deÄŸiÅŸmeyen bir adla çakışmamalıdır." #: editor/editor_autoload_settings.cpp +msgid "Keyword cannot be used as an autoload name." +msgstr "" + +#: editor/editor_autoload_settings.cpp msgid "Autoload '%s' already exists!" msgstr "KendindenYüklenme '%s' zaten var!" @@ -1294,11 +1379,12 @@ msgstr "Etkin" msgid "Rearrange Autoloads" msgstr "KendindenYüklenme'leri Yeniden Sırala" -#: editor/editor_autoload_settings.cpp -msgid "Invalid Path." +#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp +#, fuzzy +msgid "Invalid path." msgstr "Gecersiz Yol." -#: editor/editor_autoload_settings.cpp +#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp msgid "File does not exist." msgstr "Dosya yok." @@ -1349,7 +1435,8 @@ msgid "[unsaved]" msgstr "[kaydedilmemiÅŸ]" #: editor/editor_dir_dialog.cpp -msgid "Please select a base directory first" +#, fuzzy +msgid "Please select a base directory first." msgstr "Lütfen öncelikle bir taban dizini seçin" #: editor/editor_dir_dialog.cpp @@ -1357,7 +1444,8 @@ msgid "Choose a Directory" msgstr "Bir Dizin Seç" #: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp -#: editor/filesystem_dock.cpp scene/gui/file_dialog.cpp +#: editor/filesystem_dock.cpp editor/project_manager.cpp +#: scene/gui/file_dialog.cpp msgid "Create Folder" msgstr "Klasör OluÅŸtur" @@ -1383,28 +1471,26 @@ msgstr "Dosya Depolama:" #: editor/editor_export.cpp msgid "No export template found at the expected path:" -msgstr "" +msgstr "Beklenen adreste dışa aktarım ÅŸablonu bulunamadı:" #: editor/editor_export.cpp msgid "Packing" msgstr "Çıkınla" #: editor/editor_export.cpp -#, fuzzy msgid "" "Target platform requires 'ETC' texture compression for GLES2. Enable 'Import " "Etc' in Project Settings." msgstr "" -"Hedef platform GLES2 için 'ETC' doku sıkıştırma gerektirir. Proje " +"Hedef platform GLES2 için 'ETC' doku sıkıştırma gerekiyor. Proje " "Ayarları'nda 'Import Etc' etkinleÅŸtirin." #: editor/editor_export.cpp -#, fuzzy msgid "" "Target platform requires 'ETC2' texture compression for GLES3. Enable " "'Import Etc 2' in Project Settings." msgstr "" -"Hedef platform GLES3 için 'ETC2' doku sıkıştırma gerektirir. Proje " +"Hedef platform GLES3 için 'ETC2' doku sıkıştırma gerekiyor. Proje " "Ayarları'nda 'Import Etc 2' etkinleÅŸtirin." #: editor/editor_export.cpp @@ -1414,25 +1500,199 @@ msgid "" "Enable 'Import Etc' in Project Settings, or disable 'Driver Fallback " "Enabled'." msgstr "" +"Hedef platform, sürücünün GLES2'ye düşmesi için 'ETC' doku sıkıştırmasına " +"ihtiyaç duyuyor.\n" +"Proje Ayarlarında 'Import Etc' seçeneÄŸini etkinleÅŸtirin veya 'Driver " +"Fallback Enabled' seçeneÄŸini devre dışı bırakın." #: 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 -#, fuzzy msgid "Custom debug template not found." -msgstr "Özel kusur ayıklama çıkını bulunmadı." +msgstr "Özel hata ayıklama ÅŸablonu bulunmadı." #: 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 -#, fuzzy msgid "Custom release template not found." -msgstr "Özel yayınlama çıkını bulunamadı." +msgstr "Özel yayınlama ÅŸablonu bulunamadı." #: editor/editor_export.cpp platform/javascript/export/export.cpp msgid "Template file not found:" msgstr "Åžablon dosyası bulunamadı:" +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "3D Editor" +msgstr "Düzenleyici" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Script Editor" +msgstr "Betik Düzenleyiciyi Aç" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Asset Library" +msgstr "Malvarlığı Kütüphanesini Aç" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Scene Tree Editing" +msgstr "Sahne AÄŸacı (Düğümler):" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Import Dock" +msgstr "İçe Aktar" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Node Dock" +msgstr "Biçimi Taşı" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Filesystem Dock" +msgstr "DosyaSistemi" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Erase profile '%s'? (no undo)" +msgstr "Tümünü DeÄŸiÅŸtir (geri alma yok)" + +#: editor/editor_feature_profile.cpp +msgid "Profile must be a valid filename and must not contain '.'" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Profile with this name already exists." +msgstr "Bu isimde zaten bir dosya ve ya klasör mevcut." + +#: editor/editor_feature_profile.cpp +msgid "(Editor Disabled, Properties Disabled)" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "(Properties Disabled)" +msgstr "Sadece Özellikler" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "(Editor Disabled)" +msgstr "Klip Devre dışı" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Class Options:" +msgstr "Sınıf Açıklaması:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enable Contextual Editor" +msgstr "Sonraki Düzenleyiciyi aç" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enabled Properties:" +msgstr "Özellikler:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enabled Features:" +msgstr "Özellikler" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enabled Classes:" +msgstr "Sınıfları Ara" + +#: editor/editor_feature_profile.cpp +msgid "File '%s' format is invalid, import aborted." +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "" +"Profile '%s' already exists. Remote it first before importing, import " +"aborted." +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Error saving profile to path: '%s'." +msgstr "Åžablon '%s' yüklenirken hata" + +#: editor/editor_feature_profile.cpp +msgid "Unset" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Current Profile" +msgstr "Åžu Anki Sürüm:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Make Current" +msgstr "Geçerli:" + +#: editor/editor_feature_profile.cpp +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "New" +msgstr "Yeni" + +#: editor/editor_feature_profile.cpp editor/editor_node.cpp +#: editor/plugins/asset_library_editor_plugin.cpp editor/project_manager.cpp +msgid "Import" +msgstr "İçe Aktar" + +#: editor/editor_feature_profile.cpp editor/editor_node.cpp +#: editor/project_export.cpp +msgid "Export" +msgstr "Dışa Aktar" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Available Profiles" +msgstr "Kullanılabilir Düğümler:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enabled Classes" +msgstr "Sınıfları Ara" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Class Options" +msgstr "Sınıf Açıklaması" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "New profile name:" +msgstr "Yeni ad:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Erase Profile" +msgstr "Alanı Sil" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Import Profile(s)" +msgstr "İçe Aktarılan Proje" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Export Profile" +msgstr "Projeyi Dışa Aktar" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Manage Editor Feature Profiles" +msgstr "Dışa Aktarım Åžablonlarını Yönet" + #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Select Current Folder" msgstr "Geçerli Klasörü Seç" @@ -1442,7 +1702,6 @@ msgid "File Exists, Overwrite?" msgstr "Dosya var. Üzerine Yazılsın mı?" #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp -#, fuzzy msgid "Select This Folder" msgstr "Bu Klasörü Seç" @@ -1451,12 +1710,11 @@ msgid "Copy Path" msgstr "Dosya Yolunu Tıpkıla" #: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp -#, fuzzy msgid "Open in File Manager" -msgstr "Dosya Yöneticisinde Göster" +msgstr "Dosya Yöneticisinde Aç" -#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp -#: editor/project_manager.cpp +#: editor/editor_file_dialog.cpp editor/editor_node.cpp +#: editor/filesystem_dock.cpp editor/project_manager.cpp #, fuzzy msgid "Show in File Manager" msgstr "Dosya Yöneticisinde Göster" @@ -1516,7 +1774,7 @@ msgstr "İleri Git" msgid "Go Up" msgstr "Yukarı Git" -#: editor/editor_file_dialog.cpp +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Toggle Hidden Files" msgstr "Gizli Dosyalari Aç / Kapat" @@ -1541,23 +1799,26 @@ msgid "Move Favorite Down" msgstr "BeÄŸenileni AÅŸağı Taşı" #: editor/editor_file_dialog.cpp -#, fuzzy msgid "Previous Folder" -msgstr "Önceki Zemin" +msgstr "Önceki Klasör" #: editor/editor_file_dialog.cpp -#, fuzzy msgid "Next Folder" -msgstr "Sonraki Zemin" +msgstr "Sonraki Klasör" -#: editor/editor_file_dialog.cpp -msgid "Go to parent folder" +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp +#, fuzzy +msgid "Go to parent folder." msgstr "Üst klasöre git" #: editor/editor_file_dialog.cpp -#, fuzzy msgid "(Un)favorite current folder." -msgstr "Klasör oluÅŸturulamadı." +msgstr "Bu klasörü favorilerden çıkar/favorilere ekle." + +#: editor/editor_file_dialog.cpp +#, fuzzy +msgid "Toggle visibility of hidden files." +msgstr "Gizli Dosyalari Aç / Kapat" #: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp #, fuzzy @@ -1565,9 +1826,8 @@ msgid "View items as a grid of thumbnails." msgstr "Öğeleri küçük resim ızgarası ÅŸeklinde göster" #: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp -#, fuzzy msgid "View items as a list." -msgstr "Öğeleri liste olarak göster" +msgstr "Öğeleri liste olarak göster." #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Directories & Files:" @@ -1575,6 +1835,7 @@ msgstr "Dizinler & Dosyalar:" #: editor/editor_file_dialog.cpp editor/plugins/sprite_editor_plugin.cpp #: editor/plugins/style_box_editor_plugin.cpp +#: editor/plugins/theme_editor_plugin.cpp msgid "Preview:" msgstr "Önizleme:" @@ -1591,6 +1852,12 @@ msgid "ScanSources" msgstr "KaynaklarıTara" #: editor/editor_file_system.cpp +msgid "" +"There are multiple importers for different types pointing to file %s, import " +"aborted" +msgstr "" + +#: editor/editor_file_system.cpp msgid "(Re)Importing Assets" msgstr "Varlıklar Yeniden-İçe Aktarılıyor" @@ -1627,19 +1894,16 @@ msgid "Methods" msgstr "Metotlar" #: editor/editor_help.cpp -#, fuzzy msgid "Methods:" -msgstr "Metotlar" +msgstr "Metotlar:" #: editor/editor_help.cpp -#, fuzzy msgid "Theme Properties" -msgstr "Özellikler" +msgstr "Tema Özellikleri" #: editor/editor_help.cpp -#, fuzzy msgid "Theme Properties:" -msgstr "Özellikler:" +msgstr "Tema Özellikleri:" #: editor/editor_help.cpp modules/visual_script/visual_script_editor.cpp msgid "Signals:" @@ -1666,14 +1930,12 @@ msgid "Constants:" msgstr "Sabitler:" #: editor/editor_help.cpp -#, fuzzy msgid "Class Description" -msgstr "Açıklama" +msgstr "Sınıf Açıklaması" #: editor/editor_help.cpp -#, fuzzy msgid "Class Description:" -msgstr "Açıklama:" +msgstr "Sınıf Açıklaması:" #: editor/editor_help.cpp msgid "Online Tutorials:" @@ -1690,14 +1952,12 @@ msgstr "" "[color=$color][url=$url2]öneride bulunabilirsiniz[/url][/color]." #: editor/editor_help.cpp -#, fuzzy msgid "Property Descriptions" -msgstr "Özellik Açıklaması:" +msgstr "Özellik Açıklamaları" #: editor/editor_help.cpp -#, fuzzy msgid "Property Descriptions:" -msgstr "Özellik Açıklaması:" +msgstr "Özellik Açıklamaları:" #: editor/editor_help.cpp msgid "" @@ -1708,14 +1968,12 @@ msgstr "" "bulunarak[/url][/color] yardım edebilirsiniz!" #: editor/editor_help.cpp -#, fuzzy msgid "Method Descriptions" -msgstr "Metot Açıklaması:" +msgstr "Metot Açıklamaları" #: editor/editor_help.cpp -#, fuzzy msgid "Method Descriptions:" -msgstr "Metot Açıklaması:" +msgstr "Metot Açıklamaları:" #: editor/editor_help.cpp msgid "" @@ -1731,49 +1989,40 @@ msgid "Search Help" msgstr "Yardım Ara" #: editor/editor_help_search.cpp -#, fuzzy msgid "Display All" -msgstr "OlaÄŸanı Görüntüle" +msgstr "Hepsini Görüntüle" #: editor/editor_help_search.cpp -#, fuzzy msgid "Classes Only" -msgstr "Sınıflar" +msgstr "Sadece Sınıflar" #: editor/editor_help_search.cpp -#, fuzzy msgid "Methods Only" -msgstr "Metotlar" +msgstr "Sadece Metotlar" #: editor/editor_help_search.cpp -#, fuzzy msgid "Signals Only" -msgstr "Sinyaller" +msgstr "Sadece Sinyaller" #: editor/editor_help_search.cpp -#, fuzzy msgid "Constants Only" -msgstr "Sabitler" +msgstr "Sadece Sabitler" #: editor/editor_help_search.cpp -#, fuzzy msgid "Properties Only" -msgstr "Özellikler" +msgstr "Sadece Özellikler" #: editor/editor_help_search.cpp -#, fuzzy msgid "Theme Properties Only" -msgstr "Özellikler" +msgstr "Sadece Tema Özellikleri" #: editor/editor_help_search.cpp -#, fuzzy msgid "Member Type" -msgstr "Üyeler" +msgstr "Üye Tipi" #: editor/editor_help_search.cpp -#, fuzzy msgid "Class" -msgstr "Sınıf:" +msgstr "Sınıf" #: editor/editor_inspector.cpp editor/project_settings_editor.cpp msgid "Property:" @@ -1785,12 +2034,17 @@ msgstr "Ayarla" #: editor/editor_inspector.cpp msgid "Set Multiple:" -msgstr "" +msgstr "Çoklu Ayarla:" #: editor/editor_log.cpp msgid "Output:" msgstr "Çıktı:" +#: editor/editor_log.cpp editor/plugins/tile_map_editor_plugin.cpp +#, fuzzy +msgid "Copy Selection" +msgstr "Seçimi Kaldır" + #: editor/editor_log.cpp editor/editor_profiler.cpp #: editor/editor_properties.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp @@ -1811,7 +2065,7 @@ msgstr "Proje dışa aktarımı %d hata koduyla baÅŸarısız." #: editor/editor_node.cpp msgid "Imported resources can't be saved." -msgstr "" +msgstr "İçe aktarılmış kaynaklar kaydedilemez." #: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp #: scene/gui/dialogs.cpp @@ -1823,10 +2077,13 @@ 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." msgstr "" +"Bu kaynak düzenlenen sahneye ait olmadığı için kaydedilemez. Önce benzersiz " +"hale getir." #: editor/editor_node.cpp editor/plugins/animation_player_editor_plugin.cpp msgid "Save Resource As..." @@ -1846,7 +2103,7 @@ msgstr "Kaydedilirken hata oluÅŸtu." #: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp msgid "Can't open '%s'. The file could have been moved or deleted." -msgstr "" +msgstr "'%s' açılamıyor. Dosya taşınmış ya da silinmiÅŸ olabilir." #: editor/editor_node.cpp msgid "Error while parsing '%s'." @@ -1885,6 +2142,8 @@ msgid "" "This scene can't be saved because there is a cyclic instancing inclusion.\n" "Please resolve it and then attempt to save again." msgstr "" +"Sahne döngüsel örnekleme bulundurduÄŸu için kaydedilemiyor.\n" +"Lütfen bunu düzeltin ve bir daha kaydetmeyi deneyin." #: editor/editor_node.cpp msgid "" @@ -1896,7 +2155,7 @@ msgstr "" #: editor/editor_node.cpp editor/scene_tree_dock.cpp msgid "Can't overwrite scene that is still open!" -msgstr "" +msgstr "Açık olan sahnenin üzerine yazılamıyor!" #: editor/editor_node.cpp msgid "Can't load MeshLibrary for merging!" @@ -1942,9 +2201,10 @@ msgstr "" "aktarma kısmını okuyunuz." #: editor/editor_node.cpp +#, fuzzy msgid "" "This resource belongs to a scene that was instanced or inherited.\n" -"Changes to it will not be kept when saving the current scene." +"Changes to it won't be kept when saving the current scene." msgstr "" "Bu kaynak örneklenmiÅŸ veya devredilmiÅŸ bir sahneye ait.\n" "Yaptığınız deÄŸiÅŸiklikler geçerli sahneyi kaydederken saklanmayacaktır." @@ -1958,8 +2218,9 @@ msgstr "" "panelinden ayarlarını deÄŸiÅŸtirin ve yeniden içe aktarın." #: editor/editor_node.cpp +#, fuzzy msgid "" -"This scene was imported, so changes to it will not be kept.\n" +"This scene was imported, so changes to it won't be kept.\n" "Instancing it or inheriting will allow making changes to it.\n" "Please read the documentation relevant to importing scenes to better " "understand this workflow." @@ -1971,8 +2232,9 @@ msgstr "" "aktarma kısmını okuyunuz." #: editor/editor_node.cpp +#, fuzzy msgid "" -"This is a remote object so changes to it will not be kept.\n" +"This is a remote object, so changes to it won't be kept.\n" "Please read the documentation relevant to debugging to better understand " "this workflow." msgstr "" @@ -1985,36 +2247,6 @@ msgid "There is no defined scene to run." msgstr "Çalıştırmak için herhangi bir sahne seçilmedi." #: editor/editor_node.cpp -msgid "" -"No main scene has ever been defined, select one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" -"Hiçbir ana sahne tanımlanmadı, birini seçiniz?\n" -"Daha sonra \"uygulama\" kategorisinin altındaki \"Proje Ayarları\" ndan " -"deÄŸiÅŸtirebilirsiniz." - -#: editor/editor_node.cpp -msgid "" -"Selected scene '%s' does not exist, select a valid one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" -"Seçilen sahne '%s' mevcut deÄŸil, geçerli bir tane seçin?\n" -"Daha sonra \"uygulama\" kategorisinin altındaki \"Proje Ayarları\" ndan " -"deÄŸiÅŸtirebilirsiniz." - -#: editor/editor_node.cpp -msgid "" -"Selected scene '%s' is not a scene file, select a valid one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" -"Seçilen sahne '%s' bir sahne dosyası deÄŸil, geçerli bir tane seç?\n" -"Daha sonra \"uygulama\" kategorisinin altındaki \"Proje Ayarları\" ndan " -"deÄŸiÅŸtirebilirsiniz." - -#: editor/editor_node.cpp msgid "Current scene was never saved, please save it prior to running." msgstr "Åžimdiki sahne hiç kaydedilmedi, lütfen çalıştırmadan önce kaydediniz." @@ -2022,7 +2254,7 @@ msgstr "Åžimdiki sahne hiç kaydedilmedi, lütfen çalıştırmadan önce kayded msgid "Could not start subprocess!" msgstr "Alt iÅŸlem baÅŸlatılamadı!" -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/filesystem_dock.cpp msgid "Open Scene" msgstr "Sahneyi Aç" @@ -2031,6 +2263,11 @@ msgid "Open Base Scene" msgstr "Ana Sahneyi Aç" #: editor/editor_node.cpp +#, fuzzy +msgid "Quick Open..." +msgstr "Sahneyi Hızlı Aç..." + +#: editor/editor_node.cpp msgid "Quick Open Scene..." msgstr "Sahneyi Hızlı Aç..." @@ -2047,14 +2284,12 @@ msgid "Save changes to '%s' before closing?" msgstr "Kapatmadan önce deÄŸiÅŸklikler buraya '%s' kaydedilsin mi?" #: editor/editor_node.cpp -#, fuzzy msgid "Saved %s modified resource(s)." -msgstr "Kaynak yükleme baÅŸarısız oldu." +msgstr "'%s' deÄŸiÅŸtirilmiÅŸ kaynak kaydedildi." #: editor/editor_node.cpp -#, fuzzy msgid "A root node is required to save the scene." -msgstr "Büyük doku için yalnızca bir dizeç gereklidir." +msgstr "Sahneyi kaydedilmesi için kök düğüm gerekiyor." #: editor/editor_node.cpp msgid "Save Scene As..." @@ -2165,11 +2400,12 @@ msgid "Unable to load addon script from path: '%s'." msgstr "Yoldaki eklenti betiÄŸi yüklenemedi: '%s'." #: editor/editor_node.cpp -#, fuzzy msgid "" "Unable to load addon script from path: '%s' There seems to be an error in " "the code, please check the syntax." -msgstr "Eklenti betiÄŸi '%s' yolundan yüklenemedi. Betik araç modunda deÄŸil." +msgstr "" +"'%s' adresindeki eklenti betik yüklenemiyor. Kodun içinde bir hata var gibi " +"görünüyor, lütfen sözdizimini kontrol edin." #: editor/editor_node.cpp msgid "" @@ -2206,6 +2442,36 @@ msgid "Clear Recent Scenes" msgstr "En Son Sahneleri Temizle" #: editor/editor_node.cpp +msgid "" +"No main scene has ever been defined, select one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" +"Hiçbir ana sahne tanımlanmadı, birini seçiniz?\n" +"Daha sonra \"uygulama\" kategorisinin altındaki \"Proje Ayarları\" ndan " +"deÄŸiÅŸtirebilirsiniz." + +#: editor/editor_node.cpp +msgid "" +"Selected scene '%s' does not exist, select a valid one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" +"Seçilen sahne '%s' mevcut deÄŸil, geçerli bir tane seçin?\n" +"Daha sonra \"uygulama\" kategorisinin altındaki \"Proje Ayarları\" ndan " +"deÄŸiÅŸtirebilirsiniz." + +#: editor/editor_node.cpp +msgid "" +"Selected scene '%s' is not a scene file, select a valid one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" +"Seçilen sahne '%s' bir sahne dosyası deÄŸil, geçerli bir tane seç?\n" +"Daha sonra \"uygulama\" kategorisinin altındaki \"Proje Ayarları\" ndan " +"deÄŸiÅŸtirebilirsiniz." + +#: editor/editor_node.cpp msgid "Save Layout" msgstr "YerleÅŸim Düzenini Kaydet" @@ -2225,16 +2491,27 @@ msgid "Show in FileSystem" msgstr "Dosya Sisteminde Göster" #: editor/editor_node.cpp -#, fuzzy msgid "Play This Scene" -msgstr "Sahneyi Oynat" +msgstr "Bu Sahneyi Oynat" #: editor/editor_node.cpp -#, fuzzy msgid "Close Tab" +msgstr "Sekmeyi Kapat" + +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +msgid "Close Other Tabs" msgstr "DiÄŸer Sekmeleri Kapat" #: editor/editor_node.cpp +msgid "Close Tabs to the Right" +msgstr "" + +#: editor/editor_node.cpp +#, fuzzy +msgid "Close All Tabs" +msgstr "Tümünü Kapat" + +#: editor/editor_node.cpp msgid "Switch Scene Tab" msgstr "Sahne Sekmesine Geç" @@ -2307,7 +2584,6 @@ msgid "Save Scene" msgstr "Sahne Kaydet" #: editor/editor_node.cpp -#, fuzzy msgid "Save All Scenes" msgstr "Tüm Sahneleri Kaydet" @@ -2357,18 +2633,17 @@ msgstr "Proje" msgid "Project Settings" msgstr "Proje Ayarları" -#: editor/editor_node.cpp editor/project_export.cpp -msgid "Export" -msgstr "Dışa Aktar" - #: editor/editor_node.cpp editor/plugins/tile_set_editor_plugin.cpp msgid "Tools" msgstr "Araçlar" #: editor/editor_node.cpp -#, fuzzy msgid "Open Project Data Folder" -msgstr "Proje Yöneticisi Açılsın mı?" +msgstr "Proje Verileri Klasörünü Aç" + +#: editor/editor_node.cpp +msgid "Install Android Build Template" +msgstr "" #: editor/editor_node.cpp msgid "Quit to Project List" @@ -2483,18 +2758,21 @@ msgid "Toggle Fullscreen" msgstr "Tam Ekran Aç / Kapat" #: editor/editor_node.cpp -#, fuzzy msgid "Open Editor Data/Settings Folder" -msgstr "Düzenleyici Ayarları" +msgstr "Düzenleyici Verileri/Ayarları Klasörünü Aç" #: editor/editor_node.cpp msgid "Open Editor Data Folder" -msgstr "" +msgstr "Düzenleyici Verileri Klasörünü Aç" #: editor/editor_node.cpp -#, fuzzy msgid "Open Editor Settings Folder" -msgstr "Düzenleyici Ayarları" +msgstr "Düzenleyici Ayarları Klasörünü Aç" + +#: editor/editor_node.cpp +#, fuzzy +msgid "Manage Editor Features" +msgstr "Dışa Aktarım Åžablonlarını Yönet" #: editor/editor_node.cpp editor/project_export.cpp msgid "Manage Export Templates" @@ -2508,6 +2786,7 @@ msgstr "Yardım" #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp #: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp #: editor/project_settings_editor.cpp editor/rename_dialog.cpp msgid "Search" msgstr "Ara" @@ -2575,17 +2854,16 @@ msgstr "Özel Sahneyi Oynat" #: editor/editor_node.cpp msgid "Changing the video driver requires restarting the editor." msgstr "" +"Görüntü sürücüsünü deÄŸiÅŸtirmek için editörün yeniden baÅŸlatılması gerekiyor." #: editor/editor_node.cpp editor/project_settings_editor.cpp #: editor/settings_config_dialog.cpp -#, fuzzy msgid "Save & Restart" -msgstr "Kaydet & Yeniden İçe Aktar" +msgstr "Kaydet ve BaÅŸtan BaÅŸlat" #: editor/editor_node.cpp -#, fuzzy msgid "Spins when the editor window redraws." -msgstr "Düzenleyici penceresi yeniden boyandığında döndürülür!" +msgstr "Düzenleyici penceresi yeniden boyandığında döner." #: editor/editor_node.cpp msgid "Update Always" @@ -2599,11 +2877,6 @@ msgstr "DeÄŸiÅŸiklikleri güncelle" msgid "Disable Update Spinner" msgstr "Güncelleme Topacını Devre Dışı Bırak" -#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp -#: editor/project_manager.cpp -msgid "Import" -msgstr "İçe Aktar" - #: editor/editor_node.cpp msgid "FileSystem" msgstr "DosyaSistemi" @@ -2617,9 +2890,8 @@ msgid "Node" msgstr "Düğüm" #: editor/editor_node.cpp -#, fuzzy msgid "Expand Bottom Panel" -msgstr "Hepsini geniÅŸlet" +msgstr "Alt Panoyu GeniÅŸlet" #: editor/editor_node.cpp scene/resources/visual_shader.cpp msgid "Output" @@ -2630,6 +2902,28 @@ msgid "Don't Save" msgstr "Kaydetme" #: editor/editor_node.cpp +msgid "Android build template is missing, please install relevant templates." +msgstr "" + +#: editor/editor_node.cpp +#, fuzzy +msgid "Manage Templates" +msgstr "Dışa Aktarım Åžablonlarını Yönet" + +#: editor/editor_node.cpp +msgid "" +"This will install the Android project for custom builds.\n" +"Note that, in order to use it, it needs to be enabled per export preset." +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"Android build template is already installed and it won't be overwritten.\n" +"Remove the \"build\" directory manually before attempting this operation " +"again." +msgstr "" + +#: editor/editor_node.cpp msgid "Import Templates From ZIP File" msgstr "Åžablonları Zip Dosyasından İçeri Aktar" @@ -2698,9 +2992,8 @@ msgid "Thumbnail..." msgstr "Küçük Resim..." #: editor/editor_plugin_settings.cpp -#, fuzzy msgid "Edit Plugin" -msgstr "Çokluyu Düzenleyin" +msgstr "Eklentiyi Düzenle" #: editor/editor_plugin_settings.cpp msgid "Installed Plugins:" @@ -2724,15 +3017,13 @@ msgid "Status:" msgstr "Durum:" #: editor/editor_plugin_settings.cpp -#, fuzzy msgid "Edit:" -msgstr "Düzenle" +msgstr "Düzenle:" #: editor/editor_profiler.cpp editor/plugins/animation_state_machine_editor.cpp #: editor/rename_dialog.cpp -#, fuzzy msgid "Start" -msgstr "BaÅŸlat!" +msgstr "BaÅŸlat" #: editor/editor_profiler.cpp msgid "Measure:" @@ -2755,10 +3046,6 @@ msgid "Physics Frame %" msgstr "Fizik Kare %" #: editor/editor_profiler.cpp -msgid "Time:" -msgstr "Süre:" - -#: editor/editor_profiler.cpp msgid "Inclusive" msgstr "Kapsayıcı" @@ -2784,21 +3071,19 @@ msgstr "Açık" #: editor/editor_properties.cpp msgid "Layer" -msgstr "" +msgstr "Katman" #: editor/editor_properties.cpp -#, fuzzy msgid "Bit %d, value %d" -msgstr "Bit %d, val %d." +msgstr "Bit %d, deÄŸer %d" #: editor/editor_properties.cpp msgid "[Empty]" msgstr "[BoÅŸ]" #: editor/editor_properties.cpp editor/plugins/root_motion_editor_plugin.cpp -#, fuzzy msgid "Assign..." -msgstr "Ata" +msgstr "Ata..." #: editor/editor_properties.cpp #, fuzzy @@ -2810,20 +3095,31 @@ msgid "" "The selected resource (%s) does not match any type expected for this " "property (%s)." msgstr "" +"Seçili kaynak (%s) bu özellik (%s) için beklenen herhangi bir tip ile " +"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." msgstr "" +"Dosya ÅŸeklinde kaydedilmiÅŸ kaynakların üzerine ViewportTexture " +"oluÅŸturulamıyor.\n" +"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" "Please switch on the 'local to scene' property on it (and all resources " "containing it up to a node)." msgstr "" +"Bu kaynak üzerine ViewportTexture oluÅŸturulamıyor çünkü bu kaynak 'local to " +"scene' olarak ayarlanmadı.\n" +"Lütfen bu kaynak (ve bir düğüme kadarki bütün kaynakların) üzerindeki 'local " +"to scene' özelliÄŸini açın." #: editor/editor_properties.cpp editor/property_editor.cpp msgid "Pick a Viewport" @@ -2863,36 +3159,32 @@ msgstr "Åžuna Dönüştür %s" #: 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 "Düzenleyicide Aç" +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!" #: editor/editor_properties_array_dict.cpp -#, fuzzy msgid "Size: " -msgstr "Odacık Boyutu:" +msgstr "Boyut: " #: editor/editor_properties_array_dict.cpp msgid "Page: " -msgstr "" +msgstr "Sayfa: " #: editor/editor_properties_array_dict.cpp -#, fuzzy msgid "New Key:" -msgstr "Yeni ad:" +msgstr "Yeni Anahtar:" #: editor/editor_properties_array_dict.cpp -#, fuzzy msgid "New Value:" -msgstr "Yeni ad:" +msgstr "Yeni DeÄŸer:" #: editor/editor_properties_array_dict.cpp msgid "Add Key/Value Pair" -msgstr "" +msgstr "Anahtar/DeÄŸer İkilisini Ekle" #: editor/editor_properties_array_dict.cpp #: editor/plugins/theme_editor_plugin.cpp @@ -2900,10 +3192,6 @@ msgid "Remove Item" msgstr "Öğeyi Kaldır" #: editor/editor_run_native.cpp -msgid "Select device from the list" -msgstr "Listeden aygıt seç" - -#: editor/editor_run_native.cpp msgid "" "No runnable export preset found for this platform.\n" "Please add a runnable preset in the export menu." @@ -2939,6 +3227,10 @@ msgstr "'_run()' metodunu unuttunuz mu?" msgid "Select Node(s) to Import" msgstr "Düğüm(leri) içe Aktarmak için Seç" +#: editor/editor_sub_scene.cpp editor/project_manager.cpp +msgid "Browse" +msgstr "Gözat" + #: editor/editor_sub_scene.cpp msgid "Scene Path:" msgstr "Sahne Yolu:" @@ -2985,9 +3277,8 @@ msgid "Can't open export templates zip." msgstr "Dışa aktarım kalıplarının zipi açılamadı." #: editor/export_template_manager.cpp -#, fuzzy msgid "Invalid version.txt format inside templates: %s." -msgstr "Åžablonların içinde geçersiz version.txt formatı." +msgstr "Åžablonların içinde geçersiz version.txt formatı: %s." #: editor/export_template_manager.cpp msgid "No version.txt found inside templates." @@ -3052,6 +3343,8 @@ msgid "" "Templates installation failed. The problematic templates archives can be " "found at '%s'." msgstr "" +"Åžablon yüklemesi baÅŸarısız oldu. Sorunlu ÅŸablon arÅŸivi ÅŸurada bulunabilir: " +"'%s'." #: editor/export_template_manager.cpp msgid "Error requesting url: " @@ -3104,6 +3397,11 @@ 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" + +#: editor/export_template_manager.cpp msgid "Current Version:" msgstr "Åžu Anki Sürüm:" @@ -3120,7 +3418,8 @@ msgid "Remove Template" msgstr "Åžablonu Kaldır" #: editor/export_template_manager.cpp -msgid "Select template file" +#, fuzzy +msgid "Select Template File" msgstr "Åžablon dosyası seç" #: editor/export_template_manager.cpp @@ -3132,9 +3431,8 @@ msgid "Download Templates" msgstr "Åžablonları İndir" #: editor/export_template_manager.cpp -#, fuzzy msgid "Select mirror from list: (Shift+Click: Open in Browser)" -msgstr "Listeden ayna seç: " +msgstr "Listeden ayna seç: (Shift+Tıkla: Tarayıcıda Aç)" #: editor/file_type_cache.cpp msgid "Can't open file_type_cache.cch for writing, not saving file type cache!" @@ -3143,9 +3441,8 @@ msgstr "" "kaydedilmiyor!" #: editor/filesystem_dock.cpp -#, fuzzy msgid "Favorites" -msgstr "BeÄŸeniler:" +msgstr "Favoriler" #: editor/filesystem_dock.cpp msgid "Cannot navigate to '%s' as it has not been found in the file system!" @@ -3182,7 +3479,8 @@ msgid "No name provided." msgstr "SaÄŸlanan isim yok." #: editor/filesystem_dock.cpp -msgid "Provided name contains invalid characters" +#, fuzzy +msgid "Provided name contains invalid characters." msgstr "SaÄŸlanan isim geçersiz karakterler içeriyor" #: editor/filesystem_dock.cpp @@ -3210,8 +3508,14 @@ msgid "Duplicating folder:" msgstr "Klasör çoÄŸaltılıyor:" #: editor/filesystem_dock.cpp -msgid "Open Scene(s)" -msgstr "Sahne(ler) Aç" +#, fuzzy +msgid "New Inherited Scene" +msgstr "Yeni Miras Alınmış Sahne ..." + +#: editor/filesystem_dock.cpp +#, fuzzy +msgid "Open Scenes" +msgstr "Sahneyi Aç" #: editor/filesystem_dock.cpp msgid "Instance" @@ -3219,13 +3523,13 @@ msgstr "Örnek" #: editor/filesystem_dock.cpp #, fuzzy -msgid "Add to favorites" -msgstr "BeÄŸeniler:" +msgid "Add to Favorites" +msgstr "Favorilere ekle" #: editor/filesystem_dock.cpp #, fuzzy -msgid "Remove from favorites" -msgstr "Öbekten Kaldır" +msgid "Remove from Favorites" +msgstr "Favorilerden kaldır" #: editor/filesystem_dock.cpp msgid "Edit Dependencies..." @@ -3248,24 +3552,22 @@ msgid "Move To..." msgstr "Åžuraya Taşı..." #: editor/filesystem_dock.cpp editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "New Script..." -msgstr "Yeni Betik" +msgstr "Yeni Betik..." #: editor/filesystem_dock.cpp -#, fuzzy msgid "New Resource..." -msgstr "Kaynağı Farklı Kaydet..." +msgstr "Yeni Kaynak..." -#: editor/filesystem_dock.cpp editor/script_editor_debugger.cpp -#, fuzzy +#: editor/filesystem_dock.cpp editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_editor_debugger.cpp msgid "Expand All" -msgstr "Hepsini geniÅŸlet" +msgstr "Hepsini GeniÅŸlet" -#: editor/filesystem_dock.cpp editor/script_editor_debugger.cpp -#, fuzzy +#: editor/filesystem_dock.cpp editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_editor_debugger.cpp msgid "Collapse All" -msgstr "Hepsini daralt" +msgstr "Hepsini Daralt" #: editor/filesystem_dock.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp @@ -3275,12 +3577,14 @@ msgid "Rename" msgstr "Yeniden Adlandır" #: editor/filesystem_dock.cpp -msgid "Previous Directory" -msgstr "Önceki Dizin" +#, fuzzy +msgid "Previous Folder/File" +msgstr "Önceki Klasör" #: editor/filesystem_dock.cpp -msgid "Next Directory" -msgstr "Sıradaki Dizin" +#, fuzzy +msgid "Next Folder/File" +msgstr "Sonraki Klasör" #: editor/filesystem_dock.cpp msgid "Re-Scan Filesystem" @@ -3288,13 +3592,12 @@ msgstr "Dosya Düzenini Yeniden Tara" #: editor/filesystem_dock.cpp #, fuzzy -msgid "Toggle split mode" -msgstr "Aç / Kapat Biçimi" +msgid "Toggle Split Mode" +msgstr "Bölme modunu Aç / Kapat" #: editor/filesystem_dock.cpp -#, fuzzy msgid "Search files" -msgstr "Sınıfları Ara" +msgstr "Dosyaları ara" #: editor/filesystem_dock.cpp msgid "" @@ -3309,37 +3612,38 @@ msgid "Move" msgstr "Taşı" #: editor/filesystem_dock.cpp -#, fuzzy msgid "There is already file or folder with the same name in this location." -msgstr "Yolda bu isimde bir klasör zaten var." +msgstr "Bu konumda zaten aynı ada sahip bir dosya veya klasör var." #: editor/filesystem_dock.cpp msgid "Overwrite" -msgstr "" +msgstr "Üzerine Yaz" #: editor/filesystem_dock.cpp editor/plugins/script_editor_plugin.cpp msgid "Create Script" msgstr "Betik OluÅŸtur" -#: editor/find_in_files.cpp -#, fuzzy +#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp msgid "Find in Files" -msgstr "Döşentiyi Bul" +msgstr "Dosyalarda bul" #: editor/find_in_files.cpp -#, fuzzy msgid "Find:" -msgstr "Bul" +msgstr "Bul:" #: editor/find_in_files.cpp -#, fuzzy msgid "Folder:" -msgstr "Satırı Katla" +msgstr "Dosya:" #: editor/find_in_files.cpp -#, fuzzy msgid "Filters:" -msgstr "Süzgeçler" +msgstr "Süzgeçler:" + +#: editor/find_in_files.cpp +msgid "" +"Include the files with the following extensions. Add or remove them in " +"ProjectSettings." +msgstr "" #: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp @@ -3355,57 +3659,48 @@ msgid "Cancel" msgstr "Vazgeç" #: editor/find_in_files.cpp -#, fuzzy msgid "Find: " -msgstr "Bul" +msgstr "Bul: " #: editor/find_in_files.cpp -#, fuzzy msgid "Replace: " -msgstr "DeÄŸiÅŸtir" +msgstr "DeÄŸiÅŸtir: " #: editor/find_in_files.cpp -#, fuzzy msgid "Replace all (no undo)" -msgstr "Tümünü DeÄŸiÅŸtir" +msgstr "Tümünü DeÄŸiÅŸtir (geri alma yok)" #: editor/find_in_files.cpp -#, fuzzy msgid "Searching..." -msgstr "Kaydediliyor..." +msgstr "Aranıyor..." #: editor/find_in_files.cpp -#, fuzzy msgid "Search complete" -msgstr "Yazı Ara" +msgstr "Arama tamamlandı" #: editor/groups_editor.cpp -#, fuzzy msgid "Group name already exists." -msgstr "HATA: Bu animasyon adı zaten var!" +msgstr "Grup adı zaten var." #: editor/groups_editor.cpp -#, fuzzy msgid "Invalid group name." -msgstr "Geçersiz ad." +msgstr "Geçersiz grup adı." #: editor/groups_editor.cpp editor/node_dock.cpp msgid "Groups" msgstr "Gruplar" #: editor/groups_editor.cpp -#, fuzzy msgid "Nodes not in Group" -msgstr "ÖbeÄŸe Ekle" +msgstr "Düğümler Grupta DeÄŸil" #: editor/groups_editor.cpp editor/scene_tree_dock.cpp msgid "Filter nodes" msgstr "Düğümleri Süzgeçden Geçir" #: editor/groups_editor.cpp -#, fuzzy msgid "Nodes in Group" -msgstr "Öbekleri Düzenle" +msgstr "Gruptaki Düğümler" #: editor/groups_editor.cpp msgid "Add to Group" @@ -3416,9 +3711,8 @@ msgid "Remove from Group" msgstr "Öbekten Kaldır" #: editor/groups_editor.cpp -#, fuzzy msgid "Manage Groups" -msgstr "Bediz Öbekleri" +msgstr "Grupları Düzenle" #: editor/import/resource_importer_scene.cpp msgid "Import as Single Scene" @@ -3525,30 +3819,32 @@ msgstr "Yeniden İçe Aktar" #: editor/import_dock.cpp msgid "Save scenes, re-import and restart" -msgstr "" +msgstr "Sahneleri kaydet, tekrar içe aktar ve baÅŸtan baÅŸlat" #: editor/import_dock.cpp msgid "Changing the type of an imported file requires editor restart." msgstr "" +"İçe aktarılmış dosyanın tipini deÄŸiÅŸtirmek editörü baÅŸtan baÅŸlatılmasını " +"gerektiriyor." #: editor/import_dock.cpp msgid "" "WARNING: Assets exist that use this resource, they may stop loading properly." msgstr "" +"UYARI: Bu kaynağı kullanan varlıklar mevcut, düzgün yüklenmeyi " +"durdurabilirler." #: editor/inspector_dock.cpp msgid "Failed to load resource." msgstr "Kaynak yükleme baÅŸarısız oldu." #: editor/inspector_dock.cpp -#, fuzzy msgid "Expand All Properties" -msgstr "Tüm özellikleri geniÅŸlet" +msgstr "Tüm Özellikleri GeniÅŸlet" #: editor/inspector_dock.cpp -#, fuzzy msgid "Collapse All Properties" -msgstr "Tüm özellikleri daralt" +msgstr "Tüm Özellikleri Daralt" #: editor/inspector_dock.cpp editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/script_editor_plugin.cpp @@ -3564,9 +3860,8 @@ msgid "Paste Params" msgstr "Parametreleri Yapıştır" #: editor/inspector_dock.cpp -#, fuzzy msgid "Edit Resource Clipboard" -msgstr "Kaynak panosu boÅŸ!" +msgstr "Kaynak Panosunu Düzenle" #: editor/inspector_dock.cpp msgid "Copy Resource" @@ -3613,9 +3908,8 @@ msgid "Object properties." msgstr "Nesne özellikleri." #: editor/inspector_dock.cpp -#, fuzzy msgid "Filter properties" -msgstr "Düğümleri Süzgeçden Geçir" +msgstr "Özellikleri süz" #: editor/inspector_dock.cpp msgid "Changes may be lost!" @@ -3630,87 +3924,74 @@ msgid "Select a Node to edit Signals and Groups." msgstr "Sinyalleri ve Grupları düzenlemek için bir Düğüm seçin." #: editor/plugin_config_dialog.cpp -#, fuzzy msgid "Edit a Plugin" -msgstr "Çokluyu Düzenleyin" +msgstr "Eklentiyi Düzenleyin" #: editor/plugin_config_dialog.cpp -#, fuzzy msgid "Create a Plugin" -msgstr "C# Çözümü oluÅŸtur" +msgstr "Eklenti OluÅŸtur" #: editor/plugin_config_dialog.cpp -#, fuzzy msgid "Plugin Name:" -msgstr "Eklentiler" +msgstr "Eklentinin Adı:" #: editor/plugin_config_dialog.cpp msgid "Subfolder:" -msgstr "" +msgstr "Alt Klasör:" #: editor/plugin_config_dialog.cpp -#, fuzzy msgid "Language:" -msgstr "Dil" +msgstr "Dil:" #: editor/plugin_config_dialog.cpp -#, fuzzy msgid "Script Name:" -msgstr "Betik geçerli" +msgstr "Betik Adı:" #: editor/plugin_config_dialog.cpp msgid "Activate now?" -msgstr "" +msgstr "Åžimdi etkinleÅŸtirilsin mi?" #: editor/plugins/abstract_polygon_2d_editor.cpp #: editor/plugins/polygon_2d_editor_plugin.cpp -#, fuzzy msgid "Create Polygon" -msgstr "Çoklu OluÅŸturun" +msgstr "Çokgen OluÅŸtur" #: editor/plugins/abstract_polygon_2d_editor.cpp #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp -#, fuzzy msgid "Create points." -msgstr "Noktaları sil" +msgstr "Noktalar oluÅŸtur." #: editor/plugins/abstract_polygon_2d_editor.cpp -#, fuzzy msgid "" "Edit points.\n" "LMB: Move Point\n" "RMB: Erase Point" msgstr "" -"Varolan çokgeni düzenle:\n" -"FareSolTık: Noktayı Taşı.\n" -"Ctrl+FareSolTık: Parça Ayır.\n" -"FareSaÄŸTık: Noktayı Sil." +"Noktaları düzenle\n" +"Sol Fare Düğmesi: Noktayı Taşı\n" +"SaÄŸ Fare Düğmesi: Noktayı Sil" #: editor/plugins/abstract_polygon_2d_editor.cpp #: editor/plugins/animation_blend_space_1d_editor.cpp -#, fuzzy msgid "Erase points." -msgstr "RMB: Noktayı Sil." +msgstr "Noktaları sil." #: editor/plugins/abstract_polygon_2d_editor.cpp -#, fuzzy msgid "Edit Polygon" -msgstr "Çokluyu Düzenleyin" +msgstr "Çokgeni Düzenle" #: editor/plugins/abstract_polygon_2d_editor.cpp msgid "Insert Point" msgstr "Nokta YerleÅŸtir" #: editor/plugins/abstract_polygon_2d_editor.cpp -#, fuzzy msgid "Edit Polygon (Remove Point)" -msgstr "Çokluyu Düzenleyin (Noktayı Silin)" +msgstr "Çokgeni Düzenle (Noktayı Sil)" #: editor/plugins/abstract_polygon_2d_editor.cpp -#, fuzzy msgid "Remove Polygon And Point" -msgstr "Çokluyu ve Noktayı Kaldır" +msgstr "Çokgeni ve Noktayı Kaldır" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp @@ -3724,52 +4005,48 @@ msgstr "Animasyon Ekle" #: 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 "Load..." -msgstr "Yükle" +msgstr "Yükle..." #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp -#, fuzzy msgid "Move Node Point" -msgstr "Noktayı Taşı" +msgstr "Düğüm Noktasını Taşı" #: editor/plugins/animation_blend_space_1d_editor.cpp #, fuzzy msgid "Change BlendSpace1D Limits" -msgstr "Karışım Süresini DeÄŸiÅŸtir" +msgstr "BlendSpace1D'nin Sınırlarını DeÄŸiÅŸtir" #: editor/plugins/animation_blend_space_1d_editor.cpp #, fuzzy msgid "Change BlendSpace1D Labels" -msgstr "Karışım Süresini DeÄŸiÅŸtir" +msgstr "BlendSpace1D'nin Etiketlerini DeÄŸiÅŸtir" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp #: editor/plugins/animation_state_machine_editor.cpp msgid "This type of node can't be used. Only root nodes are allowed." -msgstr "" +msgstr "Bu tipte bir düğüm kullanılamaz. Sadece kök düğümlere izin verilir." #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp -#, fuzzy msgid "Add Node Point" -msgstr "Düğüm Ekle" +msgstr "Düğüm Noktası Ekle" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp -#, fuzzy msgid "Add Animation Point" -msgstr "Animasyon Ekle" +msgstr "Animasyon Noktası Ekle" #: editor/plugins/animation_blend_space_1d_editor.cpp #, fuzzy msgid "Remove BlendSpace1D Point" -msgstr "Yol Noktasını Kaldır" +msgstr "BlendSpace1D Noktasını Kaldır" #: editor/plugins/animation_blend_space_1d_editor.cpp msgid "Move BlendSpace1D Node Point" -msgstr "" +msgstr "BlendSpace1D Düğüm Noktasını Taşı" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp @@ -3779,78 +4056,79 @@ msgid "" "AnimationTree is inactive.\n" "Activate to enable playback, check node warnings if activation fails." msgstr "" +"AnimationTree etkin deÄŸil.\n" +"Pleybeki aktifleÅŸtirmek için etkin hale getirin. Etkin hale gelmediÄŸi " +"taktirde düğüm uyarılarını kontrol edin." #: 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 "" +msgstr "Harmanlama konumunu uzay içinde ayarla" #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp msgid "Select and move points, create points with RMB." -msgstr "" +msgstr "Noktaları seç ve taşı. SaÄŸ fare düğmesi ile yeni noktalar oluÅŸtur." #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp scene/gui/graph_edit.cpp msgid "Enable snap and show grid." -msgstr "" +msgstr "Yapıştırmayı etkinleÅŸtir ve ızgarayı göster." #: editor/plugins/animation_blend_space_1d_editor.cpp #: editor/plugins/animation_blend_space_2d_editor.cpp -#, fuzzy msgid "Point" -msgstr "Noktayı Taşı" +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 #: editor/plugins/animation_state_machine_editor.cpp -#, fuzzy msgid "Open Animation Node" -msgstr "Animasyon Düğümü" +msgstr "Animasyon Düğümünü Aç" #: editor/plugins/animation_blend_space_2d_editor.cpp #, fuzzy -msgid "Triangle already exists" -msgstr "İşlem '%s' zaten var!" +msgid "Triangle already exists." +msgstr "Üçgen zaten var" #: editor/plugins/animation_blend_space_2d_editor.cpp -#, fuzzy msgid "Add Triangle" -msgstr "DeÄŸiÅŸken Ekle" +msgstr "Üçgen Ekle" #: editor/plugins/animation_blend_space_2d_editor.cpp #, fuzzy msgid "Change BlendSpace2D Limits" -msgstr "Karışım Süresini DeÄŸiÅŸtir" +msgstr "BlendSpace2D Sınırlarını DeÄŸiÅŸtir" #: editor/plugins/animation_blend_space_2d_editor.cpp #, fuzzy msgid "Change BlendSpace2D Labels" -msgstr "Karışım Süresini DeÄŸiÅŸtir" +msgstr "BlendSpace2D Etiketlerini DeÄŸiÅŸtir" #: editor/plugins/animation_blend_space_2d_editor.cpp #, fuzzy msgid "Remove BlendSpace2D Point" -msgstr "Yol Noktasını Kaldır" +msgstr "BlendSpace2D Noktasını Kaldır" #: editor/plugins/animation_blend_space_2d_editor.cpp #, fuzzy msgid "Remove BlendSpace2D Triangle" -msgstr "DeÄŸiÅŸkeni Kaldır" +msgstr "BlendSpace2D Üçgenini Kaldır" #: editor/plugins/animation_blend_space_2d_editor.cpp msgid "BlendSpace2D does not belong to an AnimationTree node." -msgstr "" +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 "" +msgstr "Herhangi bir üçgen bulunmuyor, harmanlama iÅŸlemi yapılamaz." #: editor/plugins/animation_blend_space_2d_editor.cpp -#, fuzzy msgid "Toggle Auto Triangles" -msgstr "KendindenYüklenme Bütünsellerini Aç / Kapat" +msgstr "Otomatik Üçgenleri Aç / Kapat" #: editor/plugins/animation_blend_space_2d_editor.cpp msgid "Create triangles by connecting points." @@ -3896,7 +4174,6 @@ msgid "Node Moved" msgstr "Biçimi Taşı" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Unable to connect, port may be in use or connection may be invalid." msgstr "" @@ -3973,7 +4250,7 @@ msgstr "Süzgeçleri Düzenle" #: editor/plugins/animation_blend_tree_editor_plugin.cpp #, fuzzy -msgid "Enable filtering" +msgid "Enable Filtering" msgstr "Düzenlenebilir Çocuklar" #: editor/plugins/animation_player_editor_plugin.cpp @@ -4093,10 +4370,6 @@ msgid "Animation" msgstr "Animasyon" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "New" -msgstr "Yeni" - -#: editor/plugins/animation_player_editor_plugin.cpp #, fuzzy msgid "Edit Transitions..." msgstr "GeçiÅŸler" @@ -4115,14 +4388,15 @@ msgid "Autoplay on Load" msgstr "Yükleme sırasında KendindenOynat" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Onion Skinning" -msgstr "Araları Doldurma" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Enable Onion Skinning" msgstr "Araları Doldurmayı EtkinleÅŸtir" #: editor/plugins/animation_player_editor_plugin.cpp +#, fuzzy +msgid "Onion Skinning Options" +msgstr "Araları Doldurma" + +#: editor/plugins/animation_player_editor_plugin.cpp msgid "Directions" msgstr "Yönler" @@ -4687,13 +4961,19 @@ msgid "Move CanvasItem" msgstr "CanvasItem Düzenle" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"Children of containers have their anchors and margins values overridden by " +"their parent." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Presets for the anchors and margins values of a Control node." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "" -"Children of containers have their anchors and margins values overridden by " -"their parent." +"When active, moving Control nodes changes their anchors instead of their " +"margins." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4709,10 +4989,52 @@ msgid "Change Anchors" msgstr "Çapaları DeÄŸiÅŸtir" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Lock Selected" +msgstr "Seçim Aracı" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Unlock Selected" +msgstr "Seçilenleri Sil" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Group Selected" +msgstr "Seçimi Kaldır" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Ungroup Selected" +msgstr "Seçimi Kaldır" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Paste Pose" msgstr "DuruÅŸu Yapıştır" #: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Create Custom Bone(s) from Node(s)" +msgstr "Örüntüden Emisyon Noktaları OluÅŸtur" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Clear Bones" +msgstr "DuruÅŸu Temizle" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Make IK Chain" +msgstr "IK Zinciri Yap" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Clear IK Chain" +msgstr "IK Zincirini Temizle" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "" "Warning: Children of a container get their position and size determined only " "by their parent." @@ -4792,7 +5114,8 @@ msgid "Snapping Options" msgstr "Yapışma ayarları" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to grid" +#, fuzzy +msgid "Snap to Grid" msgstr "Izgaraya yapış" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4813,32 +5136,38 @@ msgid "Use Pixel Snap" msgstr "Piksel Yapışması Kullan" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Smart snapping" +#, fuzzy +msgid "Smart Snapping" msgstr "Akıllı yapışma" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to parent" +#, fuzzy +msgid "Snap to Parent" msgstr "Ebeveyne yapıştır" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node anchor" +#, fuzzy +msgid "Snap to Node Anchor" msgstr "Düğüm çapasına yapıştır" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node sides" +#, fuzzy +msgid "Snap to Node Sides" msgstr "Düğüm kenalarına yapış" #: editor/plugins/canvas_item_editor_plugin.cpp #, fuzzy -msgid "Snap to node center" +msgid "Snap to Node Center" msgstr "Düğüm çapasına yapıştır" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to other nodes" +#, fuzzy +msgid "Snap to Other Nodes" msgstr "DiÄŸer düğümlere yapıştır" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to guides" +#, fuzzy +msgid "Snap to Guides" msgstr "Kılavuzlara yapış" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4852,10 +5181,12 @@ msgid "Unlock the selected object (can be moved)." msgstr "Seçilen nesnenin kilidini açın (taşınabilir)." #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Makes sure the object's children are not selectable." msgstr "Nesnenin çocuÄŸunun seçilemez olduÄŸundan kuÅŸkusuz olur." #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Restores the object's children's ability to be selected." msgstr "Nesnenin çocuÄŸunun seçilebilme yeteneÄŸini geri kazandırır." @@ -4869,14 +5200,6 @@ msgid "Show Bones" msgstr "Kemikleri Göster" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Make IK Chain" -msgstr "IK Zinciri Yap" - -#: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Clear IK Chain" -msgstr "IK Zincirini Temizle" - -#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Make Custom Bone(s) from Node(s)" msgstr "" @@ -4928,8 +5251,9 @@ msgid "Frame Selection" msgstr "Kafes Seçimi" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Layout" -msgstr "YerleÅŸim Düzeni" +#, fuzzy +msgid "Preview Canvas Scale" +msgstr "Atlası Önizle" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Translation mask for inserting keys." @@ -4982,6 +5306,11 @@ msgid "Divide grid step by 2" msgstr "Izgara basamağını 2'ye böl" #: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Pan View" +msgstr "Arkadan Görünüm" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Add %s" msgstr "Ekle %s" @@ -5004,7 +5333,8 @@ msgid "Error instancing scene from %s" msgstr "Åžundan: %s sahne örnekleme hatası" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Change default type" +#, fuzzy +msgid "Change Default Type" msgstr "Varsayılan tipi deÄŸiÅŸtir" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -5094,19 +5424,21 @@ msgid "Create Emission Points From Node" msgstr "Düğümden Emisyon Noktaları OluÅŸtur" #: editor/plugins/curve_editor_plugin.cpp -msgid "Flat0" +#, fuzzy +msgid "Flat 0" msgstr "Düz0" #: editor/plugins/curve_editor_plugin.cpp -msgid "Flat1" +#, fuzzy +msgid "Flat 1" msgstr "Düz1" -#: editor/plugins/curve_editor_plugin.cpp -msgid "Ease in" +#: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp +msgid "Ease In" msgstr "Açılma" -#: editor/plugins/curve_editor_plugin.cpp -msgid "Ease out" +#: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp +msgid "Ease Out" msgstr "Kararma" #: editor/plugins/curve_editor_plugin.cpp @@ -5126,23 +5458,28 @@ msgid "Load Curve Preset" msgstr "EÄŸri Önayarı Yükle" #: editor/plugins/curve_editor_plugin.cpp -msgid "Add point" +#, fuzzy +msgid "Add Point" msgstr "Nokta Ekle" #: editor/plugins/curve_editor_plugin.cpp -msgid "Remove point" +#, fuzzy +msgid "Remove Point" msgstr "Noktayı kaldır" #: editor/plugins/curve_editor_plugin.cpp -msgid "Left linear" +#, fuzzy +msgid "Left Linear" msgstr "Sol doÄŸrusal" #: editor/plugins/curve_editor_plugin.cpp -msgid "Right linear" +#, fuzzy +msgid "Right Linear" msgstr "SaÄŸ doÄŸrusal" #: editor/plugins/curve_editor_plugin.cpp -msgid "Load preset" +#, fuzzy +msgid "Load Preset" msgstr "Önayar yükle" #: editor/plugins/curve_editor_plugin.cpp @@ -5198,11 +5535,17 @@ msgid "This doesn't work on scene root!" msgstr "Bu, sahne kökünde çalışmaz!" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Trimesh Shape" +#, fuzzy +msgid "Create Trimesh Static Shape" msgstr "Üçlü Örüntü Yüzeyi OluÅŸtur" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Shape" +msgid "Failed creating shapes!" +msgstr "" + +#: editor/plugins/mesh_instance_editor_plugin.cpp +#, fuzzy +msgid "Create Convex Shape(s)" msgstr "Dışbükey Åžekil OluÅŸtur" #: editor/plugins/mesh_instance_editor_plugin.cpp @@ -5255,15 +5598,12 @@ msgid "Create Trimesh Static Body" msgstr "Üçlü Örüntü DuraÄŸan Gövdesi OluÅŸtur" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Static Body" -msgstr "Dışbükey DuraÄŸan Gövde OluÅŸtur" - -#: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Trimesh Collision Sibling" msgstr "Üçlü Örüntü Çarpışma KardeÅŸi OluÅŸtur" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Collision Sibling" +#, fuzzy +msgid "Create Convex Collision Sibling(s)" msgstr "Dışbükey Çarpışma KardeÅŸi OluÅŸtur" #: editor/plugins/mesh_instance_editor_plugin.cpp @@ -5417,6 +5757,12 @@ msgid "Create Navigation Polygon" msgstr "Yönlendirici Çokgeni OluÅŸtur" #: editor/plugins/particles_2d_editor_plugin.cpp +#: editor/plugins/particles_editor_plugin.cpp +#, fuzzy +msgid "Convert to CPUParticles" +msgstr "Büyük Harfe Dönüştür" + +#: editor/plugins/particles_2d_editor_plugin.cpp #, fuzzy msgid "Generating Visibility Rect" msgstr "Görünebilirlik Dikdörtgeni Üret" @@ -5431,12 +5777,6 @@ msgstr "Nokta sadece ParçacıkMateryal iÅŸlem materyalinin içinde ayarlanabili #: editor/plugins/particles_2d_editor_plugin.cpp #: editor/plugins/particles_editor_plugin.cpp -#, fuzzy -msgid "Convert to CPUParticles" -msgstr "Büyük Harfe Dönüştür" - -#: editor/plugins/particles_2d_editor_plugin.cpp -#: editor/plugins/particles_editor_plugin.cpp msgid "Generation Time (sec):" msgstr "Nesil Süresi (sn):" @@ -5576,7 +5916,7 @@ msgstr "EÄŸriyi Kapat" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp editor/plugins/theme_editor_plugin.cpp -#: editor/project_export.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_export.cpp msgid "Options" msgstr "Seçenekler" @@ -5628,7 +5968,7 @@ msgstr "Parçayı Ayır (eÄŸriye göre)" #: editor/plugins/physical_bone_plugin.cpp #, fuzzy -msgid "Move joint" +msgid "Move Joint" msgstr "Noktayı Taşı" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5880,7 +6220,6 @@ msgid "Open in Editor" msgstr "Düzenleyicide Aç" #: editor/plugins/resource_preloader_editor_plugin.cpp -#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Load Resource" msgstr "Kaynak Yükle" @@ -5982,6 +6321,11 @@ msgid "%s Class Reference" msgstr " Sınıf BaÅŸvurusu" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp +msgid "Find Next" +msgstr "Sonraki Bul" + +#: editor/plugins/script_editor_plugin.cpp msgid "Toggle alphabetical sorting of the method list." msgstr "" @@ -6065,10 +6409,6 @@ msgstr "Belgeleri Kapat" msgid "Close All" msgstr "Tümünü Kapat" -#: editor/plugins/script_editor_plugin.cpp -msgid "Close Other Tabs" -msgstr "DiÄŸer Sekmeleri Kapat" - #: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp msgid "Run" msgstr "Çalıştır" @@ -6077,11 +6417,6 @@ msgstr "Çalıştır" msgid "Toggle Scripts Panel" msgstr "Betikler Panelini Aç/Kapa" -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/script_text_editor.cpp -msgid "Find Next" -msgstr "Sonraki Bul" - #: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp msgid "Step Over" msgstr "Adımla" @@ -6109,7 +6444,8 @@ msgid "Debug with External Editor" msgstr "Harici düzenleyici ile hata ayıkla" #: editor/plugins/script_editor_plugin.cpp -msgid "Open Godot online documentation" +#, fuzzy +msgid "Open Godot online documentation." msgstr "Çevrimiçi Godot dökümanlarını aç" #: editor/plugins/script_editor_plugin.cpp @@ -6117,7 +6453,7 @@ msgid "Request Docs" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Help improve the Godot documentation by giving feedback" +msgid "Help improve the Godot documentation by giving feedback." msgstr "" #: editor/plugins/script_editor_plugin.cpp @@ -6145,10 +6481,12 @@ msgstr "" "Hangi eylem yapılsın?:" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp msgid "Reload" msgstr "Yeniden Yükle" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp msgid "Resave" msgstr "Yeniden Kaydet" @@ -6163,6 +6501,31 @@ msgstr "Yardım Ara" #: editor/plugins/script_text_editor.cpp #, fuzzy +msgid "Connections to method:" +msgstr "Düğüme BaÄŸla:" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Source" +msgstr "Kaynak:" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Signal" +msgstr "Sinyaller" + +#: editor/plugins/script_text_editor.cpp +msgid "Target" +msgstr "Amaç" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "" +"Missing connected method '%s' for signal '%s' from node '%s' to node '%s'." +msgstr "Åžunun: '%s' ÅŸununla: '%s' baÄŸlantısını kes" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy msgid "Line" msgstr "Satır:" @@ -6175,10 +6538,6 @@ msgstr "" msgid "Go to Function" msgstr "İşleve Git..." -#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp -msgid "Standard" -msgstr "" - #: editor/plugins/script_text_editor.cpp msgid "Only resources from filesystem can be dropped." msgstr "Sadece dosya sisteminden kaynaklar bırakılabilir." @@ -6212,6 +6571,11 @@ msgstr "Büyük harfe çevirme" msgid "Syntax Highlighter" msgstr "" +#: editor/plugins/script_text_editor.cpp +#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp +msgid "Bookmarks" +msgstr "" + #: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" @@ -6239,6 +6603,26 @@ msgid "Toggle Comment" msgstr "Yorumu Aç / Kapat" #: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Toggle Bookmark" +msgstr "Serbestbakış Aç / Kapat" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Go to Next Bookmark" +msgstr "Sonraki Kesme Noktasına Git" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Go to Previous Bookmark" +msgstr "Önceki Kesme Noktasına Git" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Remove All Bookmarks" +msgstr "Bütün Öğeleri Kaldır" + +#: editor/plugins/script_text_editor.cpp msgid "Fold/Unfold Line" msgstr "Satırı Katla/Aç" @@ -6319,6 +6703,15 @@ msgid "Contextual Help" msgstr "BaÄŸlamsal Yardım" #: editor/plugins/shader_editor_plugin.cpp +#, fuzzy +msgid "" +"This shader has been modified on on disk.\n" +"What action should be taken?" +msgstr "" +"AÅŸağıdaki dosyalar diskte daha yeni.\n" +"Hangi eylem yapılsın?:" + +#: editor/plugins/shader_editor_plugin.cpp msgid "Shader" msgstr "Gölgelendirici" @@ -6670,7 +7063,8 @@ msgid "Right View" msgstr "SaÄŸdan Görünüm" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Switch Perspective/Orthogonal view" +#, fuzzy +msgid "Switch Perspective/Orthogonal View" msgstr "Derinlik / Dikey Görünüme DeÄŸiÅŸtir" #: editor/plugins/spatial_editor_plugin.cpp @@ -6710,12 +7104,14 @@ msgid "Toggle Freelook" msgstr "Serbestbakış Aç / Kapat" #: editor/plugins/spatial_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Transform" msgstr "Dönüşüm" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Snap object to floor" -msgstr "" +#, fuzzy +msgid "Snap Object to Floor" +msgstr "Izgaraya yapış" #: editor/plugins/spatial_editor_plugin.cpp msgid "Transform Dialog..." @@ -6861,43 +7257,43 @@ msgid "Invalid geometry, can't replace by mesh." msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Invalid geometry, can't create polygon." -msgstr "" - -#: editor/plugins/sprite_editor_plugin.cpp -msgid "Invalid geometry, can't create collision polygon." -msgstr "" - -#: editor/plugins/sprite_editor_plugin.cpp -msgid "Invalid geometry, can't create light occluder." -msgstr "" - -#: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy -msgid "Sprite" -msgstr "GörüntüKareleri" - -#: editor/plugins/sprite_editor_plugin.cpp #, fuzzy msgid "Convert to Mesh2D" msgstr "Åžuna Dönüştür %s" #: editor/plugins/sprite_editor_plugin.cpp +msgid "Invalid geometry, can't create polygon." +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp #, fuzzy msgid "Convert to Polygon2D" msgstr "Çokgeni Taşı" #: editor/plugins/sprite_editor_plugin.cpp +msgid "Invalid geometry, can't create collision polygon." +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp #, fuzzy msgid "Create CollisionPolygon2D Sibling" msgstr "Yönlendirici Çokgeni OluÅŸtur" #: editor/plugins/sprite_editor_plugin.cpp +msgid "Invalid geometry, can't create light occluder." +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp #, fuzzy msgid "Create LightOccluder2D Sibling" msgstr "Engelleyici Çokgeni OluÅŸtur" #: editor/plugins/sprite_editor_plugin.cpp +#, fuzzy +msgid "Sprite" +msgstr "GörüntüKareleri" + +#: editor/plugins/sprite_editor_plugin.cpp msgid "Simplification: " msgstr "" @@ -6917,14 +7313,24 @@ msgid "Settings:" msgstr "Ayarlar" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "ERROR: Couldn't load frame resource!" -msgstr "HATA: Kare kaynağı yüklenemedi!" +#, fuzzy +msgid "No Frames Selected" +msgstr "Kafes Seçimi" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Add %d Frame(s)" +msgstr "Çerçeve Ekle" #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Add Frame" msgstr "Çerçeve Ekle" #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "ERROR: Couldn't load frame resource!" +msgstr "HATA: Kare kaynağı yüklenemedi!" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Resource clipboard is empty or not a texture!" msgstr "Kaynak panosu boÅŸ ya da bir doku deÄŸil!" @@ -6968,6 +7374,15 @@ msgid "Animation Frames:" msgstr "Animasyon Çerçeveleri" #: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Add a Texture from File" +msgstr "AÄŸaçtan Düğüm(ler) Ekle" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Add Frames from a Sprite Sheet" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Insert Empty (Before)" msgstr "BoÅŸ Ekle (Önce)" @@ -6984,6 +7399,30 @@ msgid "Move (After)" msgstr "Taşı (Sonra)" #: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Select Frames" +msgstr "Çerçeveleri Yığ" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Horizontal:" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Vertical:" +msgstr "Köşenoktalar" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Select/Clear All Frames" +msgstr "Hepsini seç" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Create Frames from Sprite Sheet" +msgstr "Sahneden OluÅŸtur" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "SpriteFrames" msgstr "GörüntüKareleri" @@ -7051,12 +7490,13 @@ msgstr "Tümünü Ekle" msgid "Remove All Items" msgstr "Bütün Öğeleri Kaldır" -#: editor/plugins/theme_editor_plugin.cpp +#: editor/plugins/theme_editor_plugin.cpp editor/project_manager.cpp msgid "Remove All" msgstr "Tümünü Kaldır" #: editor/plugins/theme_editor_plugin.cpp -msgid "Edit theme..." +#, fuzzy +msgid "Edit Theme" msgstr "Tema düzenle..." #: editor/plugins/theme_editor_plugin.cpp @@ -7084,18 +7524,25 @@ msgid "Create From Current Editor Theme" msgstr "Mevcut Düzenleyici Temasından OluÅŸtur" #: editor/plugins/theme_editor_plugin.cpp -msgid "CheckBox Radio1" -msgstr "OnayKutusu Radyo1" +#, fuzzy +msgid "Toggle Button" +msgstr "Fare Düğmesi" #: editor/plugins/theme_editor_plugin.cpp -msgid "CheckBox Radio2" -msgstr "OnayKutusu Radyo2" +#, fuzzy +msgid "Disabled Button" +msgstr "Orta Düğme" #: editor/plugins/theme_editor_plugin.cpp msgid "Item" msgstr "Öğe" #: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Disabled Item" +msgstr "Devre dışı" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Check Item" msgstr "Öğeyi Denetle" @@ -7112,6 +7559,24 @@ msgid "Checked Radio Item" msgstr "Seçili Radyo Ögesi" #: editor/plugins/theme_editor_plugin.cpp +msgid "Named Sep." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Submenu" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Item 1" +msgstr "Öğe" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Item 2" +msgstr "Öğe" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Has" msgstr "Var" @@ -7120,8 +7585,9 @@ msgid "Many" msgstr "Çok" #: editor/plugins/theme_editor_plugin.cpp -msgid "Has,Many,Options" -msgstr "Birçok,Seçenek,Var" +#, fuzzy +msgid "Disabled LineEdit" +msgstr "Devre dışı" #: editor/plugins/theme_editor_plugin.cpp msgid "Tab 1" @@ -7136,6 +7602,19 @@ msgid "Tab 3" msgstr "Sekme 3" #: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Editable Item" +msgstr "Düzenlenebilir Çocuklar" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Subtree" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Has,Many,Options" +msgstr "Birçok,Seçenek,Var" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Data Type:" msgstr "Veri Türü:" @@ -7169,6 +7648,7 @@ msgid "Fix Invalid Tiles" msgstr "Geçersiz ad." #: editor/plugins/tile_map_editor_plugin.cpp +#: modules/gridmap/grid_map_editor_plugin.cpp #, fuzzy msgid "Cut Selection" msgstr "İçre Seçimi" @@ -7211,39 +7691,50 @@ msgid "Mirror Y" msgstr "Y'ye Aynala" #: editor/plugins/tile_map_editor_plugin.cpp +#, fuzzy +msgid "Disable Autotile" +msgstr "Oto-döşemeler" + +#: editor/plugins/tile_map_editor_plugin.cpp +#, fuzzy +msgid "Enable Priority" +msgstr "Süzgeçleri Düzenle" + +#: editor/plugins/tile_map_editor_plugin.cpp msgid "Paint Tile" msgstr "Karo Boya" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Pick Tile" -msgstr "Karo Seç" +msgid "" +"Shift+RMB: Line Draw\n" +"Shift+Ctrl+RMB: Rectangle Paint" +msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy -msgid "Copy Selection" -msgstr "Seçimi Kaldır" +msgid "Pick Tile" +msgstr "Karo Seç" #: editor/plugins/tile_map_editor_plugin.cpp #, fuzzy -msgid "Rotate left" +msgid "Rotate Left" msgstr "Döndürme Biçimi" #: editor/plugins/tile_map_editor_plugin.cpp #, fuzzy -msgid "Rotate right" +msgid "Rotate Right" msgstr "SaÄŸa Taşı" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Flip horizontally" +msgid "Flip Horizontally" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Flip vertically" +msgid "Flip Vertically" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp #, fuzzy -msgid "Clear transform" +msgid "Clear Transform" msgstr "Dönüşüm" #: editor/plugins/tile_set_editor_plugin.cpp @@ -7283,6 +7774,46 @@ msgid "Select the previous shape, subtile, or Tile." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Region Mode" +msgstr "Çalışma Kipi:" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Collision Mode" +msgstr "AradeÄŸerleme Kipi" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Occlusion Mode" +msgstr "Çokluyu Düzenleyin" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Navigation Mode" +msgstr "Yönlendirici Örüntüsü OluÅŸtur" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Bitmask Mode" +msgstr "Döndürme Biçimi" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Priority Mode" +msgstr "Dışa Aktarma Biçimi:" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Icon Mode" +msgstr "Kaydırma Biçimi" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Z Index Mode" +msgstr "Kaydırma Biçimi" + +#: editor/plugins/tile_set_editor_plugin.cpp msgid "Copy bitmask." msgstr "" @@ -7372,6 +7903,7 @@ msgstr "Noktaları sil" msgid "" "LMB: Set bit on.\n" "RMB: Set bit off.\n" +"Shift+LMB: Set wildcard bit.\n" "Click on another Tile to edit it." msgstr "" "LMB: bit'i aç.\n" @@ -7504,6 +8036,79 @@ msgid "TileSet" msgstr "Karo Takımı" #: 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 +" +msgstr "GiriÅŸ Ekle" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar" +msgstr "Ölçekle:" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector" +msgstr "Denetçi" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Add input port" +msgstr "GiriÅŸ Ekle" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add output port" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change input port type" +msgstr "Varsayılan tipi deÄŸiÅŸtir" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change output port type" +msgstr "Varsayılan tipi deÄŸiÅŸtir" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change input port name" +msgstr "GiriÅŸ Adını DeÄŸiÅŸtir" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change output port name" +msgstr "GiriÅŸ Adını DeÄŸiÅŸtir" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Remove input port" +msgstr "Noktayı kaldır" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Remove output port" +msgstr "Noktayı kaldır" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Set expression" +msgstr "İfadeyi DeÄŸiÅŸtir" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Resize VisualShader node" +msgstr "Gölgelendirici" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Set Uniform Name" msgstr "" @@ -7547,6 +8152,859 @@ msgstr "SaÄŸ" #: editor/plugins/visual_shader_editor_plugin.cpp #, fuzzy +msgid "Create Shader Node" +msgstr "Düğüm OluÅŸtur" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Color function." +msgstr "İşleve Git..." + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Color operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Grayscale function." +msgstr "İşlev Yap" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts HSV vector to RGB equivalent." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts RGB vector to HSV equivalent." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Sepia function." +msgstr "İşlevi Yeniden Adlandır" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Burn operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Darken operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Difference operator." +msgstr "Sadece Farklılıklar" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Dodge operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "HardLight operator" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Lighten operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Overlay operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Screen operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "SoftLight operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Color constant." +msgstr "Sabit" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Color uniform." +msgstr "Dönüşüm" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns an associated vector if the provided scalars are equal, greater or " +"less." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns an associated vector if the provided boolean value is true or false." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Boolean constant." +msgstr "Vec Sabitini DeÄŸiÅŸtir" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'camera' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'inv_camera' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'inv_projection' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'normal' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'projection' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'time' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'viewport_size' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'world' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'texture_pixel_size' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Input parameter." +msgstr "Ebeveyne yapıştır" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'binormal' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'fragcoord' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_coord' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_uv' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'side' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'tangent' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv2' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'vertex' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'view' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'albedo' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'attenuation' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'diffuse' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_color' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'roughness' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'specular' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'transmission' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'modelview' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_size' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'tangent' input parameter for vertex and fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_pass' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_coord' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_pixel_size' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_uv' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_alpha' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_height' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_uv' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_vec' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'normal' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'shadow_color' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'extra' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'projection' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'vertex' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'world' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'active' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'custom' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'custom_alpha' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'delta' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'emission_transform' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'index' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'lifetime' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'restart' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'time' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'transform' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'velocity' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar function." +msgstr "Basamaklı İşlevi DeÄŸiÅŸtir" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar operator." +msgstr "Skaler Operatörünü DeÄŸiÅŸtir" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "E constant (2.718282). Represents the base of the natural logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Epsilon constant (0.00001). Smallest possible scalar number." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Phi constant (1.618034). Golden ratio." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi/4 constant (0.785398) or 45 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi/2 constant (1.570796) or 90 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi constant (3.141593) or 180 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Tau constant (6.283185) or 360 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Sqrt2 constant (1.414214). Square root of 2." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the absolute value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-tangent of the parameters." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Finds the nearest integer that is greater than or equal to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Constrains a value to lie between two further values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts a quantity in radians to degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-e Exponential." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-2 Exponential." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Finds the nearest integer less than or equal to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Computes the fractional part of the argument." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the inverse of the square root of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Natural logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-2 logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the greater of two values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the lesser of two values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Linear interpolation between two scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the opposite value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 - scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns the value of the first parameter raised to the power of the second." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts a quantity in degrees to radians." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 / scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the nearest integer to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the nearest even integer to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Clamps the value between 0.0 and 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Extracts the sign of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the square root of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( scalar(edge0), scalar(edge1), scalar(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if x is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( scalar(edge), scalar(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the truncated value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Adds scalar to scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Divides scalar by scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies scalar by scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the remainder of the two scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Subtracts scalar from scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar constant." +msgstr "Basamaklı Sabiti DeÄŸiÅŸtir" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar uniform." +msgstr "Basamaklı Tekdüzenini DeÄŸiÅŸtir" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Perform the cubic texture lookup." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Perform the texture lookup." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Cubic texture uniform." +msgstr "Doku Tekdüzenini DeÄŸiÅŸtir" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "2D texture uniform." +msgstr "Doku Tekdüzenini DeÄŸiÅŸtir" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Transform function." +msgstr "Dönüştürme İletiÅŸim Kutusu..." + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) Calculate the outer product of a pair of vectors.\n" +"\n" +"OuterProduct treats the first parameter 'c' as a column vector (matrix with " +"one column) and the second parameter 'r' as a row vector (matrix with one " +"row) and does a linear algebraic matrix multiply 'c * r', yielding a matrix " +"whose number of rows is the number of components in 'c' and whose number of " +"columns is the number of components in 'r'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Composes transform from four vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Decomposes transform to four vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the determinant of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the inverse of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the transpose of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies transform by transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies vector by transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Transform constant." +msgstr "Dönüşüm Durduruldu." + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Transform uniform." +msgstr "Dönüşüm Durduruldu." + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector function." +msgstr "İşleve Git..." + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector operator." +msgstr "Vec İşletmenini DeÄŸiÅŸtir" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Composes vector from three scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Decomposes vector to three scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the cross product of two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the distance between two points." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the dot product of two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns a vector that points in the same direction as a reference vector. " +"The function has three vector parameters : N, the vector to orient, I, the " +"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 "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the length of a vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Linear interpolation between two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the normalize product of vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 - vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 / vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns a vector that points in the direction of reflection ( a : incident " +"vector, b : normal vector )." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns a vector that points in the direction of refraction." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( vector(edge0), vector(edge1), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if 'x' is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( scalar(edge0), scalar(edge1), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if 'x' is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( vector(edge), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( scalar(edge), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Adds vector to vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Divides vector by vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies vector by vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the remainder of the two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Subtracts vector from vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector constant." +msgstr "Vec Sabitini DeÄŸiÅŸtir" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector uniform." +msgstr "Vec Tekdüzenini DeÄŸiÅŸtir" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Custom Godot Shader Language expression, with custom amount of input and " +"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 "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns falloff based on the dot product of surface normal and view " +"direction of camera (pass associated inputs to it)." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) (Fragment/Light mode only) Scalar derivative function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) (Fragment/Light mode only) Vector derivative function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Derivative in 'x' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Derivative in 'x' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Derivative in 'y' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Derivative in 'y' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Sum of absolute derivative " +"in 'x' and 'y'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Sum of absolute derivative " +"in 'x' and 'y'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy msgid "VisualShader" msgstr "Gölgelendirici" @@ -7749,6 +9207,10 @@ msgid "Directory already contains a Godot project." msgstr "" #: editor/project_manager.cpp +msgid "New Game Project" +msgstr "Yeni Oyun Projesi" + +#: editor/project_manager.cpp msgid "Imported Project" msgstr "İçe Aktarılan Proje" @@ -7796,10 +9258,6 @@ msgid "Rename Project" msgstr "Projeyi Yeniden Adlandır" #: editor/project_manager.cpp -msgid "New Game Project" -msgstr "Yeni Oyun Projesi" - -#: editor/project_manager.cpp msgid "Import Existing Project" msgstr "Var Olan Projeyi İçe Aktar" @@ -7828,10 +9286,6 @@ msgid "Project Name:" msgstr "Proje Adı:" #: editor/project_manager.cpp -msgid "Create folder" -msgstr "Klasör OluÅŸtur" - -#: editor/project_manager.cpp msgid "Project Path:" msgstr "Proje Yolu:" @@ -7841,10 +9295,6 @@ msgid "Project Installation Path:" msgstr "Proje Yolu:" #: editor/project_manager.cpp -msgid "Browse" -msgstr "Gözat" - -#: editor/project_manager.cpp msgid "Renderer:" msgstr "" @@ -7898,8 +9348,8 @@ msgid "" "\n" "If you proceed with opening it, it will be converted to Godot's current " "configuration file format.\n" -"Warning: You will not be able to open the project with previous versions of " -"the engine anymore." +"Warning: You won't be able to open the project with previous versions of the " +"engine anymore." msgstr "" #: editor/project_manager.cpp @@ -7910,8 +9360,8 @@ msgid "" "%s\n" "\n" "Do you want to convert it?\n" -"Warning: You will not be able to open the project with previous versions of " -"the engine anymore." +"Warning: You won't be able to open the project with previous versions of the " +"engine anymore." msgstr "" #: editor/project_manager.cpp @@ -7921,9 +9371,10 @@ msgid "" msgstr "" #: editor/project_manager.cpp +#, fuzzy msgid "" "Can't run project: no main scene defined.\n" -"Please edit the project and set the main scene in \"Project Settings\" under " +"Please edit the project and set the main scene in the Project Settings under " "the \"Application\" category." msgstr "" "Proje çalıştırılamadı: tanımlanmış ana sahne yok.\n" @@ -7939,26 +9390,46 @@ msgstr "" "Lütfen ilk içe aktarmayı tetiklemek için projeyi düzenleyin." #: editor/project_manager.cpp -msgid "Are you sure to run more than one project?" +#, fuzzy +msgid "Are you sure to run %d projects at once?" msgstr "Birden fazla projeyi çalıştırmaya kararlı mısınız?" #: editor/project_manager.cpp -msgid "Remove project from the list? (Folder contents will not be modified)" +#, fuzzy +msgid "" +"Remove %d projects from the list?\n" +"The project folders' contents won't be modified." +msgstr "Proje listeden kaldırılsın mı? (Klasör içerikleri deÄŸiÅŸtirilmeyecek)" + +#: editor/project_manager.cpp +#, fuzzy +msgid "" +"Remove this project from the list?\n" +"The project folder's contents won't be modified." msgstr "Proje listeden kaldırılsın mı? (Klasör içerikleri deÄŸiÅŸtirilmeyecek)" #: editor/project_manager.cpp +#, fuzzy +msgid "" +"Remove all missing projects from the list? (Folders contents will not be " +"modified)" +msgstr "Proje listeden kaldırılsın mı? (Klasör içerikleri deÄŸiÅŸtirilmeyecek)" + +#: editor/project_manager.cpp +#, fuzzy msgid "" "Language changed.\n" -"The UI will update next time the editor or project manager starts." +"The interface will update after restarting the editor or project manager." msgstr "" "Dil deÄŸiÅŸti.\n" "DeÄŸiÅŸiklik düzenleyici veya proje yöneticisi yeniden baÅŸladığında etkili " "olacak." #: editor/project_manager.cpp +#, fuzzy msgid "" -"You are about the scan %s folders for existing Godot projects. Do you " -"confirm?" +"Are you sure to scan %s folders for existing Godot projects?\n" +"This could take a while." msgstr "" "Var olan Godot projeleri için %s klasör taraması yapıyorsunuz. Onaylıyor " "musunuz?" @@ -7984,6 +9455,11 @@ msgid "New Project" msgstr "Yeni Proje" #: editor/project_manager.cpp +#, fuzzy +msgid "Remove Missing" +msgstr "Noktayı kaldır" + +#: editor/project_manager.cpp msgid "Templates" msgstr "Åžablonlar" @@ -8000,9 +9476,10 @@ msgid "Can't run project" msgstr "Proje çalıştırılamadı" #: editor/project_manager.cpp +#, fuzzy msgid "" -"You don't currently have any projects.\n" -"Would you like to explore the official example projects in the Asset Library?" +"You currently don't have any projects.\n" +"Would you like to explore official example projects in the Asset Library?" msgstr "" "Herhangi bir projen yok.\n" "Varlık Kütüphanesi'ndeki resmî örnek projeleri incelemek ister misin?" @@ -8032,7 +9509,8 @@ msgstr "" "Geçersiz iÅŸlem adı. BoÅŸ olamaz ve '/', ':', '=', '\\' veya '\"' içeremez." #: editor/project_settings_editor.cpp -msgid "Action '%s' already exists!" +#, fuzzy +msgid "An action with the name '%s' already exists." msgstr "İşlem '%s' zaten var!" #: editor/project_settings_editor.cpp @@ -8193,10 +9671,6 @@ msgstr "" "Geçersiz iÅŸlem adı. BoÅŸ olamaz ve '/', ':', '=', '\\' veya '\"' içeremez." #: editor/project_settings_editor.cpp -msgid "Already existing" -msgstr "Zaten mevcut" - -#: editor/project_settings_editor.cpp msgid "Add Input Action" msgstr "GiriÅŸ Eylemi Ekle" @@ -8261,7 +9735,7 @@ msgid "Override For..." msgstr "Åžunun Üzerine Yaz..." #: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp -msgid "Editor must be restarted for changes to take effect" +msgid "The editor must be restarted for changes to take effect." msgstr "" #: editor/project_settings_editor.cpp @@ -8321,11 +9795,13 @@ msgid "Locales Filter" msgstr "Yereller Süzgeci" #: editor/project_settings_editor.cpp -msgid "Show all locales" +#, fuzzy +msgid "Show All Locales" msgstr "Tüm yerelleri göster" #: editor/project_settings_editor.cpp -msgid "Show only selected locales" +#, fuzzy +msgid "Show Selected Locales Only" msgstr "Sadece seçili yerelleri göster" #: editor/project_settings_editor.cpp @@ -8341,14 +9817,6 @@ msgid "AutoLoad" msgstr "Otomatik Yükle" #: editor/property_editor.cpp -msgid "Ease In" -msgstr "Açılma" - -#: editor/property_editor.cpp -msgid "Ease Out" -msgstr "Kararma" - -#: editor/property_editor.cpp msgid "Zero" msgstr "Sıfır" @@ -8423,7 +9891,7 @@ msgstr "" #: editor/rename_dialog.cpp #, fuzzy -msgid "Advanced options" +msgid "Advanced Options" msgstr "Yapışma ayarları" #: editor/rename_dialog.cpp @@ -8694,8 +10162,8 @@ msgstr "Kalıtı Temizle" #: editor/scene_tree_dock.cpp #, fuzzy -msgid "Custom Node" -msgstr "Düğümleri Kes" +msgid "Other Node" +msgstr "Düğümleri Sil" #: editor/scene_tree_dock.cpp msgid "Can't operate on nodes from a foreign scene!" @@ -8738,7 +10206,7 @@ msgstr "Kalıtı Temizle" #: editor/scene_tree_dock.cpp #, fuzzy -msgid "Open documentation" +msgid "Open Documentation" msgstr "Çevrimiçi Godot dökümanlarını aç" #: editor/scene_tree_dock.cpp @@ -8767,7 +10235,7 @@ msgstr "Sahneden BirleÅŸtir" msgid "Save Branch as Scene" msgstr "Dalı Sahne olarak Kaydet" -#: editor/scene_tree_dock.cpp +#: editor/scene_tree_dock.cpp editor/script_editor_debugger.cpp msgid "Copy Node Path" msgstr "Düğüm Yolunu Kopyala" @@ -8813,6 +10281,21 @@ msgid "Toggle Visible" msgstr "GörünebilirliÄŸi Aç/Kapa" #: editor/scene_tree_editor.cpp +#, fuzzy +msgid "Unlock Node" +msgstr "Düğüm Seç" + +#: editor/scene_tree_editor.cpp +#, fuzzy +msgid "Button Group" +msgstr "Düğme 7" + +#: editor/scene_tree_editor.cpp +#, fuzzy +msgid "(Connecting From)" +msgstr "BaÄŸlantı Hatası" + +#: editor/scene_tree_editor.cpp msgid "Node configuration warning:" msgstr "Düğüm yapılandırma uyarısı:" @@ -8841,9 +10324,9 @@ msgstr "" "Düğüm grup(lar)ın içinde.\n" "Gruplar dokunu göstermek için tıkla." -#: editor/scene_tree_editor.cpp editor/script_create_dialog.cpp +#: editor/scene_tree_editor.cpp #, fuzzy -msgid "Open Script" +msgid "Open Script:" msgstr "Betik Aç" #: editor/scene_tree_editor.cpp @@ -8895,73 +10378,84 @@ msgid "Select a Node" msgstr "Bir Düğüm Seç" #: editor/script_create_dialog.cpp -msgid "Error loading template '%s'" -msgstr "Åžablon '%s' yüklenirken hata" +#, fuzzy +msgid "Path is empty." +msgstr "Yol boÅŸ" #: editor/script_create_dialog.cpp -msgid "Error - Could not create script in filesystem." -msgstr "Hata - dosyasisteminde betik oluÅŸturulamadı." +#, fuzzy +msgid "Filename is empty." +msgstr "Kayıt yolu boÅŸ!" #: editor/script_create_dialog.cpp -msgid "Error loading script from %s" -msgstr "Åžuradan: %s betik yüklenirken hata" +#, fuzzy +msgid "Path is not local." +msgstr "Yol yerel deÄŸil" #: editor/script_create_dialog.cpp -msgid "N/A" -msgstr "Uygulanamaz" +#, fuzzy +msgid "Invalid base path." +msgstr "Geçersiz üst yol" #: editor/script_create_dialog.cpp #, fuzzy -msgid "Open Script/Choose Location" -msgstr "Betik Düzenleyiciyi Aç" +msgid "A directory with the same name exists." +msgstr "Aynı isimde dizin zaten var" #: editor/script_create_dialog.cpp -msgid "Path is empty" -msgstr "Yol boÅŸ" +#, fuzzy +msgid "Invalid extension." +msgstr "Geçersiz uzantı" #: editor/script_create_dialog.cpp #, fuzzy -msgid "Filename is empty" -msgstr "Kayıt yolu boÅŸ!" +msgid "Wrong extension chosen." +msgstr "Yanlış uzantı seçili" #: editor/script_create_dialog.cpp -msgid "Path is not local" -msgstr "Yol yerel deÄŸil" +msgid "Error loading template '%s'" +msgstr "Åžablon '%s' yüklenirken hata" #: editor/script_create_dialog.cpp -msgid "Invalid base path" -msgstr "Geçersiz üst yol" +msgid "Error - Could not create script in filesystem." +msgstr "Hata - dosyasisteminde betik oluÅŸturulamadı." #: editor/script_create_dialog.cpp -msgid "Directory of the same name exists" -msgstr "Aynı isimde dizin zaten var" +msgid "Error loading script from %s" +msgstr "Åžuradan: %s betik yüklenirken hata" #: editor/script_create_dialog.cpp -msgid "File exists, will be reused" -msgstr "Dosya mevcut, yeniden kullanılacak" +msgid "N/A" +msgstr "Uygulanamaz" #: editor/script_create_dialog.cpp -msgid "Invalid extension" -msgstr "Geçersiz uzantı" +#, fuzzy +msgid "Open Script / Choose Location" +msgstr "Betik Düzenleyiciyi Aç" #: editor/script_create_dialog.cpp -msgid "Wrong extension chosen" -msgstr "Yanlış uzantı seçili" +#, fuzzy +msgid "Open Script" +msgstr "Betik Aç" #: editor/script_create_dialog.cpp -msgid "Invalid Path" -msgstr "Geçersiz Yol" +#, fuzzy +msgid "File exists, it will be reused." +msgstr "Dosya mevcut, yeniden kullanılacak" #: editor/script_create_dialog.cpp -msgid "Invalid class name" +#, fuzzy +msgid "Invalid class name." msgstr "Geçersiz sınıf ismi" #: editor/script_create_dialog.cpp -msgid "Invalid inherited parent name or path" +#, fuzzy +msgid "Invalid inherited parent name or path." msgstr "Geçersiz miras alınmış ebeveyn ismi veya yolu" #: editor/script_create_dialog.cpp -msgid "Script valid" +#, fuzzy +msgid "Script is valid." msgstr "Betik geçerli" #: editor/script_create_dialog.cpp @@ -8969,15 +10463,18 @@ msgid "Allowed: a-z, A-Z, 0-9 and _" msgstr "İzin verilenler: a-z, A-Z, 0-9 ve _" #: editor/script_create_dialog.cpp -msgid "Built-in script (into scene file)" +#, fuzzy +msgid "Built-in script (into scene file)." msgstr "Gömülü betik (sahne dosyasına)" #: editor/script_create_dialog.cpp -msgid "Create new script file" +#, fuzzy +msgid "Will create a new script file." msgstr "Yeni betik dosyası oluÅŸtur" #: editor/script_create_dialog.cpp -msgid "Load existing script file" +#, fuzzy +msgid "Will load an existing script file." msgstr "Mevcut betik dosyasını yükle" #: editor/script_create_dialog.cpp @@ -9109,6 +10606,10 @@ msgstr "Canlı Kök Düzenle:" msgid "Set From Tree" msgstr "AÄŸaçtan Ayarla" +#: editor/script_editor_debugger.cpp +msgid "Export measures as CSV" +msgstr "" + #: editor/settings_config_dialog.cpp #, fuzzy msgid "Erase Shortcut" @@ -9248,6 +10749,15 @@ msgid "GDNativeLibrary" msgstr "GDYerelKütüphanesi" #: 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 "Güncelleme Topacını Devre Dışı Bırak" + +#: modules/gdnative/gdnative_library_singleton_editor.cpp msgid "Library" msgstr "Kütüphane" @@ -9334,8 +10844,9 @@ msgid "GridMap Fill Selection" msgstr "IzgaraHaritası Seçimi Sil" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "GridMap Duplicate Selection" -msgstr "IzgaraHaritası Seçimi ÇoÄŸalt" +#, fuzzy +msgid "GridMap Paste Selection" +msgstr "IzgaraHaritası Seçimi Sil" #: modules/gridmap/grid_map_editor_plugin.cpp #, fuzzy @@ -9403,18 +10914,6 @@ msgid "Cursor Clear Rotation" msgstr "İmleç Döndürme Temizle" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Create Area" -msgstr "Alan OluÅŸtur" - -#: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Create Exterior Connector" -msgstr "Dış BaÄŸlayıcı OluÅŸtur" - -#: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Erase Area" -msgstr "Alanı Sil" - -#: modules/gridmap/grid_map_editor_plugin.cpp msgid "Clear Selection" msgstr "Seçimi Temizle" @@ -9780,18 +11279,11 @@ msgid "Available Nodes:" msgstr "Kullanılabilir Düğümler:" #: modules/visual_script/visual_script_editor.cpp -msgid "Select or create a function to edit graph" +#, fuzzy +msgid "Select or create a function to edit its graph." msgstr "Çizgeyi düzenlemek için bir fonksiyon seçin ya da oluÅŸturun" #: modules/visual_script/visual_script_editor.cpp -msgid "Edit Signal Arguments:" -msgstr "Sinyal DeÄŸiÅŸtirgenlerini Düzenle:" - -#: modules/visual_script/visual_script_editor.cpp -msgid "Edit Variable:" -msgstr "DeÄŸiÅŸkeni Düzenle:" - -#: modules/visual_script/visual_script_editor.cpp msgid "Delete Selected" msgstr "Seçilenleri Sil" @@ -9922,6 +11414,19 @@ msgid "Debug keystore not configured in the Editor Settings nor in the preset." msgstr "" #: platform/android/export/export.cpp +msgid "Custom build requires a valid Android SDK path in Editor Settings." +msgstr "" + +#: platform/android/export/export.cpp +msgid "Invalid Android SDK path for custom build in Editor Settings." +msgstr "" + +#: platform/android/export/export.cpp +msgid "" +"Android project is not installed for compiling. Install from Editor menu." +msgstr "" + +#: platform/android/export/export.cpp msgid "Invalid public key for APK expansion." msgstr "" @@ -9930,6 +11435,34 @@ msgstr "" msgid "Invalid package name:" msgstr "Geçersiz sınıf ismi" +#: platform/android/export/export.cpp +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 "" +"Android build version mismatch:\n" +" Template installed: %s\n" +" Godot Version: %s\n" +"Please reinstall Android build template from 'Project' menu." +msgstr "" + +#: platform/android/export/export.cpp +msgid "Building Android Project (gradle)" +msgstr "" + +#: 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 "" + +#: platform/android/export/export.cpp +msgid "No build apk generated at: " +msgstr "" + #: platform/iphone/export/export.cpp msgid "Identifier is missing." msgstr "" @@ -10222,30 +11755,35 @@ msgid "ARVRCamera must have an ARVROrigin node as its parent" msgstr "ARVRCamera ebeveyni olarak ARVROrigin düğümüne sahip olmalı" #: scene/3d/arvr_nodes.cpp -msgid "ARVRController must have an ARVROrigin node as its parent" +#, fuzzy +msgid "ARVRController must have an ARVROrigin node as its parent." msgstr "ARVRController ebeveyni olarak ARVROrigin düğümüne sahip olmalı" #: scene/3d/arvr_nodes.cpp +#, fuzzy msgid "" -"The controller id must not be 0 or this controller will not be bound to an " -"actual controller" +"The controller ID must not be 0 or this controller won't be bound to an " +"actual controller." msgstr "" "Deneytleyici kimliÄŸi 0 olmamalı aksi taktirde bu denetleyici gerçek bir " "denetleyiciye baÄŸlı olmayacak" #: scene/3d/arvr_nodes.cpp -msgid "ARVRAnchor must have an ARVROrigin node as its parent" +#, fuzzy +msgid "ARVRAnchor must have an ARVROrigin node as its parent." msgstr "ARVRAnchor ebeveyni olarak ARVROrigin düğümüne sahip olmalı" #: scene/3d/arvr_nodes.cpp +#, fuzzy msgid "" -"The anchor id must not be 0 or this anchor will not be bound to an actual " -"anchor" +"The anchor ID must not be 0 or this anchor won't be bound to an actual " +"anchor." msgstr "" "Çapa kimliÄŸi 0 olmamalı aksi halde bu çapa gerçek bir çapaya baÄŸlı olmayacak" #: scene/3d/arvr_nodes.cpp -msgid "ARVROrigin requires an ARVRCamera child node" +#, fuzzy +msgid "ARVROrigin requires an ARVRCamera child node." msgstr "ARVROrigin bir ARVRCamera çocuk düğümü gerektirir" #: scene/3d/baked_lightmap.cpp @@ -10330,8 +11868,8 @@ msgstr "" #: scene/3d/cpu_particles.cpp msgid "" -"CPUParticles animation requires the usage of a SpatialMaterial with " -"\"Billboard Particles\" enabled." +"CPUParticles animation requires the usage of a SpatialMaterial whose " +"Billboard Mode is set to \"Particle Billboard\"." msgstr "" #: scene/3d/gi_probe.cpp @@ -10373,8 +11911,8 @@ msgstr "" #: scene/3d/particles.cpp msgid "" -"Particles animation requires the usage of a SpatialMaterial with \"Billboard " -"Particles\" enabled." +"Particles animation requires the usage of a SpatialMaterial whose Billboard " +"Mode is set to \"Particle Billboard\"." msgstr "" #: scene/3d/path.cpp @@ -10405,7 +11943,7 @@ msgstr "" "Yol özelliÄŸi, çalışmak için geçerli bir Spatial düğümüne iÅŸaret etmelidir." #: scene/3d/soft_body.cpp -msgid "This body will be ignored until you set a mesh" +msgid "This body will be ignored until you set a mesh." msgstr "" #: scene/3d/soft_body.cpp @@ -10522,7 +12060,7 @@ msgstr "Åžuanki rengi bir önayar olarak kaydet" msgid "" "Container by itself serves no purpose unless a script configures it's " "children placement behavior.\n" -"If you dont't intend to add a script, then please use a plain 'Control' node " +"If you don't intend to add a script, then please use a plain 'Control' node " "instead." msgstr "" @@ -10534,11 +12072,6 @@ msgstr "Uyarı!" msgid "Please Confirm..." msgstr "Lütfen DoÄŸrulayın..." -#: scene/gui/file_dialog.cpp -#, fuzzy -msgid "Go to parent folder." -msgstr "Üst klasöre git" - #: scene/gui/popup.cpp msgid "" "Popups will hide by default unless you call popup() or any of the popup*() " @@ -10625,6 +12158,77 @@ msgstr "" msgid "Varyings can only be assigned in vertex function." msgstr "" +#: servers/visual/shader_language.cpp +msgid "Constants cannot be modified." +msgstr "" + +#~ msgid "Path to Node:" +#~ msgstr "Düğüm Yolu:" + +#~ msgid "Delete selected files?" +#~ msgstr "Seçili dosyalar silinsin mi?" + +#~ msgid "There is no 'res://default_bus_layout.tres' file." +#~ msgstr "'res://default_bus_layout.tres' dosyası bulunamadı." + +#~ 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ç" + +#~ msgid "Previous Directory" +#~ msgstr "Önceki Dizin" + +#~ msgid "Next Directory" +#~ msgstr "Sıradaki Dizin" + +#~ msgid "Ease in" +#~ msgstr "Açılma" + +#~ msgid "Ease out" +#~ msgstr "Kararma" + +#~ msgid "Create Convex Static Body" +#~ msgstr "Dışbükey DuraÄŸan Gövde OluÅŸtur" + +#~ msgid "CheckBox Radio1" +#~ msgstr "OnayKutusu Radyo1" + +#~ msgid "CheckBox Radio2" +#~ msgstr "OnayKutusu Radyo2" + +#~ msgid "Create folder" +#~ msgstr "Klasör OluÅŸtur" + +#~ msgid "Already existing" +#~ msgstr "Zaten mevcut" + +#, fuzzy +#~ msgid "Custom Node" +#~ msgstr "Düğümleri Kes" + +#~ msgid "Invalid Path" +#~ msgstr "Geçersiz Yol" + +#~ msgid "GridMap Duplicate Selection" +#~ msgstr "IzgaraHaritası Seçimi ÇoÄŸalt" + +#~ msgid "Create Area" +#~ msgstr "Alan OluÅŸtur" + +#~ msgid "Create Exterior Connector" +#~ msgstr "Dış BaÄŸlayıcı OluÅŸtur" + +#~ msgid "Edit Signal Arguments:" +#~ msgstr "Sinyal DeÄŸiÅŸtirgenlerini Düzenle:" + +#~ msgid "Edit Variable:" +#~ msgstr "DeÄŸiÅŸkeni Düzenle:" + #, fuzzy #~ msgid "Snap (s): " #~ msgstr "Yapış (Noktalara):" @@ -10750,9 +12354,6 @@ msgstr "" #~ msgid "Class List:" #~ msgstr "Sınıf Listesi:" -#~ msgid "Search Classes" -#~ msgstr "Sınıfları Ara" - #~ msgid "Public Methods" #~ msgstr "Açık Metodlar" @@ -10833,9 +12434,6 @@ msgstr "" #~ msgid "Error:" #~ msgstr "Hata:" -#~ msgid "Source:" -#~ msgstr "Kaynak:" - #~ msgid "Function:" #~ msgstr "Fonksiyon:" @@ -10857,21 +12455,9 @@ msgstr "" #~ msgid "Get" #~ msgstr "Al" -#~ msgid "Change Scalar Constant" -#~ msgstr "Basamaklı Sabiti DeÄŸiÅŸtir" - -#~ msgid "Change Vec Constant" -#~ msgstr "Vec Sabitini DeÄŸiÅŸtir" - #~ msgid "Change RGB Constant" #~ msgstr "RGB Sabitini DeÄŸiÅŸtir" -#~ msgid "Change Scalar Operator" -#~ msgstr "Skaler Operatörünü DeÄŸiÅŸtir" - -#~ msgid "Change Vec Operator" -#~ msgstr "Vec İşletmenini DeÄŸiÅŸtir" - #~ msgid "Change Vec Scalar Operator" #~ msgstr "Vec Basamaklı İşletmeni DeÄŸiÅŸtir" @@ -10881,18 +12467,9 @@ msgstr "" #~ msgid "Toggle Rot Only" #~ msgstr "Yalnız Döndürmeye GeçiÅŸ Yap" -#~ msgid "Change Scalar Function" -#~ msgstr "Basamaklı İşlevi DeÄŸiÅŸtir" - #~ msgid "Change Vec Function" #~ msgstr "Vec İşlevini DeÄŸiÅŸtir" -#~ msgid "Change Scalar Uniform" -#~ msgstr "Basamaklı Tekdüzenini DeÄŸiÅŸtir" - -#~ msgid "Change Vec Uniform" -#~ msgstr "Vec Tekdüzenini DeÄŸiÅŸtir" - #~ msgid "Change RGB Uniform" #~ msgstr "RGB Tekdüzenini DeÄŸiÅŸtir" @@ -10902,9 +12479,6 @@ msgstr "" #~ msgid "Change XForm Uniform" #~ msgstr "XForm Tekdüzenini DeÄŸiÅŸtir" -#~ msgid "Change Texture Uniform" -#~ msgstr "Doku Tekdüzenini DeÄŸiÅŸtir" - #~ msgid "Change Cubemap Uniform" #~ msgstr "Küp EÅŸleÅŸme Tekdüzenini DeÄŸiÅŸtir" @@ -10923,9 +12497,6 @@ msgstr "" #~ msgid "Modify Curve Map" #~ msgstr "EÄŸri Haritasını DeÄŸiÅŸtir" -#~ msgid "Change Input Name" -#~ msgstr "GiriÅŸ Adını DeÄŸiÅŸtir" - #~ msgid "Connect Graph Nodes" #~ msgstr "Çizge Düğümlerini BaÄŸla" @@ -10953,9 +12524,6 @@ msgstr "" #~ msgid "Add Shader Graph Node" #~ msgstr "Gölgelendirici Çizge Düğümü Ekle" -#~ msgid "Disabled" -#~ msgstr "Devre dışı" - #~ msgid "Move Anim Track Up" #~ msgstr "Animasyon İzini Yukarı Taşı" @@ -11136,15 +12704,9 @@ msgstr "" #~ msgid "Item name or ID:" #~ msgstr "Öğe adı yada kimliÄŸi:" -#~ msgid "Autotiles" -#~ msgstr "Oto-döşemeler" - #~ msgid "Export templates for this platform are missing/corrupted: " #~ msgstr "Bu platform için dışa aktarma ÅŸablonları eksik/bozulmuÅŸ: " -#~ msgid "Button 7" -#~ msgstr "Düğme 7" - #~ msgid "Button 8" #~ msgstr "Düğme 8" @@ -12023,9 +13585,6 @@ msgstr "" #~ msgid "Project Export Settings" #~ msgstr "Tasarıyı Dışa Aktarma Ayarları" -#~ msgid "Target" -#~ msgstr "Amaç" - #~ msgid "Export to Platform" #~ msgstr "Ortama Aktar" @@ -12080,9 +13639,6 @@ msgstr "" #~ msgid "Shrink By:" #~ msgstr "Küçült:" -#~ msgid "Preview Atlas" -#~ msgstr "Atlası Önizle" - #~ msgid "Images:" #~ msgstr "Bedizler:" diff --git a/editor/translations/uk.po b/editor/translations/uk.po index 637c1ffac4..9c033bc4fc 100644 --- a/editor/translations/uk.po +++ b/editor/translations/uk.po @@ -15,7 +15,7 @@ msgid "" msgstr "" "Project-Id-Version: Ukrainian (Godot Engine)\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2019-03-30 20:04+0000\n" +"PO-Revision-Date: 2019-05-22 10:19+0000\n" "Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n" "Language-Team: Ukrainian <https://hosted.weblate.org/projects/godot-engine/" "godot/uk/>\n" @@ -25,7 +25,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" -"X-Generator: Weblate 3.6-dev\n" +"X-Generator: Weblate 3.7-dev\n" #: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp #: modules/visual_script/visual_script_builtin_funcs.cpp @@ -81,6 +81,15 @@ msgstr "ЗбаланÑована" msgid "Mirror" msgstr "Віддзеркалити" +#: editor/animation_bezier_editor.cpp editor/editor_profiler.cpp +msgid "Time:" +msgstr "ЧаÑ:" + +#: editor/animation_bezier_editor.cpp +#, fuzzy +msgid "Value:" +msgstr "ЗначеннÑ" + #: editor/animation_bezier_editor.cpp msgid "Insert Key Here" msgstr "Тут Ñлід вÑтавити ключ" @@ -163,14 +172,18 @@ msgid "Animation Playback Track" msgstr "Доріжка Ð²Ñ–Ð´Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð°Ð½Ñ–Ð¼Ð°Ñ†Ñ–Ñ—" #: editor/animation_track_editor.cpp -msgid "Add Track" -msgstr "Додати доріжку" +msgid "Animation length (frames)" +msgstr "ТриваліÑть анімації (у кадрах)" #: editor/animation_track_editor.cpp -msgid "Animation Length Time (seconds)" +msgid "Animation length (seconds)" msgstr "ТриваліÑть анімації (у Ñекундах)" #: editor/animation_track_editor.cpp +msgid "Add Track" +msgstr "Додати доріжку" + +#: editor/animation_track_editor.cpp msgid "Animation Looping" msgstr "ЦиклічніÑть анімації" @@ -294,11 +307,13 @@ msgid "Create %d NEW tracks and insert keys?" msgstr "Створити %d нові доріжки Ñ– вÑтавити ключі?" #: editor/animation_track_editor.cpp editor/create_dialog.cpp -#: editor/editor_audio_buses.cpp editor/editor_plugin_settings.cpp -#: editor/plugin_config_dialog.cpp +#: editor/editor_audio_buses.cpp editor/editor_feature_profile.cpp +#: editor/editor_plugin_settings.cpp editor/plugin_config_dialog.cpp #: editor/plugins/abstract_polygon_2d_editor.cpp #: editor/plugins/mesh_instance_editor_plugin.cpp -#: editor/plugins/particles_editor_plugin.cpp editor/script_create_dialog.cpp +#: editor/plugins/particles_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_create_dialog.cpp msgid "Create" msgstr "Створити" @@ -416,6 +431,23 @@ msgstr "" "одинарна доріжка." #: editor/animation_track_editor.cpp +msgid "" +"This animation belongs to an imported scene, so changes to imported tracks " +"will not be saved.\n" +"\n" +"To enable the ability to add custom tracks, navigate to the scene's import " +"settings and set\n" +"\"Animation > Storage\" to \"Files\", enable \"Animation > Keep Custom Tracks" +"\", then re-import.\n" +"Alternatively, use an import preset that imports animations to separate " +"files." +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Warning: Editing imported animation" +msgstr "" + +#: editor/animation_track_editor.cpp msgid "Only show tracks from nodes selected in tree." msgstr "Показувати доріжки лише Ð´Ð»Ñ Ð²ÑƒÐ·Ð»Ñ–Ð², Ñкі позначено у ієрархії." @@ -425,9 +457,8 @@ msgstr "" "Групувати доріжки за вузлами або показувати Ñ—Ñ… у форматі проÑтого ÑпиÑку." #: editor/animation_track_editor.cpp -#, fuzzy msgid "Snap:" -msgstr "ПрилипаннÑ" +msgstr "ПрилипаннÑ:" #: editor/animation_track_editor.cpp msgid "Animation step value." @@ -435,7 +466,7 @@ msgstr "Ð—Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ ÐºÑ€Ð¾ÐºÑƒ анімації." #: editor/animation_track_editor.cpp msgid "Seconds" -msgstr "" +msgstr "Секунди" #: editor/animation_track_editor.cpp msgid "FPS" @@ -550,7 +581,8 @@ msgstr "Ð¡Ð¿Ñ–Ð²Ð²Ñ–Ð´Ð½Ð¾ÑˆÐµÐ½Ð½Ñ Ð¼Ð°Ñштабу:" msgid "Select tracks to copy:" msgstr "Виберіть доріжки Ð´Ð»Ñ ÐºÐ¾Ð¿Ñ–ÑŽÐ²Ð°Ð½Ð½Ñ:" -#: editor/animation_track_editor.cpp editor/editor_properties.cpp +#: editor/animation_track_editor.cpp editor/editor_log.cpp +#: editor/editor_properties.cpp #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp @@ -618,6 +650,11 @@ msgstr "Замінити вÑÑ–" msgid "Selection Only" msgstr "Тільки виділити" +#: editor/code_editor.cpp editor/plugins/script_text_editor.cpp +#: editor/plugins/text_editor.cpp +msgid "Standard" +msgstr "Стандартний" + #: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/texture_region_editor_plugin.cpp #: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp @@ -643,21 +680,39 @@ msgid "Line and column numbers." msgstr "Ðомери Ñ€Ñдків Ñ– позицій." #: editor/connections_dialog.cpp -msgid "Method in target Node must be specified!" +#, fuzzy +msgid "Method in target node must be specified." msgstr "Метод у цільовому вузлі повинен бути вказаний!" #: editor/connections_dialog.cpp +#, fuzzy msgid "" -"Target method not found! Specify a valid method or attach a script to target " -"Node." +"Target method not found. Specify a valid method or attach a script to the " +"target node." msgstr "" "Цільовий метод не знайдено! Вкажіть дійÑний метод або приєднайте Ñкрипт до " "цільового вузла." #: editor/connections_dialog.cpp -msgid "Connect To Node:" +#, fuzzy +msgid "Connect to Node:" msgstr "ПідключитиÑÑ Ð´Ð¾ вузла:" +#: editor/connections_dialog.cpp +#, fuzzy +msgid "Connect to Script:" +msgstr "Ðе вдалоÑÑ Ð¿Ñ–Ð´ÐºÐ»ÑŽÑ‡Ð¸Ñ‚Ð¸ÑÑ Ð´Ð¾ хоÑту:" + +#: editor/connections_dialog.cpp +#, fuzzy +msgid "From Signal:" +msgstr "Сигнали:" + +#: editor/connections_dialog.cpp +#, fuzzy +msgid "Scene does not contain any script." +msgstr "Вузол не міÑтить геометрії." + #: editor/connections_dialog.cpp editor/editor_autoload_settings.cpp #: editor/groups_editor.cpp editor/plugins/item_list_editor_plugin.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_settings_editor.cpp @@ -665,10 +720,12 @@ msgid "Add" msgstr "Додати" #: editor/connections_dialog.cpp editor/dependency_editor.cpp -#: editor/groups_editor.cpp editor/plugins/animation_player_editor_plugin.cpp +#: editor/editor_feature_profile.cpp editor/groups_editor.cpp +#: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp #: editor/plugins/resource_preloader_editor_plugin.cpp -#: editor/plugins/theme_editor_plugin.cpp editor/project_manager.cpp +#: editor/plugins/theme_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_manager.cpp #: editor/project_settings_editor.cpp msgid "Remove" msgstr "Вилучити" @@ -682,21 +739,32 @@ msgid "Extra Call Arguments:" msgstr "Додаткові аргументи виклику:" #: editor/connections_dialog.cpp -msgid "Path to Node:" -msgstr "ШлÑÑ… до вузла:" - -#: editor/connections_dialog.cpp -msgid "Make Function" -msgstr "Створити функцію" +#, fuzzy +msgid "Advanced" +msgstr "Додаткові параметри" #: editor/connections_dialog.cpp msgid "Deferred" msgstr "Відкладені" #: editor/connections_dialog.cpp +msgid "" +"Defers the signal, storing it in a queue and only firing it at idle time." +msgstr "" + +#: editor/connections_dialog.cpp msgid "Oneshot" msgstr "Один раз" +#: editor/connections_dialog.cpp +msgid "Disconnects the signal after its first emission." +msgstr "" + +#: editor/connections_dialog.cpp +#, fuzzy +msgid "Cannot connect signal" +msgstr "З'єднати Ñигнал: " + #: editor/connections_dialog.cpp editor/dependency_editor.cpp #: editor/export_template_manager.cpp editor/groups_editor.cpp #: editor/plugins/animation_player_editor_plugin.cpp @@ -737,11 +805,13 @@ msgid "Disconnect" msgstr "Роз'єднати" #: editor/connections_dialog.cpp -msgid "Connect Signal: " +#, fuzzy +msgid "Connect a Signal to a Method" msgstr "З'єднати Ñигнал: " #: editor/connections_dialog.cpp -msgid "Edit Connection: " +#, fuzzy +msgid "Edit Connection:" msgstr "Редагувати з’єднаннÑ: " #: editor/connections_dialog.cpp @@ -773,7 +843,6 @@ msgid "Change %s Type" msgstr "Змінити тип %s" #: editor/create_dialog.cpp editor/project_settings_editor.cpp -#: modules/visual_script/visual_script_editor.cpp msgid "Change" msgstr "Змінити" @@ -804,7 +873,8 @@ msgid "Matches:" msgstr "Збіги:" #: editor/create_dialog.cpp editor/plugin_config_dialog.cpp -#: editor/plugins/asset_library_editor_plugin.cpp editor/property_selector.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/property_selector.cpp #: modules/visual_script/visual_script_property_selector.cpp msgid "Description:" msgstr "ОпиÑ:" @@ -818,17 +888,19 @@ msgid "Dependencies For:" msgstr "ЗалежноÑті длÑ:" #: editor/dependency_editor.cpp +#, fuzzy msgid "" "Scene '%s' is currently being edited.\n" -"Changes will not take effect unless reloaded." +"Changes will only take effect when reloaded." msgstr "" "Сцена \"%s\" зараз редагуєтьÑÑ.\n" "Зміни не наберуть Ñили, Ñкщо не перезавантажитиÑÑ." #: editor/dependency_editor.cpp +#, fuzzy msgid "" "Resource '%s' is in use.\n" -"Changes will take effect when reloaded." +"Changes will only take effect when reloaded." msgstr "" "РеÑÑƒÑ€Ñ \"%S \" викориÑтовуєтьÑÑ.\n" "Зміни набудуть чинноÑті піÑÐ»Ñ Ð¿ÐµÑ€ÐµÐ·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ." @@ -924,21 +996,14 @@ msgid "Permanently delete %d item(s)? (No undo!)" msgstr "ОÑтаточно вилучити %d об'єкт(и)? (Ðеможливо ÑкаÑувати)" #: editor/dependency_editor.cpp -msgid "Owns" -msgstr "КількіÑть" - -#: editor/dependency_editor.cpp -msgid "Resources Without Explicit Ownership:" -msgstr "РеÑурÑи без Ñвної влаÑноÑті:" +#, fuzzy +msgid "Show Dependencies" +msgstr "ЗалежноÑті" #: editor/dependency_editor.cpp editor/editor_node.cpp msgid "Orphan Resource Explorer" msgstr "ОглÑд підключених реÑурÑів" -#: editor/dependency_editor.cpp -msgid "Delete selected files?" -msgstr "Видалити вибрані файли?" - #: editor/dependency_editor.cpp editor/editor_audio_buses.cpp #: editor/editor_file_dialog.cpp editor/editor_node.cpp #: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp @@ -947,6 +1012,14 @@ msgstr "Видалити вибрані файли?" msgid "Delete" msgstr "Вилучити" +#: editor/dependency_editor.cpp +msgid "Owns" +msgstr "КількіÑть" + +#: editor/dependency_editor.cpp +msgid "Resources Without Explicit Ownership:" +msgstr "РеÑурÑи без Ñвної влаÑноÑті:" + #: editor/dictionary_property_edit.cpp msgid "Change Dictionary Key" msgstr "Змінити ключ Ñловника" @@ -1060,7 +1133,7 @@ msgstr "Пакунок уÑпішно вÑтановлено!" msgid "Success!" msgstr "УÑпіх!" -#: editor/editor_asset_installer.cpp +#: editor/editor_asset_installer.cpp editor/editor_node.cpp #: editor/plugins/asset_library_editor_plugin.cpp msgid "Install" msgstr "Ð’Ñтановити" @@ -1187,8 +1260,12 @@ msgid "Open Audio Bus Layout" msgstr "Відкрити ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ Ð°ÑƒÐ´Ñ–Ð¾ шини" #: editor/editor_audio_buses.cpp -msgid "There is no 'res://default_bus_layout.tres' file." -msgstr "Файл 'res: //default_bus_layout.tres' не знайдено." +msgid "There is no '%s' file." +msgstr "" + +#: editor/editor_audio_buses.cpp editor/plugins/canvas_item_editor_plugin.cpp +msgid "Layout" +msgstr "Макет" #: editor/editor_audio_buses.cpp msgid "Invalid file, not an audio bus layout." @@ -1241,22 +1318,29 @@ msgid "Valid characters:" msgstr "ПрипуÑтимі Ñимволи:" #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing engine class name." +#, fuzzy +msgid "Must not collide with an existing engine class name." msgstr "" "ÐеприпуÑтима назва. Ðе повинно конфліктувати з Ñ–Ñнуючим ім'Ñм клаÑу рушіÑ." #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing buit-in type name." +#, fuzzy +msgid "Must not collide with an existing buit-in type name." msgstr "" "ÐеприпуÑтима назва. Ðе повинно ÑтикатиÑÑ Ð· Ñ–Ñнуючим вбудованим ім'Ñм типу." #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing global constant name." +#, fuzzy +msgid "Must not collide with an existing global constant name." msgstr "" "ÐеприпуÑтиме ім'Ñ. Ðе повинно збігатиÑÑŒ з іменем Ñ–Ñнуючої глобальної " "конÑтанти." #: editor/editor_autoload_settings.cpp +msgid "Keyword cannot be used as an autoload name." +msgstr "" + +#: editor/editor_autoload_settings.cpp msgid "Autoload '%s' already exists!" msgstr "ÐÐ²Ñ‚Ð¾Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ '%s' вже Ñ–Ñнує!" @@ -1284,11 +1368,12 @@ msgstr "Ðктивувати" msgid "Rearrange Autoloads" msgstr "Змінити порÑдок автозавантажень" -#: editor/editor_autoload_settings.cpp -msgid "Invalid Path." +#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp +#, fuzzy +msgid "Invalid path." msgstr "Ðеправильний шлÑÑ…." -#: editor/editor_autoload_settings.cpp +#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp msgid "File does not exist." msgstr "Файл не Ñ–Ñнує." @@ -1339,7 +1424,8 @@ msgid "[unsaved]" msgstr "[не збережено]" #: editor/editor_dir_dialog.cpp -msgid "Please select a base directory first" +#, fuzzy +msgid "Please select a base directory first." msgstr "Будь лаÑка, виберіть Ñпочатку базовий каталог" #: editor/editor_dir_dialog.cpp @@ -1347,7 +1433,8 @@ msgid "Choose a Directory" msgstr "Виберіть каталог" #: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp -#: editor/filesystem_dock.cpp scene/gui/file_dialog.cpp +#: editor/filesystem_dock.cpp editor/project_manager.cpp +#: scene/gui/file_dialog.cpp msgid "Create Folder" msgstr "Створити Теку" @@ -1422,6 +1509,178 @@ msgstr "Ðетипового шаблону випуÑку не знайдено msgid "Template file not found:" msgstr "Файл шаблону не знайдено:" +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "3D Editor" +msgstr "Редактор" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Script Editor" +msgstr "Відкрити редактор Ñкриптів" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Asset Library" +msgstr "Відкрити бібліотеку активів" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Scene Tree Editing" +msgstr "Дерево Ñцени (вузли):" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Import Dock" +msgstr "Імпортувати" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Node Dock" +msgstr "ПереÑунуто вузол" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Filesystem Dock" +msgstr "Файлова ÑиÑтема" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Erase profile '%s'? (no undo)" +msgstr "Замінити вÑе (без ÑкаÑовуваннÑ)" + +#: editor/editor_feature_profile.cpp +msgid "Profile must be a valid filename and must not contain '.'" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Profile with this name already exists." +msgstr "Файл або тека з таким іменем вже Ñ–Ñнує." + +#: editor/editor_feature_profile.cpp +msgid "(Editor Disabled, Properties Disabled)" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "(Properties Disabled)" +msgstr "Лише влаÑтивоÑті" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "(Editor Disabled)" +msgstr "ÐžÐ±Ñ€Ñ–Ð·Ð°Ð½Ð½Ñ Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð¾" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Class Options:" +msgstr "ÐžÐ¿Ð¸Ñ ÐºÐ»Ð°Ñу:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enable Contextual Editor" +msgstr "Відкрити наÑтупний редактор" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enabled Properties:" +msgstr "ВлаÑтивоÑті:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enabled Features:" +msgstr "МожливоÑті" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enabled Classes:" +msgstr "Пошук клаÑів" + +#: editor/editor_feature_profile.cpp +msgid "File '%s' format is invalid, import aborted." +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "" +"Profile '%s' already exists. Remote it first before importing, import " +"aborted." +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Error saving profile to path: '%s'." +msgstr "Помилка під Ñ‡Ð°Ñ Ñпроби завантажити шаблон «%s»" + +#: editor/editor_feature_profile.cpp +msgid "Unset" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Current Profile" +msgstr "Поточна верÑÑ–Ñ:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Make Current" +msgstr "Поточний:" + +#: editor/editor_feature_profile.cpp +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "New" +msgstr "Ðовий" + +#: editor/editor_feature_profile.cpp editor/editor_node.cpp +#: editor/plugins/asset_library_editor_plugin.cpp editor/project_manager.cpp +msgid "Import" +msgstr "Імпортувати" + +#: editor/editor_feature_profile.cpp editor/editor_node.cpp +#: editor/project_export.cpp +msgid "Export" +msgstr "ЕкÑпортуваннÑ" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Available Profiles" +msgstr "ДоÑтупні вузли:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enabled Classes" +msgstr "Пошук клаÑів" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Class Options" +msgstr "ÐžÐ¿Ð¸Ñ ÐºÐ»Ð°Ñу" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "New profile name:" +msgstr "Ðова назва:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Erase Profile" +msgstr "Витерти облаÑть" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Import Profile(s)" +msgstr "Імпортований проект" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Export Profile" +msgstr "ЕкÑпортувати проект" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Manage Editor Feature Profiles" +msgstr "Ð£Ð¿Ñ€Ð°Ð²Ð»Ñ–Ð½Ð½Ñ ÑˆÐ°Ð±Ð»Ð¾Ð½Ð°Ð¼Ð¸ екÑпорту" + #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Select Current Folder" msgstr "Вибрати поточну теку" @@ -1442,8 +1701,8 @@ msgstr "Копіювати шлÑÑ…" msgid "Open in File Manager" msgstr "Відкрити у менеджері файлів" -#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp -#: editor/project_manager.cpp +#: editor/editor_file_dialog.cpp editor/editor_node.cpp +#: editor/filesystem_dock.cpp editor/project_manager.cpp msgid "Show in File Manager" msgstr "Показати у менеджері файлів" @@ -1502,7 +1761,7 @@ msgstr "Йти вперед" msgid "Go Up" msgstr "Вгору" -#: editor/editor_file_dialog.cpp +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Toggle Hidden Files" msgstr "Переключати приховані файли" @@ -1534,14 +1793,19 @@ msgstr "ÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð½Ñ Ñ‚ÐµÐºÐ°" msgid "Next Folder" msgstr "ÐаÑтупна тека" -#: editor/editor_file_dialog.cpp -msgid "Go to parent folder" -msgstr "Перейти до батьківÑької теки" +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp +msgid "Go to parent folder." +msgstr "Перейти до батьківÑької теки." #: editor/editor_file_dialog.cpp msgid "(Un)favorite current folder." msgstr "Перемкнути Ñтан вибраноÑті Ð´Ð»Ñ Ð¿Ð¾Ñ‚Ð¾Ñ‡Ð½Ð¾Ñ— теки." +#: editor/editor_file_dialog.cpp +#, fuzzy +msgid "Toggle visibility of hidden files." +msgstr "Переключати приховані файли" + #: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp msgid "View items as a grid of thumbnails." msgstr "ПереглÑд елементів у виглÑді Ñітки еÑкізів." @@ -1556,6 +1820,7 @@ msgstr "Каталоги та файли:" #: editor/editor_file_dialog.cpp editor/plugins/sprite_editor_plugin.cpp #: editor/plugins/style_box_editor_plugin.cpp +#: editor/plugins/theme_editor_plugin.cpp msgid "Preview:" msgstr "Попередній переглÑд:" @@ -1572,6 +1837,12 @@ msgid "ScanSources" msgstr "Сканувати Ñирці" #: editor/editor_file_system.cpp +msgid "" +"There are multiple importers for different types pointing to file %s, import " +"aborted" +msgstr "" + +#: editor/editor_file_system.cpp msgid "(Re)Importing Assets" msgstr "Ð†Ð¼Ð¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð°ÐºÑ‚Ð¸Ð²Ñ–Ð²" @@ -1754,6 +2025,10 @@ msgstr "Ð’Ñтановити кратніÑть:" msgid "Output:" msgstr "Вивід:" +#: editor/editor_log.cpp editor/plugins/tile_map_editor_plugin.cpp +msgid "Copy Selection" +msgstr "Копіювати позначене" + #: editor/editor_log.cpp editor/editor_profiler.cpp #: editor/editor_properties.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp @@ -1909,9 +2184,10 @@ msgstr "" "краще зрозуміти цей робочий процеÑ." #: editor/editor_node.cpp +#, fuzzy msgid "" "This resource belongs to a scene that was instanced or inherited.\n" -"Changes to it will not be kept when saving the current scene." +"Changes to it won't be kept when saving the current scene." msgstr "" "Цей реÑÑƒÑ€Ñ Ð½Ð°Ð»ÐµÐ¶Ð¸Ñ‚ÑŒ до Ñцени, Ñка була інÑтаÑована або уÑпадкована.\n" "Зміни до неї не будуть зберігатиÑÑ Ð¿Ñ€Ð¸ збереженні поточної Ñцени." @@ -1925,8 +2201,9 @@ msgstr "" "Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð½Ð° панелі імпорту, а потім знову імпортуйте." #: editor/editor_node.cpp +#, fuzzy msgid "" -"This scene was imported, so changes to it will not be kept.\n" +"This scene was imported, so changes to it won't be kept.\n" "Instancing it or inheriting will allow making changes to it.\n" "Please read the documentation relevant to importing scenes to better " "understand this workflow." @@ -1937,8 +2214,9 @@ msgstr "" "зрозуміти цей робочий процеÑ." #: editor/editor_node.cpp +#, fuzzy msgid "" -"This is a remote object so changes to it will not be kept.\n" +"This is a remote object, so changes to it won't be kept.\n" "Please read the documentation relevant to debugging to better understand " "this workflow." msgstr "" @@ -1951,36 +2229,6 @@ msgid "There is no defined scene to run." msgstr "Ðемає визначеної Ñцени Ð´Ð»Ñ Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ." #: editor/editor_node.cpp -msgid "" -"No main scene has ever been defined, select one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" -"ÐÑ–Ñка головна Ñцена ніколи не була визначена, вибрати Ñ—Ñ—?\n" -"Ви можете змінити це пізніше в \"ÐалаштуваннÑÑ… проекту\" в категорії " -"\"Програма\"." - -#: editor/editor_node.cpp -msgid "" -"Selected scene '%s' does not exist, select a valid one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" -"Вибрана Ñцена '%s' не Ñ–Ñнує, вибрати дійÑну?\n" -"Ви можете змінити це пізніше в \"ÐалаштуваннÑÑ… проекту\" в категорії " -"\"Програма\"." - -#: editor/editor_node.cpp -msgid "" -"Selected scene '%s' is not a scene file, select a valid one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" -"Вибрана Ñцена '%s' не Ñ” файлом Ñцени, вибрати дійÑний файл?\n" -"Ви можете змінити це пізніше в \"ÐалаштуваннÑÑ… проекту\" в категорії " -"\"Програма\"." - -#: editor/editor_node.cpp msgid "Current scene was never saved, please save it prior to running." msgstr "" "Поточна Ñцена ніколи не була збережена, будь лаÑка, збережіть Ñ—Ñ— до запуÑку." @@ -1989,7 +2237,7 @@ msgstr "" msgid "Could not start subprocess!" msgstr "Ðе вдалоÑÑ Ð·Ð°Ð¿ÑƒÑтити підпроцеÑ!" -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/filesystem_dock.cpp msgid "Open Scene" msgstr "Відкрити Ñцену" @@ -1998,6 +2246,11 @@ msgid "Open Base Scene" msgstr "Відкрити оÑновну Ñцену" #: editor/editor_node.cpp +#, fuzzy +msgid "Quick Open..." +msgstr "Швидке Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ñ‚Ñ Ñцени..." + +#: editor/editor_node.cpp msgid "Quick Open Scene..." msgstr "Швидке Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ñ‚Ñ Ñцени..." @@ -2176,6 +2429,36 @@ msgid "Clear Recent Scenes" msgstr "ОчиÑтити недавні Ñцени" #: editor/editor_node.cpp +msgid "" +"No main scene has ever been defined, select one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" +"ÐÑ–Ñка головна Ñцена ніколи не була визначена, вибрати Ñ—Ñ—?\n" +"Ви можете змінити це пізніше в \"ÐалаштуваннÑÑ… проекту\" в категорії " +"\"Програма\"." + +#: editor/editor_node.cpp +msgid "" +"Selected scene '%s' does not exist, select a valid one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" +"Вибрана Ñцена '%s' не Ñ–Ñнує, вибрати дійÑну?\n" +"Ви можете змінити це пізніше в \"ÐалаштуваннÑÑ… проекту\" в категорії " +"\"Програма\"." + +#: editor/editor_node.cpp +msgid "" +"Selected scene '%s' is not a scene file, select a valid one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" +"Вибрана Ñцена '%s' не Ñ” файлом Ñцени, вибрати дійÑний файл?\n" +"Ви можете змінити це пізніше в \"ÐалаштуваннÑÑ… проекту\" в категорії " +"\"Програма\"." + +#: editor/editor_node.cpp msgid "Save Layout" msgstr "Зберегти компонуваннÑ" @@ -2201,6 +2484,19 @@ msgstr "Відтворити цю Ñцену" msgid "Close Tab" msgstr "Закрити вкладку" +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +msgid "Close Other Tabs" +msgstr "Закрити інші вкладки" + +#: editor/editor_node.cpp +msgid "Close Tabs to the Right" +msgstr "" + +#: editor/editor_node.cpp +#, fuzzy +msgid "Close All Tabs" +msgstr "Закрити вÑе" + #: editor/editor_node.cpp msgid "Switch Scene Tab" msgstr "ÐŸÐµÑ€ÐµÐ¼Ð¸ÐºÐ°Ð½Ð½Ñ Ð²ÐºÐ»Ð°Ð´ÐºÐ¸ \"Сцена\"" @@ -2323,10 +2619,6 @@ msgstr "Проект" msgid "Project Settings" msgstr "Параметри проекту" -#: editor/editor_node.cpp editor/project_export.cpp -msgid "Export" -msgstr "ЕкÑпортуваннÑ" - #: editor/editor_node.cpp editor/plugins/tile_set_editor_plugin.cpp msgid "Tools" msgstr "ІнÑтрументи" @@ -2336,6 +2628,10 @@ msgid "Open Project Data Folder" msgstr "Ð’Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ñ‚Ñ Ñ‚ÐµÐºÐ¸ даних проекту" #: editor/editor_node.cpp +msgid "Install Android Build Template" +msgstr "" + +#: editor/editor_node.cpp msgid "Quit to Project List" msgstr "Вийти в ÑпиÑок проектів" @@ -2459,6 +2755,11 @@ msgstr "Ð’Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ñ‚Ñ Ñ‚ÐµÐºÐ¸ даних редактора" msgid "Open Editor Settings Folder" msgstr "Відкрити теку параметрів редактора" +#: editor/editor_node.cpp +#, fuzzy +msgid "Manage Editor Features" +msgstr "Ð£Ð¿Ñ€Ð°Ð²Ð»Ñ–Ð½Ð½Ñ ÑˆÐ°Ð±Ð»Ð¾Ð½Ð°Ð¼Ð¸ екÑпорту" + #: editor/editor_node.cpp editor/project_export.cpp msgid "Manage Export Templates" msgstr "Ð£Ð¿Ñ€Ð°Ð²Ð»Ñ–Ð½Ð½Ñ ÑˆÐ°Ð±Ð»Ð¾Ð½Ð°Ð¼Ð¸ екÑпорту" @@ -2471,6 +2772,7 @@ msgstr "Довідка" #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp #: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp #: editor/project_settings_editor.cpp editor/rename_dialog.cpp msgid "Search" msgstr "Пошук" @@ -2560,11 +2862,6 @@ msgstr "Оновлювати зміни" msgid "Disable Update Spinner" msgstr "Вимкнути Ð¾Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð»Ñ–Ñ‡Ð¸Ð»ÑŒÐ½Ð¸ÐºÐ°" -#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp -#: editor/project_manager.cpp -msgid "Import" -msgstr "Імпортувати" - #: editor/editor_node.cpp msgid "FileSystem" msgstr "Файлова ÑиÑтема" @@ -2590,6 +2887,28 @@ msgid "Don't Save" msgstr "Ðе зберігати" #: editor/editor_node.cpp +msgid "Android build template is missing, please install relevant templates." +msgstr "" + +#: editor/editor_node.cpp +#, fuzzy +msgid "Manage Templates" +msgstr "Ð£Ð¿Ñ€Ð°Ð²Ð»Ñ–Ð½Ð½Ñ ÑˆÐ°Ð±Ð»Ð¾Ð½Ð°Ð¼Ð¸ екÑпорту" + +#: editor/editor_node.cpp +msgid "" +"This will install the Android project for custom builds.\n" +"Note that, in order to use it, it needs to be enabled per export preset." +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"Android build template is already installed and it won't be overwritten.\n" +"Remove the \"build\" directory manually before attempting this operation " +"again." +msgstr "" + +#: editor/editor_node.cpp msgid "Import Templates From ZIP File" msgstr "Імпортувати шаблони з ZIP-файлу" @@ -2712,10 +3031,6 @@ msgid "Physics Frame %" msgstr "Фізичний кадр %" #: editor/editor_profiler.cpp -msgid "Time:" -msgstr "ЧаÑ:" - -#: editor/editor_profiler.cpp msgid "Inclusive" msgstr "Включно" @@ -2859,10 +3174,6 @@ msgid "Remove Item" msgstr "Вилучити елемент" #: editor/editor_run_native.cpp -msgid "Select device from the list" -msgstr "Вибрати приÑтрій зі ÑпиÑку" - -#: editor/editor_run_native.cpp msgid "" "No runnable export preset found for this platform.\n" "Please add a runnable preset in the export menu." @@ -2898,6 +3209,10 @@ msgstr "Ви забули метод '_run'?" msgid "Select Node(s) to Import" msgstr "Виберіть вузол(вузли) Ð´Ð»Ñ Ñ–Ð¼Ð¿Ð¾Ñ€Ñ‚Ñƒ" +#: editor/editor_sub_scene.cpp editor/project_manager.cpp +msgid "Browse" +msgstr "Вибрати" + #: editor/editor_sub_scene.cpp msgid "Scene Path:" msgstr "ШлÑÑ… до Ñцени:" @@ -3064,6 +3379,11 @@ msgid "SSL Handshake Error" msgstr "Помилка SSL РукоÑтиÑканнÑ" #: editor/export_template_manager.cpp +#, fuzzy +msgid "Uncompressing Android Build Sources" +msgstr "Ð Ð¾Ð·Ð¿Ð°ÐºÐ¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ð°ÐºÑ‚Ð¸Ð²Ñ–Ð²" + +#: editor/export_template_manager.cpp msgid "Current Version:" msgstr "Поточна верÑÑ–Ñ:" @@ -3080,7 +3400,8 @@ msgid "Remove Template" msgstr "Вилучити шаблон" #: editor/export_template_manager.cpp -msgid "Select template file" +#, fuzzy +msgid "Select Template File" msgstr "Вибрати файл шаблону" #: editor/export_template_manager.cpp @@ -3141,7 +3462,8 @@ msgid "No name provided." msgstr "Ім'Ñ Ð½Ðµ вказано." #: editor/filesystem_dock.cpp -msgid "Provided name contains invalid characters" +#, fuzzy +msgid "Provided name contains invalid characters." msgstr "Ðадане ім'Ñ Ð¼Ñ–Ñтить некоректні Ñимволи" #: editor/filesystem_dock.cpp @@ -3169,19 +3491,27 @@ msgid "Duplicating folder:" msgstr "Ð”ÑƒÐ±Ð»ÑŽÐ²Ð°Ð½Ð½Ñ Ñ‚ÐµÐºÐ¸:" #: editor/filesystem_dock.cpp -msgid "Open Scene(s)" -msgstr "Відкрити Ñцену(и)" +#, fuzzy +msgid "New Inherited Scene" +msgstr "Ðова уÑпадкована Ñцена..." + +#: editor/filesystem_dock.cpp +#, fuzzy +msgid "Open Scenes" +msgstr "Відкрити Ñцену" #: editor/filesystem_dock.cpp msgid "Instance" msgstr "ЕкземплÑÑ€" #: editor/filesystem_dock.cpp -msgid "Add to favorites" +#, fuzzy +msgid "Add to Favorites" msgstr "Додати до вибраного" #: editor/filesystem_dock.cpp -msgid "Remove from favorites" +#, fuzzy +msgid "Remove from Favorites" msgstr "Вилучити з вибраного" #: editor/filesystem_dock.cpp @@ -3212,11 +3542,13 @@ msgstr "Створити Ñкрипт…" msgid "New Resource..." msgstr "Створити реÑурÑ…" -#: editor/filesystem_dock.cpp editor/script_editor_debugger.cpp +#: editor/filesystem_dock.cpp editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_editor_debugger.cpp msgid "Expand All" msgstr "Розгорнути вÑе" -#: editor/filesystem_dock.cpp editor/script_editor_debugger.cpp +#: editor/filesystem_dock.cpp editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_editor_debugger.cpp msgid "Collapse All" msgstr "Згорнути вÑе" @@ -3228,19 +3560,22 @@ msgid "Rename" msgstr "Перейменувати" #: editor/filesystem_dock.cpp -msgid "Previous Directory" -msgstr "Попередній каталог" +#, fuzzy +msgid "Previous Folder/File" +msgstr "ÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð½Ñ Ñ‚ÐµÐºÐ°" #: editor/filesystem_dock.cpp -msgid "Next Directory" -msgstr "ÐаÑтупний каталог" +#, fuzzy +msgid "Next Folder/File" +msgstr "ÐаÑтупна тека" #: editor/filesystem_dock.cpp msgid "Re-Scan Filesystem" msgstr "ПереÑÐºÐ°Ð½ÑƒÐ²Ð°Ð½Ð½Ñ Ñ„Ð°Ð¹Ð»Ð¾Ð²Ð¾Ñ— ÑиÑтеми" #: editor/filesystem_dock.cpp -msgid "Toggle split mode" +#, fuzzy +msgid "Toggle Split Mode" msgstr "Перемкнути режим поділу" #: editor/filesystem_dock.cpp @@ -3271,7 +3606,7 @@ msgstr "ПерезапиÑати" msgid "Create Script" msgstr "Створити Ñкрипт" -#: editor/find_in_files.cpp +#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp msgid "Find in Files" msgstr "Знайти у файлах" @@ -3287,6 +3622,12 @@ msgstr "Тека:" msgid "Filters:" msgstr "Фільтри:" +#: editor/find_in_files.cpp +msgid "" +"Include the files with the following extensions. Add or remove them in " +"ProjectSettings." +msgstr "" + #: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp msgid "Find..." @@ -3727,7 +4068,8 @@ msgid "Open Animation Node" msgstr "Відкрити вузол анімації" #: editor/plugins/animation_blend_space_2d_editor.cpp -msgid "Triangle already exists" +#, fuzzy +msgid "Triangle already exists." msgstr "Трикутник вже Ñ–Ñнує" #: editor/plugins/animation_blend_space_2d_editor.cpp @@ -3802,7 +4144,6 @@ msgid "Node Moved" msgstr "ПереÑунуто вузол" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Unable to connect, port may be in use or connection may be invalid." msgstr "" "Ðе вдалоÑÑ Ð·'єднати. Можливо, порт вже викориÑтано або з'Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ñ” " @@ -3876,7 +4217,8 @@ msgid "Edit Filtered Tracks:" msgstr "Редагувати фільтровані доріжки:" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -msgid "Enable filtering" +#, fuzzy +msgid "Enable Filtering" msgstr "Увімкнути фільтруваннÑ" #: editor/plugins/animation_player_editor_plugin.cpp @@ -3992,10 +4334,6 @@ msgid "Animation" msgstr "ÐнімаціÑ" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "New" -msgstr "Ðовий" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Edit Transitions..." msgstr "Редагувати переходи…" @@ -4012,14 +4350,15 @@ msgid "Autoplay on Load" msgstr "ÐÐ²Ñ‚Ð¾Ð²Ñ–Ð´Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¸ завантаженні" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Onion Skinning" -msgstr "КалькуваннÑ" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Enable Onion Skinning" msgstr "Увімкнути калькуваннÑ" #: editor/plugins/animation_player_editor_plugin.cpp +#, fuzzy +msgid "Onion Skinning Options" +msgstr "КалькуваннÑ" + +#: editor/plugins/animation_player_editor_plugin.cpp msgid "Directions" msgstr "ÐапрÑмки" @@ -4568,10 +4907,6 @@ msgid "Move CanvasItem" msgstr "ПереÑунути CanvasItem" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Presets for the anchors and margins values of a Control node." -msgstr "Шаблони Ð´Ð»Ñ Ð¿Ñ€Ð¸Ð²'Ñзок та Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¿Ð¾Ð»Ñ–Ð² вузла керуваннÑ." - -#: editor/plugins/canvas_item_editor_plugin.cpp msgid "" "Children of containers have their anchors and margins values overridden by " "their parent." @@ -4580,6 +4915,16 @@ msgstr "" "їхніми батьківÑькими об'єктами." #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Presets for the anchors and margins values of a Control node." +msgstr "Шаблони Ð´Ð»Ñ Ð¿Ñ€Ð¸Ð²'Ñзок та Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¿Ð¾Ð»Ñ–Ð² вузла керуваннÑ." + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"When active, moving Control nodes changes their anchors instead of their " +"margins." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Anchors only" msgstr "Тільки прив'Ñзки" @@ -4592,10 +4937,52 @@ msgid "Change Anchors" msgstr "Змінити прив'Ñзки" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Lock Selected" +msgstr "ІнÑтрумент позначеннÑ" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Unlock Selected" +msgstr "Вилучити вибране" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Group Selected" +msgstr "Копіювати позначене" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Ungroup Selected" +msgstr "Копіювати позначене" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Paste Pose" msgstr "Ð’Ñтавити позу" #: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Create Custom Bone(s) from Node(s)" +msgstr "Створити нетипові кіÑтки з вузлів" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Clear Bones" +msgstr "ОчиÑтити позу" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Make IK Chain" +msgstr "Зробити IK-ланцюг" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Clear IK Chain" +msgstr "ОчиÑтити ІК-ланцюг" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "" "Warning: Children of a container get their position and size determined only " "by their parent." @@ -4673,7 +5060,8 @@ msgid "Snapping Options" msgstr "Параметри прив'Ñзки" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to grid" +#, fuzzy +msgid "Snap to Grid" msgstr "Прив'Ñзати до Ñітки" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4694,31 +5082,38 @@ msgid "Use Pixel Snap" msgstr "ВикориÑтати Ð¿Ñ€Ð¸Ð»Ð¸Ð¿Ð°Ð½Ð½Ñ Ð´Ð¾ пікÑелів" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Smart snapping" +#, fuzzy +msgid "Smart Snapping" msgstr "Інтелектуальне прилипаннÑ" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to parent" +#, fuzzy +msgid "Snap to Parent" msgstr "ÐŸÑ€Ð¸Ð»Ð¸Ð¿Ð°Ð½Ð½Ñ Ð´Ð¾ предка" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node anchor" +#, fuzzy +msgid "Snap to Node Anchor" msgstr "ÐŸÑ€Ð¸Ð»Ð¸Ð¿Ð°Ð½Ð½Ñ Ð´Ð¾ прив'Ñзки вузла" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node sides" +#, fuzzy +msgid "Snap to Node Sides" msgstr "ÐŸÑ€Ð¸Ð»Ð¸Ð¿Ð°Ð½Ð½Ñ Ð´Ð¾ боків вузла" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node center" +#, fuzzy +msgid "Snap to Node Center" msgstr "ÐŸÑ€Ð¸Ð»Ð¸Ð¿Ð°Ð½Ð½Ñ Ð´Ð¾ центру вузла" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to other nodes" +#, fuzzy +msgid "Snap to Other Nodes" msgstr "ÐŸÑ€Ð¸Ð»Ð¸Ð¿Ð°Ð½Ð½Ñ Ð´Ð¾ інших вузлів" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to guides" +#, fuzzy +msgid "Snap to Guides" msgstr "ÐŸÑ€Ð¸Ð»Ð¸Ð¿Ð°Ð½Ð½Ñ Ð´Ð¾ напрÑмних" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4732,10 +5127,12 @@ msgid "Unlock the selected object (can be moved)." msgstr "Розблокувати вибраний об'єкт (можна переміÑтити)." #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Makes sure the object's children are not selectable." msgstr "Гарантує нащадки об'єкта не можуть бути обрані." #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Restores the object's children's ability to be selected." msgstr "Відновлює можливіÑть вибору нащадків об'єкта." @@ -4748,14 +5145,6 @@ msgid "Show Bones" msgstr "Показати кіÑтки" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Make IK Chain" -msgstr "Зробити IK-ланцюг" - -#: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Clear IK Chain" -msgstr "ОчиÑтити ІК-ланцюг" - -#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Make Custom Bone(s) from Node(s)" msgstr "Створити нетипові кіÑтки з вузлів" @@ -4806,25 +5195,24 @@ msgid "Frame Selection" msgstr "Кадрувати вибране" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Layout" -msgstr "Макет" +msgid "Preview Canvas Scale" +msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Translation mask for inserting keys." -msgstr "" +msgstr "МаÑка перенеÑÐµÐ½Ð½Ñ Ð´Ð»Ñ Ð²ÑтавлÑÐ½Ð½Ñ ÐºÐ»ÑŽÑ‡Ð¾Ð²Ð¸Ñ… кадрів." #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Rotation mask for inserting keys." -msgstr "" +msgstr "МаÑка Ð¾Ð±ÐµÑ€Ñ‚Ð°Ð½Ð½Ñ Ð´Ð»Ñ Ð²ÑтавлÑÐ½Ð½Ñ ÐºÐ»ÑŽÑ‡Ð¾Ð²Ð¸Ñ… кадрів." #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Scale mask for inserting keys." -msgstr "" +msgstr "МаÑка маÑÑˆÑ‚Ð°Ð±ÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð»Ñ Ð²ÑтавлÑÐ½Ð½Ñ ÐºÐ»ÑŽÑ‡Ð¾Ð²Ð¸Ñ… кадрів." #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Insert keys (based on mask)." -msgstr "Ð’Ñтавити ключ (Ñ–Ñнуючі доріжки)" +msgstr "Ð’Ñтавити ключові кадри (на оÑнові маÑки)." #: editor/plugins/canvas_item_editor_plugin.cpp msgid "" @@ -4833,11 +5221,15 @@ msgid "" "Keys are only added to existing tracks, no new tracks will be created.\n" "Keys must be inserted manually for the first time." msgstr "" +"Ðвтоматично вÑтавлÑти ключові кадри при перенеÑенні, обертанні або " +"маÑштабуванні об'єктів (на оÑнові маÑки).\n" +"Ключові кадри додаватимутьÑÑ Ð»Ð¸ÑˆÐµ до наÑвних доріжок, нові доріжки не " +"ÑтворюватимутьÑÑ.\n" +"Спершу ключові кадри Ñлід додати вручну." #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Auto Insert Key" -msgstr "Ð’Ñтавити ключ анімації" +msgstr "ÐвтовÑÑ‚Ð°Ð²Ð»ÐµÐ½Ð½Ñ ÐºÐ»ÑŽÑ‡Ð¾Ð²Ð¾Ð³Ð¾ кадру" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Insert Key (Existing Tracks)" @@ -4860,6 +5252,11 @@ msgid "Divide grid step by 2" msgstr "Розділити крок Ñітки на 2" #: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Pan View" +msgstr "ВиглÑд ззаду" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Add %s" msgstr "Додати %s" @@ -4883,7 +5280,8 @@ msgid "Error instancing scene from %s" msgstr "Помилка Ð´Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ Ñцени з %s" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Change default type" +#, fuzzy +msgid "Change Default Type" msgstr "Змінити типовий тип" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4971,19 +5369,21 @@ msgid "Create Emission Points From Node" msgstr "Створити випромінювач з вузла" #: editor/plugins/curve_editor_plugin.cpp -msgid "Flat0" +#, fuzzy +msgid "Flat 0" msgstr "ПлаÑкий0" #: editor/plugins/curve_editor_plugin.cpp -msgid "Flat1" +#, fuzzy +msgid "Flat 1" msgstr "ПлаÑкий1" -#: editor/plugins/curve_editor_plugin.cpp -msgid "Ease in" +#: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp +msgid "Ease In" msgstr "Перейти в" -#: editor/plugins/curve_editor_plugin.cpp -msgid "Ease out" +#: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp +msgid "Ease Out" msgstr "Перейти з" #: editor/plugins/curve_editor_plugin.cpp @@ -5003,23 +5403,28 @@ msgid "Load Curve Preset" msgstr "Завантажити заготовку кривої" #: editor/plugins/curve_editor_plugin.cpp -msgid "Add point" +#, fuzzy +msgid "Add Point" msgstr "Додати точку" #: editor/plugins/curve_editor_plugin.cpp -msgid "Remove point" +#, fuzzy +msgid "Remove Point" msgstr "Вилучити точку" #: editor/plugins/curve_editor_plugin.cpp -msgid "Left linear" +#, fuzzy +msgid "Left Linear" msgstr "Лівий лінійний" #: editor/plugins/curve_editor_plugin.cpp -msgid "Right linear" +#, fuzzy +msgid "Right Linear" msgstr "Правий лінійний" #: editor/plugins/curve_editor_plugin.cpp -msgid "Load preset" +#, fuzzy +msgid "Load Preset" msgstr "Завантажити заготовку" #: editor/plugins/curve_editor_plugin.cpp @@ -5075,11 +5480,17 @@ msgid "This doesn't work on scene root!" msgstr "Це не працює на корінь Ñцени!" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Trimesh Shape" +#, fuzzy +msgid "Create Trimesh Static Shape" msgstr "Створити увігнуту форму" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Shape" +msgid "Failed creating shapes!" +msgstr "" + +#: editor/plugins/mesh_instance_editor_plugin.cpp +#, fuzzy +msgid "Create Convex Shape(s)" msgstr "Створити вигнуту форму" #: editor/plugins/mesh_instance_editor_plugin.cpp @@ -5132,15 +5543,12 @@ msgid "Create Trimesh Static Body" msgstr "Створити увігнуте Ñтатичне тіло" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Static Body" -msgstr "Створити опукле Ñтатичне тіло" - -#: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Trimesh Collision Sibling" msgstr "Створити увігнуту облаÑть зіткненнÑ" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Collision Sibling" +#, fuzzy +msgid "Create Convex Collision Sibling(s)" msgstr "Створити опуклу облаÑть зіткненнÑ" #: editor/plugins/mesh_instance_editor_plugin.cpp @@ -5294,6 +5702,11 @@ msgid "Create Navigation Polygon" msgstr "Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð½Ð°Ð²Ñ–Ð³Ð°Ñ†Ñ–Ð¹Ð½Ð¾Ð³Ð¾ полігону" #: editor/plugins/particles_2d_editor_plugin.cpp +#: editor/plugins/particles_editor_plugin.cpp +msgid "Convert to CPUParticles" +msgstr "Перетворити на CPUParticles" + +#: editor/plugins/particles_2d_editor_plugin.cpp msgid "Generating Visibility Rect" msgstr "Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð¾Ð±Ð»Ð°Ñті видимоÑті" @@ -5308,11 +5721,6 @@ msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp #: editor/plugins/particles_editor_plugin.cpp -msgid "Convert to CPUParticles" -msgstr "Перетворити на CPUParticles" - -#: editor/plugins/particles_2d_editor_plugin.cpp -#: editor/plugins/particles_editor_plugin.cpp msgid "Generation Time (sec):" msgstr "Ð§Ð°Ñ Ð³ÐµÐ½ÐµÑ€Ð°Ñ†Ñ–Ñ— (Ñек):" @@ -5450,7 +5858,7 @@ msgstr "Закрити криву" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp editor/plugins/theme_editor_plugin.cpp -#: editor/project_export.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_export.cpp msgid "Options" msgstr "Параметри" @@ -5501,7 +5909,8 @@ msgid "Split Segment (in curve)" msgstr "Розділити Ñегмент (кривої)" #: editor/plugins/physical_bone_plugin.cpp -msgid "Move joint" +#, fuzzy +msgid "Move Joint" msgstr "ПереÑунути з'єднаннÑ" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5741,7 +6150,6 @@ msgid "Open in Editor" msgstr "Відкрити в редакторі" #: editor/plugins/resource_preloader_editor_plugin.cpp -#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Load Resource" msgstr "Завантажити реÑурÑ" @@ -5826,9 +6234,13 @@ msgid "Save Theme As..." msgstr "Зберегти тему Ñк..." #: editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "%s Class Reference" -msgstr " ПоÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° клаÑ" +msgstr "Довідник з клаÑу %s" + +#: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp +msgid "Find Next" +msgstr "Знайти наÑтупне" #: editor/plugins/script_editor_plugin.cpp msgid "Toggle alphabetical sorting of the method list." @@ -5911,10 +6323,6 @@ msgstr "Закрити документацію" msgid "Close All" msgstr "Закрити вÑе" -#: editor/plugins/script_editor_plugin.cpp -msgid "Close Other Tabs" -msgstr "Закрити інші вкладки" - #: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp msgid "Run" msgstr "ЗапуÑтити" @@ -5923,11 +6331,6 @@ msgstr "ЗапуÑтити" msgid "Toggle Scripts Panel" msgstr "Перемкнути панель Ñкриптів" -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/script_text_editor.cpp -msgid "Find Next" -msgstr "Знайти наÑтупне" - #: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp msgid "Step Over" msgstr "Крок через" @@ -5954,7 +6357,8 @@ msgid "Debug with External Editor" msgstr "Ð—Ð½ÐµÐ²Ð°Ð´Ð¶ÐµÐ½Ð½Ñ Ð·Ð° допомогою зовнішнього редактора" #: editor/plugins/script_editor_plugin.cpp -msgid "Open Godot online documentation" +#, fuzzy +msgid "Open Godot online documentation." msgstr "Відкрити онлайнову документацію Godot" #: editor/plugins/script_editor_plugin.cpp @@ -5962,7 +6366,8 @@ msgid "Request Docs" msgstr "Запит щодо документації" #: editor/plugins/script_editor_plugin.cpp -msgid "Help improve the Godot documentation by giving feedback" +#, fuzzy +msgid "Help improve the Godot documentation by giving feedback." msgstr "Допоможіть у поліпшенні документації до Godot, надіÑлавши Ñвій відгук" #: editor/plugins/script_editor_plugin.cpp @@ -5990,10 +6395,12 @@ msgstr "" "Що робити?:" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp msgid "Reload" msgstr "Перезавантажити" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp msgid "Resave" msgstr "ПерезапиÑати" @@ -6006,6 +6413,31 @@ msgid "Search Results" msgstr "Результати пошуку" #: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Connections to method:" +msgstr "ПідключитиÑÑ Ð´Ð¾ вузла:" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Source" +msgstr "Джерело:" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Signal" +msgstr "Сигнали" + +#: editor/plugins/script_text_editor.cpp +msgid "Target" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "" +"Missing connected method '%s' for signal '%s' from node '%s' to node '%s'." +msgstr "Ðічого не з'єднано із входом «%s» вузла «%s»." + +#: editor/plugins/script_text_editor.cpp msgid "Line" msgstr "Ð Ñдок" @@ -6017,10 +6449,6 @@ msgstr "(ігнорувати)" msgid "Go to Function" msgstr "Перейти до функції" -#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp -msgid "Standard" -msgstr "Стандартний" - #: editor/plugins/script_text_editor.cpp msgid "Only resources from filesystem can be dropped." msgstr "Можна перетÑгнути тільки реÑÑƒÑ€Ñ Ð· файлової ÑиÑтеми." @@ -6053,6 +6481,11 @@ msgstr "З Великої" msgid "Syntax Highlighter" msgstr "ЗаÑіб підÑÐ²Ñ–Ñ‡ÑƒÐ²Ð°Ð½Ð½Ñ ÑинтакÑиÑу" +#: editor/plugins/script_text_editor.cpp +#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp +msgid "Bookmarks" +msgstr "" + #: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" @@ -6080,6 +6513,26 @@ msgid "Toggle Comment" msgstr "Перемкнути коментар" #: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Toggle Bookmark" +msgstr "ÐŸÐµÑ€ÐµÐ¼Ð¸ÐºÐ°Ð½Ð½Ñ Ð¾Ð³Ð»Ñду" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Go to Next Bookmark" +msgstr "Перейти до наÑтупної точки зупинки" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Go to Previous Bookmark" +msgstr "Перейти до попередньої точки зупинки" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Remove All Bookmarks" +msgstr "Вилучити уÑÑ– елементи" + +#: editor/plugins/script_text_editor.cpp msgid "Fold/Unfold Line" msgstr "Згорнути/розгорнути Ñ€Ñдок" @@ -6153,6 +6606,15 @@ msgid "Contextual Help" msgstr "КонтекÑтна довідка" #: editor/plugins/shader_editor_plugin.cpp +#, fuzzy +msgid "" +"This shader has been modified on on disk.\n" +"What action should be taken?" +msgstr "" +"Такі файли на диÑку новіші.\n" +"Що робити?:" + +#: editor/plugins/shader_editor_plugin.cpp msgid "Shader" msgstr "Шейдер" @@ -6496,7 +6958,8 @@ msgid "Right View" msgstr "ВиглÑд Ñправа" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Switch Perspective/Orthogonal view" +#, fuzzy +msgid "Switch Perspective/Orthogonal View" msgstr "Перемкнути переглÑд перÑпективи/ортогональний переглÑд" #: editor/plugins/spatial_editor_plugin.cpp @@ -6536,11 +6999,13 @@ msgid "Toggle Freelook" msgstr "ÐŸÐµÑ€ÐµÐ¼Ð¸ÐºÐ°Ð½Ð½Ñ Ð¾Ð³Ð»Ñду" #: editor/plugins/spatial_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Transform" msgstr "ПеретвореннÑ" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Snap object to floor" +#, fuzzy +msgid "Snap Object to Floor" msgstr "Приліпити об'єкт до підлоги" #: editor/plugins/spatial_editor_plugin.cpp @@ -6653,24 +7118,20 @@ msgid "Nameless gizmo" msgstr "Штука без назви" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy msgid "Create Mesh2D" -msgstr "Створити плоÑку Ñітку" +msgstr "Створити Mesh2D" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy msgid "Create Polygon2D" -msgstr "Створити Polygon3D" +msgstr "Створити Polygon2D" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy msgid "Create CollisionPolygon2D" -msgstr "Створити полігон зіткненнÑ" +msgstr "Створити CollisionPolygon2D" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy msgid "Create LightOccluder2D" -msgstr "Створено затінювальний полігон" +msgstr "Створити LightOccluder2D" #: editor/plugins/sprite_editor_plugin.cpp msgid "Sprite is empty!" @@ -6687,43 +7148,36 @@ msgid "Invalid geometry, can't replace by mesh." msgstr "Ðекоректна геометріÑ, неможливо замінити Ñіткою." #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy -msgid "Invalid geometry, can't create polygon." -msgstr "Ðекоректна геометріÑ, неможливо замінити Ñіткою." +msgid "Convert to Mesh2D" +msgstr "Перетворити на Mesh2D" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy -msgid "Invalid geometry, can't create collision polygon." -msgstr "Ðекоректна геометріÑ, неможливо замінити Ñіткою." +msgid "Invalid geometry, can't create polygon." +msgstr "Ðекоректна геометріÑ, неможливо Ñтворити багатокутник." #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy -msgid "Invalid geometry, can't create light occluder." -msgstr "Ðекоректна геометріÑ, неможливо замінити Ñіткою." +msgid "Convert to Polygon2D" +msgstr "Перетворити на Polygon2D" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Sprite" -msgstr "Спрайт" +msgid "Invalid geometry, can't create collision polygon." +msgstr "Ðекоректна геометріÑ, неможливо Ñтворити багатокутник зіткненнÑ." #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy -msgid "Convert to Mesh2D" -msgstr "Перетворити на плоÑку Ñітку" +msgid "Create CollisionPolygon2D Sibling" +msgstr "Створити близнюк CollisionPolygon2D" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy -msgid "Convert to Polygon2D" -msgstr "ПереміÑтити полігон" +msgid "Invalid geometry, can't create light occluder." +msgstr "Ðекоректна геометріÑ, неможливо Ñтворити перешкоду Ñвітла." #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy -msgid "Create CollisionPolygon2D Sibling" -msgstr "Створити полігон зіткненнÑ" +msgid "Create LightOccluder2D Sibling" +msgstr "Створити близнюка LightOccluder2D" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy -msgid "Create LightOccluder2D Sibling" -msgstr "Створено затінювальний полігон" +msgid "Sprite" +msgstr "Спрайт" #: editor/plugins/sprite_editor_plugin.cpp msgid "Simplification: " @@ -6742,14 +7196,24 @@ msgid "Settings:" msgstr "Параметри:" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "ERROR: Couldn't load frame resource!" -msgstr "Помилка: не вдалоÑÑ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶Ð¸Ñ‚Ð¸ реÑÑƒÑ€Ñ ÐºÐ°Ð´Ñ€Ñƒ!" +#, fuzzy +msgid "No Frames Selected" +msgstr "Кадрувати вибране" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Add %d Frame(s)" +msgstr "Додати кадр" #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Add Frame" msgstr "Додати кадр" #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "ERROR: Couldn't load frame resource!" +msgstr "Помилка: не вдалоÑÑ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶Ð¸Ñ‚Ð¸ реÑÑƒÑ€Ñ ÐºÐ°Ð´Ñ€Ñƒ!" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Resource clipboard is empty or not a texture!" msgstr "Буфер реÑурÑів порожній або не міÑтить текÑтури!" @@ -6790,6 +7254,15 @@ msgid "Animation Frames:" msgstr "Кадри анімації:" #: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Add a Texture from File" +msgstr "Додати текÑтури до TileSet." + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Add Frames from a Sprite Sheet" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Insert Empty (Before)" msgstr "Ð’Ñтавити порожній (до)" @@ -6806,6 +7279,31 @@ msgid "Move (After)" msgstr "ПереÑунути (піÑлÑ)" #: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Select Frames" +msgstr "СтоÑувати кадри" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Horizontal:" +msgstr "Відзеркалити горизонтально" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Vertical:" +msgstr "Вершини" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Select/Clear All Frames" +msgstr "Виділити вÑе" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Create Frames from Sprite Sheet" +msgstr "Створити зі Ñцени" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "SpriteFrames" msgstr "Кадри Ñпрайта" @@ -6870,12 +7368,13 @@ msgstr "Додати уÑÑ–" msgid "Remove All Items" msgstr "Вилучити уÑÑ– елементи" -#: editor/plugins/theme_editor_plugin.cpp +#: editor/plugins/theme_editor_plugin.cpp editor/project_manager.cpp msgid "Remove All" msgstr "Вилучити уÑÑ–" #: editor/plugins/theme_editor_plugin.cpp -msgid "Edit theme..." +#, fuzzy +msgid "Edit Theme" msgstr "Редагувати тему..." #: editor/plugins/theme_editor_plugin.cpp @@ -6903,18 +7402,25 @@ msgid "Create From Current Editor Theme" msgstr "Створити на оÑнові поточної теми редактора" #: editor/plugins/theme_editor_plugin.cpp -msgid "CheckBox Radio1" -msgstr "Варіант 1" +#, fuzzy +msgid "Toggle Button" +msgstr "Кнопка миші" #: editor/plugins/theme_editor_plugin.cpp -msgid "CheckBox Radio2" -msgstr "Варіант 2" +#, fuzzy +msgid "Disabled Button" +msgstr "Ð¡ÐµÑ€ÐµÐ´Ð½Ñ ÐºÐ½Ð¾Ð¿ÐºÐ°" #: editor/plugins/theme_editor_plugin.cpp msgid "Item" msgstr "Елемент" #: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Disabled Item" +msgstr "Вимкнено" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Check Item" msgstr "Позначити елемент" @@ -6931,6 +7437,24 @@ msgid "Checked Radio Item" msgstr "Позначений пункт варіанта" #: editor/plugins/theme_editor_plugin.cpp +msgid "Named Sep." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Submenu" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Item 1" +msgstr "Елемент" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Item 2" +msgstr "Елемент" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Has" msgstr "Має" @@ -6939,8 +7463,9 @@ msgid "Many" msgstr "Багато" #: editor/plugins/theme_editor_plugin.cpp -msgid "Has,Many,Options" -msgstr "Має,Багато,Параметрів" +#, fuzzy +msgid "Disabled LineEdit" +msgstr "Вимкнено" #: editor/plugins/theme_editor_plugin.cpp msgid "Tab 1" @@ -6955,6 +7480,19 @@ msgid "Tab 3" msgstr "Вкладка 3" #: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Editable Item" +msgstr "Редагований дочірній елемент" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Subtree" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Has,Many,Options" +msgstr "Має,Багато,Параметрів" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Data Type:" msgstr "Тип даних:" @@ -6987,6 +7525,7 @@ msgid "Fix Invalid Tiles" msgstr "Виправити некоректні плитки" #: editor/plugins/tile_map_editor_plugin.cpp +#: modules/gridmap/grid_map_editor_plugin.cpp msgid "Cut Selection" msgstr "Вирізати позначене" @@ -7027,35 +7566,52 @@ msgid "Mirror Y" msgstr "Віддзеркалити за Y" #: editor/plugins/tile_map_editor_plugin.cpp +#, fuzzy +msgid "Disable Autotile" +msgstr "Ðвтоплитки" + +#: editor/plugins/tile_map_editor_plugin.cpp +#, fuzzy +msgid "Enable Priority" +msgstr "Редагувати пріоритетніÑть плитки" + +#: editor/plugins/tile_map_editor_plugin.cpp msgid "Paint Tile" msgstr "Ðамалювати плитку" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Pick Tile" -msgstr "Вибрати плитку" +msgid "" +"Shift+RMB: Line Draw\n" +"Shift+Ctrl+RMB: Rectangle Paint" +msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Copy Selection" -msgstr "Копіювати позначене" +msgid "Pick Tile" +msgstr "Вибрати плитку" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Rotate left" +#, fuzzy +msgid "Rotate Left" msgstr "Обертати ліворуч" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Rotate right" +#, fuzzy +msgid "Rotate Right" msgstr "Обертати праворуч" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Flip horizontally" +#, fuzzy +msgid "Flip Horizontally" msgstr "Відзеркалити горизонтально" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Flip vertically" +#, fuzzy +msgid "Flip Vertically" msgstr "Віддзеркалити вертикально" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Clear transform" +#, fuzzy +msgid "Clear Transform" msgstr "ЗнÑти перетвореннÑ" #: editor/plugins/tile_set_editor_plugin.cpp @@ -7091,6 +7647,46 @@ msgid "Select the previous shape, subtile, or Tile." msgstr "Вибір попередньої форми, підплитки або плитки." #: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Region Mode" +msgstr "Режим виконаннÑ:" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Collision Mode" +msgstr "Режим інтерполÑції" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Occlusion Mode" +msgstr "Редагувати полігон перешкоди" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Navigation Mode" +msgstr "Створити навігаційну Ñітку" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Bitmask Mode" +msgstr "Режим повороту" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Priority Mode" +msgstr "Режим екÑпортуваннÑ:" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Icon Mode" +msgstr "Режим панорамуваннÑ" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Z Index Mode" +msgstr "Режим панорамуваннÑ" + +#: editor/plugins/tile_set_editor_plugin.cpp msgid "Copy bitmask." msgstr "Копіювати бітову маÑку." @@ -7176,9 +7772,11 @@ msgid "Delete polygon." msgstr "Видалити полігон." #: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy msgid "" "LMB: Set bit on.\n" "RMB: Set bit off.\n" +"Shift+LMB: Set wildcard bit.\n" "Click on another Tile to edit it." msgstr "" "Ліва кнопка: вÑтановити біт.\n" @@ -7296,6 +7894,79 @@ msgid "TileSet" msgstr "Ðабір плиток" #: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Add input +" +msgstr "Додати вхід" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Add output +" +msgstr "Додати вхід" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar" +msgstr "МаÑштаб:" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector" +msgstr "ІнÑпектор" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Add input port" +msgstr "Додати вхід" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add output port" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change input port type" +msgstr "Змінити типовий тип" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change output port type" +msgstr "Змінити типовий тип" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change input port name" +msgstr "Змінити назву входу" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change output port name" +msgstr "Змінити назву входу" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Remove input port" +msgstr "Вилучити точку" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Remove output port" +msgstr "Вилучити точку" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Set expression" +msgstr "Змінити вираз" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Resize VisualShader node" +msgstr "VisualShader" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Set Uniform Name" msgstr "Ð’Ñтановити однорідну назву" @@ -7312,9 +7983,8 @@ msgid "Duplicate Nodes" msgstr "Дублювати вузли" #: editor/plugins/visual_shader_editor_plugin.cpp -#, fuzzy msgid "Delete Nodes" -msgstr "Вилучити вузол" +msgstr "Вилучити вузли" #: editor/plugins/visual_shader_editor_plugin.cpp msgid "Visual Shader Input Type Changed" @@ -7333,6 +8003,859 @@ msgid "Light" msgstr "Світло" #: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Create Shader Node" +msgstr "Створити вузол" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Color function." +msgstr "Перейти до функції" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Color operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Grayscale function." +msgstr "Створити функцію" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts HSV vector to RGB equivalent." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts RGB vector to HSV equivalent." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Sepia function." +msgstr "Перейменувати функцію" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Burn operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Darken operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Difference operator." +msgstr "Тільки відмінноÑті" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Dodge operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "HardLight operator" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Lighten operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Overlay operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Screen operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "SoftLight operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Color constant." +msgstr "Сталий" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Color uniform." +msgstr "ЗнÑти перетвореннÑ" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns an associated vector if the provided scalars are equal, greater or " +"less." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns an associated vector if the provided boolean value is true or false." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Boolean constant." +msgstr "Змінити векторну конÑтанту" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'camera' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'inv_camera' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'inv_projection' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'normal' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'projection' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'time' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'viewport_size' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'world' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'texture_pixel_size' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Input parameter." +msgstr "ÐŸÑ€Ð¸Ð»Ð¸Ð¿Ð°Ð½Ð½Ñ Ð´Ð¾ предка" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'binormal' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'fragcoord' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_coord' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_uv' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'side' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'tangent' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv2' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'vertex' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'view' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'albedo' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'attenuation' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'diffuse' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_color' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'roughness' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'specular' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'transmission' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'modelview' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_size' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'tangent' input parameter for vertex and fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_pass' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_coord' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_pixel_size' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_uv' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_alpha' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_height' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_uv' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_vec' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'normal' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'shadow_color' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'extra' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'projection' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'vertex' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'world' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'active' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'custom' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'custom_alpha' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'delta' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'emission_transform' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'index' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'lifetime' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'restart' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'time' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'transform' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'velocity' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar function." +msgstr "Змінити ÑкалÑрну функцію" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar operator." +msgstr "Змінити чиÑловий оператор" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "E constant (2.718282). Represents the base of the natural logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Epsilon constant (0.00001). Smallest possible scalar number." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Phi constant (1.618034). Golden ratio." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi/4 constant (0.785398) or 45 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi/2 constant (1.570796) or 90 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi constant (3.141593) or 180 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Tau constant (6.283185) or 360 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Sqrt2 constant (1.414214). Square root of 2." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the absolute value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-tangent of the parameters." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Finds the nearest integer that is greater than or equal to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Constrains a value to lie between two further values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts a quantity in radians to degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-e Exponential." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-2 Exponential." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Finds the nearest integer less than or equal to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Computes the fractional part of the argument." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the inverse of the square root of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Natural logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-2 logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the greater of two values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the lesser of two values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Linear interpolation between two scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the opposite value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 - scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns the value of the first parameter raised to the power of the second." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts a quantity in degrees to radians." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 / scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the nearest integer to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the nearest even integer to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Clamps the value between 0.0 and 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Extracts the sign of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the square root of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( scalar(edge0), scalar(edge1), scalar(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if x is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( scalar(edge), scalar(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the truncated value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Adds scalar to scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Divides scalar by scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies scalar by scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the remainder of the two scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Subtracts scalar from scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar constant." +msgstr "Змінити чиÑлову Ñталу" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar uniform." +msgstr "Змінити чиÑлову одиницю" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Perform the cubic texture lookup." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Perform the texture lookup." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Cubic texture uniform." +msgstr "Змінити одиницю текÑтури" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "2D texture uniform." +msgstr "Змінити одиницю текÑтури" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Transform function." +msgstr "Вікно перетвореннÑ..." + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) Calculate the outer product of a pair of vectors.\n" +"\n" +"OuterProduct treats the first parameter 'c' as a column vector (matrix with " +"one column) and the second parameter 'r' as a row vector (matrix with one " +"row) and does a linear algebraic matrix multiply 'c * r', yielding a matrix " +"whose number of rows is the number of components in 'c' and whose number of " +"columns is the number of components in 'r'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Composes transform from four vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Decomposes transform to four vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the determinant of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the inverse of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the transpose of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies transform by transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies vector by transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Transform constant." +msgstr "ÐŸÐµÑ€ÐµÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð¿ÐµÑ€ÐµÑ€Ð²Ð°Ð½Ð¾." + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Transform uniform." +msgstr "ÐŸÐµÑ€ÐµÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð¿ÐµÑ€ÐµÑ€Ð²Ð°Ð½Ð¾." + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector function." +msgstr "ÐŸÑ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñ„ÑƒÐ½ÐºÑ†Ñ–Ð¹Ð½Ð¾Ð³Ð¾." + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector operator." +msgstr "Змінити векторний оператор" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Composes vector from three scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Decomposes vector to three scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the cross product of two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the distance between two points." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the dot product of two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns a vector that points in the same direction as a reference vector. " +"The function has three vector parameters : N, the vector to orient, I, the " +"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 "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the length of a vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Linear interpolation between two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the normalize product of vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 - vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 / vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns a vector that points in the direction of reflection ( a : incident " +"vector, b : normal vector )." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns a vector that points in the direction of refraction." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( vector(edge0), vector(edge1), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if 'x' is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( scalar(edge0), scalar(edge1), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if 'x' is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( vector(edge), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( scalar(edge), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Adds vector to vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Divides vector by vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies vector by vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the remainder of the two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Subtracts vector from vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector constant." +msgstr "Змінити векторну конÑтанту" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector uniform." +msgstr "ÐŸÑ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¾Ð´Ð½Ð¾Ñ€Ñ–Ð´Ð½Ð¾Ð³Ð¾." + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Custom Godot Shader Language expression, with custom amount of input and " +"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 "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns falloff based on the dot product of surface normal and view " +"direction of camera (pass associated inputs to it)." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) (Fragment/Light mode only) Scalar derivative function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) (Fragment/Light mode only) Vector derivative function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Derivative in 'x' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Derivative in 'x' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Derivative in 'y' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Derivative in 'y' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Sum of absolute derivative " +"in 'x' and 'y'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Sum of absolute derivative " +"in 'x' and 'y'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "VisualShader" msgstr "VisualShader" @@ -7530,6 +9053,10 @@ msgid "Directory already contains a Godot project." msgstr "У каталозі вже міÑтитьÑÑ Ð¿Ñ€Ð¾ÐµÐºÑ‚ Godot." #: editor/project_manager.cpp +msgid "New Game Project" +msgstr "Ðовий проект гри" + +#: editor/project_manager.cpp msgid "Imported Project" msgstr "Імпортований проект" @@ -7578,10 +9105,6 @@ msgid "Rename Project" msgstr "Перейменувати проект" #: editor/project_manager.cpp -msgid "New Game Project" -msgstr "Ðовий проект гри" - -#: editor/project_manager.cpp msgid "Import Existing Project" msgstr "Імпортувати наÑвний проект" @@ -7610,10 +9133,6 @@ msgid "Project Name:" msgstr "Ðазва проекту:" #: editor/project_manager.cpp -msgid "Create folder" -msgstr "Створити теку" - -#: editor/project_manager.cpp msgid "Project Path:" msgstr "ШлÑÑ… проекту:" @@ -7622,10 +9141,6 @@ msgid "Project Installation Path:" msgstr "ШлÑÑ… вÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾ÐµÐºÑ‚Ñƒ:" #: editor/project_manager.cpp -msgid "Browse" -msgstr "Вибрати" - -#: editor/project_manager.cpp msgid "Renderer:" msgstr "Обробник:" @@ -7680,6 +9195,7 @@ msgid "Are you sure to open more than one project?" msgstr "Ви Ñправді хочете відкрити декілька проектів одразу?" #: editor/project_manager.cpp +#, fuzzy msgid "" "The following project settings file does not specify the version of Godot " "through which it was created.\n" @@ -7688,8 +9204,8 @@ msgid "" "\n" "If you proceed with opening it, it will be converted to Godot's current " "configuration file format.\n" -"Warning: You will not be able to open the project with previous versions of " -"the engine anymore." +"Warning: You won't be able to open the project with previous versions of the " +"engine anymore." msgstr "" "У вказаному нижче файлі параметрів проекту не вказано верÑÑ–ÑŽ Godot, за " "допомогою Ñкої його було Ñтворено.\n" @@ -7702,6 +9218,7 @@ msgstr "" "проекту у заÑтарілих верÑÑ–ÑÑ… рушіÑ." #: editor/project_manager.cpp +#, fuzzy msgid "" "The following project settings file was generated by an older engine " "version, and needs to be converted for this version:\n" @@ -7709,8 +9226,8 @@ msgid "" "%s\n" "\n" "Do you want to convert it?\n" -"Warning: You will not be able to open the project with previous versions of " -"the engine anymore." +"Warning: You won't be able to open the project with previous versions of the " +"engine anymore." msgstr "" "Вказаний нижче файл параметрів проекту було Ñтворено у заÑтарілій верÑÑ–Ñ— " "рушіÑ. Його доведетьÑÑ Ð¿ÐµÑ€ÐµÑ‚Ð²Ð¾Ñ€Ð¸Ñ‚Ð¸ до поточної верÑÑ–Ñ—:\n" @@ -7730,9 +9247,10 @@ msgstr "" "параметри Ñ” неÑуміÑними із верÑією, Ñкою ви зараз кориÑтуєтеÑÑ." #: editor/project_manager.cpp +#, fuzzy msgid "" "Can't run project: no main scene defined.\n" -"Please edit the project and set the main scene in \"Project Settings\" under " +"Please edit the project and set the main scene in the Project Settings under " "the \"Application\" category." msgstr "" "Ðе вдалоÑÑ Ð·Ð°Ð¿ÑƒÑтити проект: не визначено головної Ñцени.\n" @@ -7748,26 +9266,46 @@ msgstr "" "Будь лаÑка, змініть проект так, щоб увімкнути початкове імпортуваннÑ." #: editor/project_manager.cpp -msgid "Are you sure to run more than one project?" +#, fuzzy +msgid "Are you sure to run %d projects at once?" msgstr "Ви Ñправді хочете запуÑтити декілька проектів одночаÑно?" #: editor/project_manager.cpp -msgid "Remove project from the list? (Folder contents will not be modified)" +#, fuzzy +msgid "" +"Remove %d projects from the list?\n" +"The project folders' contents won't be modified." msgstr "Вилучити проект зі ÑпиÑку? (ВміÑÑ‚ теки не буде змінено)" #: editor/project_manager.cpp +#, fuzzy +msgid "" +"Remove this project from the list?\n" +"The project folder's contents won't be modified." +msgstr "Вилучити проект зі ÑпиÑку? (ВміÑÑ‚ теки не буде змінено)" + +#: editor/project_manager.cpp +#, fuzzy +msgid "" +"Remove all missing projects from the list? (Folders contents will not be " +"modified)" +msgstr "Вилучити проект зі ÑпиÑку? (ВміÑÑ‚ теки не буде змінено)" + +#: editor/project_manager.cpp +#, fuzzy msgid "" "Language changed.\n" -"The UI will update next time the editor or project manager starts." +"The interface will update after restarting the editor or project manager." msgstr "" "Змінено мову.\n" "Ð†Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñ Ð±ÑƒÐ´Ðµ оновлено під Ñ‡Ð°Ñ Ð½Ð°Ñтупного запуÑку редактора або заÑобу " "ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾ÐµÐºÑ‚Ð°Ð¼Ð¸." #: editor/project_manager.cpp +#, fuzzy msgid "" -"You are about the scan %s folders for existing Godot projects. Do you " -"confirm?" +"Are you sure to scan %s folders for existing Godot projects?\n" +"This could take a while." msgstr "" "Ви наказали розпочати ÑÐºÐ°Ð½ÑƒÐ²Ð°Ð½Ð½Ñ %s тек у пошуках наÑвних проектів Godot. " "Підтверджуєте ÑкануваннÑ?" @@ -7793,6 +9331,11 @@ msgid "New Project" msgstr "Ðовий проект" #: editor/project_manager.cpp +#, fuzzy +msgid "Remove Missing" +msgstr "Вилучити точку" + +#: editor/project_manager.cpp msgid "Templates" msgstr "Шаблони" @@ -7809,9 +9352,10 @@ msgid "Can't run project" msgstr "Ðе вдаєтьÑÑ Ð·Ð°Ð¿ÑƒÑтити проект" #: editor/project_manager.cpp +#, fuzzy msgid "" -"You don't currently have any projects.\n" -"Would you like to explore the official example projects in the Asset Library?" +"You currently don't have any projects.\n" +"Would you like to explore official example projects in the Asset Library?" msgstr "" "Зараз проектів немає.\n" "Хочете вивчити проекти офіційних прикладів з бібліотеки даних?" @@ -7841,7 +9385,8 @@ msgstr "" "Ñимволів «/», «:», «=», «\\» та «\"»" #: editor/project_settings_editor.cpp -msgid "Action '%s' already exists!" +#, fuzzy +msgid "An action with the name '%s' already exists." msgstr "Ð—Ð°Ð¿Ð¸Ñ Ð´Ñ–Ñ— «%s» вже Ñ–Ñнує!" #: editor/project_settings_editor.cpp @@ -7997,10 +9542,6 @@ msgstr "" "Ñимволів «/», «:», «=», «\\» та «\"»." #: editor/project_settings_editor.cpp -msgid "Already existing" -msgstr "Вже Ñ–Ñнує" - -#: editor/project_settings_editor.cpp msgid "Add Input Action" msgstr "Додати дію" @@ -8065,7 +9606,8 @@ msgid "Override For..." msgstr "Перевизначити на..." #: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp -msgid "Editor must be restarted for changes to take effect" +#, fuzzy +msgid "The editor must be restarted for changes to take effect." msgstr "Щоб зміни набули чинноÑті редактор Ñлід перезапуÑтити" #: editor/project_settings_editor.cpp @@ -8125,11 +9667,13 @@ msgid "Locales Filter" msgstr "Фільтр локалізацій" #: editor/project_settings_editor.cpp -msgid "Show all locales" +#, fuzzy +msgid "Show All Locales" msgstr "Показати уÑÑ– локалізації" #: editor/project_settings_editor.cpp -msgid "Show only selected locales" +#, fuzzy +msgid "Show Selected Locales Only" msgstr "Показати лише позначені локалізації" #: editor/project_settings_editor.cpp @@ -8145,14 +9689,6 @@ msgid "AutoLoad" msgstr "ÐвтозавантаженнÑ" #: editor/property_editor.cpp -msgid "Ease In" -msgstr "Перейти в" - -#: editor/property_editor.cpp -msgid "Ease Out" -msgstr "Перейти з" - -#: editor/property_editor.cpp msgid "Zero" msgstr "Ðуль" @@ -8226,7 +9762,8 @@ msgid "Suffix" msgstr "СуфікÑ" #: editor/rename_dialog.cpp -msgid "Advanced options" +#, fuzzy +msgid "Advanced Options" msgstr "Додаткові параметри" #: editor/rename_dialog.cpp @@ -8490,8 +10027,9 @@ msgid "User Interface" msgstr "Ð†Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñ ÐºÐ¾Ñ€Ð¸Ñтувача" #: editor/scene_tree_dock.cpp -msgid "Custom Node" -msgstr "Ðетиповий вузол" +#, fuzzy +msgid "Other Node" +msgstr "Вилучити вузол" #: editor/scene_tree_dock.cpp msgid "Can't operate on nodes from a foreign scene!" @@ -8534,7 +10072,8 @@ msgid "Clear Inheritance" msgstr "УÑунути уÑпадкуваннÑ" #: editor/scene_tree_dock.cpp -msgid "Open documentation" +#, fuzzy +msgid "Open Documentation" msgstr "Відкрити документацію" #: editor/scene_tree_dock.cpp @@ -8561,7 +10100,7 @@ msgstr "Об'єднати зі Ñцени" msgid "Save Branch as Scene" msgstr "Зберегти гілку Ñк Ñцену" -#: editor/scene_tree_dock.cpp +#: editor/scene_tree_dock.cpp editor/script_editor_debugger.cpp msgid "Copy Node Path" msgstr "Копіювати вузол шлÑху" @@ -8606,6 +10145,21 @@ msgid "Toggle Visible" msgstr "Перемкнути видиміÑть" #: editor/scene_tree_editor.cpp +#, fuzzy +msgid "Unlock Node" +msgstr "Позначити вузол" + +#: editor/scene_tree_editor.cpp +#, fuzzy +msgid "Button Group" +msgstr "Кнопка 7" + +#: editor/scene_tree_editor.cpp +#, fuzzy +msgid "(Connecting From)" +msgstr "Помилка з'єднаннÑ" + +#: editor/scene_tree_editor.cpp msgid "Node configuration warning:" msgstr "ÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ Ñ‰Ð¾Ð´Ð¾ Ð½Ð°Ð»Ð°ÑˆÑ‚Ð¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ð²ÑƒÐ·Ð»Ð°:" @@ -8633,8 +10187,9 @@ msgstr "" "Вузол належить групам.\n" "Клацніть, щоб переглÑнути панель груп." -#: editor/scene_tree_editor.cpp editor/script_create_dialog.cpp -msgid "Open Script" +#: editor/scene_tree_editor.cpp +#, fuzzy +msgid "Open Script:" msgstr "Відкрити Ñкрипт" #: editor/scene_tree_editor.cpp @@ -8686,71 +10241,83 @@ msgid "Select a Node" msgstr "Виберіть вузол" #: editor/script_create_dialog.cpp -msgid "Error loading template '%s'" -msgstr "Помилка під Ñ‡Ð°Ñ Ñпроби завантажити шаблон «%s»" +#, fuzzy +msgid "Path is empty." +msgstr "Порожній шлÑÑ…" #: editor/script_create_dialog.cpp -msgid "Error - Could not create script in filesystem." -msgstr "Помилка: не вдалоÑÑ Ñтворити Ñкрипт у файловій ÑиÑтемі." +#, fuzzy +msgid "Filename is empty." +msgstr "Ðазва файла Ñ” порожньою" #: editor/script_create_dialog.cpp -msgid "Error loading script from %s" -msgstr "Помилка під Ñ‡Ð°Ñ Ñпроби завантажити Ñкрипт з %s" +#, fuzzy +msgid "Path is not local." +msgstr "ШлÑÑ… не Ñ” локальним" #: editor/script_create_dialog.cpp -msgid "N/A" -msgstr "Ð/З" +#, fuzzy +msgid "Invalid base path." +msgstr "Ðекоректний базовий шлÑÑ…" #: editor/script_create_dialog.cpp -msgid "Open Script/Choose Location" -msgstr "Відкрити Ñкрипт або вибрати міÑце" +#, fuzzy +msgid "A directory with the same name exists." +msgstr "Каталог із такою назвою вже Ñ–Ñнує" #: editor/script_create_dialog.cpp -msgid "Path is empty" -msgstr "Порожній шлÑÑ…" +#, fuzzy +msgid "Invalid extension." +msgstr "Ðекоректний ÑуфікÑ" #: editor/script_create_dialog.cpp -msgid "Filename is empty" -msgstr "Ðазва файла Ñ” порожньою" +#, fuzzy +msgid "Wrong extension chosen." +msgstr "Вибрано некоректний ÑуфікÑ" #: editor/script_create_dialog.cpp -msgid "Path is not local" -msgstr "ШлÑÑ… не Ñ” локальним" +msgid "Error loading template '%s'" +msgstr "Помилка під Ñ‡Ð°Ñ Ñпроби завантажити шаблон «%s»" #: editor/script_create_dialog.cpp -msgid "Invalid base path" -msgstr "Ðекоректний базовий шлÑÑ…" +msgid "Error - Could not create script in filesystem." +msgstr "Помилка: не вдалоÑÑ Ñтворити Ñкрипт у файловій ÑиÑтемі." #: editor/script_create_dialog.cpp -msgid "Directory of the same name exists" -msgstr "Каталог із такою назвою вже Ñ–Ñнує" +msgid "Error loading script from %s" +msgstr "Помилка під Ñ‡Ð°Ñ Ñпроби завантажити Ñкрипт з %s" #: editor/script_create_dialog.cpp -msgid "File exists, will be reused" -msgstr "Файл вже Ñ–Ñнує, його буде викориÑтано повторно" +msgid "N/A" +msgstr "Ð/З" #: editor/script_create_dialog.cpp -msgid "Invalid extension" -msgstr "Ðекоректний ÑуфікÑ" +#, fuzzy +msgid "Open Script / Choose Location" +msgstr "Відкрити Ñкрипт або вибрати міÑце" #: editor/script_create_dialog.cpp -msgid "Wrong extension chosen" -msgstr "Вибрано некоректний ÑуфікÑ" +msgid "Open Script" +msgstr "Відкрити Ñкрипт" #: editor/script_create_dialog.cpp -msgid "Invalid Path" -msgstr "Ðеправильний шлÑÑ…" +#, fuzzy +msgid "File exists, it will be reused." +msgstr "Файл вже Ñ–Ñнує, його буде викориÑтано повторно" #: editor/script_create_dialog.cpp -msgid "Invalid class name" +#, fuzzy +msgid "Invalid class name." msgstr "Ðекоректна назва клаÑу" #: editor/script_create_dialog.cpp -msgid "Invalid inherited parent name or path" +#, fuzzy +msgid "Invalid inherited parent name or path." msgstr "Ðекоректна назва або шлÑÑ… до уÑпадкованого батьківÑького елемента" #: editor/script_create_dialog.cpp -msgid "Script valid" +#, fuzzy +msgid "Script is valid." msgstr "Скрипт Ñ” коректним" #: editor/script_create_dialog.cpp @@ -8758,15 +10325,18 @@ msgid "Allowed: a-z, A-Z, 0-9 and _" msgstr "Можна викориÑтовувати: a-z, A-Z, 0-9 Ñ– _" #: editor/script_create_dialog.cpp -msgid "Built-in script (into scene file)" +#, fuzzy +msgid "Built-in script (into scene file)." msgstr "Вбудований (до файла Ñцени) Ñкрипт" #: editor/script_create_dialog.cpp -msgid "Create new script file" +#, fuzzy +msgid "Will create a new script file." msgstr "Створити новий файл Ñкрипту" #: editor/script_create_dialog.cpp -msgid "Load existing script file" +#, fuzzy +msgid "Will load an existing script file." msgstr "Завантажити наÑвний файл Ñкрипту" #: editor/script_create_dialog.cpp @@ -8897,6 +10467,10 @@ msgstr "Корінь інтерактивного редагуваннÑ:" msgid "Set From Tree" msgstr "Ð’Ñтановити з дерева" +#: editor/script_editor_debugger.cpp +msgid "Export measures as CSV" +msgstr "" + #: editor/settings_config_dialog.cpp msgid "Erase Shortcut" msgstr "Витерти ÑкороченнÑ" @@ -9026,6 +10600,15 @@ msgid "GDNativeLibrary" msgstr "Бібліотека 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 "Вимкнути Ð¾Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð»Ñ–Ñ‡Ð¸Ð»ÑŒÐ½Ð¸ÐºÐ°" + +#: modules/gdnative/gdnative_library_singleton_editor.cpp msgid "Library" msgstr "Бібліотека" @@ -9112,8 +10695,9 @@ msgid "GridMap Fill Selection" msgstr "Вибір Ð·Ð°Ð¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ GridMap" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "GridMap Duplicate Selection" -msgstr "Ð”ÑƒÐ±Ð»ÑŽÐ²Ð°Ð½Ð½Ñ Ð¿Ð¾Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾Ð³Ð¾ GridMap" +#, fuzzy +msgid "GridMap Paste Selection" +msgstr "Ð’Ð¸Ð»ÑƒÑ‡ÐµÐ½Ð½Ñ Ð¿Ð¾Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾Ð³Ð¾ GridMap" #: modules/gridmap/grid_map_editor_plugin.cpp msgid "GridMap Paint" @@ -9180,18 +10764,6 @@ msgid "Cursor Clear Rotation" msgstr "ЗнÑти Ð¾Ð±ÐµÑ€Ñ‚Ð°Ð½Ð½Ñ Ð· вказівника" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Create Area" -msgstr "Створити облаÑть" - -#: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Create Exterior Connector" -msgstr "Створити зовнішнє з'єднаннÑ" - -#: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Erase Area" -msgstr "Витерти облаÑть" - -#: modules/gridmap/grid_map_editor_plugin.cpp msgid "Clear Selection" msgstr "ОчиÑтити позначене" @@ -9552,18 +11124,11 @@ msgid "Available Nodes:" msgstr "ДоÑтупні вузли:" #: modules/visual_script/visual_script_editor.cpp -msgid "Select or create a function to edit graph" +#, fuzzy +msgid "Select or create a function to edit its graph." msgstr "Виберіть або Ñтворіть функцію Ñ€ÐµÐ´Ð°Ð³ÑƒÐ²Ð°Ð½Ð½Ñ Ð³Ñ€Ð°Ñ„Ð°" #: modules/visual_script/visual_script_editor.cpp -msgid "Edit Signal Arguments:" -msgstr "Редагувати аргументи Ñигналу:" - -#: modules/visual_script/visual_script_editor.cpp -msgid "Edit Variable:" -msgstr "Редагувати змінну:" - -#: modules/visual_script/visual_script_editor.cpp msgid "Delete Selected" msgstr "Вилучити вибране" @@ -9696,6 +11261,19 @@ msgstr "" "ключів." #: platform/android/export/export.cpp +msgid "Custom build requires a valid Android SDK path in Editor Settings." +msgstr "" + +#: platform/android/export/export.cpp +msgid "Invalid Android SDK path for custom build in Editor Settings." +msgstr "" + +#: platform/android/export/export.cpp +msgid "" +"Android project is not installed for compiling. Install from Editor menu." +msgstr "" + +#: platform/android/export/export.cpp msgid "Invalid public key for APK expansion." msgstr "Ðеокректний відкритий ключ Ð´Ð»Ñ Ñ€Ð¾Ð·Ð³Ð¾Ñ€Ñ‚Ð°Ð½Ð½Ñ APK." @@ -9703,6 +11281,34 @@ msgstr "Ðеокректний відкритий ключ Ð´Ð»Ñ Ñ€Ð¾Ð·Ð³Ð¾Ñ€Ñ‚ msgid "Invalid package name:" msgstr "Ðекоректна назва пакунка:" +#: platform/android/export/export.cpp +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 "" +"Android build version mismatch:\n" +" Template installed: %s\n" +" Godot Version: %s\n" +"Please reinstall Android build template from 'Project' menu." +msgstr "" + +#: platform/android/export/export.cpp +msgid "Building Android Project (gradle)" +msgstr "" + +#: 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 "" + +#: platform/android/export/export.cpp +msgid "No build apk generated at: " +msgstr "" + #: platform/iphone/export/export.cpp msgid "Identifier is missing." msgstr "Ðе вказано ідентифікатор." @@ -10015,31 +11621,36 @@ msgid "ARVRCamera must have an ARVROrigin node as its parent" msgstr "ARVRCamera повинен мати батьківÑьким вузлом вузол ARVROrigin" #: scene/3d/arvr_nodes.cpp -msgid "ARVRController must have an ARVROrigin node as its parent" +#, fuzzy +msgid "ARVRController must have an ARVROrigin node as its parent." msgstr "ARVRController повинен мати батьківÑьким вузлом вузол ARVROrigin" #: scene/3d/arvr_nodes.cpp +#, fuzzy msgid "" -"The controller id must not be 0 or this controller will not be bound to an " -"actual controller" +"The controller ID must not be 0 or this controller won't be bound to an " +"actual controller." msgstr "" "Ідентифікатором контролера має бути значеннÑ, Ñке Ñ” відмінним від 0, інакше " "цей контролер не буде пов'Ñзано із Ñправжнім елементом керуваннÑ" #: scene/3d/arvr_nodes.cpp -msgid "ARVRAnchor must have an ARVROrigin node as its parent" +#, fuzzy +msgid "ARVRAnchor must have an ARVROrigin node as its parent." msgstr "ARVRAnchor повинен мати батьківÑьким вузлом вузол ARVROrigin" #: scene/3d/arvr_nodes.cpp +#, fuzzy msgid "" -"The anchor id must not be 0 or this anchor will not be bound to an actual " -"anchor" +"The anchor ID must not be 0 or this anchor won't be bound to an actual " +"anchor." msgstr "" "Ідентифікатором прив'Ñзки має бути значеннÑ, Ñке Ñ” відмінним від 0, інакше " "цю прив'Ñзку не буде пов'Ñзано із Ñправжньою прив'Ñзкою" #: scene/3d/arvr_nodes.cpp -msgid "ARVROrigin requires an ARVRCamera child node" +#, fuzzy +msgid "ARVROrigin requires an ARVRCamera child node." msgstr "ARVROrigin повинен мати дочірній вузол ARVRCamera" #: scene/3d/baked_lightmap.cpp @@ -10122,9 +11733,10 @@ msgid "Nothing is visible because no mesh has been assigned." msgstr "Ðічого не видно, оÑкільки не призначено Ñітки." #: scene/3d/cpu_particles.cpp +#, fuzzy msgid "" -"CPUParticles animation requires the usage of a SpatialMaterial with " -"\"Billboard Particles\" enabled." +"CPUParticles animation requires the usage of a SpatialMaterial whose " +"Billboard Mode is set to \"Particle Billboard\"." msgstr "" "ÐÐ½Ñ–Ð¼Ð°Ñ†Ñ–Ñ CPUParticles потребує викориÑÑ‚Ð°Ð½Ð½Ñ SpatialMaterial із увімкненим " "параметром «ЧаÑтки дошки»." @@ -10173,9 +11785,10 @@ msgstr "" "Ðічого не видно, оÑкільки Ñітки не було пов'Ñзано із проходами малюваннÑ." #: scene/3d/particles.cpp +#, fuzzy msgid "" -"Particles animation requires the usage of a SpatialMaterial with \"Billboard " -"Particles\" enabled." +"Particles animation requires the usage of a SpatialMaterial whose Billboard " +"Mode is set to \"Particle Billboard\"." msgstr "" "ÐÐ½Ñ–Ð¼Ð°Ñ†Ñ–Ñ Ñ‡Ð°Ñток потребує викориÑÑ‚Ð°Ð½Ð½Ñ SpatialMaterial із увімкненим " "параметром «ЧаÑтки дошки»." @@ -10209,7 +11822,8 @@ msgstr "" "коректний вузол Spatial." #: scene/3d/soft_body.cpp -msgid "This body will be ignored until you set a mesh" +#, fuzzy +msgid "This body will be ignored until you set a mesh." msgstr "Це тіло буде проігноровано, аж доки ви не вÑтановите Ñітку" #: scene/3d/soft_body.cpp @@ -10316,10 +11930,11 @@ msgid "Add current color as a preset." msgstr "Додати поточний колір Ñк шаблон." #: scene/gui/container.cpp +#, fuzzy msgid "" "Container by itself serves no purpose unless a script configures it's " "children placement behavior.\n" -"If you dont't intend to add a script, then please use a plain 'Control' node " +"If you don't intend to add a script, then please use a plain 'Control' node " "instead." msgstr "" "Сам контейнер не має призначеннÑ, Ñкщо Ñкрипт не налаштовує поведінку щодо " @@ -10335,10 +11950,6 @@ msgstr "Увага!" msgid "Please Confirm..." msgstr "Будь лаÑка, підтвердьте..." -#: scene/gui/file_dialog.cpp -msgid "Go to parent folder." -msgstr "Перейти до батьківÑької теки." - #: scene/gui/popup.cpp msgid "" "Popups will hide by default unless you call popup() or any of the popup*() " @@ -10424,6 +12035,76 @@ msgstr "ÐŸÑ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¾Ð´Ð½Ð¾Ñ€Ñ–Ð´Ð½Ð¾Ð³Ð¾." msgid "Varyings can only be assigned in vertex function." msgstr "Змінні величини можна пов'Ñзувати лише із функцією вузлів." +#: servers/visual/shader_language.cpp +msgid "Constants cannot be modified." +msgstr "" + +#~ msgid "Path to Node:" +#~ msgstr "ШлÑÑ… до вузла:" + +#~ msgid "Delete selected files?" +#~ msgstr "Видалити вибрані файли?" + +#~ msgid "There is no 'res://default_bus_layout.tres' file." +#~ msgstr "Файл 'res: //default_bus_layout.tres' не знайдено." + +#~ msgid "Go to parent folder" +#~ msgstr "Перейти до батьківÑької теки" + +#~ msgid "Select device from the list" +#~ msgstr "Вибрати приÑтрій зі ÑпиÑку" + +#~ msgid "Open Scene(s)" +#~ msgstr "Відкрити Ñцену(и)" + +#~ msgid "Previous Directory" +#~ msgstr "Попередній каталог" + +#~ msgid "Next Directory" +#~ msgstr "ÐаÑтупний каталог" + +#~ msgid "Ease in" +#~ msgstr "Перейти в" + +#~ msgid "Ease out" +#~ msgstr "Перейти з" + +#~ msgid "Create Convex Static Body" +#~ msgstr "Створити опукле Ñтатичне тіло" + +#~ msgid "CheckBox Radio1" +#~ msgstr "Варіант 1" + +#~ msgid "CheckBox Radio2" +#~ msgstr "Варіант 2" + +#~ msgid "Create folder" +#~ msgstr "Створити теку" + +#~ msgid "Already existing" +#~ msgstr "Вже Ñ–Ñнує" + +#~ msgid "Custom Node" +#~ msgstr "Ðетиповий вузол" + +#~ msgid "Invalid Path" +#~ msgstr "Ðеправильний шлÑÑ…" + +#~ msgid "GridMap Duplicate Selection" +#~ msgstr "Ð”ÑƒÐ±Ð»ÑŽÐ²Ð°Ð½Ð½Ñ Ð¿Ð¾Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾Ð³Ð¾ GridMap" + +#~ msgid "Create Area" +#~ msgstr "Створити облаÑть" + +#~ msgid "Create Exterior Connector" +#~ msgstr "Створити зовнішнє з'єднаннÑ" + +#~ msgid "Edit Signal Arguments:" +#~ msgstr "Редагувати аргументи Ñигналу:" + +#~ msgid "Edit Variable:" +#~ msgstr "Редагувати змінну:" + #~ msgid "Snap (s): " #~ msgstr "ÐŸÑ€Ð¸Ð»Ð¸Ð¿Ð°Ð½Ð½Ñ (Ñ): " @@ -10540,9 +12221,6 @@ msgstr "Змінні величини можна пов'Ñзувати лише #~ msgid "Class List:" #~ msgstr "СпиÑок клаÑів:" -#~ msgid "Search Classes" -#~ msgstr "Пошук клаÑів" - #~ msgid "Public Methods" #~ msgstr "Публічні методи" @@ -10616,9 +12294,6 @@ msgstr "Змінні величини можна пов'Ñзувати лише #~ msgid "Error:" #~ msgstr "Помилка:" -#~ msgid "Source:" -#~ msgstr "Джерело:" - #~ msgid "Function:" #~ msgstr "ФункціÑ:" @@ -10640,21 +12315,9 @@ msgstr "Змінні величини можна пов'Ñзувати лише #~ msgid "Get" #~ msgstr "Отримати" -#~ msgid "Change Scalar Constant" -#~ msgstr "Змінити чиÑлову Ñталу" - -#~ msgid "Change Vec Constant" -#~ msgstr "Змінити векторну конÑтанту" - #~ msgid "Change RGB Constant" #~ msgstr "Змінити Ñталу RGB" -#~ msgid "Change Scalar Operator" -#~ msgstr "Змінити чиÑловий оператор" - -#~ msgid "Change Vec Operator" -#~ msgstr "Змінити векторний оператор" - #~ msgid "Change Vec Scalar Operator" #~ msgstr "Змінити векторно-чиÑловий оператор" @@ -10664,15 +12327,9 @@ msgstr "Змінні величини можна пов'Ñзувати лише #~ msgid "Toggle Rot Only" #~ msgstr "Перемкнути лише поворот" -#~ msgid "Change Scalar Function" -#~ msgstr "Змінити ÑкалÑрну функцію" - #~ msgid "Change Vec Function" #~ msgstr "Змінити векторну функцію" -#~ msgid "Change Scalar Uniform" -#~ msgstr "Змінити чиÑлову одиницю" - #~ msgid "Change Vec Uniform" #~ msgstr "Змінити векторну одиницю" @@ -10685,9 +12342,6 @@ msgstr "Змінні величини можна пов'Ñзувати лише #~ msgid "Change XForm Uniform" #~ msgstr "Змінити одиницю XForm" -#~ msgid "Change Texture Uniform" -#~ msgstr "Змінити одиницю текÑтури" - #~ msgid "Change Cubemap Uniform" #~ msgstr "Змінити одиницю кубічної мапи" @@ -10706,9 +12360,6 @@ msgstr "Змінні величини можна пов'Ñзувати лише #~ msgid "Modify Curve Map" #~ msgstr "Змінити карту кривої" -#~ msgid "Change Input Name" -#~ msgstr "Змінити назву входу" - #~ msgid "Connect Graph Nodes" #~ msgstr "З'єднати вузли графу" @@ -10736,9 +12387,6 @@ msgstr "Змінні величини можна пов'Ñзувати лише #~ msgid "Add Shader Graph Node" #~ msgstr "Додати вузол графу шейдера" -#~ msgid "Disabled" -#~ msgstr "Вимкнено" - #~ msgid "Move Anim Track Up" #~ msgstr "ПереÑунути доріжку вгору" @@ -10916,16 +12564,10 @@ msgstr "Змінні величини можна пов'Ñзувати лише #~ msgid "Item name or ID:" #~ msgstr "Ðазва або ідентифікатор елемента:" -#~ msgid "Autotiles" -#~ msgstr "Ðвтоплитки" - #~ msgid "Export templates for this platform are missing/corrupted: " #~ msgstr "" #~ "Ðе виÑтачає шаблонів екÑÐ¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð»Ñ Ð¿Ð»Ð°Ñ‚Ñ„Ð¾Ñ€Ð¼Ð¸ або шаблони пошкоджено: " -#~ msgid "Button 7" -#~ msgstr "Кнопка 7" - #~ msgid "Button 8" #~ msgstr "Кнопка 8" diff --git a/editor/translations/ur_PK.po b/editor/translations/ur_PK.po index cf4d0fe630..fdf5b30709 100644 --- a/editor/translations/ur_PK.po +++ b/editor/translations/ur_PK.po @@ -75,6 +75,14 @@ msgstr "" msgid "Mirror" msgstr "" +#: editor/animation_bezier_editor.cpp editor/editor_profiler.cpp +msgid "Time:" +msgstr "" + +#: editor/animation_bezier_editor.cpp +msgid "Value:" +msgstr "" + #: editor/animation_bezier_editor.cpp msgid "Insert Key Here" msgstr "" @@ -158,11 +166,15 @@ msgid "Animation Playback Track" msgstr "" #: editor/animation_track_editor.cpp -msgid "Add Track" +msgid "Animation length (frames)" msgstr "" #: editor/animation_track_editor.cpp -msgid "Animation Length Time (seconds)" +msgid "Animation length (seconds)" +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Add Track" msgstr "" #: editor/animation_track_editor.cpp @@ -291,11 +303,13 @@ msgid "Create %d NEW tracks and insert keys?" msgstr "" #: editor/animation_track_editor.cpp editor/create_dialog.cpp -#: editor/editor_audio_buses.cpp editor/editor_plugin_settings.cpp -#: editor/plugin_config_dialog.cpp +#: editor/editor_audio_buses.cpp editor/editor_feature_profile.cpp +#: editor/editor_plugin_settings.cpp editor/plugin_config_dialog.cpp #: editor/plugins/abstract_polygon_2d_editor.cpp #: editor/plugins/mesh_instance_editor_plugin.cpp -#: editor/plugins/particles_editor_plugin.cpp editor/script_create_dialog.cpp +#: editor/plugins/particles_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_create_dialog.cpp msgid "Create" msgstr "" @@ -405,6 +419,23 @@ msgid "" msgstr "" #: editor/animation_track_editor.cpp +msgid "" +"This animation belongs to an imported scene, so changes to imported tracks " +"will not be saved.\n" +"\n" +"To enable the ability to add custom tracks, navigate to the scene's import " +"settings and set\n" +"\"Animation > Storage\" to \"Files\", enable \"Animation > Keep Custom Tracks" +"\", then re-import.\n" +"Alternatively, use an import preset that imports animations to separate " +"files." +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Warning: Editing imported animation" +msgstr "" + +#: editor/animation_track_editor.cpp msgid "Only show tracks from nodes selected in tree." msgstr "" @@ -538,7 +569,8 @@ msgstr "" msgid "Select tracks to copy:" msgstr "" -#: editor/animation_track_editor.cpp editor/editor_properties.cpp +#: editor/animation_track_editor.cpp editor/editor_log.cpp +#: editor/editor_properties.cpp #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp @@ -606,6 +638,11 @@ msgstr "" msgid "Selection Only" msgstr "" +#: editor/code_editor.cpp editor/plugins/script_text_editor.cpp +#: editor/plugins/text_editor.cpp +msgid "Standard" +msgstr "" + #: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/texture_region_editor_plugin.cpp #: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp @@ -631,17 +668,32 @@ msgid "Line and column numbers." msgstr "" #: editor/connections_dialog.cpp -msgid "Method in target Node must be specified!" +msgid "Method in target node must be specified." msgstr "" #: editor/connections_dialog.cpp msgid "" -"Target method not found! Specify a valid method or attach a script to target " -"Node." +"Target method not found. Specify a valid method or attach a script to the " +"target node." msgstr "" #: editor/connections_dialog.cpp -msgid "Connect To Node:" +#, fuzzy +msgid "Connect to Node:" +msgstr "سب سکریپشن بنائیں" + +#: editor/connections_dialog.cpp +#, fuzzy +msgid "Connect to Script:" +msgstr ".تمام کا انتخاب" + +#: editor/connections_dialog.cpp +#, fuzzy +msgid "From Signal:" +msgstr ".تمام کا انتخاب" + +#: editor/connections_dialog.cpp +msgid "Scene does not contain any script." msgstr "" #: editor/connections_dialog.cpp editor/editor_autoload_settings.cpp @@ -651,10 +703,12 @@ msgid "Add" msgstr "" #: editor/connections_dialog.cpp editor/dependency_editor.cpp -#: editor/groups_editor.cpp editor/plugins/animation_player_editor_plugin.cpp +#: editor/editor_feature_profile.cpp editor/groups_editor.cpp +#: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp #: editor/plugins/resource_preloader_editor_plugin.cpp -#: editor/plugins/theme_editor_plugin.cpp editor/project_manager.cpp +#: editor/plugins/theme_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_manager.cpp #: editor/project_settings_editor.cpp msgid "Remove" msgstr "" @@ -668,21 +722,31 @@ msgid "Extra Call Arguments:" msgstr "" #: editor/connections_dialog.cpp -msgid "Path to Node:" +msgid "Advanced" msgstr "" #: editor/connections_dialog.cpp -msgid "Make Function" +msgid "Deferred" msgstr "" #: editor/connections_dialog.cpp -msgid "Deferred" +msgid "" +"Defers the signal, storing it in a queue and only firing it at idle time." msgstr "" #: editor/connections_dialog.cpp msgid "Oneshot" msgstr "" +#: editor/connections_dialog.cpp +msgid "Disconnects the signal after its first emission." +msgstr "" + +#: editor/connections_dialog.cpp +#, fuzzy +msgid "Cannot connect signal" +msgstr ".تمام کا انتخاب" + #: editor/connections_dialog.cpp editor/dependency_editor.cpp #: editor/export_template_manager.cpp editor/groups_editor.cpp #: editor/plugins/animation_player_editor_plugin.cpp @@ -724,12 +788,13 @@ msgstr "" #: editor/connections_dialog.cpp #, fuzzy -msgid "Connect Signal: " +msgid "Connect a Signal to a Method" msgstr ".تمام کا انتخاب" #: editor/connections_dialog.cpp -msgid "Edit Connection: " -msgstr "" +#, fuzzy +msgid "Edit Connection:" +msgstr ".تمام کا انتخاب" #: editor/connections_dialog.cpp msgid "Are you sure you want to remove all connections from the \"%s\" signal?" @@ -760,7 +825,6 @@ msgid "Change %s Type" msgstr "" #: editor/create_dialog.cpp editor/project_settings_editor.cpp -#: modules/visual_script/visual_script_editor.cpp msgid "Change" msgstr "" @@ -792,7 +856,8 @@ msgid "Matches:" msgstr "" #: editor/create_dialog.cpp editor/plugin_config_dialog.cpp -#: editor/plugins/asset_library_editor_plugin.cpp editor/property_selector.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/property_selector.cpp #: modules/visual_script/visual_script_property_selector.cpp msgid "Description:" msgstr "" @@ -808,13 +873,13 @@ msgstr "" #: editor/dependency_editor.cpp msgid "" "Scene '%s' is currently being edited.\n" -"Changes will not take effect unless reloaded." +"Changes will only take effect when reloaded." msgstr "" #: editor/dependency_editor.cpp msgid "" "Resource '%s' is in use.\n" -"Changes will take effect when reloaded." +"Changes will only take effect when reloaded." msgstr "" #: editor/dependency_editor.cpp @@ -905,21 +970,13 @@ msgid "Permanently delete %d item(s)? (No undo!)" msgstr "" #: editor/dependency_editor.cpp -msgid "Owns" -msgstr "" - -#: editor/dependency_editor.cpp -msgid "Resources Without Explicit Ownership:" +msgid "Show Dependencies" msgstr "" #: editor/dependency_editor.cpp editor/editor_node.cpp msgid "Orphan Resource Explorer" msgstr "" -#: editor/dependency_editor.cpp -msgid "Delete selected files?" -msgstr "" - #: editor/dependency_editor.cpp editor/editor_audio_buses.cpp #: editor/editor_file_dialog.cpp editor/editor_node.cpp #: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp @@ -928,6 +985,14 @@ msgstr "" msgid "Delete" msgstr "" +#: editor/dependency_editor.cpp +msgid "Owns" +msgstr "" + +#: editor/dependency_editor.cpp +msgid "Resources Without Explicit Ownership:" +msgstr "" + #: editor/dictionary_property_edit.cpp msgid "Change Dictionary Key" msgstr "" @@ -1037,7 +1102,7 @@ msgstr "" msgid "Success!" msgstr "" -#: editor/editor_asset_installer.cpp +#: editor/editor_asset_installer.cpp editor/editor_node.cpp #: editor/plugins/asset_library_editor_plugin.cpp msgid "Install" msgstr "" @@ -1167,7 +1232,11 @@ msgid "Open Audio Bus Layout" msgstr "" #: editor/editor_audio_buses.cpp -msgid "There is no 'res://default_bus_layout.tres' file." +msgid "There is no '%s' file." +msgstr "" + +#: editor/editor_audio_buses.cpp editor/plugins/canvas_item_editor_plugin.cpp +msgid "Layout" msgstr "" #: editor/editor_audio_buses.cpp @@ -1222,15 +1291,19 @@ msgid "Valid characters:" msgstr "" #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing engine class name." +msgid "Must not collide with an existing engine class name." +msgstr "" + +#: editor/editor_autoload_settings.cpp +msgid "Must not collide with an existing buit-in type name." msgstr "" #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing buit-in type name." +msgid "Must not collide with an existing global constant name." msgstr "" #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing global constant name." +msgid "Keyword cannot be used as an autoload name." msgstr "" #: editor/editor_autoload_settings.cpp @@ -1261,11 +1334,11 @@ msgstr "" msgid "Rearrange Autoloads" msgstr "" -#: editor/editor_autoload_settings.cpp -msgid "Invalid Path." +#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp +msgid "Invalid path." msgstr "" -#: editor/editor_autoload_settings.cpp +#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp msgid "File does not exist." msgstr "" @@ -1317,7 +1390,7 @@ msgid "[unsaved]" msgstr "" #: editor/editor_dir_dialog.cpp -msgid "Please select a base directory first" +msgid "Please select a base directory first." msgstr "" #: editor/editor_dir_dialog.cpp @@ -1325,7 +1398,8 @@ msgid "Choose a Directory" msgstr "" #: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp -#: editor/filesystem_dock.cpp scene/gui/file_dialog.cpp +#: editor/filesystem_dock.cpp editor/project_manager.cpp +#: scene/gui/file_dialog.cpp msgid "Create Folder" msgstr "" @@ -1393,6 +1467,158 @@ msgstr "" msgid "Template file not found:" msgstr "" +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "3D Editor" +msgstr "سب سکریپشن بنائیں" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Script Editor" +msgstr "سب سکریپشن بنائیں" + +#: editor/editor_feature_profile.cpp +msgid "Asset Library" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Scene Tree Editing" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Import Dock" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Node Dock" +msgstr "ایکشن منتقل کریں" + +#: editor/editor_feature_profile.cpp +msgid "Filesystem Dock" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Erase profile '%s'? (no undo)" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Profile must be a valid filename and must not contain '.'" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Profile with this name already exists." +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "(Editor Disabled, Properties Disabled)" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "(Properties Disabled)" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "(Editor Disabled)" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Class Options:" +msgstr "سب سکریپشن بنائیں" + +#: editor/editor_feature_profile.cpp +msgid "Enable Contextual Editor" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enabled Properties:" +msgstr ".تمام کا انتخاب" + +#: editor/editor_feature_profile.cpp +msgid "Enabled Features:" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Enabled Classes:" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "File '%s' format is invalid, import aborted." +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "" +"Profile '%s' already exists. Remote it first before importing, import " +"aborted." +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Error saving profile to path: '%s'." +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Unset" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Current Profile" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Make Current" +msgstr "" + +#: editor/editor_feature_profile.cpp +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "New" +msgstr "" + +#: editor/editor_feature_profile.cpp editor/editor_node.cpp +#: editor/plugins/asset_library_editor_plugin.cpp editor/project_manager.cpp +msgid "Import" +msgstr "" + +#: editor/editor_feature_profile.cpp editor/editor_node.cpp +#: editor/project_export.cpp +msgid "Export" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Available Profiles" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Enabled Classes" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Class Options" +msgstr "سب سکریپشن بنائیں" + +#: editor/editor_feature_profile.cpp +msgid "New profile name:" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Erase Profile" +msgstr ".تمام کا انتخاب" + +#: editor/editor_feature_profile.cpp +msgid "Import Profile(s)" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Export Profile" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Manage Editor Feature Profiles" +msgstr "" + #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Select Current Folder" msgstr "" @@ -1414,8 +1640,8 @@ msgstr "" msgid "Open in File Manager" msgstr "سب سکریپشن بنائیں" -#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp -#: editor/project_manager.cpp +#: editor/editor_file_dialog.cpp editor/editor_node.cpp +#: editor/filesystem_dock.cpp editor/project_manager.cpp msgid "Show in File Manager" msgstr "" @@ -1474,7 +1700,7 @@ msgstr "" msgid "Go Up" msgstr "" -#: editor/editor_file_dialog.cpp +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Toggle Hidden Files" msgstr "" @@ -1508,12 +1734,17 @@ msgstr "" msgid "Next Folder" msgstr "" +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp +#, fuzzy +msgid "Go to parent folder." +msgstr "سب سکریپشن بنائیں" + #: editor/editor_file_dialog.cpp -msgid "Go to parent folder" +msgid "(Un)favorite current folder." msgstr "" #: editor/editor_file_dialog.cpp -msgid "(Un)favorite current folder." +msgid "Toggle visibility of hidden files." msgstr "" #: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp @@ -1530,6 +1761,7 @@ msgstr "" #: editor/editor_file_dialog.cpp editor/plugins/sprite_editor_plugin.cpp #: editor/plugins/style_box_editor_plugin.cpp +#: editor/plugins/theme_editor_plugin.cpp msgid "Preview:" msgstr "" @@ -1546,6 +1778,12 @@ msgid "ScanSources" msgstr "" #: editor/editor_file_system.cpp +msgid "" +"There are multiple importers for different types pointing to file %s, import " +"aborted" +msgstr "" + +#: editor/editor_file_system.cpp msgid "(Re)Importing Assets" msgstr "" @@ -1728,6 +1966,11 @@ msgstr "" msgid "Output:" msgstr "" +#: editor/editor_log.cpp editor/plugins/tile_map_editor_plugin.cpp +#, fuzzy +msgid "Copy Selection" +msgstr ".تمام کا انتخاب" + #: editor/editor_log.cpp editor/editor_profiler.cpp #: editor/editor_properties.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp @@ -1876,7 +2119,7 @@ msgstr "" #: editor/editor_node.cpp msgid "" "This resource belongs to a scene that was instanced or inherited.\n" -"Changes to it will not be kept when saving the current scene." +"Changes to it won't be kept when saving the current scene." msgstr "" #: editor/editor_node.cpp @@ -1887,7 +2130,7 @@ msgstr "" #: editor/editor_node.cpp msgid "" -"This scene was imported, so changes to it will not be kept.\n" +"This scene was imported, so changes to it won't be kept.\n" "Instancing it or inheriting will allow making changes to it.\n" "Please read the documentation relevant to importing scenes to better " "understand this workflow." @@ -1895,7 +2138,7 @@ msgstr "" #: editor/editor_node.cpp msgid "" -"This is a remote object so changes to it will not be kept.\n" +"This is a remote object, so changes to it won't be kept.\n" "Please read the documentation relevant to debugging to better understand " "this workflow." msgstr "" @@ -1905,27 +2148,6 @@ msgid "There is no defined scene to run." msgstr "" #: editor/editor_node.cpp -msgid "" -"No main scene has ever been defined, select one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" - -#: editor/editor_node.cpp -msgid "" -"Selected scene '%s' does not exist, select a valid one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" - -#: editor/editor_node.cpp -msgid "" -"Selected scene '%s' is not a scene file, select a valid one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" - -#: editor/editor_node.cpp msgid "Current scene was never saved, please save it prior to running." msgstr "" @@ -1933,7 +2155,7 @@ msgstr "" msgid "Could not start subprocess!" msgstr "" -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/filesystem_dock.cpp msgid "Open Scene" msgstr "" @@ -1942,6 +2164,10 @@ msgid "Open Base Scene" msgstr "" #: editor/editor_node.cpp +msgid "Quick Open..." +msgstr "" + +#: editor/editor_node.cpp msgid "Quick Open Scene..." msgstr "" @@ -2104,6 +2330,27 @@ msgid "Clear Recent Scenes" msgstr "" #: editor/editor_node.cpp +msgid "" +"No main scene has ever been defined, select one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"Selected scene '%s' does not exist, select a valid one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"Selected scene '%s' is not a scene file, select a valid one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" + +#: editor/editor_node.cpp msgid "Save Layout" msgstr "" @@ -2130,6 +2377,18 @@ msgstr "ایک مینو منظر چنیں" msgid "Close Tab" msgstr "" +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +msgid "Close Other Tabs" +msgstr "" + +#: editor/editor_node.cpp +msgid "Close Tabs to the Right" +msgstr "" + +#: editor/editor_node.cpp +msgid "Close All Tabs" +msgstr "" + #: editor/editor_node.cpp msgid "Switch Scene Tab" msgstr "" @@ -2252,10 +2511,6 @@ msgstr "" msgid "Project Settings" msgstr "" -#: editor/editor_node.cpp editor/project_export.cpp -msgid "Export" -msgstr "" - #: editor/editor_node.cpp editor/plugins/tile_set_editor_plugin.cpp msgid "Tools" msgstr "" @@ -2265,6 +2520,10 @@ msgid "Open Project Data Folder" msgstr "" #: editor/editor_node.cpp +msgid "Install Android Build Template" +msgstr "" + +#: editor/editor_node.cpp msgid "Quit to Project List" msgstr "" @@ -2369,6 +2628,10 @@ msgstr "" msgid "Open Editor Settings Folder" msgstr "" +#: editor/editor_node.cpp +msgid "Manage Editor Features" +msgstr "" + #: editor/editor_node.cpp editor/project_export.cpp msgid "Manage Export Templates" msgstr "" @@ -2381,6 +2644,7 @@ msgstr "" #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp #: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp #: editor/project_settings_editor.cpp editor/rename_dialog.cpp msgid "Search" msgstr "" @@ -2470,11 +2734,6 @@ msgstr "" msgid "Disable Update Spinner" msgstr "" -#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp -#: editor/project_manager.cpp -msgid "Import" -msgstr "" - #: editor/editor_node.cpp msgid "FileSystem" msgstr "" @@ -2500,6 +2759,28 @@ msgid "Don't Save" msgstr "" #: editor/editor_node.cpp +msgid "Android build template is missing, please install relevant templates." +msgstr "" + +#: editor/editor_node.cpp +#, fuzzy +msgid "Manage Templates" +msgstr ".تمام کا انتخاب" + +#: editor/editor_node.cpp +msgid "" +"This will install the Android project for custom builds.\n" +"Note that, in order to use it, it needs to be enabled per export preset." +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"Android build template is already installed and it won't be overwritten.\n" +"Remove the \"build\" directory manually before attempting this operation " +"again." +msgstr "" + +#: editor/editor_node.cpp msgid "Import Templates From ZIP File" msgstr "" @@ -2623,10 +2904,6 @@ msgid "Physics Frame %" msgstr "" #: editor/editor_profiler.cpp -msgid "Time:" -msgstr "" - -#: editor/editor_profiler.cpp msgid "Inclusive" msgstr "" @@ -2763,10 +3040,6 @@ msgid "Remove Item" msgstr "" #: editor/editor_run_native.cpp -msgid "Select device from the list" -msgstr "" - -#: editor/editor_run_native.cpp msgid "" "No runnable export preset found for this platform.\n" "Please add a runnable preset in the export menu." @@ -2800,6 +3073,10 @@ msgstr "" msgid "Select Node(s) to Import" msgstr "" +#: editor/editor_sub_scene.cpp editor/project_manager.cpp +msgid "Browse" +msgstr "" + #: editor/editor_sub_scene.cpp msgid "Scene Path:" msgstr "" @@ -2962,6 +3239,10 @@ msgid "SSL Handshake Error" msgstr "" #: editor/export_template_manager.cpp +msgid "Uncompressing Android Build Sources" +msgstr "" + +#: editor/export_template_manager.cpp msgid "Current Version:" msgstr "" @@ -2979,8 +3260,9 @@ msgid "Remove Template" msgstr ".تمام کا انتخاب" #: editor/export_template_manager.cpp -msgid "Select template file" -msgstr "" +#, fuzzy +msgid "Select Template File" +msgstr ".تمام کا انتخاب" #: editor/export_template_manager.cpp msgid "Export Template Manager" @@ -3037,7 +3319,7 @@ msgid "No name provided." msgstr "" #: editor/filesystem_dock.cpp -msgid "Provided name contains invalid characters" +msgid "Provided name contains invalid characters." msgstr "" #: editor/filesystem_dock.cpp @@ -3065,20 +3347,27 @@ msgid "Duplicating folder:" msgstr "" #: editor/filesystem_dock.cpp -msgid "Open Scene(s)" -msgstr "" +#, fuzzy +msgid "New Inherited Scene" +msgstr "سب سکریپشن بنائیں" + +#: editor/filesystem_dock.cpp +#, fuzzy +msgid "Open Scenes" +msgstr "سب سکریپشن بنائیں" #: editor/filesystem_dock.cpp msgid "Instance" msgstr "" #: editor/filesystem_dock.cpp -msgid "Add to favorites" -msgstr "" +#, fuzzy +msgid "Add to Favorites" +msgstr "Ù¾Ø³Ù†Ø¯ÛŒØ¯Û Ø§ÙˆÙ¾Ø± منتقل کریں" #: editor/filesystem_dock.cpp #, fuzzy -msgid "Remove from favorites" +msgid "Remove from Favorites" msgstr ".تمام کا انتخاب" #: editor/filesystem_dock.cpp @@ -3110,11 +3399,13 @@ msgstr "سب سکریپشن بنائیں" msgid "New Resource..." msgstr "" -#: editor/filesystem_dock.cpp editor/script_editor_debugger.cpp +#: editor/filesystem_dock.cpp editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_editor_debugger.cpp msgid "Expand All" msgstr "" -#: editor/filesystem_dock.cpp editor/script_editor_debugger.cpp +#: editor/filesystem_dock.cpp editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_editor_debugger.cpp msgid "Collapse All" msgstr "" @@ -3126,11 +3417,11 @@ msgid "Rename" msgstr "" #: editor/filesystem_dock.cpp -msgid "Previous Directory" +msgid "Previous Folder/File" msgstr "" #: editor/filesystem_dock.cpp -msgid "Next Directory" +msgid "Next Folder/File" msgstr "" #: editor/filesystem_dock.cpp @@ -3138,7 +3429,7 @@ msgid "Re-Scan Filesystem" msgstr "" #: editor/filesystem_dock.cpp -msgid "Toggle split mode" +msgid "Toggle Split Mode" msgstr "" #: editor/filesystem_dock.cpp @@ -3167,7 +3458,7 @@ msgstr "" msgid "Create Script" msgstr "" -#: editor/find_in_files.cpp +#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp msgid "Find in Files" msgstr "" @@ -3183,6 +3474,12 @@ msgstr "" msgid "Filters:" msgstr "" +#: editor/find_in_files.cpp +msgid "" +"Include the files with the following extensions. Add or remove them in " +"ProjectSettings." +msgstr "" + #: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp msgid "Find..." @@ -3620,7 +3917,7 @@ msgid "Open Animation Node" msgstr "" #: editor/plugins/animation_blend_space_2d_editor.cpp -msgid "Triangle already exists" +msgid "Triangle already exists." msgstr "" #: editor/plugins/animation_blend_space_2d_editor.cpp @@ -3697,7 +3994,6 @@ msgid "Node Moved" msgstr "ایکشن منتقل کریں" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Unable to connect, port may be in use or connection may be invalid." msgstr "" @@ -3766,8 +4062,9 @@ msgid "Edit Filtered Tracks:" msgstr "" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -msgid "Enable filtering" -msgstr "" +#, fuzzy +msgid "Enable Filtering" +msgstr ".Ù†ÙˆÙ¹ÙØ¦Ø± Ú©Û’ اکسٹنٹ Ú©Ùˆ تبدیل کیجیۓ" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Toggle Autoplay" @@ -3882,10 +4179,6 @@ msgid "Animation" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "New" -msgstr "" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Edit Transitions..." msgstr "" @@ -3902,11 +4195,11 @@ msgid "Autoplay on Load" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Onion Skinning" +msgid "Enable Onion Skinning" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Enable Onion Skinning" +msgid "Onion Skinning Options" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp @@ -4456,13 +4749,19 @@ msgid "Move CanvasItem" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"Children of containers have their anchors and margins values overridden by " +"their parent." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Presets for the anchors and margins values of a Control node." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "" -"Children of containers have their anchors and margins values overridden by " -"their parent." +"When active, moving Control nodes changes their anchors instead of their " +"margins." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4478,10 +4777,51 @@ msgid "Change Anchors" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Lock Selected" +msgstr ".تمام کا انتخاب" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Unlock Selected" +msgstr ".تمام کا انتخاب" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Group Selected" +msgstr ".تمام کا انتخاب" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Ungroup Selected" +msgstr ".تمام کا انتخاب" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Paste Pose" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Create Custom Bone(s) from Node(s)" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Clear Bones" +msgstr ".تمام کا انتخاب" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Make IK Chain" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Clear IK Chain" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "" "Warning: Children of a container get their position and size determined only " "by their parent." @@ -4555,7 +4895,7 @@ msgid "Snapping Options" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to grid" +msgid "Snap to Grid" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4576,31 +4916,31 @@ msgid "Use Pixel Snap" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Smart snapping" +msgid "Smart Snapping" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to parent" +msgid "Snap to Parent" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node anchor" +msgid "Snap to Node Anchor" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node sides" +msgid "Snap to Node Sides" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node center" +msgid "Snap to Node Center" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to other nodes" +msgid "Snap to Other Nodes" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to guides" +msgid "Snap to Guides" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4614,10 +4954,12 @@ msgid "Unlock the selected object (can be moved)." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Makes sure the object's children are not selectable." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Restores the object's children's ability to be selected." msgstr "" @@ -4631,14 +4973,6 @@ msgid "Show Bones" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Make IK Chain" -msgstr "" - -#: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Clear IK Chain" -msgstr "" - -#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Make Custom Bone(s) from Node(s)" msgstr "" @@ -4689,7 +5023,7 @@ msgid "Frame Selection" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Layout" +msgid "Preview Canvas Scale" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4741,6 +5075,10 @@ msgid "Divide grid step by 2" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Pan View" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Add %s" msgstr "" @@ -4763,8 +5101,9 @@ msgid "Error instancing scene from %s" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Change default type" -msgstr "" +#, fuzzy +msgid "Change Default Type" +msgstr ".Ù†ÙˆÙ¹ÙØ¦Ø± Ú©Û’ اکسٹنٹ Ú©Ùˆ تبدیل کیجیۓ" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "" @@ -4850,20 +5189,19 @@ msgid "Create Emission Points From Node" msgstr "" #: editor/plugins/curve_editor_plugin.cpp -msgid "Flat0" +msgid "Flat 0" msgstr "" #: editor/plugins/curve_editor_plugin.cpp -msgid "Flat1" +msgid "Flat 1" msgstr "" -#: editor/plugins/curve_editor_plugin.cpp -#, fuzzy -msgid "Ease in" -msgstr ".تمام کا انتخاب" +#: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp +msgid "Ease In" +msgstr "" -#: editor/plugins/curve_editor_plugin.cpp -msgid "Ease out" +#: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp +msgid "Ease Out" msgstr "" #: editor/plugins/curve_editor_plugin.cpp @@ -4883,24 +5221,25 @@ msgid "Load Curve Preset" msgstr "" #: editor/plugins/curve_editor_plugin.cpp -msgid "Add point" -msgstr "" +#, fuzzy +msgid "Add Point" +msgstr ".تمام کا انتخاب" #: editor/plugins/curve_editor_plugin.cpp #, fuzzy -msgid "Remove point" +msgid "Remove Point" msgstr ".تمام کا انتخاب" #: editor/plugins/curve_editor_plugin.cpp -msgid "Left linear" +msgid "Left Linear" msgstr "" #: editor/plugins/curve_editor_plugin.cpp -msgid "Right linear" +msgid "Right Linear" msgstr "" #: editor/plugins/curve_editor_plugin.cpp -msgid "Load preset" +msgid "Load Preset" msgstr "" #: editor/plugins/curve_editor_plugin.cpp @@ -4957,14 +5296,19 @@ msgid "This doesn't work on scene root!" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Trimesh Shape" +msgid "Create Trimesh Static Shape" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Shape" +msgid "Failed creating shapes!" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp +#, fuzzy +msgid "Create Convex Shape(s)" +msgstr "سب سکریپشن بنائیں" + +#: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Navigation Mesh" msgstr "" @@ -5014,16 +5358,13 @@ msgid "Create Trimesh Static Body" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Static Body" -msgstr "" - -#: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Trimesh Collision Sibling" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Collision Sibling" -msgstr "" +#, fuzzy +msgid "Create Convex Collision Sibling(s)" +msgstr "سب سکریپشن بنائیں" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Outline Mesh..." @@ -5176,20 +5517,20 @@ msgid "Create Navigation Polygon" msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp -msgid "Generating Visibility Rect" +#: editor/plugins/particles_editor_plugin.cpp +msgid "Convert to CPUParticles" msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp -msgid "Generate Visibility Rect" +msgid "Generating Visibility Rect" msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp -msgid "Can only set point into a ParticlesMaterial process material" +msgid "Generate Visibility Rect" msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp -#: editor/plugins/particles_editor_plugin.cpp -msgid "Convert to CPUParticles" +msgid "Can only set point into a ParticlesMaterial process material" msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp @@ -5331,7 +5672,7 @@ msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp editor/plugins/theme_editor_plugin.cpp -#: editor/project_export.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_export.cpp msgid "Options" msgstr "" @@ -5387,7 +5728,7 @@ msgstr "" #: editor/plugins/physical_bone_plugin.cpp #, fuzzy -msgid "Move joint" +msgid "Move Joint" msgstr ".تمام کا انتخاب" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5627,7 +5968,6 @@ msgid "Open in Editor" msgstr "" #: editor/plugins/resource_preloader_editor_plugin.cpp -#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Load Resource" msgstr "" @@ -5717,6 +6057,11 @@ msgid "%s Class Reference" msgstr "" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp +msgid "Find Next" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp msgid "Toggle alphabetical sorting of the method list." msgstr "" @@ -5798,10 +6143,6 @@ msgstr "" msgid "Close All" msgstr "" -#: editor/plugins/script_editor_plugin.cpp -msgid "Close Other Tabs" -msgstr "" - #: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp msgid "Run" msgstr "" @@ -5810,11 +6151,6 @@ msgstr "" msgid "Toggle Scripts Panel" msgstr "" -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/script_text_editor.cpp -msgid "Find Next" -msgstr "" - #: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp msgid "Step Over" msgstr "" @@ -5841,7 +6177,7 @@ msgid "Debug with External Editor" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Open Godot online documentation" +msgid "Open Godot online documentation." msgstr "" #: editor/plugins/script_editor_plugin.cpp @@ -5849,7 +6185,7 @@ msgid "Request Docs" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Help improve the Godot documentation by giving feedback" +msgid "Help improve the Godot documentation by giving feedback." msgstr "" #: editor/plugins/script_editor_plugin.cpp @@ -5875,10 +6211,12 @@ msgid "" msgstr "" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp msgid "Reload" msgstr "" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp msgid "Resave" msgstr "" @@ -5892,6 +6230,28 @@ msgid "Search Results" msgstr "سب سکریپشن بنائیں" #: editor/plugins/script_text_editor.cpp +msgid "Connections to method:" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Source" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Signal" +msgstr ".تمام کا انتخاب" + +#: editor/plugins/script_text_editor.cpp +msgid "Target" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "" +"Missing connected method '%s' for signal '%s' from node '%s' to node '%s'." +msgstr "" + +#: editor/plugins/script_text_editor.cpp msgid "Line" msgstr "" @@ -5904,10 +6264,6 @@ msgstr "" msgid "Go to Function" msgstr ".تمام کا انتخاب" -#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp -msgid "Standard" -msgstr "" - #: editor/plugins/script_text_editor.cpp msgid "Only resources from filesystem can be dropped." msgstr "" @@ -5940,6 +6296,11 @@ msgstr "" msgid "Syntax Highlighter" msgstr "" +#: editor/plugins/script_text_editor.cpp +#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp +msgid "Bookmarks" +msgstr "" + #: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" @@ -5967,6 +6328,23 @@ msgid "Toggle Comment" msgstr "" #: editor/plugins/script_text_editor.cpp +msgid "Toggle Bookmark" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Go to Next Bookmark" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +msgid "Go to Previous Bookmark" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Remove All Bookmarks" +msgstr ".تمام کا انتخاب" + +#: editor/plugins/script_text_editor.cpp msgid "Fold/Unfold Line" msgstr "" @@ -6041,6 +6419,12 @@ msgid "Contextual Help" msgstr "" #: editor/plugins/shader_editor_plugin.cpp +msgid "" +"This shader has been modified on on disk.\n" +"What action should be taken?" +msgstr "" + +#: editor/plugins/shader_editor_plugin.cpp msgid "Shader" msgstr "" @@ -6380,7 +6764,7 @@ msgid "Right View" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Switch Perspective/Orthogonal view" +msgid "Switch Perspective/Orthogonal View" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp @@ -6423,11 +6807,12 @@ msgid "Toggle Freelook" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Transform" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Snap object to floor" +msgid "Snap Object to Floor" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp @@ -6572,23 +6957,11 @@ msgid "Invalid geometry, can't replace by mesh." msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Invalid geometry, can't create polygon." -msgstr "" - -#: editor/plugins/sprite_editor_plugin.cpp -msgid "Invalid geometry, can't create collision polygon." -msgstr "" - -#: editor/plugins/sprite_editor_plugin.cpp -msgid "Invalid geometry, can't create light occluder." -msgstr "" - -#: editor/plugins/sprite_editor_plugin.cpp -msgid "Sprite" +msgid "Convert to Mesh2D" msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Convert to Mesh2D" +msgid "Invalid geometry, can't create polygon." msgstr "" #: editor/plugins/sprite_editor_plugin.cpp @@ -6597,15 +6970,27 @@ msgid "Convert to Polygon2D" msgstr ".تمام کا انتخاب" #: editor/plugins/sprite_editor_plugin.cpp +msgid "Invalid geometry, can't create collision polygon." +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp #, fuzzy msgid "Create CollisionPolygon2D Sibling" msgstr "سب سکریپشن بنائیں" #: editor/plugins/sprite_editor_plugin.cpp +msgid "Invalid geometry, can't create light occluder." +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp msgid "Create LightOccluder2D Sibling" msgstr "" #: editor/plugins/sprite_editor_plugin.cpp +msgid "Sprite" +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp msgid "Simplification: " msgstr "" @@ -6622,7 +7007,12 @@ msgid "Settings:" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "ERROR: Couldn't load frame resource!" +#, fuzzy +msgid "No Frames Selected" +msgstr ".تمام کا انتخاب" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Add %d Frame(s)" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp @@ -6630,6 +7020,10 @@ msgid "Add Frame" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "ERROR: Couldn't load frame resource!" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Resource clipboard is empty or not a texture!" msgstr "" @@ -6670,6 +7064,15 @@ msgid "Animation Frames:" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Add a Texture from File" +msgstr ".تمام کا انتخاب" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Add Frames from a Sprite Sheet" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Insert Empty (Before)" msgstr "" @@ -6688,6 +7091,26 @@ msgid "Move (After)" msgstr "ایکشن منتقل کریں" #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Select Frames" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Horizontal:" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Vertical:" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Select/Clear All Frames" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Create Frames from Sprite Sheet" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "SpriteFrames" msgstr "" @@ -6753,13 +7176,13 @@ msgstr "" msgid "Remove All Items" msgstr ".تمام کا انتخاب" -#: editor/plugins/theme_editor_plugin.cpp +#: editor/plugins/theme_editor_plugin.cpp editor/project_manager.cpp #, fuzzy msgid "Remove All" msgstr ".تمام کا انتخاب" #: editor/plugins/theme_editor_plugin.cpp -msgid "Edit theme..." +msgid "Edit Theme" msgstr "" #: editor/plugins/theme_editor_plugin.cpp @@ -6787,11 +7210,11 @@ msgid "Create From Current Editor Theme" msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "CheckBox Radio1" +msgid "Toggle Button" msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "CheckBox Radio2" +msgid "Disabled Button" msgstr "" #: editor/plugins/theme_editor_plugin.cpp @@ -6799,6 +7222,10 @@ msgid "Item" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +msgid "Disabled Item" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Check Item" msgstr "" @@ -6815,6 +7242,22 @@ msgid "Checked Radio Item" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +msgid "Named Sep." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Submenu" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Item 1" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Item 2" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Has" msgstr "" @@ -6823,7 +7266,7 @@ msgid "Many" msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "Has,Many,Options" +msgid "Disabled LineEdit" msgstr "" #: editor/plugins/theme_editor_plugin.cpp @@ -6839,6 +7282,18 @@ msgid "Tab 3" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +msgid "Editable Item" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Subtree" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Has,Many,Options" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Data Type:" msgstr "" @@ -6872,6 +7327,7 @@ msgid "Fix Invalid Tiles" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp +#: modules/gridmap/grid_map_editor_plugin.cpp #, fuzzy msgid "Cut Selection" msgstr ".تمام کا انتخاب" @@ -6913,36 +7369,45 @@ msgid "Mirror Y" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp +msgid "Disable Autotile" +msgstr "" + +#: editor/plugins/tile_map_editor_plugin.cpp +msgid "Enable Priority" +msgstr "" + +#: editor/plugins/tile_map_editor_plugin.cpp msgid "Paint Tile" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Pick Tile" +msgid "" +"Shift+RMB: Line Draw\n" +"Shift+Ctrl+RMB: Rectangle Paint" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy -msgid "Copy Selection" -msgstr ".تمام کا انتخاب" +msgid "Pick Tile" +msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Rotate left" +msgid "Rotate Left" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Rotate right" +msgid "Rotate Right" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Flip horizontally" +msgid "Flip Horizontally" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Flip vertically" +msgid "Flip Vertically" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Clear transform" +msgid "Clear Transform" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp @@ -6980,6 +7445,43 @@ msgid "Select the previous shape, subtile, or Tile." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Region Mode" +msgstr "ایکشن منتقل کریں" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Collision Mode" +msgstr "سب سکریپشن بنائیں" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Occlusion Mode" +msgstr "سب سکریپشن بنائیں" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Navigation Mode" +msgstr "سب سکریپشن بنائیں" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Bitmask Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Priority Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Icon Mode" +msgstr "ایکشن منتقل کریں" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Z Index Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp msgid "Copy bitmask." msgstr "" @@ -7066,6 +7568,7 @@ msgstr ".تمام کا انتخاب" msgid "" "LMB: Set bit on.\n" "RMB: Set bit off.\n" +"Shift+LMB: Set wildcard bit.\n" "Click on another Tile to edit it." msgstr "" @@ -7184,6 +7687,68 @@ msgid "TileSet" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add input +" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add output +" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add input port" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add output port" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Change input port type" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Change output port type" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Change input port name" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Change output port name" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Remove input port" +msgstr ".تمام کا انتخاب" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Remove output port" +msgstr ".تمام کا انتخاب" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Set expression" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Resize VisualShader node" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Set Uniform Name" msgstr "" @@ -7221,6 +7786,844 @@ msgid "Light" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Create Shader Node" +msgstr "سب سکریپشن بنائیں" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Color function." +msgstr ".تمام کا انتخاب" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Color operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Grayscale function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts HSV vector to RGB equivalent." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts RGB vector to HSV equivalent." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Sepia function." +msgstr ".تمام کا انتخاب" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Burn operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Darken operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Difference operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Dodge operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "HardLight operator" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Lighten operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Overlay operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Screen operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "SoftLight operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Color constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Color uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns an associated vector if the provided scalars are equal, greater or " +"less." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns an associated vector if the provided boolean value is true or false." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'camera' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'inv_camera' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'inv_projection' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'normal' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'projection' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'time' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'viewport_size' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'world' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'texture_pixel_size' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Input parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'binormal' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'fragcoord' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_coord' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_uv' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'side' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'tangent' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv2' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'vertex' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'view' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'albedo' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'attenuation' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'diffuse' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_color' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'roughness' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'specular' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'transmission' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'modelview' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_size' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'tangent' input parameter for vertex and fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_pass' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_coord' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_pixel_size' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_uv' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_alpha' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_height' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_uv' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_vec' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'normal' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'shadow_color' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'extra' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'projection' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'vertex' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'world' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'active' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'custom' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'custom_alpha' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'delta' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'emission_transform' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'index' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'lifetime' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'restart' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'time' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'transform' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'velocity' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Scalar function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Scalar operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "E constant (2.718282). Represents the base of the natural logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Epsilon constant (0.00001). Smallest possible scalar number." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Phi constant (1.618034). Golden ratio." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi/4 constant (0.785398) or 45 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi/2 constant (1.570796) or 90 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi constant (3.141593) or 180 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Tau constant (6.283185) or 360 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Sqrt2 constant (1.414214). Square root of 2." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the absolute value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-tangent of the parameters." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Finds the nearest integer that is greater than or equal to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Constrains a value to lie between two further values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts a quantity in radians to degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-e Exponential." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-2 Exponential." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Finds the nearest integer less than or equal to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Computes the fractional part of the argument." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the inverse of the square root of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Natural logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-2 logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the greater of two values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the lesser of two values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Linear interpolation between two scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the opposite value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 - scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns the value of the first parameter raised to the power of the second." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts a quantity in degrees to radians." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 / scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the nearest integer to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the nearest even integer to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Clamps the value between 0.0 and 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Extracts the sign of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the square root of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( scalar(edge0), scalar(edge1), scalar(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if x is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( scalar(edge), scalar(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the truncated value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Adds scalar to scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Divides scalar by scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies scalar by scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the remainder of the two scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Subtracts scalar from scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Scalar constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Scalar uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Perform the cubic texture lookup." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Perform the texture lookup." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Cubic texture uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "2D texture uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Transform function." +msgstr "سب سکریپشن بنائیں" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) Calculate the outer product of a pair of vectors.\n" +"\n" +"OuterProduct treats the first parameter 'c' as a column vector (matrix with " +"one column) and the second parameter 'r' as a row vector (matrix with one " +"row) and does a linear algebraic matrix multiply 'c * r', yielding a matrix " +"whose number of rows is the number of components in 'c' and whose number of " +"columns is the number of components in 'r'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Composes transform from four vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Decomposes transform to four vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the determinant of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the inverse of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the transpose of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies transform by transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies vector by transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Transform constant." +msgstr "سب سکریپشن بنائیں" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Transform uniform." +msgstr "سب سکریپشن بنائیں" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector function." +msgstr ".تمام کا انتخاب" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Composes vector from three scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Decomposes vector to three scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the cross product of two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the distance between two points." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the dot product of two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns a vector that points in the same direction as a reference vector. " +"The function has three vector parameters : N, the vector to orient, I, the " +"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 "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the length of a vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Linear interpolation between two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the normalize product of vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 - vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 / vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns a vector that points in the direction of reflection ( a : incident " +"vector, b : normal vector )." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns a vector that points in the direction of refraction." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( vector(edge0), vector(edge1), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if 'x' is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( scalar(edge0), scalar(edge1), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if 'x' is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( vector(edge), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( scalar(edge), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Adds vector to vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Divides vector by vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies vector by vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the remainder of the two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Subtracts vector from vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Custom Godot Shader Language expression, with custom amount of input and " +"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 "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns falloff based on the dot product of surface normal and view " +"direction of camera (pass associated inputs to it)." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) (Fragment/Light mode only) Scalar derivative function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) (Fragment/Light mode only) Vector derivative function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Derivative in 'x' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Derivative in 'x' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Derivative in 'y' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Derivative in 'y' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Sum of absolute derivative " +"in 'x' and 'y'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Sum of absolute derivative " +"in 'x' and 'y'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "VisualShader" msgstr "" @@ -7409,6 +8812,10 @@ msgid "Directory already contains a Godot project." msgstr "" #: editor/project_manager.cpp +msgid "New Game Project" +msgstr "" + +#: editor/project_manager.cpp msgid "Imported Project" msgstr "" @@ -7457,10 +8864,6 @@ msgid "Rename Project" msgstr ".تمام کا انتخاب" #: editor/project_manager.cpp -msgid "New Game Project" -msgstr "" - -#: editor/project_manager.cpp msgid "Import Existing Project" msgstr "" @@ -7490,10 +8893,6 @@ msgid "Project Name:" msgstr "" #: editor/project_manager.cpp -msgid "Create folder" -msgstr "" - -#: editor/project_manager.cpp msgid "Project Path:" msgstr "" @@ -7502,10 +8901,6 @@ msgid "Project Installation Path:" msgstr "" #: editor/project_manager.cpp -msgid "Browse" -msgstr "" - -#: editor/project_manager.cpp msgid "Renderer:" msgstr "" @@ -7558,8 +8953,8 @@ msgid "" "\n" "If you proceed with opening it, it will be converted to Godot's current " "configuration file format.\n" -"Warning: You will not be able to open the project with previous versions of " -"the engine anymore." +"Warning: You won't be able to open the project with previous versions of the " +"engine anymore." msgstr "" #: editor/project_manager.cpp @@ -7570,8 +8965,8 @@ msgid "" "%s\n" "\n" "Do you want to convert it?\n" -"Warning: You will not be able to open the project with previous versions of " -"the engine anymore." +"Warning: You won't be able to open the project with previous versions of the " +"engine anymore." msgstr "" #: editor/project_manager.cpp @@ -7583,7 +8978,7 @@ msgstr "" #: editor/project_manager.cpp msgid "" "Can't run project: no main scene defined.\n" -"Please edit the project and set the main scene in \"Project Settings\" under " +"Please edit the project and set the main scene in the Project Settings under " "the \"Application\" category." msgstr "" @@ -7594,23 +8989,37 @@ msgid "" msgstr "" #: editor/project_manager.cpp -msgid "Are you sure to run more than one project?" +msgid "Are you sure to run %d projects at once?" +msgstr "" + +#: editor/project_manager.cpp +msgid "" +"Remove %d projects from the list?\n" +"The project folders' contents won't be modified." msgstr "" #: editor/project_manager.cpp -msgid "Remove project from the list? (Folder contents will not be modified)" +msgid "" +"Remove this project from the list?\n" +"The project folder's contents won't be modified." +msgstr "" + +#: editor/project_manager.cpp +msgid "" +"Remove all missing projects from the list? (Folders contents will not be " +"modified)" msgstr "" #: editor/project_manager.cpp msgid "" "Language changed.\n" -"The UI will update next time the editor or project manager starts." +"The interface will update after restarting the editor or project manager." msgstr "" #: editor/project_manager.cpp msgid "" -"You are about the scan %s folders for existing Godot projects. Do you " -"confirm?" +"Are you sure to scan %s folders for existing Godot projects?\n" +"This could take a while." msgstr "" #: editor/project_manager.cpp @@ -7635,6 +9044,11 @@ msgstr "" #: editor/project_manager.cpp #, fuzzy +msgid "Remove Missing" +msgstr ".تمام کا انتخاب" + +#: editor/project_manager.cpp +#, fuzzy msgid "Templates" msgstr ".تمام کا انتخاب" @@ -7652,8 +9066,8 @@ msgstr "" #: editor/project_manager.cpp msgid "" -"You don't currently have any projects.\n" -"Would you like to explore the official example projects in the Asset Library?" +"You currently don't have any projects.\n" +"Would you like to explore official example projects in the Asset Library?" msgstr "" #: editor/project_settings_editor.cpp @@ -7679,7 +9093,7 @@ msgid "" msgstr "" #: editor/project_settings_editor.cpp -msgid "Action '%s' already exists!" +msgid "An action with the name '%s' already exists." msgstr "" #: editor/project_settings_editor.cpp @@ -7834,10 +9248,6 @@ msgid "" msgstr "" #: editor/project_settings_editor.cpp -msgid "Already existing" -msgstr "" - -#: editor/project_settings_editor.cpp msgid "Add Input Action" msgstr "" @@ -7902,7 +9312,7 @@ msgid "Override For..." msgstr "" #: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp -msgid "Editor must be restarted for changes to take effect" +msgid "The editor must be restarted for changes to take effect." msgstr "" #: editor/project_settings_editor.cpp @@ -7963,11 +9373,11 @@ msgid "Locales Filter" msgstr "" #: editor/project_settings_editor.cpp -msgid "Show all locales" +msgid "Show All Locales" msgstr "" #: editor/project_settings_editor.cpp -msgid "Show only selected locales" +msgid "Show Selected Locales Only" msgstr "" #: editor/project_settings_editor.cpp @@ -7983,14 +9393,6 @@ msgid "AutoLoad" msgstr "" #: editor/property_editor.cpp -msgid "Ease In" -msgstr "" - -#: editor/property_editor.cpp -msgid "Ease Out" -msgstr "" - -#: editor/property_editor.cpp msgid "Zero" msgstr "" @@ -8063,7 +9465,7 @@ msgid "Suffix" msgstr "" #: editor/rename_dialog.cpp -msgid "Advanced options" +msgid "Advanced Options" msgstr "" #: editor/rename_dialog.cpp @@ -8317,8 +9719,9 @@ msgid "User Interface" msgstr "" #: editor/scene_tree_dock.cpp -msgid "Custom Node" -msgstr "" +#, fuzzy +msgid "Other Node" +msgstr ".اینیمیشن Ú©ÛŒ کیز Ú©Ùˆ ڈیلیٹ کرو" #: editor/scene_tree_dock.cpp msgid "Can't operate on nodes from a foreign scene!" @@ -8360,7 +9763,7 @@ msgid "Clear Inheritance" msgstr "" #: editor/scene_tree_dock.cpp -msgid "Open documentation" +msgid "Open Documentation" msgstr "" #: editor/scene_tree_dock.cpp @@ -8388,7 +9791,7 @@ msgstr "" msgid "Save Branch as Scene" msgstr "" -#: editor/scene_tree_dock.cpp +#: editor/scene_tree_dock.cpp editor/script_editor_debugger.cpp msgid "Copy Node Path" msgstr "" @@ -8432,6 +9835,20 @@ msgid "Toggle Visible" msgstr "" #: editor/scene_tree_editor.cpp +#, fuzzy +msgid "Unlock Node" +msgstr "ایکشن منتقل کریں" + +#: editor/scene_tree_editor.cpp +msgid "Button Group" +msgstr "" + +#: editor/scene_tree_editor.cpp +#, fuzzy +msgid "(Connecting From)" +msgstr ".تمام کا انتخاب" + +#: editor/scene_tree_editor.cpp msgid "Node configuration warning:" msgstr "" @@ -8453,9 +9870,9 @@ msgid "" "Click to show groups dock." msgstr "" -#: editor/scene_tree_editor.cpp editor/script_create_dialog.cpp +#: editor/scene_tree_editor.cpp #, fuzzy -msgid "Open Script" +msgid "Open Script:" msgstr "سب سکریپشن بنائیں" #: editor/scene_tree_editor.cpp @@ -8501,71 +9918,72 @@ msgid "Select a Node" msgstr "" #: editor/script_create_dialog.cpp -msgid "Error loading template '%s'" +msgid "Path is empty." msgstr "" #: editor/script_create_dialog.cpp -msgid "Error - Could not create script in filesystem." +msgid "Filename is empty." msgstr "" #: editor/script_create_dialog.cpp -msgid "Error loading script from %s" +msgid "Path is not local." msgstr "" #: editor/script_create_dialog.cpp -msgid "N/A" +msgid "Invalid base path." msgstr "" #: editor/script_create_dialog.cpp -msgid "Open Script/Choose Location" +msgid "A directory with the same name exists." msgstr "" #: editor/script_create_dialog.cpp -msgid "Path is empty" +msgid "Invalid extension." msgstr "" #: editor/script_create_dialog.cpp -msgid "Filename is empty" +msgid "Wrong extension chosen." msgstr "" #: editor/script_create_dialog.cpp -msgid "Path is not local" +msgid "Error loading template '%s'" msgstr "" #: editor/script_create_dialog.cpp -msgid "Invalid base path" +msgid "Error - Could not create script in filesystem." msgstr "" #: editor/script_create_dialog.cpp -msgid "Directory of the same name exists" +msgid "Error loading script from %s" msgstr "" #: editor/script_create_dialog.cpp -msgid "File exists, will be reused" +msgid "N/A" msgstr "" #: editor/script_create_dialog.cpp -msgid "Invalid extension" +msgid "Open Script / Choose Location" msgstr "" #: editor/script_create_dialog.cpp -msgid "Wrong extension chosen" -msgstr "" +#, fuzzy +msgid "Open Script" +msgstr "سب سکریپشن بنائیں" #: editor/script_create_dialog.cpp -msgid "Invalid Path" +msgid "File exists, it will be reused." msgstr "" #: editor/script_create_dialog.cpp -msgid "Invalid class name" +msgid "Invalid class name." msgstr "" #: editor/script_create_dialog.cpp -msgid "Invalid inherited parent name or path" +msgid "Invalid inherited parent name or path." msgstr "" #: editor/script_create_dialog.cpp -msgid "Script valid" +msgid "Script is valid." msgstr "" #: editor/script_create_dialog.cpp @@ -8573,17 +9991,17 @@ msgid "Allowed: a-z, A-Z, 0-9 and _" msgstr "" #: editor/script_create_dialog.cpp -msgid "Built-in script (into scene file)" +msgid "Built-in script (into scene file)." msgstr "" #: editor/script_create_dialog.cpp #, fuzzy -msgid "Create new script file" +msgid "Will create a new script file." msgstr "سب سکریپشن بنائیں" #: editor/script_create_dialog.cpp #, fuzzy -msgid "Load existing script file" +msgid "Will load an existing script file." msgstr "سب سکریپشن بنائیں" #: editor/script_create_dialog.cpp @@ -8717,6 +10135,10 @@ msgstr "" msgid "Set From Tree" msgstr "" +#: editor/script_editor_debugger.cpp +msgid "Export measures as CSV" +msgstr "" + #: editor/settings_config_dialog.cpp #, fuzzy msgid "Erase Shortcut" @@ -8850,6 +10272,14 @@ msgid "GDNativeLibrary" msgstr "" #: modules/gdnative/gdnative_library_singleton_editor.cpp +msgid "Enabled GDNative Singleton" +msgstr "" + +#: modules/gdnative/gdnative_library_singleton_editor.cpp +msgid "Disabled GDNative Singleton" +msgstr "" + +#: modules/gdnative/gdnative_library_singleton_editor.cpp msgid "Library" msgstr "" @@ -8937,8 +10367,9 @@ msgid "GridMap Fill Selection" msgstr ".تمام کا انتخاب" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "GridMap Duplicate Selection" -msgstr "" +#, fuzzy +msgid "GridMap Paste Selection" +msgstr ".تمام کا انتخاب" #: modules/gridmap/grid_map_editor_plugin.cpp msgid "GridMap Paint" @@ -9005,18 +10436,6 @@ msgid "Cursor Clear Rotation" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Create Area" -msgstr "" - -#: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Create Exterior Connector" -msgstr "" - -#: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Erase Area" -msgstr "" - -#: modules/gridmap/grid_map_editor_plugin.cpp #, fuzzy msgid "Clear Selection" msgstr ".تمام کا انتخاب" @@ -9374,15 +10793,7 @@ msgid "Available Nodes:" msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Select or create a function to edit graph" -msgstr "" - -#: modules/visual_script/visual_script_editor.cpp -msgid "Edit Signal Arguments:" -msgstr "" - -#: modules/visual_script/visual_script_editor.cpp -msgid "Edit Variable:" +msgid "Select or create a function to edit its graph." msgstr "" #: modules/visual_script/visual_script_editor.cpp @@ -9513,6 +10924,19 @@ msgid "Debug keystore not configured in the Editor Settings nor in the preset." msgstr "" #: platform/android/export/export.cpp +msgid "Custom build requires a valid Android SDK path in Editor Settings." +msgstr "" + +#: platform/android/export/export.cpp +msgid "Invalid Android SDK path for custom build in Editor Settings." +msgstr "" + +#: platform/android/export/export.cpp +msgid "" +"Android project is not installed for compiling. Install from Editor menu." +msgstr "" + +#: platform/android/export/export.cpp msgid "Invalid public key for APK expansion." msgstr "" @@ -9520,6 +10944,34 @@ msgstr "" msgid "Invalid package name:" msgstr "" +#: platform/android/export/export.cpp +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 "" +"Android build version mismatch:\n" +" Template installed: %s\n" +" Godot Version: %s\n" +"Please reinstall Android build template from 'Project' menu." +msgstr "" + +#: platform/android/export/export.cpp +msgid "Building Android Project (gradle)" +msgstr "" + +#: 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 "" + +#: platform/android/export/export.cpp +msgid "No build apk generated at: " +msgstr "" + #: platform/iphone/export/export.cpp msgid "Identifier is missing." msgstr "" @@ -9773,27 +11225,27 @@ msgid "ARVRCamera must have an ARVROrigin node as its parent" msgstr "" #: scene/3d/arvr_nodes.cpp -msgid "ARVRController must have an ARVROrigin node as its parent" +msgid "ARVRController must have an ARVROrigin node as its parent." msgstr "" #: scene/3d/arvr_nodes.cpp msgid "" -"The controller id must not be 0 or this controller will not be bound to an " -"actual controller" +"The controller ID must not be 0 or this controller won't be bound to an " +"actual controller." msgstr "" #: scene/3d/arvr_nodes.cpp -msgid "ARVRAnchor must have an ARVROrigin node as its parent" +msgid "ARVRAnchor must have an ARVROrigin node as its parent." msgstr "" #: scene/3d/arvr_nodes.cpp msgid "" -"The anchor id must not be 0 or this anchor will not be bound to an actual " -"anchor" +"The anchor ID must not be 0 or this anchor won't be bound to an actual " +"anchor." msgstr "" #: scene/3d/arvr_nodes.cpp -msgid "ARVROrigin requires an ARVRCamera child node" +msgid "ARVROrigin requires an ARVRCamera child node." msgstr "" #: scene/3d/baked_lightmap.cpp @@ -9863,8 +11315,8 @@ msgstr "" #: scene/3d/cpu_particles.cpp msgid "" -"CPUParticles animation requires the usage of a SpatialMaterial with " -"\"Billboard Particles\" enabled." +"CPUParticles animation requires the usage of a SpatialMaterial whose " +"Billboard Mode is set to \"Particle Billboard\"." msgstr "" #: scene/3d/gi_probe.cpp @@ -9901,8 +11353,8 @@ msgstr "" #: scene/3d/particles.cpp msgid "" -"Particles animation requires the usage of a SpatialMaterial with \"Billboard " -"Particles\" enabled." +"Particles animation requires the usage of a SpatialMaterial whose Billboard " +"Mode is set to \"Particle Billboard\"." msgstr "" #: scene/3d/path.cpp @@ -9927,7 +11379,7 @@ msgid "Path property must point to a valid Spatial node to work." msgstr "" #: scene/3d/soft_body.cpp -msgid "This body will be ignored until you set a mesh" +msgid "This body will be ignored until you set a mesh." msgstr "" #: scene/3d/soft_body.cpp @@ -10024,7 +11476,7 @@ msgstr "" msgid "" "Container by itself serves no purpose unless a script configures it's " "children placement behavior.\n" -"If you dont't intend to add a script, then please use a plain 'Control' node " +"If you don't intend to add a script, then please use a plain 'Control' node " "instead." msgstr "" @@ -10036,11 +11488,6 @@ msgstr "" msgid "Please Confirm..." msgstr "" -#: scene/gui/file_dialog.cpp -#, fuzzy -msgid "Go to parent folder." -msgstr "سب سکریپشن بنائیں" - #: scene/gui/popup.cpp msgid "" "Popups will hide by default unless you call popup() or any of the popup*() " @@ -10113,6 +11560,14 @@ msgstr "" msgid "Varyings can only be assigned in vertex function." msgstr "" +#: servers/visual/shader_language.cpp +msgid "Constants cannot be modified." +msgstr "" + +#, fuzzy +#~ msgid "Ease in" +#~ msgstr ".تمام کا انتخاب" + #, fuzzy #~ msgid "Remove Split" #~ msgstr ".تمام کا انتخاب" diff --git a/editor/translations/vi.po b/editor/translations/vi.po index d18046ad52..54ea3e786e 100644 --- a/editor/translations/vi.po +++ b/editor/translations/vi.po @@ -76,6 +76,14 @@ msgstr "" msgid "Mirror" msgstr "" +#: editor/animation_bezier_editor.cpp editor/editor_profiler.cpp +msgid "Time:" +msgstr "" + +#: editor/animation_bezier_editor.cpp +msgid "Value:" +msgstr "" + #: editor/animation_bezier_editor.cpp #, fuzzy msgid "Insert Key Here" @@ -164,16 +172,21 @@ msgstr "Ngưng chạy animation. (S)" #: editor/animation_track_editor.cpp #, fuzzy -msgid "Add Track" -msgstr "Thêm Track Animation" +msgid "Animation length (frames)" +msgstr "Äá»™ dà i Animation (giây)." #: editor/animation_track_editor.cpp #, fuzzy -msgid "Animation Length Time (seconds)" +msgid "Animation length (seconds)" msgstr "Äá»™ dà i Animation (giây)." #: editor/animation_track_editor.cpp #, fuzzy +msgid "Add Track" +msgstr "Thêm Track Animation" + +#: editor/animation_track_editor.cpp +#, fuzzy msgid "Animation Looping" msgstr "Phóng Animation." @@ -306,11 +319,13 @@ msgid "Create %d NEW tracks and insert keys?" msgstr "Tạo %d track má»›i và chèn key?" #: editor/animation_track_editor.cpp editor/create_dialog.cpp -#: editor/editor_audio_buses.cpp editor/editor_plugin_settings.cpp -#: editor/plugin_config_dialog.cpp +#: editor/editor_audio_buses.cpp editor/editor_feature_profile.cpp +#: editor/editor_plugin_settings.cpp editor/plugin_config_dialog.cpp #: editor/plugins/abstract_polygon_2d_editor.cpp #: editor/plugins/mesh_instance_editor_plugin.cpp -#: editor/plugins/particles_editor_plugin.cpp editor/script_create_dialog.cpp +#: editor/plugins/particles_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_create_dialog.cpp msgid "Create" msgstr "Tạo" @@ -427,6 +442,23 @@ msgid "" msgstr "" #: editor/animation_track_editor.cpp +msgid "" +"This animation belongs to an imported scene, so changes to imported tracks " +"will not be saved.\n" +"\n" +"To enable the ability to add custom tracks, navigate to the scene's import " +"settings and set\n" +"\"Animation > Storage\" to \"Files\", enable \"Animation > Keep Custom Tracks" +"\", then re-import.\n" +"Alternatively, use an import preset that imports animations to separate " +"files." +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Warning: Editing imported animation" +msgstr "" + +#: editor/animation_track_editor.cpp msgid "Only show tracks from nodes selected in tree." msgstr "" @@ -566,7 +598,8 @@ msgstr "Tỉ lệ Scale:" msgid "Select tracks to copy:" msgstr "" -#: editor/animation_track_editor.cpp editor/editor_properties.cpp +#: editor/animation_track_editor.cpp editor/editor_log.cpp +#: editor/editor_properties.cpp #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp @@ -636,6 +669,11 @@ msgstr "Thay thế tất cả" msgid "Selection Only" msgstr "Chỉ lá»±a chá»n" +#: editor/code_editor.cpp editor/plugins/script_text_editor.cpp +#: editor/plugins/text_editor.cpp +msgid "Standard" +msgstr "" + #: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/texture_region_editor_plugin.cpp #: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp @@ -661,21 +699,38 @@ msgid "Line and column numbers." msgstr "" #: editor/connections_dialog.cpp -msgid "Method in target Node must be specified!" +#, fuzzy +msgid "Method in target node must be specified." msgstr "Cách thức trong Node được chá»n phải được ghi rõ!" #: editor/connections_dialog.cpp +#, fuzzy msgid "" -"Target method not found! Specify a valid method or attach a script to target " -"Node." +"Target method not found. Specify a valid method or attach a script to the " +"target node." msgstr "" "Cách thức cá»§a đối tượng không tìm thấy! ghi rõ má»™t cách thức hợp lệ hoặc " "Ä‘Ãnh kèm má»™t script cho đối tượng Node." #: editor/connections_dialog.cpp -msgid "Connect To Node:" +#, fuzzy +msgid "Connect to Node:" msgstr "Kết nối đến Node:" +#: editor/connections_dialog.cpp +#, fuzzy +msgid "Connect to Script:" +msgstr "Không thể kết nối tá»›i host:" + +#: editor/connections_dialog.cpp +#, fuzzy +msgid "From Signal:" +msgstr "Äang kết nối Signal:" + +#: editor/connections_dialog.cpp +msgid "Scene does not contain any script." +msgstr "" + #: editor/connections_dialog.cpp editor/editor_autoload_settings.cpp #: editor/groups_editor.cpp editor/plugins/item_list_editor_plugin.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_settings_editor.cpp @@ -683,10 +738,12 @@ msgid "Add" msgstr "Thêm" #: editor/connections_dialog.cpp editor/dependency_editor.cpp -#: editor/groups_editor.cpp editor/plugins/animation_player_editor_plugin.cpp +#: editor/editor_feature_profile.cpp editor/groups_editor.cpp +#: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp #: editor/plugins/resource_preloader_editor_plugin.cpp -#: editor/plugins/theme_editor_plugin.cpp editor/project_manager.cpp +#: editor/plugins/theme_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_manager.cpp #: editor/project_settings_editor.cpp msgid "Remove" msgstr "Xóa" @@ -701,13 +758,8 @@ msgid "Extra Call Arguments:" msgstr "" #: editor/connections_dialog.cpp -#, fuzzy -msgid "Path to Node:" -msgstr "ÄÆ°á»ng đến Node:" - -#: editor/connections_dialog.cpp -msgid "Make Function" -msgstr "Tạo Function" +msgid "Advanced" +msgstr "" #: editor/connections_dialog.cpp #, fuzzy @@ -715,9 +767,23 @@ msgid "Deferred" msgstr "Hoãn lại" #: editor/connections_dialog.cpp +msgid "" +"Defers the signal, storing it in a queue and only firing it at idle time." +msgstr "" + +#: editor/connections_dialog.cpp msgid "Oneshot" msgstr "" +#: editor/connections_dialog.cpp +msgid "Disconnects the signal after its first emission." +msgstr "" + +#: editor/connections_dialog.cpp +#, fuzzy +msgid "Cannot connect signal" +msgstr "Äang kết nối Signal:" + #: editor/connections_dialog.cpp editor/dependency_editor.cpp #: editor/export_template_manager.cpp editor/groups_editor.cpp #: editor/plugins/animation_player_editor_plugin.cpp @@ -760,12 +826,12 @@ msgstr "Há»§y kết nối" #: editor/connections_dialog.cpp #, fuzzy -msgid "Connect Signal: " +msgid "Connect a Signal to a Method" msgstr "Äang kết nối Signal:" #: editor/connections_dialog.cpp #, fuzzy -msgid "Edit Connection: " +msgid "Edit Connection:" msgstr "Sá»a Curve đã chá»n" #: editor/connections_dialog.cpp @@ -799,7 +865,6 @@ msgid "Change %s Type" msgstr "Äổi %s Type" #: editor/create_dialog.cpp editor/project_settings_editor.cpp -#: modules/visual_script/visual_script_editor.cpp msgid "Change" msgstr "Äổi" @@ -830,7 +895,8 @@ msgid "Matches:" msgstr "Phù hợp:" #: editor/create_dialog.cpp editor/plugin_config_dialog.cpp -#: editor/plugins/asset_library_editor_plugin.cpp editor/property_selector.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/property_selector.cpp #: modules/visual_script/visual_script_property_selector.cpp msgid "Description:" msgstr "Mô tả:" @@ -847,13 +913,13 @@ msgstr "Phần phụ thuá»™c cho:" #: editor/dependency_editor.cpp msgid "" "Scene '%s' is currently being edited.\n" -"Changes will not take effect unless reloaded." +"Changes will only take effect when reloaded." msgstr "" #: editor/dependency_editor.cpp msgid "" "Resource '%s' is in use.\n" -"Changes will take effect when reloaded." +"Changes will only take effect when reloaded." msgstr "" #: editor/dependency_editor.cpp @@ -944,21 +1010,14 @@ msgid "Permanently delete %d item(s)? (No undo!)" msgstr "" #: editor/dependency_editor.cpp -msgid "Owns" -msgstr "" - -#: editor/dependency_editor.cpp -msgid "Resources Without Explicit Ownership:" -msgstr "" +#, fuzzy +msgid "Show Dependencies" +msgstr "Phần phụ thuá»™c cho:" #: editor/dependency_editor.cpp editor/editor_node.cpp msgid "Orphan Resource Explorer" msgstr "" -#: editor/dependency_editor.cpp -msgid "Delete selected files?" -msgstr "" - #: editor/dependency_editor.cpp editor/editor_audio_buses.cpp #: editor/editor_file_dialog.cpp editor/editor_node.cpp #: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp @@ -967,6 +1026,14 @@ msgstr "" msgid "Delete" msgstr "Xóa" +#: editor/dependency_editor.cpp +msgid "Owns" +msgstr "" + +#: editor/dependency_editor.cpp +msgid "Resources Without Explicit Ownership:" +msgstr "" + #: editor/dictionary_property_edit.cpp msgid "Change Dictionary Key" msgstr "" @@ -1076,7 +1143,7 @@ msgstr "" msgid "Success!" msgstr "" -#: editor/editor_asset_installer.cpp +#: editor/editor_asset_installer.cpp editor/editor_node.cpp #: editor/plugins/asset_library_editor_plugin.cpp msgid "Install" msgstr "" @@ -1203,7 +1270,11 @@ msgid "Open Audio Bus Layout" msgstr "" #: editor/editor_audio_buses.cpp -msgid "There is no 'res://default_bus_layout.tres' file." +msgid "There is no '%s' file." +msgstr "" + +#: editor/editor_audio_buses.cpp editor/plugins/canvas_item_editor_plugin.cpp +msgid "Layout" msgstr "" #: editor/editor_audio_buses.cpp @@ -1257,15 +1328,19 @@ msgid "Valid characters:" msgstr "" #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing engine class name." +msgid "Must not collide with an existing engine class name." msgstr "" #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing buit-in type name." +msgid "Must not collide with an existing buit-in type name." msgstr "" #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing global constant name." +msgid "Must not collide with an existing global constant name." +msgstr "" + +#: editor/editor_autoload_settings.cpp +msgid "Keyword cannot be used as an autoload name." msgstr "" #: editor/editor_autoload_settings.cpp @@ -1296,11 +1371,12 @@ msgstr "Mở" msgid "Rearrange Autoloads" msgstr "Sắp xếp lại Autoloads" -#: editor/editor_autoload_settings.cpp -msgid "Invalid Path." +#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp +#, fuzzy +msgid "Invalid path." msgstr "ÄÆ°á»ng dẫn sai." -#: editor/editor_autoload_settings.cpp +#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp msgid "File does not exist." msgstr "File không tồn tại." @@ -1351,7 +1427,7 @@ msgid "[unsaved]" msgstr "[chưa save]" #: editor/editor_dir_dialog.cpp -msgid "Please select a base directory first" +msgid "Please select a base directory first." msgstr "" #: editor/editor_dir_dialog.cpp @@ -1359,7 +1435,8 @@ msgid "Choose a Directory" msgstr "" #: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp -#: editor/filesystem_dock.cpp scene/gui/file_dialog.cpp +#: editor/filesystem_dock.cpp editor/project_manager.cpp +#: scene/gui/file_dialog.cpp msgid "Create Folder" msgstr "Tạo Folder" @@ -1427,6 +1504,169 @@ msgstr "" msgid "Template file not found:" msgstr "" +#: editor/editor_feature_profile.cpp +msgid "3D Editor" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Script Editor" +msgstr "Tạo Script" + +#: editor/editor_feature_profile.cpp +msgid "Asset Library" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Scene Tree Editing" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Import Dock" +msgstr "Nháºp từ bên ngoà i" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Node Dock" +msgstr "Äổi tên" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Filesystem Dock" +msgstr "Quét lại hệ thống táºp tin" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Erase profile '%s'? (no undo)" +msgstr "Thay thế tất cả" + +#: editor/editor_feature_profile.cpp +msgid "Profile must be a valid filename and must not contain '.'" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Profile with this name already exists." +msgstr "Äã có má»™t file hoặc folder trùng tên." + +#: editor/editor_feature_profile.cpp +msgid "(Editor Disabled, Properties Disabled)" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "(Properties Disabled)" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "(Editor Disabled)" +msgstr "Chỉnh sá»a Variable:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Class Options:" +msgstr "Mô tả:" + +#: editor/editor_feature_profile.cpp +msgid "Enable Contextual Editor" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enabled Properties:" +msgstr "Thu gá»n tất cả" + +#: editor/editor_feature_profile.cpp +msgid "Enabled Features:" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enabled Classes:" +msgstr "Tìm Class" + +#: editor/editor_feature_profile.cpp +msgid "File '%s' format is invalid, import aborted." +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "" +"Profile '%s' already exists. Remote it first before importing, import " +"aborted." +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Error saving profile to path: '%s'." +msgstr "Lá»—i tải font." + +#: editor/editor_feature_profile.cpp +msgid "Unset" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Current Profile" +msgstr "Phiên bản hiện tại:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Make Current" +msgstr "Hiện tại:" + +#: editor/editor_feature_profile.cpp +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "New" +msgstr "" + +#: editor/editor_feature_profile.cpp editor/editor_node.cpp +#: editor/plugins/asset_library_editor_plugin.cpp editor/project_manager.cpp +msgid "Import" +msgstr "Nháºp từ bên ngoà i" + +#: editor/editor_feature_profile.cpp editor/editor_node.cpp +#: editor/project_export.cpp +msgid "Export" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Available Profiles" +msgstr "Nodes khả dụng:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enabled Classes" +msgstr "Tìm Class" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Class Options" +msgstr "Mô tả:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "New profile name:" +msgstr "Tên má»›i:" + +#: editor/editor_feature_profile.cpp +msgid "Erase Profile" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Import Profile(s)" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Export Profile" +msgstr "Nháºp từ Node:" + +#: editor/editor_feature_profile.cpp +msgid "Manage Editor Feature Profiles" +msgstr "" + #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Select Current Folder" msgstr "Chá»n Folder hiện tại" @@ -1449,8 +1689,8 @@ msgstr "Copy ÄÆ°á»ng dẫn" msgid "Open in File Manager" msgstr "Mở trong Trình quản là file" -#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp -#: editor/project_manager.cpp +#: editor/editor_file_dialog.cpp editor/editor_node.cpp +#: editor/filesystem_dock.cpp editor/project_manager.cpp #, fuzzy msgid "Show in File Manager" msgstr "Hiển thị trong Trình quản là file" @@ -1512,7 +1752,7 @@ msgstr "Tiến tá»›i" msgid "Go Up" msgstr "Äi Lên" -#: editor/editor_file_dialog.cpp +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Toggle Hidden Files" msgstr "Báºt tắt File ẩn" @@ -1546,9 +1786,9 @@ msgstr "Thư mục trước" msgid "Next Folder" msgstr "Tạo Folder" -#: editor/editor_file_dialog.cpp +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp #, fuzzy -msgid "Go to parent folder" +msgid "Go to parent folder." msgstr "Äến folder parent" #: editor/editor_file_dialog.cpp @@ -1556,6 +1796,11 @@ msgstr "Äến folder parent" msgid "(Un)favorite current folder." msgstr "Không thể tạo folder." +#: editor/editor_file_dialog.cpp +#, fuzzy +msgid "Toggle visibility of hidden files." +msgstr "Báºt tắt File ẩn" + #: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp msgid "View items as a grid of thumbnails." msgstr "" @@ -1570,6 +1815,7 @@ msgstr "Những địa chỉ & File:" #: editor/editor_file_dialog.cpp editor/plugins/sprite_editor_plugin.cpp #: editor/plugins/style_box_editor_plugin.cpp +#: editor/plugins/theme_editor_plugin.cpp msgid "Preview:" msgstr "Xem thá»:" @@ -1587,6 +1833,12 @@ msgid "ScanSources" msgstr "" #: editor/editor_file_system.cpp +msgid "" +"There are multiple importers for different types pointing to file %s, import " +"aborted" +msgstr "" + +#: editor/editor_file_system.cpp msgid "(Re)Importing Assets" msgstr "" @@ -1775,6 +2027,11 @@ msgstr "" msgid "Output:" msgstr "" +#: editor/editor_log.cpp editor/plugins/tile_map_editor_plugin.cpp +#, fuzzy +msgid "Copy Selection" +msgstr "Di chuyển Lá»±a chá»n" + #: editor/editor_log.cpp editor/editor_profiler.cpp #: editor/editor_properties.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp @@ -1922,7 +2179,7 @@ msgstr "" #: editor/editor_node.cpp msgid "" "This resource belongs to a scene that was instanced or inherited.\n" -"Changes to it will not be kept when saving the current scene." +"Changes to it won't be kept when saving the current scene." msgstr "" #: editor/editor_node.cpp @@ -1933,7 +2190,7 @@ msgstr "" #: editor/editor_node.cpp msgid "" -"This scene was imported, so changes to it will not be kept.\n" +"This scene was imported, so changes to it won't be kept.\n" "Instancing it or inheriting will allow making changes to it.\n" "Please read the documentation relevant to importing scenes to better " "understand this workflow." @@ -1941,7 +2198,7 @@ msgstr "" #: editor/editor_node.cpp msgid "" -"This is a remote object so changes to it will not be kept.\n" +"This is a remote object, so changes to it won't be kept.\n" "Please read the documentation relevant to debugging to better understand " "this workflow." msgstr "" @@ -1951,27 +2208,6 @@ msgid "There is no defined scene to run." msgstr "" #: editor/editor_node.cpp -msgid "" -"No main scene has ever been defined, select one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" - -#: editor/editor_node.cpp -msgid "" -"Selected scene '%s' does not exist, select a valid one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" - -#: editor/editor_node.cpp -msgid "" -"Selected scene '%s' is not a scene file, select a valid one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" - -#: editor/editor_node.cpp msgid "Current scene was never saved, please save it prior to running." msgstr "Scene hiện tại chưa được lưu, hãy lưu nó trước khi chạy." @@ -1979,7 +2215,7 @@ msgstr "Scene hiện tại chưa được lưu, hãy lưu nó trước khi chạ msgid "Could not start subprocess!" msgstr "" -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/filesystem_dock.cpp msgid "Open Scene" msgstr "Mở Scene" @@ -1988,6 +2224,11 @@ msgid "Open Base Scene" msgstr "Mở Scene Mẫu" #: editor/editor_node.cpp +#, fuzzy +msgid "Quick Open..." +msgstr "Mở Scene nhanh..." + +#: editor/editor_node.cpp msgid "Quick Open Scene..." msgstr "Mở Scene nhanh..." @@ -2156,6 +2397,27 @@ msgid "Clear Recent Scenes" msgstr "" #: editor/editor_node.cpp +msgid "" +"No main scene has ever been defined, select one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"Selected scene '%s' does not exist, select a valid one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"Selected scene '%s' is not a scene file, select a valid one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" + +#: editor/editor_node.cpp msgid "Save Layout" msgstr "" @@ -2183,6 +2445,19 @@ msgstr "" msgid "Close Tab" msgstr "Äóng tất cả Tab" +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +msgid "Close Other Tabs" +msgstr "Äóng tất cả Tab" + +#: editor/editor_node.cpp +msgid "Close Tabs to the Right" +msgstr "" + +#: editor/editor_node.cpp +#, fuzzy +msgid "Close All Tabs" +msgstr "Äóng tất cả" + #: editor/editor_node.cpp msgid "Switch Scene Tab" msgstr "" @@ -2306,10 +2581,6 @@ msgstr "" msgid "Project Settings" msgstr "" -#: editor/editor_node.cpp editor/project_export.cpp -msgid "Export" -msgstr "" - #: editor/editor_node.cpp editor/plugins/tile_set_editor_plugin.cpp msgid "Tools" msgstr "" @@ -2320,6 +2591,10 @@ msgid "Open Project Data Folder" msgstr "Chá»n folder nà y" #: editor/editor_node.cpp +msgid "Install Android Build Template" +msgstr "" + +#: editor/editor_node.cpp msgid "Quit to Project List" msgstr "" @@ -2424,6 +2699,10 @@ msgstr "" msgid "Open Editor Settings Folder" msgstr "" +#: editor/editor_node.cpp +msgid "Manage Editor Features" +msgstr "" + #: editor/editor_node.cpp editor/project_export.cpp msgid "Manage Export Templates" msgstr "" @@ -2436,6 +2715,7 @@ msgstr "" #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp #: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp #: editor/project_settings_editor.cpp editor/rename_dialog.cpp msgid "Search" msgstr "" @@ -2525,11 +2805,6 @@ msgstr "" msgid "Disable Update Spinner" msgstr "" -#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp -#: editor/project_manager.cpp -msgid "Import" -msgstr "Nháºp từ bên ngoà i" - #: editor/editor_node.cpp msgid "FileSystem" msgstr "" @@ -2556,6 +2831,28 @@ msgid "Don't Save" msgstr "" #: editor/editor_node.cpp +msgid "Android build template is missing, please install relevant templates." +msgstr "" + +#: editor/editor_node.cpp +#, fuzzy +msgid "Manage Templates" +msgstr "Khung project" + +#: editor/editor_node.cpp +msgid "" +"This will install the Android project for custom builds.\n" +"Note that, in order to use it, it needs to be enabled per export preset." +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"Android build template is already installed and it won't be overwritten.\n" +"Remove the \"build\" directory manually before attempting this operation " +"again." +msgstr "" + +#: editor/editor_node.cpp msgid "Import Templates From ZIP File" msgstr "Nháºp Template từ file ZIP" @@ -2678,10 +2975,6 @@ msgid "Physics Frame %" msgstr "" #: editor/editor_profiler.cpp -msgid "Time:" -msgstr "" - -#: editor/editor_profiler.cpp msgid "Inclusive" msgstr "" @@ -2817,10 +3110,6 @@ msgid "Remove Item" msgstr "" #: editor/editor_run_native.cpp -msgid "Select device from the list" -msgstr "" - -#: editor/editor_run_native.cpp msgid "" "No runnable export preset found for this platform.\n" "Please add a runnable preset in the export menu." @@ -2854,6 +3143,10 @@ msgstr "" msgid "Select Node(s) to Import" msgstr "Chá»n Node để Nháºp" +#: editor/editor_sub_scene.cpp editor/project_manager.cpp +msgid "Browse" +msgstr "" + #: editor/editor_sub_scene.cpp msgid "Scene Path:" msgstr "" @@ -3016,6 +3309,10 @@ msgid "SSL Handshake Error" msgstr "Lá»—i SSL Handshake" #: editor/export_template_manager.cpp +msgid "Uncompressing Android Build Sources" +msgstr "" + +#: editor/export_template_manager.cpp msgid "Current Version:" msgstr "Phiên bản hiện tại:" @@ -3032,7 +3329,8 @@ msgid "Remove Template" msgstr "Xóa Template" #: editor/export_template_manager.cpp -msgid "Select template file" +#, fuzzy +msgid "Select Template File" msgstr "Chá»n file template" #: editor/export_template_manager.cpp @@ -3089,8 +3387,9 @@ msgid "No name provided." msgstr "" #: editor/filesystem_dock.cpp -msgid "Provided name contains invalid characters" -msgstr "" +#, fuzzy +msgid "Provided name contains invalid characters." +msgstr "Tên có kà tá»± không hợp lệ." #: editor/filesystem_dock.cpp msgid "Name contains invalid characters." @@ -3117,7 +3416,13 @@ msgid "Duplicating folder:" msgstr "Tạo bản sao folder:" #: editor/filesystem_dock.cpp -msgid "Open Scene(s)" +#, fuzzy +msgid "New Inherited Scene" +msgstr "Tạo Scene Con..." + +#: editor/filesystem_dock.cpp +#, fuzzy +msgid "Open Scenes" msgstr "Mở Scene" #: editor/filesystem_dock.cpp @@ -3126,12 +3431,12 @@ msgstr "Thêm và o scene" #: editor/filesystem_dock.cpp #, fuzzy -msgid "Add to favorites" +msgid "Add to Favorites" msgstr "Ưa thÃch:" #: editor/filesystem_dock.cpp #, fuzzy -msgid "Remove from favorites" +msgid "Remove from Favorites" msgstr "Xóa khá»i Nhóm" #: editor/filesystem_dock.cpp @@ -3163,12 +3468,14 @@ msgstr "Tạo Script" msgid "New Resource..." msgstr "" -#: editor/filesystem_dock.cpp editor/script_editor_debugger.cpp +#: editor/filesystem_dock.cpp editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_editor_debugger.cpp #, fuzzy msgid "Expand All" msgstr "Mở rá»™ng tất cả" -#: editor/filesystem_dock.cpp editor/script_editor_debugger.cpp +#: editor/filesystem_dock.cpp editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_editor_debugger.cpp #, fuzzy msgid "Collapse All" msgstr "Thu gá»n tất cả" @@ -3181,12 +3488,14 @@ msgid "Rename" msgstr "Äổi tên" #: editor/filesystem_dock.cpp -msgid "Previous Directory" +#, fuzzy +msgid "Previous Folder/File" msgstr "Thư mục trước" #: editor/filesystem_dock.cpp -msgid "Next Directory" -msgstr "Thư mục tiếp theo" +#, fuzzy +msgid "Next Folder/File" +msgstr "Tạo Folder" #: editor/filesystem_dock.cpp msgid "Re-Scan Filesystem" @@ -3194,7 +3503,7 @@ msgstr "Quét lại hệ thống táºp tin" #: editor/filesystem_dock.cpp #, fuzzy -msgid "Toggle split mode" +msgid "Toggle Split Mode" msgstr "Báºt tắt Chức năng" #: editor/filesystem_dock.cpp @@ -3227,7 +3536,7 @@ msgstr "" msgid "Create Script" msgstr "Tạo Script" -#: editor/find_in_files.cpp +#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp #, fuzzy msgid "Find in Files" msgstr "Tìm..." @@ -3247,6 +3556,12 @@ msgstr "Tạo Folder" msgid "Filters:" msgstr "Lá»c..." +#: editor/find_in_files.cpp +msgid "" +"Include the files with the following extensions. Add or remove them in " +"ProjectSettings." +msgstr "" + #: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp msgid "Find..." @@ -3697,7 +4012,7 @@ msgstr "Tối ưu Animation" #: editor/plugins/animation_blend_space_2d_editor.cpp #, fuzzy -msgid "Triangle already exists" +msgid "Triangle already exists." msgstr "Lá»–I: Tên animation trùng lặp!" #: editor/plugins/animation_blend_space_2d_editor.cpp @@ -3778,7 +4093,6 @@ msgid "Node Moved" msgstr "Äổi tên" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Unable to connect, port may be in use or connection may be invalid." msgstr "" @@ -3852,8 +4166,9 @@ msgid "Edit Filtered Tracks:" msgstr "" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -msgid "Enable filtering" -msgstr "" +#, fuzzy +msgid "Enable Filtering" +msgstr "Äổi" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Toggle Autoplay" @@ -3972,10 +4287,6 @@ msgid "Animation" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "New" -msgstr "" - -#: editor/plugins/animation_player_editor_plugin.cpp #, fuzzy msgid "Edit Transitions..." msgstr "Chuyển tiếp" @@ -3993,14 +4304,15 @@ msgid "Autoplay on Load" msgstr "Tá»± động chạy khi Load" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Onion Skinning" -msgstr "Khung hình Liên tiếp" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Enable Onion Skinning" msgstr "Xem Khung hình Liên tiếp" #: editor/plugins/animation_player_editor_plugin.cpp +#, fuzzy +msgid "Onion Skinning Options" +msgstr "Khung hình Liên tiếp" + +#: editor/plugins/animation_player_editor_plugin.cpp msgid "Directions" msgstr "Hướng Ä‘i" @@ -4553,13 +4865,19 @@ msgid "Move CanvasItem" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"Children of containers have their anchors and margins values overridden by " +"their parent." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Presets for the anchors and margins values of a Control node." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "" -"Children of containers have their anchors and margins values overridden by " -"their parent." +"When active, moving Control nodes changes their anchors instead of their " +"margins." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4575,10 +4893,52 @@ msgid "Change Anchors" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Lock Selected" +msgstr "Xoá lá»±a chá»n" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Unlock Selected" +msgstr "Xoá lá»±a chá»n" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Group Selected" +msgstr "Di chuyển Lá»±a chá»n" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Ungroup Selected" +msgstr "Di chuyển Lá»±a chá»n" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Paste Pose" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Create Custom Bone(s) from Node(s)" +msgstr "Tạo từ Scene" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Clear Bones" +msgstr "Xoá Auto-Advance" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Make IK Chain" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Clear IK Chain" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "" "Warning: Children of a container get their position and size determined only " "by their parent." @@ -4652,7 +5012,7 @@ msgid "Snapping Options" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to grid" +msgid "Snap to Grid" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4673,31 +5033,31 @@ msgid "Use Pixel Snap" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Smart snapping" +msgid "Smart Snapping" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to parent" +msgid "Snap to Parent" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node anchor" +msgid "Snap to Node Anchor" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node sides" +msgid "Snap to Node Sides" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node center" +msgid "Snap to Node Center" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to other nodes" +msgid "Snap to Other Nodes" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to guides" +msgid "Snap to Guides" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4711,10 +5071,12 @@ msgid "Unlock the selected object (can be moved)." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Makes sure the object's children are not selectable." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Restores the object's children's ability to be selected." msgstr "" @@ -4728,14 +5090,6 @@ msgid "Show Bones" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Make IK Chain" -msgstr "" - -#: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Clear IK Chain" -msgstr "" - -#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Make Custom Bone(s) from Node(s)" msgstr "" @@ -4786,7 +5140,7 @@ msgid "Frame Selection" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Layout" +msgid "Preview Canvas Scale" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4840,6 +5194,10 @@ msgid "Divide grid step by 2" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Pan View" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Add %s" msgstr "Thêm %s" @@ -4862,7 +5220,8 @@ msgid "Error instancing scene from %s" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Change default type" +#, fuzzy +msgid "Change Default Type" msgstr "Äổi dạng mặc định" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4949,19 +5308,19 @@ msgid "Create Emission Points From Node" msgstr "" #: editor/plugins/curve_editor_plugin.cpp -msgid "Flat0" +msgid "Flat 0" msgstr "" #: editor/plugins/curve_editor_plugin.cpp -msgid "Flat1" +msgid "Flat 1" msgstr "" -#: editor/plugins/curve_editor_plugin.cpp -msgid "Ease in" +#: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp +msgid "Ease In" msgstr "" -#: editor/plugins/curve_editor_plugin.cpp -msgid "Ease out" +#: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp +msgid "Ease Out" msgstr "" #: editor/plugins/curve_editor_plugin.cpp @@ -4981,23 +5340,27 @@ msgid "Load Curve Preset" msgstr "" #: editor/plugins/curve_editor_plugin.cpp -msgid "Add point" -msgstr "" +#, fuzzy +msgid "Add Point" +msgstr "Di chuyển đến..." #: editor/plugins/curve_editor_plugin.cpp -msgid "Remove point" -msgstr "" +#, fuzzy +msgid "Remove Point" +msgstr "Di chuyển đến..." #: editor/plugins/curve_editor_plugin.cpp -msgid "Left linear" -msgstr "" +#, fuzzy +msgid "Left Linear" +msgstr "Tịnh tuyến" #: editor/plugins/curve_editor_plugin.cpp -msgid "Right linear" -msgstr "" +#, fuzzy +msgid "Right Linear" +msgstr "Tịnh tuyến" #: editor/plugins/curve_editor_plugin.cpp -msgid "Load preset" +msgid "Load Preset" msgstr "" #: editor/plugins/curve_editor_plugin.cpp @@ -5053,14 +5416,19 @@ msgid "This doesn't work on scene root!" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Trimesh Shape" +msgid "Create Trimesh Static Shape" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Shape" +msgid "Failed creating shapes!" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp +#, fuzzy +msgid "Create Convex Shape(s)" +msgstr "Tạo nodes má»›i." + +#: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Navigation Mesh" msgstr "" @@ -5110,16 +5478,13 @@ msgid "Create Trimesh Static Body" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Static Body" -msgstr "" - -#: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Trimesh Collision Sibling" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Collision Sibling" -msgstr "" +#, fuzzy +msgid "Create Convex Collision Sibling(s)" +msgstr "Tạo" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Outline Mesh..." @@ -5272,20 +5637,20 @@ msgid "Create Navigation Polygon" msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp -msgid "Generating Visibility Rect" +#: editor/plugins/particles_editor_plugin.cpp +msgid "Convert to CPUParticles" msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp -msgid "Generate Visibility Rect" +msgid "Generating Visibility Rect" msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp -msgid "Can only set point into a ParticlesMaterial process material" +msgid "Generate Visibility Rect" msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp -#: editor/plugins/particles_editor_plugin.cpp -msgid "Convert to CPUParticles" +msgid "Can only set point into a ParticlesMaterial process material" msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp @@ -5428,7 +5793,7 @@ msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp editor/plugins/theme_editor_plugin.cpp -#: editor/project_export.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_export.cpp msgid "Options" msgstr "" @@ -5480,7 +5845,7 @@ msgstr "" #: editor/plugins/physical_bone_plugin.cpp #, fuzzy -msgid "Move joint" +msgid "Move Joint" msgstr "Di chuyển đến..." #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5719,7 +6084,6 @@ msgid "Open in Editor" msgstr "" #: editor/plugins/resource_preloader_editor_plugin.cpp -#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Load Resource" msgstr "" @@ -5815,6 +6179,11 @@ msgid "%s Class Reference" msgstr "" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp +msgid "Find Next" +msgstr "Tìm tiếp theo" + +#: editor/plugins/script_editor_plugin.cpp msgid "Toggle alphabetical sorting of the method list." msgstr "" @@ -5897,10 +6266,6 @@ msgstr "Äóng Docs" msgid "Close All" msgstr "Äóng tất cả" -#: editor/plugins/script_editor_plugin.cpp -msgid "Close Other Tabs" -msgstr "Äóng tất cả Tab" - #: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp msgid "Run" msgstr "Chạy" @@ -5909,11 +6274,6 @@ msgstr "Chạy" msgid "Toggle Scripts Panel" msgstr "" -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/script_text_editor.cpp -msgid "Find Next" -msgstr "Tìm tiếp theo" - #: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp msgid "Step Over" msgstr "" @@ -5940,7 +6300,7 @@ msgid "Debug with External Editor" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Open Godot online documentation" +msgid "Open Godot online documentation." msgstr "" #: editor/plugins/script_editor_plugin.cpp @@ -5948,7 +6308,7 @@ msgid "Request Docs" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Help improve the Godot documentation by giving feedback" +msgid "Help improve the Godot documentation by giving feedback." msgstr "" #: editor/plugins/script_editor_plugin.cpp @@ -5974,10 +6334,12 @@ msgid "" msgstr "" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp msgid "Reload" msgstr "" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp msgid "Resave" msgstr "" @@ -5992,6 +6354,30 @@ msgstr "Tìm sá»± giúp đỡ" #: editor/plugins/script_text_editor.cpp #, fuzzy +msgid "Connections to method:" +msgstr "Kết nối đến Node:" + +#: editor/plugins/script_text_editor.cpp +msgid "Source" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Signal" +msgstr "TÃn hiệu" + +#: editor/plugins/script_text_editor.cpp +msgid "Target" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "" +"Missing connected method '%s' for signal '%s' from node '%s' to node '%s'." +msgstr "Không có kết nối đến input '%s' cá»§a node '%s'." + +#: editor/plugins/script_text_editor.cpp +#, fuzzy msgid "Line" msgstr "Dòng:" @@ -6004,10 +6390,6 @@ msgstr "" msgid "Go to Function" msgstr "Thêm Hà m" -#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp -msgid "Standard" -msgstr "" - #: editor/plugins/script_text_editor.cpp msgid "Only resources from filesystem can be dropped." msgstr "" @@ -6040,6 +6422,11 @@ msgstr "" msgid "Syntax Highlighter" msgstr "" +#: editor/plugins/script_text_editor.cpp +#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp +msgid "Bookmarks" +msgstr "" + #: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" @@ -6067,6 +6454,25 @@ msgid "Toggle Comment" msgstr "" #: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Toggle Bookmark" +msgstr "Báºt tắt Chức năng" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Go to Next Bookmark" +msgstr "Äến Step tiếp theo" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Go to Previous Bookmark" +msgstr "Äến Step trước đó" + +#: editor/plugins/script_text_editor.cpp +msgid "Remove All Bookmarks" +msgstr "" + +#: editor/plugins/script_text_editor.cpp msgid "Fold/Unfold Line" msgstr "" @@ -6145,6 +6551,12 @@ msgid "Contextual Help" msgstr "" #: editor/plugins/shader_editor_plugin.cpp +msgid "" +"This shader has been modified on on disk.\n" +"What action should be taken?" +msgstr "" + +#: editor/plugins/shader_editor_plugin.cpp msgid "Shader" msgstr "" @@ -6484,7 +6896,7 @@ msgid "Right View" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Switch Perspective/Orthogonal view" +msgid "Switch Perspective/Orthogonal View" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp @@ -6524,11 +6936,12 @@ msgid "Toggle Freelook" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Transform" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Snap object to floor" +msgid "Snap Object to Floor" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp @@ -6673,23 +7086,11 @@ msgid "Invalid geometry, can't replace by mesh." msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Invalid geometry, can't create polygon." -msgstr "" - -#: editor/plugins/sprite_editor_plugin.cpp -msgid "Invalid geometry, can't create collision polygon." -msgstr "" - -#: editor/plugins/sprite_editor_plugin.cpp -msgid "Invalid geometry, can't create light occluder." -msgstr "" - -#: editor/plugins/sprite_editor_plugin.cpp -msgid "Sprite" +msgid "Convert to Mesh2D" msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Convert to Mesh2D" +msgid "Invalid geometry, can't create polygon." msgstr "" #: editor/plugins/sprite_editor_plugin.cpp @@ -6698,15 +7099,27 @@ msgid "Convert to Polygon2D" msgstr "Xóa Animation" #: editor/plugins/sprite_editor_plugin.cpp +msgid "Invalid geometry, can't create collision polygon." +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp #, fuzzy msgid "Create CollisionPolygon2D Sibling" msgstr "Tạo" #: editor/plugins/sprite_editor_plugin.cpp +msgid "Invalid geometry, can't create light occluder." +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp msgid "Create LightOccluder2D Sibling" msgstr "" #: editor/plugins/sprite_editor_plugin.cpp +msgid "Sprite" +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp msgid "Simplification: " msgstr "" @@ -6723,7 +7136,12 @@ msgid "Settings:" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "ERROR: Couldn't load frame resource!" +#, fuzzy +msgid "No Frames Selected" +msgstr "Xoá lá»±a chá»n" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Add %d Frame(s)" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp @@ -6731,6 +7149,10 @@ msgid "Add Frame" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "ERROR: Couldn't load frame resource!" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Resource clipboard is empty or not a texture!" msgstr "" @@ -6774,6 +7196,15 @@ msgid "Animation Frames:" msgstr "Tên Animation:" #: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Add a Texture from File" +msgstr "Chèn Texture(s) và o TileSet" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Add Frames from a Sprite Sheet" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Insert Empty (Before)" msgstr "" @@ -6790,6 +7221,28 @@ msgid "Move (After)" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Select Frames" +msgstr "Chá»n Points" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Horizontal:" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Vertical:" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Select/Clear All Frames" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Create Frames from Sprite Sheet" +msgstr "Tạo từ Scene" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "SpriteFrames" msgstr "" @@ -6854,13 +7307,14 @@ msgstr "" msgid "Remove All Items" msgstr "" -#: editor/plugins/theme_editor_plugin.cpp +#: editor/plugins/theme_editor_plugin.cpp editor/project_manager.cpp msgid "Remove All" msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "Edit theme..." -msgstr "" +#, fuzzy +msgid "Edit Theme" +msgstr "Lưu Theme" #: editor/plugins/theme_editor_plugin.cpp msgid "Theme editing menu." @@ -6887,18 +7341,25 @@ msgid "Create From Current Editor Theme" msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "CheckBox Radio1" -msgstr "" +#, fuzzy +msgid "Toggle Button" +msgstr "Báºt tắt Chức năng" #: editor/plugins/theme_editor_plugin.cpp -msgid "CheckBox Radio2" -msgstr "" +#, fuzzy +msgid "Disabled Button" +msgstr "Tắt" #: editor/plugins/theme_editor_plugin.cpp msgid "Item" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Disabled Item" +msgstr "Tắt" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Check Item" msgstr "" @@ -6915,6 +7376,22 @@ msgid "Checked Radio Item" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +msgid "Named Sep." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Submenu" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Item 1" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Item 2" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Has" msgstr "" @@ -6923,8 +7400,9 @@ msgid "Many" msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "Has,Many,Options" -msgstr "" +#, fuzzy +msgid "Disabled LineEdit" +msgstr "Tắt" #: editor/plugins/theme_editor_plugin.cpp msgid "Tab 1" @@ -6939,6 +7417,19 @@ msgid "Tab 3" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Editable Item" +msgstr "Chỉnh Thá»i gian Chuyển Animation" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Subtree" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Has,Many,Options" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Data Type:" msgstr "" @@ -6971,6 +7462,7 @@ msgid "Fix Invalid Tiles" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp +#: modules/gridmap/grid_map_editor_plugin.cpp #, fuzzy msgid "Cut Selection" msgstr "Nhân đôi lá»±a chá»n" @@ -7013,37 +7505,46 @@ msgid "Mirror Y" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp +msgid "Disable Autotile" +msgstr "" + +#: editor/plugins/tile_map_editor_plugin.cpp +msgid "Enable Priority" +msgstr "" + +#: editor/plugins/tile_map_editor_plugin.cpp msgid "Paint Tile" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Pick Tile" +msgid "" +"Shift+RMB: Line Draw\n" +"Shift+Ctrl+RMB: Rectangle Paint" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy -msgid "Copy Selection" -msgstr "Di chuyển Lá»±a chá»n" +msgid "Pick Tile" +msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Rotate left" +msgid "Rotate Left" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Rotate right" +msgid "Rotate Right" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Flip horizontally" +msgid "Flip Horizontally" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Flip vertically" +msgid "Flip Vertically" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp #, fuzzy -msgid "Clear transform" +msgid "Clear Transform" msgstr "Äổi Transform Animation" #: editor/plugins/tile_set_editor_plugin.cpp @@ -7082,6 +7583,43 @@ msgid "Select the previous shape, subtile, or Tile." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp +msgid "Region Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Collision Mode" +msgstr "Tạo" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Occlusion Mode" +msgstr "Tạo" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Navigation Mode" +msgstr "Animation Node" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Bitmask Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Priority Mode" +msgstr "Nháºp từ Node:" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Icon Mode" +msgstr "Báºt tắt Chức năng" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Z Index Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp msgid "Copy bitmask." msgstr "" @@ -7168,6 +7706,7 @@ msgstr "Tạo" msgid "" "LMB: Set bit on.\n" "RMB: Set bit off.\n" +"Shift+LMB: Set wildcard bit.\n" "Click on another Tile to edit it." msgstr "" @@ -7287,6 +7826,75 @@ msgid "TileSet" msgstr "Xuất Tile Set" #: 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 +" +msgstr "Thêm Input" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar" +msgstr "Tá»· lệ:" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Add input port" +msgstr "Thêm Input" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add output port" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change input port type" +msgstr "Äổi dạng mặc định" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change output port type" +msgstr "Äổi dạng mặc định" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Change input port name" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Change output port name" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Remove input port" +msgstr "Xoá Function" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Remove output port" +msgstr "Xóa Template" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Set expression" +msgstr "Phiên bản hiện tại:" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Resize VisualShader node" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Set Uniform Name" msgstr "" @@ -7325,6 +7933,850 @@ msgid "Light" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Create Shader Node" +msgstr "Tạo Root Node:" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Color function." +msgstr "Thêm Hà m" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Color operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Grayscale function." +msgstr "Tạo Function" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts HSV vector to RGB equivalent." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts RGB vector to HSV equivalent." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Sepia function." +msgstr "Äổi tên Hà m" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Burn operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Darken operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Difference operator." +msgstr "Chỉ khác biệt" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Dodge operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "HardLight operator" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Lighten operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Overlay operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Screen operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "SoftLight operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Color constant." +msgstr "Cố định" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Color uniform." +msgstr "Äổi Transform Animation" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns an associated vector if the provided scalars are equal, greater or " +"less." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns an associated vector if the provided boolean value is true or false." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'camera' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'inv_camera' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'inv_projection' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'normal' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'projection' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'time' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'viewport_size' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'world' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'texture_pixel_size' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Input parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'binormal' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'fragcoord' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_coord' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_uv' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'side' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'tangent' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv2' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'vertex' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'view' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'albedo' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'attenuation' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'diffuse' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_color' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'roughness' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'specular' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'transmission' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'modelview' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_size' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'tangent' input parameter for vertex and fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_pass' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_coord' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_pixel_size' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_uv' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_alpha' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_height' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_uv' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_vec' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'normal' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'shadow_color' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'extra' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'projection' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'vertex' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'world' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'active' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'custom' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'custom_alpha' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'delta' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'emission_transform' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'index' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'lifetime' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'restart' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'time' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'transform' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'velocity' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar function." +msgstr "Chá»n Scale" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Scalar operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "E constant (2.718282). Represents the base of the natural logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Epsilon constant (0.00001). Smallest possible scalar number." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Phi constant (1.618034). Golden ratio." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi/4 constant (0.785398) or 45 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi/2 constant (1.570796) or 90 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi constant (3.141593) or 180 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Tau constant (6.283185) or 360 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Sqrt2 constant (1.414214). Square root of 2." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the absolute value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-tangent of the parameters." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Finds the nearest integer that is greater than or equal to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Constrains a value to lie between two further values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts a quantity in radians to degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-e Exponential." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-2 Exponential." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Finds the nearest integer less than or equal to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Computes the fractional part of the argument." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the inverse of the square root of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Natural logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-2 logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the greater of two values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the lesser of two values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Linear interpolation between two scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the opposite value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 - scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns the value of the first parameter raised to the power of the second." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts a quantity in degrees to radians." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 / scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the nearest integer to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the nearest even integer to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Clamps the value between 0.0 and 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Extracts the sign of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the square root of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( scalar(edge0), scalar(edge1), scalar(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if x is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( scalar(edge), scalar(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the truncated value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Adds scalar to scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Divides scalar by scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies scalar by scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the remainder of the two scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Subtracts scalar from scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Scalar constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar uniform." +msgstr "Äổi Transform Animation" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Perform the cubic texture lookup." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Perform the texture lookup." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Cubic texture uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "2D texture uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Transform function." +msgstr "Tạo" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) Calculate the outer product of a pair of vectors.\n" +"\n" +"OuterProduct treats the first parameter 'c' as a column vector (matrix with " +"one column) and the second parameter 'r' as a row vector (matrix with one " +"row) and does a linear algebraic matrix multiply 'c * r', yielding a matrix " +"whose number of rows is the number of components in 'c' and whose number of " +"columns is the number of components in 'r'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Composes transform from four vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Decomposes transform to four vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the determinant of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the inverse of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the transpose of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies transform by transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies vector by transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Transform constant." +msgstr "Tạo" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Transform uniform." +msgstr "Tạo" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector function." +msgstr "Xoá Function" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Composes vector from three scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Decomposes vector to three scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the cross product of two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the distance between two points." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the dot product of two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns a vector that points in the same direction as a reference vector. " +"The function has three vector parameters : N, the vector to orient, I, the " +"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 "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the length of a vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Linear interpolation between two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the normalize product of vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 - vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 / vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns a vector that points in the direction of reflection ( a : incident " +"vector, b : normal vector )." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns a vector that points in the direction of refraction." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( vector(edge0), vector(edge1), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if 'x' is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( scalar(edge0), scalar(edge1), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if 'x' is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( vector(edge), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( scalar(edge), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Adds vector to vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Divides vector by vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies vector by vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the remainder of the two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Subtracts vector from vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Custom Godot Shader Language expression, with custom amount of input and " +"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 "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns falloff based on the dot product of surface normal and view " +"direction of camera (pass associated inputs to it)." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) (Fragment/Light mode only) Scalar derivative function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) (Fragment/Light mode only) Vector derivative function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Derivative in 'x' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Derivative in 'x' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Derivative in 'y' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Derivative in 'y' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Sum of absolute derivative " +"in 'x' and 'y'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Sum of absolute derivative " +"in 'x' and 'y'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "VisualShader" msgstr "" @@ -7517,6 +8969,10 @@ msgid "Directory already contains a Godot project." msgstr "" #: editor/project_manager.cpp +msgid "New Game Project" +msgstr "" + +#: editor/project_manager.cpp msgid "Imported Project" msgstr "" @@ -7564,10 +9020,6 @@ msgid "Rename Project" msgstr "" #: editor/project_manager.cpp -msgid "New Game Project" -msgstr "" - -#: editor/project_manager.cpp msgid "Import Existing Project" msgstr "" @@ -7596,10 +9048,6 @@ msgid "Project Name:" msgstr "" #: editor/project_manager.cpp -msgid "Create folder" -msgstr "" - -#: editor/project_manager.cpp msgid "Project Path:" msgstr "" @@ -7608,10 +9056,6 @@ msgid "Project Installation Path:" msgstr "" #: editor/project_manager.cpp -msgid "Browse" -msgstr "" - -#: editor/project_manager.cpp msgid "Renderer:" msgstr "" @@ -7665,8 +9109,8 @@ msgid "" "\n" "If you proceed with opening it, it will be converted to Godot's current " "configuration file format.\n" -"Warning: You will not be able to open the project with previous versions of " -"the engine anymore." +"Warning: You won't be able to open the project with previous versions of the " +"engine anymore." msgstr "" #: editor/project_manager.cpp @@ -7677,8 +9121,8 @@ msgid "" "%s\n" "\n" "Do you want to convert it?\n" -"Warning: You will not be able to open the project with previous versions of " -"the engine anymore." +"Warning: You won't be able to open the project with previous versions of the " +"engine anymore." msgstr "" #: editor/project_manager.cpp @@ -7690,7 +9134,7 @@ msgstr "" #: editor/project_manager.cpp msgid "" "Can't run project: no main scene defined.\n" -"Please edit the project and set the main scene in \"Project Settings\" under " +"Please edit the project and set the main scene in the Project Settings under " "the \"Application\" category." msgstr "" @@ -7701,23 +9145,37 @@ msgid "" msgstr "" #: editor/project_manager.cpp -msgid "Are you sure to run more than one project?" +msgid "Are you sure to run %d projects at once?" msgstr "" #: editor/project_manager.cpp -msgid "Remove project from the list? (Folder contents will not be modified)" +msgid "" +"Remove %d projects from the list?\n" +"The project folders' contents won't be modified." +msgstr "" + +#: editor/project_manager.cpp +msgid "" +"Remove this project from the list?\n" +"The project folder's contents won't be modified." +msgstr "" + +#: editor/project_manager.cpp +msgid "" +"Remove all missing projects from the list? (Folders contents will not be " +"modified)" msgstr "" #: editor/project_manager.cpp msgid "" "Language changed.\n" -"The UI will update next time the editor or project manager starts." +"The interface will update after restarting the editor or project manager." msgstr "" #: editor/project_manager.cpp msgid "" -"You are about the scan %s folders for existing Godot projects. Do you " -"confirm?" +"Are you sure to scan %s folders for existing Godot projects?\n" +"This could take a while." msgstr "" #: editor/project_manager.cpp @@ -7741,6 +9199,11 @@ msgid "New Project" msgstr "Tạo Project" #: editor/project_manager.cpp +#, fuzzy +msgid "Remove Missing" +msgstr "Xóa Animation" + +#: editor/project_manager.cpp msgid "Templates" msgstr "Khung project" @@ -7757,9 +9220,10 @@ msgid "Can't run project" msgstr "Không thể chạy project" #: editor/project_manager.cpp +#, fuzzy msgid "" -"You don't currently have any projects.\n" -"Would you like to explore the official example projects in the Asset Library?" +"You currently don't have any projects.\n" +"Would you like to explore official example projects in the Asset Library?" msgstr "" "Hiện giá» bạn không có project nà o.\n" "Bạn có muốn xem các project official và dụ trên Asset Library không?" @@ -7787,8 +9251,9 @@ msgid "" msgstr "" #: editor/project_settings_editor.cpp -msgid "Action '%s' already exists!" -msgstr "" +#, fuzzy +msgid "An action with the name '%s' already exists." +msgstr "Lá»–I: Tên animation trùng lặp!" #: editor/project_settings_editor.cpp msgid "Rename Input Action Event" @@ -7942,10 +9407,6 @@ msgid "" msgstr "" #: editor/project_settings_editor.cpp -msgid "Already existing" -msgstr "" - -#: editor/project_settings_editor.cpp msgid "Add Input Action" msgstr "" @@ -8010,7 +9471,7 @@ msgid "Override For..." msgstr "" #: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp -msgid "Editor must be restarted for changes to take effect" +msgid "The editor must be restarted for changes to take effect." msgstr "" #: editor/project_settings_editor.cpp @@ -8071,12 +9532,13 @@ msgid "Locales Filter" msgstr "" #: editor/project_settings_editor.cpp -msgid "Show all locales" +msgid "Show All Locales" msgstr "" #: editor/project_settings_editor.cpp -msgid "Show only selected locales" -msgstr "" +#, fuzzy +msgid "Show Selected Locales Only" +msgstr "Chỉ lá»±a chá»n" #: editor/project_settings_editor.cpp msgid "Filter mode:" @@ -8091,14 +9553,6 @@ msgid "AutoLoad" msgstr "" #: editor/property_editor.cpp -msgid "Ease In" -msgstr "" - -#: editor/property_editor.cpp -msgid "Ease Out" -msgstr "" - -#: editor/property_editor.cpp msgid "Zero" msgstr "" @@ -8172,7 +9626,7 @@ msgid "Suffix" msgstr "" #: editor/rename_dialog.cpp -msgid "Advanced options" +msgid "Advanced Options" msgstr "" #: editor/rename_dialog.cpp @@ -8429,8 +9883,9 @@ msgid "User Interface" msgstr "Giao diện ngưá»i dùng" #: editor/scene_tree_dock.cpp -msgid "Custom Node" -msgstr "Node tùy chá»n" +#, fuzzy +msgid "Other Node" +msgstr "Xóa Node(s)" #: editor/scene_tree_dock.cpp msgid "Can't operate on nodes from a foreign scene!" @@ -8471,7 +9926,7 @@ msgid "Clear Inheritance" msgstr "" #: editor/scene_tree_dock.cpp -msgid "Open documentation" +msgid "Open Documentation" msgstr "" #: editor/scene_tree_dock.cpp @@ -8499,7 +9954,7 @@ msgstr "" msgid "Save Branch as Scene" msgstr "" -#: editor/scene_tree_dock.cpp +#: editor/scene_tree_dock.cpp editor/script_editor_debugger.cpp msgid "Copy Node Path" msgstr "" @@ -8542,6 +9997,21 @@ msgid "Toggle Visible" msgstr "" #: editor/scene_tree_editor.cpp +#, fuzzy +msgid "Unlock Node" +msgstr "Di chuyển Node(s)" + +#: editor/scene_tree_editor.cpp +#, fuzzy +msgid "Button Group" +msgstr "Thêm và o Nhóm" + +#: editor/scene_tree_editor.cpp +#, fuzzy +msgid "(Connecting From)" +msgstr "Kết nối bị lá»—i" + +#: editor/scene_tree_editor.cpp msgid "Node configuration warning:" msgstr "" @@ -8563,9 +10033,9 @@ msgid "" "Click to show groups dock." msgstr "" -#: editor/scene_tree_editor.cpp editor/script_create_dialog.cpp +#: editor/scene_tree_editor.cpp #, fuzzy -msgid "Open Script" +msgid "Open Script:" msgstr "Tạo Script" #: editor/scene_tree_editor.cpp @@ -8611,87 +10081,95 @@ msgid "Select a Node" msgstr "" #: editor/script_create_dialog.cpp -msgid "Error loading template '%s'" +msgid "Path is empty." msgstr "" #: editor/script_create_dialog.cpp -msgid "Error - Could not create script in filesystem." +msgid "Filename is empty." msgstr "" #: editor/script_create_dialog.cpp -msgid "Error loading script from %s" -msgstr "" +#, fuzzy +msgid "Path is not local." +msgstr "Path không chỉ đến Node!" #: editor/script_create_dialog.cpp -msgid "N/A" -msgstr "" +#, fuzzy +msgid "Invalid base path." +msgstr "ÄÆ°á»ng dẫn sai." #: editor/script_create_dialog.cpp -msgid "Open Script/Choose Location" -msgstr "" +#, fuzzy +msgid "A directory with the same name exists." +msgstr "Äã có má»™t file hoặc folder trùng tên." #: editor/script_create_dialog.cpp -msgid "Path is empty" -msgstr "" +#, fuzzy +msgid "Invalid extension." +msgstr "Phải sá» dụng extension có hiệu lá»±c" #: editor/script_create_dialog.cpp -msgid "Filename is empty" +msgid "Wrong extension chosen." msgstr "" #: editor/script_create_dialog.cpp -msgid "Path is not local" +msgid "Error loading template '%s'" msgstr "" #: editor/script_create_dialog.cpp -msgid "Invalid base path" +msgid "Error - Could not create script in filesystem." msgstr "" #: editor/script_create_dialog.cpp -msgid "Directory of the same name exists" +msgid "Error loading script from %s" msgstr "" #: editor/script_create_dialog.cpp -msgid "File exists, will be reused" +msgid "N/A" msgstr "" #: editor/script_create_dialog.cpp -msgid "Invalid extension" +msgid "Open Script / Choose Location" msgstr "" #: editor/script_create_dialog.cpp -msgid "Wrong extension chosen" -msgstr "" +#, fuzzy +msgid "Open Script" +msgstr "Tạo Script" #: editor/script_create_dialog.cpp -msgid "Invalid Path" +msgid "File exists, it will be reused." msgstr "" #: editor/script_create_dialog.cpp -msgid "Invalid class name" -msgstr "" +#, fuzzy +msgid "Invalid class name." +msgstr "KÃch thước font không hợp lệ." #: editor/script_create_dialog.cpp -msgid "Invalid inherited parent name or path" +msgid "Invalid inherited parent name or path." msgstr "" #: editor/script_create_dialog.cpp -msgid "Script valid" -msgstr "" +#, fuzzy +msgid "Script is valid." +msgstr "Animation tree khả dụng." #: editor/script_create_dialog.cpp msgid "Allowed: a-z, A-Z, 0-9 and _" msgstr "" #: editor/script_create_dialog.cpp -msgid "Built-in script (into scene file)" +msgid "Built-in script (into scene file)." msgstr "" #: editor/script_create_dialog.cpp -msgid "Create new script file" -msgstr "" +#, fuzzy +msgid "Will create a new script file." +msgstr "Tạo nodes má»›i." #: editor/script_create_dialog.cpp -msgid "Load existing script file" +msgid "Will load an existing script file." msgstr "" #: editor/script_create_dialog.cpp @@ -8822,6 +10300,10 @@ msgstr "" msgid "Set From Tree" msgstr "" +#: editor/script_editor_debugger.cpp +msgid "Export measures as CSV" +msgstr "" + #: editor/settings_config_dialog.cpp msgid "Erase Shortcut" msgstr "" @@ -8953,6 +10435,14 @@ msgid "GDNativeLibrary" msgstr "" #: modules/gdnative/gdnative_library_singleton_editor.cpp +msgid "Enabled GDNative Singleton" +msgstr "" + +#: modules/gdnative/gdnative_library_singleton_editor.cpp +msgid "Disabled GDNative Singleton" +msgstr "" + +#: modules/gdnative/gdnative_library_singleton_editor.cpp msgid "Library" msgstr "" @@ -9039,8 +10529,9 @@ msgid "GridMap Fill Selection" msgstr "Chá»n tất cả" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "GridMap Duplicate Selection" -msgstr "" +#, fuzzy +msgid "GridMap Paste Selection" +msgstr "Chá»n tất cả" #: modules/gridmap/grid_map_editor_plugin.cpp msgid "GridMap Paint" @@ -9107,18 +10598,6 @@ msgid "Cursor Clear Rotation" msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Create Area" -msgstr "" - -#: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Create Exterior Connector" -msgstr "" - -#: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Erase Area" -msgstr "" - -#: modules/gridmap/grid_map_editor_plugin.cpp msgid "Clear Selection" msgstr "" @@ -9472,18 +10951,10 @@ msgid "Available Nodes:" msgstr "Nodes khả dụng:" #: modules/visual_script/visual_script_editor.cpp -msgid "Select or create a function to edit graph" +msgid "Select or create a function to edit its graph." msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Edit Signal Arguments:" -msgstr "" - -#: modules/visual_script/visual_script_editor.cpp -msgid "Edit Variable:" -msgstr "Chỉnh sá»a Variable:" - -#: modules/visual_script/visual_script_editor.cpp msgid "Delete Selected" msgstr "Xoá lá»±a chá»n" @@ -9610,6 +11081,19 @@ msgid "Debug keystore not configured in the Editor Settings nor in the preset." msgstr "" #: platform/android/export/export.cpp +msgid "Custom build requires a valid Android SDK path in Editor Settings." +msgstr "" + +#: platform/android/export/export.cpp +msgid "Invalid Android SDK path for custom build in Editor Settings." +msgstr "" + +#: platform/android/export/export.cpp +msgid "" +"Android project is not installed for compiling. Install from Editor menu." +msgstr "" + +#: platform/android/export/export.cpp msgid "Invalid public key for APK expansion." msgstr "" @@ -9618,6 +11102,34 @@ msgstr "" msgid "Invalid package name:" msgstr "KÃch thước font không hợp lệ." +#: platform/android/export/export.cpp +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 "" +"Android build version mismatch:\n" +" Template installed: %s\n" +" Godot Version: %s\n" +"Please reinstall Android build template from 'Project' menu." +msgstr "" + +#: platform/android/export/export.cpp +msgid "Building Android Project (gradle)" +msgstr "" + +#: 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 "" + +#: platform/android/export/export.cpp +msgid "No build apk generated at: " +msgstr "" + #: platform/iphone/export/export.cpp msgid "Identifier is missing." msgstr "" @@ -9875,27 +11387,27 @@ msgid "ARVRCamera must have an ARVROrigin node as its parent" msgstr "" #: scene/3d/arvr_nodes.cpp -msgid "ARVRController must have an ARVROrigin node as its parent" +msgid "ARVRController must have an ARVROrigin node as its parent." msgstr "" #: scene/3d/arvr_nodes.cpp msgid "" -"The controller id must not be 0 or this controller will not be bound to an " -"actual controller" +"The controller ID must not be 0 or this controller won't be bound to an " +"actual controller." msgstr "" #: scene/3d/arvr_nodes.cpp -msgid "ARVRAnchor must have an ARVROrigin node as its parent" +msgid "ARVRAnchor must have an ARVROrigin node as its parent." msgstr "" #: scene/3d/arvr_nodes.cpp msgid "" -"The anchor id must not be 0 or this anchor will not be bound to an actual " -"anchor" +"The anchor ID must not be 0 or this anchor won't be bound to an actual " +"anchor." msgstr "" #: scene/3d/arvr_nodes.cpp -msgid "ARVROrigin requires an ARVRCamera child node" +msgid "ARVROrigin requires an ARVRCamera child node." msgstr "" #: scene/3d/baked_lightmap.cpp @@ -9965,8 +11477,8 @@ msgstr "" #: scene/3d/cpu_particles.cpp msgid "" -"CPUParticles animation requires the usage of a SpatialMaterial with " -"\"Billboard Particles\" enabled." +"CPUParticles animation requires the usage of a SpatialMaterial whose " +"Billboard Mode is set to \"Particle Billboard\"." msgstr "" #: scene/3d/gi_probe.cpp @@ -10003,8 +11515,8 @@ msgstr "" #: scene/3d/particles.cpp msgid "" -"Particles animation requires the usage of a SpatialMaterial with \"Billboard " -"Particles\" enabled." +"Particles animation requires the usage of a SpatialMaterial whose Billboard " +"Mode is set to \"Particle Billboard\"." msgstr "" #: scene/3d/path.cpp @@ -10029,7 +11541,7 @@ msgid "Path property must point to a valid Spatial node to work." msgstr "" #: scene/3d/soft_body.cpp -msgid "This body will be ignored until you set a mesh" +msgid "This body will be ignored until you set a mesh." msgstr "" #: scene/3d/soft_body.cpp @@ -10127,7 +11639,7 @@ msgstr "" msgid "" "Container by itself serves no purpose unless a script configures it's " "children placement behavior.\n" -"If you dont't intend to add a script, then please use a plain 'Control' node " +"If you don't intend to add a script, then please use a plain 'Control' node " "instead." msgstr "" @@ -10139,11 +11651,6 @@ msgstr "Cảnh báo!" msgid "Please Confirm..." msgstr "Xin hãy xác nháºn..." -#: scene/gui/file_dialog.cpp -#, fuzzy -msgid "Go to parent folder." -msgstr "Äến folder parent" - #: scene/gui/popup.cpp msgid "" "Popups will hide by default unless you call popup() or any of the popup*() " @@ -10219,6 +11726,30 @@ msgstr "" msgid "Varyings can only be assigned in vertex function." msgstr "" +#: servers/visual/shader_language.cpp +msgid "Constants cannot be modified." +msgstr "" + +#, fuzzy +#~ msgid "Path to Node:" +#~ msgstr "ÄÆ°á»ng đến Node:" + +#, fuzzy +#~ msgid "Go to parent folder" +#~ msgstr "Äến folder parent" + +#~ msgid "Open Scene(s)" +#~ msgstr "Mở Scene" + +#~ msgid "Previous Directory" +#~ msgstr "Thư mục trước" + +#~ msgid "Next Directory" +#~ msgstr "Thư mục tiếp theo" + +#~ msgid "Custom Node" +#~ msgstr "Node tùy chá»n" + #~ msgid "Line:" #~ msgstr "Dòng:" @@ -10255,9 +11786,6 @@ msgstr "" #~ msgid "Class List:" #~ msgstr "Danh sách Class:" -#~ msgid "Search Classes" -#~ msgstr "Tìm Class" - #, fuzzy #~ msgid "Toggle folder status as Favorite." #~ msgstr "(Bá») Chá»n thư mục Hay sá» dụng" @@ -10286,9 +11814,6 @@ msgstr "" #~ msgid "Rotate 270 degrees" #~ msgstr "Xoay 270 độ" -#~ msgid "Disabled" -#~ msgstr "Tắt" - #~ msgid "Move Anim Track Up" #~ msgstr "Di chuyển Anim Track lên trên" diff --git a/editor/translations/zh_CN.po b/editor/translations/zh_CN.po index 3e03b0e8ff..230854316d 100644 --- a/editor/translations/zh_CN.po +++ b/editor/translations/zh_CN.po @@ -10,7 +10,7 @@ # ageazrael <ageazrael@gmail.com>, 2016. # Bruce Guo <guoboism@hotmail.com>, 2016. # dragonandy <dragonandy@foxmail.com>, 2017-2018. -# Geequlim <geequlim@gmail.com>, 2016-2018. +# Geequlim <geequlim@gmail.com>, 2016-2018, 2019. # jie Shi <meishijiemeimeimei@gmail.com>, 2018. # Jingtian Pan <panjingtian@126.com>, 2018. # lalalaring <783482203@qq.com>, 2017, 2018. @@ -44,12 +44,14 @@ # simano clio <sim2cle@gmail.com>, 2019. # ByonkoGalilei <byonko@qq.com>, 2019. # qjyqjyqjyqjy <qjyqjyqjyqjy@sina.com.cn>, 2019. +# liushuyu011 <liushuyu011@gmail.com>, 2019. +# DS <dseqrasd@126.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-04-23 15:48+0000\n" -"Last-Translator: qjyqjyqjyqjy <qjyqjyqjyqjy@sina.com.cn>\n" +"PO-Revision-Date: 2019-06-16 19:42+0000\n" +"Last-Translator: yzt <834950797@qq.com>\n" "Language-Team: Chinese (Simplified) <https://hosted.weblate.org/projects/" "godot-engine/godot/zh_Hans/>\n" "Language: zh_CN\n" @@ -111,6 +113,15 @@ msgstr "平衡的" msgid "Mirror" msgstr "镜åƒ" +#: editor/animation_bezier_editor.cpp editor/editor_profiler.cpp +msgid "Time:" +msgstr "æ—¶é—´:" + +#: editor/animation_bezier_editor.cpp +#, fuzzy +msgid "Value:" +msgstr "值" + #: editor/animation_bezier_editor.cpp msgid "Insert Key Here" msgstr "æ¤å¤„æ’入帧" @@ -193,14 +204,18 @@ msgid "Animation Playback Track" msgstr "动画回放轨é“" #: editor/animation_track_editor.cpp -msgid "Add Track" -msgstr "æ·»åŠ è½¨é“" +msgid "Animation length (frames)" +msgstr "动画时长(帧)" #: editor/animation_track_editor.cpp -msgid "Animation Length Time (seconds)" +msgid "Animation length (seconds)" msgstr "动画时长(秒)" #: editor/animation_track_editor.cpp +msgid "Add Track" +msgstr "æ·»åŠ è½¨é“" + +#: editor/animation_track_editor.cpp msgid "Animation Looping" msgstr "动画循环" @@ -324,11 +339,13 @@ msgid "Create %d NEW tracks and insert keys?" msgstr "创建%d个新轨é“å¹¶æ’入关键帧?" #: editor/animation_track_editor.cpp editor/create_dialog.cpp -#: editor/editor_audio_buses.cpp editor/editor_plugin_settings.cpp -#: editor/plugin_config_dialog.cpp +#: editor/editor_audio_buses.cpp editor/editor_feature_profile.cpp +#: editor/editor_plugin_settings.cpp editor/plugin_config_dialog.cpp #: editor/plugins/abstract_polygon_2d_editor.cpp #: editor/plugins/mesh_instance_editor_plugin.cpp -#: editor/plugins/particles_editor_plugin.cpp editor/script_create_dialog.cpp +#: editor/plugins/particles_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_create_dialog.cpp msgid "Create" msgstr "创建" @@ -442,6 +459,23 @@ msgid "" msgstr "æ¤é€‰é¡¹ä¸é€‚用于Bezierç¼–è¾‘ï¼Œå› ä¸ºå®ƒåªæ˜¯ä¸€ä¸ªè½¨è¿¹ã€‚" #: editor/animation_track_editor.cpp +msgid "" +"This animation belongs to an imported scene, so changes to imported tracks " +"will not be saved.\n" +"\n" +"To enable the ability to add custom tracks, navigate to the scene's import " +"settings and set\n" +"\"Animation > Storage\" to \"Files\", enable \"Animation > Keep Custom Tracks" +"\", then re-import.\n" +"Alternatively, use an import preset that imports animations to separate " +"files." +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Warning: Editing imported animation" +msgstr "" + +#: editor/animation_track_editor.cpp msgid "Only show tracks from nodes selected in tree." msgstr "ä»…æ˜¾ç¤ºåœ¨æ ‘ä¸é€‰æ‹©çš„节点的轨é“。" @@ -450,9 +484,8 @@ msgid "Group tracks by node or display them as plain list." msgstr "按节点分组或将它们显示为普通列表。" #: editor/animation_track_editor.cpp -#, fuzzy msgid "Snap:" -msgstr "å¸é™„" +msgstr "å¸é™„:" #: editor/animation_track_editor.cpp msgid "Animation step value." @@ -460,7 +493,7 @@ msgstr "动画æ¥è¿›å€¼ã€‚" #: editor/animation_track_editor.cpp msgid "Seconds" -msgstr "" +msgstr "ç§’" #: editor/animation_track_editor.cpp msgid "FPS" @@ -575,7 +608,8 @@ msgstr "缩放比率:" msgid "Select tracks to copy:" msgstr "选择è¦å¤åˆ¶çš„轨é“:" -#: editor/animation_track_editor.cpp editor/editor_properties.cpp +#: editor/animation_track_editor.cpp editor/editor_log.cpp +#: editor/editor_properties.cpp #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp @@ -643,6 +677,11 @@ msgstr "全部替æ¢" msgid "Selection Only" msgstr "仅选ä¸" +#: editor/code_editor.cpp editor/plugins/script_text_editor.cpp +#: editor/plugins/text_editor.cpp +msgid "Standard" +msgstr "æ ‡å‡†" + #: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/texture_region_editor_plugin.cpp #: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp @@ -668,19 +707,37 @@ msgid "Line and column numbers." msgstr "行å·å’Œåˆ—å·ã€‚" #: editor/connections_dialog.cpp -msgid "Method in target Node must be specified!" +#, fuzzy +msgid "Method in target node must be specified." msgstr "å¿…é¡»æŒ‡å®šç›®æ ‡èŠ‚ç‚¹çš„æ–¹æ³•ï¼" #: editor/connections_dialog.cpp +#, fuzzy msgid "" -"Target method not found! Specify a valid method or attach a script to target " -"Node." +"Target method not found. Specify a valid method or attach a script to the " +"target node." msgstr "找ä¸åˆ°ç›®æ ‡æ–¹æ³•ï¼ è¯·æŒ‡å®šä¸€ä¸ªæœ‰æ•ˆçš„æ–¹æ³•æˆ–æŠŠè„šæœ¬é™„åŠ åˆ°ç›®æ ‡èŠ‚ç‚¹ã€‚" #: editor/connections_dialog.cpp -msgid "Connect To Node:" +#, fuzzy +msgid "Connect to Node:" msgstr "连接到节点:" +#: editor/connections_dialog.cpp +#, fuzzy +msgid "Connect to Script:" +msgstr "æ— æ³•è¿žæŽ¥åˆ°æœåС噍:" + +#: editor/connections_dialog.cpp +#, fuzzy +msgid "From Signal:" +msgstr "ä¿¡å·:" + +#: editor/connections_dialog.cpp +#, fuzzy +msgid "Scene does not contain any script." +msgstr "节点ä¸åŒ…å«å‡ 何。" + #: editor/connections_dialog.cpp editor/editor_autoload_settings.cpp #: editor/groups_editor.cpp editor/plugins/item_list_editor_plugin.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_settings_editor.cpp @@ -688,10 +745,12 @@ msgid "Add" msgstr "æ·»åŠ " #: editor/connections_dialog.cpp editor/dependency_editor.cpp -#: editor/groups_editor.cpp editor/plugins/animation_player_editor_plugin.cpp +#: editor/editor_feature_profile.cpp editor/groups_editor.cpp +#: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp #: editor/plugins/resource_preloader_editor_plugin.cpp -#: editor/plugins/theme_editor_plugin.cpp editor/project_manager.cpp +#: editor/plugins/theme_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_manager.cpp #: editor/project_settings_editor.cpp msgid "Remove" msgstr "移除" @@ -705,21 +764,32 @@ msgid "Extra Call Arguments:" msgstr "é¢å¤–è°ƒç”¨å‚æ•°:" #: editor/connections_dialog.cpp -msgid "Path to Node:" -msgstr "节点路径:" - -#: editor/connections_dialog.cpp -msgid "Make Function" -msgstr "创建方法" +#, fuzzy +msgid "Advanced" +msgstr "高级选项" #: editor/connections_dialog.cpp msgid "Deferred" msgstr "å»¶æ—¶" #: editor/connections_dialog.cpp +msgid "" +"Defers the signal, storing it in a queue and only firing it at idle time." +msgstr "" + +#: editor/connections_dialog.cpp msgid "Oneshot" msgstr "啿¬¡" +#: editor/connections_dialog.cpp +msgid "Disconnects the signal after its first emission." +msgstr "" + +#: editor/connections_dialog.cpp +#, fuzzy +msgid "Cannot connect signal" +msgstr "连接信å·ï¼š " + #: editor/connections_dialog.cpp editor/dependency_editor.cpp #: editor/export_template_manager.cpp editor/groups_editor.cpp #: editor/plugins/animation_player_editor_plugin.cpp @@ -760,11 +830,13 @@ msgid "Disconnect" msgstr "åˆ é™¤ä¿¡å·è¿žæŽ¥" #: editor/connections_dialog.cpp -msgid "Connect Signal: " +#, fuzzy +msgid "Connect a Signal to a Method" msgstr "连接信å·ï¼š " #: editor/connections_dialog.cpp -msgid "Edit Connection: " +#, fuzzy +msgid "Edit Connection:" msgstr "编辑广æ’订阅: " #: editor/connections_dialog.cpp @@ -796,7 +868,6 @@ msgid "Change %s Type" msgstr "更改%s类型" #: editor/create_dialog.cpp editor/project_settings_editor.cpp -#: modules/visual_script/visual_script_editor.cpp msgid "Change" msgstr "更改" @@ -827,7 +898,8 @@ msgid "Matches:" msgstr "匹é…项:" #: editor/create_dialog.cpp editor/plugin_config_dialog.cpp -#: editor/plugins/asset_library_editor_plugin.cpp editor/property_selector.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/property_selector.cpp #: modules/visual_script/visual_script_property_selector.cpp msgid "Description:" msgstr "æè¿°:" @@ -841,15 +913,17 @@ msgid "Dependencies For:" msgstr "ä¾èµ–项:" #: editor/dependency_editor.cpp +#, fuzzy msgid "" "Scene '%s' is currently being edited.\n" -"Changes will not take effect unless reloaded." +"Changes will only take effect when reloaded." msgstr "场景'%s'å·²è¢«ä¿®æ”¹ï¼Œé‡æ–°åŠ è½½åŽç”Ÿæ•ˆã€‚" #: editor/dependency_editor.cpp +#, fuzzy msgid "" "Resource '%s' is in use.\n" -"Changes will take effect when reloaded." +"Changes will only take effect when reloaded." msgstr "资æº'%s'æ£åœ¨ä½¿ç”¨ä¸ï¼Œä¿®æ”¹å°†åœ¨é‡æ–°åŠ è½½åŽç”Ÿæ•ˆã€‚" #: editor/dependency_editor.cpp @@ -940,21 +1014,14 @@ msgid "Permanently delete %d item(s)? (No undo!)" msgstr "æ°¸ä¹…åˆ é™¤é€‰ä¸çš„%dæ¡é¡¹ç›®å—ï¼Ÿï¼ˆæ¤æ“ä½œæ— æ³•æ’¤é”€ï¼ï¼‰" #: editor/dependency_editor.cpp -msgid "Owns" -msgstr "拥有对象" - -#: editor/dependency_editor.cpp -msgid "Resources Without Explicit Ownership:" -msgstr "没有指定所属关系的资æº:" +#, fuzzy +msgid "Show Dependencies" +msgstr "ä¾èµ–" #: editor/dependency_editor.cpp editor/editor_node.cpp msgid "Orphan Resource Explorer" msgstr "查看å¤ç«‹èµ„æº" -#: editor/dependency_editor.cpp -msgid "Delete selected files?" -msgstr "åˆ é™¤é€‰ä¸çš„æ–‡ä»¶ï¼Ÿ" - #: editor/dependency_editor.cpp editor/editor_audio_buses.cpp #: editor/editor_file_dialog.cpp editor/editor_node.cpp #: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp @@ -963,6 +1030,14 @@ msgstr "åˆ é™¤é€‰ä¸çš„æ–‡ä»¶ï¼Ÿ" msgid "Delete" msgstr "åˆ é™¤" +#: editor/dependency_editor.cpp +msgid "Owns" +msgstr "拥有对象" + +#: editor/dependency_editor.cpp +msgid "Resources Without Explicit Ownership:" +msgstr "没有指定所属关系的资æº:" + #: editor/dictionary_property_edit.cpp msgid "Change Dictionary Key" msgstr "修改关键å—" @@ -1074,7 +1149,7 @@ msgstr "软件包安装æˆåŠŸï¼" msgid "Success!" msgstr "æˆåŠŸï¼" -#: editor/editor_asset_installer.cpp +#: editor/editor_asset_installer.cpp editor/editor_node.cpp #: editor/plugins/asset_library_editor_plugin.cpp msgid "Install" msgstr "安装" @@ -1201,8 +1276,12 @@ msgid "Open Audio Bus Layout" msgstr "打开音频Bus布局" #: editor/editor_audio_buses.cpp -msgid "There is no 'res://default_bus_layout.tres' file." -msgstr "ä¸å˜åœ¨'res://default_bus_layout.tres'文件。" +msgid "There is no '%s' file." +msgstr "" + +#: editor/editor_audio_buses.cpp editor/plugins/canvas_item_editor_plugin.cpp +msgid "Layout" +msgstr "布局" #: editor/editor_audio_buses.cpp msgid "Invalid file, not an audio bus layout." @@ -1255,18 +1334,25 @@ msgid "Valid characters:" msgstr "å—ç¬¦åˆæ³•:" #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing engine class name." +#, fuzzy +msgid "Must not collide with an existing engine class name." msgstr "åç§°éžæ³•,与引擎内置类型å称冲çªã€‚" #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing buit-in type name." +#, fuzzy +msgid "Must not collide with an existing buit-in type name." msgstr "åç§°éžæ³•,与引擎内置类型å称冲çªã€‚" #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing global constant name." +#, fuzzy +msgid "Must not collide with an existing global constant name." msgstr "åç§°éžæ³•,与已å˜åœ¨çš„全局常é‡å称冲çªã€‚" #: editor/editor_autoload_settings.cpp +msgid "Keyword cannot be used as an autoload name." +msgstr "" + +#: editor/editor_autoload_settings.cpp msgid "Autoload '%s' already exists!" msgstr "Autoload '%s'å·²å˜åœ¨ï¼" @@ -1294,11 +1380,12 @@ msgstr "å¯ç”¨" msgid "Rearrange Autoloads" msgstr "釿ޒåºAutoload" -#: editor/editor_autoload_settings.cpp -msgid "Invalid Path." +#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp +#, fuzzy +msgid "Invalid path." msgstr "è·¯å¾„éžæ³•。" -#: editor/editor_autoload_settings.cpp +#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp msgid "File does not exist." msgstr "文件ä¸å˜åœ¨ã€‚" @@ -1349,7 +1436,8 @@ msgid "[unsaved]" msgstr "[未ä¿å˜]" #: editor/editor_dir_dialog.cpp -msgid "Please select a base directory first" +#, fuzzy +msgid "Please select a base directory first." msgstr "请先选择一个目录" #: editor/editor_dir_dialog.cpp @@ -1357,7 +1445,8 @@ msgid "Choose a Directory" msgstr "选择目录" #: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp -#: editor/filesystem_dock.cpp scene/gui/file_dialog.cpp +#: editor/filesystem_dock.cpp editor/project_manager.cpp +#: scene/gui/file_dialog.cpp msgid "Create Folder" msgstr "新建目录" @@ -1427,6 +1516,178 @@ msgstr "找ä¸åˆ°è‡ªå®šä¹‰å‘布包。" msgid "Template file not found:" msgstr "找ä¸åˆ°æ¨¡æ¿æ–‡ä»¶:" +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "3D Editor" +msgstr "编辑器" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Script Editor" +msgstr "打开脚本编辑器" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Asset Library" +msgstr "打开资æºå•†åº—" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Scene Tree Editing" +msgstr "åœºæ™¯æ ‘:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Import Dock" +msgstr "导入" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Node Dock" +msgstr "节点已移动" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Filesystem Dock" +msgstr "文件系统" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Erase profile '%s'? (no undo)" +msgstr "全部替æ¢ï¼ˆæ— 法撤销)" + +#: editor/editor_feature_profile.cpp +msgid "Profile must be a valid filename and must not contain '.'" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Profile with this name already exists." +msgstr "åŒå的文件夹已ç»å˜åœ¨ã€‚" + +#: editor/editor_feature_profile.cpp +msgid "(Editor Disabled, Properties Disabled)" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "(Properties Disabled)" +msgstr "仅属性" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "(Editor Disabled)" +msgstr "ç¦ç”¨å‰ªè¾‘" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Class Options:" +msgstr "类说明:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enable Contextual Editor" +msgstr "打开下一个编辑器" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enabled Properties:" +msgstr "属性:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enabled Features:" +msgstr "功能" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enabled Classes:" +msgstr "æœç´¢ç±»åž‹" + +#: editor/editor_feature_profile.cpp +msgid "File '%s' format is invalid, import aborted." +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "" +"Profile '%s' already exists. Remote it first before importing, import " +"aborted." +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Error saving profile to path: '%s'." +msgstr "åŠ è½½æ¨¡æ¿ %s 时出错" + +#: editor/editor_feature_profile.cpp +msgid "Unset" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Current Profile" +msgstr "当å‰ç‰ˆæœ¬:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Make Current" +msgstr "当å‰:" + +#: editor/editor_feature_profile.cpp +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "New" +msgstr "新建" + +#: editor/editor_feature_profile.cpp editor/editor_node.cpp +#: editor/plugins/asset_library_editor_plugin.cpp editor/project_manager.cpp +msgid "Import" +msgstr "导入" + +#: editor/editor_feature_profile.cpp editor/editor_node.cpp +#: editor/project_export.cpp +msgid "Export" +msgstr "导出" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Available Profiles" +msgstr "有效节点:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enabled Classes" +msgstr "æœç´¢ç±»åž‹" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Class Options" +msgstr "类说明" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "New profile name:" +msgstr "æ–°åç§°:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Erase Profile" +msgstr "擦除区域" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Import Profile(s)" +msgstr "已导入的项目" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Export Profile" +msgstr "导出项目" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Manage Editor Feature Profiles" +msgstr "管ç†å¯¼å‡ºæ¨¡æ¿" + #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Select Current Folder" msgstr "选择当å‰ç›®å½•" @@ -1447,8 +1708,8 @@ msgstr "æ‹·è´è·¯å¾„" msgid "Open in File Manager" msgstr "在文件管ç†å™¨ä¸æ‰“å¼€" -#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp -#: editor/project_manager.cpp +#: editor/editor_file_dialog.cpp editor/editor_node.cpp +#: editor/filesystem_dock.cpp editor/project_manager.cpp msgid "Show in File Manager" msgstr "在文件管ç†å™¨ä¸æ˜¾ç¤º" @@ -1507,7 +1768,7 @@ msgstr "å‰è¿›" msgid "Go Up" msgstr "上一级" -#: editor/editor_file_dialog.cpp +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Toggle Hidden Files" msgstr "åˆ‡æ¢æ˜¾ç¤ºéšè—文件" @@ -1539,14 +1800,19 @@ msgstr "上一个文件夹" msgid "Next Folder" msgstr "下一个文件夹" -#: editor/editor_file_dialog.cpp -msgid "Go to parent folder" -msgstr "转到上层文件夹" +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp +msgid "Go to parent folder." +msgstr "转到父文件夹。" #: editor/editor_file_dialog.cpp msgid "(Un)favorite current folder." msgstr "ï¼ˆå–æ¶ˆï¼‰æ”¶è—当剿–‡ä»¶å¤¹ã€‚" +#: editor/editor_file_dialog.cpp +#, fuzzy +msgid "Toggle visibility of hidden files." +msgstr "åˆ‡æ¢æ˜¾ç¤ºéšè—文件" + #: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp msgid "View items as a grid of thumbnails." msgstr "ä»¥ç½‘æ ¼ç¼©ç•¥å›¾å½¢å¼æŸ¥çœ‹æ‰€æœ‰é¡¹ã€‚" @@ -1561,6 +1827,7 @@ msgstr "目录|文件:" #: editor/editor_file_dialog.cpp editor/plugins/sprite_editor_plugin.cpp #: editor/plugins/style_box_editor_plugin.cpp +#: editor/plugins/theme_editor_plugin.cpp msgid "Preview:" msgstr "预览:" @@ -1577,6 +1844,12 @@ msgid "ScanSources" msgstr "æ‰«ææºæ–‡ä»¶" #: editor/editor_file_system.cpp +msgid "" +"There are multiple importers for different types pointing to file %s, import " +"aborted" +msgstr "" + +#: editor/editor_file_system.cpp msgid "(Re)Importing Assets" msgstr "导入(釿–°)资æº" @@ -1758,6 +2031,10 @@ msgstr "设置乘数:" msgid "Output:" msgstr "日志:" +#: editor/editor_log.cpp editor/plugins/tile_map_editor_plugin.cpp +msgid "Copy Selection" +msgstr "å¤åˆ¶é€‰æ‹©" + #: editor/editor_log.cpp editor/editor_profiler.cpp #: editor/editor_properties.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp @@ -1907,9 +2184,10 @@ msgstr "" "请阅读与导入场景相关的文档, 以便更好地ç†è§£æ¤å·¥ä½œæµã€‚" #: editor/editor_node.cpp +#, fuzzy msgid "" "This resource belongs to a scene that was instanced or inherited.\n" -"Changes to it will not be kept when saving the current scene." +"Changes to it won't be kept when saving the current scene." msgstr "" "æ¤èµ„æºå±žäºŽå®žä¾‹æˆ–继承的场景。\n" "ä¿å˜å½“å‰åœºæ™¯æ—¶ä¸ä¼šä¿ç•™å¯¹å®ƒçš„æ›´æ”¹ã€‚" @@ -1922,8 +2200,9 @@ msgstr "" "æ¤èµ„æºå·²å¯¼å…¥, å› æ¤æ— 法编辑。在 \"导入\" 颿¿ä¸æ›´æ”¹å…¶è®¾ç½®, ç„¶åŽé‡æ–°å¯¼å…¥ã€‚" #: editor/editor_node.cpp +#, fuzzy msgid "" -"This scene was imported, so changes to it will not be kept.\n" +"This scene was imported, so changes to it won't be kept.\n" "Instancing it or inheriting will allow making changes to it.\n" "Please read the documentation relevant to importing scenes to better " "understand this workflow." @@ -1933,8 +2212,9 @@ msgstr "" "请阅读与导入场景相关的文档, 以便更好地ç†è§£æ¤å·¥ä½œæµã€‚" #: editor/editor_node.cpp +#, fuzzy msgid "" -"This is a remote object so changes to it will not be kept.\n" +"This is a remote object, so changes to it won't be kept.\n" "Please read the documentation relevant to debugging to better understand " "this workflow." msgstr "" @@ -1946,33 +2226,6 @@ msgid "There is no defined scene to run." msgstr "æ²¡æœ‰è®¾ç½®è¦æ‰§è¡Œçš„场景。" #: editor/editor_node.cpp -msgid "" -"No main scene has ever been defined, select one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" -"尚未定义主场景, 现在选择一个å—?\n" -"ä½ ä¹Ÿå¯ä»¥ç¨åŽåœ¨é¡¹ç›®è®¾ç½®çš„application分类下修改。" - -#: editor/editor_node.cpp -msgid "" -"Selected scene '%s' does not exist, select a valid one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" -"所选场景'ï¼…s'ä¸å˜åœ¨ï¼Œé€‰æ‹©ä¸€ä¸ªæœ‰æ•ˆçš„场景?\n" -"请在项目设置的application(应用程åº)分类下设置选择主场景。" - -#: editor/editor_node.cpp -msgid "" -"Selected scene '%s' is not a scene file, select a valid one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" -"选ä¸çš„%s场景并éžä¸€ä¸ªåœºæ™¯æ–‡ä»¶ï¼Œè¯·é€‰æ‹©åˆæ³•的场景。\n" -"请在项目设置的application(应用程åº)分类下设置选择主场景。" - -#: editor/editor_node.cpp msgid "Current scene was never saved, please save it prior to running." msgstr "当å‰åœºæ™¯å°šæœªä¿å˜ï¼Œè¯·ä¿å˜åŽå†å°è¯•执行。" @@ -1980,7 +2233,7 @@ msgstr "当å‰åœºæ™¯å°šæœªä¿å˜ï¼Œè¯·ä¿å˜åŽå†å°è¯•执行。" msgid "Could not start subprocess!" msgstr "æ— æ³•å¯åЍå进程ï¼" -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/filesystem_dock.cpp msgid "Open Scene" msgstr "打开场景" @@ -1989,6 +2242,11 @@ msgid "Open Base Scene" msgstr "打开父场景" #: editor/editor_node.cpp +#, fuzzy +msgid "Quick Open..." +msgstr "快速打开场景..." + +#: editor/editor_node.cpp msgid "Quick Open Scene..." msgstr "快速打开场景..." @@ -2134,8 +2392,8 @@ msgid "" "Scene '%s' was automatically imported, so it can't be modified.\n" "To make changes to it, a new inherited scene can be created." msgstr "" -"自动导入的场景'ï¼…s'æ— æ³•ä¿®æ”¹ã€‚\n" -"å¦‚è¦æ›´æ”¹ï¼Œè¯·åˆ›å»ºä¸€ä¸ªæ–°çš„备份场景。" +"场景 '%s' 已自动导入, å› æ¤æ— 法修改。\n" +"è‹¥è¦å¯¹å…¶è¿›è¡Œæ›´æ”¹, å¯ä»¥åˆ›å»ºæ–°çš„继承场景。" #: editor/editor_node.cpp msgid "" @@ -2153,6 +2411,33 @@ msgid "Clear Recent Scenes" msgstr "清除近期的场景" #: editor/editor_node.cpp +msgid "" +"No main scene has ever been defined, select one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" +"尚未定义主场景, 现在选择一个å—?\n" +"ä½ ä¹Ÿå¯ä»¥ç¨åŽåœ¨é¡¹ç›®è®¾ç½®çš„application分类下修改。" + +#: editor/editor_node.cpp +msgid "" +"Selected scene '%s' does not exist, select a valid one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" +"所选场景'ï¼…s'ä¸å˜åœ¨ï¼Œé€‰æ‹©ä¸€ä¸ªæœ‰æ•ˆçš„场景?\n" +"请在项目设置的application(应用程åº)分类下设置选择主场景。" + +#: editor/editor_node.cpp +msgid "" +"Selected scene '%s' is not a scene file, select a valid one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" +"选ä¸çš„%s场景并éžä¸€ä¸ªåœºæ™¯æ–‡ä»¶ï¼Œè¯·é€‰æ‹©åˆæ³•的场景。\n" +"请在项目设置的application(应用程åº)分类下设置选择主场景。" + +#: editor/editor_node.cpp msgid "Save Layout" msgstr "ä¿å˜å¸ƒå±€" @@ -2178,6 +2463,19 @@ msgstr "è¿è¡Œæ¤åœºæ™¯" msgid "Close Tab" msgstr "关闿 ‡ç¾é¡µ" +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +msgid "Close Other Tabs" +msgstr "å…³é—å…¶ä»–æ ‡ç¾é¡µ" + +#: editor/editor_node.cpp +msgid "Close Tabs to the Right" +msgstr "" + +#: editor/editor_node.cpp +#, fuzzy +msgid "Close All Tabs" +msgstr "å…³é—全部" + #: editor/editor_node.cpp msgid "Switch Scene Tab" msgstr "切æ¢åœºæ™¯æ ‡ç¾é¡µ" @@ -2240,7 +2538,7 @@ msgstr "新建场景" #: editor/editor_node.cpp msgid "New Inherited Scene..." -msgstr "从现有场景ä¸åˆ›å»º..." +msgstr "新建继承的场景…" #: editor/editor_node.cpp msgid "Open Scene..." @@ -2300,10 +2598,6 @@ msgstr "项目" msgid "Project Settings" msgstr "项目设置" -#: editor/editor_node.cpp editor/project_export.cpp -msgid "Export" -msgstr "导出" - #: editor/editor_node.cpp editor/plugins/tile_set_editor_plugin.cpp msgid "Tools" msgstr "工具" @@ -2313,6 +2607,10 @@ msgid "Open Project Data Folder" msgstr "æ‰“å¼€é¡¹ç›®æ•°æ®æ–‡ä»¶å¤¹" #: editor/editor_node.cpp +msgid "Install Android Build Template" +msgstr "" + +#: editor/editor_node.cpp msgid "Quit to Project List" msgstr "退出到项目列表" @@ -2426,6 +2724,11 @@ msgstr "æ‰“å¼€ç¼–è¾‘å™¨æ•°æ®æ–‡ä»¶å¤¹" msgid "Open Editor Settings Folder" msgstr "æ‰“å¼€â€œç¼–è¾‘å™¨è®¾ç½®â€æ–‡ä»¶å¤¹" +#: editor/editor_node.cpp +#, fuzzy +msgid "Manage Editor Features" +msgstr "管ç†å¯¼å‡ºæ¨¡æ¿" + #: editor/editor_node.cpp editor/project_export.cpp msgid "Manage Export Templates" msgstr "管ç†å¯¼å‡ºæ¨¡æ¿" @@ -2438,6 +2741,7 @@ msgstr "帮助" #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp #: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp #: editor/project_settings_editor.cpp editor/rename_dialog.cpp msgid "Search" msgstr "æœç´¢" @@ -2527,11 +2831,6 @@ msgstr "有更改时更新UI" msgid "Disable Update Spinner" msgstr "ç¦ç”¨è‡ªåŠ¨æ›´æ–°" -#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp -#: editor/project_manager.cpp -msgid "Import" -msgstr "导入" - #: editor/editor_node.cpp msgid "FileSystem" msgstr "文件系统" @@ -2557,6 +2856,28 @@ msgid "Don't Save" msgstr "ä¸ä¿å˜" #: editor/editor_node.cpp +msgid "Android build template is missing, please install relevant templates." +msgstr "" + +#: editor/editor_node.cpp +#, fuzzy +msgid "Manage Templates" +msgstr "管ç†å¯¼å‡ºæ¨¡æ¿" + +#: editor/editor_node.cpp +msgid "" +"This will install the Android project for custom builds.\n" +"Note that, in order to use it, it needs to be enabled per export preset." +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"Android build template is already installed and it won't be overwritten.\n" +"Remove the \"build\" directory manually before attempting this operation " +"again." +msgstr "" + +#: editor/editor_node.cpp msgid "Import Templates From ZIP File" msgstr "从ZIP文件ä¸å¯¼å…¥æ¨¡æ¿" @@ -2679,10 +3000,6 @@ msgid "Physics Frame %" msgstr "物ç†å¸§é€Ÿçއ %" #: editor/editor_profiler.cpp -msgid "Time:" -msgstr "æ—¶é—´:" - -#: editor/editor_profiler.cpp msgid "Inclusive" msgstr "包å«" @@ -2821,10 +3138,6 @@ msgid "Remove Item" msgstr "移除项目" #: editor/editor_run_native.cpp -msgid "Select device from the list" -msgstr "从列表ä¸é€‰æ‹©è®¾å¤‡" - -#: editor/editor_run_native.cpp msgid "" "No runnable export preset found for this platform.\n" "Please add a runnable preset in the export menu." @@ -2860,6 +3173,10 @@ msgstr "您是å¦é—æ¼äº†_run()方法?" msgid "Select Node(s) to Import" msgstr "选择è¦å¯¼å…¥çš„节点" +#: editor/editor_sub_scene.cpp editor/project_manager.cpp +msgid "Browse" +msgstr "æµè§ˆ" + #: editor/editor_sub_scene.cpp msgid "Scene Path:" msgstr "场景路径:" @@ -3022,6 +3339,11 @@ msgid "SSL Handshake Error" msgstr "SSL æ¡æ‰‹é”™è¯¯" #: editor/export_template_manager.cpp +#, fuzzy +msgid "Uncompressing Android Build Sources" +msgstr "æ— åŽ‹ç¼©èµ„æº" + +#: editor/export_template_manager.cpp msgid "Current Version:" msgstr "当å‰ç‰ˆæœ¬:" @@ -3038,7 +3360,8 @@ msgid "Remove Template" msgstr "移除模æ¿" #: editor/export_template_manager.cpp -msgid "Select template file" +#, fuzzy +msgid "Select Template File" msgstr "åˆ é™¤é€‰ä¸æ¨¡æ¿æ–‡ä»¶" #: editor/export_template_manager.cpp @@ -3094,7 +3417,8 @@ msgid "No name provided." msgstr "没有æä¾›ä»»ä½•å称。" #: editor/filesystem_dock.cpp -msgid "Provided name contains invalid characters" +#, fuzzy +msgid "Provided name contains invalid characters." msgstr "æä¾›çš„åç§°åŒ…å«æ— 效å—符" #: editor/filesystem_dock.cpp @@ -3122,7 +3446,13 @@ msgid "Duplicating folder:" msgstr "å¤åˆ¶æ–‡ä»¶å¤¹:" #: editor/filesystem_dock.cpp -msgid "Open Scene(s)" +#, fuzzy +msgid "New Inherited Scene" +msgstr "新建继承的场景…" + +#: editor/filesystem_dock.cpp +#, fuzzy +msgid "Open Scenes" msgstr "打开场景" #: editor/filesystem_dock.cpp @@ -3130,11 +3460,13 @@ msgid "Instance" msgstr "创建实例节点" #: editor/filesystem_dock.cpp -msgid "Add to favorites" +#, fuzzy +msgid "Add to Favorites" msgstr "æ·»åŠ åˆ°æ”¶è—夹" #: editor/filesystem_dock.cpp -msgid "Remove from favorites" +#, fuzzy +msgid "Remove from Favorites" msgstr "从收è—夹ä¸åˆ 除" #: editor/filesystem_dock.cpp @@ -3165,11 +3497,13 @@ msgstr "新建脚本…" msgid "New Resource..." msgstr "新建资æºâ€¦" -#: editor/filesystem_dock.cpp editor/script_editor_debugger.cpp +#: editor/filesystem_dock.cpp editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_editor_debugger.cpp msgid "Expand All" msgstr "全部展开" -#: editor/filesystem_dock.cpp editor/script_editor_debugger.cpp +#: editor/filesystem_dock.cpp editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_editor_debugger.cpp msgid "Collapse All" msgstr "全部折å " @@ -3181,19 +3515,22 @@ msgid "Rename" msgstr "é‡å‘½å" #: editor/filesystem_dock.cpp -msgid "Previous Directory" -msgstr "上一个目录" +#, fuzzy +msgid "Previous Folder/File" +msgstr "上一个文件夹" #: editor/filesystem_dock.cpp -msgid "Next Directory" -msgstr "下一个目录" +#, fuzzy +msgid "Next Folder/File" +msgstr "下一个文件夹" #: editor/filesystem_dock.cpp msgid "Re-Scan Filesystem" msgstr "釿–°æ‰«ææ–‡ä»¶ç³»ç»Ÿ" #: editor/filesystem_dock.cpp -msgid "Toggle split mode" +#, fuzzy +msgid "Toggle Split Mode" msgstr "åˆ‡æ¢æ‹†åˆ†æ¨¡å¼" #: editor/filesystem_dock.cpp @@ -3224,7 +3561,7 @@ msgstr "覆盖" msgid "Create Script" msgstr "创建脚本" -#: editor/find_in_files.cpp +#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp msgid "Find in Files" msgstr "åœ¨æ–‡ä»¶ä¸æŸ¥æ‰¾" @@ -3240,6 +3577,12 @@ msgstr "文件夹:" msgid "Filters:" msgstr "ç›é€‰ï¼š" +#: editor/find_in_files.cpp +msgid "" +"Include the files with the following extensions. Add or remove them in " +"ProjectSettings." +msgstr "" + #: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp msgid "Find..." @@ -3388,7 +3731,7 @@ msgstr "ä¿å˜ä¸..." #: editor/import_dock.cpp msgid "Set as Default for '%s'" -msgstr "将默认设置为 '%s'" +msgstr "设置为 '%s' 的默认值" #: editor/import_dock.cpp msgid "Clear Default for '%s'" @@ -3673,7 +4016,8 @@ msgid "Open Animation Node" msgstr "打开动画节点" #: editor/plugins/animation_blend_space_2d_editor.cpp -msgid "Triangle already exists" +#, fuzzy +msgid "Triangle already exists." msgstr "三角形已ç»å˜åœ¨" #: editor/plugins/animation_blend_space_2d_editor.cpp @@ -3748,7 +4092,6 @@ msgid "Node Moved" msgstr "节点已移动" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Unable to connect, port may be in use or connection may be invalid." msgstr "æ— æ³•è¿žæŽ¥ï¼Œç«¯å£å¯èƒ½è¢«å ç”¨æˆ–è€…è¿žæŽ¥æ— æ•ˆã€‚" @@ -3815,7 +4158,8 @@ msgid "Edit Filtered Tracks:" msgstr "编辑轨é“过滤器:" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -msgid "Enable filtering" +#, fuzzy +msgid "Enable Filtering" msgstr "å…许过滤" #: editor/plugins/animation_player_editor_plugin.cpp @@ -3930,10 +4274,6 @@ msgid "Animation" msgstr "动画" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "New" -msgstr "新建" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Edit Transitions..." msgstr "编辑过渡方å¼â€¦" @@ -3950,14 +4290,15 @@ msgid "Autoplay on Load" msgstr "åŠ è½½åŽè‡ªåŠ¨æ’æ”¾" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Onion Skinning" -msgstr "洋葱皮(Onion Skining)" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Enable Onion Skinning" msgstr "å¯ç”¨æ´‹è‘±çš®(Onion Skinning)" #: editor/plugins/animation_player_editor_plugin.cpp +#, fuzzy +msgid "Onion Skinning Options" +msgstr "洋葱皮(Onion Skining)" + +#: editor/plugins/animation_player_editor_plugin.cpp msgid "Directions" msgstr "æ–¹å‘" @@ -4500,14 +4841,20 @@ msgid "Move CanvasItem" msgstr "移动 CanvasItem" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"Children of containers have their anchors and margins values overridden by " +"their parent." +msgstr "容器的å级的锚点和边è·å€¼è¢«å…¶çˆ¶å®¹å™¨é‡å†™ã€‚" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Presets for the anchors and margins values of a Control node." msgstr "控件节点的定ä½ç‚¹å’Œè¾¹è·å€¼çš„预设。" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "" -"Children of containers have their anchors and margins values overridden by " -"their parent." -msgstr "容器的å级的锚点和边è·å€¼è¢«å…¶çˆ¶å®¹å™¨é‡å†™ã€‚" +"When active, moving Control nodes changes their anchors instead of their " +"margins." +msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Anchors only" @@ -4522,10 +4869,52 @@ msgid "Change Anchors" msgstr "编辑锚点" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Lock Selected" +msgstr "选择工具" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Unlock Selected" +msgstr "åˆ é™¤å·²é€‰ä¸" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Group Selected" +msgstr "å¤åˆ¶é€‰æ‹©" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Ungroup Selected" +msgstr "å¤åˆ¶é€‰æ‹©" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Paste Pose" msgstr "粘贴姿势" #: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Create Custom Bone(s) from Node(s)" +msgstr "从节点制作自定义骨骼" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Clear Bones" +msgstr "清除姿势" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Make IK Chain" +msgstr "æ·»åŠ IK链" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Clear IK Chain" +msgstr "清除IK链" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "" "Warning: Children of a container get their position and size determined only " "by their parent." @@ -4597,7 +4986,8 @@ msgid "Snapping Options" msgstr "å¸é™„选项" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to grid" +#, fuzzy +msgid "Snap to Grid" msgstr "å¸é™„åˆ°ç½‘æ ¼" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4618,31 +5008,38 @@ msgid "Use Pixel Snap" msgstr "使用åƒç´ å¸é™„" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Smart snapping" +#, fuzzy +msgid "Smart Snapping" msgstr "智能å¸é™„" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to parent" +#, fuzzy +msgid "Snap to Parent" msgstr "å¸é™„到父节点" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node anchor" +#, fuzzy +msgid "Snap to Node Anchor" msgstr "å¸é™„到node锚点" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node sides" +#, fuzzy +msgid "Snap to Node Sides" msgstr "å¸é™„到nodeè¾¹" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node center" +#, fuzzy +msgid "Snap to Node Center" msgstr "å¸é™„到节点ä¸å¿ƒä½ç½®" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to other nodes" +#, fuzzy +msgid "Snap to Other Nodes" msgstr "å¸é™„到其他node节点" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to guides" +#, fuzzy +msgid "Snap to Guides" msgstr "å¸é™„åˆ°æ ‡å°º" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4656,10 +5053,12 @@ msgid "Unlock the selected object (can be moved)." msgstr "è§£é”选ä¸å¯¹è±¡çš„ä½ç½®ã€‚" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Makes sure the object's children are not selectable." msgstr "ç¡®ä¿èŠ‚ç‚¹çš„å噿— 法被选ä¸ã€‚" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Restores the object's children's ability to be selected." msgstr "æ¢å¤èŠ‚ç‚¹çš„åå™èƒ½å¤Ÿè¢«é€‰ä¸ã€‚" @@ -4672,14 +5071,6 @@ msgid "Show Bones" msgstr "显示骨骼" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Make IK Chain" -msgstr "æ·»åŠ IK链" - -#: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Clear IK Chain" -msgstr "清除IK链" - -#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Make Custom Bone(s) from Node(s)" msgstr "从节点制作自定义骨骼" @@ -4730,25 +5121,27 @@ msgid "Frame Selection" msgstr "最大化显示选ä¸èŠ‚ç‚¹" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Layout" -msgstr "布局" +#, fuzzy +msgid "Preview Canvas Scale" +msgstr "ç²¾çµé›†é¢„览" #: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy msgid "Translation mask for inserting keys." -msgstr "" +msgstr "用于æ’å…¥é”®çš„è½¬æ¢æŽ©ç 。" #: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy msgid "Rotation mask for inserting keys." -msgstr "" +msgstr "用于æ’入键的旋转掩ç 。" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Scale mask for inserting keys." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Insert keys (based on mask)." -msgstr "æ’入关键帧( 创建轨é“)" +msgstr "æ’入帧(基于é®ç½©ï¼‰ã€‚" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "" @@ -4759,9 +5152,8 @@ msgid "" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy msgid "Auto Insert Key" -msgstr "æ’入关键帧" +msgstr "自动æ’入关键帧" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Insert Key (Existing Tracks)" @@ -4784,6 +5176,11 @@ msgid "Divide grid step by 2" msgstr "ç½‘æ ¼æ¥è¿›é™¤ä»¥2" #: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Pan View" +msgstr "Rear视图" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Add %s" msgstr "æ·»åŠ (Add) %s" @@ -4806,7 +5203,8 @@ msgid "Error instancing scene from %s" msgstr "从%s实例化场景出错" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Change default type" +#, fuzzy +msgid "Change Default Type" msgstr "修改默认值" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4894,20 +5292,22 @@ msgid "Create Emission Points From Node" msgstr "从节点创建å‘射器(Emission)" #: editor/plugins/curve_editor_plugin.cpp -msgid "Flat0" +#, fuzzy +msgid "Flat 0" msgstr "å¹³é¢0" #: editor/plugins/curve_editor_plugin.cpp -msgid "Flat1" +#, fuzzy +msgid "Flat 1" msgstr "å¹³é¢1" -#: editor/plugins/curve_editor_plugin.cpp -msgid "Ease in" -msgstr "æ¸å…¥" +#: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp +msgid "Ease In" +msgstr "缓入" -#: editor/plugins/curve_editor_plugin.cpp -msgid "Ease out" -msgstr "æ¸å‡º" +#: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp +msgid "Ease Out" +msgstr "缓出" #: editor/plugins/curve_editor_plugin.cpp msgid "Smoothstep" @@ -4926,23 +5326,28 @@ msgid "Load Curve Preset" msgstr "åŠ è½½æ›²çº¿é¢„è®¾" #: editor/plugins/curve_editor_plugin.cpp -msgid "Add point" +#, fuzzy +msgid "Add Point" msgstr "æ·»åŠ é¡¶ç‚¹" #: editor/plugins/curve_editor_plugin.cpp -msgid "Remove point" +#, fuzzy +msgid "Remove Point" msgstr "移除顶点" #: editor/plugins/curve_editor_plugin.cpp -msgid "Left linear" +#, fuzzy +msgid "Left Linear" msgstr "左线性" #: editor/plugins/curve_editor_plugin.cpp -msgid "Right linear" +#, fuzzy +msgid "Right Linear" msgstr "å³çº¿æ€§" #: editor/plugins/curve_editor_plugin.cpp -msgid "Load preset" +#, fuzzy +msgid "Load Preset" msgstr "åŠ è½½é¢„è®¾" #: editor/plugins/curve_editor_plugin.cpp @@ -4998,11 +5403,17 @@ msgid "This doesn't work on scene root!" msgstr "æ¤æ“ä½œæ— æ³•å¼•ç”¨åœ¨æ ¹èŠ‚ç‚¹ä¸Šï¼" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Trimesh Shape" +#, fuzzy +msgid "Create Trimesh Static Shape" msgstr "创建Trimesh(ä¸‰ç»´ç½‘æ ¼)形状" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Shape" +msgid "Failed creating shapes!" +msgstr "" + +#: editor/plugins/mesh_instance_editor_plugin.cpp +#, fuzzy +msgid "Create Convex Shape(s)" msgstr "创建 凸(Convex) 形状" #: editor/plugins/mesh_instance_editor_plugin.cpp @@ -5055,15 +5466,12 @@ msgid "Create Trimesh Static Body" msgstr "åˆ›å»ºä¸‰ç»´é™æ€èº«ä½“(Body)" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Static Body" -msgstr "创建凸(Convex ) 陿€ä½“" - -#: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Trimesh Collision Sibling" msgstr "创建三维碰撞åŒçº§" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Collision Sibling" +#, fuzzy +msgid "Create Convex Collision Sibling(s)" msgstr "创建凸(Convex)碰撞åŒçº§" #: editor/plugins/mesh_instance_editor_plugin.cpp @@ -5217,6 +5625,11 @@ msgid "Create Navigation Polygon" msgstr "创建导航多边形" #: editor/plugins/particles_2d_editor_plugin.cpp +#: editor/plugins/particles_editor_plugin.cpp +msgid "Convert to CPUParticles" +msgstr "转æ¢ä¸º CPUç²’å" + +#: editor/plugins/particles_2d_editor_plugin.cpp msgid "Generating Visibility Rect" msgstr "生æˆå¯è§†åŒ–区域" @@ -5230,11 +5643,6 @@ msgstr "å¯ä»¥è®¾ç½®ParticlesMaterial 点的æè´¨" #: editor/plugins/particles_2d_editor_plugin.cpp #: editor/plugins/particles_editor_plugin.cpp -msgid "Convert to CPUParticles" -msgstr "转æ¢ä¸º CPUç²’å" - -#: editor/plugins/particles_2d_editor_plugin.cpp -#: editor/plugins/particles_editor_plugin.cpp msgid "Generation Time (sec):" msgstr "ç”Ÿæˆæ—¶é—´ï¼ˆç§’):" @@ -5372,7 +5780,7 @@ msgstr "关闿›²çº¿" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp editor/plugins/theme_editor_plugin.cpp -#: editor/project_export.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_export.cpp msgid "Options" msgstr "选项" @@ -5423,7 +5831,8 @@ msgid "Split Segment (in curve)" msgstr "拆分(曲线)" #: editor/plugins/physical_bone_plugin.cpp -msgid "Move joint" +#, fuzzy +msgid "Move Joint" msgstr "移动关节" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5656,7 +6065,6 @@ msgid "Open in Editor" msgstr "åœ¨ç¼–è¾‘å™¨ä¸æ‰“å¼€" #: editor/plugins/resource_preloader_editor_plugin.cpp -#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Load Resource" msgstr "åŠ è½½èµ„æº" @@ -5741,9 +6149,13 @@ msgid "Save Theme As..." msgstr "主题å¦å˜ä¸º..." #: editor/plugins/script_editor_plugin.cpp -#, fuzzy msgid "%s Class Reference" -msgstr " 类引用" +msgstr "%s 类引用" + +#: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp +msgid "Find Next" +msgstr "查找下一项" #: editor/plugins/script_editor_plugin.cpp msgid "Toggle alphabetical sorting of the method list." @@ -5826,10 +6238,6 @@ msgstr "关闿–‡æ¡£" msgid "Close All" msgstr "å…³é—全部" -#: editor/plugins/script_editor_plugin.cpp -msgid "Close Other Tabs" -msgstr "å…³é—å…¶ä»–æ ‡ç¾é¡µ" - #: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp msgid "Run" msgstr "è¿è¡Œ" @@ -5838,11 +6246,6 @@ msgstr "è¿è¡Œ" msgid "Toggle Scripts Panel" msgstr "切æ¢è„šæœ¬é¢æ¿" -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/script_text_editor.cpp -msgid "Find Next" -msgstr "查找下一项" - #: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp msgid "Step Over" msgstr "啿¥è·³è¿‡" @@ -5869,7 +6272,8 @@ msgid "Debug with External Editor" msgstr "使用外部编辑器进行调试" #: editor/plugins/script_editor_plugin.cpp -msgid "Open Godot online documentation" +#, fuzzy +msgid "Open Godot online documentation." msgstr "打开Godot在线文档" #: editor/plugins/script_editor_plugin.cpp @@ -5877,7 +6281,8 @@ msgid "Request Docs" msgstr "请求文档" #: editor/plugins/script_editor_plugin.cpp -msgid "Help improve the Godot documentation by giving feedback" +#, fuzzy +msgid "Help improve the Godot documentation by giving feedback." msgstr "通过æä¾›å馈å助改进Godot文档" #: editor/plugins/script_editor_plugin.cpp @@ -5905,10 +6310,12 @@ msgstr "" "请选择执行那项æ“作?:" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp msgid "Reload" msgstr "釿–°åŠ è½½" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp msgid "Resave" msgstr "釿–°ä¿å˜" @@ -5921,6 +6328,31 @@ msgid "Search Results" msgstr "æœç´¢ç»“æžœ" #: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Connections to method:" +msgstr "连接到节点:" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Source" +msgstr "æº:" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Signal" +msgstr "ä¿¡å·" + +#: editor/plugins/script_text_editor.cpp +msgid "Target" +msgstr "å¹³å°" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "" +"Missing connected method '%s' for signal '%s' from node '%s' to node '%s'." +msgstr "没有任何物体连接到节点 '%s' 的输入 '%s' 。" + +#: editor/plugins/script_text_editor.cpp msgid "Line" msgstr "行" @@ -5932,10 +6364,6 @@ msgstr "(忽略)" msgid "Go to Function" msgstr "转到函数" -#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp -msgid "Standard" -msgstr "æ ‡å‡†" - #: editor/plugins/script_text_editor.cpp msgid "Only resources from filesystem can be dropped." msgstr "åªå¯ä»¥æ‹–拽æ¥è‡ªæ–‡ä»¶ç³»ç»Ÿä¸çš„资æºã€‚" @@ -5968,6 +6396,11 @@ msgstr "首嗿¯å¤§å†™" msgid "Syntax Highlighter" msgstr "è¯æ³•高亮显示" +#: editor/plugins/script_text_editor.cpp +#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp +msgid "Bookmarks" +msgstr "" + #: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" @@ -5995,6 +6428,26 @@ msgid "Toggle Comment" msgstr "åˆ‡æ¢æ³¨é‡Š" #: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Toggle Bookmark" +msgstr "切æ¢è‡ªç”±è§‚察模å¼" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Go to Next Bookmark" +msgstr "å‰å¾€ä¸‹ä¸€ä¸ªæ–点" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Go to Previous Bookmark" +msgstr "å‰å¾€ä¸Šä¸€ä¸ªæ–点" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Remove All Bookmarks" +msgstr "移除类项目" + +#: editor/plugins/script_text_editor.cpp msgid "Fold/Unfold Line" msgstr "切æ¢å 行" @@ -6068,6 +6521,15 @@ msgid "Contextual Help" msgstr "æœç´¢å…‰æ ‡ä½ç½®" #: editor/plugins/shader_editor_plugin.cpp +#, fuzzy +msgid "" +"This shader has been modified on on disk.\n" +"What action should be taken?" +msgstr "" +"ç£ç›˜ä¸çš„下列文件已更新。\n" +"请选择执行那项æ“作?:" + +#: editor/plugins/shader_editor_plugin.cpp msgid "Shader" msgstr "ç€è‰²å™¨" @@ -6410,7 +6872,8 @@ msgid "Right View" msgstr "å³è§†å›¾" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Switch Perspective/Orthogonal view" +#, fuzzy +msgid "Switch Perspective/Orthogonal View" msgstr "åˆ‡æ¢æŠ•å½±ï¼ˆæ£äº¤ï¼‰è§†å›¾" #: editor/plugins/spatial_editor_plugin.cpp @@ -6450,11 +6913,13 @@ msgid "Toggle Freelook" msgstr "切æ¢è‡ªç”±è§‚察模å¼" #: editor/plugins/spatial_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Transform" msgstr "å˜æ¢" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Snap object to floor" +#, fuzzy +msgid "Snap Object to Floor" msgstr "å¸é™„物体到地é¢" #: editor/plugins/spatial_editor_plugin.cpp @@ -6567,24 +7032,20 @@ msgid "Nameless gizmo" msgstr "未命åçš„Gizmo" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy msgid "Create Mesh2D" msgstr "创建 2D ç½‘æ ¼" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy msgid "Create Polygon2D" -msgstr "创建3D多边形" +msgstr "创建2D多边形" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy msgid "Create CollisionPolygon2D" -msgstr "创建碰撞多边形" +msgstr "创建2D碰撞多边形" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy msgid "Create LightOccluder2D" -msgstr "æ·»åŠ é®å…‰å¤šè¾¹å½¢" +msgstr "æ·»åŠ 2Dé®å…‰å¤šè¾¹å½¢" #: editor/plugins/sprite_editor_plugin.cpp msgid "Sprite is empty!" @@ -6599,43 +7060,36 @@ msgid "Invalid geometry, can't replace by mesh." msgstr "æ— æ•ˆçš„å‡ ä½•ä½“ï¼Œæ— æ³•ä½¿ç”¨ç½‘æ ¼æ›¿æ¢ã€‚" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy -msgid "Invalid geometry, can't create polygon." -msgstr "æ— æ•ˆçš„å‡ ä½•ä½“ï¼Œæ— æ³•ä½¿ç”¨ç½‘æ ¼æ›¿æ¢ã€‚" +msgid "Convert to Mesh2D" +msgstr "转æ¢ä¸º 2D ç½‘æ ¼" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy -msgid "Invalid geometry, can't create collision polygon." -msgstr "æ— æ•ˆçš„å‡ ä½•ä½“ï¼Œæ— æ³•ä½¿ç”¨ç½‘æ ¼æ›¿æ¢ã€‚" +msgid "Invalid geometry, can't create polygon." +msgstr "æ— æ•ˆçš„å‡ ä½•ä½“ï¼Œæ— æ³•åˆ›å»ºå¤šè¾¹å½¢ã€‚" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy -msgid "Invalid geometry, can't create light occluder." -msgstr "æ— æ•ˆçš„å‡ ä½•ä½“ï¼Œæ— æ³•ä½¿ç”¨ç½‘æ ¼æ›¿æ¢ã€‚" +msgid "Convert to Polygon2D" +msgstr "转æ¢ä¸ºå¤šè¾¹å½¢" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Sprite" -msgstr "Sprite ç²¾çµ" +msgid "Invalid geometry, can't create collision polygon." +msgstr "æ— æ•ˆçš„å‡ ä½•ä½“ï¼Œæ— æ³•åˆ›å»ºå¤šè¾¹å½¢ç¢°æ’žä½“ã€‚" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy -msgid "Convert to Mesh2D" -msgstr "转æ¢ä¸º 2D ç½‘æ ¼" +msgid "Create CollisionPolygon2D Sibling" +msgstr "创建2D碰撞多边形æˆå‘˜" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy -msgid "Convert to Polygon2D" -msgstr "移动多边形" +msgid "Invalid geometry, can't create light occluder." +msgstr "æ— æ•ˆçš„å‡ ä½•ä½“ï¼Œæ— æ³•åˆ›å»ºé®å…‰ä½“。" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy -msgid "Create CollisionPolygon2D Sibling" -msgstr "创建碰撞多边形" +msgid "Create LightOccluder2D Sibling" +msgstr "创建2Dé®å…‰å¤šè¾¹å½¢æˆå‘˜" #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy -msgid "Create LightOccluder2D Sibling" -msgstr "æ·»åŠ é®å…‰å¤šè¾¹å½¢" +msgid "Sprite" +msgstr "Sprite ç²¾çµ" #: editor/plugins/sprite_editor_plugin.cpp msgid "Simplification: " @@ -6654,14 +7108,24 @@ msgid "Settings:" msgstr "设置:" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "ERROR: Couldn't load frame resource!" -msgstr "错误:æ— æ³•åŠ è½½å¸§èµ„æºï¼" +#, fuzzy +msgid "No Frames Selected" +msgstr "最大化显示选ä¸èŠ‚ç‚¹" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Add %d Frame(s)" +msgstr "æ·»åŠ å¸§" #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Add Frame" msgstr "æ·»åŠ å¸§" #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "ERROR: Couldn't load frame resource!" +msgstr "错误:æ— æ³•åŠ è½½å¸§èµ„æºï¼" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Resource clipboard is empty or not a texture!" msgstr "资æºå‰ªåˆ‡æ¿ä¸æ— å†…å®¹ï¼Œæˆ–å†…å®¹ä¸æ˜¯çº¹ç†è´´å›¾ï¼" @@ -6702,6 +7166,15 @@ msgid "Animation Frames:" msgstr "动画帧:" #: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Add a Texture from File" +msgstr "æ·»åŠ çº¹ç†åˆ°ç£è´´é›†ã€‚" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Add Frames from a Sprite Sheet" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Insert Empty (Before)" msgstr "æ’入空白帧(之å‰ï¼‰" @@ -6718,6 +7191,31 @@ msgid "Move (After)" msgstr "å¾€åŽç§»åЍ" #: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Select Frames" +msgstr "å †æ ˆå¸§ï¼ˆStack Frames)" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Horizontal:" +msgstr "水平翻转" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Vertical:" +msgstr "顶点" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Select/Clear All Frames" +msgstr "全选" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Create Frames from Sprite Sheet" +msgstr "从场景ä¸åˆ›å»º" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "SpriteFrames" msgstr "动画帧" @@ -6782,12 +7280,13 @@ msgstr "æ·»åŠ æ‰€æœ‰" msgid "Remove All Items" msgstr "移除类项目" -#: editor/plugins/theme_editor_plugin.cpp +#: editor/plugins/theme_editor_plugin.cpp editor/project_manager.cpp msgid "Remove All" msgstr "移除全部" #: editor/plugins/theme_editor_plugin.cpp -msgid "Edit theme..." +#, fuzzy +msgid "Edit Theme" msgstr "编辑主题..." #: editor/plugins/theme_editor_plugin.cpp @@ -6815,18 +7314,25 @@ msgid "Create From Current Editor Theme" msgstr "从当å‰ç¼–辑器主题模æ¿åˆ›å»º" #: editor/plugins/theme_editor_plugin.cpp -msgid "CheckBox Radio1" -msgstr "å¤é€‰æ¡† 选项1" +#, fuzzy +msgid "Toggle Button" +msgstr "é¼ æ ‡æŒ‰é”®" #: editor/plugins/theme_editor_plugin.cpp -msgid "CheckBox Radio2" -msgstr "å¤é€‰æ¡† 选项2" +#, fuzzy +msgid "Disabled Button" +msgstr "ä¸é”®" #: editor/plugins/theme_editor_plugin.cpp msgid "Item" msgstr "项目(Item)" #: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Disabled Item" +msgstr "å·²ç¦ç”¨" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Check Item" msgstr "检查项目(Item)" @@ -6843,6 +7349,24 @@ msgid "Checked Radio Item" msgstr "已选å•选项目" #: editor/plugins/theme_editor_plugin.cpp +msgid "Named Sep." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Submenu" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Item 1" +msgstr "项目(Item)" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Item 2" +msgstr "项目(Item)" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Has" msgstr "有(Has)" @@ -6851,8 +7375,9 @@ msgid "Many" msgstr "许多(Many)" #: editor/plugins/theme_editor_plugin.cpp -msgid "Has,Many,Options" -msgstr "有,很多,选项" +#, fuzzy +msgid "Disabled LineEdit" +msgstr "å·²ç¦ç”¨" #: editor/plugins/theme_editor_plugin.cpp msgid "Tab 1" @@ -6867,6 +7392,19 @@ msgid "Tab 3" msgstr "分页3" #: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Editable Item" +msgstr "å…许编辑åå™èŠ‚ç‚¹" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Subtree" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Has,Many,Options" +msgstr "有,很多,选项" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Data Type:" msgstr "æ•°æ®ç±»åž‹:" @@ -6899,6 +7437,7 @@ msgid "Fix Invalid Tiles" msgstr "ä¿®å¤æ— 效的ç£è´´" #: editor/plugins/tile_map_editor_plugin.cpp +#: modules/gridmap/grid_map_editor_plugin.cpp msgid "Cut Selection" msgstr "切割选择" @@ -6939,35 +7478,52 @@ msgid "Mirror Y" msgstr "沿Y轴翻转" #: editor/plugins/tile_map_editor_plugin.cpp +#, fuzzy +msgid "Disable Autotile" +msgstr "智能瓦片" + +#: editor/plugins/tile_map_editor_plugin.cpp +#, fuzzy +msgid "Enable Priority" +msgstr "编辑ç£è´´ä¼˜å…ˆçº§" + +#: editor/plugins/tile_map_editor_plugin.cpp msgid "Paint Tile" msgstr "绘制ç£è´´" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Pick Tile" -msgstr "选择ç£è´´" +msgid "" +"Shift+RMB: Line Draw\n" +"Shift+Ctrl+RMB: Rectangle Paint" +msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Copy Selection" -msgstr "å¤åˆ¶é€‰æ‹©" +msgid "Pick Tile" +msgstr "选择ç£è´´" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Rotate left" +#, fuzzy +msgid "Rotate Left" msgstr "å‘左旋转" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Rotate right" +#, fuzzy +msgid "Rotate Right" msgstr "å‘峿—‹è½¬" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Flip horizontally" +#, fuzzy +msgid "Flip Horizontally" msgstr "水平翻转" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Flip vertically" +#, fuzzy +msgid "Flip Vertically" msgstr "垂直翻转" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Clear transform" +#, fuzzy +msgid "Clear Transform" msgstr "æ¸…é™¤å˜æ¢" #: editor/plugins/tile_set_editor_plugin.cpp @@ -7003,6 +7559,46 @@ msgid "Select the previous shape, subtile, or Tile." msgstr "选择上一个形状,åç –å—ï¼Œæˆ–ç –å—。" #: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Region Mode" +msgstr "è¿è¡Œæ¨¡å¼:" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Collision Mode" +msgstr "æ’值模å¼" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Occlusion Mode" +msgstr "ç¼–è¾‘é®æŒ¡å¤šè¾¹å½¢" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Navigation Mode" +msgstr "创建导航Mesh(ç½‘æ ¼)" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Bitmask Mode" +msgstr "旋转模å¼" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Priority Mode" +msgstr "导出模å¼:" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Icon Mode" +msgstr "移动画布" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Z Index Mode" +msgstr "移动画布" + +#: editor/plugins/tile_set_editor_plugin.cpp msgid "Copy bitmask." msgstr "å¤åˆ¶ä½æŽ©ç 。" @@ -7085,9 +7681,11 @@ msgid "Delete polygon." msgstr "åˆ é™¤å¤šè¾¹å½¢ã€‚" #: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy msgid "" "LMB: Set bit on.\n" "RMB: Set bit off.\n" +"Shift+LMB: Set wildcard bit.\n" "Click on another Tile to edit it." msgstr "" "é¼ æ ‡å·¦é”®ï¼š å¯ç”¨æ¯”特。\n" @@ -7204,6 +7802,79 @@ msgid "TileSet" msgstr "瓦片集" #: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Add input +" +msgstr "æ·»åŠ è¾“å…¥äº‹ä»¶" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Add output +" +msgstr "æ·»åŠ è¾“å…¥äº‹ä»¶" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar" +msgstr "缩放:" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector" +msgstr "å±žæ€§é¢æ¿" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Add input port" +msgstr "æ·»åŠ è¾“å…¥äº‹ä»¶" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add output port" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change input port type" +msgstr "修改默认值" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change output port type" +msgstr "修改默认值" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change input port name" +msgstr "更改输入åç§°" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change output port name" +msgstr "更改输入åç§°" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Remove input port" +msgstr "移除顶点" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Remove output port" +msgstr "移除顶点" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Set expression" +msgstr "更改表达å¼" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Resize VisualShader node" +msgstr "å¯è§†ç€è‰²å™¨" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Set Uniform Name" msgstr "设置统一åç§°" @@ -7220,7 +7891,6 @@ msgid "Duplicate Nodes" msgstr "å¤åˆ¶èŠ‚ç‚¹" #: editor/plugins/visual_shader_editor_plugin.cpp -#, fuzzy msgid "Delete Nodes" msgstr "åˆ é™¤èŠ‚ç‚¹" @@ -7241,6 +7911,859 @@ msgid "Light" msgstr "ç¯å…‰" #: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Create Shader Node" +msgstr "新节点" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Color function." +msgstr "转到函数" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Color operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Grayscale function." +msgstr "创建方法" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts HSV vector to RGB equivalent." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts RGB vector to HSV equivalent." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Sepia function." +msgstr "é‡å‘½å函数" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Burn operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Darken operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Difference operator." +msgstr "ä»…ä¸åŒ" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Dodge operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "HardLight operator" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Lighten operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Overlay operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Screen operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "SoftLight operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Color constant." +msgstr "常é‡" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Color uniform." +msgstr "æ¸…é™¤å˜æ¢" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns an associated vector if the provided scalars are equal, greater or " +"less." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns an associated vector if the provided boolean value is true or false." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Boolean constant." +msgstr "修改Vec常é‡ç³»æ•°" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'camera' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'inv_camera' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'inv_projection' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'normal' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'projection' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'time' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'viewport_size' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'world' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'texture_pixel_size' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Input parameter." +msgstr "å¸é™„到父节点" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'binormal' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'fragcoord' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_coord' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_uv' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'side' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'tangent' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv2' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'vertex' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'view' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'albedo' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'attenuation' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'diffuse' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_color' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'roughness' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'specular' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'transmission' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'modelview' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_size' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'tangent' input parameter for vertex and fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_pass' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_coord' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_pixel_size' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_uv' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_alpha' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_height' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_uv' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_vec' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'normal' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'shadow_color' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'extra' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'projection' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'vertex' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'world' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'active' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'custom' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'custom_alpha' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'delta' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'emission_transform' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'index' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'lifetime' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'restart' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'time' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'transform' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'velocity' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar function." +msgstr "修改Function Scalar" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar operator." +msgstr "æ›´æ”¹æ ‡é‡è¿ç®—符(Scalar Operator)" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "E constant (2.718282). Represents the base of the natural logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Epsilon constant (0.00001). Smallest possible scalar number." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Phi constant (1.618034). Golden ratio." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi/4 constant (0.785398) or 45 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi/2 constant (1.570796) or 90 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi constant (3.141593) or 180 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Tau constant (6.283185) or 360 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Sqrt2 constant (1.414214). Square root of 2." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the absolute value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-tangent of the parameters." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Finds the nearest integer that is greater than or equal to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Constrains a value to lie between two further values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts a quantity in radians to degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-e Exponential." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-2 Exponential." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Finds the nearest integer less than or equal to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Computes the fractional part of the argument." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the inverse of the square root of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Natural logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-2 logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the greater of two values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the lesser of two values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Linear interpolation between two scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the opposite value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 - scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns the value of the first parameter raised to the power of the second." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts a quantity in degrees to radians." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 / scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the nearest integer to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the nearest even integer to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Clamps the value between 0.0 and 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Extracts the sign of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the square root of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( scalar(edge0), scalar(edge1), scalar(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if x is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( scalar(edge), scalar(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the truncated value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Adds scalar to scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Divides scalar by scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies scalar by scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the remainder of the two scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Subtracts scalar from scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar constant." +msgstr "修改Scalar常é‡ç³»æ•°" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar uniform." +msgstr "修改Uniform Scalar" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Perform the cubic texture lookup." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Perform the texture lookup." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Cubic texture uniform." +msgstr "修改Uniform纹ç†" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "2D texture uniform." +msgstr "修改Uniform纹ç†" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Transform function." +msgstr "å˜æ¢å¯¹è¯æ¡†..." + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) Calculate the outer product of a pair of vectors.\n" +"\n" +"OuterProduct treats the first parameter 'c' as a column vector (matrix with " +"one column) and the second parameter 'r' as a row vector (matrix with one " +"row) and does a linear algebraic matrix multiply 'c * r', yielding a matrix " +"whose number of rows is the number of components in 'c' and whose number of " +"columns is the number of components in 'r'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Composes transform from four vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Decomposes transform to four vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the determinant of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the inverse of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the transpose of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies transform by transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies vector by transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Transform constant." +msgstr "å·²å¿½ç•¥å˜æ¢ã€‚" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Transform uniform." +msgstr "å·²å¿½ç•¥å˜æ¢ã€‚" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector function." +msgstr "对函数的赋值。" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector operator." +msgstr "更改 Vec è¿ç®—符(Vec Operator)" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Composes vector from three scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Decomposes vector to three scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the cross product of two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the distance between two points." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the dot product of two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns a vector that points in the same direction as a reference vector. " +"The function has three vector parameters : N, the vector to orient, I, the " +"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 "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the length of a vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Linear interpolation between two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the normalize product of vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 - vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 / vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns a vector that points in the direction of reflection ( a : incident " +"vector, b : normal vector )." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns a vector that points in the direction of refraction." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( vector(edge0), vector(edge1), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if 'x' is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( scalar(edge0), scalar(edge1), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if 'x' is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( vector(edge), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( scalar(edge), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Adds vector to vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Divides vector by vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies vector by vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the remainder of the two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Subtracts vector from vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector constant." +msgstr "修改Vec常é‡ç³»æ•°" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector uniform." +msgstr "对uniform的赋值。" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Custom Godot Shader Language expression, with custom amount of input and " +"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 "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns falloff based on the dot product of surface normal and view " +"direction of camera (pass associated inputs to it)." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) (Fragment/Light mode only) Scalar derivative function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) (Fragment/Light mode only) Vector derivative function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Derivative in 'x' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Derivative in 'x' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Derivative in 'y' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Derivative in 'y' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Sum of absolute derivative " +"in 'x' and 'y'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Sum of absolute derivative " +"in 'x' and 'y'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "VisualShader" msgstr "å¯è§†ç€è‰²å™¨" @@ -7432,6 +8955,10 @@ msgid "Directory already contains a Godot project." msgstr "文件夹已ç»åŒ…å«äº†ä¸€ä¸ªGodot项目。" #: editor/project_manager.cpp +msgid "New Game Project" +msgstr "新建游æˆé¡¹ç›®" + +#: editor/project_manager.cpp msgid "Imported Project" msgstr "已导入的项目" @@ -7479,10 +9006,6 @@ msgid "Rename Project" msgstr "é‡å‘½å项目" #: editor/project_manager.cpp -msgid "New Game Project" -msgstr "新建游æˆé¡¹ç›®" - -#: editor/project_manager.cpp msgid "Import Existing Project" msgstr "导入现有项目" @@ -7511,10 +9034,6 @@ msgid "Project Name:" msgstr "项目åç§°:" #: editor/project_manager.cpp -msgid "Create folder" -msgstr "新建目录" - -#: editor/project_manager.cpp msgid "Project Path:" msgstr "项目目录:" @@ -7523,10 +9042,6 @@ msgid "Project Installation Path:" msgstr "项目安装路径:" #: editor/project_manager.cpp -msgid "Browse" -msgstr "æµè§ˆ" - -#: editor/project_manager.cpp msgid "Renderer:" msgstr "渲染器:" @@ -7579,6 +9094,7 @@ msgid "Are you sure to open more than one project?" msgstr "æ‚¨ç¡®å®šè¦æ‰“开多个项目å—?" #: editor/project_manager.cpp +#, fuzzy msgid "" "The following project settings file does not specify the version of Godot " "through which it was created.\n" @@ -7587,8 +9103,8 @@ msgid "" "\n" "If you proceed with opening it, it will be converted to Godot's current " "configuration file format.\n" -"Warning: You will not be able to open the project with previous versions of " -"the engine anymore." +"Warning: You won't be able to open the project with previous versions of the " +"engine anymore." msgstr "" "以下项目设置文件没有指定创建它的Godot版本:\n" "\n" @@ -7598,6 +9114,7 @@ msgstr "" "è¦å‘Šï¼šæ‚¨å°†æ— 法å†ä½¿ç”¨ä»¥å‰ç‰ˆæœ¬çš„引擎打开项目。" #: editor/project_manager.cpp +#, fuzzy msgid "" "The following project settings file was generated by an older engine " "version, and needs to be converted for this version:\n" @@ -7605,8 +9122,8 @@ msgid "" "%s\n" "\n" "Do you want to convert it?\n" -"Warning: You will not be able to open the project with previous versions of " -"the engine anymore." +"Warning: You won't be able to open the project with previous versions of the " +"engine anymore." msgstr "" "以下项目设置文件是由旧的引擎版本生æˆçš„,需è¦ä¸ºæ¤ç‰ˆæœ¬è½¬æ¢ï¼š\n" "%s\n" @@ -7620,9 +9137,10 @@ msgid "" msgstr "项目设置是由更新的引擎版本创建的,其设置与æ¤ç‰ˆæœ¬ä¸å…¼å®¹ã€‚" #: editor/project_manager.cpp +#, fuzzy msgid "" "Can't run project: no main scene defined.\n" -"Please edit the project and set the main scene in \"Project Settings\" under " +"Please edit the project and set the main scene in the Project Settings under " "the \"Application\" category." msgstr "" "尚未定义主场景, 现在选择一个å—?\n" @@ -7637,25 +9155,45 @@ msgstr "" "请编辑项目导入åˆå§‹åŒ–资æºã€‚" #: editor/project_manager.cpp -msgid "Are you sure to run more than one project?" +#, fuzzy +msgid "Are you sure to run %d projects at once?" msgstr "æ‚¨ç¡®å®šè¦æ‰§è¡Œå¤šä¸ªé¡¹ç›®å—?" #: editor/project_manager.cpp -msgid "Remove project from the list? (Folder contents will not be modified)" +#, fuzzy +msgid "" +"Remove %d projects from the list?\n" +"The project folders' contents won't be modified." +msgstr "移除æ¤é¡¹ç›®ï¼ˆé¡¹ç›®çš„æ–‡ä»¶ä¸å—å½±å“)" + +#: editor/project_manager.cpp +#, fuzzy +msgid "" +"Remove this project from the list?\n" +"The project folder's contents won't be modified." +msgstr "移除æ¤é¡¹ç›®ï¼ˆé¡¹ç›®çš„æ–‡ä»¶ä¸å—å½±å“)" + +#: editor/project_manager.cpp +#, fuzzy +msgid "" +"Remove all missing projects from the list? (Folders contents will not be " +"modified)" msgstr "移除æ¤é¡¹ç›®ï¼ˆé¡¹ç›®çš„æ–‡ä»¶ä¸å—å½±å“)" #: editor/project_manager.cpp +#, fuzzy msgid "" "Language changed.\n" -"The UI will update next time the editor or project manager starts." +"The interface will update after restarting the editor or project manager." msgstr "" "è¯è¨€å·²æ›´æ”¹ã€‚\n" "用户界é¢å°†åœ¨ä¸‹æ¬¡ç¼–辑器或项目管ç†å™¨å¯åŠ¨æ—¶æ›´æ–°ã€‚" #: editor/project_manager.cpp +#, fuzzy msgid "" -"You are about the scan %s folders for existing Godot projects. Do you " -"confirm?" +"Are you sure to scan %s folders for existing Godot projects?\n" +"This could take a while." msgstr "æ‚¨ç¡®è®¤è¦æ‰«æ%s目录下现有的Godot项目å—?" #: editor/project_manager.cpp @@ -7679,6 +9217,11 @@ msgid "New Project" msgstr "新建" #: editor/project_manager.cpp +#, fuzzy +msgid "Remove Missing" +msgstr "移除顶点" + +#: editor/project_manager.cpp msgid "Templates" msgstr "模æ¿" @@ -7695,9 +9238,10 @@ msgid "Can't run project" msgstr "æ— æ³•è¿è¡Œé¡¹ç›®" #: editor/project_manager.cpp +#, fuzzy msgid "" -"You don't currently have any projects.\n" -"Would you like to explore the official example projects in the Asset Library?" +"You currently don't have any projects.\n" +"Would you like to explore official example projects in the Asset Library?" msgstr "" "æ‚¨ç›®å‰æ²¡æœ‰ä»»ä½•项目。\n" "是å¦è¦æ‰“开资æºå•†åº—æµè§ˆå®˜æ–¹æ ·ä¾‹é¡¹ç›®ï¼Ÿ" @@ -7726,7 +9270,8 @@ msgstr "" "æ— æ•ˆçš„æ“作å称。æ“作åä¸èƒ½ä¸ºç©ºï¼Œä¹Ÿä¸èƒ½åŒ…å« '/', ':', '=', '\\' 或者空å—符串" #: editor/project_settings_editor.cpp -msgid "Action '%s' already exists!" +#, fuzzy +msgid "An action with the name '%s' already exists." msgstr "动作%så·²å˜åœ¨ï¼" #: editor/project_settings_editor.cpp @@ -7880,10 +9425,6 @@ msgid "" msgstr "æ— æ•ˆçš„æ“作å称。它ä¸èƒ½æ˜¯ç©ºçš„也ä¸èƒ½åŒ…å« '/', ':', '=', '\\' 或者 '\"'。" #: editor/project_settings_editor.cpp -msgid "Already existing" -msgstr "å·²ç»å˜åœ¨" - -#: editor/project_settings_editor.cpp msgid "Add Input Action" msgstr "æ·»åŠ è¾“å…¥åŠ¨ä½œ" @@ -7948,12 +9489,13 @@ msgid "Override For..." msgstr "é‡å†™çš„......" #: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp -msgid "Editor must be restarted for changes to take effect" +#, fuzzy +msgid "The editor must be restarted for changes to take effect." msgstr "编辑器需è¦é‡å¯ä»¥è®©ä¿®æ”¹ç”Ÿæ•ˆ" #: editor/project_settings_editor.cpp msgid "Input Map" -msgstr "事件表" +msgstr "键使˜ å°„" #: editor/project_settings_editor.cpp msgid "Action:" @@ -8008,11 +9550,13 @@ msgid "Locales Filter" msgstr "区域ç›é€‰å™¨" #: editor/project_settings_editor.cpp -msgid "Show all locales" +#, fuzzy +msgid "Show All Locales" msgstr "显示所有区域设置" #: editor/project_settings_editor.cpp -msgid "Show only selected locales" +#, fuzzy +msgid "Show Selected Locales Only" msgstr "仅显示选定的区域设置" #: editor/project_settings_editor.cpp @@ -8028,14 +9572,6 @@ msgid "AutoLoad" msgstr "è‡ªåŠ¨åŠ è½½(AutoLoad)" #: editor/property_editor.cpp -msgid "Ease In" -msgstr "缓入" - -#: editor/property_editor.cpp -msgid "Ease Out" -msgstr "缓出" - -#: editor/property_editor.cpp msgid "Zero" msgstr "置零" @@ -8108,7 +9644,8 @@ msgid "Suffix" msgstr "åŽç¼€" #: editor/rename_dialog.cpp -msgid "Advanced options" +#, fuzzy +msgid "Advanced Options" msgstr "高级选项" #: editor/rename_dialog.cpp @@ -8364,8 +9901,9 @@ msgid "User Interface" msgstr "用户界é¢" #: editor/scene_tree_dock.cpp -msgid "Custom Node" -msgstr "自定义节点" +#, fuzzy +msgid "Other Node" +msgstr "åˆ é™¤èŠ‚ç‚¹" #: editor/scene_tree_dock.cpp msgid "Can't operate on nodes from a foreign scene!" @@ -8406,7 +9944,8 @@ msgid "Clear Inheritance" msgstr "清除继承" #: editor/scene_tree_dock.cpp -msgid "Open documentation" +#, fuzzy +msgid "Open Documentation" msgstr "打开Godot文档" #: editor/scene_tree_dock.cpp @@ -8433,7 +9972,7 @@ msgstr "从场景ä¸åˆå¹¶" msgid "Save Branch as Scene" msgstr "将分支ä¿å˜ä¸ºåœºæ™¯" -#: editor/scene_tree_dock.cpp +#: editor/scene_tree_dock.cpp editor/script_editor_debugger.cpp msgid "Copy Node Path" msgstr "æ‹·è´èŠ‚ç‚¹è·¯å¾„" @@ -8476,6 +10015,21 @@ msgid "Toggle Visible" msgstr "切æ¢å¯è§æ€§" #: editor/scene_tree_editor.cpp +#, fuzzy +msgid "Unlock Node" +msgstr "选择节点" + +#: editor/scene_tree_editor.cpp +#, fuzzy +msgid "Button Group" +msgstr "按键 7" + +#: editor/scene_tree_editor.cpp +#, fuzzy +msgid "(Connecting From)" +msgstr "连接错误" + +#: editor/scene_tree_editor.cpp msgid "Node configuration warning:" msgstr "节点é…ç½®è¦å‘Š:" @@ -8503,8 +10057,9 @@ msgstr "" "分组ä¸çš„节点。\n" "å•击显示分组æ 。" -#: editor/scene_tree_editor.cpp editor/script_create_dialog.cpp -msgid "Open Script" +#: editor/scene_tree_editor.cpp +#, fuzzy +msgid "Open Script:" msgstr "打开脚本" #: editor/scene_tree_editor.cpp @@ -8556,71 +10111,83 @@ msgid "Select a Node" msgstr "选择一个节点" #: editor/script_create_dialog.cpp -msgid "Error loading template '%s'" -msgstr "åŠ è½½æ¨¡æ¿ %s 时出错" +#, fuzzy +msgid "Path is empty." +msgstr "文件路径为空" #: editor/script_create_dialog.cpp -msgid "Error - Could not create script in filesystem." -msgstr "é”™è¯¯ï¼šæ— æ³•åˆ›å»ºè„šæœ¬æ–‡ä»¶ã€‚" +#, fuzzy +msgid "Filename is empty." +msgstr "文件å为空" #: editor/script_create_dialog.cpp -msgid "Error loading script from %s" -msgstr "从%såŠ è½½è„šæœ¬å‡ºé”™" +#, fuzzy +msgid "Path is not local." +msgstr "必须是项目内的路径" #: editor/script_create_dialog.cpp -msgid "N/A" -msgstr "N/A" +#, fuzzy +msgid "Invalid base path." +msgstr "çˆ¶è·¯å¾„éžæ³•" #: editor/script_create_dialog.cpp -msgid "Open Script/Choose Location" -msgstr "打开脚本/选择ä½ç½®" +#, fuzzy +msgid "A directory with the same name exists." +msgstr "å˜åœ¨åŒå目录" #: editor/script_create_dialog.cpp -msgid "Path is empty" -msgstr "文件路径为空" +#, fuzzy +msgid "Invalid extension." +msgstr "扩展åéžæ³•" #: editor/script_create_dialog.cpp -msgid "Filename is empty" -msgstr "文件å为空" +#, fuzzy +msgid "Wrong extension chosen." +msgstr "选择了错误的扩展å" #: editor/script_create_dialog.cpp -msgid "Path is not local" -msgstr "必须是项目内的路径" +msgid "Error loading template '%s'" +msgstr "åŠ è½½æ¨¡æ¿ %s 时出错" #: editor/script_create_dialog.cpp -msgid "Invalid base path" -msgstr "çˆ¶è·¯å¾„éžæ³•" +msgid "Error - Could not create script in filesystem." +msgstr "é”™è¯¯ï¼šæ— æ³•åˆ›å»ºè„šæœ¬æ–‡ä»¶ã€‚" #: editor/script_create_dialog.cpp -msgid "Directory of the same name exists" -msgstr "å˜åœ¨åŒå目录" +msgid "Error loading script from %s" +msgstr "从%såŠ è½½è„šæœ¬å‡ºé”™" #: editor/script_create_dialog.cpp -msgid "File exists, will be reused" -msgstr "文件已å˜åœ¨, 将被é‡ç”¨" +msgid "N/A" +msgstr "N/A" #: editor/script_create_dialog.cpp -msgid "Invalid extension" -msgstr "扩展åéžæ³•" +#, fuzzy +msgid "Open Script / Choose Location" +msgstr "打开脚本/选择ä½ç½®" #: editor/script_create_dialog.cpp -msgid "Wrong extension chosen" -msgstr "选择了错误的扩展å" +msgid "Open Script" +msgstr "打开脚本" #: editor/script_create_dialog.cpp -msgid "Invalid Path" -msgstr "è·¯å¾„éžæ³•" +#, fuzzy +msgid "File exists, it will be reused." +msgstr "文件已å˜åœ¨, 将被é‡ç”¨" #: editor/script_create_dialog.cpp -msgid "Invalid class name" +#, fuzzy +msgid "Invalid class name." msgstr "ç±»åéžæ³•" #: editor/script_create_dialog.cpp -msgid "Invalid inherited parent name or path" +#, fuzzy +msgid "Invalid inherited parent name or path." msgstr "éžæ³•的基类å称或脚本路径" #: editor/script_create_dialog.cpp -msgid "Script valid" +#, fuzzy +msgid "Script is valid." msgstr "脚本å¯ç”¨" #: editor/script_create_dialog.cpp @@ -8628,15 +10195,18 @@ msgid "Allowed: a-z, A-Z, 0-9 and _" msgstr "ä»…å…许使用: a-z, A-Z, 0-9 或 _" #: editor/script_create_dialog.cpp -msgid "Built-in script (into scene file)" +#, fuzzy +msgid "Built-in script (into scene file)." msgstr "内置脚本(ä¿å˜åœ¨åœºæ™¯æ–‡ä»¶ä¸)" #: editor/script_create_dialog.cpp -msgid "Create new script file" +#, fuzzy +msgid "Will create a new script file." msgstr "创建新脚本" #: editor/script_create_dialog.cpp -msgid "Load existing script file" +#, fuzzy +msgid "Will load an existing script file." msgstr "åŠ è½½çŽ°æœ‰è„šæœ¬" #: editor/script_create_dialog.cpp @@ -8767,6 +10337,10 @@ msgstr "å®žæ—¶ç¼–è¾‘æ ¹èŠ‚ç‚¹:" msgid "Set From Tree" msgstr "ä»Žåœºæ™¯æ ‘è®¾ç½®" +#: editor/script_editor_debugger.cpp +msgid "Export measures as CSV" +msgstr "" + #: editor/settings_config_dialog.cpp msgid "Erase Shortcut" msgstr "æ¸…é™¤å¿«æ·æ–¹å¼" @@ -8896,6 +10470,15 @@ msgid "GDNativeLibrary" msgstr "动æ€é“¾æŽ¥åº“" #: 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 "ç¦ç”¨è‡ªåŠ¨æ›´æ–°" + +#: modules/gdnative/gdnative_library_singleton_editor.cpp msgid "Library" msgstr "库" @@ -8980,8 +10563,9 @@ msgid "GridMap Fill Selection" msgstr "å¡«å……é€‰æ‹©ç½‘æ ¼åœ°å›¾" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "GridMap Duplicate Selection" -msgstr "å¤åˆ¶é€‰ä¸é¡¹" +#, fuzzy +msgid "GridMap Paste Selection" +msgstr "åˆ é™¤é€‰æ‹©çš„GridMap" #: modules/gridmap/grid_map_editor_plugin.cpp msgid "GridMap Paint" @@ -9048,18 +10632,6 @@ msgid "Cursor Clear Rotation" msgstr "å…‰æ ‡æ¸…é™¤æ—‹è½¬" #: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Create Area" -msgstr "新建区域" - -#: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Create Exterior Connector" -msgstr "创建外部连接器" - -#: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Erase Area" -msgstr "擦除区域" - -#: modules/gridmap/grid_map_editor_plugin.cpp msgid "Clear Selection" msgstr "清空选ä¸" @@ -9236,7 +10808,7 @@ msgstr "æ›´æ”¹å‚æ•°åç§°" #: modules/visual_script/visual_script_editor.cpp msgid "Set Variable Default Value" -msgstr "修改默认值" +msgstr "设置å˜é‡é»˜è®¤å€¼" #: modules/visual_script/visual_script_editor.cpp msgid "Set Variable Type" @@ -9411,18 +10983,11 @@ msgid "Available Nodes:" msgstr "有效节点:" #: modules/visual_script/visual_script_editor.cpp -msgid "Select or create a function to edit graph" +#, fuzzy +msgid "Select or create a function to edit its graph." msgstr "选择或创建一个函数æ¥ç¼–辑" #: modules/visual_script/visual_script_editor.cpp -msgid "Edit Signal Arguments:" -msgstr "编辑信å·å‚æ•°:" - -#: modules/visual_script/visual_script_editor.cpp -msgid "Edit Variable:" -msgstr "编辑å˜é‡:" - -#: modules/visual_script/visual_script_editor.cpp msgid "Delete Selected" msgstr "åˆ é™¤å·²é€‰ä¸" @@ -9549,6 +11114,19 @@ msgid "Debug keystore not configured in the Editor Settings nor in the preset." msgstr "未在编辑器设置或预设ä¸é…置调试密钥库。" #: platform/android/export/export.cpp +msgid "Custom build requires a valid Android SDK path in Editor Settings." +msgstr "" + +#: platform/android/export/export.cpp +msgid "Invalid Android SDK path for custom build in Editor Settings." +msgstr "" + +#: platform/android/export/export.cpp +msgid "" +"Android project is not installed for compiling. Install from Editor menu." +msgstr "" + +#: platform/android/export/export.cpp msgid "Invalid public key for APK expansion." msgstr "APKæ‰©å±•çš„å…¬é’¥æ— æ•ˆã€‚" @@ -9556,6 +11134,34 @@ msgstr "APKæ‰©å±•çš„å…¬é’¥æ— æ•ˆã€‚" msgid "Invalid package name:" msgstr "æ— æ•ˆçš„åŒ…å称:" +#: platform/android/export/export.cpp +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 "" +"Android build version mismatch:\n" +" Template installed: %s\n" +" Godot Version: %s\n" +"Please reinstall Android build template from 'Project' menu." +msgstr "" + +#: platform/android/export/export.cpp +msgid "Building Android Project (gradle)" +msgstr "" + +#: 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 "" + +#: platform/android/export/export.cpp +msgid "No build apk generated at: " +msgstr "" + #: platform/iphone/export/export.cpp msgid "Identifier is missing." msgstr "ç¼ºå°‘æ ‡è¯†ç¬¦ã€‚" @@ -9829,27 +11435,32 @@ msgid "ARVRCamera must have an ARVROrigin node as its parent" msgstr "ARVRCamera 必须处于 ARVROrigin 节点之下" #: scene/3d/arvr_nodes.cpp -msgid "ARVRController must have an ARVROrigin node as its parent" +#, fuzzy +msgid "ARVRController must have an ARVROrigin node as its parent." msgstr "ARVRController 必须处于 ARVROrigin 节点之下" #: scene/3d/arvr_nodes.cpp +#, fuzzy msgid "" -"The controller id must not be 0 or this controller will not be bound to an " -"actual controller" +"The controller ID must not be 0 or this controller won't be bound to an " +"actual controller." msgstr "控制器 id å¿…é¡»ä¸ä¸º 0 æˆ–æ¤æŽ§åˆ¶å™¨å°†ä¸ç»‘定到实际的控制器" #: scene/3d/arvr_nodes.cpp -msgid "ARVRAnchor must have an ARVROrigin node as its parent" +#, fuzzy +msgid "ARVRAnchor must have an ARVROrigin node as its parent." msgstr "ARVRAnchor 必须处于 ARVROrigin 节点之下" #: scene/3d/arvr_nodes.cpp +#, fuzzy msgid "" -"The anchor id must not be 0 or this anchor will not be bound to an actual " -"anchor" +"The anchor ID must not be 0 or this anchor won't be bound to an actual " +"anchor." msgstr "锚 id å¿…é¡»ä¸æ˜¯ 0 或这个锚点将ä¸ç»‘定到实际的锚" #: scene/3d/arvr_nodes.cpp -msgid "ARVROrigin requires an ARVRCamera child node" +#, fuzzy +msgid "ARVROrigin requires an ARVRCamera child node." msgstr "ARVROrigin 必须拥有 ARVRCamera å节点" #: scene/3d/baked_lightmap.cpp @@ -9926,9 +11537,10 @@ msgid "Nothing is visible because no mesh has been assigned." msgstr "æ— ç‰©å¯è§ï¼Œå› ä¸ºæ²¡æœ‰æŒ‡å®šç½‘æ ¼ã€‚" #: scene/3d/cpu_particles.cpp +#, fuzzy msgid "" -"CPUParticles animation requires the usage of a SpatialMaterial with " -"\"Billboard Particles\" enabled." +"CPUParticles animation requires the usage of a SpatialMaterial whose " +"Billboard Mode is set to \"Particle Billboard\"." msgstr "CPUParticles动画需è¦ä½¿ç”¨å¯åŠ¨äº†â€œBillboard Particlesâ€çš„SpatialMaterial。" #: scene/3d/gi_probe.cpp @@ -9969,9 +11581,10 @@ msgid "" msgstr "ç²’åä¸å¯è§ï¼Œå› ä¸ºæ²¡æœ‰ç½‘æ ¼(meshe)指定到绘制通é“(draw passes)。" #: scene/3d/particles.cpp +#, fuzzy msgid "" -"Particles animation requires the usage of a SpatialMaterial with \"Billboard " -"Particles\" enabled." +"Particles animation requires the usage of a SpatialMaterial whose Billboard " +"Mode is set to \"Particle Billboard\"." msgstr "ç²’å动画需è¦ä½¿ç”¨å¯ç”¨äº†â€œBillboard Particlesâ€çš„SpatialMaterial。" #: scene/3d/path.cpp @@ -10000,7 +11613,8 @@ msgid "Path property must point to a valid Spatial node to work." msgstr "path属性必须指å‘ä¸€ä¸ªåˆæ³•çš„Spatial节点æ‰èƒ½æ£å¸¸å·¥ä½œã€‚" #: scene/3d/soft_body.cpp -msgid "This body will be ignored until you set a mesh" +#, fuzzy +msgid "This body will be ignored until you set a mesh." msgstr "这个物体将被忽略,除éžè®¾ç½®ä¸€ä¸ªç½‘æ ¼" #: scene/3d/soft_body.cpp @@ -10102,10 +11716,11 @@ msgid "Add current color as a preset." msgstr "将当å‰é¢œè‰²æ·»åŠ ä¸ºé¢„è®¾ã€‚" #: scene/gui/container.cpp +#, fuzzy msgid "" "Container by itself serves no purpose unless a script configures it's " "children placement behavior.\n" -"If you dont't intend to add a script, then please use a plain 'Control' node " +"If you don't intend to add a script, then please use a plain 'Control' node " "instead." msgstr "" "除éžåœ¨è„šæœ¬å†…é…置其å项的放置行为,å¦åˆ™å®¹å™¨æœ¬èº«æ²¡æœ‰ç”¨å¤„。\n" @@ -10119,10 +11734,6 @@ msgstr "æç¤ºï¼" msgid "Please Confirm..." msgstr "请确认..." -#: scene/gui/file_dialog.cpp -msgid "Go to parent folder." -msgstr "转到父文件夹。" - #: scene/gui/popup.cpp msgid "" "Popups will hide by default unless you call popup() or any of the popup*() " @@ -10202,6 +11813,76 @@ msgstr "对uniform的赋值。" msgid "Varyings can only be assigned in vertex function." msgstr "å˜é‡åªèƒ½åœ¨é¡¶ç‚¹å‡½æ•°ä¸æŒ‡å®šã€‚" +#: servers/visual/shader_language.cpp +msgid "Constants cannot be modified." +msgstr "" + +#~ msgid "Path to Node:" +#~ msgstr "节点路径:" + +#~ msgid "Delete selected files?" +#~ msgstr "åˆ é™¤é€‰ä¸çš„æ–‡ä»¶ï¼Ÿ" + +#~ msgid "There is no 'res://default_bus_layout.tres' file." +#~ msgstr "ä¸å˜åœ¨'res://default_bus_layout.tres'文件。" + +#~ msgid "Go to parent folder" +#~ msgstr "转到上层文件夹" + +#~ msgid "Select device from the list" +#~ msgstr "从列表ä¸é€‰æ‹©è®¾å¤‡" + +#~ msgid "Open Scene(s)" +#~ msgstr "打开场景" + +#~ msgid "Previous Directory" +#~ msgstr "上一个目录" + +#~ msgid "Next Directory" +#~ msgstr "下一个目录" + +#~ msgid "Ease in" +#~ msgstr "æ¸å…¥" + +#~ msgid "Ease out" +#~ msgstr "æ¸å‡º" + +#~ msgid "Create Convex Static Body" +#~ msgstr "创建凸(Convex ) 陿€ä½“" + +#~ msgid "CheckBox Radio1" +#~ msgstr "å¤é€‰æ¡† 选项1" + +#~ msgid "CheckBox Radio2" +#~ msgstr "å¤é€‰æ¡† 选项2" + +#~ msgid "Create folder" +#~ msgstr "新建目录" + +#~ msgid "Already existing" +#~ msgstr "å·²ç»å˜åœ¨" + +#~ msgid "Custom Node" +#~ msgstr "自定义节点" + +#~ msgid "Invalid Path" +#~ msgstr "è·¯å¾„éžæ³•" + +#~ msgid "GridMap Duplicate Selection" +#~ msgstr "å¤åˆ¶é€‰ä¸é¡¹" + +#~ msgid "Create Area" +#~ msgstr "新建区域" + +#~ msgid "Create Exterior Connector" +#~ msgstr "创建外部连接器" + +#~ msgid "Edit Signal Arguments:" +#~ msgstr "编辑信å·å‚æ•°:" + +#~ msgid "Edit Variable:" +#~ msgstr "编辑å˜é‡:" + #~ msgid "Snap (s): " #~ msgstr "å¸é™„: " @@ -10322,9 +12003,6 @@ msgstr "å˜é‡åªèƒ½åœ¨é¡¶ç‚¹å‡½æ•°ä¸æŒ‡å®šã€‚" #~ msgid "Class List:" #~ msgstr "类型列表:" -#~ msgid "Search Classes" -#~ msgstr "æœç´¢ç±»åž‹" - #~ msgid "Public Methods" #~ msgstr "公共方法" @@ -10399,9 +12077,6 @@ msgstr "å˜é‡åªèƒ½åœ¨é¡¶ç‚¹å‡½æ•°ä¸æŒ‡å®šã€‚" #~ msgid "Error:" #~ msgstr "错误:" -#~ msgid "Source:" -#~ msgstr "æº:" - #~ msgid "Function:" #~ msgstr "函数:" @@ -10423,21 +12098,9 @@ msgstr "å˜é‡åªèƒ½åœ¨é¡¶ç‚¹å‡½æ•°ä¸æŒ‡å®šã€‚" #~ msgid "Get" #~ msgstr "获å–" -#~ msgid "Change Scalar Constant" -#~ msgstr "修改Scalar常é‡ç³»æ•°" - -#~ msgid "Change Vec Constant" -#~ msgstr "修改Vec常é‡ç³»æ•°" - #~ msgid "Change RGB Constant" #~ msgstr "修改RGB常é‡ç³»æ•°" -#~ msgid "Change Scalar Operator" -#~ msgstr "æ›´æ”¹æ ‡é‡è¿ç®—符(Scalar Operator)" - -#~ msgid "Change Vec Operator" -#~ msgstr "更改 Vec è¿ç®—符(Vec Operator)" - #~ msgid "Change Vec Scalar Operator" #~ msgstr "更改Vecæ ‡é‡è¿ç®—符(Vec Scalar Operator)" @@ -10447,15 +12110,9 @@ msgstr "å˜é‡åªèƒ½åœ¨é¡¶ç‚¹å‡½æ•°ä¸æŒ‡å®šã€‚" #~ msgid "Toggle Rot Only" #~ msgstr "åˆ‡æ¢æ—‹è½¬æ¨¡å¼" -#~ msgid "Change Scalar Function" -#~ msgstr "修改Function Scalar" - #~ msgid "Change Vec Function" #~ msgstr "修改Function Vec" -#~ msgid "Change Scalar Uniform" -#~ msgstr "修改Uniform Scalar" - #~ msgid "Change Vec Uniform" #~ msgstr "修改Uniform Vec" @@ -10468,9 +12125,6 @@ msgstr "å˜é‡åªèƒ½åœ¨é¡¶ç‚¹å‡½æ•°ä¸æŒ‡å®šã€‚" #~ msgid "Change XForm Uniform" #~ msgstr "修改Uniform XForm" -#~ msgid "Change Texture Uniform" -#~ msgstr "修改Uniform纹ç†" - #~ msgid "Change Cubemap Uniform" #~ msgstr "修改Uniform Cubemap" @@ -10489,9 +12143,6 @@ msgstr "å˜é‡åªèƒ½åœ¨é¡¶ç‚¹å‡½æ•°ä¸æŒ‡å®šã€‚" #~ msgid "Modify Curve Map" #~ msgstr "修改曲线图" -#~ msgid "Change Input Name" -#~ msgstr "更改输入åç§°" - #~ msgid "Connect Graph Nodes" #~ msgstr "连接Graph Node" @@ -10519,9 +12170,6 @@ msgstr "å˜é‡åªèƒ½åœ¨é¡¶ç‚¹å‡½æ•°ä¸æŒ‡å®šã€‚" #~ msgid "Add Shader Graph Node" #~ msgstr "æ·»åŠ ç€è‰²å™¨Graph Node" -#~ msgid "Disabled" -#~ msgstr "å·²ç¦ç”¨" - #~ msgid "Move Anim Track Up" #~ msgstr "上移轨é“" @@ -10705,15 +12353,9 @@ msgstr "å˜é‡åªèƒ½åœ¨é¡¶ç‚¹å‡½æ•°ä¸æŒ‡å®šã€‚" #~ msgid "Item name or ID:" #~ msgstr "项目å称或ID:" -#~ msgid "Autotiles" -#~ msgstr "智能瓦片" - #~ msgid "Export templates for this platform are missing/corrupted: " #~ msgstr "该平å°çš„导出模æ¿ç¼ºå¤±æˆ–å·²ç»æŸå: " -#~ msgid "Button 7" -#~ msgstr "按键 7" - #~ msgid "Button 8" #~ msgstr "按键 8" @@ -11609,9 +13251,6 @@ msgstr "å˜é‡åªèƒ½åœ¨é¡¶ç‚¹å‡½æ•°ä¸æŒ‡å®šã€‚" #~ msgid "Project Export Settings" #~ msgstr "项目导出设置" -#~ msgid "Target" -#~ msgstr "å¹³å°" - #~ msgid "Export to Platform" #~ msgstr "导出到平å°" @@ -11666,9 +13305,6 @@ msgstr "å˜é‡åªèƒ½åœ¨é¡¶ç‚¹å‡½æ•°ä¸æŒ‡å®šã€‚" #~ msgid "Shrink By:" #~ msgstr "收缩方å¼:" -#~ msgid "Preview Atlas" -#~ msgstr "ç²¾çµé›†é¢„览" - #~ msgid "Images:" #~ msgstr "图片:" diff --git a/editor/translations/zh_HK.po b/editor/translations/zh_HK.po index 45b43c3ce6..eea5cd2804 100644 --- a/editor/translations/zh_HK.po +++ b/editor/translations/zh_HK.po @@ -72,6 +72,14 @@ msgstr "" msgid "Mirror" msgstr "錯誤!" +#: editor/animation_bezier_editor.cpp editor/editor_profiler.cpp +msgid "Time:" +msgstr "時間:" + +#: editor/animation_bezier_editor.cpp +msgid "Value:" +msgstr "" + #: editor/animation_bezier_editor.cpp #, fuzzy msgid "Insert Key Here" @@ -163,16 +171,21 @@ msgstr "" #: editor/animation_track_editor.cpp #, fuzzy -msgid "Add Track" -msgstr "新增動畫軌跡" +msgid "Animation length (frames)" +msgstr "時長(秒)。" #: editor/animation_track_editor.cpp #, fuzzy -msgid "Animation Length Time (seconds)" +msgid "Animation length (seconds)" msgstr "時長(秒)。" #: editor/animation_track_editor.cpp #, fuzzy +msgid "Add Track" +msgstr "新增動畫軌跡" + +#: editor/animation_track_editor.cpp +#, fuzzy msgid "Animation Looping" msgstr "動畫縮放。" @@ -310,11 +323,13 @@ msgid "Create %d NEW tracks and insert keys?" msgstr "新增 %d 個新軌跡並æ’入關éµå¹€ï¼Ÿ" #: editor/animation_track_editor.cpp editor/create_dialog.cpp -#: editor/editor_audio_buses.cpp editor/editor_plugin_settings.cpp -#: editor/plugin_config_dialog.cpp +#: editor/editor_audio_buses.cpp editor/editor_feature_profile.cpp +#: editor/editor_plugin_settings.cpp editor/plugin_config_dialog.cpp #: editor/plugins/abstract_polygon_2d_editor.cpp #: editor/plugins/mesh_instance_editor_plugin.cpp -#: editor/plugins/particles_editor_plugin.cpp editor/script_create_dialog.cpp +#: editor/plugins/particles_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_create_dialog.cpp #, fuzzy msgid "Create" msgstr "新增" @@ -437,6 +452,23 @@ msgid "" msgstr "" #: editor/animation_track_editor.cpp +msgid "" +"This animation belongs to an imported scene, so changes to imported tracks " +"will not be saved.\n" +"\n" +"To enable the ability to add custom tracks, navigate to the scene's import " +"settings and set\n" +"\"Animation > Storage\" to \"Files\", enable \"Animation > Keep Custom Tracks" +"\", then re-import.\n" +"Alternatively, use an import preset that imports animations to separate " +"files." +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Warning: Editing imported animation" +msgstr "" + +#: editor/animation_track_editor.cpp msgid "Only show tracks from nodes selected in tree." msgstr "" @@ -586,7 +618,8 @@ msgstr "縮放比例:" msgid "Select tracks to copy:" msgstr "" -#: editor/animation_track_editor.cpp editor/editor_properties.cpp +#: editor/animation_track_editor.cpp editor/editor_log.cpp +#: editor/editor_properties.cpp #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp @@ -657,6 +690,11 @@ msgstr "全部å–代" msgid "Selection Only" msgstr "åªé™é¸ä¸" +#: editor/code_editor.cpp editor/plugins/script_text_editor.cpp +#: editor/plugins/text_editor.cpp +msgid "Standard" +msgstr "" + #: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/texture_region_editor_plugin.cpp #: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp @@ -682,19 +720,34 @@ msgid "Line and column numbers." msgstr "" #: editor/connections_dialog.cpp -msgid "Method in target Node must be specified!" +msgid "Method in target node must be specified." msgstr "" #: editor/connections_dialog.cpp msgid "" -"Target method not found! Specify a valid method or attach a script to target " -"Node." +"Target method not found. Specify a valid method or attach a script to the " +"target node." msgstr "" #: editor/connections_dialog.cpp -msgid "Connect To Node:" +#, fuzzy +msgid "Connect to Node:" msgstr "連到:" +#: editor/connections_dialog.cpp +#, fuzzy +msgid "Connect to Script:" +msgstr "ä¸èƒ½é€£åˆ°ä¸»æ©Ÿï¼š" + +#: editor/connections_dialog.cpp +#, fuzzy +msgid "From Signal:" +msgstr "訊號:" + +#: editor/connections_dialog.cpp +msgid "Scene does not contain any script." +msgstr "" + #: editor/connections_dialog.cpp editor/editor_autoload_settings.cpp #: editor/groups_editor.cpp editor/plugins/item_list_editor_plugin.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_settings_editor.cpp @@ -702,10 +755,12 @@ msgid "Add" msgstr "æ·»åŠ " #: editor/connections_dialog.cpp editor/dependency_editor.cpp -#: editor/groups_editor.cpp editor/plugins/animation_player_editor_plugin.cpp +#: editor/editor_feature_profile.cpp editor/groups_editor.cpp +#: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp #: editor/plugins/resource_preloader_editor_plugin.cpp -#: editor/plugins/theme_editor_plugin.cpp editor/project_manager.cpp +#: editor/plugins/theme_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_manager.cpp #: editor/project_settings_editor.cpp msgid "Remove" msgstr "移除" @@ -719,21 +774,31 @@ msgid "Extra Call Arguments:" msgstr "" #: editor/connections_dialog.cpp -msgid "Path to Node:" +msgid "Advanced" msgstr "" #: editor/connections_dialog.cpp -msgid "Make Function" +msgid "Deferred" msgstr "" #: editor/connections_dialog.cpp -msgid "Deferred" +msgid "" +"Defers the signal, storing it in a queue and only firing it at idle time." msgstr "" #: editor/connections_dialog.cpp msgid "Oneshot" msgstr "" +#: editor/connections_dialog.cpp +msgid "Disconnects the signal after its first emission." +msgstr "" + +#: editor/connections_dialog.cpp +#, fuzzy +msgid "Cannot connect signal" +msgstr "連接訊號:" + #: editor/connections_dialog.cpp editor/dependency_editor.cpp #: editor/export_template_manager.cpp editor/groups_editor.cpp #: editor/plugins/animation_player_editor_plugin.cpp @@ -777,12 +842,12 @@ msgstr "䏿–·" #: editor/connections_dialog.cpp #, fuzzy -msgid "Connect Signal: " +msgid "Connect a Signal to a Method" msgstr "連接訊號:" #: editor/connections_dialog.cpp #, fuzzy -msgid "Edit Connection: " +msgid "Edit Connection:" msgstr "編輯連接" #: editor/connections_dialog.cpp @@ -818,7 +883,6 @@ msgid "Change %s Type" msgstr "更改動畫循環" #: editor/create_dialog.cpp editor/project_settings_editor.cpp -#: modules/visual_script/visual_script_editor.cpp #, fuzzy msgid "Change" msgstr "當改變時更新" @@ -851,7 +915,8 @@ msgid "Matches:" msgstr "å»åˆï¼š" #: editor/create_dialog.cpp editor/plugin_config_dialog.cpp -#: editor/plugins/asset_library_editor_plugin.cpp editor/property_selector.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/property_selector.cpp #: modules/visual_script/visual_script_property_selector.cpp msgid "Description:" msgstr "æè¿°ï¼š" @@ -867,13 +932,13 @@ msgstr "" #: editor/dependency_editor.cpp msgid "" "Scene '%s' is currently being edited.\n" -"Changes will not take effect unless reloaded." +"Changes will only take effect when reloaded." msgstr "" #: editor/dependency_editor.cpp msgid "" "Resource '%s' is in use.\n" -"Changes will take effect when reloaded." +"Changes will only take effect when reloaded." msgstr "" #: editor/dependency_editor.cpp @@ -967,21 +1032,13 @@ msgid "Permanently delete %d item(s)? (No undo!)" msgstr "" #: editor/dependency_editor.cpp -msgid "Owns" -msgstr "" - -#: editor/dependency_editor.cpp -msgid "Resources Without Explicit Ownership:" +msgid "Show Dependencies" msgstr "" #: editor/dependency_editor.cpp editor/editor_node.cpp msgid "Orphan Resource Explorer" msgstr "" -#: editor/dependency_editor.cpp -msgid "Delete selected files?" -msgstr "è¦åˆªé™¤é¸ä¸æª”案?" - #: editor/dependency_editor.cpp editor/editor_audio_buses.cpp #: editor/editor_file_dialog.cpp editor/editor_node.cpp #: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp @@ -990,6 +1047,14 @@ msgstr "è¦åˆªé™¤é¸ä¸æª”案?" msgid "Delete" msgstr "刪除" +#: editor/dependency_editor.cpp +msgid "Owns" +msgstr "" + +#: editor/dependency_editor.cpp +msgid "Resources Without Explicit Ownership:" +msgstr "" + #: editor/dictionary_property_edit.cpp msgid "Change Dictionary Key" msgstr "" @@ -1109,7 +1174,7 @@ msgstr "" msgid "Success!" msgstr "æˆåŠŸï¼" -#: editor/editor_asset_installer.cpp +#: editor/editor_asset_installer.cpp editor/editor_node.cpp #: editor/plugins/asset_library_editor_plugin.cpp msgid "Install" msgstr "安è£" @@ -1248,9 +1313,14 @@ msgid "Open Audio Bus Layout" msgstr "" #: editor/editor_audio_buses.cpp -msgid "There is no 'res://default_bus_layout.tres' file." +msgid "There is no '%s' file." msgstr "" +#: editor/editor_audio_buses.cpp editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Layout" +msgstr "儲å˜ä½ˆå±€" + #: editor/editor_audio_buses.cpp msgid "Invalid file, not an audio bus layout." msgstr "" @@ -1306,20 +1376,24 @@ msgstr "有效å—符:" #: editor/editor_autoload_settings.cpp #, fuzzy -msgid "Invalid name. Must not collide with an existing engine class name." +msgid "Must not collide with an existing engine class name." msgstr "有效å稱。" #: editor/editor_autoload_settings.cpp #, fuzzy -msgid "Invalid name. Must not collide with an existing buit-in type name." +msgid "Must not collide with an existing buit-in type name." msgstr "有效å稱。" #: editor/editor_autoload_settings.cpp #, fuzzy -msgid "Invalid name. Must not collide with an existing global constant name." +msgid "Must not collide with an existing global constant name." msgstr "有效å稱。" #: editor/editor_autoload_settings.cpp +msgid "Keyword cannot be used as an autoload name." +msgstr "" + +#: editor/editor_autoload_settings.cpp #, fuzzy msgid "Autoload '%s' already exists!" msgstr "AutoLoad '%s'å·²å˜åœ¨ï¼" @@ -1353,11 +1427,12 @@ msgstr "啟用" msgid "Rearrange Autoloads" msgstr "釿–°æŽ’例Autoloads" -#: editor/editor_autoload_settings.cpp -msgid "Invalid Path." +#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp +#, fuzzy +msgid "Invalid path." msgstr "有效的路徑" -#: editor/editor_autoload_settings.cpp +#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp msgid "File does not exist." msgstr "檔案ä¸å˜åœ¨." @@ -1411,7 +1486,7 @@ msgstr "" #: editor/editor_dir_dialog.cpp #, fuzzy -msgid "Please select a base directory first" +msgid "Please select a base directory first." msgstr "請先儲å˜å ´æ™¯" #: editor/editor_dir_dialog.cpp @@ -1419,7 +1494,8 @@ msgid "Choose a Directory" msgstr "鏿“‡è³‡æ–™å¤¾" #: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp -#: editor/filesystem_dock.cpp scene/gui/file_dialog.cpp +#: editor/filesystem_dock.cpp editor/project_manager.cpp +#: scene/gui/file_dialog.cpp msgid "Create Folder" msgstr "新增資料夾" @@ -1489,6 +1565,173 @@ msgstr "" msgid "Template file not found:" msgstr "未找到佈局å稱ï¼" +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "3D Editor" +msgstr "編輯器" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Script Editor" +msgstr "開啟資料夾" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Asset Library" +msgstr "MeshLibrary..." + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Scene Tree Editing" +msgstr "峿™‚編輯" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Import Dock" +msgstr "å°Žå…¥" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Node Dock" +msgstr "移動模å¼" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Filesystem Dock" +msgstr "檔案系統" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Erase profile '%s'? (no undo)" +msgstr "全部å–代" + +#: editor/editor_feature_profile.cpp +msgid "Profile must be a valid filename and must not contain '.'" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Profile with this name already exists." +msgstr "錯誤:動畫å稱已å˜åœ¨ï¼" + +#: editor/editor_feature_profile.cpp +msgid "(Editor Disabled, Properties Disabled)" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "(Properties Disabled)" +msgstr "鏿“‡æ¨¡å¼" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "(Editor Disabled)" +msgstr "å·²åœç”¨" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Class Options:" +msgstr "æè¿°ï¼š" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enable Contextual Editor" +msgstr "è¦é›¢é–‹ç·¨è¼¯å™¨å—Ž?" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enabled Properties:" +msgstr "篩é¸:" + +#: editor/editor_feature_profile.cpp +msgid "Enabled Features:" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Enabled Classes:" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "File '%s' format is invalid, import aborted." +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "" +"Profile '%s' already exists. Remote it first before importing, import " +"aborted." +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Error saving profile to path: '%s'." +msgstr "載入å—形出ç¾éŒ¯èª¤" + +#: editor/editor_feature_profile.cpp +msgid "Unset" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Current Profile" +msgstr "新增資料夾" + +#: editor/editor_feature_profile.cpp +msgid "Make Current" +msgstr "" + +#: editor/editor_feature_profile.cpp +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "New" +msgstr "" + +#: editor/editor_feature_profile.cpp editor/editor_node.cpp +#: editor/plugins/asset_library_editor_plugin.cpp editor/project_manager.cpp +msgid "Import" +msgstr "å°Žå…¥" + +#: editor/editor_feature_profile.cpp editor/editor_node.cpp +#: editor/project_export.cpp +msgid "Export" +msgstr "匯出" + +#: editor/editor_feature_profile.cpp +msgid "Available Profiles" +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "Enabled Classes" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Class Options" +msgstr "æè¿°ï¼š" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "New profile name:" +msgstr "有效å稱" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Erase Profile" +msgstr "縮放selection" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Import Profile(s)" +msgstr "多 %d 檔案" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Export Profile" +msgstr "匯出" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Manage Editor Feature Profiles" +msgstr "管ç†è¼¸å‡ºç¯„本" + #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp #, fuzzy msgid "Select Current Folder" @@ -1512,8 +1755,8 @@ msgstr "複製路徑" msgid "Open in File Manager" msgstr "開啟 Project Manager?" -#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp -#: editor/project_manager.cpp +#: editor/editor_file_dialog.cpp editor/editor_node.cpp +#: editor/filesystem_dock.cpp editor/project_manager.cpp #, fuzzy msgid "Show in File Manager" msgstr "開啟 Project Manager?" @@ -1574,7 +1817,7 @@ msgstr "" msgid "Go Up" msgstr "" -#: editor/editor_file_dialog.cpp +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Toggle Hidden Files" msgstr "(ä¸ï¼‰é¡¯ç¤ºéš±è—的文件" @@ -1610,9 +1853,9 @@ msgstr "上一個tab" msgid "Next Folder" msgstr "新增資料夾" -#: editor/editor_file_dialog.cpp +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp #, fuzzy -msgid "Go to parent folder" +msgid "Go to parent folder." msgstr "無法新增資料夾" #: editor/editor_file_dialog.cpp @@ -1620,6 +1863,11 @@ msgstr "無法新增資料夾" msgid "(Un)favorite current folder." msgstr "無法新增資料夾" +#: editor/editor_file_dialog.cpp +#, fuzzy +msgid "Toggle visibility of hidden files." +msgstr "(ä¸ï¼‰é¡¯ç¤ºéš±è—的文件" + #: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp msgid "View items as a grid of thumbnails." msgstr "" @@ -1634,6 +1882,7 @@ msgstr "資料夾和檔案:" #: editor/editor_file_dialog.cpp editor/plugins/sprite_editor_plugin.cpp #: editor/plugins/style_box_editor_plugin.cpp +#: editor/plugins/theme_editor_plugin.cpp msgid "Preview:" msgstr "é 覽:" @@ -1650,6 +1899,12 @@ msgid "ScanSources" msgstr "" #: editor/editor_file_system.cpp +msgid "" +"There are multiple importers for different types pointing to file %s, import " +"aborted" +msgstr "" + +#: editor/editor_file_system.cpp #, fuzzy msgid "(Re)Importing Assets" msgstr "å°Žå…¥ä¸:" @@ -1849,6 +2104,11 @@ msgstr "" msgid "Output:" msgstr "" +#: editor/editor_log.cpp editor/plugins/tile_map_editor_plugin.cpp +#, fuzzy +msgid "Copy Selection" +msgstr "移除é¸é …" + #: editor/editor_log.cpp editor/editor_profiler.cpp #: editor/editor_properties.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp @@ -2007,7 +2267,7 @@ msgstr "" #: editor/editor_node.cpp msgid "" "This resource belongs to a scene that was instanced or inherited.\n" -"Changes to it will not be kept when saving the current scene." +"Changes to it won't be kept when saving the current scene." msgstr "" #: editor/editor_node.cpp @@ -2018,7 +2278,7 @@ msgstr "" #: editor/editor_node.cpp msgid "" -"This scene was imported, so changes to it will not be kept.\n" +"This scene was imported, so changes to it won't be kept.\n" "Instancing it or inheriting will allow making changes to it.\n" "Please read the documentation relevant to importing scenes to better " "understand this workflow." @@ -2026,7 +2286,7 @@ msgstr "" #: editor/editor_node.cpp msgid "" -"This is a remote object so changes to it will not be kept.\n" +"This is a remote object, so changes to it won't be kept.\n" "Please read the documentation relevant to debugging to better understand " "this workflow." msgstr "" @@ -2036,35 +2296,6 @@ msgid "There is no defined scene to run." msgstr "沒有å¯ä»¥å·²å®šç¾©çš„å ´æ™¯å¯ä»¥é‹è¡Œã€‚" #: editor/editor_node.cpp -#, fuzzy -msgid "" -"No main scene has ever been defined, select one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" -"從未è¨å®šä¸»è¦scene,è¦é¸æ“‡å—Žï¼Ÿ\n" -"ç¨å¾Œä½ å¯ä»¥åœ¨ \"Project Settings\" under the 'application' category å†è¨å®šã€‚" - -#: editor/editor_node.cpp -#, fuzzy -msgid "" -"Selected scene '%s' does not exist, select a valid one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" -"é¸å–çš„ scene '%s' ä¸å˜åœ¨ï¼Œè¦é¸æ“‡ä¸€å€‹æœ‰æ•ˆçš„嗎?\n" -"ç¨å¾Œä½ å¯ä»¥åœ¨ \"Project Settings\" under the 'application' category å†è¨å®šã€‚" - -#: editor/editor_node.cpp -msgid "" -"Selected scene '%s' is not a scene file, select a valid one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" -"é¸å–çš„ scene '%s'ã€€ä¸æ˜¯ scene 檔案,è¦é¸æ“‡ä¸€å€‹æœ‰æ•ˆçš„嗎?\n" -"ç¨å¾Œä½ å¯ä»¥åœ¨ \"Project Settings\" under the 'application' category å†è¨å®šã€‚" - -#: editor/editor_node.cpp msgid "Current scene was never saved, please save it prior to running." msgstr "" @@ -2072,7 +2303,7 @@ msgstr "" msgid "Could not start subprocess!" msgstr "" -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/filesystem_dock.cpp msgid "Open Scene" msgstr "é–‹å•“å ´æ™¯" @@ -2081,6 +2312,11 @@ msgid "Open Base Scene" msgstr "é–‹å•ŸåŸºç¤Žå ´æ™¯" #: editor/editor_node.cpp +#, fuzzy +msgid "Quick Open..." +msgstr "å¿«é€Ÿé–‹å•Ÿå ´æ™¯ï¼Žï¼Ž" + +#: editor/editor_node.cpp msgid "Quick Open Scene..." msgstr "å¿«é€Ÿé–‹å•Ÿå ´æ™¯ï¼Žï¼Ž" @@ -2251,6 +2487,35 @@ msgid "Clear Recent Scenes" msgstr "é—œé–‰å ´æ™¯" #: editor/editor_node.cpp +#, fuzzy +msgid "" +"No main scene has ever been defined, select one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" +"從未è¨å®šä¸»è¦scene,è¦é¸æ“‡å—Žï¼Ÿ\n" +"ç¨å¾Œä½ å¯ä»¥åœ¨ \"Project Settings\" under the 'application' category å†è¨å®šã€‚" + +#: editor/editor_node.cpp +#, fuzzy +msgid "" +"Selected scene '%s' does not exist, select a valid one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" +"é¸å–çš„ scene '%s' ä¸å˜åœ¨ï¼Œè¦é¸æ“‡ä¸€å€‹æœ‰æ•ˆçš„嗎?\n" +"ç¨å¾Œä½ å¯ä»¥åœ¨ \"Project Settings\" under the 'application' category å†è¨å®šã€‚" + +#: editor/editor_node.cpp +msgid "" +"Selected scene '%s' is not a scene file, select a valid one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" +"é¸å–çš„ scene '%s'ã€€ä¸æ˜¯ scene 檔案,è¦é¸æ“‡ä¸€å€‹æœ‰æ•ˆçš„嗎?\n" +"ç¨å¾Œä½ å¯ä»¥åœ¨ \"Project Settings\" under the 'application' category å†è¨å®šã€‚" + +#: editor/editor_node.cpp msgid "Save Layout" msgstr "儲å˜ä½ˆå±€" @@ -2279,6 +2544,19 @@ msgstr "é‹è¡Œå ´æ™¯" msgid "Close Tab" msgstr "關閉" +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +msgid "Close Other Tabs" +msgstr "" + +#: editor/editor_node.cpp +msgid "Close Tabs to the Right" +msgstr "" + +#: editor/editor_node.cpp +#, fuzzy +msgid "Close All Tabs" +msgstr "關閉" + #: editor/editor_node.cpp #, fuzzy msgid "Switch Scene Tab" @@ -2410,10 +2688,6 @@ msgstr "專案" msgid "Project Settings" msgstr "專案è¨å®š" -#: editor/editor_node.cpp editor/project_export.cpp -msgid "Export" -msgstr "匯出" - #: editor/editor_node.cpp editor/plugins/tile_set_editor_plugin.cpp msgid "Tools" msgstr "工具" @@ -2424,6 +2698,10 @@ msgid "Open Project Data Folder" msgstr "開啟 Project Manager?" #: editor/editor_node.cpp +msgid "Install Android Build Template" +msgstr "" + +#: editor/editor_node.cpp msgid "Quit to Project List" msgstr "回到專案列表" @@ -2532,6 +2810,11 @@ msgstr "" msgid "Open Editor Settings Folder" msgstr "編輯器è¨å®š" +#: editor/editor_node.cpp +#, fuzzy +msgid "Manage Editor Features" +msgstr "管ç†è¼¸å‡ºç¯„本" + #: editor/editor_node.cpp editor/project_export.cpp msgid "Manage Export Templates" msgstr "管ç†è¼¸å‡ºç¯„本" @@ -2544,6 +2827,7 @@ msgstr "幫助" #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp #: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp #: editor/project_settings_editor.cpp editor/rename_dialog.cpp msgid "Search" msgstr "æœå°‹" @@ -2636,11 +2920,6 @@ msgstr "當改變時更新" msgid "Disable Update Spinner" msgstr "" -#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp -#: editor/project_manager.cpp -msgid "Import" -msgstr "å°Žå…¥" - #: editor/editor_node.cpp msgid "FileSystem" msgstr "檔案系統" @@ -2666,6 +2945,28 @@ msgid "Don't Save" msgstr "ä¸è¦å„²å˜" #: editor/editor_node.cpp +msgid "Android build template is missing, please install relevant templates." +msgstr "" + +#: editor/editor_node.cpp +#, fuzzy +msgid "Manage Templates" +msgstr "管ç†è¼¸å‡ºç¯„本" + +#: editor/editor_node.cpp +msgid "" +"This will install the Android project for custom builds.\n" +"Note that, in order to use it, it needs to be enabled per export preset." +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"Android build template is already installed and it won't be overwritten.\n" +"Remove the \"build\" directory manually before attempting this operation " +"again." +msgstr "" + +#: editor/editor_node.cpp #, fuzzy msgid "Import Templates From ZIP File" msgstr "從ZIP檔" @@ -2797,10 +3098,6 @@ msgid "Physics Frame %" msgstr "物ç†å¹€ %" #: editor/editor_profiler.cpp -msgid "Time:" -msgstr "時間:" - -#: editor/editor_profiler.cpp msgid "Inclusive" msgstr "" @@ -2940,10 +3237,6 @@ msgid "Remove Item" msgstr "" #: editor/editor_run_native.cpp -msgid "Select device from the list" -msgstr "從列表é¸å–è¨å‚™" - -#: editor/editor_run_native.cpp msgid "" "No runnable export preset found for this platform.\n" "Please add a runnable preset in the export menu." @@ -2978,6 +3271,10 @@ msgstr "" msgid "Select Node(s) to Import" msgstr "" +#: editor/editor_sub_scene.cpp editor/project_manager.cpp +msgid "Browse" +msgstr "ç€è¦½" + #: editor/editor_sub_scene.cpp msgid "Scene Path:" msgstr "å ´æ™¯è·¯å¾‘:" @@ -3155,6 +3452,11 @@ msgid "SSL Handshake Error" msgstr "" #: editor/export_template_manager.cpp +#, fuzzy +msgid "Uncompressing Android Build Sources" +msgstr "å°Žå…¥ä¸:" + +#: editor/export_template_manager.cpp msgid "Current Version:" msgstr "" @@ -3175,7 +3477,7 @@ msgstr "移除é¸é …" #: editor/export_template_manager.cpp #, fuzzy -msgid "Select template file" +msgid "Select Template File" msgstr "è¦åˆªé™¤é¸ä¸æª”案?" #: editor/export_template_manager.cpp @@ -3235,8 +3537,9 @@ msgid "No name provided." msgstr "" #: editor/filesystem_dock.cpp -msgid "Provided name contains invalid characters" -msgstr "" +#, fuzzy +msgid "Provided name contains invalid characters." +msgstr "有效å—符:" #: editor/filesystem_dock.cpp #, fuzzy @@ -3268,7 +3571,12 @@ msgstr "複製" #: editor/filesystem_dock.cpp #, fuzzy -msgid "Open Scene(s)" +msgid "New Inherited Scene" +msgstr "下一個腳本" + +#: editor/filesystem_dock.cpp +#, fuzzy +msgid "Open Scenes" msgstr "é–‹å•“å ´æ™¯" #: editor/filesystem_dock.cpp @@ -3277,12 +3585,12 @@ msgstr "" #: editor/filesystem_dock.cpp #, fuzzy -msgid "Add to favorites" +msgid "Add to Favorites" msgstr "最愛:" #: editor/filesystem_dock.cpp #, fuzzy -msgid "Remove from favorites" +msgid "Remove from Favorites" msgstr "åªé™é¸ä¸" #: editor/filesystem_dock.cpp @@ -3318,11 +3626,13 @@ msgstr "下一個腳本" msgid "New Resource..." msgstr "把資æºå¦å˜ç‚º..." -#: editor/filesystem_dock.cpp editor/script_editor_debugger.cpp +#: editor/filesystem_dock.cpp editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_editor_debugger.cpp msgid "Expand All" msgstr "" -#: editor/filesystem_dock.cpp editor/script_editor_debugger.cpp +#: editor/filesystem_dock.cpp editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_editor_debugger.cpp #, fuzzy msgid "Collapse All" msgstr "關閉" @@ -3335,12 +3645,14 @@ msgid "Rename" msgstr "釿–°å‘½å..." #: editor/filesystem_dock.cpp -msgid "Previous Directory" -msgstr "" +#, fuzzy +msgid "Previous Folder/File" +msgstr "上一個tab" #: editor/filesystem_dock.cpp -msgid "Next Directory" -msgstr "" +#, fuzzy +msgid "Next Folder/File" +msgstr "新增資料夾" #: editor/filesystem_dock.cpp msgid "Re-Scan Filesystem" @@ -3348,7 +3660,7 @@ msgstr "" #: editor/filesystem_dock.cpp #, fuzzy -msgid "Toggle split mode" +msgid "Toggle Split Mode" msgstr "(ä¸ï¼‰é¡¯ç¤ºéš±è—的文件" #: editor/filesystem_dock.cpp @@ -3378,7 +3690,7 @@ msgstr "" msgid "Create Script" msgstr "" -#: editor/find_in_files.cpp +#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp #, fuzzy msgid "Find in Files" msgstr "多 %d 檔案" @@ -3398,6 +3710,12 @@ msgstr "新增資料夾" msgid "Filters:" msgstr "篩é¸:" +#: editor/find_in_files.cpp +msgid "" +"Include the files with the following extensions. Add or remove them in " +"ProjectSettings." +msgstr "" + #: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp msgid "Find..." @@ -3863,7 +4181,7 @@ msgstr "新的動畫å稱:" #: editor/plugins/animation_blend_space_2d_editor.cpp #, fuzzy -msgid "Triangle already exists" +msgid "Triangle already exists." msgstr "錯誤:動畫å稱已å˜åœ¨ï¼" #: editor/plugins/animation_blend_space_2d_editor.cpp @@ -3945,7 +4263,6 @@ msgid "Node Moved" msgstr "移動模å¼" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Unable to connect, port may be in use or connection may be invalid." msgstr "" @@ -4021,8 +4338,9 @@ msgid "Edit Filtered Tracks:" msgstr "檔案" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -msgid "Enable filtering" -msgstr "" +#, fuzzy +msgid "Enable Filtering" +msgstr "更改動畫長度" #: editor/plugins/animation_player_editor_plugin.cpp msgid "Toggle Autoplay" @@ -4143,10 +4461,6 @@ msgid "Animation" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "New" -msgstr "" - -#: editor/plugins/animation_player_editor_plugin.cpp #, fuzzy msgid "Edit Transitions..." msgstr "編輯連接" @@ -4165,12 +4479,13 @@ msgid "Autoplay on Load" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Onion Skinning" +msgid "Enable Onion Skinning" msgstr "" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Enable Onion Skinning" -msgstr "" +#, fuzzy +msgid "Onion Skinning Options" +msgstr "é¸é …" #: editor/plugins/animation_player_editor_plugin.cpp #, fuzzy @@ -4734,13 +5049,19 @@ msgid "Move CanvasItem" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"Children of containers have their anchors and margins values overridden by " +"their parent." +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Presets for the anchors and margins values of a Control node." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "" -"Children of containers have their anchors and margins values overridden by " -"their parent." +"When active, moving Control nodes changes their anchors instead of their " +"margins." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4756,10 +5077,52 @@ msgid "Change Anchors" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Lock Selected" +msgstr "所有é¸é …" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Unlock Selected" +msgstr "刪除é¸ä¸æª”案" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Group Selected" +msgstr "移除é¸é …" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Ungroup Selected" +msgstr "移除é¸é …" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Paste Pose" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Create Custom Bone(s) from Node(s)" +msgstr "é‹è¡Œå ´æ™¯" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Clear Bones" +msgstr "é‹è¡Œå ´æ™¯" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Make IK Chain" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Clear IK Chain" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "" "Warning: Children of a container get their position and size determined only " "by their parent." @@ -4834,7 +5197,7 @@ msgid "Snapping Options" msgstr "é¸é …" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to grid" +msgid "Snap to Grid" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4855,32 +5218,35 @@ msgid "Use Pixel Snap" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Smart snapping" +msgid "Smart Snapping" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to parent" +msgid "Snap to Parent" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node anchor" +msgid "Snap to Node Anchor" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node sides" -msgstr "" +#, fuzzy +msgid "Snap to Node Sides" +msgstr "鏿“‡æ¨¡å¼" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node center" +msgid "Snap to Node Center" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to other nodes" -msgstr "" +#, fuzzy +msgid "Snap to Other Nodes" +msgstr "貼上" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to guides" -msgstr "" +#, fuzzy +msgid "Snap to Guides" +msgstr "鏿“‡æ¨¡å¼" #: editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/spatial_editor_plugin.cpp @@ -4893,10 +5259,12 @@ msgid "Unlock the selected object (can be moved)." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Makes sure the object's children are not selectable." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Restores the object's children's ability to be selected." msgstr "" @@ -4910,14 +5278,6 @@ msgid "Show Bones" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Make IK Chain" -msgstr "" - -#: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Clear IK Chain" -msgstr "" - -#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Make Custom Bone(s) from Node(s)" msgstr "" @@ -4969,9 +5329,8 @@ msgid "Frame Selection" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -#, fuzzy -msgid "Layout" -msgstr "儲å˜ä½ˆå±€" +msgid "Preview Canvas Scale" +msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Translation mask for inserting keys." @@ -5024,6 +5383,10 @@ msgid "Divide grid step by 2" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Pan View" +msgstr "" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Add %s" msgstr "" @@ -5046,8 +5409,9 @@ msgid "Error instancing scene from %s" msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Change default type" -msgstr "" +#, fuzzy +msgid "Change Default Type" +msgstr "更改動畫循環" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "" @@ -5133,20 +5497,19 @@ msgid "Create Emission Points From Node" msgstr "" #: editor/plugins/curve_editor_plugin.cpp -msgid "Flat0" +msgid "Flat 0" msgstr "" #: editor/plugins/curve_editor_plugin.cpp -msgid "Flat1" +msgid "Flat 1" msgstr "" -#: editor/plugins/curve_editor_plugin.cpp -#, fuzzy -msgid "Ease in" -msgstr "縮放selection" +#: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp +msgid "Ease In" +msgstr "" -#: editor/plugins/curve_editor_plugin.cpp -msgid "Ease out" +#: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp +msgid "Ease Out" msgstr "" #: editor/plugins/curve_editor_plugin.cpp @@ -5167,26 +5530,28 @@ msgstr "" #: editor/plugins/curve_editor_plugin.cpp #, fuzzy -msgid "Add point" +msgid "Add Point" msgstr "新增訊號" #: editor/plugins/curve_editor_plugin.cpp #, fuzzy -msgid "Remove point" +msgid "Remove Point" msgstr "åªé™é¸ä¸" #: editor/plugins/curve_editor_plugin.cpp #, fuzzy -msgid "Left linear" +msgid "Left Linear" msgstr "線性" #: editor/plugins/curve_editor_plugin.cpp -msgid "Right linear" -msgstr "" +#, fuzzy +msgid "Right Linear" +msgstr "線性" #: editor/plugins/curve_editor_plugin.cpp -msgid "Load preset" -msgstr "" +#, fuzzy +msgid "Load Preset" +msgstr "載入錯誤" #: editor/plugins/curve_editor_plugin.cpp #, fuzzy @@ -5242,14 +5607,19 @@ msgid "This doesn't work on scene root!" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Trimesh Shape" +msgid "Create Trimesh Static Shape" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Shape" +msgid "Failed creating shapes!" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp +#, fuzzy +msgid "Create Convex Shape(s)" +msgstr "新增" + +#: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Navigation Mesh" msgstr "" @@ -5299,16 +5669,13 @@ msgid "Create Trimesh Static Body" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Static Body" -msgstr "" - -#: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Trimesh Collision Sibling" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Collision Sibling" -msgstr "" +#, fuzzy +msgid "Create Convex Collision Sibling(s)" +msgstr "縮放selection" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Outline Mesh..." @@ -5463,6 +5830,12 @@ msgid "Create Navigation Polygon" msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp +#: editor/plugins/particles_editor_plugin.cpp +#, fuzzy +msgid "Convert to CPUParticles" +msgstr "轉為..." + +#: editor/plugins/particles_2d_editor_plugin.cpp msgid "Generating Visibility Rect" msgstr "" @@ -5476,12 +5849,6 @@ msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp #: editor/plugins/particles_editor_plugin.cpp -#, fuzzy -msgid "Convert to CPUParticles" -msgstr "轉為..." - -#: editor/plugins/particles_2d_editor_plugin.cpp -#: editor/plugins/particles_editor_plugin.cpp msgid "Generation Time (sec):" msgstr "" @@ -5620,7 +5987,7 @@ msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp editor/plugins/theme_editor_plugin.cpp -#: editor/project_export.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_export.cpp msgid "Options" msgstr "é¸é …" @@ -5676,7 +6043,7 @@ msgstr "" #: editor/plugins/physical_bone_plugin.cpp #, fuzzy -msgid "Move joint" +msgid "Move Joint" msgstr "下移" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5918,7 +6285,6 @@ msgid "Open in Editor" msgstr "" #: editor/plugins/resource_preloader_editor_plugin.cpp -#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Load Resource" msgstr "" @@ -6020,6 +6386,11 @@ msgid "%s Class Reference" msgstr "" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp +msgid "Find Next" +msgstr "" + +#: editor/plugins/script_editor_plugin.cpp msgid "Toggle alphabetical sorting of the method list." msgstr "" @@ -6107,10 +6478,6 @@ msgstr "é—œé–‰å ´æ™¯" msgid "Close All" msgstr "關閉" -#: editor/plugins/script_editor_plugin.cpp -msgid "Close Other Tabs" -msgstr "" - #: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp msgid "Run" msgstr "é‹è¡Œ" @@ -6119,11 +6486,6 @@ msgstr "é‹è¡Œ" msgid "Toggle Scripts Panel" msgstr "" -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/script_text_editor.cpp -msgid "Find Next" -msgstr "" - #: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp msgid "Step Over" msgstr "" @@ -6151,15 +6513,16 @@ msgid "Debug with External Editor" msgstr "è¦é›¢é–‹ç·¨è¼¯å™¨å—Ž?" #: editor/plugins/script_editor_plugin.cpp -msgid "Open Godot online documentation" -msgstr "" +#, fuzzy +msgid "Open Godot online documentation." +msgstr "開啓最近的" #: editor/plugins/script_editor_plugin.cpp msgid "Request Docs" msgstr "" #: editor/plugins/script_editor_plugin.cpp -msgid "Help improve the Godot documentation by giving feedback" +msgid "Help improve the Godot documentation by giving feedback." msgstr "" #: editor/plugins/script_editor_plugin.cpp @@ -6186,10 +6549,12 @@ msgid "" msgstr "" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp msgid "Reload" msgstr "" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp msgid "Resave" msgstr "" @@ -6204,6 +6569,31 @@ msgstr "在幫助檔æœå°‹" #: editor/plugins/script_text_editor.cpp #, fuzzy +msgid "Connections to method:" +msgstr "連到:" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Source" +msgstr "來æº:" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Signal" +msgstr "訊號" + +#: editor/plugins/script_text_editor.cpp +msgid "Target" +msgstr "目標" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "" +"Missing connected method '%s' for signal '%s' from node '%s' to node '%s'." +msgstr "ç”± '%s' 連到 '%s'" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy msgid "Line" msgstr "行:" @@ -6216,10 +6606,6 @@ msgstr "" msgid "Go to Function" msgstr "行為" -#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp -msgid "Standard" -msgstr "" - #: editor/plugins/script_text_editor.cpp msgid "Only resources from filesystem can be dropped." msgstr "" @@ -6253,6 +6639,11 @@ msgstr "" msgid "Syntax Highlighter" msgstr "" +#: editor/plugins/script_text_editor.cpp +#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp +msgid "Bookmarks" +msgstr "" + #: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" @@ -6282,6 +6673,26 @@ msgstr "" #: editor/plugins/script_text_editor.cpp #, fuzzy +msgid "Toggle Bookmark" +msgstr "全螢幕" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Go to Next Bookmark" +msgstr "跳到下一æ¥" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Go to Previous Bookmark" +msgstr "跳到上一æ¥" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Remove All Bookmarks" +msgstr "移除é¸é …" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy msgid "Fold/Unfold Line" msgstr "跳到行" @@ -6362,6 +6773,12 @@ msgid "Contextual Help" msgstr "" #: editor/plugins/shader_editor_plugin.cpp +msgid "" +"This shader has been modified on on disk.\n" +"What action should be taken?" +msgstr "" + +#: editor/plugins/shader_editor_plugin.cpp msgid "Shader" msgstr "" @@ -6713,7 +7130,7 @@ msgid "Right View" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Switch Perspective/Orthogonal view" +msgid "Switch Perspective/Orthogonal View" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp @@ -6756,11 +7173,12 @@ msgid "Toggle Freelook" msgstr "全螢幕" #: editor/plugins/spatial_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Transform" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Snap object to floor" +msgid "Snap Object to Floor" msgstr "" #: editor/plugins/spatial_editor_plugin.cpp @@ -6906,30 +7324,22 @@ msgid "Invalid geometry, can't replace by mesh." msgstr "" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Invalid geometry, can't create polygon." -msgstr "" - -#: editor/plugins/sprite_editor_plugin.cpp -msgid "Invalid geometry, can't create collision polygon." -msgstr "" - -#: editor/plugins/sprite_editor_plugin.cpp -msgid "Invalid geometry, can't create light occluder." -msgstr "" +#, fuzzy +msgid "Convert to Mesh2D" +msgstr "轉為..." #: editor/plugins/sprite_editor_plugin.cpp -msgid "Sprite" +msgid "Invalid geometry, can't create polygon." msgstr "" #: editor/plugins/sprite_editor_plugin.cpp #, fuzzy -msgid "Convert to Mesh2D" +msgid "Convert to Polygon2D" msgstr "轉為..." #: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy -msgid "Convert to Polygon2D" -msgstr "轉為..." +msgid "Invalid geometry, can't create collision polygon." +msgstr "" #: editor/plugins/sprite_editor_plugin.cpp #, fuzzy @@ -6937,10 +7347,18 @@ msgid "Create CollisionPolygon2D Sibling" msgstr "縮放selection" #: editor/plugins/sprite_editor_plugin.cpp +msgid "Invalid geometry, can't create light occluder." +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp msgid "Create LightOccluder2D Sibling" msgstr "" #: editor/plugins/sprite_editor_plugin.cpp +msgid "Sprite" +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp msgid "Simplification: " msgstr "" @@ -6959,7 +7377,12 @@ msgid "Settings:" msgstr "è¨å®š" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "ERROR: Couldn't load frame resource!" +#, fuzzy +msgid "No Frames Selected" +msgstr "刪除é¸ä¸æª”案" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Add %d Frame(s)" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp @@ -6967,6 +7390,10 @@ msgid "Add Frame" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "ERROR: Couldn't load frame resource!" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Resource clipboard is empty or not a texture!" msgstr "" @@ -7010,6 +7437,15 @@ msgid "Animation Frames:" msgstr "新的動畫å稱:" #: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Add a Texture from File" +msgstr "由主幹新增節點" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Add Frames from a Sprite Sheet" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Insert Empty (Before)" msgstr "" @@ -7027,6 +7463,28 @@ msgid "Move (After)" msgstr "" #: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Select Frames" +msgstr "鏿“‡æ¨¡å¼" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Horizontal:" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Vertical:" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Select/Clear All Frames" +msgstr "å…¨é¸" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Create Frames from Sprite Sheet" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "SpriteFrames" msgstr "" @@ -7092,14 +7550,15 @@ msgstr "" msgid "Remove All Items" msgstr "移除é¸é …" -#: editor/plugins/theme_editor_plugin.cpp +#: editor/plugins/theme_editor_plugin.cpp editor/project_manager.cpp #, fuzzy msgid "Remove All" msgstr "移除" #: editor/plugins/theme_editor_plugin.cpp -msgid "Edit theme..." -msgstr "" +#, fuzzy +msgid "Edit Theme" +msgstr "檔案" #: editor/plugins/theme_editor_plugin.cpp msgid "Theme editing menu." @@ -7126,18 +7585,25 @@ msgid "Create From Current Editor Theme" msgstr "" #: editor/plugins/theme_editor_plugin.cpp -msgid "CheckBox Radio1" -msgstr "" +#, fuzzy +msgid "Toggle Button" +msgstr "é–‹ï¼é—œè‡ªå‹•æ’æ”¾" #: editor/plugins/theme_editor_plugin.cpp -msgid "CheckBox Radio2" -msgstr "" +#, fuzzy +msgid "Disabled Button" +msgstr "å·²åœç”¨" #: editor/plugins/theme_editor_plugin.cpp msgid "Item" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Disabled Item" +msgstr "å·²åœç”¨" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Check Item" msgstr "" @@ -7154,6 +7620,22 @@ msgid "Checked Radio Item" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +msgid "Named Sep." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Submenu" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Item 1" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Item 2" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Has" msgstr "" @@ -7163,8 +7645,8 @@ msgstr "" #: editor/plugins/theme_editor_plugin.cpp #, fuzzy -msgid "Has,Many,Options" -msgstr "é¸é …" +msgid "Disabled LineEdit" +msgstr "å·²åœç”¨" #: editor/plugins/theme_editor_plugin.cpp msgid "Tab 1" @@ -7179,6 +7661,20 @@ msgid "Tab 3" msgstr "" #: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Editable Item" +msgstr "檔案" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Subtree" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Has,Many,Options" +msgstr "é¸é …" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Data Type:" msgstr "" @@ -7213,6 +7709,7 @@ msgid "Fix Invalid Tiles" msgstr "無效å稱" #: editor/plugins/tile_map_editor_plugin.cpp +#: modules/gridmap/grid_map_editor_plugin.cpp #, fuzzy msgid "Cut Selection" msgstr "åªé™é¸ä¸" @@ -7256,36 +7753,46 @@ msgid "Mirror Y" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp +msgid "Disable Autotile" +msgstr "" + +#: editor/plugins/tile_map_editor_plugin.cpp +#, fuzzy +msgid "Enable Priority" +msgstr "檔案" + +#: editor/plugins/tile_map_editor_plugin.cpp msgid "Paint Tile" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Pick Tile" +msgid "" +"Shift+RMB: Line Draw\n" +"Shift+Ctrl+RMB: Rectangle Paint" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -#, fuzzy -msgid "Copy Selection" -msgstr "移除é¸é …" +msgid "Pick Tile" +msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Rotate left" +msgid "Rotate Left" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Rotate right" +msgid "Rotate Right" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Flip horizontally" +msgid "Flip Horizontally" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Flip vertically" +msgid "Flip Vertically" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Clear transform" +msgid "Clear Transform" msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp @@ -7325,6 +7832,44 @@ msgid "Select the previous shape, subtile, or Tile." msgstr "" #: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Region Mode" +msgstr "無干擾模å¼" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Collision Mode" +msgstr "無干擾模å¼" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Occlusion Mode" +msgstr "æ’ä»¶" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Navigation Mode" +msgstr "æ’ä»¶" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Bitmask Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Priority Mode" +msgstr "匯出" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Icon Mode" +msgstr "移動模å¼" + +#: editor/plugins/tile_set_editor_plugin.cpp +msgid "Z Index Mode" +msgstr "" + +#: editor/plugins/tile_set_editor_plugin.cpp msgid "Copy bitmask." msgstr "" @@ -7414,6 +7959,7 @@ msgstr "刪除" msgid "" "LMB: Set bit on.\n" "RMB: Set bit off.\n" +"Shift+LMB: Set wildcard bit.\n" "Click on another Tile to edit it." msgstr "新增資料夾" @@ -7538,6 +8084,76 @@ msgid "TileSet" msgstr "TileSet..." #: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Add input +" +msgstr "新增訊號" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add output +" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector" +msgstr "監視器" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Add input port" +msgstr "新增訊號" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add output port" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change input port type" +msgstr "動畫變化數值" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change output port type" +msgstr "更改動畫循環" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change input port name" +msgstr "動畫變化數值" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change output port name" +msgstr "動畫變化數值" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Remove input port" +msgstr "åªé™é¸ä¸" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Remove output port" +msgstr "åªé™é¸ä¸" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Set expression" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Resize VisualShader node" +msgstr "當改變時更新" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Set Uniform Name" msgstr "" @@ -7576,6 +8192,846 @@ msgid "Light" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Create Shader Node" +msgstr "新增資料夾" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Color function." +msgstr "行為" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Color operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Grayscale function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts HSV vector to RGB equivalent." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts RGB vector to HSV equivalent." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Sepia function." +msgstr "åªé™é¸ä¸" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Burn operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Darken operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Difference operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Dodge operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "HardLight operator" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Lighten operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Overlay operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Screen operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "SoftLight operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Color constant." +msgstr "常數" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Color uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns an associated vector if the provided scalars are equal, greater or " +"less." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns an associated vector if the provided boolean value is true or false." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'camera' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'inv_camera' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'inv_projection' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'normal' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'projection' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'time' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'viewport_size' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'world' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'texture_pixel_size' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Input parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'binormal' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'fragcoord' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_coord' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_uv' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'side' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'tangent' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv2' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'vertex' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'view' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'albedo' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'attenuation' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'diffuse' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_color' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'roughness' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'specular' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'transmission' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'modelview' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_size' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'tangent' input parameter for vertex and fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_pass' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_coord' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_pixel_size' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_uv' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_alpha' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_height' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_uv' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_vec' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'normal' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'shadow_color' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'extra' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'projection' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'vertex' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'world' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'active' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'custom' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'custom_alpha' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'delta' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'emission_transform' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'index' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'lifetime' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'restart' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'time' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'transform' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'velocity' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar function." +msgstr "縮放selection" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Scalar operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "E constant (2.718282). Represents the base of the natural logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Epsilon constant (0.00001). Smallest possible scalar number." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Phi constant (1.618034). Golden ratio." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi/4 constant (0.785398) or 45 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi/2 constant (1.570796) or 90 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi constant (3.141593) or 180 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Tau constant (6.283185) or 360 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Sqrt2 constant (1.414214). Square root of 2." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the absolute value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-tangent of the parameters." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Finds the nearest integer that is greater than or equal to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Constrains a value to lie between two further values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts a quantity in radians to degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-e Exponential." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-2 Exponential." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Finds the nearest integer less than or equal to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Computes the fractional part of the argument." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the inverse of the square root of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Natural logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-2 logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the greater of two values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the lesser of two values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Linear interpolation between two scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the opposite value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 - scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns the value of the first parameter raised to the power of the second." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts a quantity in degrees to radians." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 / scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the nearest integer to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the nearest even integer to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Clamps the value between 0.0 and 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Extracts the sign of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the square root of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( scalar(edge0), scalar(edge1), scalar(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if x is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( scalar(edge), scalar(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the truncated value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Adds scalar to scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Divides scalar by scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies scalar by scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the remainder of the two scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Subtracts scalar from scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Scalar constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Scalar uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Perform the cubic texture lookup." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Perform the texture lookup." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Cubic texture uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "2D texture uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Transform function." +msgstr "縮放selection" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) Calculate the outer product of a pair of vectors.\n" +"\n" +"OuterProduct treats the first parameter 'c' as a column vector (matrix with " +"one column) and the second parameter 'r' as a row vector (matrix with one " +"row) and does a linear algebraic matrix multiply 'c * r', yielding a matrix " +"whose number of rows is the number of components in 'c' and whose number of " +"columns is the number of components in 'r'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Composes transform from four vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Decomposes transform to four vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the determinant of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the inverse of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the transpose of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies transform by transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies vector by transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Transform constant." +msgstr "縮放selection" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Transform uniform." +msgstr "縮放selection" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector function." +msgstr "åªé™é¸ä¸" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Composes vector from three scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Decomposes vector to three scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the cross product of two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the distance between two points." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the dot product of two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns a vector that points in the same direction as a reference vector. " +"The function has three vector parameters : N, the vector to orient, I, the " +"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 "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the length of a vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Linear interpolation between two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the normalize product of vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 - vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 / vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns a vector that points in the direction of reflection ( a : incident " +"vector, b : normal vector )." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns a vector that points in the direction of refraction." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( vector(edge0), vector(edge1), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if 'x' is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( scalar(edge0), scalar(edge1), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if 'x' is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( vector(edge), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( scalar(edge), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Adds vector to vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Divides vector by vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies vector by vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the remainder of the two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Subtracts vector from vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Custom Godot Shader Language expression, with custom amount of input and " +"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 "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns falloff based on the dot product of surface normal and view " +"direction of camera (pass associated inputs to it)." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) (Fragment/Light mode only) Scalar derivative function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) (Fragment/Light mode only) Vector derivative function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Derivative in 'x' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Derivative in 'x' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Derivative in 'y' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Derivative in 'y' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Sum of absolute derivative " +"in 'x' and 'y'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Sum of absolute derivative " +"in 'x' and 'y'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "VisualShader" msgstr "" @@ -7779,6 +9235,10 @@ msgid "Directory already contains a Godot project." msgstr "" #: editor/project_manager.cpp +msgid "New Game Project" +msgstr "" + +#: editor/project_manager.cpp msgid "Imported Project" msgstr "" @@ -7828,10 +9288,6 @@ msgid "Rename Project" msgstr "專案" #: editor/project_manager.cpp -msgid "New Game Project" -msgstr "" - -#: editor/project_manager.cpp msgid "Import Existing Project" msgstr "" @@ -7863,11 +9319,6 @@ msgid "Project Name:" msgstr "" #: editor/project_manager.cpp -#, fuzzy -msgid "Create folder" -msgstr "新增資料夾" - -#: editor/project_manager.cpp msgid "Project Path:" msgstr "" @@ -7876,10 +9327,6 @@ msgid "Project Installation Path:" msgstr "" #: editor/project_manager.cpp -msgid "Browse" -msgstr "ç€è¦½" - -#: editor/project_manager.cpp msgid "Renderer:" msgstr "" @@ -7933,8 +9380,8 @@ msgid "" "\n" "If you proceed with opening it, it will be converted to Godot's current " "configuration file format.\n" -"Warning: You will not be able to open the project with previous versions of " -"the engine anymore." +"Warning: You won't be able to open the project with previous versions of the " +"engine anymore." msgstr "" #: editor/project_manager.cpp @@ -7945,8 +9392,8 @@ msgid "" "%s\n" "\n" "Do you want to convert it?\n" -"Warning: You will not be able to open the project with previous versions of " -"the engine anymore." +"Warning: You won't be able to open the project with previous versions of the " +"engine anymore." msgstr "" #: editor/project_manager.cpp @@ -7956,11 +9403,14 @@ msgid "" msgstr "" #: editor/project_manager.cpp +#, fuzzy msgid "" "Can't run project: no main scene defined.\n" -"Please edit the project and set the main scene in \"Project Settings\" under " +"Please edit the project and set the main scene in the Project Settings under " "the \"Application\" category." msgstr "" +"從未è¨å®šä¸»è¦scene,è¦é¸æ“‡å—Žï¼Ÿ\n" +"ç¨å¾Œä½ å¯ä»¥åœ¨ \"Project Settings\" under the 'application' category å†è¨å®šã€‚" #: editor/project_manager.cpp msgid "" @@ -7969,23 +9419,37 @@ msgid "" msgstr "" #: editor/project_manager.cpp -msgid "Are you sure to run more than one project?" +msgid "Are you sure to run %d projects at once?" msgstr "" #: editor/project_manager.cpp -msgid "Remove project from the list? (Folder contents will not be modified)" +msgid "" +"Remove %d projects from the list?\n" +"The project folders' contents won't be modified." +msgstr "" + +#: editor/project_manager.cpp +msgid "" +"Remove this project from the list?\n" +"The project folder's contents won't be modified." +msgstr "" + +#: editor/project_manager.cpp +msgid "" +"Remove all missing projects from the list? (Folders contents will not be " +"modified)" msgstr "" #: editor/project_manager.cpp msgid "" "Language changed.\n" -"The UI will update next time the editor or project manager starts." +"The interface will update after restarting the editor or project manager." msgstr "" #: editor/project_manager.cpp msgid "" -"You are about the scan %s folders for existing Godot projects. Do you " -"confirm?" +"Are you sure to scan %s folders for existing Godot projects?\n" +"This could take a while." msgstr "" #: editor/project_manager.cpp @@ -8010,6 +9474,11 @@ msgstr "" #: editor/project_manager.cpp #, fuzzy +msgid "Remove Missing" +msgstr "åªé™é¸ä¸" + +#: editor/project_manager.cpp +#, fuzzy msgid "Templates" msgstr "移除é¸é …" @@ -8028,8 +9497,8 @@ msgstr "ä¸èƒ½é€£æŽ¥ã€‚" #: editor/project_manager.cpp msgid "" -"You don't currently have any projects.\n" -"Would you like to explore the official example projects in the Asset Library?" +"You currently don't have any projects.\n" +"Would you like to explore official example projects in the Asset Library?" msgstr "" #: editor/project_settings_editor.cpp @@ -8055,8 +9524,9 @@ msgid "" msgstr "" #: editor/project_settings_editor.cpp -msgid "Action '%s' already exists!" -msgstr "" +#, fuzzy +msgid "An action with the name '%s' already exists." +msgstr "錯誤:動畫å稱已å˜åœ¨ï¼" #: editor/project_settings_editor.cpp msgid "Rename Input Action Event" @@ -8218,10 +9688,6 @@ msgid "" msgstr "" #: editor/project_settings_editor.cpp -msgid "Already existing" -msgstr "" - -#: editor/project_settings_editor.cpp msgid "Add Input Action" msgstr "" @@ -8286,7 +9752,7 @@ msgid "Override For..." msgstr "" #: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp -msgid "Editor must be restarted for changes to take effect" +msgid "The editor must be restarted for changes to take effect." msgstr "" #: editor/project_settings_editor.cpp @@ -8346,12 +9812,13 @@ msgid "Locales Filter" msgstr "" #: editor/project_settings_editor.cpp -msgid "Show all locales" +msgid "Show All Locales" msgstr "" #: editor/project_settings_editor.cpp -msgid "Show only selected locales" -msgstr "" +#, fuzzy +msgid "Show Selected Locales Only" +msgstr "åªé™é¸ä¸" #: editor/project_settings_editor.cpp #, fuzzy @@ -8367,14 +9834,6 @@ msgid "AutoLoad" msgstr "" #: editor/property_editor.cpp -msgid "Ease In" -msgstr "" - -#: editor/property_editor.cpp -msgid "Ease Out" -msgstr "" - -#: editor/property_editor.cpp msgid "Zero" msgstr "" @@ -8453,8 +9912,9 @@ msgid "Suffix" msgstr "" #: editor/rename_dialog.cpp -msgid "Advanced options" -msgstr "" +#, fuzzy +msgid "Advanced Options" +msgstr "é¸é …" #: editor/rename_dialog.cpp msgid "Substitute" @@ -8718,8 +10178,8 @@ msgstr "" #: editor/scene_tree_dock.cpp #, fuzzy -msgid "Custom Node" -msgstr "貼上" +msgid "Other Node" +msgstr "ä¸é¸" #: editor/scene_tree_dock.cpp msgid "Can't operate on nodes from a foreign scene!" @@ -8763,7 +10223,7 @@ msgstr "" #: editor/scene_tree_dock.cpp #, fuzzy -msgid "Open documentation" +msgid "Open Documentation" msgstr "開啓最近的" #: editor/scene_tree_dock.cpp @@ -8792,7 +10252,7 @@ msgstr "" msgid "Save Branch as Scene" msgstr "" -#: editor/scene_tree_dock.cpp +#: editor/scene_tree_dock.cpp editor/script_editor_debugger.cpp #, fuzzy msgid "Copy Node Path" msgstr "複製路徑" @@ -8838,6 +10298,21 @@ msgid "Toggle Visible" msgstr "(ä¸ï¼‰é¡¯ç¤ºéš±è—的文件" #: editor/scene_tree_editor.cpp +#, fuzzy +msgid "Unlock Node" +msgstr "ä¸é¸" + +#: editor/scene_tree_editor.cpp +#, fuzzy +msgid "Button Group" +msgstr "按éµ" + +#: editor/scene_tree_editor.cpp +#, fuzzy +msgid "(Connecting From)" +msgstr "連到..." + +#: editor/scene_tree_editor.cpp msgid "Node configuration warning:" msgstr "" @@ -8859,9 +10334,9 @@ msgid "" "Click to show groups dock." msgstr "" -#: editor/scene_tree_editor.cpp editor/script_create_dialog.cpp +#: editor/scene_tree_editor.cpp #, fuzzy -msgid "Open Script" +msgid "Open Script:" msgstr "下一個腳本" #: editor/scene_tree_editor.cpp @@ -8908,77 +10383,81 @@ msgstr "" #: editor/script_create_dialog.cpp #, fuzzy -msgid "Error loading template '%s'" -msgstr "載入å—形出ç¾éŒ¯èª¤" +msgid "Path is empty." +msgstr "路徑為空" #: editor/script_create_dialog.cpp #, fuzzy -msgid "Error - Could not create script in filesystem." -msgstr "無法新增資料夾" +msgid "Filename is empty." +msgstr "路徑為空" #: editor/script_create_dialog.cpp -#, fuzzy -msgid "Error loading script from %s" -msgstr "載入å—形出ç¾éŒ¯èª¤" +msgid "Path is not local." +msgstr "" #: editor/script_create_dialog.cpp -msgid "N/A" -msgstr "N/A" +#, fuzzy +msgid "Invalid base path." +msgstr "有效的路徑" #: editor/script_create_dialog.cpp -msgid "Open Script/Choose Location" +msgid "A directory with the same name exists." msgstr "" #: editor/script_create_dialog.cpp -msgid "Path is empty" -msgstr "路徑為空" - -#: editor/script_create_dialog.cpp #, fuzzy -msgid "Filename is empty" -msgstr "路徑為空" +msgid "Invalid extension." +msgstr "無效副檔å" #: editor/script_create_dialog.cpp -msgid "Path is not local" +msgid "Wrong extension chosen." msgstr "" #: editor/script_create_dialog.cpp -msgid "Invalid base path" -msgstr "" +#, fuzzy +msgid "Error loading template '%s'" +msgstr "載入å—形出ç¾éŒ¯èª¤" #: editor/script_create_dialog.cpp -msgid "Directory of the same name exists" -msgstr "" +#, fuzzy +msgid "Error - Could not create script in filesystem." +msgstr "無法新增資料夾" #: editor/script_create_dialog.cpp #, fuzzy -msgid "File exists, will be reused" -msgstr "檔案已å˜åœ¨, è¦è¦†è“‹å—Ž?" +msgid "Error loading script from %s" +msgstr "載入å—形出ç¾éŒ¯èª¤" #: editor/script_create_dialog.cpp -msgid "Invalid extension" -msgstr "無效副檔å" +msgid "N/A" +msgstr "N/A" #: editor/script_create_dialog.cpp -msgid "Wrong extension chosen" +msgid "Open Script / Choose Location" msgstr "" #: editor/script_create_dialog.cpp #, fuzzy -msgid "Invalid Path" -msgstr "有效的路徑" +msgid "Open Script" +msgstr "下一個腳本" #: editor/script_create_dialog.cpp -msgid "Invalid class name" -msgstr "" +#, fuzzy +msgid "File exists, it will be reused." +msgstr "檔案已å˜åœ¨, è¦è¦†è“‹å—Ž?" #: editor/script_create_dialog.cpp -msgid "Invalid inherited parent name or path" +#, fuzzy +msgid "Invalid class name." +msgstr "無效å稱" + +#: editor/script_create_dialog.cpp +msgid "Invalid inherited parent name or path." msgstr "" #: editor/script_create_dialog.cpp #, fuzzy -msgid "Script valid" +msgid "Script is valid." msgstr "腳本" #: editor/script_create_dialog.cpp @@ -8986,17 +10465,17 @@ msgid "Allowed: a-z, A-Z, 0-9 and _" msgstr "" #: editor/script_create_dialog.cpp -msgid "Built-in script (into scene file)" +msgid "Built-in script (into scene file)." msgstr "" #: editor/script_create_dialog.cpp #, fuzzy -msgid "Create new script file" +msgid "Will create a new script file." msgstr "新增" #: editor/script_create_dialog.cpp #, fuzzy -msgid "Load existing script file" +msgid "Will load an existing script file." msgstr "下一個腳本" #: editor/script_create_dialog.cpp @@ -9132,6 +10611,10 @@ msgstr "" msgid "Set From Tree" msgstr "" +#: editor/script_editor_debugger.cpp +msgid "Export measures as CSV" +msgstr "" + #: editor/settings_config_dialog.cpp #, fuzzy msgid "Erase Shortcut" @@ -9265,6 +10748,14 @@ msgid "GDNativeLibrary" msgstr "MeshLibrary..." #: modules/gdnative/gdnative_library_singleton_editor.cpp +msgid "Enabled GDNative Singleton" +msgstr "" + +#: modules/gdnative/gdnative_library_singleton_editor.cpp +msgid "Disabled GDNative Singleton" +msgstr "" + +#: modules/gdnative/gdnative_library_singleton_editor.cpp #, fuzzy msgid "Library" msgstr "MeshLibrary..." @@ -9355,8 +10846,8 @@ msgstr "刪除é¸ä¸æª”案" #: modules/gridmap/grid_map_editor_plugin.cpp #, fuzzy -msgid "GridMap Duplicate Selection" -msgstr "複製 Selection" +msgid "GridMap Paste Selection" +msgstr "刪除é¸ä¸æª”案" #: modules/gridmap/grid_map_editor_plugin.cpp #, fuzzy @@ -9426,19 +10917,6 @@ msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp #, fuzzy -msgid "Create Area" -msgstr "新增" - -#: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Create Exterior Connector" -msgstr "" - -#: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Erase Area" -msgstr "" - -#: modules/gridmap/grid_map_editor_plugin.cpp -#, fuzzy msgid "Clear Selection" msgstr "縮放selection" @@ -9812,15 +11290,7 @@ msgid "Available Nodes:" msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Select or create a function to edit graph" -msgstr "" - -#: modules/visual_script/visual_script_editor.cpp -msgid "Edit Signal Arguments:" -msgstr "" - -#: modules/visual_script/visual_script_editor.cpp -msgid "Edit Variable:" +msgid "Select or create a function to edit its graph." msgstr "" #: modules/visual_script/visual_script_editor.cpp @@ -9953,6 +11423,19 @@ msgid "Debug keystore not configured in the Editor Settings nor in the preset." msgstr "" #: platform/android/export/export.cpp +msgid "Custom build requires a valid Android SDK path in Editor Settings." +msgstr "" + +#: platform/android/export/export.cpp +msgid "Invalid Android SDK path for custom build in Editor Settings." +msgstr "" + +#: platform/android/export/export.cpp +msgid "" +"Android project is not installed for compiling. Install from Editor menu." +msgstr "" + +#: platform/android/export/export.cpp msgid "Invalid public key for APK expansion." msgstr "" @@ -9961,6 +11444,34 @@ msgstr "" msgid "Invalid package name:" msgstr "無效å稱" +#: platform/android/export/export.cpp +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 "" +"Android build version mismatch:\n" +" Template installed: %s\n" +" Godot Version: %s\n" +"Please reinstall Android build template from 'Project' menu." +msgstr "" + +#: platform/android/export/export.cpp +msgid "Building Android Project (gradle)" +msgstr "" + +#: 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 "" + +#: platform/android/export/export.cpp +msgid "No build apk generated at: " +msgstr "" + #: platform/iphone/export/export.cpp msgid "Identifier is missing." msgstr "" @@ -10225,27 +11736,27 @@ msgid "ARVRCamera must have an ARVROrigin node as its parent" msgstr "" #: scene/3d/arvr_nodes.cpp -msgid "ARVRController must have an ARVROrigin node as its parent" +msgid "ARVRController must have an ARVROrigin node as its parent." msgstr "" #: scene/3d/arvr_nodes.cpp msgid "" -"The controller id must not be 0 or this controller will not be bound to an " -"actual controller" +"The controller ID must not be 0 or this controller won't be bound to an " +"actual controller." msgstr "" #: scene/3d/arvr_nodes.cpp -msgid "ARVRAnchor must have an ARVROrigin node as its parent" +msgid "ARVRAnchor must have an ARVROrigin node as its parent." msgstr "" #: scene/3d/arvr_nodes.cpp msgid "" -"The anchor id must not be 0 or this anchor will not be bound to an actual " -"anchor" +"The anchor ID must not be 0 or this anchor won't be bound to an actual " +"anchor." msgstr "" #: scene/3d/arvr_nodes.cpp -msgid "ARVROrigin requires an ARVRCamera child node" +msgid "ARVROrigin requires an ARVRCamera child node." msgstr "" #: scene/3d/baked_lightmap.cpp @@ -10315,8 +11826,8 @@ msgstr "" #: scene/3d/cpu_particles.cpp msgid "" -"CPUParticles animation requires the usage of a SpatialMaterial with " -"\"Billboard Particles\" enabled." +"CPUParticles animation requires the usage of a SpatialMaterial whose " +"Billboard Mode is set to \"Particle Billboard\"." msgstr "" #: scene/3d/gi_probe.cpp @@ -10353,8 +11864,8 @@ msgstr "" #: scene/3d/particles.cpp msgid "" -"Particles animation requires the usage of a SpatialMaterial with \"Billboard " -"Particles\" enabled." +"Particles animation requires the usage of a SpatialMaterial whose Billboard " +"Mode is set to \"Particle Billboard\"." msgstr "" #: scene/3d/path.cpp @@ -10379,7 +11890,7 @@ msgid "Path property must point to a valid Spatial node to work." msgstr "" #: scene/3d/soft_body.cpp -msgid "This body will be ignored until you set a mesh" +msgid "This body will be ignored until you set a mesh." msgstr "" #: scene/3d/soft_body.cpp @@ -10480,7 +11991,7 @@ msgstr "" msgid "" "Container by itself serves no purpose unless a script configures it's " "children placement behavior.\n" -"If you dont't intend to add a script, then please use a plain 'Control' node " +"If you don't intend to add a script, then please use a plain 'Control' node " "instead." msgstr "" @@ -10492,11 +12003,6 @@ msgstr "è¦å‘Š!" msgid "Please Confirm..." msgstr "請確èª..." -#: scene/gui/file_dialog.cpp -#, fuzzy -msgid "Go to parent folder." -msgstr "無法新增資料夾" - #: scene/gui/popup.cpp msgid "" "Popups will hide by default unless you call popup() or any of the popup*() " @@ -10570,6 +12076,48 @@ msgstr "" msgid "Varyings can only be assigned in vertex function." msgstr "" +#: servers/visual/shader_language.cpp +msgid "Constants cannot be modified." +msgstr "" + +#~ msgid "Delete selected files?" +#~ msgstr "è¦åˆªé™¤é¸ä¸æª”案?" + +#, fuzzy +#~ msgid "Go to parent folder" +#~ msgstr "無法新增資料夾" + +#~ msgid "Select device from the list" +#~ msgstr "從列表é¸å–è¨å‚™" + +#, fuzzy +#~ msgid "Open Scene(s)" +#~ msgstr "é–‹å•“å ´æ™¯" + +#, fuzzy +#~ msgid "Ease in" +#~ msgstr "縮放selection" + +#, fuzzy +#~ msgid "Create folder" +#~ msgstr "新增資料夾" + +#, fuzzy +#~ msgid "Custom Node" +#~ msgstr "貼上" + +#, fuzzy +#~ msgid "Invalid Path" +#~ msgstr "有效的路徑" + +#, fuzzy +#~ msgid "GridMap Duplicate Selection" +#~ msgstr "複製 Selection" + +#, fuzzy +#~ msgid "Create Area" +#~ msgstr "新增" + #, fuzzy #~ msgid "Line:" #~ msgstr "行:" @@ -10651,15 +12199,9 @@ msgstr "" #~ msgid "Error:" #~ msgstr "錯誤:" -#~ msgid "Source:" -#~ msgstr "來æº:" - #~ msgid "Errors:" #~ msgstr "錯誤:" -#~ msgid "Disabled" -#~ msgstr "å·²åœç”¨" - #~ msgid "Move Anim Track Up" #~ msgstr "動畫軌跡上移" @@ -10859,9 +12401,6 @@ msgstr "" #~ msgid "Include" #~ msgstr "包括" -#~ msgid "Target" -#~ msgstr "目標" - #~ msgid "Images" #~ msgstr "圖片" @@ -10879,6 +12418,3 @@ msgstr "" #~ msgid "Cannot go into subdir:" #~ msgstr "無法進入次è¦è³‡æ–™å¤¾" - -#~ msgid "Live Editing" -#~ msgstr "峿™‚編輯" diff --git a/editor/translations/zh_TW.po b/editor/translations/zh_TW.po index 6f858474a2..730ca41148 100644 --- a/editor/translations/zh_TW.po +++ b/editor/translations/zh_TW.po @@ -81,6 +81,15 @@ msgstr "平衡的" msgid "Mirror" msgstr "镜åƒ" +#: editor/animation_bezier_editor.cpp editor/editor_profiler.cpp +msgid "Time:" +msgstr "時間:" + +#: editor/animation_bezier_editor.cpp +#, fuzzy +msgid "Value:" +msgstr "數值" + #: editor/animation_bezier_editor.cpp msgid "Insert Key Here" msgstr "åœ¨æ¤æ’å…¥ç•«æ ¼" @@ -166,15 +175,21 @@ msgstr "動畫回放軌é“" #: editor/animation_track_editor.cpp #, fuzzy -msgid "Add Track" -msgstr "æ·»åŠ å‹•ç•«è»Œ" +msgid "Animation length (frames)" +msgstr "動畫長度(秒)" #: editor/animation_track_editor.cpp -msgid "Animation Length Time (seconds)" +#, fuzzy +msgid "Animation length (seconds)" msgstr "動畫長度(秒)" #: editor/animation_track_editor.cpp #, fuzzy +msgid "Add Track" +msgstr "æ·»åŠ å‹•ç•«è»Œ" + +#: editor/animation_track_editor.cpp +#, fuzzy msgid "Animation Looping" msgstr "動畫空間。" @@ -307,11 +322,13 @@ msgid "Create %d NEW tracks and insert keys?" msgstr "創建 %d 個動畫軌並æ’å…¥ç•«æ ¼ï¼Ÿ" #: editor/animation_track_editor.cpp editor/create_dialog.cpp -#: editor/editor_audio_buses.cpp editor/editor_plugin_settings.cpp -#: editor/plugin_config_dialog.cpp +#: editor/editor_audio_buses.cpp editor/editor_feature_profile.cpp +#: editor/editor_plugin_settings.cpp editor/plugin_config_dialog.cpp #: editor/plugins/abstract_polygon_2d_editor.cpp #: editor/plugins/mesh_instance_editor_plugin.cpp -#: editor/plugins/particles_editor_plugin.cpp editor/script_create_dialog.cpp +#: editor/plugins/particles_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_create_dialog.cpp msgid "Create" msgstr "新增" @@ -429,6 +446,23 @@ msgid "" msgstr "這個é¸é …ä¸é©ç”¨æ–¼è²å¡žçˆ¾ç·¨è¼¯ï¼Œå› ç‚ºå®ƒåªæ˜¯ä¸€å€‹å–®è»Œã€‚" #: editor/animation_track_editor.cpp +msgid "" +"This animation belongs to an imported scene, so changes to imported tracks " +"will not be saved.\n" +"\n" +"To enable the ability to add custom tracks, navigate to the scene's import " +"settings and set\n" +"\"Animation > Storage\" to \"Files\", enable \"Animation > Keep Custom Tracks" +"\", then re-import.\n" +"Alternatively, use an import preset that imports animations to separate " +"files." +msgstr "" + +#: editor/animation_track_editor.cpp +msgid "Warning: Editing imported animation" +msgstr "" + +#: editor/animation_track_editor.cpp msgid "Only show tracks from nodes selected in tree." msgstr "åƒ…é¡¯ç¤ºæ¨¹ä¸æ‰€é¸ç¯€é»žçš„軌跡。" @@ -569,7 +603,8 @@ msgstr "縮放比例:" msgid "Select tracks to copy:" msgstr "鏿“‡è¦è¤‡è£½çš„軌é“:" -#: editor/animation_track_editor.cpp editor/editor_properties.cpp +#: editor/animation_track_editor.cpp editor/editor_log.cpp +#: editor/editor_properties.cpp #: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp #: editor/plugins/sprite_frames_editor_plugin.cpp editor/property_editor.cpp @@ -638,6 +673,11 @@ msgstr "å–代全部" msgid "Selection Only" msgstr "åƒ…é¸æ“‡å€åŸŸ" +#: editor/code_editor.cpp editor/plugins/script_text_editor.cpp +#: editor/plugins/text_editor.cpp +msgid "Standard" +msgstr "標準" + #: editor/code_editor.cpp editor/plugins/canvas_item_editor_plugin.cpp #: editor/plugins/texture_region_editor_plugin.cpp #: editor/plugins/tile_set_editor_plugin.cpp scene/gui/graph_edit.cpp @@ -663,19 +703,37 @@ msgid "Line and column numbers." msgstr "行號和列號。" #: editor/connections_dialog.cpp -msgid "Method in target Node must be specified!" +#, fuzzy +msgid "Method in target node must be specified." msgstr "å¿…é ˆæŒ‡å®šå°ç›®æ¨™ç¯€é»žçš„行為ï¼" #: editor/connections_dialog.cpp +#, fuzzy msgid "" -"Target method not found! Specify a valid method or attach a script to target " -"Node." +"Target method not found. Specify a valid method or attach a script to the " +"target node." msgstr "找ä¸åˆ°ç›®æ¨™æ–¹æ³•ï¼è«‹æŒ‡å®šæœ‰æ•ˆæ–¹æ³•ã€æˆ–å°‡è…³æœ¬é™„åŠ è‡³ç›®æ¨™ç¯€é»žä¸Šã€‚" #: editor/connections_dialog.cpp -msgid "Connect To Node:" +#, fuzzy +msgid "Connect to Node:" msgstr "連接到節點:" +#: editor/connections_dialog.cpp +#, fuzzy +msgid "Connect to Script:" +msgstr "無法連接到主機:" + +#: editor/connections_dialog.cpp +#, fuzzy +msgid "From Signal:" +msgstr "訊號:" + +#: editor/connections_dialog.cpp +#, fuzzy +msgid "Scene does not contain any script." +msgstr "節點ä¸åŒ…å«å¹¾ä½•圖形。" + #: editor/connections_dialog.cpp editor/editor_autoload_settings.cpp #: editor/groups_editor.cpp editor/plugins/item_list_editor_plugin.cpp #: editor/plugins/theme_editor_plugin.cpp editor/project_settings_editor.cpp @@ -683,10 +741,12 @@ msgid "Add" msgstr "新增" #: editor/connections_dialog.cpp editor/dependency_editor.cpp -#: editor/groups_editor.cpp editor/plugins/animation_player_editor_plugin.cpp +#: editor/editor_feature_profile.cpp editor/groups_editor.cpp +#: editor/plugins/animation_player_editor_plugin.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp #: editor/plugins/resource_preloader_editor_plugin.cpp -#: editor/plugins/theme_editor_plugin.cpp editor/project_manager.cpp +#: editor/plugins/theme_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_manager.cpp #: editor/project_settings_editor.cpp msgid "Remove" msgstr "移除" @@ -700,12 +760,9 @@ msgid "Extra Call Arguments:" msgstr "é¡å¤–呼å«åƒæ•¸:" #: editor/connections_dialog.cpp -msgid "Path to Node:" -msgstr "節點路徑:" - -#: editor/connections_dialog.cpp -msgid "Make Function" -msgstr "建立函å¼" +#, fuzzy +msgid "Advanced" +msgstr "平衡的" #: editor/connections_dialog.cpp #, fuzzy @@ -713,9 +770,23 @@ msgid "Deferred" msgstr "å»¶é²" #: editor/connections_dialog.cpp +msgid "" +"Defers the signal, storing it in a queue and only firing it at idle time." +msgstr "" + +#: editor/connections_dialog.cpp msgid "Oneshot" msgstr "一次性" +#: editor/connections_dialog.cpp +msgid "Disconnects the signal after its first emission." +msgstr "" + +#: editor/connections_dialog.cpp +#, fuzzy +msgid "Cannot connect signal" +msgstr "連çµè¨Šè™Ÿ:" + #: editor/connections_dialog.cpp editor/dependency_editor.cpp #: editor/export_template_manager.cpp editor/groups_editor.cpp #: editor/plugins/animation_player_editor_plugin.cpp @@ -758,12 +829,12 @@ msgstr "æ–·ç·š" #: editor/connections_dialog.cpp #, fuzzy -msgid "Connect Signal: " +msgid "Connect a Signal to a Method" msgstr "連çµè¨Šè™Ÿ:" #: editor/connections_dialog.cpp #, fuzzy -msgid "Edit Connection: " +msgid "Edit Connection:" msgstr "連接..." #: editor/connections_dialog.cpp @@ -797,7 +868,6 @@ msgid "Change %s Type" msgstr "變更 %s 尺寸" #: editor/create_dialog.cpp editor/project_settings_editor.cpp -#: modules/visual_script/visual_script_editor.cpp msgid "Change" msgstr "æ›´æ›" @@ -828,7 +898,8 @@ msgid "Matches:" msgstr "ç¬¦åˆæ¢ä»¶:" #: editor/create_dialog.cpp editor/plugin_config_dialog.cpp -#: editor/plugins/asset_library_editor_plugin.cpp editor/property_selector.cpp +#: editor/plugins/asset_library_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/property_selector.cpp #: modules/visual_script/visual_script_property_selector.cpp msgid "Description:" msgstr "æè¿°:" @@ -842,17 +913,19 @@ msgid "Dependencies For:" msgstr "ç›¸ä¾æ–¼:" #: editor/dependency_editor.cpp +#, fuzzy msgid "" "Scene '%s' is currently being edited.\n" -"Changes will not take effect unless reloaded." +"Changes will only take effect when reloaded." msgstr "" "å ´æ™¯ '%s' 已被變更.\n" "釿–°è¼‰å…¥æ‰èƒ½ä½¿å…¶ç”Ÿæ•ˆ." #: editor/dependency_editor.cpp +#, fuzzy msgid "" "Resource '%s' is in use.\n" -"Changes will take effect when reloaded." +"Changes will only take effect when reloaded." msgstr "" "'%s' è³‡æºæ£åœ¨ä½¿ç”¨ä¸ã€‚\n" "è®Šæ›´æœƒåœ¨é‡æ–°è¼‰å…¥æ™‚套用。" @@ -948,21 +1021,14 @@ msgid "Permanently delete %d item(s)? (No undo!)" msgstr "ç¢ºå®šè¦æ°¸ä¹…刪除 %d 個物件 ? (無法復原)" #: editor/dependency_editor.cpp -msgid "Owns" -msgstr "æ“æœ‰" - -#: editor/dependency_editor.cpp -msgid "Resources Without Explicit Ownership:" -msgstr "æ²’æœ‰æ˜Žå®šæ“æœ‰è€…的資æºï¼š" +#, fuzzy +msgid "Show Dependencies" +msgstr "相ä¾" #: editor/dependency_editor.cpp editor/editor_node.cpp msgid "Orphan Resource Explorer" msgstr "å¤ç«‹è³‡æ–™ç®¡ç†å™¨" -#: editor/dependency_editor.cpp -msgid "Delete selected files?" -msgstr "ç¢ºå®šåˆªé™¤æ‰€é¸æ“‡çš„æª”案嗎?" - #: editor/dependency_editor.cpp editor/editor_audio_buses.cpp #: editor/editor_file_dialog.cpp editor/editor_node.cpp #: editor/filesystem_dock.cpp editor/plugins/item_list_editor_plugin.cpp @@ -971,6 +1037,14 @@ msgstr "ç¢ºå®šåˆªé™¤æ‰€é¸æ“‡çš„æª”案嗎?" msgid "Delete" msgstr "刪除" +#: editor/dependency_editor.cpp +msgid "Owns" +msgstr "æ“æœ‰" + +#: editor/dependency_editor.cpp +msgid "Resources Without Explicit Ownership:" +msgstr "æ²’æœ‰æ˜Žå®šæ“æœ‰è€…的資æºï¼š" + #: editor/dictionary_property_edit.cpp #, fuzzy msgid "Change Dictionary Key" @@ -1089,7 +1163,7 @@ msgstr "å¥—ä»¶å®‰è£æˆåŠŸ!" msgid "Success!" msgstr "æˆåŠŸ!" -#: editor/editor_asset_installer.cpp +#: editor/editor_asset_installer.cpp editor/editor_node.cpp #: editor/plugins/asset_library_editor_plugin.cpp msgid "Install" msgstr "安è£" @@ -1223,8 +1297,12 @@ msgid "Open Audio Bus Layout" msgstr "開啟 Audio Bus é…ç½®" #: editor/editor_audio_buses.cpp -msgid "There is no 'res://default_bus_layout.tres' file." -msgstr "「res://default_bus_layout.tresã€æª”案ä¸å˜åœ¨ã€‚" +msgid "There is no '%s' file." +msgstr "" + +#: editor/editor_audio_buses.cpp editor/plugins/canvas_item_editor_plugin.cpp +msgid "Layout" +msgstr "佈局" #: editor/editor_audio_buses.cpp msgid "Invalid file, not an audio bus layout." @@ -1278,18 +1356,25 @@ msgid "Valid characters:" msgstr "åˆæ³•å—å…ƒ:" #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing engine class name." +#, fuzzy +msgid "Must not collide with an existing engine class name." msgstr "䏿£ç¢ºçš„åå—。åå—ä¸èƒ½èˆ‡ç¾æœ‰çš„ engine class åè¡çªã€‚" #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing buit-in type name." +#, fuzzy +msgid "Must not collide with an existing buit-in type name." msgstr "無效å稱.ä¸èƒ½èˆ‡ç¾æœ‰çš„內置類型å稱沖çª." #: editor/editor_autoload_settings.cpp -msgid "Invalid name. Must not collide with an existing global constant name." +#, fuzzy +msgid "Must not collide with an existing global constant name." msgstr "無效å稱.ä¸èƒ½è·Ÿå·²ç¶“å˜åœ¨çš„全局常é‡å稱é‡è¤‡." #: editor/editor_autoload_settings.cpp +msgid "Keyword cannot be used as an autoload name." +msgstr "" + +#: editor/editor_autoload_settings.cpp #, fuzzy msgid "Autoload '%s' already exists!" msgstr "Autoload「%sã€å·²ç¶“å˜åœ¨!" @@ -1321,11 +1406,12 @@ msgstr "啟用" msgid "Rearrange Autoloads" msgstr "釿–°æŽ’列 Autoload" -#: editor/editor_autoload_settings.cpp -msgid "Invalid Path." +#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp +#, fuzzy +msgid "Invalid path." msgstr "無效的路徑." -#: editor/editor_autoload_settings.cpp +#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp msgid "File does not exist." msgstr "檔案ä¸å˜åœ¨." @@ -1379,7 +1465,7 @@ msgstr "(未儲å˜ï¼‰" #: editor/editor_dir_dialog.cpp #, fuzzy -msgid "Please select a base directory first" +msgid "Please select a base directory first." msgstr "è«‹å…ˆé¸æ“‡ä¸€å€‹åŸºåº•的資料夾" #: editor/editor_dir_dialog.cpp @@ -1387,7 +1473,8 @@ msgid "Choose a Directory" msgstr "鏿“‡è³‡æ–™å¤¾" #: editor/editor_dir_dialog.cpp editor/editor_file_dialog.cpp -#: editor/filesystem_dock.cpp scene/gui/file_dialog.cpp +#: editor/filesystem_dock.cpp editor/project_manager.cpp +#: scene/gui/file_dialog.cpp msgid "Create Folder" msgstr "新增資料夾" @@ -1455,6 +1542,177 @@ msgstr "找ä¸åˆ°è‡ªå®šç¾©ç™¼ä½ˆç¯„本。" msgid "Template file not found:" msgstr "找ä¸åˆ°ç¯„本檔案:" +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "3D Editor" +msgstr "編輯器" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Script Editor" +msgstr "開啟腳本編輯器" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Asset Library" +msgstr "é–‹å•Ÿç´ æå€‰åº«" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Scene Tree Editing" +msgstr "å ´æ™¯æ¨¹ (節點):" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Import Dock" +msgstr "å°Žå…¥" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Node Dock" +msgstr "節點å稱:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Filesystem Dock" +msgstr "文件系統" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Erase profile '%s'? (no undo)" +msgstr "å–代全部" + +#: editor/editor_feature_profile.cpp +msgid "Profile must be a valid filename and must not contain '.'" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Profile with this name already exists." +msgstr "具有æ¤å稱的檔或資料夾已å˜åœ¨ã€‚" + +#: editor/editor_feature_profile.cpp +msgid "(Editor Disabled, Properties Disabled)" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "(Properties Disabled)" +msgstr "僅屬性" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "(Editor Disabled)" +msgstr "å·²åœç”¨" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Class Options:" +msgstr "æè¿°:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enable Contextual Editor" +msgstr "開啟下一個編輯器" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enabled Properties:" +msgstr "效能:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enabled Features:" +msgstr "功能" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enabled Classes:" +msgstr "æœå°‹ Class" + +#: editor/editor_feature_profile.cpp +msgid "File '%s' format is invalid, import aborted." +msgstr "" + +#: editor/editor_feature_profile.cpp +msgid "" +"Profile '%s' already exists. Remote it first before importing, import " +"aborted." +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Error saving profile to path: '%s'." +msgstr "è¼‰å…¥å ´æ™¯æ™‚ç™¼ç”ŸéŒ¯èª¤" + +#: editor/editor_feature_profile.cpp +msgid "Unset" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Current Profile" +msgstr "ç•¶å‰ç‰ˆæœ¬:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Make Current" +msgstr "ç•¶å‰ï¼š" + +#: editor/editor_feature_profile.cpp +#: editor/plugins/animation_player_editor_plugin.cpp +msgid "New" +msgstr "新增" + +#: editor/editor_feature_profile.cpp editor/editor_node.cpp +#: editor/plugins/asset_library_editor_plugin.cpp editor/project_manager.cpp +msgid "Import" +msgstr "å°Žå…¥" + +#: editor/editor_feature_profile.cpp editor/editor_node.cpp +#: editor/project_export.cpp +msgid "Export" +msgstr "輸出" + +#: editor/editor_feature_profile.cpp +msgid "Available Profiles" +msgstr "" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Enabled Classes" +msgstr "æœå°‹ Class" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Class Options" +msgstr "æè¿°:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "New profile name:" +msgstr "æ–°å稱:" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Erase Profile" +msgstr "擦除磚塊地圖" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Import Profile(s)" +msgstr "å·²å°Žå…¥çš„é …ç›®" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Export Profile" +msgstr "輸出專案" + +#: editor/editor_feature_profile.cpp +#, fuzzy +msgid "Manage Editor Feature Profiles" +msgstr "管ç†è¼¸å‡ºæ¨¡æ¿" + #: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Select Current Folder" msgstr "鏿“‡ç›®å‰çš„資料夾" @@ -1477,8 +1735,8 @@ msgstr "複製路徑" msgid "Open in File Manager" msgstr "在檔案管ç†å“¡å…§é¡¯ç¤º" -#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp -#: editor/project_manager.cpp +#: editor/editor_file_dialog.cpp editor/editor_node.cpp +#: editor/filesystem_dock.cpp editor/project_manager.cpp #, fuzzy msgid "Show in File Manager" msgstr "在檔案管ç†å“¡å…§é¡¯ç¤º" @@ -1538,7 +1796,7 @@ msgstr "å¾€å‰" msgid "Go Up" msgstr "往上" -#: editor/editor_file_dialog.cpp +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp msgid "Toggle Hidden Files" msgstr "切æ›é¡¯ç¤ºéš±è—檔案" @@ -1573,9 +1831,9 @@ msgstr "上個分é " msgid "Next Folder" msgstr "新增資料夾" -#: editor/editor_file_dialog.cpp +#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp #, fuzzy -msgid "Go to parent folder" +msgid "Go to parent folder." msgstr "無法新增資料夾" #: editor/editor_file_dialog.cpp @@ -1583,6 +1841,11 @@ msgstr "無法新增資料夾" msgid "(Un)favorite current folder." msgstr "無法新增資料夾" +#: editor/editor_file_dialog.cpp +#, fuzzy +msgid "Toggle visibility of hidden files." +msgstr "切æ›é¡¯ç¤ºéš±è—檔案" + #: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp msgid "View items as a grid of thumbnails." msgstr "ä»¥ç¸®ç•¥åœ–ç¶²æ ¼å½¢å¼æŸ¥çœ‹é …目。" @@ -1597,6 +1860,7 @@ msgstr "資料夾 & 檔案:" #: editor/editor_file_dialog.cpp editor/plugins/sprite_editor_plugin.cpp #: editor/plugins/style_box_editor_plugin.cpp +#: editor/plugins/theme_editor_plugin.cpp msgid "Preview:" msgstr "é 覽:" @@ -1614,6 +1878,12 @@ msgid "ScanSources" msgstr "æŽƒææº" #: editor/editor_file_system.cpp +msgid "" +"There are multiple importers for different types pointing to file %s, import " +"aborted" +msgstr "" + +#: editor/editor_file_system.cpp msgid "(Re)Importing Assets" msgstr "(釿–°)è¼‰å…¥ç´ æ" @@ -1810,6 +2080,11 @@ msgstr "" msgid "Output:" msgstr "輸出:" +#: editor/editor_log.cpp editor/plugins/tile_map_editor_plugin.cpp +#, fuzzy +msgid "Copy Selection" +msgstr "è¤‡è£½é¸æ“‡" + #: editor/editor_log.cpp editor/editor_profiler.cpp #: editor/editor_properties.cpp #: editor/plugins/animation_tree_player_editor_plugin.cpp @@ -1963,7 +2238,7 @@ msgstr "" #: editor/editor_node.cpp msgid "" "This resource belongs to a scene that was instanced or inherited.\n" -"Changes to it will not be kept when saving the current scene." +"Changes to it won't be kept when saving the current scene." msgstr "" #: editor/editor_node.cpp @@ -1973,46 +2248,31 @@ msgid "" msgstr "" #: editor/editor_node.cpp +#, fuzzy msgid "" -"This scene was imported, so changes to it will not be kept.\n" +"This scene was imported, so changes to it won't be kept.\n" "Instancing it or inheriting will allow making changes to it.\n" "Please read the documentation relevant to importing scenes to better " "understand this workflow." msgstr "" +"æ¤è³‡æºå±¬æ–¼å·²å°Žå…¥çš„å ´æ™¯, å› æ¤ä¸å¯ç·¨è¼¯ã€‚\n" +"è«‹é–±è®€èˆ‡å°Žå…¥å ´æ™¯ç›¸é—œçš„æ–‡æª”, 以便更好地çžè§£æ¤å·¥ä½œæµã€‚" #: editor/editor_node.cpp +#, fuzzy msgid "" -"This is a remote object so changes to it will not be kept.\n" +"This is a remote object, so changes to it won't be kept.\n" "Please read the documentation relevant to debugging to better understand " "this workflow." msgstr "" +"æ¤è³‡æºå±¬æ–¼å·²å°Žå…¥çš„å ´æ™¯, å› æ¤ä¸å¯ç·¨è¼¯ã€‚\n" +"è«‹é–±è®€èˆ‡å°Žå…¥å ´æ™¯ç›¸é—œçš„æ–‡æª”, 以便更好地çžè§£æ¤å·¥ä½œæµã€‚" #: editor/editor_node.cpp msgid "There is no defined scene to run." msgstr "沒有è¦é‹è¡Œçš„å·²å®šç¾©å ´æ™¯ã€‚" #: editor/editor_node.cpp -msgid "" -"No main scene has ever been defined, select one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" - -#: editor/editor_node.cpp -msgid "" -"Selected scene '%s' does not exist, select a valid one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" - -#: editor/editor_node.cpp -msgid "" -"Selected scene '%s' is not a scene file, select a valid one?\n" -"You can change it later in \"Project Settings\" under the 'application' " -"category." -msgstr "" - -#: editor/editor_node.cpp msgid "Current scene was never saved, please save it prior to running." msgstr "在é‹è¡Œå ´æ™¯å‰ï¼Œè«‹å…ˆå˜æª”。" @@ -2020,7 +2280,7 @@ msgstr "在é‹è¡Œå ´æ™¯å‰ï¼Œè«‹å…ˆå˜æª”。" msgid "Could not start subprocess!" msgstr "無法啟動å進程!" -#: editor/editor_node.cpp +#: editor/editor_node.cpp editor/filesystem_dock.cpp msgid "Open Scene" msgstr "é–‹å•Ÿå ´æ™¯" @@ -2029,6 +2289,11 @@ msgid "Open Base Scene" msgstr "æ‰“é–‹åŸºæœ¬å ´æ™¯" #: editor/editor_node.cpp +#, fuzzy +msgid "Quick Open..." +msgstr "å¿«é€Ÿé–‹å•Ÿå ´æ™¯..." + +#: editor/editor_node.cpp msgid "Quick Open Scene..." msgstr "å¿«é€Ÿé–‹å•Ÿå ´æ™¯..." @@ -2197,6 +2462,27 @@ msgid "Clear Recent Scenes" msgstr "æ¸…é™¤æœ€è¿‘é–‹å•Ÿçš„å ´æ™¯" #: editor/editor_node.cpp +msgid "" +"No main scene has ever been defined, select one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"Selected scene '%s' does not exist, select a valid one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"Selected scene '%s' is not a scene file, select a valid one?\n" +"You can change it later in \"Project Settings\" under the 'application' " +"category." +msgstr "" + +#: editor/editor_node.cpp msgid "Save Layout" msgstr "儲å˜ä½ˆå±€" @@ -2222,6 +2508,19 @@ msgstr "é‹è¡Œæ¤å ´æ™¯" msgid "Close Tab" msgstr "關閉分é " +#: editor/editor_node.cpp editor/plugins/script_editor_plugin.cpp +msgid "Close Other Tabs" +msgstr "關閉其他é¸é …å¡" + +#: editor/editor_node.cpp +msgid "Close Tabs to the Right" +msgstr "" + +#: editor/editor_node.cpp +#, fuzzy +msgid "Close All Tabs" +msgstr "全部關閉" + #: editor/editor_node.cpp msgid "Switch Scene Tab" msgstr "切æ›å ´æ™¯åˆ†é " @@ -2347,10 +2646,6 @@ msgstr "專案" msgid "Project Settings" msgstr "專案è¨å®š" -#: editor/editor_node.cpp editor/project_export.cpp -msgid "Export" -msgstr "輸出" - #: editor/editor_node.cpp editor/plugins/tile_set_editor_plugin.cpp msgid "Tools" msgstr "工具" @@ -2360,6 +2655,10 @@ msgid "Open Project Data Folder" msgstr "開啟專案資料夾" #: editor/editor_node.cpp +msgid "Install Android Build Template" +msgstr "" + +#: editor/editor_node.cpp msgid "Quit to Project List" msgstr "退出到專案列表" @@ -2472,6 +2771,11 @@ msgstr "開啟 編輯器數據 資料夾" msgid "Open Editor Settings Folder" msgstr "開啟 編輯器è¨å®š 資料夾" +#: editor/editor_node.cpp +#, fuzzy +msgid "Manage Editor Features" +msgstr "管ç†è¼¸å‡ºæ¨¡æ¿" + #: editor/editor_node.cpp editor/project_export.cpp msgid "Manage Export Templates" msgstr "管ç†è¼¸å‡ºæ¨¡æ¿" @@ -2484,6 +2788,7 @@ msgstr "幫助" #: editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp #: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp #: editor/project_settings_editor.cpp editor/rename_dialog.cpp msgid "Search" msgstr "æœå°‹" @@ -2575,11 +2880,6 @@ msgstr "有更動時自動更新" msgid "Disable Update Spinner" msgstr "ç¦æ¢è‡ªå‹•æ›´æ–°" -#: editor/editor_node.cpp editor/plugins/asset_library_editor_plugin.cpp -#: editor/project_manager.cpp -msgid "Import" -msgstr "å°Žå…¥" - #: editor/editor_node.cpp msgid "FileSystem" msgstr "文件系統" @@ -2606,6 +2906,28 @@ msgid "Don't Save" msgstr "ä¸è¦å„²å˜" #: editor/editor_node.cpp +msgid "Android build template is missing, please install relevant templates." +msgstr "" + +#: editor/editor_node.cpp +#, fuzzy +msgid "Manage Templates" +msgstr "管ç†è¼¸å‡ºæ¨¡æ¿" + +#: editor/editor_node.cpp +msgid "" +"This will install the Android project for custom builds.\n" +"Note that, in order to use it, it needs to be enabled per export preset." +msgstr "" + +#: editor/editor_node.cpp +msgid "" +"Android build template is already installed and it won't be overwritten.\n" +"Remove the \"build\" directory manually before attempting this operation " +"again." +msgstr "" + +#: editor/editor_node.cpp msgid "Import Templates From ZIP File" msgstr "導入模æ¿ï¼ˆé€éŽZIP檔案)" @@ -2728,10 +3050,6 @@ msgid "Physics Frame %" msgstr "物ç†å¹€%" #: editor/editor_profiler.cpp -msgid "Time:" -msgstr "時間:" - -#: editor/editor_profiler.cpp msgid "Inclusive" msgstr "包容" @@ -2870,10 +3188,6 @@ msgid "Remove Item" msgstr "ç§»é™¤é …ç›®" #: editor/editor_run_native.cpp -msgid "Select device from the list" -msgstr "從清單ä¸é¸æ“‡è¨å‚™" - -#: editor/editor_run_native.cpp msgid "" "No runnable export preset found for this platform.\n" "Please add a runnable preset in the export menu." @@ -2907,6 +3221,10 @@ msgstr "您是å¦éºæ¼äº† '_run' 方法?" msgid "Select Node(s) to Import" msgstr "鏿“‡è¦å°Žå…¥çš„節點" +#: editor/editor_sub_scene.cpp editor/project_manager.cpp +msgid "Browse" +msgstr "ç€è¦½" + #: editor/editor_sub_scene.cpp msgid "Scene Path:" msgstr "å ´æ™¯è·¯å¾‘:" @@ -3079,6 +3397,11 @@ msgid "SSL Handshake Error" msgstr "SSLæ¡æ‰‹éŒ¯èª¤" #: editor/export_template_manager.cpp +#, fuzzy +msgid "Uncompressing Android Build Sources" +msgstr "æ£åœ¨è§£å£“ç¸®ç´ æ" + +#: editor/export_template_manager.cpp msgid "Current Version:" msgstr "ç•¶å‰ç‰ˆæœ¬:" @@ -3095,7 +3418,8 @@ msgid "Remove Template" msgstr "移除範本" #: editor/export_template_manager.cpp -msgid "Select template file" +#, fuzzy +msgid "Select Template File" msgstr "鏿“‡ç¯„本檔案" #: editor/export_template_manager.cpp @@ -3156,7 +3480,8 @@ msgid "No name provided." msgstr "未æä¾›å稱。" #: editor/filesystem_dock.cpp -msgid "Provided name contains invalid characters" +#, fuzzy +msgid "Provided name contains invalid characters." msgstr "æä¾›çš„å稱包å«ç„¡æ•ˆå—å…ƒ" #: editor/filesystem_dock.cpp @@ -3187,7 +3512,12 @@ msgstr "複製資料夾:" #: editor/filesystem_dock.cpp #, fuzzy -msgid "Open Scene(s)" +msgid "New Inherited Scene" +msgstr "å¾žç¾æœ‰å ´æ™¯ä¸å»ºç«‹â€¦" + +#: editor/filesystem_dock.cpp +#, fuzzy +msgid "Open Scenes" msgstr "é–‹å•Ÿå ´æ™¯" #: editor/filesystem_dock.cpp @@ -3196,12 +3526,12 @@ msgstr "實例" #: editor/filesystem_dock.cpp #, fuzzy -msgid "Add to favorites" +msgid "Add to Favorites" msgstr "我的最愛:" #: editor/filesystem_dock.cpp #, fuzzy -msgid "Remove from favorites" +msgid "Remove from Favorites" msgstr "移除" #: editor/filesystem_dock.cpp @@ -3235,11 +3565,13 @@ msgstr "新增資料夾..." msgid "New Resource..." msgstr "å¦å˜è³‡æºç‚º..." -#: editor/filesystem_dock.cpp editor/script_editor_debugger.cpp +#: editor/filesystem_dock.cpp editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_editor_debugger.cpp msgid "Expand All" msgstr "展開所有" -#: editor/filesystem_dock.cpp editor/script_editor_debugger.cpp +#: editor/filesystem_dock.cpp editor/plugins/visual_shader_editor_plugin.cpp +#: editor/script_editor_debugger.cpp #, fuzzy msgid "Collapse All" msgstr "å–代全部" @@ -3252,12 +3584,14 @@ msgid "Rename" msgstr "é‡å‘½å" #: editor/filesystem_dock.cpp -msgid "Previous Directory" -msgstr "上一個目錄" +#, fuzzy +msgid "Previous Folder/File" +msgstr "上個分é " #: editor/filesystem_dock.cpp -msgid "Next Directory" -msgstr "下一個目錄" +#, fuzzy +msgid "Next Folder/File" +msgstr "新增資料夾" #: editor/filesystem_dock.cpp msgid "Re-Scan Filesystem" @@ -3265,7 +3599,7 @@ msgstr "釿–°æŽƒææª”案系統" #: editor/filesystem_dock.cpp #, fuzzy -msgid "Toggle split mode" +msgid "Toggle Split Mode" msgstr "åˆ‡æ›æ¨¡å¼" #: editor/filesystem_dock.cpp @@ -3295,7 +3629,7 @@ msgstr "覆蓋" msgid "Create Script" msgstr "創建腳本" -#: editor/find_in_files.cpp +#: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp #, fuzzy msgid "Find in Files" msgstr "還有 %d 個檔案" @@ -3315,6 +3649,12 @@ msgstr "新增資料夾" msgid "Filters:" msgstr "éŽæ¿¾å™¨:" +#: editor/find_in_files.cpp +msgid "" +"Include the files with the following extensions. Add or remove them in " +"ProjectSettings." +msgstr "" + #: editor/find_in_files.cpp editor/plugins/script_editor_plugin.cpp #: editor/plugins/script_text_editor.cpp msgid "Find..." @@ -3771,7 +4111,7 @@ msgstr "最佳化動畫" #: editor/plugins/animation_blend_space_2d_editor.cpp #, fuzzy -msgid "Triangle already exists" +msgid "Triangle already exists." msgstr "Autoload「%sã€å·²ç¶“å˜åœ¨!" #: editor/plugins/animation_blend_space_2d_editor.cpp @@ -3852,7 +4192,6 @@ msgid "Node Moved" msgstr "節點å稱:" #: editor/plugins/animation_blend_tree_editor_plugin.cpp -#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Unable to connect, port may be in use or connection may be invalid." msgstr "ç„¡æ³•é€£æŽ¥ï¼ŒåŸ å¯èƒ½æ£åœ¨ä½¿ç”¨ï¼Œæˆ–者連接å¯èƒ½ç„¡æ•ˆã€‚" @@ -3927,7 +4266,8 @@ msgid "Edit Filtered Tracks:" msgstr "éŽæ¿¾æª”案..." #: editor/plugins/animation_blend_tree_editor_plugin.cpp -msgid "Enable filtering" +#, fuzzy +msgid "Enable Filtering" msgstr "啟用篩é¸" #: editor/plugins/animation_player_editor_plugin.cpp @@ -4046,10 +4386,6 @@ msgid "Animation" msgstr "å‹•ç•«" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "New" -msgstr "新增" - -#: editor/plugins/animation_player_editor_plugin.cpp #, fuzzy msgid "Edit Transitions..." msgstr "è½‰å ´å‹•ç•«" @@ -4068,15 +4404,16 @@ msgid "Autoplay on Load" msgstr "載入åŽè‡ªå‹•æ’æ”¾" #: editor/plugins/animation_player_editor_plugin.cpp -msgid "Onion Skinning" -msgstr "洋葱皮" - -#: editor/plugins/animation_player_editor_plugin.cpp msgid "Enable Onion Skinning" msgstr "啟用洋葱皮" #: editor/plugins/animation_player_editor_plugin.cpp #, fuzzy +msgid "Onion Skinning Options" +msgstr "洋葱皮" + +#: editor/plugins/animation_player_editor_plugin.cpp +#, fuzzy msgid "Directions" msgstr "æè¿°:" @@ -4626,14 +4963,20 @@ msgid "Move CanvasItem" msgstr "移動CanvasItem" #: editor/plugins/canvas_item_editor_plugin.cpp +msgid "" +"Children of containers have their anchors and margins values overridden by " +"their parent." +msgstr "容器的å級的錨定值和é 邊è·å€¼è¢«å…¶çˆ¶ç´šè¦†è“‹ã€‚" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Presets for the anchors and margins values of a Control node." msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "" -"Children of containers have their anchors and margins values overridden by " -"their parent." -msgstr "容器的å級的錨定值和é 邊è·å€¼è¢«å…¶çˆ¶ç´šè¦†è“‹ã€‚" +"When active, moving Control nodes changes their anchors instead of their " +"margins." +msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Anchors only" @@ -4648,10 +4991,52 @@ msgid "Change Anchors" msgstr "改變錨點" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Lock Selected" +msgstr "工具鏿“‡" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Unlock Selected" +msgstr "工具鏿“‡" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Group Selected" +msgstr "è¤‡è£½é¸æ“‡" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp +#, fuzzy +msgid "Ungroup Selected" +msgstr "è¤‡è£½é¸æ“‡" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Paste Pose" msgstr "粘貼姿勢" #: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Create Custom Bone(s) from Node(s)" +msgstr "從節點製作自定義骨骼" + +#: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Clear Bones" +msgstr "清除姿勢" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Make IK Chain" +msgstr "製作IKéˆ" + +#: editor/plugins/canvas_item_editor_plugin.cpp +msgid "Clear IK Chain" +msgstr "清除IKéˆ" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "" "Warning: Children of a container get their position and size determined only " "by their parent." @@ -4725,7 +5110,7 @@ msgstr "å¸é™„é¸é …" #: editor/plugins/canvas_item_editor_plugin.cpp #, fuzzy -msgid "Snap to grid" +msgid "Snap to Grid" msgstr "å¸é™„åˆ°ç¶²æ ¼" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4751,31 +5136,37 @@ msgstr "使用åƒç´ å¸é™„" #: editor/plugins/canvas_item_editor_plugin.cpp #, fuzzy -msgid "Smart snapping" +msgid "Smart Snapping" msgstr "智慧å¸é™„" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to parent" +#, fuzzy +msgid "Snap to Parent" msgstr "å¸é™„到父級節點" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node anchor" +#, fuzzy +msgid "Snap to Node Anchor" msgstr "å¸é™„到節點的錨點" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node sides" +#, fuzzy +msgid "Snap to Node Sides" msgstr "æ•æ‰åˆ°ç¯€é»žé‚Š" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to node center" +#, fuzzy +msgid "Snap to Node Center" msgstr "å¸é™„到節點的ä¸å¿ƒ" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to other nodes" +#, fuzzy +msgid "Snap to Other Nodes" msgstr "å¸é™„到其他的節點" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Snap to guides" +#, fuzzy +msgid "Snap to Guides" msgstr "å¸é™„到尺標" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -4790,10 +5181,12 @@ msgid "Unlock the selected object (can be moved)." msgstr "解鎖所é¸ç‰©ä»¶ (å¯ä»¥ç§»å‹•)。" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Makes sure the object's children are not selectable." msgstr "確ä¿å°è±¡çš„åç´šä¸å¯é¸ã€‚" #: editor/plugins/canvas_item_editor_plugin.cpp +#: editor/plugins/spatial_editor_plugin.cpp msgid "Restores the object's children's ability to be selected." msgstr "æ¢å¾©å°è±¡çš„åç´šé¸æ“‡èƒ½åŠ›ã€‚" @@ -4807,14 +5200,6 @@ msgid "Show Bones" msgstr "顯示骨骼" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Make IK Chain" -msgstr "製作IKéˆ" - -#: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Clear IK Chain" -msgstr "清除IKéˆ" - -#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Make Custom Bone(s) from Node(s)" msgstr "從節點製作自定義骨骼" @@ -4865,8 +5250,8 @@ msgid "Frame Selection" msgstr "幀鏿“‡" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Layout" -msgstr "佈局" +msgid "Preview Canvas Scale" +msgstr "" #: editor/plugins/canvas_item_editor_plugin.cpp msgid "Translation mask for inserting keys." @@ -4919,6 +5304,11 @@ msgid "Divide grid step by 2" msgstr "å°‡ç¶²æ ¼æ¥æ•¸é™¤ä»¥2" #: editor/plugins/canvas_item_editor_plugin.cpp +#, fuzzy +msgid "Pan View" +msgstr "後視圖" + +#: editor/plugins/canvas_item_editor_plugin.cpp msgid "Add %s" msgstr "æ·»åŠ %s" @@ -4941,7 +5331,8 @@ msgid "Error instancing scene from %s" msgstr "%s ä¸çš„å…·ç¾åŒ–å ´æ™¯å‡ºéŒ¯" #: editor/plugins/canvas_item_editor_plugin.cpp -msgid "Change default type" +#, fuzzy +msgid "Change Default Type" msgstr "更改é è¨é¡žåž‹" #: editor/plugins/canvas_item_editor_plugin.cpp @@ -5027,21 +5418,22 @@ msgid "Create Emission Points From Node" msgstr "從節點創建發射點" #: editor/plugins/curve_editor_plugin.cpp -msgid "Flat0" +#, fuzzy +msgid "Flat 0" msgstr "å¹³é¢0" #: editor/plugins/curve_editor_plugin.cpp -msgid "Flat1" +#, fuzzy +msgid "Flat 1" msgstr "å¹³é¢1" -#: editor/plugins/curve_editor_plugin.cpp -#, fuzzy -msgid "Ease in" -msgstr "æ‰€æœ‰çš„é¸æ“‡" +#: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp +msgid "Ease In" +msgstr "" -#: editor/plugins/curve_editor_plugin.cpp -msgid "Ease out" -msgstr "淡出" +#: editor/plugins/curve_editor_plugin.cpp editor/property_editor.cpp +msgid "Ease Out" +msgstr "" #: editor/plugins/curve_editor_plugin.cpp msgid "Smoothstep" @@ -5060,25 +5452,28 @@ msgid "Load Curve Preset" msgstr "åŠ è¼‰æ›²ç·šé è¨" #: editor/plugins/curve_editor_plugin.cpp -msgid "Add point" +#, fuzzy +msgid "Add Point" msgstr "æ·»åŠ é»ž" #: editor/plugins/curve_editor_plugin.cpp #, fuzzy -msgid "Remove point" +msgid "Remove Point" msgstr "刪除點" #: editor/plugins/curve_editor_plugin.cpp #, fuzzy -msgid "Left linear" +msgid "Left Linear" msgstr "左線性" #: editor/plugins/curve_editor_plugin.cpp -msgid "Right linear" +#, fuzzy +msgid "Right Linear" msgstr "å³ç·šæ€§" #: editor/plugins/curve_editor_plugin.cpp -msgid "Load preset" +#, fuzzy +msgid "Load Preset" msgstr "載入é è¨" #: editor/plugins/curve_editor_plugin.cpp @@ -5135,11 +5530,17 @@ msgid "This doesn't work on scene root!" msgstr "這å°å ´æ™¯æ ¹ç›®éŒ„ä¸èµ·ä½œç”¨ï¼" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Trimesh Shape" +#, fuzzy +msgid "Create Trimesh Static Shape" +msgstr "å‰µå»ºå‡¸å½¢éœæ…‹é«”" + +#: editor/plugins/mesh_instance_editor_plugin.cpp +msgid "Failed creating shapes!" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Shape" +#, fuzzy +msgid "Create Convex Shape(s)" msgstr "創建凸é¢å½¢ç‹€" #: editor/plugins/mesh_instance_editor_plugin.cpp @@ -5192,16 +5593,13 @@ msgid "Create Trimesh Static Body" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Static Body" -msgstr "å‰µå»ºå‡¸å½¢éœæ…‹é«”" - -#: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Trimesh Collision Sibling" msgstr "" #: editor/plugins/mesh_instance_editor_plugin.cpp -msgid "Create Convex Collision Sibling" -msgstr "" +#, fuzzy +msgid "Create Convex Collision Sibling(s)" +msgstr "創建碰撞多邊形" #: editor/plugins/mesh_instance_editor_plugin.cpp msgid "Create Outline Mesh..." @@ -5356,6 +5754,12 @@ msgid "Create Navigation Polygon" msgstr "創建導航多邊形" #: editor/plugins/particles_2d_editor_plugin.cpp +#: editor/plugins/particles_editor_plugin.cpp +#, fuzzy +msgid "Convert to CPUParticles" +msgstr "è½‰æ›æˆ..." + +#: editor/plugins/particles_2d_editor_plugin.cpp msgid "Generating Visibility Rect" msgstr "生æˆå¯è¦‹æ€§çŸ©å½¢" @@ -5369,12 +5773,6 @@ msgstr "" #: editor/plugins/particles_2d_editor_plugin.cpp #: editor/plugins/particles_editor_plugin.cpp -#, fuzzy -msgid "Convert to CPUParticles" -msgstr "è½‰æ›æˆ..." - -#: editor/plugins/particles_2d_editor_plugin.cpp -#: editor/plugins/particles_editor_plugin.cpp msgid "Generation Time (sec):" msgstr "ç”Ÿæˆæ™‚é–“ (ç§’):" @@ -5513,7 +5911,7 @@ msgstr "" #: editor/plugins/path_2d_editor_plugin.cpp #: editor/plugins/path_editor_plugin.cpp editor/plugins/theme_editor_plugin.cpp -#: editor/project_export.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp editor/project_export.cpp msgid "Options" msgstr "" @@ -5568,7 +5966,7 @@ msgstr "" #: editor/plugins/physical_bone_plugin.cpp #, fuzzy -msgid "Move joint" +msgid "Move Joint" msgstr "移除" #: editor/plugins/polygon_2d_editor_plugin.cpp @@ -5808,7 +6206,6 @@ msgid "Open in Editor" msgstr "" #: editor/plugins/resource_preloader_editor_plugin.cpp -#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Load Resource" msgstr "" @@ -5910,6 +6307,11 @@ msgid "%s Class Reference" msgstr " 類引用" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/script_text_editor.cpp +msgid "Find Next" +msgstr "查找下一個" + +#: editor/plugins/script_editor_plugin.cpp msgid "Toggle alphabetical sorting of the method list." msgstr "" @@ -5994,10 +6396,6 @@ msgstr "關閉檔案" msgid "Close All" msgstr "全部關閉" -#: editor/plugins/script_editor_plugin.cpp -msgid "Close Other Tabs" -msgstr "關閉其他é¸é …å¡" - #: editor/plugins/script_editor_plugin.cpp editor/project_manager.cpp msgid "Run" msgstr "é‹è¡Œ" @@ -6006,11 +6404,6 @@ msgstr "é‹è¡Œ" msgid "Toggle Scripts Panel" msgstr "\"切æ›è…³æœ¬\" 颿¿" -#: editor/plugins/script_editor_plugin.cpp -#: editor/plugins/script_text_editor.cpp -msgid "Find Next" -msgstr "查找下一個" - #: editor/plugins/script_editor_plugin.cpp editor/script_editor_debugger.cpp msgid "Step Over" msgstr "è·¨éŽ" @@ -6038,7 +6431,8 @@ msgid "Debug with External Editor" msgstr "使用外部編輯器進行調試" #: editor/plugins/script_editor_plugin.cpp -msgid "Open Godot online documentation" +#, fuzzy +msgid "Open Godot online documentation." msgstr "打開 Godot 線上文檔" #: editor/plugins/script_editor_plugin.cpp @@ -6046,7 +6440,8 @@ msgid "Request Docs" msgstr "請求檔案" #: editor/plugins/script_editor_plugin.cpp -msgid "Help improve the Godot documentation by giving feedback" +#, fuzzy +msgid "Help improve the Godot documentation by giving feedback." msgstr "é€šéŽæä¾›å›žé¥‹å¹«åŠ©æ”¹é€² Godot 文檔" #: editor/plugins/script_editor_plugin.cpp @@ -6072,10 +6467,12 @@ msgid "" msgstr "" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp msgid "Reload" msgstr "釿–°è¼‰å…¥" #: editor/plugins/script_editor_plugin.cpp +#: editor/plugins/shader_editor_plugin.cpp msgid "Resave" msgstr "釿–°ä¿å˜" @@ -6090,6 +6487,31 @@ msgstr "æœå°‹çµæžœ" #: editor/plugins/script_text_editor.cpp #, fuzzy +msgid "Connections to method:" +msgstr "連接到節點:" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Source" +msgstr "資æº" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Signal" +msgstr "信號" + +#: editor/plugins/script_text_editor.cpp +msgid "Target" +msgstr "" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "" +"Missing connected method '%s' for signal '%s' from node '%s' to node '%s'." +msgstr "å°‡ '%s' 從 '%s' 䏿–·é€£æŽ¥" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy msgid "Line" msgstr "行:" @@ -6102,10 +6524,6 @@ msgstr "(忽略)" msgid "Go to Function" msgstr "轉到函數" -#: editor/plugins/script_text_editor.cpp editor/plugins/text_editor.cpp -msgid "Standard" -msgstr "標準" - #: editor/plugins/script_text_editor.cpp msgid "Only resources from filesystem can be dropped." msgstr "åªèƒ½æ‹–拽檔案系統ä¸çš„資æºã€‚" @@ -6139,6 +6557,11 @@ msgstr "首嗿¯å¤§å¯«" msgid "Syntax Highlighter" msgstr "高亮顯示語法" +#: editor/plugins/script_text_editor.cpp +#: editor/plugins/shader_editor_plugin.cpp editor/plugins/text_editor.cpp +msgid "Bookmarks" +msgstr "" + #: editor/plugins/script_text_editor.cpp scene/gui/line_edit.cpp #: scene/gui/text_edit.cpp msgid "Cut" @@ -6168,6 +6591,26 @@ msgstr "åˆ‡æ›æ³¨é‡‹" #: editor/plugins/script_text_editor.cpp #, fuzzy +msgid "Toggle Bookmark" +msgstr "切æ›è‡ªç”±è§€å¯Ÿæ¨¡å¼" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Go to Next Bookmark" +msgstr "è½‰åˆ°ä¸‹ä¸€å€‹ä¸æ–·é»ž" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Go to Previous Bookmark" +msgstr "è½‰åˆ°ä¸Šä¸€å€‹ä¸æ–·é»ž" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy +msgid "Remove All Bookmarks" +msgstr "åˆ é™¤æ‰€æœ‰é …ç›®" + +#: editor/plugins/script_text_editor.cpp +#, fuzzy msgid "Fold/Unfold Line" msgstr "å‰å¾€ç¬¬...行" @@ -6247,6 +6690,12 @@ msgid "Contextual Help" msgstr "" #: editor/plugins/shader_editor_plugin.cpp +msgid "" +"This shader has been modified on on disk.\n" +"What action should be taken?" +msgstr "" + +#: editor/plugins/shader_editor_plugin.cpp msgid "Shader" msgstr "著色器" @@ -6588,7 +7037,8 @@ msgid "Right View" msgstr "å³è¦–圖" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Switch Perspective/Orthogonal view" +#, fuzzy +msgid "Switch Perspective/Orthogonal View" msgstr "åˆ‡æ› æŠ•å½±/æ£äº¤ 視圖" #: editor/plugins/spatial_editor_plugin.cpp @@ -6629,11 +7079,13 @@ msgid "Toggle Freelook" msgstr "切æ›è‡ªç”±è§€å¯Ÿæ¨¡å¼" #: editor/plugins/spatial_editor_plugin.cpp +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Transform" msgstr "變æ›" #: editor/plugins/spatial_editor_plugin.cpp -msgid "Snap object to floor" +#, fuzzy +msgid "Snap Object to Floor" msgstr "å°‡å°è±¡å¸é™„到地æ¿" #: editor/plugins/spatial_editor_plugin.cpp @@ -6779,32 +7231,23 @@ msgstr "ç„¡æ•ˆçš„å¹¾ä½•åœ–å½¢ï¼Œç„¡æ³•ç”¨ç¶²æ ¼æ›¿æ›ã€‚" #: editor/plugins/sprite_editor_plugin.cpp #, fuzzy -msgid "Invalid geometry, can't create polygon." -msgstr "ç„¡æ•ˆçš„å¹¾ä½•åœ–å½¢ï¼Œç„¡æ³•ç”¨ç¶²æ ¼æ›¿æ›ã€‚" - -#: editor/plugins/sprite_editor_plugin.cpp -#, fuzzy -msgid "Invalid geometry, can't create collision polygon." -msgstr "ç„¡æ•ˆçš„å¹¾ä½•åœ–å½¢ï¼Œç„¡æ³•ç”¨ç¶²æ ¼æ›¿æ›ã€‚" +msgid "Convert to Mesh2D" +msgstr "轉æ›ç‚º2Dç¶²æ ¼" #: editor/plugins/sprite_editor_plugin.cpp #, fuzzy -msgid "Invalid geometry, can't create light occluder." +msgid "Invalid geometry, can't create polygon." msgstr "ç„¡æ•ˆçš„å¹¾ä½•åœ–å½¢ï¼Œç„¡æ³•ç”¨ç¶²æ ¼æ›¿æ›ã€‚" #: editor/plugins/sprite_editor_plugin.cpp -msgid "Sprite" -msgstr "" - -#: editor/plugins/sprite_editor_plugin.cpp #, fuzzy -msgid "Convert to Mesh2D" +msgid "Convert to Polygon2D" msgstr "轉æ›ç‚º2Dç¶²æ ¼" #: editor/plugins/sprite_editor_plugin.cpp #, fuzzy -msgid "Convert to Polygon2D" -msgstr "轉æ›ç‚º2Dç¶²æ ¼" +msgid "Invalid geometry, can't create collision polygon." +msgstr "ç„¡æ•ˆçš„å¹¾ä½•åœ–å½¢ï¼Œç„¡æ³•ç”¨ç¶²æ ¼æ›¿æ›ã€‚" #: editor/plugins/sprite_editor_plugin.cpp #, fuzzy @@ -6813,10 +7256,19 @@ msgstr "創建碰撞多邊形" #: editor/plugins/sprite_editor_plugin.cpp #, fuzzy +msgid "Invalid geometry, can't create light occluder." +msgstr "ç„¡æ•ˆçš„å¹¾ä½•åœ–å½¢ï¼Œç„¡æ³•ç”¨ç¶²æ ¼æ›¿æ›ã€‚" + +#: editor/plugins/sprite_editor_plugin.cpp +#, fuzzy msgid "Create LightOccluder2D Sibling" msgstr "創建é®å…‰å¤šé‚Šå½¢" #: editor/plugins/sprite_editor_plugin.cpp +msgid "Sprite" +msgstr "" + +#: editor/plugins/sprite_editor_plugin.cpp msgid "Simplification: " msgstr "簡化: " @@ -6835,14 +7287,24 @@ msgid "Settings:" msgstr "è¨å®šï¼š" #: editor/plugins/sprite_frames_editor_plugin.cpp -msgid "ERROR: Couldn't load frame resource!" -msgstr "éŒ¯èª¤ï¼šç„¡æ³•åŠ è¼‰å¹€è³‡æºï¼" +#, fuzzy +msgid "No Frames Selected" +msgstr "幀鏿“‡" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Add %d Frame(s)" +msgstr "æ·»åŠ å¹€" #: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Add Frame" msgstr "æ·»åŠ å¹€" #: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "ERROR: Couldn't load frame resource!" +msgstr "éŒ¯èª¤ï¼šç„¡æ³•åŠ è¼‰å¹€è³‡æºï¼" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Resource clipboard is empty or not a texture!" msgstr "資æºå‰ªè²¼æ¿ç‚ºç©ºæˆ–䏿˜¯ç´‹ç†ï¼" @@ -6886,6 +7348,15 @@ msgid "Animation Frames:" msgstr "動畫幀:" #: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Add a Texture from File" +msgstr "å°‡ç´‹ç†æ·»åŠ åˆ°ç£è²¼é›†ã€‚" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +msgid "Add Frames from a Sprite Sheet" +msgstr "" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "Insert Empty (Before)" msgstr "æ’入空白幀(之å‰ï¼‰" @@ -6902,6 +7373,31 @@ msgid "Move (After)" msgstr "移動(之後)" #: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Select Frames" +msgstr "鏿“‡æ¨¡å¼" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Horizontal:" +msgstr "水平翻轉" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Vertical:" +msgstr "é ‚é»ž" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Select/Clear All Frames" +msgstr "鏿“‡å…¨éƒ¨" + +#: editor/plugins/sprite_frames_editor_plugin.cpp +#, fuzzy +msgid "Create Frames from Sprite Sheet" +msgstr "å¾žå ´æ™¯å‰µå»º" + +#: editor/plugins/sprite_frames_editor_plugin.cpp msgid "SpriteFrames" msgstr "" @@ -6966,13 +7462,14 @@ msgstr "å…¨éƒ¨æ·»åŠ " msgid "Remove All Items" msgstr "åˆ é™¤æ‰€æœ‰é …ç›®" -#: editor/plugins/theme_editor_plugin.cpp +#: editor/plugins/theme_editor_plugin.cpp editor/project_manager.cpp #, fuzzy msgid "Remove All" msgstr "å…¨éƒ¨åˆ é™¤" #: editor/plugins/theme_editor_plugin.cpp -msgid "Edit theme..." +#, fuzzy +msgid "Edit Theme" msgstr "編輯主題…" #: editor/plugins/theme_editor_plugin.cpp @@ -7000,18 +7497,25 @@ msgid "Create From Current Editor Theme" msgstr "從當å‰ç·¨è¼¯å™¨ä¸»é¡Œæ¨¡æ¿å‰µå»º" #: editor/plugins/theme_editor_plugin.cpp -msgid "CheckBox Radio1" -msgstr "" +#, fuzzy +msgid "Toggle Button" +msgstr "切æ›è‡ªå‹•æ’æ”¾" #: editor/plugins/theme_editor_plugin.cpp -msgid "CheckBox Radio2" -msgstr "" +#, fuzzy +msgid "Disabled Button" +msgstr "å·²åœç”¨" #: editor/plugins/theme_editor_plugin.cpp msgid "Item" msgstr "é …ç›®" #: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Disabled Item" +msgstr "å·²åœç”¨" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Check Item" msgstr "æª¢æŸ¥é …ç›®" @@ -7028,6 +7532,24 @@ msgid "Checked Radio Item" msgstr "é¸ä¸çš„å–®é¸é …ç›®" #: editor/plugins/theme_editor_plugin.cpp +msgid "Named Sep." +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Submenu" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Item 1" +msgstr "é …ç›®" + +#: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Item 2" +msgstr "é …ç›®" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Has" msgstr "有" @@ -7036,8 +7558,9 @@ msgid "Many" msgstr "許多" #: editor/plugins/theme_editor_plugin.cpp -msgid "Has,Many,Options" -msgstr "有, 許多, é¸é …" +#, fuzzy +msgid "Disabled LineEdit" +msgstr "å·²åœç”¨" #: editor/plugins/theme_editor_plugin.cpp msgid "Tab 1" @@ -7052,6 +7575,19 @@ msgid "Tab 3" msgstr "標籤 3" #: editor/plugins/theme_editor_plugin.cpp +#, fuzzy +msgid "Editable Item" +msgstr "編輯主題…" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Subtree" +msgstr "" + +#: editor/plugins/theme_editor_plugin.cpp +msgid "Has,Many,Options" +msgstr "有, 許多, é¸é …" + +#: editor/plugins/theme_editor_plugin.cpp msgid "Data Type:" msgstr "數據類型:" @@ -7085,6 +7621,7 @@ msgid "Fix Invalid Tiles" msgstr "修復無效的ç£è²¼" #: editor/plugins/tile_map_editor_plugin.cpp +#: modules/gridmap/grid_map_editor_plugin.cpp msgid "Cut Selection" msgstr "åˆ‡å‰²é¸æ“‡" @@ -7126,36 +7663,51 @@ msgid "Mirror Y" msgstr "" #: editor/plugins/tile_map_editor_plugin.cpp +msgid "Disable Autotile" +msgstr "" + +#: editor/plugins/tile_map_editor_plugin.cpp +#, fuzzy +msgid "Enable Priority" +msgstr "編輯ç£è²¼å„ªå…ˆç´š" + +#: editor/plugins/tile_map_editor_plugin.cpp msgid "Paint Tile" msgstr "繪製ç£è²¼" #: editor/plugins/tile_map_editor_plugin.cpp +msgid "" +"Shift+RMB: Line Draw\n" +"Shift+Ctrl+RMB: Rectangle Paint" +msgstr "" + +#: editor/plugins/tile_map_editor_plugin.cpp msgid "Pick Tile" msgstr "鏿“‡ç£è²¼" #: editor/plugins/tile_map_editor_plugin.cpp #, fuzzy -msgid "Copy Selection" -msgstr "è¤‡è£½é¸æ“‡" - -#: editor/plugins/tile_map_editor_plugin.cpp -msgid "Rotate left" +msgid "Rotate Left" msgstr "å‘左旋轉" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Rotate right" +#, fuzzy +msgid "Rotate Right" msgstr "å‘峿—‹è½‰" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Flip horizontally" +#, fuzzy +msgid "Flip Horizontally" msgstr "水平翻轉" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Flip vertically" +#, fuzzy +msgid "Flip Vertically" msgstr "垂直翻轉" #: editor/plugins/tile_map_editor_plugin.cpp -msgid "Clear transform" +#, fuzzy +msgid "Clear Transform" msgstr "清除變æ›" #: editor/plugins/tile_set_editor_plugin.cpp @@ -7192,6 +7744,46 @@ msgid "Select the previous shape, subtile, or Tile." msgstr "鏿“‡ä¸Šä¸€å€‹å½¢ç‹€ã€åç£è²¼æˆ–ç£è²¼ã€‚" #: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Region Mode" +msgstr "旋轉模å¼" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Collision Mode" +msgstr "æ’值模å¼" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Occlusion Mode" +msgstr "ç·¨è¼¯é®æ“‹å¤šé‚Šå½¢" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Navigation Mode" +msgstr "å‰µå»ºå°Žèˆªç¶²æ ¼" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Bitmask Mode" +msgstr "旋轉模å¼" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Priority Mode" +msgstr "導出模å¼:" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Icon Mode" +msgstr "平移模å¼" + +#: editor/plugins/tile_set_editor_plugin.cpp +#, fuzzy +msgid "Z Index Mode" +msgstr "平移模å¼" + +#: editor/plugins/tile_set_editor_plugin.cpp msgid "Copy bitmask." msgstr "è¤‡è£½ä½æŽ©ç¢¼ã€‚" @@ -7279,6 +7871,7 @@ msgstr "刪除多邊形。" msgid "" "LMB: Set bit on.\n" "RMB: Set bit off.\n" +"Shift+LMB: Set wildcard bit.\n" "Click on another Tile to edit it." msgstr "新增資料夾" @@ -7395,6 +7988,78 @@ msgid "TileSet" msgstr "" #: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Add input +" +msgstr "æ·»åŠ è¼¸å…¥" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Add output +" +msgstr "æ·»åŠ è¼¸å…¥" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar" +msgstr "縮放:" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector" +msgstr "å±¬æ€§é¢æ¿" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Add input port" +msgstr "æ·»åŠ è¼¸å…¥" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Add output port" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change input port type" +msgstr "更改é è¨é¡žåž‹" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change output port type" +msgstr "更改é è¨é¡žåž‹" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Change input port name" +msgstr "更改動畫å稱:" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Change output port name" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Remove input port" +msgstr "刪除點" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Remove output port" +msgstr "刪除點" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Set expression" +msgstr "è¨ç½®ç£è²¼å€åŸŸ" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Resize VisualShader node" +msgstr "視覺化著色器" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "Set Uniform Name" msgstr "è¨ç½®çµ±ä¸€å稱" @@ -7433,6 +8098,852 @@ msgid "Light" msgstr "燈光" #: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Create Shader Node" +msgstr "創建節點" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Color function." +msgstr "轉到函數" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Color operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Grayscale function." +msgstr "建立函å¼" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts HSV vector to RGB equivalent." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts RGB vector to HSV equivalent." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Sepia function." +msgstr "建立函å¼" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Burn operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Darken operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Difference operator." +msgstr "僅差異" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Dodge operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "HardLight operator" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Lighten operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Overlay operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Screen operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "SoftLight operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Color constant." +msgstr "固定" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Color uniform." +msgstr "清除變æ›" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns an associated vector if the provided scalars are equal, greater or " +"less." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns an associated vector if the provided boolean value is true or false." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Boolean uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'camera' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'inv_camera' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'inv_projection' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'normal' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'projection' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'time' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'viewport_size' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'world' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'texture_pixel_size' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv' input parameter for all shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Input parameter." +msgstr "å¸é™„到父級節點" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'binormal' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'fragcoord' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_coord' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_uv' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'side' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'tangent' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'uv2' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'vertex' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'view' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'albedo' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'attenuation' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'diffuse' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_color' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'roughness' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'specular' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'transmission' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'modelview' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_size' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'tangent' input parameter for vertex and fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_pass' input parameter for vertex and fragment shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'point_coord' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_pixel_size' input parameter for fragment shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'screen_uv' input parameter for fragment and light shader modes." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_alpha' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_height' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_uv' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'light_vec' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'normal' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'shadow_color' input parameter for light shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'extra' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'projection' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'vertex' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'world' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'active' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'alpha' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'color' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'custom' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'custom_alpha' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'delta' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'emission_transform' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'index' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'lifetime' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'restart' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'time' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'transform' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "'velocity' input parameter for vertex shader mode." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar function." +msgstr "縮放所é¸" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar operator." +msgstr "縮放(比例):" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "E constant (2.718282). Represents the base of the natural logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Epsilon constant (0.00001). Smallest possible scalar number." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Phi constant (1.618034). Golden ratio." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi/4 constant (0.785398) or 45 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi/2 constant (1.570796) or 90 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Pi constant (3.141593) or 180 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Tau constant (6.283185) or 360 degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Sqrt2 constant (1.414214). Square root of 2." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the absolute value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the arc-tangent of the parameters." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the inverse hyperbolic tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Finds the nearest integer that is greater than or equal to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Constrains a value to lie between two further values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic cosine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts a quantity in radians to degrees." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-e Exponential." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-2 Exponential." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Finds the nearest integer less than or equal to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Computes the fractional part of the argument." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the inverse of the square root of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Natural logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Base-2 logarithm." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the greater of two values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the lesser of two values." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Linear interpolation between two scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the opposite value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 - scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns the value of the first parameter raised to the power of the second." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Converts a quantity in degrees to radians." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 / scalar" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the nearest integer to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the nearest even integer to the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Clamps the value between 0.0 and 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Extracts the sign of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic sine of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the square root of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( scalar(edge0), scalar(edge1), scalar(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if x is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( scalar(edge), scalar(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Returns the hyperbolic tangent of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Finds the truncated value of the parameter." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Adds scalar to scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Divides scalar by scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies scalar by scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the remainder of the two scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Subtracts scalar from scalar." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Scalar constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Scalar uniform." +msgstr "清除變æ›" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Perform the cubic texture lookup." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Perform the texture lookup." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Cubic texture uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "2D texture uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Transform function." +msgstr "轉æ›å°è©±æ¡†..。" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) Calculate the outer product of a pair of vectors.\n" +"\n" +"OuterProduct treats the first parameter 'c' as a column vector (matrix with " +"one column) and the second parameter 'r' as a row vector (matrix with one " +"row) and does a linear algebraic matrix multiply 'c * r', yielding a matrix " +"whose number of rows is the number of components in 'c' and whose number of " +"columns is the number of components in 'r'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Composes transform from four vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Decomposes transform to four vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the determinant of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the inverse of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) Calculates the transpose of a transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies transform by transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies vector by transform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Transform constant." +msgstr "新增資料夾" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Transform uniform." +msgstr "轉æ›å°è©±æ¡†..。" + +#: editor/plugins/visual_shader_editor_plugin.cpp +#, fuzzy +msgid "Vector function." +msgstr "轉到函數…" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector operator." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Composes vector from three scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Decomposes vector to three scalars." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the cross product of two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the distance between two points." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the dot product of two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns a vector that points in the same direction as a reference vector. " +"The function has three vector parameters : N, the vector to orient, I, the " +"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 "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the length of a vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Linear interpolation between two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Calculates the normalize product of vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 - vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "1.0 / vector" +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns a vector that points in the direction of reflection ( a : incident " +"vector, b : normal vector )." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns a vector that points in the direction of refraction." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( vector(edge0), vector(edge1), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if 'x' is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"SmoothStep function( scalar(edge0), scalar(edge1), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge0' and 1.0 if 'x' is larger than " +"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 " +"using Hermite polynomials." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( vector(edge), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Step function( scalar(edge), vector(x) ).\n" +"\n" +"Returns 0.0 if 'x' is smaller then 'edge' and otherwise 1.0." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Adds vector to vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Divides vector by vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Multiplies vector by vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Returns the remainder of the two vectors." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Subtracts vector from vector." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector constant." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "Vector uniform." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Custom Godot Shader Language expression, with custom amount of input and " +"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 "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"Returns falloff based on the dot product of surface normal and view " +"direction of camera (pass associated inputs to it)." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) (Fragment/Light mode only) Scalar derivative function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "(GLES3 only) (Fragment/Light mode only) Vector derivative function." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Derivative in 'x' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Derivative in 'x' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Derivative in 'y' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Derivative in 'y' using " +"local differencing." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Vector) Sum of absolute derivative " +"in 'x' and 'y'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp +msgid "" +"(GLES3 only) (Fragment/Light mode only) (Scalar) Sum of absolute derivative " +"in 'x' and 'y'." +msgstr "" + +#: editor/plugins/visual_shader_editor_plugin.cpp msgid "VisualShader" msgstr "視覺化著色器" @@ -7625,6 +9136,10 @@ msgid "Directory already contains a Godot project." msgstr "目錄已包å«ä¸€å€‹godoté …ç›®ã€‚" #: editor/project_manager.cpp +msgid "New Game Project" +msgstr "æ–°éŠæˆ²é …ç›®" + +#: editor/project_manager.cpp msgid "Imported Project" msgstr "å·²å°Žå…¥çš„é …ç›®" @@ -7673,10 +9188,6 @@ msgid "Rename Project" msgstr "é‡å‘½åé …ç›®" #: editor/project_manager.cpp -msgid "New Game Project" -msgstr "æ–°éŠæˆ²é …ç›®" - -#: editor/project_manager.cpp msgid "Import Existing Project" msgstr "å°Žå…¥ç¾æœ‰é …ç›®" @@ -7706,11 +9217,6 @@ msgid "Project Name:" msgstr "é …ç›®å稱:" #: editor/project_manager.cpp -#, fuzzy -msgid "Create folder" -msgstr "創建資料夾" - -#: editor/project_manager.cpp msgid "Project Path:" msgstr "é …ç›®è·¯å¾‘ï¼š" @@ -7719,10 +9225,6 @@ msgid "Project Installation Path:" msgstr "é …ç›®å®‰è£è·¯å¾‘:" #: editor/project_manager.cpp -msgid "Browse" -msgstr "ç€è¦½" - -#: editor/project_manager.cpp msgid "Renderer:" msgstr "渲染器:" @@ -7768,6 +9270,7 @@ msgid "Are you sure to open more than one project?" msgstr "æ‚¨ç¢ºå®šè¦æ‰“é–‹å¤šå€‹é …ç›®å—Žï¼Ÿ" #: editor/project_manager.cpp +#, fuzzy msgid "" "The following project settings file does not specify the version of Godot " "through which it was created.\n" @@ -7776,8 +9279,8 @@ msgid "" "\n" "If you proceed with opening it, it will be converted to Godot's current " "configuration file format.\n" -"Warning: You will not be able to open the project with previous versions of " -"the engine anymore." +"Warning: You won't be able to open the project with previous versions of the " +"engine anymore." msgstr "" "ä»¥ä¸‹é …ç›®è¨å®šæª”案未指定通éŽå…¶å‰µå»ºçš„Godot的版本。\n" "\n" @@ -7787,6 +9290,7 @@ msgstr "" "è¦å‘Š: 您將無法å†ä½¿ç”¨ä»¥å‰ç‰ˆæœ¬çš„å¼•æ“Žæ‰“é–‹é …ç›®ã€‚" #: editor/project_manager.cpp +#, fuzzy msgid "" "The following project settings file was generated by an older engine " "version, and needs to be converted for this version:\n" @@ -7794,8 +9298,8 @@ msgid "" "%s\n" "\n" "Do you want to convert it?\n" -"Warning: You will not be able to open the project with previous versions of " -"the engine anymore." +"Warning: You won't be able to open the project with previous versions of the " +"engine anymore." msgstr "" "ä»¥ä¸‹é …ç›®è¨ç½®æª”案是由較舊的引擎版本生æˆçš„, 需è¦ç‚ºæ¤ç‰ˆæœ¬é€²è¡Œè½‰æ›:\n" "\n" @@ -7813,7 +9317,7 @@ msgstr "æ¤é …ç›®è¨ç½®æ˜¯ç”±è¼ƒæ–°çš„引擎版本創建的, å…¶è¨ç½®èˆ‡æ¤ç‰ˆæ #: editor/project_manager.cpp msgid "" "Can't run project: no main scene defined.\n" -"Please edit the project and set the main scene in \"Project Settings\" under " +"Please edit the project and set the main scene in the Project Settings under " "the \"Application\" category." msgstr "" @@ -7824,23 +9328,41 @@ msgid "" msgstr "" #: editor/project_manager.cpp -msgid "Are you sure to run more than one project?" +#, fuzzy +msgid "Are you sure to run %d projects at once?" msgstr "您確定è¦é‹è¡Œå¤šå€‹é …目嗎?" #: editor/project_manager.cpp -msgid "Remove project from the list? (Folder contents will not be modified)" +#, fuzzy +msgid "" +"Remove %d projects from the list?\n" +"The project folders' contents won't be modified." +msgstr "是å¦å¾žæ¸…å–®ä¸åˆ é™¤é …ç›®ï¼Ÿï¼ˆè³‡æ–™å¤¾å…§å®¹å°‡ä¸è¢«ä¿®æ”¹ï¼‰" + +#: editor/project_manager.cpp +#, fuzzy +msgid "" +"Remove this project from the list?\n" +"The project folder's contents won't be modified." +msgstr "是å¦å¾žæ¸…å–®ä¸åˆ é™¤é …ç›®ï¼Ÿï¼ˆè³‡æ–™å¤¾å…§å®¹å°‡ä¸è¢«ä¿®æ”¹ï¼‰" + +#: editor/project_manager.cpp +#, fuzzy +msgid "" +"Remove all missing projects from the list? (Folders contents will not be " +"modified)" msgstr "是å¦å¾žæ¸…å–®ä¸åˆ é™¤é …ç›®ï¼Ÿï¼ˆè³‡æ–™å¤¾å…§å®¹å°‡ä¸è¢«ä¿®æ”¹ï¼‰" #: editor/project_manager.cpp msgid "" "Language changed.\n" -"The UI will update next time the editor or project manager starts." +"The interface will update after restarting the editor or project manager." msgstr "" #: editor/project_manager.cpp msgid "" -"You are about the scan %s folders for existing Godot projects. Do you " -"confirm?" +"Are you sure to scan %s folders for existing Godot projects?\n" +"This could take a while." msgstr "" #: editor/project_manager.cpp @@ -7864,6 +9386,11 @@ msgid "New Project" msgstr "" #: editor/project_manager.cpp +#, fuzzy +msgid "Remove Missing" +msgstr "刪除點" + +#: editor/project_manager.cpp msgid "Templates" msgstr "" @@ -7882,8 +9409,8 @@ msgstr "連接..." #: editor/project_manager.cpp msgid "" -"You don't currently have any projects.\n" -"Would you like to explore the official example projects in the Asset Library?" +"You currently don't have any projects.\n" +"Would you like to explore official example projects in the Asset Library?" msgstr "" #: editor/project_settings_editor.cpp @@ -7909,8 +9436,9 @@ msgid "" msgstr "" #: editor/project_settings_editor.cpp -msgid "Action '%s' already exists!" -msgstr "" +#, fuzzy +msgid "An action with the name '%s' already exists." +msgstr "Autoload「%sã€å·²ç¶“å˜åœ¨!" #: editor/project_settings_editor.cpp msgid "Rename Input Action Event" @@ -8066,10 +9594,6 @@ msgid "" msgstr "" #: editor/project_settings_editor.cpp -msgid "Already existing" -msgstr "" - -#: editor/project_settings_editor.cpp msgid "Add Input Action" msgstr "" @@ -8136,7 +9660,7 @@ msgid "Override For..." msgstr "" #: editor/project_settings_editor.cpp editor/settings_config_dialog.cpp -msgid "Editor must be restarted for changes to take effect" +msgid "The editor must be restarted for changes to take effect." msgstr "" #: editor/project_settings_editor.cpp @@ -8197,12 +9721,14 @@ msgid "Locales Filter" msgstr "" #: editor/project_settings_editor.cpp -msgid "Show all locales" -msgstr "" +#, fuzzy +msgid "Show All Locales" +msgstr "顯示骨骼" #: editor/project_settings_editor.cpp -msgid "Show only selected locales" -msgstr "" +#, fuzzy +msgid "Show Selected Locales Only" +msgstr "åƒ…é¸æ“‡å€åŸŸ" #: editor/project_settings_editor.cpp #, fuzzy @@ -8218,14 +9744,6 @@ msgid "AutoLoad" msgstr "" #: editor/property_editor.cpp -msgid "Ease In" -msgstr "" - -#: editor/property_editor.cpp -msgid "Ease Out" -msgstr "" - -#: editor/property_editor.cpp msgid "Zero" msgstr "" @@ -8299,8 +9817,9 @@ msgid "Suffix" msgstr "" #: editor/rename_dialog.cpp -msgid "Advanced options" -msgstr "" +#, fuzzy +msgid "Advanced Options" +msgstr "å¸é™„é¸é …" #: editor/rename_dialog.cpp msgid "Substitute" @@ -8563,8 +10082,9 @@ msgid "User Interface" msgstr "" #: editor/scene_tree_dock.cpp -msgid "Custom Node" -msgstr "" +#, fuzzy +msgid "Other Node" +msgstr "刪除" #: editor/scene_tree_dock.cpp msgid "Can't operate on nodes from a foreign scene!" @@ -8607,7 +10127,7 @@ msgstr "" #: editor/scene_tree_dock.cpp #, fuzzy -msgid "Open documentation" +msgid "Open Documentation" msgstr "開啟最近å˜å–" #: editor/scene_tree_dock.cpp @@ -8636,7 +10156,7 @@ msgstr "" msgid "Save Branch as Scene" msgstr "" -#: editor/scene_tree_dock.cpp +#: editor/scene_tree_dock.cpp editor/script_editor_debugger.cpp msgid "Copy Node Path" msgstr "" @@ -8681,6 +10201,21 @@ msgid "Toggle Visible" msgstr "切æ›é¡¯ç¤ºéš±è—檔案" #: editor/scene_tree_editor.cpp +#, fuzzy +msgid "Unlock Node" +msgstr "å–®é …ç¯€é»ž" + +#: editor/scene_tree_editor.cpp +#, fuzzy +msgid "Button Group" +msgstr "æ·»åŠ åˆ°çµ„" + +#: editor/scene_tree_editor.cpp +#, fuzzy +msgid "(Connecting From)" +msgstr "連接..." + +#: editor/scene_tree_editor.cpp msgid "Node configuration warning:" msgstr "" @@ -8702,9 +10237,9 @@ msgid "" "Click to show groups dock." msgstr "" -#: editor/scene_tree_editor.cpp editor/script_create_dialog.cpp +#: editor/scene_tree_editor.cpp #, fuzzy -msgid "Open Script" +msgid "Open Script:" msgstr "開啟最近å˜å–" #: editor/scene_tree_editor.cpp @@ -8751,91 +10286,101 @@ msgstr "" #: editor/script_create_dialog.cpp #, fuzzy -msgid "Error loading template '%s'" -msgstr "è¼‰å…¥å ´æ™¯æ™‚ç™¼ç”ŸéŒ¯èª¤" +msgid "Path is empty." +msgstr "ç¶²æ ¼æ˜¯ç©ºçš„ï¼" #: editor/script_create_dialog.cpp #, fuzzy -msgid "Error - Could not create script in filesystem." -msgstr "無法新增資料夾" +msgid "Filename is empty." +msgstr "Sprite 是空的ï¼" #: editor/script_create_dialog.cpp -msgid "Error loading script from %s" +msgid "Path is not local." msgstr "" #: editor/script_create_dialog.cpp -msgid "N/A" -msgstr "" +#, fuzzy +msgid "Invalid base path." +msgstr "無效的路徑." #: editor/script_create_dialog.cpp -msgid "Open Script/Choose Location" -msgstr "" +#, fuzzy +msgid "A directory with the same name exists." +msgstr "具有æ¤å稱的檔或資料夾已å˜åœ¨ã€‚" #: editor/script_create_dialog.cpp -msgid "Path is empty" -msgstr "" +#, fuzzy +msgid "Invalid extension." +msgstr "å¿…é ˆä½¿ç”¨æœ‰æ•ˆçš„å‰¯æª”å。" #: editor/script_create_dialog.cpp -msgid "Filename is empty" +msgid "Wrong extension chosen." msgstr "" #: editor/script_create_dialog.cpp -msgid "Path is not local" -msgstr "" +#, fuzzy +msgid "Error loading template '%s'" +msgstr "è¼‰å…¥å ´æ™¯æ™‚ç™¼ç”ŸéŒ¯èª¤" #: editor/script_create_dialog.cpp -msgid "Invalid base path" -msgstr "" +#, fuzzy +msgid "Error - Could not create script in filesystem." +msgstr "無法新增資料夾" #: editor/script_create_dialog.cpp -msgid "Directory of the same name exists" +msgid "Error loading script from %s" msgstr "" #: editor/script_create_dialog.cpp -#, fuzzy -msgid "File exists, will be reused" -msgstr "檔案已經å˜åœ¨, è¦è¦†å¯«å—Ž?" +msgid "N/A" +msgstr "" #: editor/script_create_dialog.cpp -msgid "Invalid extension" +msgid "Open Script / Choose Location" msgstr "" #: editor/script_create_dialog.cpp -msgid "Wrong extension chosen" -msgstr "" +#, fuzzy +msgid "Open Script" +msgstr "開啟最近å˜å–" #: editor/script_create_dialog.cpp #, fuzzy -msgid "Invalid Path" -msgstr "無效的路徑" +msgid "File exists, it will be reused." +msgstr "檔案已經å˜åœ¨, è¦è¦†å¯«å—Ž?" #: editor/script_create_dialog.cpp -msgid "Invalid class name" -msgstr "" +#, fuzzy +msgid "Invalid class name." +msgstr "ä¸èƒ½ä½¿ç”¨çš„å稱。" #: editor/script_create_dialog.cpp -msgid "Invalid inherited parent name or path" +msgid "Invalid inherited parent name or path." msgstr "" #: editor/script_create_dialog.cpp -msgid "Script valid" -msgstr "" +#, fuzzy +msgid "Script is valid." +msgstr "動畫樹有效。" #: editor/script_create_dialog.cpp msgid "Allowed: a-z, A-Z, 0-9 and _" msgstr "" #: editor/script_create_dialog.cpp -msgid "Built-in script (into scene file)" -msgstr "" +#, fuzzy +msgid "Built-in script (into scene file)." +msgstr "æ“ä½œå ´æ™¯æ–‡ä»¶ã€‚" #: editor/script_create_dialog.cpp -msgid "Create new script file" -msgstr "" +#, fuzzy +msgid "Will create a new script file." +msgstr "創建新矩形。" #: editor/script_create_dialog.cpp -msgid "Load existing script file" -msgstr "" +#, fuzzy +msgid "Will load an existing script file." +msgstr "讀å–ç¾å˜çš„ Bus é…置。" #: editor/script_create_dialog.cpp msgid "Language" @@ -8971,6 +10516,10 @@ msgstr "" msgid "Set From Tree" msgstr "" +#: editor/script_editor_debugger.cpp +msgid "Export measures as CSV" +msgstr "" + #: editor/settings_config_dialog.cpp #, fuzzy msgid "Erase Shortcut" @@ -9111,6 +10660,15 @@ msgid "GDNativeLibrary" msgstr "" #: 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 "ç¦æ¢è‡ªå‹•æ›´æ–°" + +#: modules/gdnative/gdnative_library_singleton_editor.cpp msgid "Library" msgstr "" @@ -9207,7 +10765,7 @@ msgstr "複製所é¸" #: modules/gridmap/grid_map_editor_plugin.cpp #, fuzzy -msgid "GridMap Duplicate Selection" +msgid "GridMap Paste Selection" msgstr "複製所é¸" #: modules/gridmap/grid_map_editor_plugin.cpp @@ -9278,19 +10836,6 @@ msgstr "" #: modules/gridmap/grid_map_editor_plugin.cpp #, fuzzy -msgid "Create Area" -msgstr "新增" - -#: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Create Exterior Connector" -msgstr "" - -#: modules/gridmap/grid_map_editor_plugin.cpp -msgid "Erase Area" -msgstr "" - -#: modules/gridmap/grid_map_editor_plugin.cpp -#, fuzzy msgid "Clear Selection" msgstr "æ‰€æœ‰çš„é¸æ“‡" @@ -9653,15 +11198,7 @@ msgid "Available Nodes:" msgstr "" #: modules/visual_script/visual_script_editor.cpp -msgid "Select or create a function to edit graph" -msgstr "" - -#: modules/visual_script/visual_script_editor.cpp -msgid "Edit Signal Arguments:" -msgstr "" - -#: modules/visual_script/visual_script_editor.cpp -msgid "Edit Variable:" +msgid "Select or create a function to edit its graph." msgstr "" #: modules/visual_script/visual_script_editor.cpp @@ -9793,6 +11330,19 @@ msgid "Debug keystore not configured in the Editor Settings nor in the preset." msgstr "" #: platform/android/export/export.cpp +msgid "Custom build requires a valid Android SDK path in Editor Settings." +msgstr "" + +#: platform/android/export/export.cpp +msgid "Invalid Android SDK path for custom build in Editor Settings." +msgstr "" + +#: platform/android/export/export.cpp +msgid "" +"Android project is not installed for compiling. Install from Editor menu." +msgstr "" + +#: platform/android/export/export.cpp msgid "Invalid public key for APK expansion." msgstr "" @@ -9801,6 +11351,34 @@ msgstr "" msgid "Invalid package name:" msgstr "ä¸èƒ½ä½¿ç”¨çš„å稱。" +#: platform/android/export/export.cpp +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 "" +"Android build version mismatch:\n" +" Template installed: %s\n" +" Godot Version: %s\n" +"Please reinstall Android build template from 'Project' menu." +msgstr "" + +#: platform/android/export/export.cpp +msgid "Building Android Project (gradle)" +msgstr "" + +#: 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 "" + +#: platform/android/export/export.cpp +msgid "No build apk generated at: " +msgstr "" + #: platform/iphone/export/export.cpp msgid "Identifier is missing." msgstr "" @@ -10069,27 +11647,27 @@ msgid "ARVRCamera must have an ARVROrigin node as its parent" msgstr "" #: scene/3d/arvr_nodes.cpp -msgid "ARVRController must have an ARVROrigin node as its parent" +msgid "ARVRController must have an ARVROrigin node as its parent." msgstr "" #: scene/3d/arvr_nodes.cpp msgid "" -"The controller id must not be 0 or this controller will not be bound to an " -"actual controller" +"The controller ID must not be 0 or this controller won't be bound to an " +"actual controller." msgstr "" #: scene/3d/arvr_nodes.cpp -msgid "ARVRAnchor must have an ARVROrigin node as its parent" +msgid "ARVRAnchor must have an ARVROrigin node as its parent." msgstr "" #: scene/3d/arvr_nodes.cpp msgid "" -"The anchor id must not be 0 or this anchor will not be bound to an actual " -"anchor" +"The anchor ID must not be 0 or this anchor won't be bound to an actual " +"anchor." msgstr "" #: scene/3d/arvr_nodes.cpp -msgid "ARVROrigin requires an ARVRCamera child node" +msgid "ARVROrigin requires an ARVRCamera child node." msgstr "" #: scene/3d/baked_lightmap.cpp @@ -10159,8 +11737,8 @@ msgstr "" #: scene/3d/cpu_particles.cpp msgid "" -"CPUParticles animation requires the usage of a SpatialMaterial with " -"\"Billboard Particles\" enabled." +"CPUParticles animation requires the usage of a SpatialMaterial whose " +"Billboard Mode is set to \"Particle Billboard\"." msgstr "" #: scene/3d/gi_probe.cpp @@ -10197,8 +11775,8 @@ msgstr "" #: scene/3d/particles.cpp msgid "" -"Particles animation requires the usage of a SpatialMaterial with \"Billboard " -"Particles\" enabled." +"Particles animation requires the usage of a SpatialMaterial whose Billboard " +"Mode is set to \"Particle Billboard\"." msgstr "" #: scene/3d/path.cpp @@ -10223,7 +11801,7 @@ msgid "Path property must point to a valid Spatial node to work." msgstr "" #: scene/3d/soft_body.cpp -msgid "This body will be ignored until you set a mesh" +msgid "This body will be ignored until you set a mesh." msgstr "" #: scene/3d/soft_body.cpp @@ -10325,7 +11903,7 @@ msgstr "將目å‰é¡è‰²è¨ç‚ºé è¨" msgid "" "Container by itself serves no purpose unless a script configures it's " "children placement behavior.\n" -"If you dont't intend to add a script, then please use a plain 'Control' node " +"If you don't intend to add a script, then please use a plain 'Control' node " "instead." msgstr "" @@ -10337,11 +11915,6 @@ msgstr "è¦å‘Š!" msgid "Please Confirm..." msgstr "請確èª..." -#: scene/gui/file_dialog.cpp -#, fuzzy -msgid "Go to parent folder." -msgstr "無法新增資料夾" - #: scene/gui/popup.cpp msgid "" "Popups will hide by default unless you call popup() or any of the popup*() " @@ -10417,6 +11990,59 @@ msgstr "" msgid "Varyings can only be assigned in vertex function." msgstr "" +#: servers/visual/shader_language.cpp +msgid "Constants cannot be modified." +msgstr "" + +#~ msgid "Path to Node:" +#~ msgstr "節點路徑:" + +#~ msgid "Delete selected files?" +#~ msgstr "ç¢ºå®šåˆªé™¤æ‰€é¸æ“‡çš„æª”案嗎?" + +#~ msgid "There is no 'res://default_bus_layout.tres' file." +#~ msgstr "「res://default_bus_layout.tresã€æª”案ä¸å˜åœ¨ã€‚" + +#, fuzzy +#~ msgid "Go to parent folder" +#~ msgstr "無法新增資料夾" + +#~ msgid "Select device from the list" +#~ msgstr "從清單ä¸é¸æ“‡è¨å‚™" + +#, fuzzy +#~ msgid "Open Scene(s)" +#~ msgstr "é–‹å•Ÿå ´æ™¯" + +#~ msgid "Previous Directory" +#~ msgstr "上一個目錄" + +#~ msgid "Next Directory" +#~ msgstr "下一個目錄" + +#, fuzzy +#~ msgid "Ease in" +#~ msgstr "æ‰€æœ‰çš„é¸æ“‡" + +#~ msgid "Ease out" +#~ msgstr "淡出" + +#, fuzzy +#~ msgid "Create folder" +#~ msgstr "創建資料夾" + +#, fuzzy +#~ msgid "Invalid Path" +#~ msgstr "無效的路徑" + +#, fuzzy +#~ msgid "GridMap Duplicate Selection" +#~ msgstr "複製所é¸" + +#, fuzzy +#~ msgid "Create Area" +#~ msgstr "新增" + #~ msgid "Insert keys." #~ msgstr "æ’入幀." @@ -10453,9 +12079,6 @@ msgstr "" #~ msgid "Class List:" #~ msgstr "Class 列表:" -#~ msgid "Search Classes" -#~ msgstr "æœå°‹ Class" - #~ msgid "Public Methods:" #~ msgstr "公開 method:" @@ -10493,9 +12116,6 @@ msgstr "" #~ msgid "Convert To Lowercase" #~ msgstr "è½‰æ›æˆ..." -#~ msgid "Disabled" -#~ msgstr "å·²åœç”¨" - #~ msgid "Move Anim Track Up" #~ msgstr "上移動畫軌" diff --git a/main/main.cpp b/main/main.cpp index fc9ec3b2d9..c51ffd9124 100644 --- a/main/main.cpp +++ b/main/main.cpp @@ -161,7 +161,7 @@ static String unescape_cmdline(const String &p_str) { static String get_full_version_string() { String hash = String(VERSION_HASH); if (hash.length() != 0) - hash = "." + hash.left(7); + hash = "." + hash.left(9); return String(VERSION_FULL_BUILD) + hash; } @@ -204,7 +204,8 @@ void finalize_physics() { void Main::print_help(const char *p_binary) { - print_line(String(VERSION_NAME) + " v" + get_full_version_string() + " - https://godotengine.org"); + print_line(String(VERSION_NAME) + " v" + get_full_version_string() + " - " + String(VERSION_WEBSITE)); + OS::get_singleton()->print("Free and open source software under the terms of the MIT license.\n"); OS::get_singleton()->print("(c) 2007-2019 Juan Linietsky, Ariel Manzur.\n"); OS::get_singleton()->print("(c) 2014-2019 Godot Engine contributors.\n"); OS::get_singleton()->print("\n"); @@ -247,6 +248,7 @@ void Main::print_help(const char *p_binary) { OS::get_singleton()->print(").\n"); OS::get_singleton()->print("\n"); +#ifndef SERVER_ENABLED OS::get_singleton()->print("Display options:\n"); OS::get_singleton()->print(" -f, --fullscreen Request fullscreen mode.\n"); OS::get_singleton()->print(" -m, --maximized Request a maximized window.\n"); @@ -257,14 +259,15 @@ void Main::print_help(const char *p_binary) { OS::get_singleton()->print(" --low-dpi Force low-DPI mode (macOS and Windows only).\n"); OS::get_singleton()->print(" --no-window Disable window creation (Windows only). Useful together with --script.\n"); OS::get_singleton()->print("\n"); +#endif OS::get_singleton()->print("Debug options:\n"); OS::get_singleton()->print(" -d, --debug Debug (local stdout debugger).\n"); OS::get_singleton()->print(" -b, --breakpoints Breakpoint list as source::line comma-separated pairs, no spaces (use %%20 instead).\n"); OS::get_singleton()->print(" --profiling Enable profiling in the script debugger.\n"); OS::get_singleton()->print(" --remote-debug <address> Remote debug (<host/IP>:<port> address).\n"); -#ifdef DEBUG_ENABLED - OS::get_singleton()->print(" --debug-collisions Show collisions shapes when running the scene.\n"); +#if defined(DEBUG_ENABLED) && !defined(SERVER_ENABLED) + OS::get_singleton()->print(" --debug-collisions Show collision shapes when running the scene.\n"); OS::get_singleton()->print(" --debug-navigation Show navigation polygons when running the scene.\n"); #endif OS::get_singleton()->print(" --frame-delay <ms> Simulate high CPU load (delay each frame by <ms> milliseconds).\n"); @@ -372,7 +375,7 @@ Error Main::setup(const char *execpath, int argc, char *argv[], bool p_second_ph while (I) { - I->get() = unescape_cmdline(I->get().strip_escapes()); + I->get() = unescape_cmdline(I->get().strip_edges()); I = I->next(); } @@ -429,6 +432,49 @@ Error Main::setup(const char *execpath, int argc, char *argv[], bool p_second_ph print_line(get_full_version_string()); goto error; + } else if (I->get() == "-v" || I->get() == "--verbose") { // verbose output + + OS::get_singleton()->_verbose_stdout = true; + } else if (I->get() == "--quiet") { // quieter output + + quiet_stdout = true; + + } else if (I->get() == "--audio-driver") { // audio driver + + if (I->next()) { + + audio_driver = I->next()->get(); + N = I->next()->next(); + } else { + OS::get_singleton()->print("Missing audio driver argument, aborting.\n"); + goto error; + } + + } else if (I->get() == "--video-driver") { // force video driver + + if (I->next()) { + + video_driver = I->next()->get(); + N = I->next()->next(); + } else { + OS::get_singleton()->print("Missing video driver argument, aborting.\n"); + goto error; + } +#ifndef SERVER_ENABLED + } else if (I->get() == "-f" || I->get() == "--fullscreen") { // force fullscreen + + init_fullscreen = true; + } else if (I->get() == "-m" || I->get() == "--maximized") { // force maximized window + + init_maximized = true; + video_mode.maximized = true; + + } else if (I->get() == "-w" || I->get() == "--windowed") { // force windowed window + + init_windowed = true; + } else if (I->get() == "-t" || I->get() == "--always-on-top") { // force always-on-top window + + init_always_on_top = true; } else if (I->get() == "--resolution") { // force resolution if (I->next()) { @@ -459,6 +505,7 @@ Error Main::setup(const char *execpath, int argc, char *argv[], bool p_second_ph OS::get_singleton()->print("Missing resolution argument, aborting.\n"); goto error; } + } else if (I->get() == "--position") { // set window position if (I->next()) { @@ -483,29 +530,17 @@ Error Main::setup(const char *execpath, int argc, char *argv[], bool p_second_ph goto error; } - } else if (I->get() == "-m" || I->get() == "--maximized") { // force maximized window - - init_maximized = true; - video_mode.maximized = true; - } else if (I->get() == "-w" || I->get() == "--windowed") { // force windowed window + } else if (I->get() == "--low-dpi") { // force low DPI (macOS only) - init_windowed = true; - } else if (I->get() == "-t" || I->get() == "--always-on-top") { // force always-on-top window + force_lowdpi = true; + } else if (I->get() == "--no-window") { // disable window creation (Windows only) - init_always_on_top = true; + OS::get_singleton()->set_no_window_mode(true); +#endif } else if (I->get() == "--profiling") { // enable profiling use_debug_profiler = true; - } else if (I->get() == "--video-driver") { // force video driver - if (I->next()) { - - video_driver = I->next()->get(); - N = I->next()->next(); - } else { - OS::get_singleton()->print("Missing video driver argument, aborting.\n"); - goto error; - } } else if (I->get() == "-l" || I->get() == "--language") { // language if (I->next()) { @@ -516,9 +551,7 @@ Error Main::setup(const char *execpath, int argc, char *argv[], bool p_second_ph OS::get_singleton()->print("Missing language argument, aborting.\n"); goto error; } - } else if (I->get() == "--low-dpi") { // force low DPI (macOS only) - force_lowdpi = true; } else if (I->get() == "--remote-fs") { // remote filesystem if (I->next()) { @@ -555,22 +588,6 @@ Error Main::setup(const char *execpath, int argc, char *argv[], bool p_second_ph OS::get_singleton()->print("Missing render thread mode argument, aborting.\n"); goto error; } - - } else if (I->get() == "--audio-driver") { // audio driver - - if (I->next()) { - - audio_driver = I->next()->get(); - N = I->next()->next(); - } else { - OS::get_singleton()->print("Missing audio driver argument, aborting.\n"); - goto error; - } - - } else if (I->get() == "-f" || I->get() == "--fullscreen") { // force fullscreen - - //video_mode.fullscreen=false; - init_fullscreen = true; #ifdef TOOLS_ENABLED } else if (I->get() == "-e" || I->get() == "--editor") { // starts editor @@ -583,14 +600,6 @@ Error Main::setup(const char *execpath, int argc, char *argv[], bool p_second_ph auto_build_solutions = true; editor = true; #endif - } else if (I->get() == "--no-window") { // disable window creation, Windows only - - OS::get_singleton()->set_no_window_mode(true); - } else if (I->get() == "--quiet") { // quieter output - - quiet_stdout = true; - } else if (I->get() == "-v" || I->get() == "--verbose") { // verbose output - OS::get_singleton()->_verbose_stdout = true; } else if (I->get() == "--path") { // set path of project to start or edit if (I->next()) { @@ -674,7 +683,7 @@ Error Main::setup(const char *execpath, int argc, char *argv[], bool p_second_ph } else if (I->get() == "-d" || I->get() == "--debug") { debug_mode = "local"; -#ifdef DEBUG_ENABLED +#if defined(DEBUG_ENABLED) && !defined(SERVER_ENABLED) } else if (I->get() == "--debug-collisions") { debug_collisions = true; } else if (I->get() == "--debug-navigation") { @@ -930,7 +939,6 @@ Error Main::setup(const char *execpath, int argc, char *argv[], bool p_second_ph OS::get_singleton()->_allow_layered = GLOBAL_DEF("display/window/per_pixel_transparency/allowed", false); video_mode.layered = GLOBAL_DEF("display/window/per_pixel_transparency/enabled", false); - video_mode.layered_splash = GLOBAL_DEF("display/window/per_pixel_transparency/splash", false); GLOBAL_DEF("rendering/quality/intended_usage/framebuffer_allocation", 2); GLOBAL_DEF("rendering/quality/intended_usage/framebuffer_allocation.mobile", 3); @@ -1012,6 +1020,7 @@ Error Main::setup(const char *execpath, int argc, char *argv[], bool p_second_ph } Engine::get_singleton()->set_iterations_per_second(GLOBAL_DEF("physics/common/physics_fps", 60)); + ProjectSettings::get_singleton()->set_custom_property_info("physics/common/physics_fps", PropertyInfo(Variant::INT, "physics/common/physics_fps", PROPERTY_HINT_RANGE, "1,120,1,or_greater")); Engine::get_singleton()->set_physics_jitter_fix(GLOBAL_DEF("physics/common/physics_jitter_fix", 0.5)); Engine::get_singleton()->set_target_fps(GLOBAL_DEF("debug/settings/fps/force_fps", 0)); ProjectSettings::get_singleton()->set_custom_property_info("debug/settings/fps/force_fps", PropertyInfo(Variant::INT, "debug/settings/fps/force_fps", PROPERTY_HINT_RANGE, "0,120,1,or_greater")); @@ -1027,7 +1036,7 @@ Error Main::setup(const char *execpath, int argc, char *argv[], bool p_second_ph } OS::get_singleton()->set_low_processor_usage_mode(GLOBAL_DEF("application/run/low_processor_mode", false)); - OS::get_singleton()->set_low_processor_usage_mode_sleep_usec(GLOBAL_DEF("application/run/low_processor_mode_sleep_usec", 8000)); + OS::get_singleton()->set_low_processor_usage_mode_sleep_usec(GLOBAL_DEF("application/run/low_processor_mode_sleep_usec", 6900)); // Roughly 144 FPS ProjectSettings::get_singleton()->set_custom_property_info("application/run/low_processor_mode_sleep_usec", PropertyInfo(Variant::INT, "application/run/low_processor_mode_sleep_usec", PROPERTY_HINT_RANGE, "0,33200,1,or_greater")); // No negative numbers Engine::get_singleton()->set_frame_delay(frame_delay); @@ -1083,6 +1092,9 @@ error: Error Main::setup2(Thread::ID p_main_tid_override) { + // Print engine name and version + print_line(String(VERSION_NAME) + " v" + get_full_version_string() + " - " + String(VERSION_WEBSITE)); + if (p_main_tid_override) { Thread::_main_thread_id = p_main_tid_override; } @@ -1092,6 +1104,8 @@ Error Main::setup2(Thread::ID p_main_tid_override) { return err; } + print_line(" "); //add a blank line for readability + if (init_use_custom_pos) { OS::get_singleton()->set_window_position(init_custom_pos); } @@ -1142,6 +1156,7 @@ Error Main::setup2(Thread::ID p_main_tid_override) { if (show_logo) { //boot logo! String boot_logo_path = GLOBAL_DEF("application/boot_splash/image", String()); bool boot_logo_scale = GLOBAL_DEF("application/boot_splash/fullsize", true); + bool boot_logo_filter = GLOBAL_DEF("application/boot_splash/use_filter", true); ProjectSettings::get_singleton()->set_custom_property_info("application/boot_splash/image", PropertyInfo(Variant::STRING, "application/boot_splash/image", PROPERTY_HINT_FILE, "*.png")); Ref<Image> boot_logo; @@ -1158,7 +1173,7 @@ Error Main::setup2(Thread::ID p_main_tid_override) { Color boot_bg_color = GLOBAL_DEF("application/boot_splash/bg_color", boot_splash_bg_color); if (boot_logo.is_valid()) { OS::get_singleton()->_msec_splash = OS::get_singleton()->get_ticks_msec(); - VisualServer::get_singleton()->set_boot_image(boot_logo, boot_bg_color, boot_logo_scale); + VisualServer::get_singleton()->set_boot_image(boot_logo, boot_bg_color, boot_logo_scale, boot_logo_filter); } else { #ifndef NO_DEFAULT_BOOT_LOGO @@ -1189,6 +1204,12 @@ Error Main::setup2(Thread::ID p_main_tid_override) { GLOBAL_DEF("application/config/icon", String()); ProjectSettings::get_singleton()->set_custom_property_info("application/config/icon", PropertyInfo(Variant::STRING, "application/config/icon", PROPERTY_HINT_FILE, "*.png,*.webp")); + GLOBAL_DEF("application/config/macos_native_icon", String()); + ProjectSettings::get_singleton()->set_custom_property_info("application/config/macos_native_icon", PropertyInfo(Variant::STRING, "application/config/macos_native_icon", PROPERTY_HINT_FILE, "*.icns")); + + GLOBAL_DEF("application/config/windows_native_icon", String()); + ProjectSettings::get_singleton()->set_custom_property_info("application/config/windows_native_icon", PropertyInfo(Variant::STRING, "application/config/windows_native_icon", PROPERTY_HINT_FILE, "*.ico")); + InputDefault *id = Object::cast_to<InputDefault>(Input::get_singleton()); if (id) { if (bool(GLOBAL_DEF("input_devices/pointing/emulate_touch_from_mouse", false)) && !(editor || project_manager)) { @@ -1736,11 +1757,27 @@ bool Main::start() { scene = scenedata->instance(); ERR_EXPLAIN("Failed loading scene: " + local_game_path); - ERR_FAIL_COND_V(!scene, false) + ERR_FAIL_COND_V(!scene, false); sml->add_current_scene(scene); +#ifdef OSX_ENABLED + String mac_iconpath = GLOBAL_DEF("application/config/macos_native_icon", "Variant()"); + if (mac_iconpath != "") { + OS::get_singleton()->set_native_icon(mac_iconpath); + hasicon = true; + } +#endif + +#ifdef WINDOWS_ENABLED + String win_iconpath = GLOBAL_DEF("application/config/windows_native_icon", "Variant()"); + if (win_iconpath != "") { + OS::get_singleton()->set_native_icon(win_iconpath); + hasicon = true; + } +#endif + String iconpath = GLOBAL_DEF("application/config/icon", "Variant()"); - if (iconpath != "") { + if ((iconpath != "") && (!hasicon)) { Ref<Image> icon; icon.instance(); if (ImageLoader::load_image(iconpath, icon) == OK) { @@ -1949,7 +1986,7 @@ bool Main::iteration() { return exit; if (OS::get_singleton()->is_in_low_processor_usage_mode() || !OS::get_singleton()->can_draw()) - OS::get_singleton()->delay_usec(OS::get_singleton()->get_low_processor_usage_mode_sleep_usec()); //apply some delay to force idle time (results in about 60 FPS max) + OS::get_singleton()->delay_usec(OS::get_singleton()->get_low_processor_usage_mode_sleep_usec()); //apply some delay to force idle time else { uint32_t frame_delay = Engine::get_singleton()->get_frame_delay(); if (frame_delay) diff --git a/methods.py b/methods.py index 11efd68ce4..af20619416 100644 --- a/methods.py +++ b/methods.py @@ -61,6 +61,7 @@ def update_version(module_version_string=""): f.write("#define VERSION_BUILD \"" + str(build_name) + "\"\n") f.write("#define VERSION_MODULE_CONFIG \"" + str(version.module_config) + module_version_string + "\"\n") f.write("#define VERSION_YEAR " + str(version.year) + "\n") + f.write("#define VERSION_WEBSITE \"" + str(version.website) + "\"\n") f.close() # NOTE: It is safe to generate this file here, since this is still executed serially diff --git a/misc/dist/html/full-size.html b/misc/dist/html/full-size.html index 44b009524c..0e8a41a9fc 100644 --- a/misc/dist/html/full-size.html +++ b/misc/dist/html/full-size.html @@ -162,8 +162,13 @@ $GODOT_HEAD_INCLUDE requestAnimationFrame(animate); function adjustCanvasDimensions() { - canvas.width = innerWidth; - canvas.height = innerHeight; + var scale = window.devicePixelRatio || 1; + var width = window.innerWidth; + var height = window.innerHeight; + canvas.width = width * scale; + canvas.height = height * scale; + canvas.style.width = width + "px"; + canvas.style.height = height + "px"; } animationCallbacks.push(adjustCanvasDimensions); adjustCanvasDimensions(); diff --git a/misc/ide/jetbrains/AndroidManifest.xml b/misc/ide/jetbrains/AndroidManifest.xml new file mode 100644 index 0000000000..232a95e779 --- /dev/null +++ b/misc/ide/jetbrains/AndroidManifest.xml @@ -0,0 +1,44 @@ +<?xml version="1.0" encoding="utf-8"?> +<manifest xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:tools="http://schemas.android.com/tools" + package="com.godot.game" + android:versionCode="1" + android:versionName="1.0" + android:installLocation="auto" + > +<supports-screens android:smallScreens="true" + android:normalScreens="true" + android:largeScreens="true" + android:xlargeScreens="true"/> + + <uses-feature android:glEsVersion="0x00020000" android:required="true" /> + + + + <application android:label="@string/godot_project_name_string" android:icon="@drawable/icon" android:allowBackup="false" tools:ignore="GoogleAppIndexingWarning" > + <activity android:name="org.godotengine.godot.Godot" + android:label="@string/godot_project_name_string" + android:theme="@android:style/Theme.NoTitleBar.Fullscreen" + android:launchMode="singleTask" + android:screenOrientation="landscape" + android:configChanges="orientation|keyboardHidden|screenSize|smallestScreenSize" + android:resizeableActivity="false" + tools:ignore="UnusedAttribute"> + + <intent-filter> + <action android:name="android.intent.action.MAIN" /> + <category android:name="android.intent.category.LAUNCHER" /> + </intent-filter> + </activity> + <service android:name="org.godotengine.godot.GodotDownloaderService" /> + + + + </application> + + <instrumentation android:icon="@drawable/icon" + android:label="@string/godot_project_name_string" + android:name="org.godotengine.godot.GodotInstrumentation" + android:targetPackage="com.godot.game" /> + +</manifest> diff --git a/misc/ide/jetbrains/CMakeLists.txt b/misc/ide/jetbrains/CMakeLists.txt new file mode 100644 index 0000000000..b6e56e0778 --- /dev/null +++ b/misc/ide/jetbrains/CMakeLists.txt @@ -0,0 +1,18 @@ +cmake_minimum_required(VERSION 3.6) +project(godot) + +set(CMAKE_CXX_STANDARD 14) +set(CMAKE_CXX_STANDARD_REQUIRED ON) +set(CMAKE_CXX_EXTENSIONS OFF) + +set(GODOT_ROOT_DIR ../../..) + +# Get sources +file(GLOB_RECURSE SOURCES ${GODOT_ROOT_DIR}/*.c**) +file(GLOB_RECURSE HEADERS ${GODOT_ROOT_DIR}/*.h**) + +add_executable(${PROJECT_NAME} ${SOURCES} ${HEADERS}) +target_include_directories(${PROJECT_NAME} + SYSTEM PUBLIC + ${GODOT_ROOT_DIR} + ${GODOT_ROOT_DIR}/modules/gdnative/include) diff --git a/misc/ide/jetbrains/build.gradle b/misc/ide/jetbrains/build.gradle new file mode 100644 index 0000000000..ffcd12cd15 --- /dev/null +++ b/misc/ide/jetbrains/build.gradle @@ -0,0 +1,108 @@ +buildscript { + repositories { + google() + jcenter() + } + dependencies { + classpath 'com.android.tools.build:gradle:3.3.2' + } +} + +allprojects { + repositories { + google() + jcenter() + } +} + +apply plugin: 'com.android.library' + +dependencies { + implementation "com.android.support:support-core-utils:28.0.0" +} + +def pathToRootDir = "../../../" +// Note: Only keep the abis you support to speed up the gradle 'assemble' task. +def supportedAbis = ["armv6", "armv7", "arm64v8", "x86", "x86_64"] + +android { + + lintOptions { + abortOnError false + disable "MissingTranslation", 'UnusedResources' + } + + compileSdkVersion 28 + buildToolsVersion "28.0.3" + useLibrary 'org.apache.http.legacy' + + packagingOptions { + exclude 'META-INF/LICENSE' + exclude 'META-INF/NOTICE' + } + defaultConfig { + minSdkVersion 18 + targetSdkVersion 28 + } + + sourceSets { + main { + manifest.srcFile "AndroidManifest.xml" + java.srcDirs = ["${pathToRootDir}platform/android/java/src"] + res.srcDirs = ["${pathToRootDir}platform/android/java/res"] + aidl.srcDirs = ["${pathToRootDir}platform/android/java/aidl"] + assets.srcDirs = ["${pathToRootDir}platform/android/java/assets"] + } + debug.jniLibs.srcDirs = ["${pathToRootDir}platform/android/java/libs/debug"] + release.jniLibs.srcDirs = ["${pathToRootDir}platform/android/java/libs/release"] + } + + libraryVariants.all { variant -> + variant.outputs.all { output -> + output.outputFileName = "godot-lib.${variant.name}.aar" + } + + def buildType = variant.buildType.name.capitalize() + + def taskPrefix = "" + if (project.path != ":") { + taskPrefix = project.path + ":" + } + + // Disable the externalNativeBuild* task as it would cause build failures since the cmake build + // files is only setup for editing support. + gradle.startParameter.excludedTaskNames += taskPrefix + "externalNativeBuild" + buildType + + // Create tasks to generate the Godot native libraries. + def taskName = "compileGodotNativeLibs" + buildType + def releaseTarget = "release" + if (buildType == "Debug") { + releaseTarget += "_debug" + } + + def abiTaskNames = [] + // Creating gradle tasks to generate the native libraries for the supported abis. + supportedAbis.each { abi -> + def abiTaskName = taskName + abi.capitalize() + abiTaskNames += abiTaskName + tasks.create(name: abiTaskName, type: Exec) { + executable "scons" + args "--directory=${pathToRootDir}", "platform=android", "target=${releaseTarget}", "android_arch=${abi}" + } + } + + // Creating gradle task to run all of the previously generated tasks. + tasks.create(name: taskName, type: GradleBuild) { + tasks = abiTaskNames + } + + // Schedule the tasks so the generated libs are present before the aar file is packaged. + tasks["merge${buildType}JniLibFolders"].dependsOn taskName + } + + externalNativeBuild { + cmake { + path "CMakeLists.txt" + } + } +} diff --git a/misc/ide/jetbrains/gradle/wrapper/gradle-wrapper.jar b/misc/ide/jetbrains/gradle/wrapper/gradle-wrapper.jar Binary files differnew file mode 100644 index 0000000000..f6b961fd5a --- /dev/null +++ b/misc/ide/jetbrains/gradle/wrapper/gradle-wrapper.jar diff --git a/misc/ide/jetbrains/gradle/wrapper/gradle-wrapper.properties b/misc/ide/jetbrains/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000000..b477add150 --- /dev/null +++ b/misc/ide/jetbrains/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,6 @@ +#Sun Mar 31 16:34:43 PDT 2019 +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.1-all.zip diff --git a/misc/ide/jetbrains/gradlew b/misc/ide/jetbrains/gradlew new file mode 100755 index 0000000000..cccdd3d517 --- /dev/null +++ b/misc/ide/jetbrains/gradlew @@ -0,0 +1,172 @@ +#!/usr/bin/env sh + +############################################################################## +## +## Gradle start up script for UN*X +## +############################################################################## + +# Attempt to set APP_HOME +# Resolve links: $0 may be a link +PRG="$0" +# Need this for relative symlinks. +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`"/$link" + fi +done +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/" >/dev/null +APP_HOME="`pwd -P`" +cd "$SAVED" >/dev/null + +APP_NAME="Gradle" +APP_BASE_NAME=`basename "$0"` + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS="" + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD="maximum" + +warn () { + echo "$*" +} + +die () { + echo + echo "$*" + echo + exit 1 +} + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "`uname`" in + CYGWIN* ) + cygwin=true + ;; + Darwin* ) + darwin=true + ;; + MINGW* ) + msys=true + ;; + NONSTOP* ) + nonstop=true + ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD="java" + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then + MAX_FD_LIMIT=`ulimit -H -n` + if [ $? -eq 0 ] ; then + if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then + MAX_FD="$MAX_FD_LIMIT" + fi + ulimit -n $MAX_FD + if [ $? -ne 0 ] ; then + warn "Could not set maximum file descriptor limit: $MAX_FD" + fi + else + warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" + fi +fi + +# For Darwin, add options to specify how the application appears in the dock +if $darwin; then + GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" +fi + +# For Cygwin, switch paths to Windows format before running java +if $cygwin ; then + APP_HOME=`cygpath --path --mixed "$APP_HOME"` + CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + JAVACMD=`cygpath --unix "$JAVACMD"` + + # We build the pattern for arguments to be converted via cygpath + ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` + SEP="" + for dir in $ROOTDIRSRAW ; do + ROOTDIRS="$ROOTDIRS$SEP$dir" + SEP="|" + done + OURCYGPATTERN="(^($ROOTDIRS))" + # Add a user-defined pattern to the cygpath arguments + if [ "$GRADLE_CYGPATTERN" != "" ] ; then + OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" + fi + # Now convert the arguments - kludge to limit ourselves to /bin/sh + i=0 + for arg in "$@" ; do + CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` + CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option + + if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition + eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` + else + eval `echo args$i`="\"$arg\"" + fi + i=$((i+1)) + done + case $i in + (0) set -- ;; + (1) set -- "$args0" ;; + (2) set -- "$args0" "$args1" ;; + (3) set -- "$args0" "$args1" "$args2" ;; + (4) set -- "$args0" "$args1" "$args2" "$args3" ;; + (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + esac +fi + +# Escape application args +save () { + for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done + echo " " +} +APP_ARGS=$(save "$@") + +# Collect all arguments for the java command, following the shell quoting and substitution rules +eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" + +# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong +if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then + cd "$(dirname "$0")" +fi + +exec "$JAVACMD" "$@" diff --git a/misc/ide/jetbrains/gradlew.bat b/misc/ide/jetbrains/gradlew.bat new file mode 100644 index 0000000000..f9553162f1 --- /dev/null +++ b/misc/ide/jetbrains/gradlew.bat @@ -0,0 +1,84 @@ +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS= + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto init + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto init + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:init +@rem Get command-line arguments, handling Windows variants + +if not "%OS%" == "Windows_NT" goto win9xME_args + +:win9xME_args +@rem Slurp the command line arguments. +set CMD_LINE_ARGS= +set _SKIP=2 + +:win9xME_args_slurp +if "x%~1" == "x" goto execute + +set CMD_LINE_ARGS=%* + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/misc/ide/jetbrains/settings.gradle b/misc/ide/jetbrains/settings.gradle new file mode 100644 index 0000000000..1904ab94e7 --- /dev/null +++ b/misc/ide/jetbrains/settings.gradle @@ -0,0 +1,2 @@ +// Configure the root project. +rootProject.name = "Godot" diff --git a/misc/scripts/fix_headers.py b/misc/scripts/fix_headers.py index 823c9acfde..d94db22b42 100755 --- a/misc/scripts/fix_headers.py +++ b/misc/scripts/fix_headers.py @@ -33,7 +33,7 @@ header = """\ /*************************************************************************/ """ -files = open("files", "rb") +files = open("files", "r") fname = files.readline() @@ -67,7 +67,7 @@ while (fname != ""): # In a second pass, we skip all consecutive comment lines starting with "/*", # then we can append the rest (step 2). - fileread = open(fname.strip(), "rb") + fileread = open(fname.strip(), "r") line = fileread.readline() header_done = False @@ -92,11 +92,11 @@ while (fname != ""): fileread.close() # Write - filewrite = open(fname.strip(), "wb") + filewrite = open(fname.strip(), "w") filewrite.write(text) filewrite.close() # Next file fname = files.readline() -files.close()
\ No newline at end of file +files.close() diff --git a/misc/scripts/fix_style.sh b/misc/scripts/fix_style.sh new file mode 100755 index 0000000000..7a335c21ea --- /dev/null +++ b/misc/scripts/fix_style.sh @@ -0,0 +1,60 @@ +#!/bin/bash + +# Command line arguments +run_clang_format=false +run_fix_headers=false +usage="Invalid argument. Usage:\n$0 <option>\n\t--clang-format|-c\n\t--headers|-h\n\t--all|-a" + +if [ -z "$1" ]; then + echo -e $usage + exit 0 +fi + +while [ $# -gt 0 ]; do + case "$1" in + --clang-format|-c) + run_clang_format=true + ;; + --headers|-h) + run_fix_headers=true + ;; + --all|-a) + run_clang_format=true + run_fix_headers=true + ;; + *) + echo -e $usage + exit 0 + esac + shift +done + +echo "Removing generated files, some have binary data and make clang-format freeze." +find -name "*.gen.*" -delete + +# Apply clang-format +if $run_clang_format; then + # Sync list with pre-commit hook + FILE_EXTS=".c .h .cpp .hpp .cc .hh .cxx .m .mm .inc .java .glsl" + + for extension in ${FILE_EXTS}; do + echo -e "Formatting ${extension} files..." + find \( -path "./.git" \ + -o -path "./thirdparty" \ + -o -path "./platform/android/java/src/com" \ + \) -prune \ + -o -name "*${extension}" \ + -exec clang-format -i {} \; + done +fi + +# Add missing copyright headers +if $run_fix_headers; then + echo "Fixing copyright headers in Godot code files..." + find \( -path "./.git" -o -path "./thirdparty" \) -prune \ + -o -regex '.*\.\(c\|h\|cpp\|hpp\|cc\|hh\|cxx\|m\|mm\|java\)' \ + > tmp-files + cat tmp-files | grep -v ".git\|thirdparty\|theme_data.h\|platform/android/java/src/com\|platform/android/java/src/org/godotengine/godot/input/InputManager" > files + python misc/scripts/fix_headers.py + rm -f tmp-files files +fi diff --git a/misc/travis/clang-format.sh b/misc/travis/clang-format.sh index ee4d0b2a10..5463a6cedf 100755 --- a/misc/travis/clang-format.sh +++ b/misc/travis/clang-format.sh @@ -1,6 +1,6 @@ #!/bin/sh -CLANG_FORMAT=clang-format-6.0 +CLANG_FORMAT=clang-format-8 if [ "$TRAVIS_PULL_REQUEST" != "false" ]; then # Check the whole commit range against $TRAVIS_BRANCH, the base merge branch diff --git a/modules/assimp/editor_scene_importer_assimp.cpp b/modules/assimp/editor_scene_importer_assimp.cpp index 4cf8782721..8c3c04674b 100644 --- a/modules/assimp/editor_scene_importer_assimp.cpp +++ b/modules/assimp/editor_scene_importer_assimp.cpp @@ -855,9 +855,7 @@ Ref<Material> EditorSceneImporterAssimp::_generate_material_from_index(ImportSta Ref<Texture> texture = _load_texture(state, path); if (texture != NULL) { - if (map_mode != NULL) { - _set_texture_mapping_mode(map_mode, texture); - } + _set_texture_mapping_mode(map_mode, texture); mat->set_feature(SpatialMaterial::Feature::FEATURE_NORMAL_MAPPING, true); mat->set_texture(SpatialMaterial::TEXTURE_NORMAL, texture); } diff --git a/modules/bullet/SCsub b/modules/bullet/SCsub index 16d694c238..2fe7a1b4c0 100644 --- a/modules/bullet/SCsub +++ b/modules/bullet/SCsub @@ -186,7 +186,11 @@ if env['builtin_bullet']: thirdparty_sources = [thirdparty_dir + file for file in bullet2_src] - env_bullet.Prepend(CPPPATH=[thirdparty_dir]) + # Treat Bullet headers as system headers to avoid raising warnings. Not supported on MSVC. + if not env.msvc: + env_bullet.Append(CPPFLAGS=['-isystem', Dir(thirdparty_dir).path]) + else: + env_bullet.Prepend(CPPPATH=[thirdparty_dir]) # if env['target'] == "debug" or env['target'] == "release_debug": # env_bullet.Append(CPPFLAGS=['-DBT_DEBUG']) diff --git a/modules/bullet/bullet_physics_server.cpp b/modules/bullet/bullet_physics_server.cpp index be4e0b88e8..038001996d 100644 --- a/modules/bullet/bullet_physics_server.cpp +++ b/modules/bullet/bullet_physics_server.cpp @@ -267,7 +267,7 @@ RID BulletPhysicsServer::area_get_space(RID p_area) const { void BulletPhysicsServer::area_set_space_override_mode(RID p_area, AreaSpaceOverrideMode p_mode) { AreaBullet *area = area_owner.get(p_area); - ERR_FAIL_COND(!area) + ERR_FAIL_COND(!area); area->set_spOv_mode(p_mode); } diff --git a/modules/bullet/cone_twist_joint_bullet.cpp b/modules/bullet/cone_twist_joint_bullet.cpp index d9a82d6179..bc7fd52cf6 100644 --- a/modules/bullet/cone_twist_joint_bullet.cpp +++ b/modules/bullet/cone_twist_joint_bullet.cpp @@ -84,7 +84,7 @@ void ConeTwistJointBullet::set_param(PhysicsServer::ConeTwistJointParam p_param, break; default: ERR_EXPLAIN("This parameter " + itos(p_param) + " is deprecated"); - WARN_DEPRECATED + WARN_DEPRECATED; break; } } diff --git a/modules/bullet/generic_6dof_joint_bullet.cpp b/modules/bullet/generic_6dof_joint_bullet.cpp index 8fed933854..0d2c46c579 100644 --- a/modules/bullet/generic_6dof_joint_bullet.cpp +++ b/modules/bullet/generic_6dof_joint_bullet.cpp @@ -175,7 +175,7 @@ void Generic6DOFJointBullet::set_param(Vector3::Axis p_axis, PhysicsServer::G6DO break; default: ERR_EXPLAIN("This parameter " + itos(p_param) + " is deprecated"); - WARN_DEPRECATED + WARN_DEPRECATED; break; } } @@ -256,7 +256,7 @@ void Generic6DOFJointBullet::set_flag(Vector3::Axis p_axis, PhysicsServer::G6DOF break; default: ERR_EXPLAIN("This flag " + itos(p_flag) + " is deprecated"); - WARN_DEPRECATED + WARN_DEPRECATED; break; } } diff --git a/modules/bullet/hinge_joint_bullet.cpp b/modules/bullet/hinge_joint_bullet.cpp index 7b99d3d89f..b7e1e1a4c2 100644 --- a/modules/bullet/hinge_joint_bullet.cpp +++ b/modules/bullet/hinge_joint_bullet.cpp @@ -118,7 +118,7 @@ void HingeJointBullet::set_param(PhysicsServer::HingeJointParam p_param, real_t break; default: ERR_EXPLAIN("The HingeJoint parameter " + itos(p_param) + " is deprecated."); - WARN_DEPRECATED + WARN_DEPRECATED; break; } } diff --git a/modules/bullet/pin_joint_bullet.cpp b/modules/bullet/pin_joint_bullet.cpp index 58b090006a..c9c4d1af7e 100644 --- a/modules/bullet/pin_joint_bullet.cpp +++ b/modules/bullet/pin_joint_bullet.cpp @@ -86,7 +86,7 @@ real_t PinJointBullet::get_param(PhysicsServer::PinJointParam p_param) const { return p2pConstraint->m_setting.m_impulseClamp; default: ERR_EXPLAIN("This parameter " + itos(p_param) + " is deprecated"); - WARN_DEPRECATED + WARN_DEPRECATED; return 0; } } diff --git a/modules/csg/csg.cpp b/modules/csg/csg.cpp index 3a61afa023..aa4d7d7d32 100644 --- a/modules/csg/csg.cpp +++ b/modules/csg/csg.cpp @@ -45,7 +45,7 @@ void CSGBrush::build_from_faces(const PoolVector<Vector3> &p_vertices, const Poo int vc = p_vertices.size(); - ERR_FAIL_COND((vc % 3) != 0) + ERR_FAIL_COND((vc % 3) != 0); PoolVector<Vector3>::Read rv = p_vertices.read(); int uvc = p_uvs.size(); diff --git a/modules/csg/csg_shape.h b/modules/csg/csg_shape.h index a5b2238e6b..2171f27f96 100644 --- a/modules/csg/csg_shape.h +++ b/modules/csg/csg_shape.h @@ -116,9 +116,9 @@ protected: virtual void _validate_property(PropertyInfo &property) const; +public: Array get_meshes() const; -public: void set_operation(Operation p_operation); Operation get_operation() const; diff --git a/modules/dds/texture_loader_dds.cpp b/modules/dds/texture_loader_dds.cpp index 059c06c37c..50fdc8ab20 100644 --- a/modules/dds/texture_loader_dds.cpp +++ b/modules/dds/texture_loader_dds.cpp @@ -31,6 +31,8 @@ #include "texture_loader_dds.h" #include "core/os/file_access.h" +#define PF_FOURCC(s) (((s)[3] << 24U) | ((s)[2] << 16U) | ((s)[1] << 8U) | ((s)[0])) + enum { DDS_MAGIC = 0x20534444, DDSD_CAPS = 0x00000001, @@ -51,6 +53,7 @@ enum DDSFormat { DDS_DXT5, DDS_ATI1, DDS_ATI2, + DDS_A2XY, DDS_BGRA8, DDS_BGR8, DDS_RGBA8, //flipped in dds @@ -74,9 +77,12 @@ struct DDSFormatInfo { }; static const DDSFormatInfo dds_format_info[DDS_MAX] = { - { "DXT1", true, false, 4, 8, Image::FORMAT_DXT1 }, - { "DXT3", true, false, 4, 16, Image::FORMAT_DXT3 }, - { "DXT5", true, false, 4, 16, Image::FORMAT_DXT5 }, + { "DXT1/BC1", true, false, 4, 8, Image::FORMAT_DXT1 }, + { "DXT3/BC2", true, false, 4, 16, Image::FORMAT_DXT3 }, + { "DXT5/BC3", true, false, 4, 16, Image::FORMAT_DXT5 }, + { "ATI1/BC4", true, false, 4, 8, Image::FORMAT_RGTC_R }, + { "ATI2/3DC/BC5", true, false, 4, 16, Image::FORMAT_RGTC_RG }, + { "A2XY/DXN/BC5", true, false, 4, 16, Image::FORMAT_RGTC_RG }, { "BGRA8", false, false, 1, 4, Image::FORMAT_RGBA8 }, { "BGR8", false, false, 1, 3, Image::FORMAT_RGB8 }, { "RGBA8", false, false, 1, 4, Image::FORMAT_RGBA8 }, @@ -158,22 +164,25 @@ RES ResourceFormatDDS::load(const String &p_path, const String &p_original_path, DDSFormat dds_format; - if (format_flags & DDPF_FOURCC && format_fourcc == 0x31545844) { //'1TXD' + if (format_flags & DDPF_FOURCC && format_fourcc == PF_FOURCC("DXT1")) { dds_format = DDS_DXT1; - } else if (format_flags & DDPF_FOURCC && format_fourcc == 0x33545844) { //'3TXD' + } else if (format_flags & DDPF_FOURCC && format_fourcc == PF_FOURCC("DXT3")) { dds_format = DDS_DXT3; - } else if (format_flags & DDPF_FOURCC && format_fourcc == 0x35545844) { //'5TXD' + } else if (format_flags & DDPF_FOURCC && format_fourcc == PF_FOURCC("DXT5")) { dds_format = DDS_DXT5; - } else if (format_flags & DDPF_FOURCC && format_fourcc == 0x31495441) { //'1ITA' + } else if (format_flags & DDPF_FOURCC && format_fourcc == PF_FOURCC("ATI1")) { dds_format = DDS_ATI1; - } else if (format_flags & DDPF_FOURCC && format_fourcc == 0x32495441) { //'2ITA' + } else if (format_flags & DDPF_FOURCC && format_fourcc == PF_FOURCC("ATI2")) { dds_format = DDS_ATI2; + } else if (format_flags & DDPF_FOURCC && format_fourcc == PF_FOURCC("A2XY")) { + + dds_format = DDS_A2XY; } else if (format_flags & DDPF_RGB && format_flags & DDPF_ALPHAPIXELS && format_rgb_bits == 32 && format_red_mask == 0xff0000 && format_green_mask == 0xff00 && format_blue_mask == 0xff && format_alpha_mask == 0xff000000) { diff --git a/modules/dds/texture_loader_dds.h b/modules/dds/texture_loader_dds.h index 585f2891bf..6ddef4e770 100644 --- a/modules/dds/texture_loader_dds.h +++ b/modules/dds/texture_loader_dds.h @@ -35,7 +35,6 @@ #include "scene/resources/texture.h" class ResourceFormatDDS : public ResourceFormatLoader { - GDCLASS(ResourceFormatDDS, ResourceFormatLoader) public: virtual RES load(const String &p_path, const String &p_original_path = "", Error *r_error = NULL); virtual void get_recognized_extensions(List<String> *p_extensions) const; diff --git a/modules/enet/networked_multiplayer_enet.cpp b/modules/enet/networked_multiplayer_enet.cpp index 18dfe08e85..dcb4b7fd75 100644 --- a/modules/enet/networked_multiplayer_enet.cpp +++ b/modules/enet/networked_multiplayer_enet.cpp @@ -80,6 +80,7 @@ Error NetworkedMultiplayerENet::create_server(int p_port, int p_max_clients, int ERR_FAIL_COND_V(p_out_bandwidth < 0, ERR_INVALID_PARAMETER); ENetAddress address; + memset(&address, 0, sizeof(address)); #ifdef GODOT_ENET if (bind_ip.is_wildcard()) { @@ -346,7 +347,7 @@ void NetworkedMultiplayerENet::poll() { uint32_t *id = (uint32_t *)event.peer->data; - ERR_CONTINUE(event.packet->dataLength < 8) + ERR_CONTINUE(event.packet->dataLength < 8); uint32_t source = decode_uint32(&event.packet->data[0]); int target = decode_uint32(&event.packet->data[4]); @@ -462,7 +463,7 @@ void NetworkedMultiplayerENet::disconnect_peer(int p_peer, bool now) { ERR_FAIL_COND(!active); ERR_FAIL_COND(!is_server()); - ERR_FAIL_COND(!peer_map.has(p_peer)) + ERR_FAIL_COND(!peer_map.has(p_peer)); if (now) { enet_peer_disconnect_now(peer_map[p_peer], 0); diff --git a/modules/etc/texture_loader_pkm.h b/modules/etc/texture_loader_pkm.h index 860fe8b5df..79c17953fc 100644 --- a/modules/etc/texture_loader_pkm.h +++ b/modules/etc/texture_loader_pkm.h @@ -35,7 +35,6 @@ #include "scene/resources/texture.h" class ResourceFormatPKM : public ResourceFormatLoader { - GDCLASS(ResourceFormatPKM, ResourceFormatLoader) public: virtual RES load(const String &p_path, const String &p_original_path = "", Error *r_error = NULL); virtual void get_recognized_extensions(List<String> *p_extensions) const; diff --git a/modules/gdnative/android/android_gdn.cpp b/modules/gdnative/android/android_gdn.cpp index 8657935602..624ef19dec 100644 --- a/modules/gdnative/android/android_gdn.cpp +++ b/modules/gdnative/android/android_gdn.cpp @@ -34,6 +34,8 @@ // These entry points are only for the android platform and are simple stubs in all others. #ifdef __ANDROID__ +#include "platform/android/java_godot_wrapper.h" +#include "platform/android/os_android.h" #include "platform/android/thread_jandroid.h" #else #define JNIEnv void @@ -54,20 +56,31 @@ JNIEnv *GDAPI godot_android_get_env() { jobject GDAPI godot_android_get_activity() { #ifdef __ANDROID__ - JNIEnv *env = ThreadAndroid::get_env(); - - jclass activityThread = env->FindClass("android/app/ActivityThread"); - jmethodID currentActivityThread = env->GetStaticMethodID(activityThread, "currentActivityThread", "()Landroid/app/ActivityThread;"); - jobject at = env->CallStaticObjectMethod(activityThread, currentActivityThread); - jmethodID getApplication = env->GetMethodID(activityThread, "getApplication", "()Landroid/app/Application;"); - jobject context = env->CallObjectMethod(at, getApplication); + OS_Android *os_android = (OS_Android *)OS::get_singleton(); + return os_android->get_godot_java()->get_activity(); +#else + return NULL; +#endif +} - return env->NewGlobalRef(context); +jobject GDAPI godot_android_get_surface() { +#ifdef __ANDROID__ + OS_Android *os_android = (OS_Android *)OS::get_singleton(); + return os_android->get_godot_java()->get_surface(); #else return NULL; #endif } +bool GDAPI godot_android_is_activity_resumed() { +#ifdef __ANDROID__ + OS_Android *os_android = (OS_Android *)OS::get_singleton(); + return os_android->get_godot_java()->is_activity_resumed(); +#else + return false; +#endif +} + #ifdef __cplusplus } #endif
\ No newline at end of file diff --git a/modules/gdnative/arvr/arvr_interface_gdnative.cpp b/modules/gdnative/arvr/arvr_interface_gdnative.cpp index c3f8688adb..da01f573ce 100644 --- a/modules/gdnative/arvr/arvr_interface_gdnative.cpp +++ b/modules/gdnative/arvr/arvr_interface_gdnative.cpp @@ -115,6 +115,17 @@ void ARVRInterfaceGDNative::set_anchor_detection_is_enabled(bool p_enable) { interface->set_anchor_detection_is_enabled(data, p_enable); } +int ARVRInterfaceGDNative::get_camera_feed_id() { + + ERR_FAIL_COND_V(interface == NULL, 0); + + if ((interface->version.major > 1) || ((interface->version.major) == 1 && (interface->version.minor >= 1))) { + return (unsigned int)interface->get_camera_feed_id(data); + } else { + return 0; + } +} + bool ARVRInterfaceGDNative::is_stereo() { bool stereo; diff --git a/modules/gdnative/arvr/arvr_interface_gdnative.h b/modules/gdnative/arvr/arvr_interface_gdnative.h index 86396b067a..e0e5b67849 100644 --- a/modules/gdnative/arvr/arvr_interface_gdnative.h +++ b/modules/gdnative/arvr/arvr_interface_gdnative.h @@ -66,6 +66,7 @@ public: /** specific to AR **/ virtual bool get_anchor_detection_is_enabled() const; virtual void set_anchor_detection_is_enabled(bool p_enable); + virtual int get_camera_feed_id(); /** rendering and internal **/ virtual Size2 get_render_targetsize(); diff --git a/modules/gdnative/config.py b/modules/gdnative/config.py index fde7f1a6e0..b9e5afcdf3 100644 --- a/modules/gdnative/config.py +++ b/modules/gdnative/config.py @@ -6,6 +6,7 @@ def configure(env): def get_doc_classes(): return [ + "@NativeScript", "ARVRInterfaceGDNative", "GDNative", "GDNativeLibrary", @@ -13,10 +14,10 @@ def get_doc_classes(): "NativeScript", "PacketPeerGDNative", "PluginScript", - "ResourceFormatLoaderVideoStreamGDNative", "StreamPeerGDNative", "VideoStreamGDNative", - "WebRTCPeerGDNative", + "WebRTCPeerConnectionGDNative", + "WebRTCDataChannelGDNative", ] def get_doc_path(): diff --git a/doc/classes/@NativeScript.xml b/modules/gdnative/doc_classes/@NativeScript.xml index cb5de198ac..cb5de198ac 100644 --- a/doc/classes/@NativeScript.xml +++ b/modules/gdnative/doc_classes/@NativeScript.xml diff --git a/modules/gdnative/doc_classes/ResourceFormatLoaderVideoStreamGDNative.xml b/modules/gdnative/doc_classes/ResourceFormatLoaderVideoStreamGDNative.xml deleted file mode 100644 index cd8b336778..0000000000 --- a/modules/gdnative/doc_classes/ResourceFormatLoaderVideoStreamGDNative.xml +++ /dev/null @@ -1,13 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" ?> -<class name="ResourceFormatLoaderVideoStreamGDNative" inherits="ResourceFormatLoader" category="Core" version="3.2"> - <brief_description> - </brief_description> - <description> - </description> - <tutorials> - </tutorials> - <methods> - </methods> - <constants> - </constants> -</class> diff --git a/doc/classes/ResourceFormatPKM.xml b/modules/gdnative/doc_classes/WebRTCDataChannelGDNative.xml index 6c442cd934..ac18ec6020 100644 --- a/doc/classes/ResourceFormatPKM.xml +++ b/modules/gdnative/doc_classes/WebRTCDataChannelGDNative.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8" ?> -<class name="ResourceFormatPKM" inherits="ResourceFormatLoader" category="Core" version="3.2"> +<class name="WebRTCDataChannelGDNative" inherits="WebRTCDataChannel" category="Core" version="3.2"> <brief_description> </brief_description> <description> diff --git a/doc/classes/GDNativeLibraryResourceSaver.xml b/modules/gdnative/doc_classes/WebRTCPeerConnectionGDNative.xml index 346d0d87d4..44cb8e5db8 100644 --- a/doc/classes/GDNativeLibraryResourceSaver.xml +++ b/modules/gdnative/doc_classes/WebRTCPeerConnectionGDNative.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8" ?> -<class name="GDNativeLibraryResourceSaver" inherits="ResourceFormatSaver" category="Core" version="3.2"> +<class name="WebRTCPeerConnectionGDNative" inherits="WebRTCPeerConnection" category="Core" version="3.2"> <brief_description> </brief_description> <description> diff --git a/modules/gdnative/doc_classes/WebRTCPeerGDNative.xml b/modules/gdnative/doc_classes/WebRTCPeerGDNative.xml deleted file mode 100644 index 478889e031..0000000000 --- a/modules/gdnative/doc_classes/WebRTCPeerGDNative.xml +++ /dev/null @@ -1,13 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" ?> -<class name="WebRTCPeerGDNative" inherits="WebRTCPeer" category="Core" version="3.2"> - <brief_description> - </brief_description> - <description> - </description> - <tutorials> - </tutorials> - <methods> - </methods> - <constants> - </constants> -</class> diff --git a/modules/gdnative/gdnative.h b/modules/gdnative/gdnative.h index ef57387059..1590994ab4 100644 --- a/modules/gdnative/gdnative.h +++ b/modules/gdnative/gdnative.h @@ -165,7 +165,6 @@ public: }; class GDNativeLibraryResourceLoader : public ResourceFormatLoader { - GDCLASS(GDNativeLibraryResourceLoader, ResourceFormatLoader) public: virtual RES load(const String &p_path, const String &p_original_path, Error *r_error); virtual void get_recognized_extensions(List<String> *p_extensions) const; @@ -174,7 +173,6 @@ public: }; class GDNativeLibraryResourceSaver : public ResourceFormatSaver { - GDCLASS(GDNativeLibraryResourceSaver, ResourceFormatSaver) public: virtual Error save(const String &p_path, const RES &p_resource, uint32_t p_flags); virtual bool recognize(const RES &p_resource) const; diff --git a/modules/gdnative/gdnative/dictionary.cpp b/modules/gdnative/gdnative/dictionary.cpp index 2c6c9e2de2..fff3fc3625 100644 --- a/modules/gdnative/gdnative/dictionary.cpp +++ b/modules/gdnative/gdnative/dictionary.cpp @@ -55,6 +55,15 @@ void GDAPI godot_dictionary_destroy(godot_dictionary *p_self) { self->~Dictionary(); } +godot_dictionary GDAPI godot_dictionary_duplicate(const godot_dictionary *p_self, const godot_bool p_deep) { + const Dictionary *self = (const Dictionary *)p_self; + godot_dictionary res; + Dictionary *val = (Dictionary *)&res; + memnew_placement(val, Dictionary); + *val = self->duplicate(p_deep); + return res; +} + godot_int GDAPI godot_dictionary_size(const godot_dictionary *p_self) { const Dictionary *self = (const Dictionary *)p_self; return self->size(); diff --git a/modules/gdnative/gdnative/variant.cpp b/modules/gdnative/gdnative/variant.cpp index 8f0d5a2db4..ac4d5a86b2 100644 --- a/modules/gdnative/gdnative/variant.cpp +++ b/modules/gdnative/gdnative/variant.cpp @@ -518,7 +518,7 @@ void GDAPI godot_variant_evaluate(godot_variant_operator p_op, const godot_varia const Variant *a = (const Variant *)p_a; const Variant *b = (const Variant *)p_b; Variant *ret = (Variant *)r_ret; - Variant::evaluate(op, a, b, *ret, *r_valid); + Variant::evaluate(op, *a, *b, *ret, *r_valid); } #ifdef __cplusplus diff --git a/modules/gdnative/gdnative/vector2.cpp b/modules/gdnative/gdnative/vector2.cpp index 8fa29580d6..a2ac61b35e 100644 --- a/modules/gdnative/gdnative/vector2.cpp +++ b/modules/gdnative/gdnative/vector2.cpp @@ -119,6 +119,14 @@ godot_vector2 GDAPI godot_vector2_cubic_interpolate(const godot_vector2 *p_self, return dest; } +godot_vector2 GDAPI godot_vector2_move_toward(const godot_vector2 *p_self, const godot_vector2 *p_to, const godot_real p_delta) { + godot_vector2 dest; + const Vector2 *self = (const Vector2 *)p_self; + const Vector2 *to = (const Vector2 *)p_to; + *((Vector2 *)&dest) = self->move_toward(*to, p_delta); + return dest; +} + godot_vector2 GDAPI godot_vector2_rotated(const godot_vector2 *p_self, const godot_real p_phi) { godot_vector2 dest; const Vector2 *self = (const Vector2 *)p_self; diff --git a/modules/gdnative/gdnative/vector3.cpp b/modules/gdnative/gdnative/vector3.cpp index ef86c6f7e9..894683ab38 100644 --- a/modules/gdnative/gdnative/vector3.cpp +++ b/modules/gdnative/gdnative/vector3.cpp @@ -124,6 +124,14 @@ godot_vector3 GDAPI godot_vector3_cubic_interpolate(const godot_vector3 *p_self, return dest; } +godot_vector3 GDAPI godot_vector3_move_toward(const godot_vector3 *p_self, const godot_vector3 *p_to, const godot_real p_delta) { + godot_vector3 dest; + const Vector3 *self = (const Vector3 *)p_self; + const Vector3 *to = (const Vector3 *)p_to; + *((Vector3 *)&dest) = self->move_toward(*to, p_delta); + return dest; +} + godot_real GDAPI godot_vector3_dot(const godot_vector3 *p_self, const godot_vector3 *p_b) { const Vector3 *self = (const Vector3 *)p_self; const Vector3 *b = (const Vector3 *)p_b; diff --git a/modules/gdnative/gdnative_api.json b/modules/gdnative/gdnative_api.json index 9882a89794..6c12ee6534 100644 --- a/modules/gdnative/gdnative_api.json +++ b/modules/gdnative/gdnative_api.json @@ -11,7 +11,42 @@ "major": 1, "minor": 1 }, - "next": null, + "next": { + "type": "CORE", + "version": { + "major": 1, + "minor": 2 + }, + "next": null, + "api": [ + { + "name": "godot_dictionary_duplicate", + "return_type": "godot_dictionary", + "arguments": [ + ["const godot_dictionary *", "p_self"], + ["const godot_bool", "p_deep"] + ] + }, + { + "name": "godot_vector3_move_toward", + "return_type": "godot_vector3", + "arguments": [ + ["const godot_vector3 *", "p_self"], + ["const godot_vector3 *", "p_to"], + ["const godot_real", "p_delta"] + ] + }, + { + "name": "godot_vector2_move_toward", + "return_type": "godot_vector2", + "arguments": [ + ["const godot_vector2 *", "p_self"], + ["const godot_vector2 *", "p_to"], + ["const godot_real", "p_delta"] + ] + } + ] + }, "api": [ { "name": "godot_color_to_abgr32", @@ -6269,7 +6304,7 @@ "type": "ANDROID", "version": { "major": 1, - "minor": 0 + "minor": 1 }, "next": null, "api": [ @@ -6284,6 +6319,18 @@ "return_type": "jobject", "arguments": [ ] + }, + { + "name": "godot_android_get_surface", + "return_type": "jobject", + "arguments": [ + ] + }, + { + "name": "godot_android_is_activity_resumed", + "return_type": "bool", + "arguments": [ + ] } ] }, @@ -6436,11 +6483,26 @@ "next": null, "api": [ { - "name": "godot_net_bind_webrtc_peer", + "name": "godot_net_set_webrtc_library", + "return_type": "godot_error", + "arguments": [ + ["const godot_net_webrtc_library *", "p_library"] + ] + }, + { + "name": "godot_net_bind_webrtc_peer_connection", + "return_type": "void", + "arguments": [ + ["godot_object *", "p_obj"], + ["const godot_net_webrtc_peer_connection *", "p_interface"] + ] + }, + { + "name": "godot_net_bind_webrtc_data_channel", "return_type": "void", "arguments": [ ["godot_object *", "p_obj"], - ["const godot_net_webrtc_peer *", "p_interface"] + ["const godot_net_webrtc_data_channel *", "p_interface"] ] } ] diff --git a/modules/gdnative/include/android/godot_android.h b/modules/gdnative/include/android/godot_android.h index 32e86838be..7063e1d2c5 100644 --- a/modules/gdnative/include/android/godot_android.h +++ b/modules/gdnative/include/android/godot_android.h @@ -46,6 +46,8 @@ extern "C" { JNIEnv *GDAPI godot_android_get_env(); jobject GDAPI godot_android_get_activity(); +jobject GDAPI godot_android_get_surface(); +bool GDAPI godot_android_is_activity_resumed(); #ifdef __cplusplus } diff --git a/modules/gdnative/include/arvr/godot_arvr.h b/modules/gdnative/include/arvr/godot_arvr.h index 657090fa70..d465bbde54 100644 --- a/modules/gdnative/include/arvr/godot_arvr.h +++ b/modules/gdnative/include/arvr/godot_arvr.h @@ -64,6 +64,7 @@ typedef struct { // only in 1.1 onwards godot_int (*get_external_texture_for_eye)(void *, godot_int); void (*notification)(void *, godot_int); + godot_int (*get_camera_feed_id)(void *); } godot_arvr_interface_gdnative; void GDAPI godot_arvr_register_interface(const godot_arvr_interface_gdnative *p_interface); diff --git a/modules/gdnative/include/gdnative/dictionary.h b/modules/gdnative/include/gdnative/dictionary.h index 14e35b4692..483cd9c4e3 100644 --- a/modules/gdnative/include/gdnative/dictionary.h +++ b/modules/gdnative/include/gdnative/dictionary.h @@ -63,6 +63,8 @@ void GDAPI godot_dictionary_new(godot_dictionary *r_dest); void GDAPI godot_dictionary_new_copy(godot_dictionary *r_dest, const godot_dictionary *p_src); void GDAPI godot_dictionary_destroy(godot_dictionary *p_self); +godot_dictionary GDAPI godot_dictionary_duplicate(const godot_dictionary *p_self, const godot_bool p_deep); + godot_int GDAPI godot_dictionary_size(const godot_dictionary *p_self); godot_bool GDAPI godot_dictionary_empty(const godot_dictionary *p_self); diff --git a/modules/gdnative/include/gdnative/vector2.h b/modules/gdnative/include/gdnative/vector2.h index 9e37b8e0c6..7a5ae6afa9 100644 --- a/modules/gdnative/include/gdnative/vector2.h +++ b/modules/gdnative/include/gdnative/vector2.h @@ -83,6 +83,8 @@ godot_vector2 GDAPI godot_vector2_linear_interpolate(const godot_vector2 *p_self godot_vector2 GDAPI godot_vector2_cubic_interpolate(const godot_vector2 *p_self, const godot_vector2 *p_b, const godot_vector2 *p_pre_a, const godot_vector2 *p_post_b, const godot_real p_t); +godot_vector2 GDAPI godot_vector2_move_toward(const godot_vector2 *p_self, const godot_vector2 *p_to, const godot_real p_delta); + godot_vector2 GDAPI godot_vector2_rotated(const godot_vector2 *p_self, const godot_real p_phi); godot_vector2 GDAPI godot_vector2_tangent(const godot_vector2 *p_self); diff --git a/modules/gdnative/include/gdnative/vector3.h b/modules/gdnative/include/gdnative/vector3.h index 61f0c6c62e..70ec6422ac 100644 --- a/modules/gdnative/include/gdnative/vector3.h +++ b/modules/gdnative/include/gdnative/vector3.h @@ -90,6 +90,8 @@ godot_vector3 GDAPI godot_vector3_linear_interpolate(const godot_vector3 *p_self godot_vector3 GDAPI godot_vector3_cubic_interpolate(const godot_vector3 *p_self, const godot_vector3 *p_b, const godot_vector3 *p_pre_a, const godot_vector3 *p_post_b, const godot_real p_t); +godot_vector3 GDAPI godot_vector3_move_toward(const godot_vector3 *p_self, const godot_vector3 *p_to, const godot_real p_delta); + godot_real GDAPI godot_vector3_dot(const godot_vector3 *p_self, const godot_vector3 *p_b); godot_vector3 GDAPI godot_vector3_cross(const godot_vector3 *p_self, const godot_vector3 *p_b); diff --git a/modules/gdnative/include/net/godot_net.h b/modules/gdnative/include/net/godot_net.h index c1bc9daab5..3a411755c1 100644 --- a/modules/gdnative/include/net/godot_net.h +++ b/modules/gdnative/include/net/godot_net.h @@ -111,37 +111,11 @@ typedef struct { /* Binds a MultiplayerPeerGDNative to the provided interface */ void GDAPI godot_net_bind_multiplayer_peer(godot_object *p_obj, const godot_net_multiplayer_peer *); -typedef struct { - godot_gdnative_api_version version; /* version of our API */ - - godot_object *data; /* User reference */ - - /* This is PacketPeer */ - godot_error (*get_packet)(void *, const uint8_t **, int *); - godot_error (*put_packet)(void *, const uint8_t *, int); - godot_int (*get_available_packet_count)(const void *); - godot_int (*get_max_packet_size)(const void *); - - /* This is WebRTCPeer */ - void (*set_write_mode)(void *, godot_int); - godot_int (*get_write_mode)(const void *); - bool (*was_string_packet)(const void *); - godot_int (*get_connection_state)(const void *); - - godot_error (*create_offer)(void *); - godot_error (*set_remote_description)(void *, const char *, const char *); - godot_error (*set_local_description)(void *, const char *, const char *); - godot_error (*add_ice_candidate)(void *, const char *, int, const char *); - godot_error (*poll)(void *); - - void *next; /* For extension? */ -} godot_net_webrtc_peer; - -/* Binds a PacketPeerGDNative to the provided interface */ -void GDAPI godot_net_bind_webrtc_peer(godot_object *p_obj, const godot_net_webrtc_peer *); - #ifdef __cplusplus } #endif +// WebRTC Bindings +#include "net/godot_webrtc.h" + #endif /* GODOT_NATIVENET_H */ diff --git a/modules/gdnative/include/net/godot_webrtc.h b/modules/gdnative/include/net/godot_webrtc.h new file mode 100644 index 0000000000..783f7b727d --- /dev/null +++ b/modules/gdnative/include/net/godot_webrtc.h @@ -0,0 +1,122 @@ +/*************************************************************************/ +/* godot_webrtc.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 GODOT_NATIVEWEBRTC_H +#define GODOT_NATIVEWEBRTC_H + +#include <gdnative/gdnative.h> + +#ifdef __cplusplus +extern "C" { +#endif + +#define GODOT_NET_WEBRTC_API_MAJOR 3 +#define GODOT_NET_WEBRTC_API_MINOR 2 + +/* Library Interface (used to set default GDNative WebRTC implementation */ +typedef struct { + godot_gdnative_api_version version; /* version of our API */ + + /* Called when the library is unset as default interface via godot_net_set_webrtc_library */ + void (*unregistered)(); + + /* Used by WebRTCPeerConnection create when GDNative is the default implementation. */ + /* Takes a pointer to WebRTCPeerConnectionGDNative, should bind and return OK, failure if binding was unsuccessful. */ + godot_error (*create_peer_connection)(godot_object *); + + void *next; /* For extension */ +} godot_net_webrtc_library; + +/* WebRTCPeerConnection interface */ +typedef struct { + godot_gdnative_api_version version; /* version of our API */ + + godot_object *data; /* User reference */ + + /* This is WebRTCPeerConnection */ + godot_int (*get_connection_state)(const void *); + + godot_error (*initialize)(void *, const godot_dictionary *); + godot_object *(*create_data_channel)(void *, const char *p_channel_name, const godot_dictionary *); + godot_error (*create_offer)(void *); + godot_error (*create_answer)(void *); /* unused for now, should be done automatically on set_local_description */ + godot_error (*set_remote_description)(void *, const char *, const char *); + godot_error (*set_local_description)(void *, const char *, const char *); + godot_error (*add_ice_candidate)(void *, const char *, int, const char *); + godot_error (*poll)(void *); + void (*close)(void *); + + void *next; /* For extension? */ +} godot_net_webrtc_peer_connection; + +/* WebRTCDataChannel interface */ +typedef struct { + godot_gdnative_api_version version; /* version of our API */ + + godot_object *data; /* User reference */ + + /* This is PacketPeer */ + godot_error (*get_packet)(void *, const uint8_t **, int *); + godot_error (*put_packet)(void *, const uint8_t *, int); + godot_int (*get_available_packet_count)(const void *); + godot_int (*get_max_packet_size)(const void *); + + /* This is WebRTCDataChannel */ + void (*set_write_mode)(void *, godot_int); + godot_int (*get_write_mode)(const void *); + bool (*was_string_packet)(const void *); + + godot_int (*get_ready_state)(const void *); + const char *(*get_label)(const void *); + bool (*is_ordered)(const void *); + int (*get_id)(const void *); + int (*get_max_packet_life_time)(const void *); + int (*get_max_retransmits)(const void *); + const char *(*get_protocol)(const void *); + bool (*is_negotiated)(const void *); + + godot_error (*poll)(void *); + void (*close)(void *); + + void *next; /* For extension? */ +} godot_net_webrtc_data_channel; + +/* Set the default GDNative library */ +godot_error GDAPI godot_net_set_webrtc_library(const godot_net_webrtc_library *); +/* Binds a WebRTCPeerConnectionGDNative to the provided interface */ +void GDAPI godot_net_bind_webrtc_peer_connection(godot_object *p_obj, const godot_net_webrtc_peer_connection *); +/* Binds a WebRTCDataChannelGDNative to the provided interface */ +void GDAPI godot_net_bind_webrtc_data_channel(godot_object *p_obj, const godot_net_webrtc_data_channel *); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/modules/gdnative/include/pluginscript/godot_pluginscript.h b/modules/gdnative/include/pluginscript/godot_pluginscript.h index 968f91ae9f..a9e83d1524 100644 --- a/modules/gdnative/include/pluginscript/godot_pluginscript.h +++ b/modules/gdnative/include/pluginscript/godot_pluginscript.h @@ -136,7 +136,7 @@ typedef struct { godot_bool (*validate)(godot_pluginscript_language_data *p_data, const godot_string *p_script, int *r_line_error, int *r_col_error, godot_string *r_test_error, const godot_string *p_path, godot_pool_string_array *r_functions); int (*find_function)(godot_pluginscript_language_data *p_data, const godot_string *p_function, const godot_string *p_code); // Can be NULL godot_string (*make_function)(godot_pluginscript_language_data *p_data, const godot_string *p_class, const godot_string *p_name, const godot_pool_string_array *p_args); - godot_error (*complete_code)(godot_pluginscript_language_data *p_data, const godot_string *p_code, const godot_string *p_base_path, godot_object *p_owner, godot_array *r_options, godot_bool *r_force, godot_string *r_call_hint); + godot_error (*complete_code)(godot_pluginscript_language_data *p_data, const godot_string *p_code, const godot_string *p_path, godot_object *p_owner, godot_array *r_options, godot_bool *r_force, godot_string *r_call_hint); void (*auto_indent_code)(godot_pluginscript_language_data *p_data, godot_string *p_code, int p_from_line, int p_to_line); void (*add_global_constant)(godot_pluginscript_language_data *p_data, const godot_string *p_variable, const godot_variant *p_value); diff --git a/modules/gdnative/nativescript/nativescript.cpp b/modules/gdnative/nativescript/nativescript.cpp index 04ba28dc68..f30c9da4c1 100644 --- a/modules/gdnative/nativescript/nativescript.cpp +++ b/modules/gdnative/nativescript/nativescript.cpp @@ -32,6 +32,7 @@ #include "gdnative/gdnative.h" +#include "core/core_string_names.h" #include "core/global_constants.h" #include "core/io/file_access_encrypted.h" #include "core/os/file_access.h" @@ -771,6 +772,27 @@ void NativeScriptInstance::notification(int p_notification) { call_multilevel("_notification", args, 1); } +String NativeScriptInstance::to_string(bool *r_valid) { + if (has_method(CoreStringNames::get_singleton()->_to_string)) { + Variant::CallError ce; + Variant ret = call(CoreStringNames::get_singleton()->_to_string, NULL, 0, ce); + if (ce.error == Variant::CallError::CALL_OK) { + if (ret.get_type() != Variant::STRING) { + if (r_valid) + *r_valid = false; + ERR_EXPLAIN("Wrong type for " + CoreStringNames::get_singleton()->_to_string + ", must be a String."); + ERR_FAIL_V(String()); + } + if (r_valid) + *r_valid = true; + return ret.operator String(); + } + } + if (r_valid) + *r_valid = false; + return String(); +} + void NativeScriptInstance::refcount_incremented() { Variant::CallError err; call("_refcount_incremented", NULL, 0, err); @@ -1345,7 +1367,7 @@ void *NativeScriptLanguage::get_instance_binding_data(int p_idx, Object *p_objec if (!(*binding_data)[p_idx]) { - const void *global_type_tag = global_type_tags[p_idx].get(p_object->get_class_name()); + const void *global_type_tag = get_global_type_tag(p_idx, p_object->get_class_name()); // no binding data yet, soooooo alloc new one \o/ (*binding_data).write[p_idx] = binding_functions[p_idx].second.alloc_instance_binding_data(binding_functions[p_idx].second.data, global_type_tag, (godot_object *)p_object); @@ -1454,6 +1476,9 @@ const void *NativeScriptLanguage::get_global_type_tag(int p_idx, StringName p_cl const HashMap<StringName, const void *> &tags = global_type_tags[p_idx]; + if (!tags.has(p_class_name)) + return NULL; + const void *tag = tags.get(p_class_name); return tag; diff --git a/modules/gdnative/nativescript/nativescript.h b/modules/gdnative/nativescript/nativescript.h index a6865c6243..d60e3ae1ae 100644 --- a/modules/gdnative/nativescript/nativescript.h +++ b/modules/gdnative/nativescript/nativescript.h @@ -208,6 +208,7 @@ public: virtual bool has_method(const StringName &p_method) const; virtual Variant call(const StringName &p_method, const Variant **p_args, int p_argcount, Variant::CallError &r_error); virtual void notification(int p_notification); + String to_string(bool *r_valid); virtual Ref<Script> get_script() const; virtual MultiplayerAPI::RPCMode get_rpc_mode(const StringName &p_method) const; virtual MultiplayerAPI::RPCMode get_rset_mode(const StringName &p_variable) const; @@ -381,7 +382,6 @@ public: }; class ResourceFormatLoaderNativeScript : public ResourceFormatLoader { - GDCLASS(ResourceFormatLoaderNativeScript, ResourceFormatLoader) public: virtual RES load(const String &p_path, const String &p_original_path = "", Error *r_error = NULL); virtual void get_recognized_extensions(List<String> *p_extensions) const; @@ -390,7 +390,6 @@ public: }; class ResourceFormatSaverNativeScript : public ResourceFormatSaver { - GDCLASS(ResourceFormatSaverNativeScript, ResourceFormatSaver) virtual Error save(const String &p_path, const RES &p_resource, uint32_t p_flags = 0); virtual bool recognize(const RES &p_resource) const; virtual void get_recognized_extensions(const RES &p_resource, List<String> *p_extensions) const; diff --git a/modules/gdnative/net/webrtc_gdnative.cpp b/modules/gdnative/net/webrtc_gdnative.cpp new file mode 100644 index 0000000000..d77fa057c5 --- /dev/null +++ b/modules/gdnative/net/webrtc_gdnative.cpp @@ -0,0 +1,60 @@ +/*************************************************************************/ +/* webrtc_gdnative.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 "modules/gdnative/gdnative.h" +#include "modules/gdnative/include/net/godot_net.h" + +#ifdef WEBRTC_GDNATIVE_ENABLED +#include "modules/webrtc/webrtc_data_channel_gdnative.h" +#include "modules/webrtc/webrtc_peer_connection_gdnative.h" +#endif + +extern "C" { + +void GDAPI godot_net_bind_webrtc_peer_connection(godot_object *p_obj, const godot_net_webrtc_peer_connection *p_impl) { +#ifdef WEBRTC_GDNATIVE_ENABLED + ((WebRTCPeerConnectionGDNative *)p_obj)->set_native_webrtc_peer_connection(p_impl); +#endif +} + +void GDAPI godot_net_bind_webrtc_data_channel(godot_object *p_obj, const godot_net_webrtc_data_channel *p_impl) { +#ifdef WEBRTC_GDNATIVE_ENABLED + ((WebRTCDataChannelGDNative *)p_obj)->set_native_webrtc_data_channel(p_impl); +#endif +} + +godot_error GDAPI godot_net_set_webrtc_library(const godot_net_webrtc_library *p_lib) { +#ifdef WEBRTC_GDNATIVE_ENABLED + return (godot_error)WebRTCPeerConnectionGDNative::set_default_library(p_lib); +#else + return ERR_UNAVAILABLE; +#endif +} +} diff --git a/modules/gdnative/pluginscript/pluginscript_language.cpp b/modules/gdnative/pluginscript/pluginscript_language.cpp index c9d92c09ed..7cb47ec623 100644 --- a/modules/gdnative/pluginscript/pluginscript_language.cpp +++ b/modules/gdnative/pluginscript/pluginscript_language.cpp @@ -159,13 +159,13 @@ String PluginScriptLanguage::make_function(const String &p_class, const String & return String(); } -Error PluginScriptLanguage::complete_code(const String &p_code, const String &p_base_path, Object *p_owner, List<String> *r_options, bool &r_force, String &r_call_hint) { +Error PluginScriptLanguage::complete_code(const String &p_code, const String &p_path, Object *p_owner, List<String> *r_options, bool &r_force, String &r_call_hint) { if (_desc.complete_code) { Array options; godot_error tmp = _desc.complete_code( _data, (godot_string *)&p_code, - (godot_string *)&p_base_path, + (godot_string *)&p_path, (godot_object *)p_owner, (godot_array *)&options, &r_force, diff --git a/modules/gdnative/pluginscript/pluginscript_language.h b/modules/gdnative/pluginscript/pluginscript_language.h index 991be0bf12..a11e916975 100644 --- a/modules/gdnative/pluginscript/pluginscript_language.h +++ b/modules/gdnative/pluginscript/pluginscript_language.h @@ -81,7 +81,7 @@ public: virtual bool can_inherit_from_file() { return true; } virtual int find_function(const String &p_function, const String &p_code) const; virtual String make_function(const String &p_class, const String &p_name, const PoolStringArray &p_args) const; - virtual Error complete_code(const String &p_code, const String &p_base_path, Object *p_owner, List<String> *r_options, bool &r_force, String &r_call_hint); + virtual Error complete_code(const String &p_code, const String &p_path, Object *p_owner, List<String> *r_options, bool &r_force, String &r_call_hint); virtual void auto_indent_code(String &p_code, int p_from_line, int p_to_line) const; virtual void add_global_constant(const StringName &p_variable, const Variant &p_value); diff --git a/modules/gdnative/pluginscript/pluginscript_loader.h b/modules/gdnative/pluginscript/pluginscript_loader.h index 69a2ac6bfe..6218037a15 100644 --- a/modules/gdnative/pluginscript/pluginscript_loader.h +++ b/modules/gdnative/pluginscript/pluginscript_loader.h @@ -40,8 +40,6 @@ class PluginScriptLanguage; class ResourceFormatLoaderPluginScript : public ResourceFormatLoader { - GDCLASS(ResourceFormatLoaderPluginScript, ResourceFormatLoader) - PluginScriptLanguage *_language; public: @@ -54,8 +52,6 @@ public: class ResourceFormatSaverPluginScript : public ResourceFormatSaver { - GDCLASS(ResourceFormatSaverPluginScript, ResourceFormatSaver) - PluginScriptLanguage *_language; public: diff --git a/modules/gdnative/pluginscript/pluginscript_script.cpp b/modules/gdnative/pluginscript/pluginscript_script.cpp index 8dbbd2e4eb..1d6f9db349 100644 --- a/modules/gdnative/pluginscript/pluginscript_script.cpp +++ b/modules/gdnative/pluginscript/pluginscript_script.cpp @@ -39,12 +39,12 @@ #define ASSERT_SCRIPT_VALID() \ { \ ERR_EXPLAIN(__ASSERT_SCRIPT_REASON); \ - ERR_FAIL_COND(!can_instance()) \ + ERR_FAIL_COND(!can_instance()); \ } -#define ASSERT_SCRIPT_VALID_V(ret) \ - { \ - ERR_EXPLAIN(__ASSERT_SCRIPT_REASON); \ - ERR_FAIL_COND_V(!can_instance(), ret) \ +#define ASSERT_SCRIPT_VALID_V(ret) \ + { \ + ERR_EXPLAIN(__ASSERT_SCRIPT_REASON); \ + ERR_FAIL_COND_V(!can_instance(), ret); \ } #else #define ASSERT_SCRIPT_VALID() @@ -77,7 +77,7 @@ PluginScriptInstance *PluginScript::_create_instance(const Variant **p_args, int // There is currently no way to get the constructor function name of the script. // instance->call("__init__", p_args, p_argcount, r_error); if (p_argcount > 0) { - WARN_PRINT("PluginScript doesn't support arguments in the constructor") + WARN_PRINT("PluginScript doesn't support arguments in the constructor"); } return instance; diff --git a/modules/gdnative/videodecoder/video_stream_gdnative.h b/modules/gdnative/videodecoder/video_stream_gdnative.h index aafd02f33d..b9f1c8e4da 100644 --- a/modules/gdnative/videodecoder/video_stream_gdnative.h +++ b/modules/gdnative/videodecoder/video_stream_gdnative.h @@ -197,7 +197,6 @@ public: }; class ResourceFormatLoaderVideoStreamGDNative : public ResourceFormatLoader { - GDCLASS(ResourceFormatLoaderVideoStreamGDNative, ResourceFormatLoader) public: virtual RES load(const String &p_path, const String &p_original_path = "", Error *r_error = NULL); virtual void get_recognized_extensions(List<String> *p_extensions) const; diff --git a/modules/gdscript/config.py b/modules/gdscript/config.py index 95b40d90af..a525eedaaa 100644 --- a/modules/gdscript/config.py +++ b/modules/gdscript/config.py @@ -6,6 +6,7 @@ def configure(env): def get_doc_classes(): return [ + "@GDScript", "GDScript", "GDScriptFunctionState", "GDScriptNativeClass", diff --git a/doc/classes/@GDScript.xml b/modules/gdscript/doc_classes/@GDScript.xml index 63b9ef13fd..b6de5dbf62 100644 --- a/doc/classes/@GDScript.xml +++ b/modules/gdscript/doc_classes/@GDScript.xml @@ -92,13 +92,13 @@ <argument index="0" name="condition" type="bool"> </argument> <description> - Assert that the [code]condition[/code] is [code]true[/code] . If the [code]condition[/code] is [code]false[/code] a fatal error is generated and the program is halted. Useful for debugging to make sure a value is always [code]true[/code]. + Asserts that the [code]condition[/code] is [code]true[/code] . If the [code]condition[/code] is [code]false[/code], an error is generated and the program is halted until you resume it. Only executes in debug builds, or when running the game from the editor. Use it for debugging purposes, to make sure a statement is [code]true[/code] during development. [codeblock] - # Speed should always be between 0 and 20 + # Imagine we always want speed to be between 0 and 20 speed = -10 - assert(speed < 20) # Is true and program continues - assert(speed >= 0) # Is false and program stops - assert(speed >= 0 && speed < 20) # Or combined + assert(speed < 20) # True, the program will continue + assert(speed >= 0) # False, the program will stop + assert(speed >= 0 && speed < 20) # You can also combine the two conditional statements in one check [/codeblock] </description> </method> @@ -640,6 +640,23 @@ [/codeblock] </description> </method> + <method name="move_toward"> + <return type="float"> + </return> + <argument index="0" name="from" type="float"> + </argument> + <argument index="1" name="to" type="float"> + </argument> + <argument index="2" name="delta" type="float"> + </argument> + <description> + Moves [code]from[/code] toward [code]to[/code] by the [code]delta[/code] value. + Use a negative [code]delta[/code] value to move away. + [codeblock] + move_toward(10, 5, 4) # returns 6 + [/codeblock] + </description> + </method> <method name="nearest_po2"> <return type="int"> </return> diff --git a/modules/gdscript/editor/gdscript_highlighter.cpp b/modules/gdscript/editor/gdscript_highlighter.cpp index 4f59b06ae6..62b65fe96b 100644 --- a/modules/gdscript/editor/gdscript_highlighter.cpp +++ b/modules/gdscript/editor/gdscript_highlighter.cpp @@ -56,6 +56,10 @@ static bool _is_hex_symbol(CharType c) { return ((c >= 'a' && c <= 'f') || (c >= 'A' && c <= 'F')); } +static bool _is_bin_symbol(CharType c) { + return (c == '0' || c == '1'); +} + Map<int, TextEdit::HighlighterInfo> GDScriptSyntaxHighlighter::_get_line_syntax_highlighting(int p_line) { Map<int, TextEdit::HighlighterInfo> color_map; @@ -76,6 +80,7 @@ Map<int, TextEdit::HighlighterInfo> GDScriptSyntaxHighlighter::_get_line_syntax_ bool in_member_variable = false; bool in_node_path = false; bool is_hex_notation = false; + bool is_bin_notation = false; bool expect_type = false; Color keyword_color; Color color; @@ -118,14 +123,26 @@ Map<int, TextEdit::HighlighterInfo> GDScriptSyntaxHighlighter::_get_line_syntax_ is_hex_notation = false; } + // disallow anything not a 0 or 1 + if (is_bin_notation && (_is_bin_symbol(str[j]))) { + is_number = true; + } else if (is_bin_notation) { + is_bin_notation = false; + is_number = false; + } else { + is_bin_notation = false; + } + // check for dot or underscore or 'x' for hex notation in floating point number or 'e' for scientific notation - if ((str[j] == '.' || str[j] == 'x' || str[j] == '_' || str[j] == 'e') && !in_word && prev_is_number && !is_number) { + if ((str[j] == '.' || str[j] == 'x' || str[j] == 'b' || str[j] == '_' || str[j] == 'e') && !in_word && prev_is_number && !is_number) { is_number = true; is_symbol = false; is_char = false; if (str[j] == 'x' && str[j - 1] == '0') { is_hex_notation = true; + } else if (str[j] == 'b' && str[j - 1] == '0') { + is_bin_notation = true; } } @@ -330,7 +347,7 @@ Map<int, TextEdit::HighlighterInfo> GDScriptSyntaxHighlighter::_get_line_syntax_ return color_map; } -String GDScriptSyntaxHighlighter::get_name() { +String GDScriptSyntaxHighlighter::get_name() const { return "GDScript"; } diff --git a/modules/gdscript/editor/gdscript_highlighter.h b/modules/gdscript/editor/gdscript_highlighter.h index 9dc10a5d1b..9ba2c80552 100644 --- a/modules/gdscript/editor/gdscript_highlighter.h +++ b/modules/gdscript/editor/gdscript_highlighter.h @@ -65,7 +65,7 @@ public: virtual void _update_cache(); virtual Map<int, TextEdit::HighlighterInfo> _get_line_syntax_highlighting(int p_line); - virtual String get_name(); + virtual String get_name() const; virtual List<String> get_supported_languages(); }; diff --git a/modules/gdscript/gdscript.cpp b/modules/gdscript/gdscript.cpp index d7a809eb5f..3fb9268702 100644 --- a/modules/gdscript/gdscript.cpp +++ b/modules/gdscript/gdscript.cpp @@ -30,6 +30,7 @@ #include "gdscript.h" +#include "core/core_string_names.h" #include "core/engine.h" #include "core/global_constants.h" #include "core/io/file_access_encrypted.h" @@ -1234,6 +1235,27 @@ void GDScriptInstance::notification(int p_notification) { } } +String GDScriptInstance::to_string(bool *r_valid) { + if (has_method(CoreStringNames::get_singleton()->_to_string)) { + Variant::CallError ce; + Variant ret = call(CoreStringNames::get_singleton()->_to_string, NULL, 0, ce); + if (ce.error == Variant::CallError::CALL_OK) { + if (ret.get_type() != Variant::STRING) { + if (r_valid) + *r_valid = false; + ERR_EXPLAIN("Wrong type for " + CoreStringNames::get_singleton()->_to_string + ", must be a String."); + ERR_FAIL_V(String()); + } + if (r_valid) + *r_valid = true; + return ret.operator String(); + } + } + if (r_valid) + *r_valid = false; + return String(); +} + Ref<Script> GDScriptInstance::get_script() const { return script; diff --git a/modules/gdscript/gdscript.h b/modules/gdscript/gdscript.h index 38009b878d..1756f6eabc 100644 --- a/modules/gdscript/gdscript.h +++ b/modules/gdscript/gdscript.h @@ -251,6 +251,7 @@ public: Variant debug_get_member_by_index(int p_idx) const { return members[p_idx]; } virtual void notification(int p_notification); + String to_string(bool *r_valid); virtual Ref<Script> get_script() const; @@ -457,9 +458,9 @@ public: virtual bool can_inherit_from_file() { return true; } virtual int find_function(const String &p_function, const String &p_code) const; virtual String make_function(const String &p_class, const String &p_name, const PoolStringArray &p_args) const; - virtual Error complete_code(const String &p_code, const String &p_base_path, Object *p_owner, List<String> *r_options, bool &r_forced, String &r_call_hint); + virtual Error complete_code(const String &p_code, const String &p_path, Object *p_owner, List<String> *r_options, bool &r_forced, String &r_call_hint); #ifdef TOOLS_ENABLED - virtual Error lookup_code(const String &p_code, const String &p_symbol, const String &p_base_path, Object *p_owner, LookupResult &r_result); + virtual Error lookup_code(const String &p_code, const String &p_symbol, const String &p_path, Object *p_owner, LookupResult &r_result); #endif virtual String _get_indentation() const; virtual void auto_indent_code(String &p_code, int p_from_line, int p_to_line) const; @@ -508,7 +509,6 @@ public: }; class ResourceFormatLoaderGDScript : public ResourceFormatLoader { - GDCLASS(ResourceFormatLoaderGDScript, ResourceFormatLoader) public: virtual RES load(const String &p_path, const String &p_original_path = "", Error *r_error = NULL); virtual void get_recognized_extensions(List<String> *p_extensions) const; @@ -518,7 +518,6 @@ public: }; class ResourceFormatSaverGDScript : public ResourceFormatSaver { - GDCLASS(ResourceFormatSaverGDScript, ResourceFormatSaver) public: virtual Error save(const String &p_path, const RES &p_resource, uint32_t p_flags = 0); virtual void get_recognized_extensions(const RES &p_resource, List<String> *p_extensions) const; diff --git a/modules/gdscript/gdscript_compiler.cpp b/modules/gdscript/gdscript_compiler.cpp index f7be0ce37c..189317b163 100644 --- a/modules/gdscript/gdscript_compiler.cpp +++ b/modules/gdscript/gdscript_compiler.cpp @@ -1977,12 +1977,12 @@ Error GDScriptCompiler::_parse_class_level(GDScript *p_script, const GDScriptPar for (int i = 0; i < p_class->subclasses.size(); i++) { StringName name = p_class->subclasses[i]->name; - - GDScript *subclass = p_script->subclasses[name].ptr(); + Ref<GDScript> &subclass = p_script->subclasses[name]; + GDScript *subclass_ptr = subclass.ptr(); // Subclass might still be parsing, just skip it - if (!parsed_classes.has(subclass) && !parsing_classes.has(subclass)) { - Error err = _parse_class_level(subclass, p_class->subclasses[i], p_keep_state); + if (!parsed_classes.has(subclass_ptr) && !parsing_classes.has(subclass_ptr)) { + Error err = _parse_class_level(subclass_ptr, p_class->subclasses[i], p_keep_state); if (err) return err; } diff --git a/modules/gdscript/gdscript_editor.cpp b/modules/gdscript/gdscript_editor.cpp index d91e32249e..6c77968f44 100644 --- a/modules/gdscript/gdscript_editor.cpp +++ b/modules/gdscript/gdscript_editor.cpp @@ -2054,7 +2054,7 @@ static void _find_identifiers_in_base(const GDScriptCompletionContext &p_context if (!p_only_functions) { List<PropertyInfo> members; - tmp.get_property_list(&members); + p_base.value.get_property_list(&members); for (List<PropertyInfo>::Element *E = members.front(); E; E = E->next()) { if (String(E->get().name).find("/") == -1) { @@ -2461,13 +2461,13 @@ static void _find_call_arguments(GDScriptCompletionContext &p_context, const GDS r_forced = r_result.size() > 0; } -Error GDScriptLanguage::complete_code(const String &p_code, const String &p_base_path, Object *p_owner, List<String> *r_options, bool &r_forced, String &r_call_hint) { +Error GDScriptLanguage::complete_code(const String &p_code, const String &p_path, Object *p_owner, List<String> *r_options, bool &r_forced, String &r_call_hint) { const String quote_style = EDITOR_DEF("text_editor/completion/use_single_quotes", false) ? "'" : "\""; GDScriptParser parser; - parser.parse(p_code, p_base_path, false, "", true); + parser.parse(p_code, p_path.get_base_dir(), false, p_path, true); r_forced = false; Set<String> options; GDScriptCompletionContext context; @@ -2478,7 +2478,7 @@ Error GDScriptLanguage::complete_code(const String &p_code, const String &p_base if (!context._class || context._class->owner == NULL) { context.base = p_owner; - context.base_path = p_base_path; + context.base_path = p_path.get_base_dir(); } bool is_function = false; @@ -2884,7 +2884,7 @@ Error GDScriptLanguage::complete_code(const String &p_code, const String &p_base #else -Error GDScriptLanguage::complete_code(const String &p_code, const String &p_base_path, Object *p_owner, List<String> *r_options, bool &r_forced, String &r_call_hint) { +Error GDScriptLanguage::complete_code(const String &p_code, const String &p_path, Object *p_owner, List<String> *r_options, bool &r_forced, String &r_call_hint) { return OK; } @@ -3155,7 +3155,7 @@ static Error _lookup_symbol_from_base(const GDScriptParser::DataType &p_base, co return ERR_CANT_RESOLVE; } -Error GDScriptLanguage::lookup_code(const String &p_code, const String &p_symbol, const String &p_base_path, Object *p_owner, LookupResult &r_result) { +Error GDScriptLanguage::lookup_code(const String &p_code, const String &p_symbol, const String &p_path, Object *p_owner, LookupResult &r_result) { //before parsing, try the usual stuff if (ClassDB::class_exists(p_symbol)) { @@ -3197,7 +3197,7 @@ Error GDScriptLanguage::lookup_code(const String &p_code, const String &p_symbol } GDScriptParser parser; - parser.parse(p_code, p_base_path, false, "", true); + parser.parse(p_code, p_path.get_base_dir(), false, p_path, true); if (parser.get_completion_type() == GDScriptParser::COMPLETION_NONE) { return ERR_CANT_RESOLVE; @@ -3209,7 +3209,7 @@ Error GDScriptLanguage::lookup_code(const String &p_code, const String &p_symbol context.block = parser.get_completion_block(); context.line = parser.get_completion_line(); context.base = p_owner; - context.base_path = p_base_path; + context.base_path = p_path.get_base_dir(); if (context._class && context._class->extends_class.size() > 0) { bool success = false; diff --git a/modules/gdscript/gdscript_function.cpp b/modules/gdscript/gdscript_function.cpp index cff9ba55b8..bae5eca218 100644 --- a/modules/gdscript/gdscript_function.cpp +++ b/modules/gdscript/gdscript_function.cpp @@ -133,35 +133,13 @@ Variant *GDScriptFunction::_get_variant(int p_address, GDScriptInstance *p_insta return NULL; } -String GDScriptFunction::_get_call_error(const Variant::CallError &p_err, const String &p_where, const Variant **argptrs) const { - - String err_text; - - if (p_err.error == Variant::CallError::CALL_ERROR_INVALID_ARGUMENT) { - int errorarg = p_err.argument; - err_text = "Invalid type in " + p_where + ". Cannot convert argument " + itos(errorarg + 1) + " from " + Variant::get_type_name(argptrs[errorarg]->get_type()) + " to " + Variant::get_type_name(p_err.expected) + "."; - } else if (p_err.error == Variant::CallError::CALL_ERROR_TOO_MANY_ARGUMENTS) { - err_text = "Invalid call to " + p_where + ". Expected " + itos(p_err.argument) + " arguments."; - } else if (p_err.error == Variant::CallError::CALL_ERROR_TOO_FEW_ARGUMENTS) { - err_text = "Invalid call to " + p_where + ". Expected " + itos(p_err.argument) + " arguments."; - } else if (p_err.error == Variant::CallError::CALL_ERROR_INVALID_METHOD) { - err_text = "Invalid call. Nonexistent " + p_where + "."; - } else if (p_err.error == Variant::CallError::CALL_ERROR_INSTANCE_IS_NULL) { - err_text = "Attempt to call " + p_where + " on a null instance."; - } else { - err_text = "Bug, call error: #" + itos(p_err.error); - } - - return err_text; -} - #ifdef DEBUG_ENABLED -static String _get_var_type(const Variant *p_type) { +static String _get_var_type(const Variant *p_var) { String basestr; - if (p_type->get_type() == Variant::OBJECT) { - Object *bobj = *p_type; + if (p_var->get_type() == Variant::OBJECT) { + Object *bobj = *p_var; if (!bobj) { basestr = "null instance"; } else { @@ -176,12 +154,42 @@ static String _get_var_type(const Variant *p_type) { } } else { - basestr = Variant::get_type_name(p_type->get_type()); + basestr = Variant::get_type_name(p_var->get_type()); } return basestr; } -#endif +#endif // DEBUG_ENABLED + +String GDScriptFunction::_get_call_error(const Variant::CallError &p_err, const String &p_where, const Variant **argptrs) const { + + String err_text; + + if (p_err.error == Variant::CallError::CALL_ERROR_INVALID_ARGUMENT) { + int errorarg = p_err.argument; + // Handle the Object to Object case separately as we don't have further class details. +#ifdef DEBUG_ENABLED + if (p_err.expected == Variant::OBJECT && argptrs[errorarg]->get_type() == p_err.expected) { + err_text = "Invalid type in " + p_where + ". The Object-derived class of argument " + itos(errorarg + 1) + " (" + _get_var_type(argptrs[errorarg]) + ") is not a subclass of the expected argument class."; + } else +#endif // DEBUG_ENABLED + { + err_text = "Invalid type in " + p_where + ". Cannot convert argument " + itos(errorarg + 1) + " from " + Variant::get_type_name(argptrs[errorarg]->get_type()) + " to " + Variant::get_type_name(p_err.expected) + "."; + } + } else if (p_err.error == Variant::CallError::CALL_ERROR_TOO_MANY_ARGUMENTS) { + err_text = "Invalid call to " + p_where + ". Expected " + itos(p_err.argument) + " arguments."; + } else if (p_err.error == Variant::CallError::CALL_ERROR_TOO_FEW_ARGUMENTS) { + err_text = "Invalid call to " + p_where + ". Expected " + itos(p_err.argument) + " arguments."; + } else if (p_err.error == Variant::CallError::CALL_ERROR_INVALID_METHOD) { + err_text = "Invalid call. Nonexistent " + p_where + "."; + } else if (p_err.error == Variant::CallError::CALL_ERROR_INSTANCE_IS_NULL) { + err_text = "Attempt to call " + p_where + " on a null instance."; + } else { + err_text = "Bug, call error: #" + itos(p_err.error); + } + + return err_text; +} #if defined(__GNUC__) #define OPCODES_TABLE \ diff --git a/modules/gdscript/gdscript_functions.cpp b/modules/gdscript/gdscript_functions.cpp index 5ebcddfd7c..0736f3d010 100644 --- a/modules/gdscript/gdscript_functions.cpp +++ b/modules/gdscript/gdscript_functions.cpp @@ -78,6 +78,7 @@ const char *GDScriptFunctions::get_func_name(Function p_func) { "inverse_lerp", "range_lerp", "smoothstep", + "move_toward", "dectime", "randomize", "randi", @@ -341,7 +342,7 @@ void GDScriptFunctions::call(Function p_func, const Variant **p_args, int p_arg_ VALIDATE_ARG_NUM(0); r_ret = Math::step_decimals((double)*p_args[0]); ERR_EXPLAIN("GDScript method 'decimals' is deprecated and has been renamed to 'step_decimals', please update your code accordingly."); - WARN_DEPRECATED + WARN_DEPRECATED; } break; case MATH_STEP_DECIMALS: { VALIDATE_ARG_COUNT(1); @@ -398,6 +399,13 @@ void GDScriptFunctions::call(Function p_func, const Variant **p_args, int p_arg_ VALIDATE_ARG_NUM(2); r_ret = Math::smoothstep((double)*p_args[0], (double)*p_args[1], (double)*p_args[2]); } break; + case MATH_MOVE_TOWARD: { + VALIDATE_ARG_COUNT(3); + VALIDATE_ARG_NUM(0); + VALIDATE_ARG_NUM(1); + VALIDATE_ARG_NUM(2); + r_ret = Math::move_toward((double)*p_args[0], (double)*p_args[1], (double)*p_args[2]); + } break; case MATH_DECTIME: { VALIDATE_ARG_COUNT(3); VALIDATE_ARG_NUM(0); @@ -1466,6 +1474,7 @@ bool GDScriptFunctions::is_deterministic(Function p_func) { case MATH_INVERSE_LERP: case MATH_RANGE_LERP: case MATH_SMOOTHSTEP: + case MATH_MOVE_TOWARD: case MATH_DECTIME: case MATH_DEG2RAD: case MATH_RAD2DEG: @@ -1669,6 +1678,11 @@ MethodInfo GDScriptFunctions::get_info(Function p_func) { mi.return_val.type = Variant::REAL; return mi; } break; + case MATH_MOVE_TOWARD: { + MethodInfo mi("move_toward", PropertyInfo(Variant::REAL, "from"), PropertyInfo(Variant::REAL, "to"), PropertyInfo(Variant::REAL, "delta")); + mi.return_val.type = Variant::REAL; + return mi; + } break; case MATH_DECTIME: { MethodInfo mi("dectime", PropertyInfo(Variant::REAL, "value"), PropertyInfo(Variant::REAL, "amount"), PropertyInfo(Variant::REAL, "step")); mi.return_val.type = Variant::REAL; diff --git a/modules/gdscript/gdscript_functions.h b/modules/gdscript/gdscript_functions.h index c594480ff8..6ad70f2eb4 100644 --- a/modules/gdscript/gdscript_functions.h +++ b/modules/gdscript/gdscript_functions.h @@ -69,6 +69,7 @@ public: MATH_INVERSE_LERP, MATH_RANGE_LERP, MATH_SMOOTHSTEP, + MATH_MOVE_TOWARD, MATH_DECTIME, MATH_RANDOMIZE, MATH_RAND, diff --git a/modules/gdscript/gdscript_parser.cpp b/modules/gdscript/gdscript_parser.cpp index de15f939ce..ec3e72eef7 100644 --- a/modules/gdscript/gdscript_parser.cpp +++ b/modules/gdscript/gdscript_parser.cpp @@ -1995,7 +1995,6 @@ GDScriptParser::Node *GDScriptParser::_reduce_expression(Node *p_node, bool p_to } } - ERR_FAIL_V(op); } break; default: { return p_node; @@ -3369,7 +3368,7 @@ void GDScriptParser::_parse_extends(ClassNode *p_class) { return; } - if (!p_class->constant_expressions.empty() || !p_class->subclasses.empty() || !p_class->functions.empty() || !p_class->variables.empty()) { + if (!p_class->constant_expressions.empty() || !p_class->subclasses.empty() || !p_class->functions.empty() || !p_class->variables.empty() || p_class->classname_used) { _set_error("'extends' must be used before anything else."); return; @@ -3497,7 +3496,7 @@ void GDScriptParser::_parse_class(ClassNode *p_class) { _set_error("'class_name' is only valid for the main class namespace."); return; } - if (self_path.empty()) { + if (self_path.begins_with("res://") && self_path.find("::") != -1) { _set_error("'class_name' not allowed in built-in scripts."); return; } @@ -3506,6 +3505,12 @@ void GDScriptParser::_parse_class(ClassNode *p_class) { _set_error("'class_name' syntax: 'class_name <UniqueName>'"); return; } + if (p_class->classname_used) { + _set_error("'class_name' already used for this class."); + return; + } + + p_class->classname_used = true; p_class->name = tokenizer->get_token_identifier(1); @@ -4019,7 +4024,7 @@ void GDScriptParser::_parse_class(ClassNode *p_class) { if (tokenizer->get_token() == GDScriptTokenizer::TK_PARENTHESIS_CLOSE) { ERR_EXPLAIN("Exporting bit flags hint requires string constants."); - WARN_DEPRECATED + WARN_DEPRECATED; break; } if (tokenizer->get_token() != GDScriptTokenizer::TK_COMMA) { @@ -4062,6 +4067,50 @@ void GDScriptParser::_parse_class(ClassNode *p_class) { break; } + if (tokenizer->get_token() == GDScriptTokenizer::TK_IDENTIFIER && tokenizer->get_token_identifier() == "LAYERS_2D_RENDER") { + + tokenizer->advance(); + if (tokenizer->get_token() != GDScriptTokenizer::TK_PARENTHESIS_CLOSE) { + _set_error("Expected ')' in layers 2D render hint."); + return; + } + current_export.hint = PROPERTY_HINT_LAYERS_2D_RENDER; + break; + } + + if (tokenizer->get_token() == GDScriptTokenizer::TK_IDENTIFIER && tokenizer->get_token_identifier() == "LAYERS_2D_PHYSICS") { + + tokenizer->advance(); + if (tokenizer->get_token() != GDScriptTokenizer::TK_PARENTHESIS_CLOSE) { + _set_error("Expected ')' in layers 2D physics hint."); + return; + } + current_export.hint = PROPERTY_HINT_LAYERS_2D_PHYSICS; + break; + } + + if (tokenizer->get_token() == GDScriptTokenizer::TK_IDENTIFIER && tokenizer->get_token_identifier() == "LAYERS_3D_RENDER") { + + tokenizer->advance(); + if (tokenizer->get_token() != GDScriptTokenizer::TK_PARENTHESIS_CLOSE) { + _set_error("Expected ')' in layers 3D render hint."); + return; + } + current_export.hint = PROPERTY_HINT_LAYERS_3D_RENDER; + break; + } + + if (tokenizer->get_token() == GDScriptTokenizer::TK_IDENTIFIER && tokenizer->get_token_identifier() == "LAYERS_3D_PHYSICS") { + + tokenizer->advance(); + if (tokenizer->get_token() != GDScriptTokenizer::TK_PARENTHESIS_CLOSE) { + _set_error("Expected ')' in layers 3D physics hint."); + return; + } + current_export.hint = PROPERTY_HINT_LAYERS_3D_PHYSICS; + break; + } + if (tokenizer->get_token() == GDScriptTokenizer::TK_CONSTANT && tokenizer->get_token_constant().get_type() == Variant::STRING) { //enumeration current_export.hint = PROPERTY_HINT_ENUM; @@ -5248,6 +5297,7 @@ void GDScriptParser::_determine_inheritance(ClassNode *p_class) { if (base_script.is_valid()) { String ident = base; + Ref<GDScript> find_subclass = base_script; for (int i = extend_iter; i < p_class->extends_class.size(); i++) { @@ -5257,7 +5307,7 @@ void GDScriptParser::_determine_inheritance(ClassNode *p_class) { if (base_script->get_subclasses().has(subclass)) { - base_script = base_script->get_subclasses()[subclass]; + find_subclass = base_script->get_subclasses()[subclass]; } else if (base_script->get_constants().has(subclass)) { Ref<GDScript> new_base_class = base_script->get_constants()[subclass]; @@ -5265,7 +5315,7 @@ void GDScriptParser::_determine_inheritance(ClassNode *p_class) { _set_error("Constant is not a class: " + ident, p_class->line); return; } - base_script = new_base_class; + find_subclass = new_base_class; } else { _set_error("Could not find subclass: " + ident, p_class->line); @@ -5273,7 +5323,7 @@ void GDScriptParser::_determine_inheritance(ClassNode *p_class) { } } - script = base_script; + script = find_subclass; } else if (!base_class) { @@ -6014,7 +6064,11 @@ bool GDScriptParser::_is_type_compatible(const DataType &p_container, const Data } GDScriptParser::DataType GDScriptParser::_reduce_node_type(Node *p_node) { +#ifdef DEBUG_ENABLED + if (p_node->get_datatype().has_type && p_node->type != Node::TYPE_ARRAY && p_node->type != Node::TYPE_DICTIONARY) { +#else if (p_node->get_datatype().has_type) { +#endif return p_node->get_datatype(); } diff --git a/modules/gdscript/gdscript_parser.h b/modules/gdscript/gdscript_parser.h index 809bff8f20..5e4de11357 100644 --- a/modules/gdscript/gdscript_parser.h +++ b/modules/gdscript/gdscript_parser.h @@ -149,6 +149,7 @@ public: bool tool; StringName name; bool extends_used; + bool classname_used; StringName extends_file; Vector<StringName> extends_class; DataType base_type; @@ -198,6 +199,7 @@ public: tool = false; type = TYPE_CLASS; extends_used = false; + classname_used = false; end_line = -1; owner = NULL; } diff --git a/modules/gdscript/gdscript_tokenizer.cpp b/modules/gdscript/gdscript_tokenizer.cpp index b8048fb5dd..a93d1ceebb 100644 --- a/modules/gdscript/gdscript_tokenizer.cpp +++ b/modules/gdscript/gdscript_tokenizer.cpp @@ -376,6 +376,11 @@ static bool _is_hex(CharType c) { return (c >= '0' && c <= '9') || (c >= 'a' && c <= 'f') || (c >= 'A' && c <= 'F'); } +static bool _is_bin(CharType c) { + + return (c == '0' || c == '1'); +} + void GDScriptTokenizerText::_make_token(Token p_type) { TokenData &tk = tk_rb[tk_rb_pos]; @@ -877,6 +882,7 @@ void GDScriptTokenizerText::_advance() { bool period_found = false; bool exponent_found = false; bool hexa_found = false; + bool bin_found = false; bool sign_found = false; String str; @@ -887,16 +893,28 @@ void GDScriptTokenizerText::_advance() { if (period_found || exponent_found) { _make_error("Invalid numeric constant at '.'"); return; + } else if (bin_found) { + _make_error("Invalid binary constant at '.'"); + return; + } else if (hexa_found) { + _make_error("Invalid hexadecimal constant at '.'"); + return; } period_found = true; } else if (GETCHAR(i) == 'x') { - if (hexa_found || str.length() != 1 || !((i == 1 && str[0] == '0') || (i == 2 && str[1] == '0' && str[0] == '-'))) { + if (hexa_found || bin_found || str.length() != 1 || !((i == 1 && str[0] == '0') || (i == 2 && str[1] == '0' && str[0] == '-'))) { _make_error("Invalid numeric constant at 'x'"); return; } hexa_found = true; + } else if (GETCHAR(i) == 'b') { + if (hexa_found || bin_found || str.length() != 1 || !((i == 1 && str[0] == '0') || (i == 2 && str[1] == '0' && str[0] == '-'))) { + _make_error("Invalid numeric constant at 'b'"); + return; + } + bin_found = true; } else if (!hexa_found && GETCHAR(i) == 'e') { - if (exponent_found) { + if (exponent_found || bin_found) { _make_error("Invalid numeric constant at 'e'"); return; } @@ -905,6 +923,8 @@ void GDScriptTokenizerText::_advance() { //all ok } else if (hexa_found && _is_hex(GETCHAR(i))) { + } else if (bin_found && _is_bin(GETCHAR(i))) { + } else if ((GETCHAR(i) == '-' || GETCHAR(i) == '+') && exponent_found) { if (sign_found) { _make_error("Invalid numeric constant at '-'"); @@ -930,6 +950,9 @@ void GDScriptTokenizerText::_advance() { if (hexa_found) { int64_t val = str.hex_to_int64(); _make_constant(val); + } else if (bin_found) { + int64_t val = str.bin_to_int64(); + _make_constant(val); } else if (period_found || exponent_found) { double val = str.to_double(); _make_constant(val); diff --git a/modules/gridmap/grid_map.cpp b/modules/gridmap/grid_map.cpp index 32a014e76d..3caa7b1d12 100644 --- a/modules/gridmap/grid_map.cpp +++ b/modules/gridmap/grid_map.cpp @@ -197,7 +197,7 @@ bool GridMap::get_collision_layer_bit(int p_bit) const { void GridMap::set_theme(const Ref<MeshLibrary> &p_theme) { ERR_EXPLAIN("GridMap.theme/set_theme() is deprecated and will be removed in a future version. Use GridMap.mesh_library/set_mesh_library() instead."); - WARN_DEPRECATED + WARN_DEPRECATED; set_mesh_library(p_theme); } @@ -205,7 +205,7 @@ void GridMap::set_theme(const Ref<MeshLibrary> &p_theme) { Ref<MeshLibrary> GridMap::get_theme() const { ERR_EXPLAIN("GridMap.theme/get_theme() is deprecated and will be removed in a future version. Use GridMap.mesh_library/get_mesh_library() instead."); - WARN_DEPRECATED + WARN_DEPRECATED; return get_mesh_library(); } diff --git a/modules/gridmap/grid_map_editor_plugin.cpp b/modules/gridmap/grid_map_editor_plugin.cpp index 657aa1f9ce..890bd730f7 100644 --- a/modules/gridmap/grid_map_editor_plugin.cpp +++ b/modules/gridmap/grid_map_editor_plugin.cpp @@ -1179,6 +1179,10 @@ void GridMapEditor::_floor_changed(float p_value) { _update_selection_transform(); } +void GridMapEditor::_floor_mouse_exited() { + floor->get_line_edit()->release_focus(); +} + void GridMapEditor::_bind_methods() { ClassDB::bind_method("_text_changed", &GridMapEditor::_text_changed); @@ -1188,6 +1192,7 @@ void GridMapEditor::_bind_methods() { ClassDB::bind_method("_configure", &GridMapEditor::_configure); ClassDB::bind_method("_item_selected_cbk", &GridMapEditor::_item_selected_cbk); ClassDB::bind_method("_floor_changed", &GridMapEditor::_floor_changed); + ClassDB::bind_method("_floor_mouse_exited", &GridMapEditor::_floor_mouse_exited); ClassDB::bind_method("_set_selection", &GridMapEditor::_set_selection); ClassDB::bind_method(D_METHOD("_set_display_mode", "mode"), &GridMapEditor::_set_display_mode); @@ -1221,6 +1226,8 @@ GridMapEditor::GridMapEditor(EditorNode *p_editor) { spatial_editor_hb->add_child(floor); floor->connect("value_changed", this, "_floor_changed"); + floor->connect("mouse_exited", this, "_floor_mouse_exited"); + floor->get_line_edit()->connect("mouse_exited", this, "_floor_mouse_exited"); spatial_editor_hb->add_child(memnew(VSeparator)); diff --git a/modules/gridmap/grid_map_editor_plugin.h b/modules/gridmap/grid_map_editor_plugin.h index 8e1948ea7d..da36165d4e 100644 --- a/modules/gridmap/grid_map_editor_plugin.h +++ b/modules/gridmap/grid_map_editor_plugin.h @@ -225,6 +225,7 @@ class GridMapEditor : public VBoxContainer { void _set_selection(bool p_active, const Vector3 p_begin = Vector3(), const Vector3 p_end = Vector3()); void _floor_changed(float p_value); + void _floor_mouse_exited(); void _delete_selection(); void _fill_selection(); diff --git a/modules/mono/SCsub b/modules/mono/SCsub index 341d57f3e4..6c3ecee272 100644 --- a/modules/mono/SCsub +++ b/modules/mono/SCsub @@ -20,11 +20,6 @@ if env['tools']: 'glue/cs_glue_version.gen.h' ) -vars = Variables() -vars.Add(BoolVariable('mono_glue', 'Build with the mono glue sources', True)) -vars.Add(BoolVariable('xbuild_fallback', 'If MSBuild is not found, fallback to xbuild', False)) -vars.Update(env_mono) - # Glue sources if env_mono['mono_glue']: env_mono.Append(CPPDEFINES=['MONO_GLUE_ENABLED']) diff --git a/modules/mono/build_scripts/godotsharptools_build.py b/modules/mono/build_scripts/godotsharptools_build.py index af3a5cb5c6..17f9a990af 100644 --- a/modules/mono/build_scripts/godotsharptools_build.py +++ b/modules/mono/build_scripts/godotsharptools_build.py @@ -1,6 +1,5 @@ # Build GodotSharpTools solution - import os from SCons.Script import Builder, Dir @@ -53,21 +52,9 @@ def find_nuget_windows(env): if os.path.isfile(hint_path) and os.access(hint_path, os.X_OK): return hint_path - from . import mono_reg_utils as monoreg - - mono_root = '' - bits = env['bits'] + from . mono_reg_utils import find_mono_root_dir - if bits == '32': - if os.getenv('MONO32_PREFIX'): - mono_root = os.getenv('MONO32_PREFIX') - else: - mono_root = monoreg.find_mono_root_dir(bits) - else: - if os.getenv('MONO64_PREFIX'): - mono_root = os.getenv('MONO64_PREFIX') - else: - mono_root = monoreg.find_mono_root_dir(bits) + mono_root = env['mono_prefix'] or find_mono_root_dir(env['bits']) if mono_root: mono_bin_dir = os.path.join(mono_root, 'bin') @@ -114,21 +101,9 @@ def find_msbuild_unix(filename): def find_msbuild_windows(env): - from . import mono_reg_utils as monoreg + from . mono_reg_utils import find_mono_root_dir, find_msbuild_tools_path_reg - mono_root = '' - bits = env['bits'] - - if bits == '32': - if os.getenv('MONO32_PREFIX'): - mono_root = os.getenv('MONO32_PREFIX') - else: - mono_root = monoreg.find_mono_root_dir(bits) - else: - if os.getenv('MONO64_PREFIX'): - mono_root = os.getenv('MONO64_PREFIX') - else: - mono_root = monoreg.find_mono_root_dir(bits) + mono_root = env['mono_prefix'] or find_mono_root_dir(env['bits']) if not mono_root: raise RuntimeError('Cannot find mono root directory') @@ -148,7 +123,7 @@ def find_msbuild_windows(env): } return (msbuild_mono, framework_path, mono_msbuild_env) - msbuild_tools_path = monoreg.find_msbuild_tools_path_reg() + msbuild_tools_path = find_msbuild_tools_path_reg() if msbuild_tools_path: return (os.path.join(msbuild_tools_path, 'MSBuild.exe'), framework_path, {}) diff --git a/modules/mono/build_scripts/mono_configure.py b/modules/mono/build_scripts/mono_configure.py index 4cfa2a5b93..c549640d61 100644 --- a/modules/mono/build_scripts/mono_configure.py +++ b/modules/mono/build_scripts/mono_configure.py @@ -1,15 +1,30 @@ import imp import os +import os.path import sys import subprocess from distutils.version import LooseVersion -from SCons.Script import BoolVariable, Dir, Environment, Variables +from SCons.Script import Dir, Environment if os.name == 'nt': from . import mono_reg_utils as monoreg +android_arch_dirs = { + 'armv7': 'armeabi-v7a', + 'arm64v8': 'arm64-v8a', + 'x86': 'x86', + 'x86_64': 'x86_64' +} + + +def get_android_out_dir(env): + return os.path.join(Dir('#platform/android/java/libs').abspath, + 'release' if env['target'] == 'release' else 'debug', + android_arch_dirs[env['android_arch']]) + + def find_file_in_dir(directory, files, prefix='', extension=''): if not extension.startswith('.'): extension = '.' + extension @@ -20,47 +35,47 @@ def find_file_in_dir(directory, files, prefix='', extension=''): def copy_file(src_dir, dst_dir, name): - from shutil import copyfile + from shutil import copy - src_path = os.path.join(src_dir, name) - dst_path = os.path.join(dst_dir, name) + src_path = os.path.join(Dir(src_dir).abspath, name) + dst_dir = Dir(dst_dir).abspath if not os.path.isdir(dst_dir): os.mkdir(dst_dir) - copyfile(src_path, dst_path) + copy(src_path, dst_dir) def configure(env, env_mono): - envvars = Variables() - envvars.Add(BoolVariable('mono_static', 'Statically link mono', False)) - envvars.Add(BoolVariable('copy_mono_root', 'Make a copy of the mono installation directory to bundle with the editor', False)) - envvars.Update(env) - bits = env['bits'] + is_android = env['platform'] == 'android' tools_enabled = env['tools'] mono_static = env['mono_static'] copy_mono_root = env['copy_mono_root'] + mono_prefix = env['mono_prefix'] + mono_lib_names = ['mono-2.0-sgen', 'monosgen-2.0'] + if is_android and not env['android_arch'] in android_arch_dirs: + raise RuntimeError('This module does not support for the specified \'android_arch\': ' + env['android_arch']) + + if is_android and tools_enabled: + # TODO: Implement this. We have to add the data directory to the apk, concretely the Api and Tools folders. + raise RuntimeError('This module does not currently support building for android with tools enabled') + + if (os.getenv('MONO32_PREFIX') or os.getenv('MONO64_PREFIX')) and not mono_prefix: + print("WARNING: The environment variables 'MONO32_PREFIX' and 'MONO64_PREFIX' are deprecated; use the 'mono_prefix' SCons parameter instead") + if env['platform'] == 'windows': - mono_root = '' + mono_root = mono_prefix - if bits == '32': - if os.getenv('MONO32_PREFIX'): - mono_root = os.getenv('MONO32_PREFIX') - elif os.name == 'nt': - mono_root = monoreg.find_mono_root_dir(bits) - else: - if os.getenv('MONO64_PREFIX'): - mono_root = os.getenv('MONO64_PREFIX') - elif os.name == 'nt': - mono_root = monoreg.find_mono_root_dir(bits) + if not mono_root and os.name == 'nt': + mono_root = monoreg.find_mono_root_dir(bits) if not mono_root: - raise RuntimeError('Mono installation directory not found') + raise RuntimeError("Mono installation directory not found; specify one manually with the 'mono_prefix' SCons parameter") print('Found Mono root directory: ' + mono_root) @@ -113,21 +128,18 @@ def configure(env, env_mono): if not mono_dll_name: raise RuntimeError('Could not find mono shared library in: ' + mono_bin_path) - copy_file(mono_bin_path, 'bin', mono_dll_name + '.dll') + copy_file(mono_bin_path, '#bin', mono_dll_name + '.dll') else: is_apple = (sys.platform == 'darwin' or "osxcross" in env) sharedlib_ext = '.dylib' if is_apple else '.so' - mono_root = '' + mono_root = mono_prefix mono_lib_path = '' + mono_so_name = '' - if bits == '32': - if os.getenv('MONO32_PREFIX'): - mono_root = os.getenv('MONO32_PREFIX') - else: - if os.getenv('MONO64_PREFIX'): - mono_root = os.getenv('MONO64_PREFIX') + if not mono_root and is_android: + raise RuntimeError("Mono installation directory not found; specify one manually with the 'mono_prefix' SCons parameter") if not mono_root and is_apple: # Try with some known directories under OSX @@ -142,7 +154,8 @@ def configure(env, env_mono): if not mono_root and mono_static: mono_root = pkgconfig_try_find_mono_root(mono_lib_names, sharedlib_ext) if not mono_root: - raise RuntimeError('Building with mono_static=yes, but failed to find the mono prefix with pkg-config. Specify one manually') + raise RuntimeError("Building with mono_static=yes, but failed to find the mono prefix with pkg-config; " + \ + "specify one manually with the 'mono_prefix' SCons parameter") if mono_root: print('Found Mono root directory: ' + mono_root) @@ -174,6 +187,8 @@ def configure(env, env_mono): if is_apple: env.Append(LIBS=['iconv', 'pthread']) + elif is_android: + env.Append(LIBS=['m', 'dl']) else: env.Append(LIBS=['m', 'rt', 'dl', 'pthread']) @@ -183,7 +198,7 @@ def configure(env, env_mono): if not mono_so_name: raise RuntimeError('Could not find mono shared library in: ' + mono_lib_path) - copy_file(mono_lib_path, 'bin', 'lib' + mono_so_name + sharedlib_ext) + copy_file(mono_lib_path, '#bin', 'lib' + mono_so_name + sharedlib_ext) else: assert not mono_static @@ -196,9 +211,6 @@ def configure(env, env_mono): env.ParseConfig('pkg-config monosgen-2 --libs') env_mono.ParseConfig('pkg-config monosgen-2 --cflags') - mono_lib_path = '' - mono_so_name = '' - tmpenv = Environment() tmpenv.AppendENVPath('PKG_CONFIG_PATH', os.getenv('PKG_CONFIG_PATH')) tmpenv.ParseConfig('pkg-config monosgen-2 --libs-only-L') @@ -213,11 +225,13 @@ def configure(env, env_mono): if not mono_so_name: raise RuntimeError('Could not find mono shared library in: ' + str(tmpenv['LIBPATH'])) - copy_file(mono_lib_path, 'bin', 'lib' + mono_so_name + sharedlib_ext) + if not mono_static: + libs_output_dir = get_android_out_dir(env) if is_android else '#bin' + copy_file(mono_lib_path, libs_output_dir, 'lib' + mono_so_name + sharedlib_ext) env.Append(LINKFLAGS='-rdynamic') - if not tools_enabled: + if not tools_enabled and not is_android: if not mono_root: mono_root = subprocess.check_output(['pkg-config', 'mono-2', '--variable=prefix']).decode('utf8').strip() @@ -241,7 +255,7 @@ def make_template_dir(env, mono_root): template_dir_name = '' - if platform in ['windows', 'osx', 'x11']: + if platform in ['windows', 'osx', 'x11', 'android']: template_dir_name = 'data.mono.%s.%s.%s' % (platform, env['bits'], target) else: assert False @@ -256,12 +270,13 @@ def make_template_dir(env, mono_root): # Copy etc/mono/ - template_mono_config_dir = os.path.join(template_mono_root_dir, 'etc', 'mono') - copy_mono_etc_dir(mono_root, template_mono_config_dir, env['platform']) + if platform != 'android': + template_mono_config_dir = os.path.join(template_mono_root_dir, 'etc', 'mono') + copy_mono_etc_dir(mono_root, template_mono_config_dir, env['platform']) # Copy the required shared libraries - copy_mono_shared_libs(mono_root, template_mono_root_dir, env['platform']) + copy_mono_shared_libs(env, mono_root, template_mono_root_dir) def copy_mono_root_files(env, mono_root): @@ -285,7 +300,7 @@ def copy_mono_root_files(env, mono_root): # Copy the required shared libraries - copy_mono_shared_libs(mono_root, editor_mono_root_dir, env['platform']) + copy_mono_shared_libs(env, mono_root, editor_mono_root_dir) # Copy framework assemblies @@ -332,39 +347,55 @@ def copy_mono_etc_dir(mono_root, target_mono_config_dir, platform): copy_tree(os.path.join(mono_etc_dir, '2.0'), os.path.join(target_mono_config_dir, '2.0')) copy_tree(os.path.join(mono_etc_dir, '4.0'), os.path.join(target_mono_config_dir, '4.0')) copy_tree(os.path.join(mono_etc_dir, '4.5'), os.path.join(target_mono_config_dir, '4.5')) - copy_tree(os.path.join(mono_etc_dir, 'mconfig'), os.path.join(target_mono_config_dir, 'mconfig')) + if os.path.isdir(os.path.join(mono_etc_dir, 'mconfig')): + copy_tree(os.path.join(mono_etc_dir, 'mconfig'), os.path.join(target_mono_config_dir, 'mconfig')) for file in glob(os.path.join(mono_etc_dir, '*')): if os.path.isfile(file): copy(file, target_mono_config_dir) -def copy_mono_shared_libs(mono_root, target_mono_root_dir, platform): +def copy_mono_shared_libs(env, mono_root, target_mono_root_dir): from shutil import copy + def copy_if_exists(src, dst): + if os.path.isfile(src): + copy(src, dst) + + platform = env['platform'] + if platform == 'windows': target_mono_bin_dir = os.path.join(target_mono_root_dir, 'bin') if not os.path.isdir(target_mono_bin_dir): os.makedirs(target_mono_bin_dir) - copy(os.path.join(mono_root, 'bin', 'MonoPosixHelper.dll'), os.path.join(target_mono_bin_dir, 'MonoPosixHelper.dll')) + copy(os.path.join(mono_root, 'bin', 'MonoPosixHelper.dll'), target_mono_bin_dir) else: - target_mono_lib_dir = os.path.join(target_mono_root_dir, 'lib') + target_mono_lib_dir = get_android_out_dir(env) if platform == 'android' else os.path.join(target_mono_root_dir, 'lib') if not os.path.isdir(target_mono_lib_dir): os.makedirs(target_mono_lib_dir) if platform == 'osx': - copy(os.path.join(mono_root, 'lib', 'libMonoPosixHelper.dylib'), os.path.join(target_mono_lib_dir, 'libMonoPosixHelper.dylib')) - elif platform == 'x11': - copy(os.path.join(mono_root, 'lib', 'libmono-btls-shared.so'), os.path.join(target_mono_lib_dir, 'libmono-btls-shared.so')) - copy(os.path.join(mono_root, 'lib', 'libMonoPosixHelper.so'), os.path.join(target_mono_lib_dir, 'libMonoPosixHelper.so')) + # TODO: Make sure nothing is missing + copy(os.path.join(mono_root, 'lib', 'libMonoPosixHelper.dylib'), target_mono_lib_dir) + elif platform == 'x11' or platform == 'android': + lib_file_names = [lib_name + '.so' for lib_name in [ + 'libmono-btls-shared', 'libmono-ee-interp', 'libmono-native', 'libMonoPosixHelper', + 'libmono-profiler-aot', 'libmono-profiler-coverage', 'libmono-profiler-log', 'libMonoSupportW' + ]] + + for lib_file_name in lib_file_names: + copy_if_exists(os.path.join(mono_root, 'lib', lib_file_name), target_mono_lib_dir) def configure_for_mono_version(env, mono_version): if mono_version is None: - raise RuntimeError('Mono JIT compiler version not found') + if os.getenv('MONO_VERSION'): + mono_version = os.getenv('MONO_VERSION') + else: + raise RuntimeError("Mono JIT compiler version not found; specify one manually with the 'MONO_VERSION' environment variable") print('Found Mono JIT compiler version: ' + str(mono_version)) if mono_version >= LooseVersion('5.12.0'): env.Append(CPPFLAGS=['-DHAS_PENDING_EXCEPTIONS']) diff --git a/modules/mono/build_scripts/patches/fix-mono-android-tkill.diff b/modules/mono/build_scripts/patches/fix-mono-android-tkill.diff new file mode 100644 index 0000000000..05f8dcadcc --- /dev/null +++ b/modules/mono/build_scripts/patches/fix-mono-android-tkill.diff @@ -0,0 +1,70 @@ +diff --git a/libgc/include/private/gcconfig.h b/libgc/include/private/gcconfig.h +index e2bdf13ac3e..f962200ba4e 100644 +--- a/libgc/include/private/gcconfig.h ++++ b/libgc/include/private/gcconfig.h +@@ -2255,6 +2255,14 @@ + # define GETPAGESIZE() getpagesize() + # endif + ++#if defined(HOST_ANDROID) && !(__ANDROID_API__ >= 23) \ ++ && ((defined(MIPS) && (CPP_WORDSZ == 32)) \ ++ || defined(ARM32) || defined(I386) /* but not x32 */) ++ /* tkill() exists only on arm32/mips(32)/x86. */ ++ /* NDK r11+ deprecates tkill() but keeps it for Mono clients. */ ++# define USE_TKILL_ON_ANDROID ++#endif ++ + # if defined(SUNOS5) || defined(DRSNX) || defined(UTS4) + /* OS has SVR4 generic features. Probably others also qualify. */ + # define SVR4 +diff --git a/libgc/pthread_stop_world.c b/libgc/pthread_stop_world.c +index f93ce26b562..4a49a6d578c 100644 +--- a/libgc/pthread_stop_world.c ++++ b/libgc/pthread_stop_world.c +@@ -336,7 +336,7 @@ void GC_push_all_stacks() + pthread_t GC_stopping_thread; + int GC_stopping_pid; + +-#ifdef HOST_ANDROID ++#ifdef USE_TKILL_ON_ANDROID + static + int android_thread_kill(pid_t tid, int sig) + { +diff --git a/mono/metadata/threads.c b/mono/metadata/threads.c +index ad9b8823f8f..3542b32b540 100644 +--- a/mono/metadata/threads.c ++++ b/mono/metadata/threads.c +@@ -77,8 +77,12 @@ mono_native_thread_join_handle (HANDLE thread_handle, gboolean close_handle); + #include <zircon/syscalls.h> + #endif + +-#if defined(HOST_ANDROID) && !defined(TARGET_ARM64) && !defined(TARGET_AMD64) +-#define USE_TKILL_ON_ANDROID 1 ++#if defined(HOST_ANDROID) && !(__ANDROID_API__ >= 23) \ ++ && ((defined(MIPS) && (CPP_WORDSZ == 32)) \ ++ || defined(ARM32) || defined(I386) /* but not x32 */) ++ /* tkill() exists only on arm32/mips(32)/x86. */ ++ /* NDK r11+ deprecates tkill() but keeps it for Mono clients. */ ++# define USE_TKILL_ON_ANDROID + #endif + + #ifdef HOST_ANDROID +diff --git a/mono/utils/mono-threads-posix.c b/mono/utils/mono-threads-posix.c +index 3e4bf93de5f..79c9f731fe7 100644 +--- a/mono/utils/mono-threads-posix.c ++++ b/mono/utils/mono-threads-posix.c +@@ -31,8 +31,12 @@ + + #include <errno.h> + +-#if defined(HOST_ANDROID) && !defined(TARGET_ARM64) && !defined(TARGET_AMD64) +-#define USE_TKILL_ON_ANDROID 1 ++#if defined(HOST_ANDROID) && !(__ANDROID_API__ >= 23) \ ++ && ((defined(MIPS) && (CPP_WORDSZ == 32)) \ ++ || defined(ARM32) || defined(I386) /* but not x32 */) ++ /* tkill() exists only on arm32/mips(32)/x86. */ ++ /* NDK r11+ deprecates tkill() but keeps it for Mono clients. */ ++# define USE_TKILL_ON_ANDROID + #endif + + #ifdef USE_TKILL_ON_ANDROID diff --git a/modules/mono/config.py b/modules/mono/config.py index 3b2e96765e..9adf4ee6e5 100644 --- a/modules/mono/config.py +++ b/modules/mono/config.py @@ -8,6 +8,16 @@ def configure(env): env.use_ptrcall = True env.add_module_version_string('mono') + from SCons.Script import BoolVariable, PathVariable, Variables + + envvars = Variables() + envvars.Add(PathVariable('mono_prefix', 'Path to the mono installation directory for the target platform and architecture', '', PathVariable.PathAccept)) + envvars.Add(BoolVariable('mono_static', 'Statically link mono', False)) + envvars.Add(BoolVariable('mono_glue', 'Build with the mono glue sources', True)) + envvars.Add(BoolVariable('copy_mono_root', 'Make a copy of the mono installation directory to bundle with the editor', False)) + envvars.Add(BoolVariable('xbuild_fallback', 'If MSBuild is not found, fallback to xbuild', False)) + envvars.Update(env) + def get_doc_classes(): return [ diff --git a/modules/mono/csharp_script.cpp b/modules/mono/csharp_script.cpp index bfbd6ca80e..72199281ff 100644 --- a/modules/mono/csharp_script.cpp +++ b/modules/mono/csharp_script.cpp @@ -1855,6 +1855,34 @@ void CSharpInstance::_call_notification(int p_notification) { } } +String CSharpInstance::to_string(bool *r_valid) { + MonoObject *mono_object = get_mono_object(); + + if (mono_object == NULL) { + if (r_valid) + *r_valid = false; + return String(); + } + + MonoException *exc = NULL; + MonoString *result = GDMonoUtils::object_to_string(mono_object, &exc); + + if (exc) { + GDMonoUtils::set_pending_exception(exc); + if (r_valid) + *r_valid = false; + return String(); + } + + if (result == NULL) { + if (r_valid) + *r_valid = false; + return String(); + } + + return GDMonoMarshal::mono_string_to_godot(result); +} + Ref<Script> CSharpInstance::get_script() const { return script; diff --git a/modules/mono/csharp_script.h b/modules/mono/csharp_script.h index 298d55c4df..7b16b5609e 100644 --- a/modules/mono/csharp_script.h +++ b/modules/mono/csharp_script.h @@ -261,6 +261,8 @@ public: virtual void notification(int p_notification); void _call_notification(int p_notification); + virtual String to_string(bool *r_valid); + virtual Ref<Script> get_script() const; virtual ScriptLanguage *get_language(); @@ -378,7 +380,6 @@ public: virtual bool supports_builtin_mode() const; /* TODO? */ virtual int find_function(const String &p_function, const String &p_code) const { return -1; } virtual String make_function(const String &p_class, const String &p_name, const PoolStringArray &p_args) const; - /* TODO? */ Error complete_code(const String &p_code, const String &p_base_path, Object *p_owner, List<String> *r_options, String &r_call_hint) { return ERR_UNAVAILABLE; } virtual String _get_indentation() const; /* TODO? */ virtual void auto_indent_code(String &p_code, int p_from_line, int p_to_line) const {} /* TODO */ virtual void add_global_constant(const StringName &p_variable, const Variant &p_value) {} @@ -439,7 +440,6 @@ public: }; class ResourceFormatLoaderCSharpScript : public ResourceFormatLoader { - GDCLASS(ResourceFormatLoaderCSharpScript, ResourceFormatLoader) public: virtual RES load(const String &p_path, const String &p_original_path = "", Error *r_error = NULL); virtual void get_recognized_extensions(List<String> *p_extensions) const; @@ -448,7 +448,6 @@ public: }; class ResourceFormatSaverCSharpScript : public ResourceFormatSaver { - GDCLASS(ResourceFormatSaverCSharpScript, ResourceFormatSaver) public: virtual Error save(const String &p_path, const RES &p_resource, uint32_t p_flags = 0); virtual void get_recognized_extensions(const RES &p_resource, List<String> *p_extensions) const; diff --git a/modules/mono/editor/GodotSharpTools/Build/BuildSystem.cs b/modules/mono/editor/GodotSharpTools/Build/BuildSystem.cs index 967e3bcc19..e5044feb75 100644 --- a/modules/mono/editor/GodotSharpTools/Build/BuildSystem.cs +++ b/modules/mono/editor/GodotSharpTools/Build/BuildSystem.cs @@ -186,7 +186,7 @@ namespace GodotSharpTools.Build private string BuildArguments(string loggerAssemblyPath, string loggerOutputDir, List<string> customProperties) { - string arguments = string.Format(@"""{0}"" /v:normal /t:Build ""/p:{1}"" ""/l:{2},{3};{4}""", + string arguments = string.Format(@"""{0}"" /v:normal /t:Rebuild ""/p:{1}"" ""/l:{2},{3};{4}""", solution, "Configuration=" + config, typeof(GodotBuildLogger).FullName, @@ -196,7 +196,7 @@ namespace GodotSharpTools.Build foreach (string customProperty in customProperties) { - arguments += " \"/p:" + customProperty + "\""; + arguments += " /p:" + customProperty; } return arguments; diff --git a/modules/mono/editor/GodotSharpTools/Editor/GodotSharpExport.cs b/modules/mono/editor/GodotSharpTools/Editor/GodotSharpExport.cs index e45dd2025b..44a43f0ddd 100644 --- a/modules/mono/editor/GodotSharpTools/Editor/GodotSharpExport.cs +++ b/modules/mono/editor/GodotSharpTools/Editor/GodotSharpExport.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.IO; +using System.Linq; using System.Runtime.CompilerServices; namespace GodotSharpTools.Editor @@ -62,7 +63,7 @@ namespace GodotSharpTools.Editor { // OSX export templates are contained in a zip, so we place // our custom template inside it and let Godot do the rest. - return !featureSet.Contains("OSX"); + return !featureSet.Any(f => new[] {"OSX", "Android"}.Contains(f)); } [MethodImpl(MethodImplOptions.InternalCall)] diff --git a/modules/mono/editor/GodotSharpTools/Project/ProjectGenerator.cs b/modules/mono/editor/GodotSharpTools/Project/ProjectGenerator.cs index 89279c69a6..f4ab11a222 100644 --- a/modules/mono/editor/GodotSharpTools/Project/ProjectGenerator.cs +++ b/modules/mono/editor/GodotSharpTools/Project/ProjectGenerator.cs @@ -80,7 +80,7 @@ namespace GodotSharpTools.Project toolsGroup.AddProperty("DebugSymbols", "true"); toolsGroup.AddProperty("DebugType", "portable"); toolsGroup.AddProperty("Optimize", "false"); - toolsGroup.AddProperty("DefineConstants", "DEBUG;TOOLS;"); + toolsGroup.AddProperty("DefineConstants", "$(GodotDefineConstants);GODOT;DEBUG;TOOLS;"); toolsGroup.AddProperty("ErrorReport", "prompt"); toolsGroup.AddProperty("WarningLevel", "4"); toolsGroup.AddProperty("ConsolePause", "false"); @@ -161,7 +161,7 @@ namespace GodotSharpTools.Project debugGroup.AddProperty("DebugSymbols", "true"); debugGroup.AddProperty("DebugType", "portable"); debugGroup.AddProperty("Optimize", "false"); - debugGroup.AddProperty("DefineConstants", "DEBUG;"); + debugGroup.AddProperty("DefineConstants", "$(GodotDefineConstants);GODOT;DEBUG;"); debugGroup.AddProperty("ErrorReport", "prompt"); debugGroup.AddProperty("WarningLevel", "4"); debugGroup.AddProperty("ConsolePause", "false"); @@ -170,6 +170,7 @@ namespace GodotSharpTools.Project releaseGroup.Condition = " '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "; releaseGroup.AddProperty("DebugType", "portable"); releaseGroup.AddProperty("Optimize", "true"); + releaseGroup.AddProperty("DefineConstants", "$(GodotDefineConstants);GODOT;"); releaseGroup.AddProperty("ErrorReport", "prompt"); releaseGroup.AddProperty("WarningLevel", "4"); releaseGroup.AddProperty("ConsolePause", "false"); diff --git a/modules/mono/editor/bindings_generator.cpp b/modules/mono/editor/bindings_generator.cpp index a408716641..2d618f7891 100644 --- a/modules/mono/editor/bindings_generator.cpp +++ b/modules/mono/editor/bindings_generator.cpp @@ -2300,9 +2300,14 @@ void BindingsGenerator::_populate_object_type_interfaces() { if (method_info.name.empty()) continue; + String cname = method_info.name; + + if (blacklisted_methods.find(itype.cname) && blacklisted_methods[itype.cname].find(cname)) + continue; + MethodInterface imethod; imethod.name = method_info.name; - imethod.cname = imethod.name; + imethod.cname = cname; if (method_info.flags & METHOD_FLAG_VIRTUAL) imethod.is_virtual = true; @@ -2531,13 +2536,8 @@ void BindingsGenerator::_default_argument_from_variant(const Variant &p_val, Arg switch (p_val.get_type()) { case Variant::NIL: - if (ClassDB::class_exists(r_iarg.type.cname)) { - // Object type - r_iarg.default_argument = "null"; - } else { - // Variant - r_iarg.default_argument = "null"; - } + // Either Object type or Variant + r_iarg.default_argument = "null"; break; // Atomic types case Variant::BOOL: @@ -2975,6 +2975,13 @@ void BindingsGenerator::_populate_global_constants() { } } +void BindingsGenerator::_initialize_blacklisted_methods() { + + blacklisted_methods["Object"].push_back("to_string"); // there is already ToString + blacklisted_methods["Object"].push_back("_to_string"); // override ToString instead + blacklisted_methods["Object"].push_back("_init"); // never called in C# (TODO: implement it) +} + void BindingsGenerator::_log(const char *p_format, ...) { if (log_print_enabled) { @@ -2992,6 +2999,8 @@ void BindingsGenerator::_initialize() { enum_types.clear(); + _initialize_blacklisted_methods(); + _populate_object_type_interfaces(); _populate_builtin_type_interfaces(); diff --git a/modules/mono/editor/bindings_generator.h b/modules/mono/editor/bindings_generator.h index bdba28c267..ffc73a7e3e 100644 --- a/modules/mono/editor/bindings_generator.h +++ b/modules/mono/editor/bindings_generator.h @@ -491,6 +491,10 @@ class BindingsGenerator { List<InternalCall> core_custom_icalls; List<InternalCall> editor_custom_icalls; + Map<StringName, List<StringName> > blacklisted_methods; + + void _initialize_blacklisted_methods(); + struct NameCache { StringName type_void; StringName type_Array; diff --git a/modules/mono/editor/godotsharp_builds.cpp b/modules/mono/editor/godotsharp_builds.cpp index de3fd91223..a962d6df27 100644 --- a/modules/mono/editor/godotsharp_builds.cpp +++ b/modules/mono/editor/godotsharp_builds.cpp @@ -30,6 +30,7 @@ #include "godotsharp_builds.h" +#include "core/os/os.h" #include "core/vector.h" #include "main/main.h" @@ -351,7 +352,7 @@ bool GodotSharpBuilds::make_api_assembly(APIAssembly::Type p_api_type) { return true; } -bool GodotSharpBuilds::build_project_blocking(const String &p_config) { +bool GodotSharpBuilds::build_project_blocking(const String &p_config, const Vector<String> &p_godot_defines) { if (!FileAccess::exists(GodotSharpDirs::get_project_sln_path())) return true; // No solution to build @@ -366,6 +367,29 @@ bool GodotSharpBuilds::build_project_blocking(const String &p_config) { pr.step("Building project solution", 0); MonoBuildInfo build_info(GodotSharpDirs::get_project_sln_path(), p_config); + + // Add Godot defines +#ifdef WINDOWS_ENABLED + String constants = "GodotDefineConstants=\""; +#else + String constants = "GodotDefineConstants=\\\""; +#endif + + for (int i = 0; i < p_godot_defines.size(); i++) { + constants += "GODOT_" + p_godot_defines[i].to_upper().replace("-", "_").replace(" ", "_").replace(";", "_") + ";"; + } + +#ifdef REAL_T_IS_DOUBLE + constants += "GODOT_REAL_T_IS_DOUBLE;"; +#endif + +#ifdef WINDOWS_ENABLED + constants += "\""; +#else + constants += "\\\""; +#endif + build_info.custom_props.push_back(constants); + if (!GodotSharpBuilds::get_singleton()->build(build_info)) { GodotSharpBuilds::show_build_error_dialog("Failed to build project solution"); return false; @@ -393,7 +417,10 @@ bool GodotSharpBuilds::editor_build_callback() { ERR_FAIL_COND_V(copy_err != OK, false); } - return build_project_blocking("Tools"); + Vector<String> godot_defines; + godot_defines.push_back(OS::get_singleton()->get_name()); + godot_defines.push_back(sizeof(void *) == 4 ? "32" : "64"); + return build_project_blocking("Tools", godot_defines); } GodotSharpBuilds *GodotSharpBuilds::singleton = NULL; diff --git a/modules/mono/editor/godotsharp_builds.h b/modules/mono/editor/godotsharp_builds.h index 652d30538a..2e9050e12e 100644 --- a/modules/mono/editor/godotsharp_builds.h +++ b/modules/mono/editor/godotsharp_builds.h @@ -92,7 +92,7 @@ public: static bool make_api_assembly(APIAssembly::Type p_api_type); - static bool build_project_blocking(const String &p_config); + static bool build_project_blocking(const String &p_config, const Vector<String> &p_godot_defines); static bool editor_build_callback(); diff --git a/modules/mono/editor/godotsharp_export.cpp b/modules/mono/editor/godotsharp_export.cpp index ee5fed1a0c..126178125f 100644 --- a/modules/mono/editor/godotsharp_export.cpp +++ b/modules/mono/editor/godotsharp_export.cpp @@ -94,7 +94,12 @@ void GodotSharpExport::_export_begin(const Set<String> &p_features, bool p_debug ERR_FAIL_COND(!_add_file(scripts_metadata_path, scripts_metadata_path)); - ERR_FAIL_COND(!GodotSharpBuilds::build_project_blocking(build_config)); + // Turn export features into defines + Vector<String> godot_defines; + for (Set<String>::Element *E = p_features.front(); E; E = E->next()) { + godot_defines.push_back(E->get()); + } + ERR_FAIL_COND(!GodotSharpBuilds::build_project_blocking(build_config, godot_defines)); // Add dependency assemblies @@ -120,11 +125,21 @@ void GodotSharpExport::_export_begin(const Set<String> &p_features, bool p_debug bool load_success = GDMono::get_singleton()->load_assembly_from(project_dll_name, project_dll_src_path, &scripts_assembly, /* refonly: */ true); - ERR_EXPLAIN("Cannot load refonly assembly: " + project_dll_name); + ERR_EXPLAIN("Cannot load assembly (refonly): " + project_dll_name); ERR_FAIL_COND(!load_success); Vector<String> search_dirs; - GDMonoAssembly::fill_search_dirs(search_dirs, build_config); + String templates_dir = EditorSettings::get_singleton()->get_templates_dir().plus_file(VERSION_FULL_CONFIG); + String android_bcl_dir = templates_dir.plus_file("android-bcl"); + + String custom_lib_dir; + + if (p_features.find("Android") && DirAccess::exists(android_bcl_dir)) { + custom_lib_dir = android_bcl_dir; + } + + GDMonoAssembly::fill_search_dirs(search_dirs, build_config, custom_lib_dir); + Error depend_error = _get_assembly_dependencies(scripts_assembly, search_dirs, dependencies); ERR_FAIL_COND(depend_error != OK); } @@ -147,7 +162,7 @@ void GodotSharpExport::_export_begin(const Set<String> &p_features, bool p_debug int i = 0; for (const Set<String>::Element *E = p_features.front(); E; E = E->next()) { MonoString *boxed = GDMonoMarshal::mono_string_from_godot(E->get()); - mono_array_set(features, MonoString *, i, boxed); + mono_array_setref(features, i, boxed); i++; } @@ -229,8 +244,10 @@ Error GodotSharpExport::_get_assembly_dependencies(GDMonoAssembly *p_assembly, c r_dependencies.insert(ref_name, ref_assembly->get_path()); Error err = _get_assembly_dependencies(ref_assembly, p_search_dirs, r_dependencies); - if (err != OK) - return err; + if (err != OK) { + ERR_EXPLAIN("Cannot load one of the dependencies for the assembly: " + ref_name); + ERR_FAIL_V(err); + } } return OK; diff --git a/modules/mono/editor/mono_bottom_panel.cpp b/modules/mono/editor/mono_bottom_panel.cpp index 21ce9ca5c4..5d9e39b6c2 100644 --- a/modules/mono/editor/mono_bottom_panel.cpp +++ b/modules/mono/editor/mono_bottom_panel.cpp @@ -175,7 +175,10 @@ void MonoBottomPanel::_build_project_pressed() { ERR_FAIL_COND(copy_err != OK); } - bool build_success = GodotSharpBuilds::get_singleton()->build_project_blocking("Tools"); + Vector<String> godot_defines; + godot_defines.push_back(OS::get_singleton()->get_name()); + godot_defines.push_back((sizeof(void *) == 4 ? "32" : "64")); + bool build_success = GodotSharpBuilds::get_singleton()->build_project_blocking("Tools", godot_defines); if (build_success) { // Notify running game for hot-reload diff --git a/modules/mono/glue/Managed/Files/AABB.cs b/modules/mono/glue/Managed/Files/AABB.cs index 33b2b46712..a2ebbc0736 100644 --- a/modules/mono/glue/Managed/Files/AABB.cs +++ b/modules/mono/glue/Managed/Files/AABB.cs @@ -414,6 +414,21 @@ namespace Godot _position = position; _size = size; } + public AABB(Vector3 position, real_t width, real_t height, real_t depth) + { + _position = position; + _size = new Vector3(width, height, depth); + } + public AABB(real_t x, real_t y, real_t z, Vector3 size) + { + _position = new Vector3(x, y, z); + _size = size; + } + public AABB(real_t x, real_t y, real_t z, real_t width, real_t height, real_t depth) + { + _position = new Vector3(x, y, z); + _size = new Vector3(width, height, depth); + } public static bool operator ==(AABB left, AABB right) { diff --git a/modules/mono/glue/Managed/Files/Basis.cs b/modules/mono/glue/Managed/Files/Basis.cs index ac9576cebd..9cc31a0557 100644 --- a/modules/mono/glue/Managed/Files/Basis.cs +++ b/modules/mono/glue/Managed/Files/Basis.cs @@ -260,13 +260,13 @@ namespace Godot Vector3 euler; euler.z = 0.0f; - real_t mxy = m.Row1[2]; + real_t mzy = m.Row1[2]; - if (mxy < 1.0f) + if (mzy < 1.0f) { - if (mxy > -1.0f) + if (mzy > -1.0f) { - euler.x = Mathf.Asin(-mxy); + euler.x = Mathf.Asin(-mzy); euler.y = Mathf.Atan2(m.Row0[2], m.Row2[2]); euler.z = Mathf.Atan2(m.Row1[0], m.Row1[1]); } @@ -418,19 +418,11 @@ namespace Godot public Basis Scaled(Vector3 scale) { - var m = this; - - m.Row0[0] *= scale.x; - m.Row0[1] *= scale.x; - m.Row0[2] *= scale.x; - m.Row1[0] *= scale.y; - m.Row1[1] *= scale.y; - m.Row1[2] *= scale.y; - m.Row2[0] *= scale.z; - m.Row2[1] *= scale.z; - m.Row2[2] *= scale.z; - - return m; + var b = this; + b.Row0 *= scale.x; + b.Row1 *= scale.y; + b.Row2 *= scale.z; + return b; } public real_t Tdotx(Vector3 with) @@ -583,31 +575,29 @@ namespace Godot public Basis(Vector3 axis, real_t phi) { - var axis_sq = new Vector3(axis.x * axis.x, axis.y * axis.y, axis.z * axis.z); - + Vector3 axisSq = new Vector3(axis.x * axis.x, axis.y * axis.y, axis.z * axis.z); real_t cosine = Mathf.Cos(phi); + Row0.x = axisSq.x + cosine * (1.0f - axisSq.x); + Row1.y = axisSq.y + cosine * (1.0f - axisSq.y); + Row2.z = axisSq.z + cosine * (1.0f - axisSq.z); + real_t sine = Mathf.Sin(phi); + real_t t = 1.0f - cosine; - Row0 = new Vector3 - ( - axis_sq.x + cosine * (1.0f - axis_sq.x), - axis.x * axis.y * (1.0f - cosine) - axis.z * sine, - axis.z * axis.x * (1.0f - cosine) + axis.y * sine - ); + real_t xyzt = axis.x * axis.y * t; + real_t zyxs = axis.z * sine; + Row0.y = xyzt - zyxs; + Row1.x = xyzt + zyxs; - Row1 = new Vector3 - ( - axis.x * axis.y * (1.0f - cosine) + axis.z * sine, - axis_sq.y + cosine * (1.0f - axis_sq.y), - axis.y * axis.z * (1.0f - cosine) - axis.x * sine - ); + xyzt = axis.x * axis.z * t; + zyxs = axis.y * sine; + Row0.z = xyzt + zyxs; + Row2.x = xyzt - zyxs; - Row2 = new Vector3 - ( - axis.z * axis.x * (1.0f - cosine) - axis.y * sine, - axis.y * axis.z * (1.0f - cosine) + axis.x * sine, - axis_sq.z + cosine * (1.0f - axis_sq.z) - ); + xyzt = axis.y * axis.z * t; + zyxs = axis.x * sine; + Row1.z = xyzt - zyxs; + Row2.y = xyzt + zyxs; } public Basis(Vector3 column0, Vector3 column1, Vector3 column2) @@ -622,11 +612,12 @@ namespace Godot // We need to assign the struct fields here first so we can't do it that way... } - internal Basis(real_t xx, real_t xy, real_t xz, real_t yx, real_t yy, real_t yz, real_t zx, real_t zy, real_t zz) + // Arguments are named such that xy is equal to calling x.y + internal Basis(real_t xx, real_t yx, real_t zx, real_t xy, real_t yy, real_t zy, real_t xz, real_t yz, real_t zz) { - Row0 = new Vector3(xx, xy, xz); - Row1 = new Vector3(yx, yy, yz); - Row2 = new Vector3(zx, zy, zz); + Row0 = new Vector3(xx, yx, zx); + Row1 = new Vector3(xy, yy, zy); + Row2 = new Vector3(xz, yz, zz); } public static Basis operator *(Basis left, Basis right) diff --git a/modules/mono/glue/Managed/Files/Extensions/NodeExtensions.cs b/modules/mono/glue/Managed/Files/Extensions/NodeExtensions.cs index 366d89b1c2..5023725f17 100644 --- a/modules/mono/glue/Managed/Files/Extensions/NodeExtensions.cs +++ b/modules/mono/glue/Managed/Files/Extensions/NodeExtensions.cs @@ -24,12 +24,12 @@ namespace Godot public T GetOwner<T>() where T : class { - return (T)(object)GetOwner(); + return (T)(object)Owner; } public T GetOwnerOrNull<T>() where T : class { - return GetOwner() as T; + return Owner as T; } public T GetParent<T>() where T : class diff --git a/modules/mono/glue/Managed/Files/MarshalUtils.cs b/modules/mono/glue/Managed/Files/MarshalUtils.cs index 730a1e1585..a1d63a62ef 100644 --- a/modules/mono/glue/Managed/Files/MarshalUtils.cs +++ b/modules/mono/glue/Managed/Files/MarshalUtils.cs @@ -23,7 +23,7 @@ namespace Godot /// <summary> /// Returns <see langword="true"/> if the generic type definition of <paramref name="type"/> - /// is <see cref="Godot.Collections.Dictionary{T}"/>; otherwise returns <see langword="false"/>. + /// is <see cref="Godot.Collections.Dictionary{TKey, TValue}"/>; otherwise returns <see langword="false"/>. /// </summary> /// <exception cref="System.InvalidOperationException"> /// <paramref name="type"/> is not a generic type. That is, IsGenericType returns false. @@ -45,6 +45,44 @@ namespace Godot valueType = genericArgs[1]; } + static bool GenericIEnumerableIsAssignableFromType(Type type) + { + if (type.IsGenericType && type.GetGenericTypeDefinition() == typeof(IEnumerable<>)) + return true; + + foreach (var interfaceType in type.GetInterfaces()) + { + if (interfaceType.IsGenericType && interfaceType.GetGenericTypeDefinition() == typeof(IEnumerable<>)) + return true; + } + + Type baseType = type.BaseType; + + if (baseType == null) + return false; + + return GenericIEnumerableIsAssignableFromType(baseType); + } + + static bool GenericIDictionaryIsAssignableFromType(Type type) + { + if (type.IsGenericType && type.GetGenericTypeDefinition() == typeof(IDictionary<,>)) + return true; + + foreach (var interfaceType in type.GetInterfaces()) + { + if (interfaceType.IsGenericType && interfaceType.GetGenericTypeDefinition() == typeof(IDictionary<,>)) + return true; + } + + Type baseType = type.BaseType; + + if (baseType == null) + return false; + + return GenericIDictionaryIsAssignableFromType(baseType); + } + static bool GenericIEnumerableIsAssignableFromType(Type type, out Type elementType) { if (type.IsGenericType && type.GetGenericTypeDefinition() == typeof(IEnumerable<>)) diff --git a/modules/mono/glue/Managed/Files/Mathf.cs b/modules/mono/glue/Managed/Files/Mathf.cs index ff26c7fddf..2d8c63fe7f 100644 --- a/modules/mono/glue/Managed/Files/Mathf.cs +++ b/modules/mono/glue/Managed/Files/Mathf.cs @@ -44,9 +44,9 @@ namespace Godot return (real_t)Math.Atan(s); } - public static real_t Atan2(real_t x, real_t y) + public static real_t Atan2(real_t y, real_t x) { - return (real_t)Math.Atan2(x, y); + return (real_t)Math.Atan2(y, x); } public static Vector2 Cartesian2Polar(real_t x, real_t y) @@ -210,6 +210,11 @@ namespace Godot return a < b ? a : b; } + public static real_t MoveToward(real_t from, real_t to, real_t delta) + { + return Abs(to - from) <= delta ? to : from + Sign(to - from) * delta; + } + public static int NearestPo2(int value) { value--; diff --git a/modules/mono/glue/Managed/Files/Transform2D.cs b/modules/mono/glue/Managed/Files/Transform2D.cs index f7bb41d523..33ff286769 100644 --- a/modules/mono/glue/Managed/Files/Transform2D.cs +++ b/modules/mono/glue/Managed/Files/Transform2D.cs @@ -298,6 +298,7 @@ namespace Godot origin = originPos; } + // Arguments are named such that xy is equal to calling x.y public Transform2D(real_t xx, real_t xy, real_t yx, real_t yy, real_t ox, real_t oy) { x = new Vector2(xx, xy); diff --git a/modules/mono/glue/Managed/Files/Vector2.cs b/modules/mono/glue/Managed/Files/Vector2.cs index bb1950e1a8..a7f26283a7 100644 --- a/modules/mono/glue/Managed/Files/Vector2.cs +++ b/modules/mono/glue/Managed/Files/Vector2.cs @@ -186,6 +186,14 @@ namespace Godot return res; } + public Vector2 MoveToward(Vector2 to, real_t delta) + { + var v = this; + var vd = to - v; + var len = vd.Length(); + return len <= delta || len < Mathf.Epsilon ? to : v + vd / len * delta; + } + public Vector2 Normalized() { var v = this; diff --git a/modules/mono/glue/Managed/Files/Vector3.cs b/modules/mono/glue/Managed/Files/Vector3.cs index 283cb6341a..16803ae55c 100644 --- a/modules/mono/glue/Managed/Files/Vector3.cs +++ b/modules/mono/glue/Managed/Files/Vector3.cs @@ -190,6 +190,14 @@ namespace Godot ); } + public Vector3 MoveToward(Vector3 to, real_t delta) + { + var v = this; + var vd = to - v; + var len = vd.Length(); + return len <= delta || len < Mathf.Epsilon ? to : v + vd / len * delta; + } + public Axis MaxAxis() { return x < y ? (y < z ? Axis.Z : Axis.Y) : (x < z ? Axis.Z : Axis.X); diff --git a/modules/mono/glue/Managed/IgnoredFiles/Node.cs b/modules/mono/glue/Managed/IgnoredFiles/Node.cs index 99ba0f827a..cff61b1e0b 100644 --- a/modules/mono/glue/Managed/IgnoredFiles/Node.cs +++ b/modules/mono/glue/Managed/IgnoredFiles/Node.cs @@ -15,9 +15,10 @@ namespace Godot throw new NotImplementedException(); } - public Node GetOwner() + public Node Owner { - throw new NotImplementedException(); + get => throw new NotImplementedException(); + set => throw new NotImplementedException(); } public Node GetParent() diff --git a/modules/mono/glue/base_object_glue.cpp b/modules/mono/glue/base_object_glue.cpp index 7385014a53..75b2dfce9a 100644 --- a/modules/mono/glue/base_object_glue.cpp +++ b/modules/mono/glue/base_object_glue.cpp @@ -166,7 +166,7 @@ MonoArray *godot_icall_DynamicGodotObject_SetMemberList(Object *p_ptr) { int i = 0; for (List<PropertyInfo>::Element *E = property_list.front(); E; E = E->next()) { MonoString *boxed = GDMonoMarshal::mono_string_from_godot(E->get().name); - mono_array_set(result, MonoString *, i, boxed); + mono_array_setref(result, i, boxed); i++; } diff --git a/modules/mono/glue/collections_glue.cpp b/modules/mono/glue/collections_glue.cpp index 4aef5684fd..47239f1260 100644 --- a/modules/mono/glue/collections_glue.cpp +++ b/modules/mono/glue/collections_glue.cpp @@ -162,7 +162,7 @@ MonoObject *godot_icall_Dictionary_GetValue(Dictionary *ptr, MonoObject *key) { #ifdef DEBUG_ENABLED CRASH_COND(!exc); #endif - GDMonoUtils::runtime_object_init(exc); + GDMonoUtils::runtime_object_init(exc, CACHED_CLASS(KeyNotFoundException)); GDMonoUtils::set_pending_exception((MonoException *)exc); return NULL; } @@ -176,7 +176,7 @@ MonoObject *godot_icall_Dictionary_GetValue_Generic(Dictionary *ptr, MonoObject #ifdef DEBUG_ENABLED CRASH_COND(!exc); #endif - GDMonoUtils::runtime_object_init(exc); + GDMonoUtils::runtime_object_init(exc, CACHED_CLASS(KeyNotFoundException)); GDMonoUtils::set_pending_exception((MonoException *)exc); return NULL; } diff --git a/modules/mono/mono_gd/gd_mono.cpp b/modules/mono/mono_gd/gd_mono.cpp index 19e49d29f9..7699e0d0cd 100644 --- a/modules/mono/mono_gd/gd_mono.cpp +++ b/modules/mono/mono_gd/gd_mono.cpp @@ -251,17 +251,19 @@ void GDMono::initialize() { String bundled_config_dir = GodotSharpDirs::get_data_mono_etc_dir(); #ifdef TOOLS_ENABLED - if (DirAccess::exists(bundled_assembly_rootdir) && DirAccess::exists(bundled_config_dir)) { + if (DirAccess::exists(bundled_assembly_rootdir)) { assembly_rootdir = bundled_assembly_rootdir; + } + + if (DirAccess::exists(bundled_config_dir)) { config_dir = bundled_config_dir; } #ifdef WINDOWS_ENABLED if (assembly_rootdir.empty() || config_dir.empty()) { + ERR_PRINT("Cannot find Mono in the registry"); // Assertion: if they are not set, then they weren't found in the registry CRASH_COND(mono_reg_info.assembly_dir.length() > 0 || mono_reg_info.config_dir.length() > 0); - - ERR_PRINT("Cannot find Mono in the registry"); } #endif // WINDOWS_ENABLED @@ -807,6 +809,8 @@ Error GDMono::_unload_scripts_domain() { mono_gc_collect(mono_gc_max_generation()); + GDMonoUtils::clear_godot_api_cache(); + _domain_assemblies_cleanup(mono_domain_get_id(scripts_domain)); core_api_assembly = NULL; @@ -926,6 +930,7 @@ Error GDMono::reload_scripts_domain() { Error GDMono::finalize_and_unload_domain(MonoDomain *p_domain) { CRASH_COND(p_domain == NULL); + CRASH_COND(p_domain == SCRIPTS_DOMAIN); // Should use _unload_scripts_domain() instead String domain_name = mono_domain_get_friendly_name(p_domain); @@ -1078,8 +1083,6 @@ GDMono::~GDMono() { } assemblies.clear(); - GDMonoUtils::clear_cache(); - print_verbose("Mono: Runtime cleanup..."); mono_jit_cleanup(root_domain); diff --git a/modules/mono/mono_gd/gd_mono_assembly.cpp b/modules/mono/mono_gd/gd_mono_assembly.cpp index 8fec28b186..f1f0015ac9 100644 --- a/modules/mono/mono_gd/gd_mono_assembly.cpp +++ b/modules/mono/mono_gd/gd_mono_assembly.cpp @@ -46,11 +46,17 @@ bool GDMonoAssembly::in_preload = false; Vector<String> GDMonoAssembly::search_dirs; -void GDMonoAssembly::fill_search_dirs(Vector<String> &r_search_dirs, const String &p_custom_config) { +void GDMonoAssembly::fill_search_dirs(Vector<String> &r_search_dirs, const String &p_custom_config, const String &p_custom_bcl_dir) { - const char *rootdir = mono_assembly_getrootdir(); - if (rootdir) { - String framework_dir = String::utf8(rootdir).plus_file("mono").plus_file("4.5"); + String framework_dir; + + if (!p_custom_bcl_dir.empty()) { + framework_dir = p_custom_bcl_dir; + } else if (mono_assembly_getrootdir()) { + framework_dir = String::utf8(mono_assembly_getrootdir()).plus_file("mono").plus_file("4.5"); + } + + if (!framework_dir.empty()) { r_search_dirs.push_back(framework_dir); r_search_dirs.push_back(framework_dir.plus_file("Facades")); } diff --git a/modules/mono/mono_gd/gd_mono_assembly.h b/modules/mono/mono_gd/gd_mono_assembly.h index 32432af37d..39749dfc1d 100644 --- a/modules/mono/mono_gd/gd_mono_assembly.h +++ b/modules/mono/mono_gd/gd_mono_assembly.h @@ -122,7 +122,7 @@ public: GDMonoClass *get_object_derived_class(const StringName &p_class); - static void fill_search_dirs(Vector<String> &r_search_dirs, const String &p_custom_config = String()); + static void fill_search_dirs(Vector<String> &r_search_dirs, const String &p_custom_config = String(), const String &p_custom_bcl_dir = String()); static GDMonoAssembly *load_from(const String &p_name, const String &p_path, bool p_refonly); diff --git a/modules/mono/mono_gd/gd_mono_marshal.cpp b/modules/mono/mono_gd/gd_mono_marshal.cpp index 461dcf3ec0..87157ed233 100644 --- a/modules/mono/mono_gd/gd_mono_marshal.cpp +++ b/modules/mono/mono_gd/gd_mono_marshal.cpp @@ -161,8 +161,7 @@ Variant::Type managed_to_variant_type(const ManagedType &p_type) { MonoReflectionType *reftype = mono_type_get_object(SCRIPTS_DOMAIN, type_class->get_mono_type()); - MonoReflectionType *key_reftype, *value_reftype; - if (GDMonoUtils::Marshal::generic_idictionary_is_assignable_from(reftype, &key_reftype, &value_reftype)) { + if (GDMonoUtils::Marshal::generic_idictionary_is_assignable_from(reftype)) { return Variant::DICTIONARY; } @@ -170,8 +169,7 @@ Variant::Type managed_to_variant_type(const ManagedType &p_type) { return Variant::DICTIONARY; } - MonoReflectionType *elem_reftype; - if (GDMonoUtils::Marshal::generic_ienumerable_is_assignable_from(reftype, &elem_reftype)) { + if (GDMonoUtils::Marshal::generic_ienumerable_is_assignable_from(reftype)) { return Variant::ARRAY; } @@ -193,16 +191,14 @@ Variant::Type managed_to_variant_type(const ManagedType &p_type) { // The order in which we check the following interfaces is very important (dictionaries and generics first) - MonoReflectionType *key_reftype, *value_reftype; - if (GDMonoUtils::Marshal::generic_idictionary_is_assignable_from(reftype, &key_reftype, &value_reftype)) + if (GDMonoUtils::Marshal::generic_idictionary_is_assignable_from(reftype)) return Variant::DICTIONARY; if (p_type.type_class->implements_interface(CACHED_CLASS(System_Collections_IDictionary))) { return Variant::DICTIONARY; } - MonoReflectionType *elem_reftype; - if (GDMonoUtils::Marshal::generic_ienumerable_is_assignable_from(reftype, &elem_reftype)) + if (GDMonoUtils::Marshal::generic_ienumerable_is_assignable_from(reftype)) return Variant::ARRAY; if (p_type.type_class->implements_interface(CACHED_CLASS(System_Collections_IEnumerable))) { @@ -850,8 +846,7 @@ Variant mono_object_to_variant(MonoObject *p_obj) { MonoReflectionType *reftype = mono_type_get_object(SCRIPTS_DOMAIN, type_class->get_mono_type()); - MonoReflectionType *key_reftype, *value_reftype; - if (GDMonoUtils::Marshal::generic_idictionary_is_assignable_from(reftype, &key_reftype, &value_reftype)) { + if (GDMonoUtils::Marshal::generic_idictionary_is_assignable_from(reftype)) { return GDMonoUtils::Marshal::generic_idictionary_to_dictionary(p_obj); } @@ -859,8 +854,7 @@ Variant mono_object_to_variant(MonoObject *p_obj) { return GDMonoUtils::Marshal::idictionary_to_dictionary(p_obj); } - MonoReflectionType *elem_reftype; - if (GDMonoUtils::Marshal::generic_ienumerable_is_assignable_from(reftype, &elem_reftype)) { + if (GDMonoUtils::Marshal::generic_ienumerable_is_assignable_from(reftype)) { return GDMonoUtils::Marshal::enumerable_to_array(p_obj); } @@ -888,8 +882,7 @@ Variant mono_object_to_variant(MonoObject *p_obj) { // The order in which we check the following interfaces is very important (dictionaries and generics first) - MonoReflectionType *key_reftype, *value_reftype; - if (GDMonoUtils::Marshal::generic_idictionary_is_assignable_from(reftype, &key_reftype, &value_reftype)) { + if (GDMonoUtils::Marshal::generic_idictionary_is_assignable_from(reftype)) { return GDMonoUtils::Marshal::generic_idictionary_to_dictionary(p_obj); } @@ -897,8 +890,7 @@ Variant mono_object_to_variant(MonoObject *p_obj) { return GDMonoUtils::Marshal::idictionary_to_dictionary(p_obj); } - MonoReflectionType *elem_reftype; - if (GDMonoUtils::Marshal::generic_ienumerable_is_assignable_from(reftype, &elem_reftype)) { + if (GDMonoUtils::Marshal::generic_ienumerable_is_assignable_from(reftype)) { return GDMonoUtils::Marshal::enumerable_to_array(p_obj); } @@ -1027,7 +1019,7 @@ MonoArray *PoolStringArray_to_mono_array(const PoolStringArray &p_array) { for (int i = 0; i < p_array.size(); i++) { MonoString *boxed = mono_string_from_godot(r[i]); - mono_array_set(ret, MonoString *, i, boxed); + mono_array_setref(ret, i, boxed); } return ret; diff --git a/modules/mono/mono_gd/gd_mono_method.cpp b/modules/mono/mono_gd/gd_mono_method.cpp index f290c6c8ac..968b316a3e 100644 --- a/modules/mono/mono_gd/gd_mono_method.cpp +++ b/modules/mono/mono_gd/gd_mono_method.cpp @@ -109,7 +109,7 @@ MonoObject *GDMonoMethod::invoke(MonoObject *p_object, const Variant **p_params, for (int i = 0; i < params_count; i++) { MonoObject *boxed_param = GDMonoMarshal::variant_to_mono_object(p_params[i], param_types[i]); - mono_array_set(params, MonoObject *, i, boxed_param); + mono_array_setref(params, i, boxed_param); } MonoException *exc = NULL; diff --git a/modules/mono/mono_gd/gd_mono_property.cpp b/modules/mono/mono_gd/gd_mono_property.cpp index 5842e26241..f1da00638f 100644 --- a/modules/mono/mono_gd/gd_mono_property.cpp +++ b/modules/mono/mono_gd/gd_mono_property.cpp @@ -142,7 +142,7 @@ bool GDMonoProperty::has_setter() { void GDMonoProperty::set_value(MonoObject *p_object, MonoObject *p_value, MonoException **r_exc) { MonoMethod *prop_method = mono_property_get_set_method(mono_property); MonoArray *params = mono_array_new(mono_domain_get(), CACHED_CLASS_RAW(MonoObject), 1); - mono_array_set(params, MonoObject *, 0, p_value); + mono_array_setref(params, 0, p_value); MonoException *exc = NULL; GDMonoUtils::runtime_invoke_array(prop_method, p_object, params, &exc); if (exc) { diff --git a/modules/mono/mono_gd/gd_mono_utils.cpp b/modules/mono/mono_gd/gd_mono_utils.cpp index 5236e43c90..1b32f1126e 100644 --- a/modules/mono/mono_gd/gd_mono_utils.cpp +++ b/modules/mono/mono_gd/gd_mono_utils.cpp @@ -50,6 +50,7 @@ MonoCache mono_cache; #define CACHE_AND_CHECK(m_var, m_val) \ { \ + CRASH_COND(m_var != NULL); \ m_var = m_val; \ if (!m_var) { \ ERR_EXPLAIN("Mono Cache: Member " #m_var " is null"); \ @@ -65,7 +66,9 @@ MonoCache mono_cache; #define CACHE_METHOD_THUNK_AND_CHECK(m_class, m_method, m_val) CACHE_AND_CHECK(GDMonoUtils::mono_cache.methodthunk_##m_class##_##m_method, m_val) #define CACHE_PROPERTY_AND_CHECK(m_class, m_property, m_val) CACHE_AND_CHECK(GDMonoUtils::mono_cache.property_##m_class##_##m_property, m_val) -void MonoCache::clear_members() { +void MonoCache::clear_corlib_cache() { + + corlib_cache_updated = false; class_MonoObject = NULL; class_bool = NULL; @@ -93,6 +96,11 @@ void MonoCache::clear_members() { #endif class_KeyNotFoundException = NULL; +} + +void MonoCache::clear_godot_api_cache() { + + godot_api_cache_updated = false; rawclass_Dictionary = NULL; @@ -161,6 +169,8 @@ void MonoCache::clear_members() { methodthunk_MarshalUtils_GenericIEnumerableIsAssignableFromType = NULL; methodthunk_MarshalUtils_GenericIDictionaryIsAssignableFromType = NULL; + methodthunk_MarshalUtils_GenericIEnumerableIsAssignableFromType_with_info = NULL; + methodthunk_MarshalUtils_GenericIDictionaryIsAssignableFromType_with_info = NULL; methodthunk_MarshalUtils_MakeGenericArrayType = NULL; methodthunk_MarshalUtils_MakeGenericDictionaryType = NULL; @@ -174,12 +184,6 @@ void MonoCache::clear_members() { task_scheduler_handle = Ref<MonoGCHandle>(); } -void MonoCache::cleanup() { - - corlib_cache_updated = false; - godot_api_cache_updated = false; -} - #define GODOT_API_CLASS(m_class) (GDMono::get_singleton()->get_core_api_assembly()->get_class(BINDINGS_NAMESPACE, #m_class)) #define GODOT_API_NS_CLAS(m_ns, m_class) (GDMono::get_singleton()->get_core_api_assembly()->get_class(m_ns, #m_class)) @@ -279,11 +283,10 @@ void update_godot_api_cache() { CACHE_METHOD_THUNK_AND_CHECK(MarshalUtils, ArrayGetElementType, (ArrayGetElementType)GODOT_API_CLASS(MarshalUtils)->get_method_thunk("ArrayGetElementType", 2)); CACHE_METHOD_THUNK_AND_CHECK(MarshalUtils, DictionaryGetKeyValueTypes, (DictionaryGetKeyValueTypes)GODOT_API_CLASS(MarshalUtils)->get_method_thunk("DictionaryGetKeyValueTypes", 3)); - CACHE_METHOD_THUNK_AND_CHECK(MarshalUtils, ArrayGetElementType, (ArrayGetElementType)GODOT_API_CLASS(MarshalUtils)->get_method_thunk("ArrayGetElementType", 2)); - CACHE_METHOD_THUNK_AND_CHECK(MarshalUtils, DictionaryGetKeyValueTypes, (DictionaryGetKeyValueTypes)GODOT_API_CLASS(MarshalUtils)->get_method_thunk("DictionaryGetKeyValueTypes", 3)); - - CACHE_METHOD_THUNK_AND_CHECK(MarshalUtils, GenericIEnumerableIsAssignableFromType, (GenericIEnumerableIsAssignableFromType)GODOT_API_CLASS(MarshalUtils)->get_method_thunk("GenericIEnumerableIsAssignableFromType", 2)); - CACHE_METHOD_THUNK_AND_CHECK(MarshalUtils, GenericIDictionaryIsAssignableFromType, (GenericIDictionaryIsAssignableFromType)GODOT_API_CLASS(MarshalUtils)->get_method_thunk("GenericIDictionaryIsAssignableFromType", 3)); + CACHE_METHOD_THUNK_AND_CHECK(MarshalUtils, GenericIEnumerableIsAssignableFromType, (GenericIEnumerableIsAssignableFromType)GODOT_API_CLASS(MarshalUtils)->get_method_thunk("GenericIEnumerableIsAssignableFromType", 1)); + CACHE_METHOD_THUNK_AND_CHECK(MarshalUtils, GenericIDictionaryIsAssignableFromType, (GenericIDictionaryIsAssignableFromType)GODOT_API_CLASS(MarshalUtils)->get_method_thunk("GenericIDictionaryIsAssignableFromType", 1)); + CACHE_METHOD_THUNK_AND_CHECK(MarshalUtils, GenericIEnumerableIsAssignableFromType_with_info, (GenericIEnumerableIsAssignableFromType_with_info)GODOT_API_CLASS(MarshalUtils)->get_method_thunk("GenericIEnumerableIsAssignableFromType", 2)); + CACHE_METHOD_THUNK_AND_CHECK(MarshalUtils, GenericIDictionaryIsAssignableFromType_with_info, (GenericIDictionaryIsAssignableFromType_with_info)GODOT_API_CLASS(MarshalUtils)->get_method_thunk("GenericIDictionaryIsAssignableFromType", 3)); CACHE_METHOD_THUNK_AND_CHECK(MarshalUtils, MakeGenericArrayType, (MakeGenericArrayType)GODOT_API_CLASS(MarshalUtils)->get_method_thunk("MakeGenericArrayType", 1)); CACHE_METHOD_THUNK_AND_CHECK(MarshalUtils, MakeGenericDictionaryType, (MakeGenericDictionaryType)GODOT_API_CLASS(MarshalUtils)->get_method_thunk("MakeGenericDictionaryType", 2)); @@ -300,17 +303,12 @@ void update_godot_api_cache() { // TODO Move to CSharpLanguage::init() and do handle disposal MonoObject *task_scheduler = mono_object_new(SCRIPTS_DOMAIN, GODOT_API_CLASS(GodotTaskScheduler)->get_mono_ptr()); - GDMonoUtils::runtime_object_init(task_scheduler); + GDMonoUtils::runtime_object_init(task_scheduler, GODOT_API_CLASS(GodotTaskScheduler)); mono_cache.task_scheduler_handle = MonoGCHandle::create_strong(task_scheduler); mono_cache.godot_api_cache_updated = true; } -void clear_cache() { - mono_cache.cleanup(); - mono_cache.clear_members(); -} - MonoObject *unmanaged_get_managed(Object *unmanaged) { if (!unmanaged) @@ -401,11 +399,10 @@ MonoThread *get_current_thread() { return mono_thread_current(); } -void runtime_object_init(MonoObject *p_this_obj) { - GD_MONO_BEGIN_RUNTIME_INVOKE; - // FIXME: Do not use mono_runtime_object_init, it aborts if an exception is thrown - mono_runtime_object_init(p_this_obj); - GD_MONO_END_RUNTIME_INVOKE; +void runtime_object_init(MonoObject *p_this_obj, GDMonoClass *p_class, MonoException **r_exc) { + GDMonoMethod *ctor = p_class->get_method(".ctor", 0); + ERR_FAIL_NULL(ctor); + ctor->invoke_raw(p_this_obj, NULL, r_exc); } GDMonoClass *get_object_class(MonoObject *p_object) { @@ -467,7 +464,7 @@ MonoObject *create_managed_for_godot_object(GDMonoClass *p_class, const StringNa CACHED_FIELD(GodotObject, ptr)->set_value_raw(mono_object, p_object); // Construct - GDMonoUtils::runtime_object_init(mono_object); + GDMonoUtils::runtime_object_init(mono_object, p_class); return mono_object; } @@ -477,7 +474,7 @@ MonoObject *create_managed_from(const NodePath &p_from) { ERR_FAIL_NULL_V(mono_object, NULL); // Construct - GDMonoUtils::runtime_object_init(mono_object); + GDMonoUtils::runtime_object_init(mono_object, CACHED_CLASS(NodePath)); CACHED_FIELD(NodePath, ptr)->set_value_raw(mono_object, memnew(NodePath(p_from))); @@ -489,7 +486,7 @@ MonoObject *create_managed_from(const RID &p_from) { ERR_FAIL_NULL_V(mono_object, NULL); // Construct - GDMonoUtils::runtime_object_init(mono_object); + GDMonoUtils::runtime_object_init(mono_object, CACHED_CLASS(RID)); CACHED_FIELD(RID, ptr)->set_value_raw(mono_object, memnew(RID(p_from))); @@ -788,16 +785,32 @@ void dictionary_get_key_value_types(MonoReflectionType *p_dict_reftype, MonoRefl UNLIKELY_UNHANDLED_EXCEPTION(exc); } -MonoBoolean generic_ienumerable_is_assignable_from(MonoReflectionType *p_reftype, MonoReflectionType **r_elem_reftype) { +MonoBoolean generic_ienumerable_is_assignable_from(MonoReflectionType *p_reftype) { GenericIEnumerableIsAssignableFromType thunk = CACHED_METHOD_THUNK(MarshalUtils, GenericIEnumerableIsAssignableFromType); MonoException *exc = NULL; + MonoBoolean res = invoke_method_thunk(thunk, p_reftype, &exc); + UNLIKELY_UNHANDLED_EXCEPTION(exc); + return res; +} + +MonoBoolean generic_idictionary_is_assignable_from(MonoReflectionType *p_reftype) { + GenericIDictionaryIsAssignableFromType thunk = CACHED_METHOD_THUNK(MarshalUtils, GenericIDictionaryIsAssignableFromType); + MonoException *exc = NULL; + MonoBoolean res = invoke_method_thunk(thunk, p_reftype, &exc); + UNLIKELY_UNHANDLED_EXCEPTION(exc); + return res; +} + +MonoBoolean generic_ienumerable_is_assignable_from(MonoReflectionType *p_reftype, MonoReflectionType **r_elem_reftype) { + GenericIEnumerableIsAssignableFromType_with_info thunk = CACHED_METHOD_THUNK(MarshalUtils, GenericIEnumerableIsAssignableFromType_with_info); + MonoException *exc = NULL; MonoBoolean res = invoke_method_thunk(thunk, p_reftype, r_elem_reftype, &exc); UNLIKELY_UNHANDLED_EXCEPTION(exc); return res; } MonoBoolean generic_idictionary_is_assignable_from(MonoReflectionType *p_reftype, MonoReflectionType **r_key_reftype, MonoReflectionType **r_value_reftype) { - GenericIDictionaryIsAssignableFromType thunk = CACHED_METHOD_THUNK(MarshalUtils, GenericIDictionaryIsAssignableFromType); + GenericIDictionaryIsAssignableFromType_with_info thunk = CACHED_METHOD_THUNK(MarshalUtils, GenericIDictionaryIsAssignableFromType_with_info); MonoException *exc = NULL; MonoBoolean res = invoke_method_thunk(thunk, p_reftype, r_key_reftype, r_value_reftype, &exc); UNLIKELY_UNHANDLED_EXCEPTION(exc); diff --git a/modules/mono/mono_gd/gd_mono_utils.h b/modules/mono/mono_gd/gd_mono_utils.h index 081a8a9813..00e1ffdd31 100644 --- a/modules/mono/mono_gd/gd_mono_utils.h +++ b/modules/mono/mono_gd/gd_mono_utils.h @@ -64,8 +64,10 @@ typedef MonoBoolean (*TypeIsGenericDictionary)(MonoReflectionType *, MonoExcepti typedef void (*ArrayGetElementType)(MonoReflectionType *, MonoReflectionType **, MonoException **); typedef void (*DictionaryGetKeyValueTypes)(MonoReflectionType *, MonoReflectionType **, MonoReflectionType **, MonoException **); -typedef MonoBoolean (*GenericIEnumerableIsAssignableFromType)(MonoReflectionType *, MonoReflectionType **, MonoException **); -typedef MonoBoolean (*GenericIDictionaryIsAssignableFromType)(MonoReflectionType *, MonoReflectionType **, MonoReflectionType **, MonoException **); +typedef MonoBoolean (*GenericIEnumerableIsAssignableFromType)(MonoReflectionType *, MonoException **); +typedef MonoBoolean (*GenericIDictionaryIsAssignableFromType)(MonoReflectionType *, MonoException **); +typedef MonoBoolean (*GenericIEnumerableIsAssignableFromType_with_info)(MonoReflectionType *, MonoReflectionType **, MonoException **); +typedef MonoBoolean (*GenericIDictionaryIsAssignableFromType_with_info)(MonoReflectionType *, MonoReflectionType **, MonoReflectionType **, MonoException **); typedef MonoReflectionType *(*MakeGenericArrayType)(MonoReflectionType *, MonoException **); typedef MonoReflectionType *(*MakeGenericDictionaryType)(MonoReflectionType *, MonoReflectionType *, MonoException **); @@ -82,6 +84,8 @@ MonoBoolean type_is_generic_dictionary(MonoReflectionType *p_reftype); void array_get_element_type(MonoReflectionType *p_array_reftype, MonoReflectionType **r_elem_reftype); void dictionary_get_key_value_types(MonoReflectionType *p_dict_reftype, MonoReflectionType **r_key_reftype, MonoReflectionType **r_value_reftype); +MonoBoolean generic_ienumerable_is_assignable_from(MonoReflectionType *p_reftype); +MonoBoolean generic_idictionary_is_assignable_from(MonoReflectionType *p_reftype); MonoBoolean generic_ienumerable_is_assignable_from(MonoReflectionType *p_reftype, MonoReflectionType **r_elem_reftype); MonoBoolean generic_idictionary_is_assignable_from(MonoReflectionType *p_reftype, MonoReflectionType **r_key_reftype, MonoReflectionType **r_value_reftype); @@ -197,6 +201,8 @@ struct MonoCache { GenericIEnumerableIsAssignableFromType methodthunk_MarshalUtils_GenericIEnumerableIsAssignableFromType; GenericIDictionaryIsAssignableFromType methodthunk_MarshalUtils_GenericIDictionaryIsAssignableFromType; + GenericIEnumerableIsAssignableFromType_with_info methodthunk_MarshalUtils_GenericIEnumerableIsAssignableFromType_with_info; + GenericIDictionaryIsAssignableFromType_with_info methodthunk_MarshalUtils_GenericIDictionaryIsAssignableFromType_with_info; MakeGenericArrayType methodthunk_MarshalUtils_MakeGenericArrayType; MakeGenericDictionaryType methodthunk_MarshalUtils_MakeGenericDictionaryType; @@ -212,14 +218,12 @@ struct MonoCache { bool corlib_cache_updated; bool godot_api_cache_updated; - void clear_members(); - void cleanup(); + void clear_corlib_cache(); + void clear_godot_api_cache(); MonoCache() { - corlib_cache_updated = false; - godot_api_cache_updated = false; - - clear_members(); + clear_corlib_cache(); + clear_godot_api_cache(); } }; @@ -227,7 +231,13 @@ extern MonoCache mono_cache; void update_corlib_cache(); void update_godot_api_cache(); -void clear_cache(); + +inline void clear_corlib_cache() { + mono_cache.clear_corlib_cache(); +} +inline void clear_godot_api_cache() { + mono_cache.clear_godot_api_cache(); +} _FORCE_INLINE_ void hash_combine(uint32_t &p_hash, const uint32_t &p_with_hash) { p_hash ^= p_with_hash + 0x9e3779b9 + (p_hash << 6) + (p_hash >> 2); @@ -249,7 +259,7 @@ _FORCE_INLINE_ bool is_main_thread() { return mono_domain_get() != NULL && mono_thread_get_main() == mono_thread_current(); } -void runtime_object_init(MonoObject *p_this_obj); +void runtime_object_init(MonoObject *p_this_obj, GDMonoClass *p_class, MonoException **r_exc = NULL); GDMonoClass *get_object_class(MonoObject *p_object); GDMonoClass *type_get_proxy_class(const StringName &p_type); diff --git a/modules/mono/signal_awaiter_utils.cpp b/modules/mono/signal_awaiter_utils.cpp index 5d37e8212f..0e1739b754 100644 --- a/modules/mono/signal_awaiter_utils.cpp +++ b/modules/mono/signal_awaiter_utils.cpp @@ -95,7 +95,7 @@ Variant SignalAwaiterHandle::_signal_callback(const Variant **p_args, int p_argc for (int i = 0; i < signal_argc; i++) { MonoObject *boxed = GDMonoMarshal::variant_to_mono_object(*p_args[i]); - mono_array_set(signal_args, MonoObject *, i, boxed); + mono_array_setref(signal_args, i, boxed); } MonoException *exc = NULL; diff --git a/modules/opensimplex/doc_classes/OpenSimplexNoise.xml b/modules/opensimplex/doc_classes/OpenSimplexNoise.xml index dc7fc7fe31..894a1b3ced 100644 --- a/modules/opensimplex/doc_classes/OpenSimplexNoise.xml +++ b/modules/opensimplex/doc_classes/OpenSimplexNoise.xml @@ -41,6 +41,8 @@ <argument index="0" name="x" type="float"> </argument> <description> + Returns the 1D noise value [code][-1,1][/code] at the given x-coordinate. + Note: This method actually returns the 2D noise value [code][-1,1][/code] with fixed y-coordinate value 0.0. </description> </method> <method name="get_noise_2d"> diff --git a/modules/opus/audio_stream_opus.cpp b/modules/opus/audio_stream_opus.cpp index fda82295de..70d0f770d8 100644 --- a/modules/opus/audio_stream_opus.cpp +++ b/modules/opus/audio_stream_opus.cpp @@ -313,7 +313,7 @@ int AudioStreamPlaybackOpus::mix(int16_t *p_buffer, int p_frames) { bool ok = op_pcm_seek(opus_file, (loop_restart_time * osrate) + pre_skip) == 0; if (!ok) { playing = false; - ERR_PRINT("loop restart time rejected") + ERR_PRINT("Loop restart time rejected"); } frames_mixed = (loop_restart_time * osrate) + pre_skip; diff --git a/modules/opus/audio_stream_opus.h b/modules/opus/audio_stream_opus.h index f53bff0288..fd07e19e2e 100644 --- a/modules/opus/audio_stream_opus.h +++ b/modules/opus/audio_stream_opus.h @@ -132,7 +132,6 @@ public: }; class ResourceFormatLoaderAudioStreamOpus : public ResourceFormatLoader { - GDCLASS(ResourceFormatLoaderAudioStreamOpus, ResourceFormatLoader) public: virtual RES load(const String &p_path, const String &p_original_path = "", Error *r_error = NULL); virtual void get_recognized_extensions(List<String> *p_extensions) const; diff --git a/modules/pvr/texture_loader_pvr.h b/modules/pvr/texture_loader_pvr.h index 2808b4ff03..606268e447 100644 --- a/modules/pvr/texture_loader_pvr.h +++ b/modules/pvr/texture_loader_pvr.h @@ -35,7 +35,6 @@ #include "scene/resources/texture.h" class ResourceFormatPVR : public ResourceFormatLoader { - GDCLASS(ResourceFormatPVR, ResourceFormatLoader) public: virtual RES load(const String &p_path, const String &p_original_path, Error *r_error = NULL); virtual void get_recognized_extensions(List<String> *p_extensions) const; diff --git a/modules/recast/navigation_mesh_editor_plugin.cpp b/modules/recast/navigation_mesh_editor_plugin.cpp index 62108620bd..9f30806925 100644 --- a/modules/recast/navigation_mesh_editor_plugin.cpp +++ b/modules/recast/navigation_mesh_editor_plugin.cpp @@ -54,18 +54,18 @@ void NavigationMeshEditor::_notification(int p_option) { } void NavigationMeshEditor::_bake_pressed() { + button_bake->set_pressed(false); ERR_FAIL_COND(!node); const String conf_warning = node->get_configuration_warning(); if (!conf_warning.empty()) { err_dialog->set_text(conf_warning); err_dialog->popup_centered_minsize(); - button_bake->set_pressed(false); return; } - NavigationMeshGenerator::clear(node->get_navigation_mesh()); - NavigationMeshGenerator::bake(node->get_navigation_mesh(), node); + EditorNavigationMeshGenerator::get_singleton()->clear(node->get_navigation_mesh()); + EditorNavigationMeshGenerator::get_singleton()->bake(node->get_navigation_mesh(), node); node->update_gizmo(); } @@ -73,7 +73,7 @@ void NavigationMeshEditor::_bake_pressed() { void NavigationMeshEditor::_clear_pressed() { if (node) - NavigationMeshGenerator::clear(node->get_navigation_mesh()); + EditorNavigationMeshGenerator::get_singleton()->clear(node->get_navigation_mesh()); button_bake->set_pressed(false); bake_info->set_text(""); diff --git a/modules/recast/navigation_mesh_generator.cpp b/modules/recast/navigation_mesh_generator.cpp index 79ccbbb030..14467dc5c7 100644 --- a/modules/recast/navigation_mesh_generator.cpp +++ b/modules/recast/navigation_mesh_generator.cpp @@ -29,14 +29,35 @@ /*************************************************************************/ #include "navigation_mesh_generator.h" - -void NavigationMeshGenerator::_add_vertex(const Vector3 &p_vec3, Vector<float> &p_verticies) { +#include "core/math/quick_hull.h" +#include "core/os/thread.h" +#include "editor/editor_settings.h" +#include "scene/3d/collision_shape.h" +#include "scene/3d/mesh_instance.h" +#include "scene/3d/physics_body.h" +#include "scene/resources/box_shape.h" +#include "scene/resources/capsule_shape.h" +#include "scene/resources/concave_polygon_shape.h" +#include "scene/resources/convex_polygon_shape.h" +#include "scene/resources/cylinder_shape.h" +#include "scene/resources/plane_shape.h" +#include "scene/resources/primitive_meshes.h" +#include "scene/resources/shape.h" +#include "scene/resources/sphere_shape.h" + +#ifdef MODULE_CSG_ENABLED +#include "modules/csg/csg_shape.h" +#endif + +EditorNavigationMeshGenerator *EditorNavigationMeshGenerator::singleton = NULL; + +void EditorNavigationMeshGenerator::_add_vertex(const Vector3 &p_vec3, Vector<float> &p_verticies) { p_verticies.push_back(p_vec3.x); p_verticies.push_back(p_vec3.y); p_verticies.push_back(p_vec3.z); } -void NavigationMeshGenerator::_add_mesh(const Ref<Mesh> &p_mesh, const Transform &p_xform, Vector<float> &p_verticies, Vector<int> &p_indices) { +void EditorNavigationMeshGenerator::_add_mesh(const Ref<Mesh> &p_mesh, const Transform &p_xform, Vector<float> &p_verticies, Vector<int> &p_indices) { int current_vertex_count = 0; for (int i = 0; i < p_mesh->get_surface_count(); i++) { @@ -91,23 +112,146 @@ void NavigationMeshGenerator::_add_mesh(const Ref<Mesh> &p_mesh, const Transform } } -void NavigationMeshGenerator::_parse_geometry(const Transform &p_base_inverse, Node *p_node, Vector<float> &p_verticies, Vector<int> &p_indices) { +void EditorNavigationMeshGenerator::_add_faces(const PoolVector3Array &p_faces, const Transform &p_xform, Vector<float> &p_verticies, Vector<int> &p_indices) { + int face_count = p_faces.size() / 3; + int current_vertex_count = p_verticies.size() / 3; + + for (int j = 0; j < face_count; j++) { + _add_vertex(p_xform.xform(p_faces[j * 3 + 0]), p_verticies); + _add_vertex(p_xform.xform(p_faces[j * 3 + 1]), p_verticies); + _add_vertex(p_xform.xform(p_faces[j * 3 + 2]), p_verticies); - if (Object::cast_to<MeshInstance>(p_node)) { + p_indices.push_back(current_vertex_count + (j * 3 + 0)); + p_indices.push_back(current_vertex_count + (j * 3 + 2)); + p_indices.push_back(current_vertex_count + (j * 3 + 1)); + } +} + +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) { + + if (Object::cast_to<MeshInstance>(p_node) && p_generate_from != NavigationMesh::PARSED_GEOMETRY_STATIC_COLLIDERS) { MeshInstance *mesh_instance = Object::cast_to<MeshInstance>(p_node); Ref<Mesh> mesh = mesh_instance->get_mesh(); if (mesh.is_valid()) { - _add_mesh(mesh, p_base_inverse * mesh_instance->get_global_transform(), p_verticies, p_indices); + _add_mesh(mesh, p_accumulated_transform * mesh_instance->get_transform(), p_verticies, p_indices); } } +#ifdef MODULE_CSG_ENABLED + if (Object::cast_to<CSGShape>(p_node) && p_generate_from != NavigationMesh::PARSED_GEOMETRY_STATIC_COLLIDERS) { + + CSGShape *csg_shape = Object::cast_to<CSGShape>(p_node); + Array meshes = csg_shape->get_meshes(); + if (!meshes.empty()) { + Ref<Mesh> mesh = meshes[1]; + if (mesh.is_valid()) { + _add_mesh(mesh, p_accumulated_transform * csg_shape->get_transform(), p_verticies, p_indices); + } + } + } +#endif + + if (Object::cast_to<StaticBody>(p_node) && p_generate_from != NavigationMesh::PARSED_GEOMETRY_MESH_INSTANCES) { + StaticBody *static_body = Object::cast_to<StaticBody>(p_node); + + if (static_body->get_collision_layer() & p_collision_mask) { + + for (int i = 0; i < p_node->get_child_count(); ++i) { + Node *child = p_node->get_child(i); + if (Object::cast_to<CollisionShape>(child)) { + CollisionShape *col_shape = Object::cast_to<CollisionShape>(child); + + Transform transform = p_accumulated_transform * static_body->get_transform() * col_shape->get_transform(); + + Ref<Mesh> mesh; + Ref<Shape> s = col_shape->get_shape(); + + BoxShape *box = Object::cast_to<BoxShape>(*s); + if (box) { + Ref<CubeMesh> cube_mesh; + cube_mesh.instance(); + cube_mesh->set_size(box->get_extents() * 2.0); + mesh = cube_mesh; + } + + CapsuleShape *capsule = Object::cast_to<CapsuleShape>(*s); + if (capsule) { + Ref<CapsuleMesh> capsule_mesh; + capsule_mesh.instance(); + capsule_mesh->set_radius(capsule->get_radius()); + capsule_mesh->set_mid_height(capsule->get_height() / 2.0); + mesh = capsule_mesh; + } + + CylinderShape *cylinder = Object::cast_to<CylinderShape>(*s); + if (cylinder) { + Ref<CylinderMesh> cylinder_mesh; + cylinder_mesh.instance(); + cylinder_mesh->set_height(cylinder->get_height()); + cylinder_mesh->set_bottom_radius(cylinder->get_radius()); + cylinder_mesh->set_top_radius(cylinder->get_radius()); + mesh = cylinder_mesh; + } + + SphereShape *sphere = Object::cast_to<SphereShape>(*s); + if (sphere) { + Ref<SphereMesh> sphere_mesh; + sphere_mesh.instance(); + sphere_mesh->set_radius(sphere->get_radius()); + sphere_mesh->set_height(sphere->get_radius() * 2.0); + mesh = sphere_mesh; + } + + ConcavePolygonShape *concave_polygon = Object::cast_to<ConcavePolygonShape>(*s); + if (concave_polygon) { + _add_faces(concave_polygon->get_faces(), transform, p_verticies, p_indices); + } + + ConvexPolygonShape *convex_polygon = Object::cast_to<ConvexPolygonShape>(*s); + if (convex_polygon) { + Vector<Vector3> varr = Variant(convex_polygon->get_points()); + Geometry::MeshData md; + + Error err = QuickHull::build(varr, md); + + if (err == OK) { + PoolVector3Array faces; + + for (int j = 0; j < md.faces.size(); ++j) { + Geometry::MeshData::Face face = md.faces[j]; + + for (int k = 2; k < face.indices.size(); ++k) { + faces.push_back(md.vertices[face.indices[0]]); + faces.push_back(md.vertices[face.indices[k - 1]]); + faces.push_back(md.vertices[face.indices[k]]); + } + } + + _add_faces(faces, transform, p_verticies, p_indices); + } + } + + if (mesh.is_valid()) { + _add_mesh(mesh, transform, p_verticies, p_indices); + } + } + } + } + } + + if (Object::cast_to<Spatial>(p_node)) { + + Spatial *spatial = Object::cast_to<Spatial>(p_node); + p_accumulated_transform = p_accumulated_transform * spatial->get_transform(); + } + for (int i = 0; i < p_node->get_child_count(); i++) { - _parse_geometry(p_base_inverse, p_node->get_child(i), p_verticies, p_indices); + _parse_geometry(p_accumulated_transform, p_node->get_child(i), p_verticies, p_indices, p_generate_from, p_collision_mask); } } -void NavigationMeshGenerator::_convert_detail_mesh_to_native_navigation_mesh(const rcPolyMeshDetail *p_detail_mesh, Ref<NavigationMesh> p_nav_mesh) { +void EditorNavigationMeshGenerator::_convert_detail_mesh_to_native_navigation_mesh(const rcPolyMeshDetail *p_detail_mesh, Ref<NavigationMesh> p_nav_mesh) { PoolVector<Vector3> nav_vertices; @@ -135,7 +279,7 @@ void NavigationMeshGenerator::_convert_detail_mesh_to_native_navigation_mesh(con } } -void NavigationMeshGenerator::_build_recast_navigation_mesh(Ref<NavigationMesh> p_nav_mesh, EditorProgress *ep, +void EditorNavigationMeshGenerator::_build_recast_navigation_mesh(Ref<NavigationMesh> p_nav_mesh, EditorProgress *ep, rcHeightfield *hf, rcCompactHeightfield *chf, rcContourSet *cset, rcPolyMesh *poly_mesh, rcPolyMeshDetail *detail_mesh, Vector<float> &vertices, Vector<int> &indices) { rcContext ctx; @@ -257,7 +401,18 @@ void NavigationMeshGenerator::_build_recast_navigation_mesh(Ref<NavigationMesh> detail_mesh = 0; } -void NavigationMeshGenerator::bake(Ref<NavigationMesh> p_nav_mesh, Node *p_node) { +EditorNavigationMeshGenerator *EditorNavigationMeshGenerator::get_singleton() { + return singleton; +} + +EditorNavigationMeshGenerator::EditorNavigationMeshGenerator() { + singleton = this; +} + +EditorNavigationMeshGenerator::~EditorNavigationMeshGenerator() { +} + +void EditorNavigationMeshGenerator::bake(Ref<NavigationMesh> p_nav_mesh, Node *p_node) { ERR_FAIL_COND(!p_nav_mesh.is_valid()); @@ -267,7 +422,7 @@ void NavigationMeshGenerator::bake(Ref<NavigationMesh> p_nav_mesh, Node *p_node) Vector<float> vertices; Vector<int> indices; - _parse_geometry(Object::cast_to<Spatial>(p_node)->get_global_transform().affine_inverse(), p_node, vertices, 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()); if (vertices.size() > 0 && indices.size() > 0) { @@ -297,9 +452,14 @@ void NavigationMeshGenerator::bake(Ref<NavigationMesh> p_nav_mesh, Node *p_node) ep.step(TTR("Done!"), 11); } -void NavigationMeshGenerator::clear(Ref<NavigationMesh> p_nav_mesh) { +void EditorNavigationMeshGenerator::clear(Ref<NavigationMesh> p_nav_mesh) { if (p_nav_mesh.is_valid()) { p_nav_mesh->clear_polygons(); p_nav_mesh->set_vertices(PoolVector<Vector3>()); } } + +void EditorNavigationMeshGenerator::_bind_methods() { + ClassDB::bind_method(D_METHOD("bake", "nav_mesh", "root_node"), &EditorNavigationMeshGenerator::bake); + ClassDB::bind_method(D_METHOD("clear", "nav_mesh"), &EditorNavigationMeshGenerator::clear); +} diff --git a/modules/recast/navigation_mesh_generator.h b/modules/recast/navigation_mesh_generator.h index 3adc01ccda..30a6e3c835 100644 --- a/modules/recast/navigation_mesh_generator.h +++ b/modules/recast/navigation_mesh_generator.h @@ -31,20 +31,23 @@ #ifndef NAVIGATION_MESH_GENERATOR_H #define NAVIGATION_MESH_GENERATOR_H -#include "core/os/thread.h" #include "editor/editor_node.h" -#include "editor/editor_settings.h" -#include "scene/3d/mesh_instance.h" #include "scene/3d/navigation_mesh.h" -#include "scene/resources/shape.h" #include <Recast.h> -class NavigationMeshGenerator { +class EditorNavigationMeshGenerator : public Object { + GDCLASS(EditorNavigationMeshGenerator, Object); + + static EditorNavigationMeshGenerator *singleton; + protected: + static void _bind_methods(); + 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 _parse_geometry(const Transform &p_base_inverse, Node *p_node, 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 _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, @@ -52,8 +55,13 @@ protected: rcPolyMeshDetail *detail_mesh, Vector<float> &vertices, Vector<int> &indices); public: - static void bake(Ref<NavigationMesh> p_nav_mesh, Node *p_node); - static void clear(Ref<NavigationMesh> p_nav_mesh); + static EditorNavigationMeshGenerator *get_singleton(); + + EditorNavigationMeshGenerator(); + ~EditorNavigationMeshGenerator(); + + void bake(Ref<NavigationMesh> p_nav_mesh, Node *p_node); + void clear(Ref<NavigationMesh> p_nav_mesh); }; #endif // NAVIGATION_MESH_GENERATOR_H diff --git a/modules/recast/register_types.cpp b/modules/recast/register_types.cpp index f272cc4236..247d7f6144 100644 --- a/modules/recast/register_types.cpp +++ b/modules/recast/register_types.cpp @@ -32,8 +32,23 @@ #include "navigation_mesh_editor_plugin.h" +#ifdef TOOLS_ENABLED +EditorNavigationMeshGenerator *_nav_mesh_generator = NULL; +#endif + void register_recast_types() { +#ifdef TOOLS_ENABLED EditorPlugins::add_by_type<NavigationMeshEditorPlugin>(); + _nav_mesh_generator = memnew(EditorNavigationMeshGenerator); + ClassDB::register_class<EditorNavigationMeshGenerator>(); + Engine::get_singleton()->add_singleton(Engine::Singleton("NavigationMeshGenerator", EditorNavigationMeshGenerator::get_singleton())); +#endif } -void unregister_recast_types() {} +void unregister_recast_types() { +#ifdef TOOLS_ENABLED + if (_nav_mesh_generator) { + memdelete(_nav_mesh_generator); + } +#endif +} diff --git a/modules/stb_vorbis/audio_stream_ogg_vorbis.cpp b/modules/stb_vorbis/audio_stream_ogg_vorbis.cpp index 292ac5e97e..b5f4718c72 100644 --- a/modules/stb_vorbis/audio_stream_ogg_vorbis.cpp +++ b/modules/stb_vorbis/audio_stream_ogg_vorbis.cpp @@ -273,6 +273,7 @@ void AudioStreamOGGVorbis::_bind_methods() { AudioStreamOGGVorbis::AudioStreamOGGVorbis() { data = NULL; + data_len = 0; length = 0; sample_rate = 1; channels = 1; diff --git a/modules/stb_vorbis/config.py b/modules/stb_vorbis/config.py index d75e41797a..200b8dfd50 100644 --- a/modules/stb_vorbis/config.py +++ b/modules/stb_vorbis/config.py @@ -7,7 +7,6 @@ def configure(env): def get_doc_classes(): return [ "AudioStreamOGGVorbis", - "ResourceImporterOGGVorbis", ] def get_doc_path(): diff --git a/modules/stb_vorbis/doc_classes/ResourceImporterOGGVorbis.xml b/modules/stb_vorbis/doc_classes/ResourceImporterOGGVorbis.xml deleted file mode 100644 index 4dd77fed34..0000000000 --- a/modules/stb_vorbis/doc_classes/ResourceImporterOGGVorbis.xml +++ /dev/null @@ -1,13 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" ?> -<class name="ResourceImporterOGGVorbis" inherits="ResourceImporter" category="Core" version="3.2"> - <brief_description> - </brief_description> - <description> - </description> - <tutorials> - </tutorials> - <methods> - </methods> - <constants> - </constants> -</class> diff --git a/modules/stb_vorbis/register_types.cpp b/modules/stb_vorbis/register_types.cpp index 88a1766e47..ce64626e4b 100644 --- a/modules/stb_vorbis/register_types.cpp +++ b/modules/stb_vorbis/register_types.cpp @@ -29,15 +29,22 @@ /*************************************************************************/ #include "register_types.h" + #include "audio_stream_ogg_vorbis.h" + +#ifdef TOOLS_ENABLED +#include "core/engine.h" #include "resource_importer_ogg_vorbis.h" +#endif void register_stb_vorbis_types() { #ifdef TOOLS_ENABLED - Ref<ResourceImporterOGGVorbis> ogg_import; - ogg_import.instance(); - ResourceFormatImporter::get_singleton()->add_importer(ogg_import); + if (Engine::get_singleton()->is_editor_hint()) { + Ref<ResourceImporterOGGVorbis> ogg_import; + ogg_import.instance(); + ResourceFormatImporter::get_singleton()->add_importer(ogg_import); + } #endif ClassDB::register_class<AudioStreamOGGVorbis>(); } diff --git a/modules/theora/config.py b/modules/theora/config.py index 7504166237..c7713d7607 100644 --- a/modules/theora/config.py +++ b/modules/theora/config.py @@ -6,7 +6,6 @@ def configure(env): def get_doc_classes(): return [ - "ResourceImporterTheora", "VideoStreamTheora", ] diff --git a/modules/theora/video_stream_theora.h b/modules/theora/video_stream_theora.h index 85d73d3c0d..0c37d33358 100644 --- a/modules/theora/video_stream_theora.h +++ b/modules/theora/video_stream_theora.h @@ -186,7 +186,6 @@ public: }; class ResourceFormatLoaderTheora : public ResourceFormatLoader { - GDCLASS(ResourceFormatLoaderTheora, ResourceFormatLoader) public: virtual RES load(const String &p_path, const String &p_original_path = "", Error *r_error = NULL); virtual void get_recognized_extensions(List<String> *p_extensions) const; diff --git a/modules/tinyexr/image_loader_tinyexr.cpp b/modules/tinyexr/image_loader_tinyexr.cpp index bd84a28c84..a9340b1498 100644 --- a/modules/tinyexr/image_loader_tinyexr.cpp +++ b/modules/tinyexr/image_loader_tinyexr.cpp @@ -122,13 +122,13 @@ Error ImageLoaderTinyEXR::load_image(Ref<Image> p_image, FileAccess *f, bool p_f } if (idxG == -1) { - ERR_PRINT("TinyEXR: G channel not found.") + ERR_PRINT("TinyEXR: G channel not found."); // @todo { free exr_image } return ERR_FILE_CORRUPT; } if (idxB == -1) { - ERR_PRINT("TinyEXR: B channel not found.") + ERR_PRINT("TinyEXR: B channel not found."); // @todo { free exr_image } return ERR_FILE_CORRUPT; } diff --git a/modules/visual_script/config.py b/modules/visual_script/config.py index 07a0450734..04e1a40b81 100644 --- a/modules/visual_script/config.py +++ b/modules/visual_script/config.py @@ -6,6 +6,7 @@ def configure(env): def get_doc_classes(): return [ + "@VisualScript", "VisualScriptBasicTypeConstant", "VisualScriptBuiltinFunc", "VisualScriptClassConstant", diff --git a/doc/classes/@VisualScript.xml b/modules/visual_script/doc_classes/@VisualScript.xml index 8d9408e6d4..8d9408e6d4 100644 --- a/doc/classes/@VisualScript.xml +++ b/modules/visual_script/doc_classes/@VisualScript.xml diff --git a/modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml b/modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml index 74d5f29c02..21e8a38c16 100644 --- a/modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml +++ b/modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml @@ -102,114 +102,117 @@ </constant> <constant name="MATH_RANGE_LERP" value="28" enum="BuiltinFunc"> </constant> - <constant name="MATH_DECTIME" value="29" enum="BuiltinFunc"> + <constant name="MATH_MOVE_TOWARD" value="29" enum="BuiltinFunc"> + Moves the number toward a value, based on the third input. + </constant> + <constant name="MATH_DECTIME" value="30" enum="BuiltinFunc"> Return the result of 'value' decreased by 'step' * 'amount'. </constant> - <constant name="MATH_RANDOMIZE" value="30" enum="BuiltinFunc"> + <constant name="MATH_RANDOMIZE" value="31" enum="BuiltinFunc"> Randomize the seed (or the internal state) of the random number generator. Current implementation reseeds using a number based on time. </constant> - <constant name="MATH_RAND" value="31" enum="BuiltinFunc"> + <constant name="MATH_RAND" value="32" enum="BuiltinFunc"> Return a random 32 bits integer value. To obtain a random value between 0 to N (where N is smaller than 2^32 - 1), you can use it with the remainder function. </constant> - <constant name="MATH_RANDF" value="32" enum="BuiltinFunc"> + <constant name="MATH_RANDF" value="33" enum="BuiltinFunc"> Return a random floating-point value between 0 and 1. To obtain a random value between 0 to N, you can use it with multiplication. </constant> - <constant name="MATH_RANDOM" value="33" enum="BuiltinFunc"> + <constant name="MATH_RANDOM" value="34" enum="BuiltinFunc"> Return a random floating-point value between the two inputs. </constant> - <constant name="MATH_SEED" value="34" enum="BuiltinFunc"> + <constant name="MATH_SEED" value="35" enum="BuiltinFunc"> Set the seed for the random number generator. </constant> - <constant name="MATH_RANDSEED" value="35" enum="BuiltinFunc"> + <constant name="MATH_RANDSEED" value="36" enum="BuiltinFunc"> Return a random value from the given seed, along with the new seed. </constant> - <constant name="MATH_DEG2RAD" value="36" enum="BuiltinFunc"> + <constant name="MATH_DEG2RAD" value="37" enum="BuiltinFunc"> Convert the input from degrees to radians. </constant> - <constant name="MATH_RAD2DEG" value="37" enum="BuiltinFunc"> + <constant name="MATH_RAD2DEG" value="38" enum="BuiltinFunc"> Convert the input from radians to degrees. </constant> - <constant name="MATH_LINEAR2DB" value="38" enum="BuiltinFunc"> + <constant name="MATH_LINEAR2DB" value="39" enum="BuiltinFunc"> Convert the input from linear volume to decibel volume. </constant> - <constant name="MATH_DB2LINEAR" value="39" enum="BuiltinFunc"> + <constant name="MATH_DB2LINEAR" value="40" enum="BuiltinFunc"> Convert the input from decibel volume to linear volume. </constant> - <constant name="MATH_POLAR2CARTESIAN" value="40" enum="BuiltinFunc"> + <constant name="MATH_POLAR2CARTESIAN" value="41" enum="BuiltinFunc"> Converts a 2D point expressed in the polar coordinate system (a distance from the origin [code]r[/code] and an angle [code]th[/code]) to the cartesian coordinate system (x and y axis). </constant> - <constant name="MATH_CARTESIAN2POLAR" value="41" enum="BuiltinFunc"> + <constant name="MATH_CARTESIAN2POLAR" value="42" enum="BuiltinFunc"> Converts a 2D point expressed in the cartesian coordinate system (x and y axis) to the polar coordinate system (a distance from the origin and an angle). </constant> - <constant name="MATH_WRAP" value="42" enum="BuiltinFunc"> + <constant name="MATH_WRAP" value="43" enum="BuiltinFunc"> </constant> - <constant name="MATH_WRAPF" value="43" enum="BuiltinFunc"> + <constant name="MATH_WRAPF" value="44" enum="BuiltinFunc"> </constant> - <constant name="LOGIC_MAX" value="44" enum="BuiltinFunc"> + <constant name="LOGIC_MAX" value="45" enum="BuiltinFunc"> Return the greater of the two numbers, also known as their maximum. </constant> - <constant name="LOGIC_MIN" value="45" enum="BuiltinFunc"> + <constant name="LOGIC_MIN" value="46" enum="BuiltinFunc"> Return the lesser of the two numbers, also known as their minimum. </constant> - <constant name="LOGIC_CLAMP" value="46" enum="BuiltinFunc"> + <constant name="LOGIC_CLAMP" value="47" enum="BuiltinFunc"> Return the input clamped inside the given range, ensuring the result is never outside it. Equivalent to [code]min(max(input, range_low), range_high)[/code]. </constant> - <constant name="LOGIC_NEAREST_PO2" value="47" enum="BuiltinFunc"> + <constant name="LOGIC_NEAREST_PO2" value="48" enum="BuiltinFunc"> Return the nearest power of 2 to the input. </constant> - <constant name="OBJ_WEAKREF" value="48" enum="BuiltinFunc"> + <constant name="OBJ_WEAKREF" value="49" enum="BuiltinFunc"> Create a [WeakRef] from the input. </constant> - <constant name="FUNC_FUNCREF" value="49" enum="BuiltinFunc"> + <constant name="FUNC_FUNCREF" value="50" enum="BuiltinFunc"> Create a [FuncRef] from the input. </constant> - <constant name="TYPE_CONVERT" value="50" enum="BuiltinFunc"> + <constant name="TYPE_CONVERT" value="51" enum="BuiltinFunc"> Convert between types. </constant> - <constant name="TYPE_OF" value="51" enum="BuiltinFunc"> + <constant name="TYPE_OF" value="52" enum="BuiltinFunc"> Return the type of the input as an integer. Check [enum Variant.Type] for the integers that might be returned. </constant> - <constant name="TYPE_EXISTS" value="52" enum="BuiltinFunc"> + <constant name="TYPE_EXISTS" value="53" enum="BuiltinFunc"> Checks if a type is registered in the [ClassDB]. </constant> - <constant name="TEXT_CHAR" value="53" enum="BuiltinFunc"> + <constant name="TEXT_CHAR" value="54" enum="BuiltinFunc"> Return a character with the given ascii value. </constant> - <constant name="TEXT_STR" value="54" enum="BuiltinFunc"> + <constant name="TEXT_STR" value="55" enum="BuiltinFunc"> Convert the input to a string. </constant> - <constant name="TEXT_PRINT" value="55" enum="BuiltinFunc"> + <constant name="TEXT_PRINT" value="56" enum="BuiltinFunc"> Print the given string to the output window. </constant> - <constant name="TEXT_PRINTERR" value="56" enum="BuiltinFunc"> + <constant name="TEXT_PRINTERR" value="57" enum="BuiltinFunc"> Print the given string to the standard error output. </constant> - <constant name="TEXT_PRINTRAW" value="57" enum="BuiltinFunc"> + <constant name="TEXT_PRINTRAW" value="58" enum="BuiltinFunc"> Print the given string to the standard output, without adding a newline. </constant> - <constant name="VAR_TO_STR" value="58" enum="BuiltinFunc"> + <constant name="VAR_TO_STR" value="59" enum="BuiltinFunc"> Serialize a [Variant] to a string. </constant> - <constant name="STR_TO_VAR" value="59" enum="BuiltinFunc"> + <constant name="STR_TO_VAR" value="60" enum="BuiltinFunc"> Deserialize a [Variant] from a string serialized using [code]VAR_TO_STR[/code]. </constant> - <constant name="VAR_TO_BYTES" value="60" enum="BuiltinFunc"> + <constant name="VAR_TO_BYTES" value="61" enum="BuiltinFunc"> Serialize a [Variant] to a [PoolByteArray]. </constant> - <constant name="BYTES_TO_VAR" value="61" enum="BuiltinFunc"> + <constant name="BYTES_TO_VAR" value="62" enum="BuiltinFunc"> Deserialize a [Variant] from a [PoolByteArray] serialized using [code]VAR_TO_BYTES[/code]. </constant> - <constant name="COLORN" value="62" enum="BuiltinFunc"> + <constant name="COLORN" value="63" enum="BuiltinFunc"> Return the [Color] with the given name and alpha ranging from 0 to 1. Note: names are defined in color_names.inc. </constant> - <constant name="MATH_SMOOTHSTEP" value="63" enum="BuiltinFunc"> + <constant name="MATH_SMOOTHSTEP" value="64" enum="BuiltinFunc"> Return a number smoothly interpolated between the first two inputs, based on the third input. Similar to [code]MATH_LERP[/code], but interpolates faster at the beginning and slower at the end. Using Hermite interpolation formula: [codeblock] var t = clamp((weight - from) / (to - from), 0.0, 1.0) return t * t * (3.0 - 2.0 * t) [/codeblock] </constant> - <constant name="FUNC_MAX" value="64" enum="BuiltinFunc"> + <constant name="FUNC_MAX" value="65" enum="BuiltinFunc"> The maximum value the [member function] property can have. </constant> </constants> diff --git a/modules/visual_script/visual_script.cpp b/modules/visual_script/visual_script.cpp index 581809fec9..85fc867901 100644 --- a/modules/visual_script/visual_script.cpp +++ b/modules/visual_script/visual_script.cpp @@ -30,6 +30,7 @@ #include "visual_script.h" +#include "core/core_string_names.h" #include "core/os/os.h" #include "core/project_settings.h" #include "scene/main/node.h" @@ -45,15 +46,7 @@ bool VisualScriptNode::is_breakpoint() const { return breakpoint; } -void VisualScriptNode::_notification(int p_what) { - - if (p_what == NOTIFICATION_POSTINITIALIZE) { - validate_input_default_values(); - } -} - void VisualScriptNode::ports_changed_notify() { - validate_input_default_values(); emit_signal("ports_changed"); } @@ -272,11 +265,7 @@ void VisualScript::_node_ports_changed(int p_id) { Function &func = functions[function]; Ref<VisualScriptNode> vsn = func.nodes[p_id].node; - if (OS::get_singleton()->get_main_loop() && - Object::cast_to<SceneTree>(OS::get_singleton()->get_main_loop()) && - Engine::get_singleton()->is_editor_hint()) { - vsn->validate_input_default_values(); //force validate default values when editing on editor - } + vsn->validate_input_default_values(); //must revalidate all the functions @@ -352,6 +341,7 @@ void VisualScript::add_node(const StringName &p_func, int p_id, const Ref<Visual Ref<VisualScriptNode> vsn = p_node; vsn->connect("ports_changed", this, "_node_ports_changed", varray(p_id)); vsn->scripts_used.insert(this); + vsn->validate_input_default_values(); // Validate when fully loaded func.nodes[p_id] = nd; } @@ -1976,6 +1966,27 @@ void VisualScriptInstance::notification(int p_notification) { call(VisualScriptLanguage::singleton->notification, &whatp, 1, ce); //do as call } +String VisualScriptInstance::to_string(bool *r_valid) { + if (has_method(CoreStringNames::get_singleton()->_to_string)) { + Variant::CallError ce; + Variant ret = call(CoreStringNames::get_singleton()->_to_string, NULL, 0, ce); + if (ce.error == Variant::CallError::CALL_OK) { + if (ret.get_type() != Variant::STRING) { + if (r_valid) + *r_valid = false; + ERR_EXPLAIN("Wrong type for " + CoreStringNames::get_singleton()->_to_string + ", must be a String."); + ERR_FAIL_V(String()); + } + if (r_valid) + *r_valid = true; + return ret.operator String(); + } + } + if (r_valid) + *r_valid = false; + return String(); +} + Ref<Script> VisualScriptInstance::get_script() const { return script; diff --git a/modules/visual_script/visual_script.h b/modules/visual_script/visual_script.h index 0171b8e6f1..89f32f54f7 100644 --- a/modules/visual_script/visual_script.h +++ b/modules/visual_script/visual_script.h @@ -54,7 +54,6 @@ class VisualScriptNode : public Resource { void validate_input_default_values(); protected: - void _notification(int p_what); void ports_changed_notify(); static void _bind_methods(); @@ -405,6 +404,7 @@ public: virtual bool has_method(const StringName &p_method) const; virtual Variant call(const StringName &p_method, const Variant **p_args, int p_argcount, Variant::CallError &r_error); virtual void notification(int p_notification); + String to_string(bool *r_valid); bool set_variable(const StringName &p_variable, const Variant &p_value) { diff --git a/modules/visual_script/visual_script_builtin_funcs.cpp b/modules/visual_script/visual_script_builtin_funcs.cpp index d207656705..75b79f8929 100644 --- a/modules/visual_script/visual_script_builtin_funcs.cpp +++ b/modules/visual_script/visual_script_builtin_funcs.cpp @@ -68,6 +68,7 @@ const char *VisualScriptBuiltinFunc::func_name[VisualScriptBuiltinFunc::FUNC_MAX "lerp", "inverse_lerp", "range_lerp", + "move_toward", "dectime", "randomize", "randi", @@ -206,6 +207,7 @@ int VisualScriptBuiltinFunc::get_func_argument_count(BuiltinFunc p_func) { case MATH_LERP: case MATH_INVERSE_LERP: case MATH_SMOOTHSTEP: + case MATH_MOVE_TOWARD: case MATH_DECTIME: case MATH_WRAP: case MATH_WRAPF: @@ -347,6 +349,14 @@ PropertyInfo VisualScriptBuiltinFunc::get_input_value_port_info(int p_idx) const else return PropertyInfo(Variant::REAL, "weight"); } break; + case MATH_MOVE_TOWARD: { + if (p_idx == 0) + return PropertyInfo(Variant::REAL, "from"); + else if (p_idx == 1) + return PropertyInfo(Variant::REAL, "to"); + else + return PropertyInfo(Variant::REAL, "delta"); + } break; case MATH_DECTIME: { if (p_idx == 0) return PropertyInfo(Variant::REAL, "value"); @@ -580,6 +590,7 @@ PropertyInfo VisualScriptBuiltinFunc::get_output_value_port_info(int p_idx) cons case MATH_INVERSE_LERP: case MATH_RANGE_LERP: case MATH_SMOOTHSTEP: + case MATH_MOVE_TOWARD: case MATH_DECTIME: { t = Variant::REAL; @@ -916,6 +927,13 @@ void VisualScriptBuiltinFunc::exec_func(BuiltinFunc p_func, const Variant **p_in VALIDATE_ARG_NUM(2); *r_return = Math::smoothstep((double)*p_inputs[0], (double)*p_inputs[1], (double)*p_inputs[2]); } break; + case VisualScriptBuiltinFunc::MATH_MOVE_TOWARD: { + + VALIDATE_ARG_NUM(0); + VALIDATE_ARG_NUM(1); + VALIDATE_ARG_NUM(2); + *r_return = Math::move_toward((double)*p_inputs[0], (double)*p_inputs[1], (double)*p_inputs[2]); + } break; case VisualScriptBuiltinFunc::MATH_DECTIME: { VALIDATE_ARG_NUM(0); @@ -1363,6 +1381,7 @@ void VisualScriptBuiltinFunc::_bind_methods() { BIND_ENUM_CONSTANT(MATH_LERP); BIND_ENUM_CONSTANT(MATH_INVERSE_LERP); BIND_ENUM_CONSTANT(MATH_RANGE_LERP); + BIND_ENUM_CONSTANT(MATH_MOVE_TOWARD); BIND_ENUM_CONSTANT(MATH_DECTIME); BIND_ENUM_CONSTANT(MATH_RANDOMIZE); BIND_ENUM_CONSTANT(MATH_RAND); @@ -1453,6 +1472,7 @@ void register_visual_script_builtin_func_node() { VisualScriptLanguage::singleton->add_register_func("functions/built_in/inverse_lerp", create_builtin_func_node<VisualScriptBuiltinFunc::MATH_INVERSE_LERP>); VisualScriptLanguage::singleton->add_register_func("functions/built_in/range_lerp", create_builtin_func_node<VisualScriptBuiltinFunc::MATH_RANGE_LERP>); VisualScriptLanguage::singleton->add_register_func("functions/built_in/smoothstep", create_builtin_func_node<VisualScriptBuiltinFunc::MATH_SMOOTHSTEP>); + VisualScriptLanguage::singleton->add_register_func("functions/built_in/move_toward", create_builtin_func_node<VisualScriptBuiltinFunc::MATH_MOVE_TOWARD>); VisualScriptLanguage::singleton->add_register_func("functions/built_in/dectime", create_builtin_func_node<VisualScriptBuiltinFunc::MATH_DECTIME>); VisualScriptLanguage::singleton->add_register_func("functions/built_in/randomize", create_builtin_func_node<VisualScriptBuiltinFunc::MATH_RANDOMIZE>); VisualScriptLanguage::singleton->add_register_func("functions/built_in/rand", create_builtin_func_node<VisualScriptBuiltinFunc::MATH_RAND>); diff --git a/modules/visual_script/visual_script_builtin_funcs.h b/modules/visual_script/visual_script_builtin_funcs.h index 50854c16b1..3e452cd94f 100644 --- a/modules/visual_script/visual_script_builtin_funcs.h +++ b/modules/visual_script/visual_script_builtin_funcs.h @@ -67,6 +67,7 @@ public: MATH_LERP, MATH_INVERSE_LERP, MATH_RANGE_LERP, + MATH_MOVE_TOWARD, MATH_DECTIME, MATH_RANDOMIZE, MATH_RAND, diff --git a/modules/visual_script/visual_script_editor.cpp b/modules/visual_script/visual_script_editor.cpp index 4f6828bf1c..7c3bad6785 100644 --- a/modules/visual_script/visual_script_editor.cpp +++ b/modules/visual_script/visual_script_editor.cpp @@ -2041,7 +2041,7 @@ void VisualScriptEditor::set_edit_state(const Variant &p_state) { Dictionary d = p_state; if (d.has("function")) { - edited_func = p_state; + edited_func = d["function"]; selected = edited_func; } @@ -2111,6 +2111,9 @@ void VisualScriptEditor::clear_executing_line() { void VisualScriptEditor::trim_trailing_whitespace() { } +void VisualScriptEditor::insert_final_newline() { +} + void VisualScriptEditor::convert_indent_to_spaces() { } @@ -2218,7 +2221,7 @@ Control *VisualScriptEditor::get_edit_menu() { void VisualScriptEditor::_change_base_type() { - select_base_type->popup_create(true); + select_base_type->popup_create(true, true); } void VisualScriptEditor::clear_edit_menu() { @@ -2726,93 +2729,98 @@ void VisualScriptEditor::_selected_connect_node(const String &p_text, const Stri Ref<VisualScriptFunctionCall> vsfc = vsn; vsfc->set_function(p_text); - VisualScriptNode::TypeGuess tg = _guess_output_type(port_action_node, port_action_output, vn); - if (tg.type == Variant::OBJECT) { - vsfc->set_call_mode(VisualScriptFunctionCall::CALL_MODE_INSTANCE); - vsfc->set_base_type(String("")); - if (tg.gdclass != StringName()) { - vsfc->set_base_type(tg.gdclass); + if (p_connecting) { + VisualScriptNode::TypeGuess tg = _guess_output_type(port_action_node, port_action_output, vn); + + if (tg.type == Variant::OBJECT) { + vsfc->set_call_mode(VisualScriptFunctionCall::CALL_MODE_INSTANCE); + vsfc->set_base_type(String("")); + if (tg.gdclass != StringName()) { + vsfc->set_base_type(tg.gdclass); - } else if (script->get_node(edited_func, port_action_node).is_valid()) { - PropertyHint hint = script->get_node(edited_func, port_action_node)->get_output_value_port_info(port_action_output).hint; - String base_type = script->get_node(edited_func, port_action_node)->get_output_value_port_info(port_action_output).hint_string; + } else if (script->get_node(edited_func, port_action_node).is_valid()) { + PropertyHint hint = script->get_node(edited_func, port_action_node)->get_output_value_port_info(port_action_output).hint; + String base_type = script->get_node(edited_func, port_action_node)->get_output_value_port_info(port_action_output).hint_string; - if (base_type != String() && hint == PROPERTY_HINT_TYPE_STRING) { - vsfc->set_base_type(base_type); + if (base_type != String() && hint == PROPERTY_HINT_TYPE_STRING) { + vsfc->set_base_type(base_type); + } + if (p_text == "call" || p_text == "call_deferred") { + vsfc->set_function(String("")); + } } - if (p_text == "call" || p_text == "call_deferred") { - vsfc->set_function(String("")); + if (tg.script.is_valid()) { + vsfc->set_base_script(tg.script->get_path()); } + } else if (tg.type == Variant::NIL) { + vsfc->set_call_mode(VisualScriptFunctionCall::CALL_MODE_INSTANCE); + vsfc->set_base_type(String("")); + } else { + vsfc->set_call_mode(VisualScriptFunctionCall::CALL_MODE_BASIC_TYPE); + vsfc->set_basic_type(tg.type); } - if (tg.script.is_valid()) { - vsfc->set_base_script(tg.script->get_path()); - } - } else if (tg.type == Variant::NIL) { - vsfc->set_call_mode(VisualScriptFunctionCall::CALL_MODE_INSTANCE); - vsfc->set_base_type(String("")); - } else { - vsfc->set_call_mode(VisualScriptFunctionCall::CALL_MODE_BASIC_TYPE); - vsfc->set_basic_type(tg.type); } } - if (Object::cast_to<VisualScriptPropertySet>(vsn.ptr())) { + // if connecting from another node the call mode shouldn't be self + if (p_connecting) { + if (Object::cast_to<VisualScriptPropertySet>(vsn.ptr())) { + Ref<VisualScriptPropertySet> vsp = vsn; - Ref<VisualScriptPropertySet> vsp = vsn; - - VisualScriptNode::TypeGuess tg = _guess_output_type(port_action_node, port_action_output, vn); - if (tg.type == Variant::OBJECT) { - vsp->set_call_mode(VisualScriptPropertySet::CALL_MODE_INSTANCE); - vsp->set_base_type(String("")); - if (tg.gdclass != StringName()) { - vsp->set_base_type(tg.gdclass); + VisualScriptNode::TypeGuess tg = _guess_output_type(port_action_node, port_action_output, vn); + if (tg.type == Variant::OBJECT) { + vsp->set_call_mode(VisualScriptPropertySet::CALL_MODE_INSTANCE); + vsp->set_base_type(String("")); + if (tg.gdclass != StringName()) { + vsp->set_base_type(tg.gdclass); - } else if (script->get_node(edited_func, port_action_node).is_valid()) { - PropertyHint hint = script->get_node(edited_func, port_action_node)->get_output_value_port_info(port_action_output).hint; - String base_type = script->get_node(edited_func, port_action_node)->get_output_value_port_info(port_action_output).hint_string; + } else if (script->get_node(edited_func, port_action_node).is_valid()) { + PropertyHint hint = script->get_node(edited_func, port_action_node)->get_output_value_port_info(port_action_output).hint; + String base_type = script->get_node(edited_func, port_action_node)->get_output_value_port_info(port_action_output).hint_string; - if (base_type != String() && hint == PROPERTY_HINT_TYPE_STRING) { - vsp->set_base_type(base_type); + if (base_type != String() && hint == PROPERTY_HINT_TYPE_STRING) { + vsp->set_base_type(base_type); + } } + if (tg.script.is_valid()) { + vsp->set_base_script(tg.script->get_path()); + } + } else if (tg.type == Variant::NIL) { + vsp->set_call_mode(VisualScriptPropertySet::CALL_MODE_INSTANCE); + vsp->set_base_type(String("")); + } else { + vsp->set_call_mode(VisualScriptPropertySet::CALL_MODE_BASIC_TYPE); + vsp->set_basic_type(tg.type); } - if (tg.script.is_valid()) { - vsp->set_base_script(tg.script->get_path()); - } - } else if (tg.type == Variant::NIL) { - vsp->set_call_mode(VisualScriptPropertySet::CALL_MODE_INSTANCE); - vsp->set_base_type(String("")); - } else { - vsp->set_call_mode(VisualScriptPropertySet::CALL_MODE_BASIC_TYPE); - vsp->set_basic_type(tg.type); } - } - - if (Object::cast_to<VisualScriptPropertyGet>(vsn.ptr())) { - Ref<VisualScriptPropertyGet> vsp = vsn; - VisualScriptNode::TypeGuess tg = _guess_output_type(port_action_node, port_action_output, vn); - if (tg.type == Variant::OBJECT) { - vsp->set_call_mode(VisualScriptPropertyGet::CALL_MODE_INSTANCE); - vsp->set_base_type(String("")); - if (tg.gdclass != StringName()) { - vsp->set_base_type(tg.gdclass); + if (Object::cast_to<VisualScriptPropertyGet>(vsn.ptr())) { + Ref<VisualScriptPropertyGet> vsp = vsn; - } else if (script->get_node(edited_func, port_action_node).is_valid()) { - PropertyHint hint = script->get_node(edited_func, port_action_node)->get_output_value_port_info(port_action_output).hint; - String base_type = script->get_node(edited_func, port_action_node)->get_output_value_port_info(port_action_output).hint_string; - if (base_type != String() && hint == PROPERTY_HINT_TYPE_STRING) { - vsp->set_base_type(base_type); + VisualScriptNode::TypeGuess tg = _guess_output_type(port_action_node, port_action_output, vn); + if (tg.type == Variant::OBJECT) { + vsp->set_call_mode(VisualScriptPropertyGet::CALL_MODE_INSTANCE); + vsp->set_base_type(String("")); + if (tg.gdclass != StringName()) { + vsp->set_base_type(tg.gdclass); + + } else if (script->get_node(edited_func, port_action_node).is_valid()) { + PropertyHint hint = script->get_node(edited_func, port_action_node)->get_output_value_port_info(port_action_output).hint; + String base_type = script->get_node(edited_func, port_action_node)->get_output_value_port_info(port_action_output).hint_string; + if (base_type != String() && hint == PROPERTY_HINT_TYPE_STRING) { + vsp->set_base_type(base_type); + } } + if (tg.script.is_valid()) { + vsp->set_base_script(tg.script->get_path()); + } + } else if (tg.type == Variant::NIL) { + vsp->set_call_mode(VisualScriptPropertyGet::CALL_MODE_INSTANCE); + vsp->set_base_type(String("")); + } else { + vsp->set_call_mode(VisualScriptPropertyGet::CALL_MODE_BASIC_TYPE); + vsp->set_basic_type(tg.type); } - if (tg.script.is_valid()) { - vsp->set_base_script(tg.script->get_path()); - } - } else if (tg.type == Variant::NIL) { - vsp->set_call_mode(VisualScriptPropertyGet::CALL_MODE_INSTANCE); - vsp->set_base_type(String("")); - } else { - vsp->set_call_mode(VisualScriptPropertyGet::CALL_MODE_BASIC_TYPE); - vsp->set_basic_type(tg.type); } } Ref<VisualScriptNode> vnode_old = script->get_node(edited_func, port_action_node); @@ -3614,7 +3622,6 @@ VisualScriptEditor::VisualScriptEditor() { edit_signal_dialog = memnew(AcceptDialog); edit_signal_dialog->get_ok()->set_text(TTR("Close")); add_child(edit_signal_dialog); - edit_signal_dialog->set_title(TTR("Edit Signal Arguments:")); signal_editor = memnew(VisualScriptEditorSignalEdit); edit_signal_edit = memnew(EditorInspector); @@ -3625,7 +3632,6 @@ VisualScriptEditor::VisualScriptEditor() { edit_variable_dialog = memnew(AcceptDialog); edit_variable_dialog->get_ok()->set_text(TTR("Close")); add_child(edit_variable_dialog); - edit_variable_dialog->set_title(TTR("Edit Variable:")); variable_editor = memnew(VisualScriptEditorVariableEdit); edit_variable_edit = memnew(EditorInspector); @@ -3636,7 +3642,6 @@ VisualScriptEditor::VisualScriptEditor() { select_base_type = memnew(CreateDialog); select_base_type->set_base_type("Object"); //anything goes select_base_type->connect("create", this, "_change_base_type_callback"); - select_base_type->get_ok()->set_text(TTR("Change")); add_child(select_base_type); undo_redo = EditorNode::get_singleton()->get_undo_redo(); @@ -3754,4 +3759,7 @@ void _VisualScriptEditor::_bind_methods() { ClassDB::bind_method(D_METHOD("remove_custom_node", "name", "category"), &_VisualScriptEditor::remove_custom_node); ADD_SIGNAL(MethodInfo("custom_nodes_updated")); } + +void VisualScriptEditor::validate() { +} #endif diff --git a/modules/visual_script/visual_script_editor.h b/modules/visual_script/visual_script_editor.h index 3d3a49f672..b66d10021a 100644 --- a/modules/visual_script/visual_script_editor.h +++ b/modules/visual_script/visual_script_editor.h @@ -266,6 +266,7 @@ public: virtual void set_executing_line(int p_line); virtual void clear_executing_line(); virtual void trim_trailing_whitespace(); + virtual void insert_final_newline(); virtual void convert_indent_to_spaces(); virtual void convert_indent_to_tabs(); virtual void ensure_focus(); @@ -280,6 +281,7 @@ public: virtual Control *get_edit_menu(); virtual void clear_edit_menu(); virtual bool can_lose_focus_on_node_selection() { return false; } + virtual void validate(); static void register_editor(); diff --git a/modules/vorbis/audio_stream_ogg_vorbis.cpp b/modules/vorbis/audio_stream_ogg_vorbis.cpp index 692705e411..e652abbe6a 100644 --- a/modules/vorbis/audio_stream_ogg_vorbis.cpp +++ b/modules/vorbis/audio_stream_ogg_vorbis.cpp @@ -143,8 +143,7 @@ int AudioStreamPlaybackOGGVorbis::mix(int16_t *p_buffer, int p_frames) { bool ok = ov_time_seek(&vf, loop_restart_time) == 0; if (!ok) { playing = false; - //ERR_EXPLAIN("loop restart time rejected"); - ERR_PRINT("loop restart time rejected") + ERR_PRINT("Loop restart time rejected"); } frames_mixed = stream_srate * loop_restart_time; diff --git a/modules/vorbis/audio_stream_ogg_vorbis.h b/modules/vorbis/audio_stream_ogg_vorbis.h index fa9d5fe664..a37867d9f9 100644 --- a/modules/vorbis/audio_stream_ogg_vorbis.h +++ b/modules/vorbis/audio_stream_ogg_vorbis.h @@ -127,7 +127,6 @@ public: }; class ResourceFormatLoaderAudioStreamOGGVorbis : public ResourceFormatLoader { - GDCLASS(ResourceFormatLoaderAudioStreamOGGVorbis, ResourceFormatLoader) public: virtual RES load(const String &p_path, const String &p_original_path = "", Error *r_error = NULL); virtual void get_recognized_extensions(List<String> *p_extensions) const; diff --git a/modules/webm/config.py b/modules/webm/config.py index 72a4073423..ba4dcce2f5 100644 --- a/modules/webm/config.py +++ b/modules/webm/config.py @@ -6,7 +6,6 @@ def configure(env): def get_doc_classes(): return [ - "ResourceImporterWebm", "VideoStreamWebm", ] diff --git a/modules/webm/video_stream_webm.cpp b/modules/webm/video_stream_webm.cpp index 6485c95360..3670edc9ea 100644 --- a/modules/webm/video_stream_webm.cpp +++ b/modules/webm/video_stream_webm.cpp @@ -413,10 +413,11 @@ void VideoStreamPlaybackWebm::delete_pointers() { if (audio_frame) memdelete(audio_frame); - for (int i = 0; i < video_frames_capacity; ++i) - memdelete(video_frames[i]); - if (video_frames) + if (video_frames) { + for (int i = 0; i < video_frames_capacity; ++i) + memdelete(video_frames[i]); memfree(video_frames); + } if (video) memdelete(video); diff --git a/modules/webm/video_stream_webm.h b/modules/webm/video_stream_webm.h index 992095ba4c..4e07c86775 100644 --- a/modules/webm/video_stream_webm.h +++ b/modules/webm/video_stream_webm.h @@ -127,7 +127,6 @@ public: }; class ResourceFormatLoaderWebm : public ResourceFormatLoader { - GDCLASS(ResourceFormatLoaderWebm, ResourceFormatLoader) public: virtual RES load(const String &p_path, const String &p_original_path = "", Error *r_error = NULL); virtual void get_recognized_extensions(List<String> *p_extensions) const; diff --git a/modules/webrtc/config.py b/modules/webrtc/config.py index 5ed245bad2..48b4c33c5d 100644 --- a/modules/webrtc/config.py +++ b/modules/webrtc/config.py @@ -6,7 +6,9 @@ def configure(env): def get_doc_classes(): return [ - "WebRTCPeer" + "WebRTCPeerConnection", + "WebRTCDataChannel", + "WebRTCMultiplayer" ] def get_doc_path(): diff --git a/modules/webrtc/doc_classes/WebRTCDataChannel.xml b/modules/webrtc/doc_classes/WebRTCDataChannel.xml new file mode 100644 index 0000000000..7cce97244d --- /dev/null +++ b/modules/webrtc/doc_classes/WebRTCDataChannel.xml @@ -0,0 +1,116 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<class name="WebRTCDataChannel" inherits="PacketPeer" category="Core" version="3.2"> + <brief_description> + </brief_description> + <description> + </description> + <tutorials> + </tutorials> + <methods> + <method name="close"> + <return type="void"> + </return> + <description> + Closes this data channel, notifying the other peer. + </description> + </method> + <method name="get_id" qualifiers="const"> + <return type="int"> + </return> + <description> + Returns the id assigned to this channel during creation (or auto-assigned during negotiation). + If the channel is not negotiated out-of-band the id will only be available after the connection is established (will return [code]65535[/code] until then). + </description> + </method> + <method name="get_label" qualifiers="const"> + <return type="String"> + </return> + <description> + Returns the label assigned to this channel during creation. + </description> + </method> + <method name="get_max_packet_life_time" qualifiers="const"> + <return type="int"> + </return> + <description> + Returns the [code]maxPacketLifeTime[/code] value assigned to this channel during creation. + Will be [code]65535[/code] if not specified. + </description> + </method> + <method name="get_max_retransmits" qualifiers="const"> + <return type="int"> + </return> + <description> + Returns the [code]maxRetransmits[/code] value assigned to this channel during creation. + Will be [code]65535[/code] if not specified. + </description> + </method> + <method name="get_protocol" qualifiers="const"> + <return type="String"> + </return> + <description> + Returns the sub-protocol assigned to this channel during creation. An empty string if not specified. + </description> + </method> + <method name="get_ready_state" qualifiers="const"> + <return type="int" enum="WebRTCDataChannel.ChannelState"> + </return> + <description> + Returns the current state of this channel, see [enum WebRTCDataChannel.ChannelState]. + </description> + </method> + <method name="is_negotiated" qualifiers="const"> + <return type="bool"> + </return> + <description> + Returns [code]true[/code] if this channel was created with out-of-band configuration. + </description> + </method> + <method name="is_ordered" qualifiers="const"> + <return type="bool"> + </return> + <description> + Returns [code]true[/code] if this channel was created with ordering enabled (default). + </description> + </method> + <method name="poll"> + <return type="int" enum="Error"> + </return> + <description> + Reserved, but not used for now. + </description> + </method> + <method name="was_string_packet" qualifiers="const"> + <return type="bool"> + </return> + <description> + Returns [code]true[/code] if the last received packet was transferred as text. See [member write_mode]. + </description> + </method> + </methods> + <members> + <member name="write_mode" type="int" setter="set_write_mode" getter="get_write_mode" enum="WebRTCDataChannel.WriteMode"> + The transfer mode to use when sending outgoing packet. Either text or binary. + </member> + </members> + <constants> + <constant name="WRITE_MODE_TEXT" value="0" enum="WriteMode"> + Tells the channel to send data over this channel as text. An external peer (non-Godot) would receive this as a string. + </constant> + <constant name="WRITE_MODE_BINARY" value="1" enum="WriteMode"> + Tells the channel to send data over this channel as binary. An external peer (non-Godot) would receive this as array buffer or blob. + </constant> + <constant name="STATE_CONNECTING" value="0" enum="ChannelState"> + The channel was created, but it's still trying to connect. + </constant> + <constant name="STATE_OPEN" value="1" enum="ChannelState"> + The channel is currently open, and data can flow over it. + </constant> + <constant name="STATE_CLOSING" value="2" enum="ChannelState"> + The channel is being closed, no new messages will be accepted, but those already in queue will be flushed. + </constant> + <constant name="STATE_CLOSED" value="3" enum="ChannelState"> + The channel was closed, or connection failed. + </constant> + </constants> +</class> diff --git a/modules/webrtc/doc_classes/WebRTCMultiplayer.xml b/modules/webrtc/doc_classes/WebRTCMultiplayer.xml new file mode 100644 index 0000000000..2b0622fffa --- /dev/null +++ b/modules/webrtc/doc_classes/WebRTCMultiplayer.xml @@ -0,0 +1,85 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<class name="WebRTCMultiplayer" inherits="NetworkedMultiplayerPeer" category="Core" version="3.2"> + <brief_description> + A simple interface to create a peer-to-peer mesh network composed of [WebRTCPeerConnection] that is compatible with the [MultiplayerAPI]. + </brief_description> + <description> + This class constructs a full mesh of [WebRTCPeerConnection] (one connection for each peer) that can be used as a [member MultiplayerAPI.network_peer]. + You can add each [WebRTCPeerConnection] via [method add_peer] or remove them via [method remove_peer]. Peers must be added in [constant WebRTCPeerConnection.STATE_NEW] state to allow it to create the appropriate channels. This class will not create offers nor set descriptions, it will only poll them, and notify connections and disconnections. + [signal NetworkedMultiplayerPeer.connection_succeeded] and [signal NetworkedMultiplayerPeer.server_disconnected] will not be emitted unless [code]server_compatibility[/code] is [code]true[/code] in [method initialize]. Beside that data transfer works like in a [NetworkedMultiplayerPeer]. + </description> + <tutorials> + </tutorials> + <methods> + <method name="add_peer"> + <return type="int" enum="Error"> + </return> + <argument index="0" name="peer" type="WebRTCPeerConnection"> + </argument> + <argument index="1" name="peer_id" type="int"> + </argument> + <argument index="2" name="unreliable_lifetime" type="int" default="1"> + </argument> + <description> + Add a new peer to the mesh with the given [code]peer_id[/code]. The [WebRTCPeerConnection] must be in state [constant WebRTCPeerConnection.STATE_NEW]. + Three channels will be created for reliable, unreliable, and ordered transport. The value of [code]unreliable_lifetime[/code] will be passed to the [code]maxPacketLifetime[/code] option when creating unreliable and ordered channels (see [method WebRTCPeerConnection.create_data_channel]). + </description> + </method> + <method name="close"> + <return type="void"> + </return> + <description> + Close all the add peer connections and channels, freeing all resources. + </description> + </method> + <method name="get_peer"> + <return type="Dictionary"> + </return> + <argument index="0" name="peer_id" type="int"> + </argument> + <description> + Return a dictionary representation of the peer with given [code]peer_id[/code] with three keys. [code]connection[/code] containing the [WebRTCPeerConnection] to this peer, [code]channels[/code] an array of three [WebRTCDataChannel], and [code]connected[/code] a boolean representing if the peer connection is currently connected (all three channels are open). + </description> + </method> + <method name="get_peers"> + <return type="Dictionary"> + </return> + <description> + Returns a dictionary which keys are the peer ids and values the peer representation as in [method get_peer] + </description> + </method> + <method name="has_peer"> + <return type="bool"> + </return> + <argument index="0" name="peer_id" type="int"> + </argument> + <description> + Returns [code]true[/code] if the given [code]peer_id[/code] is in the peers map (it might not be connected though). + </description> + </method> + <method name="initialize"> + <return type="int" enum="Error"> + </return> + <argument index="0" name="peer_id" type="int"> + </argument> + <argument index="1" name="server_compatibility" type="bool" default="false"> + </argument> + <description> + Initialize the multiplayer peer with the given [code]peer_id[/code] (must be between 1 and 2147483647). + If [code]server_compatibilty[/code] is [code]false[/code] (default), the multiplayer peer will be immediately in state [constant NetworkedMultiplayerPeer.CONNECTION_CONNECTED] and [signal NetworkedMultiplayerPeer.connection_succeeded] will not be emitted. + If [code]server_compatibilty[/code] is [code]true[/code] the peer will suppress all [signal NetworkedMultiplayerPeer.peer_connected] signals until a peer with id [constant NetworkedMultiplayerPeer.TARGET_PEER_SERVER] connects and then emit [signal NetworkedMultiplayerPeer.connection_succeeded]. After that the signal [signal NetworkedMultiplayerPeer.peer_connected] will be emitted for every already connected peer, and any new peer that might connect. If the server peer disconnects after that, signal [signal NetworkedMultiplayerPeer.server_disconnected] will be emitted and state will become [constant NetworkedMultiplayerPeer.CONNECTION_CONNECTED]. + </description> + </method> + <method name="remove_peer"> + <return type="void"> + </return> + <argument index="0" name="peer_id" type="int"> + </argument> + <description> + Remove the peer with given [code]peer_id[/code] from the mesh. If the peer was connected, and [signal NetworkedMultiplayerPeer.peer_connected] was emitted for it, then [signal NetworkedMultiplayerPeer.peer_disconnected] will be emitted. + </description> + </method> + </methods> + <constants> + </constants> +</class> diff --git a/modules/webrtc/doc_classes/WebRTCPeer.xml b/modules/webrtc/doc_classes/WebRTCPeer.xml deleted file mode 100644 index 18d1345623..0000000000 --- a/modules/webrtc/doc_classes/WebRTCPeer.xml +++ /dev/null @@ -1,109 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" ?> -<class name="WebRTCPeer" inherits="PacketPeer" category="Core" version="3.2"> - <brief_description> - </brief_description> - <description> - </description> - <tutorials> - </tutorials> - <methods> - <method name="add_ice_candidate"> - <return type="int" enum="Error"> - </return> - <argument index="0" name="media" type="String"> - </argument> - <argument index="1" name="index" type="int"> - </argument> - <argument index="2" name="name" type="String"> - </argument> - <description> - </description> - </method> - <method name="create_offer"> - <return type="int" enum="Error"> - </return> - <description> - </description> - </method> - <method name="get_connection_state" qualifiers="const"> - <return type="int" enum="WebRTCPeer.ConnectionState"> - </return> - <description> - </description> - </method> - <method name="poll"> - <return type="int" enum="Error"> - </return> - <description> - </description> - </method> - <method name="set_local_description"> - <return type="int" enum="Error"> - </return> - <argument index="0" name="type" type="String"> - </argument> - <argument index="1" name="sdp" type="String"> - </argument> - <description> - </description> - </method> - <method name="set_remote_description"> - <return type="int" enum="Error"> - </return> - <argument index="0" name="type" type="String"> - </argument> - <argument index="1" name="sdp" type="String"> - </argument> - <description> - </description> - </method> - <method name="was_string_packet" qualifiers="const"> - <return type="bool"> - </return> - <description> - </description> - </method> - </methods> - <members> - <member name="write_mode" type="int" setter="set_write_mode" getter="get_write_mode" enum="WebRTCPeer.WriteMode"> - </member> - </members> - <signals> - <signal name="new_ice_candidate"> - <argument index="0" name="media" type="String"> - </argument> - <argument index="1" name="index" type="int"> - </argument> - <argument index="2" name="name" type="String"> - </argument> - <description> - </description> - </signal> - <signal name="offer_created"> - <argument index="0" name="type" type="String"> - </argument> - <argument index="1" name="sdp" type="String"> - </argument> - <description> - </description> - </signal> - </signals> - <constants> - <constant name="WRITE_MODE_TEXT" value="0" enum="WriteMode"> - </constant> - <constant name="WRITE_MODE_BINARY" value="1" enum="WriteMode"> - </constant> - <constant name="STATE_NEW" value="0" enum="ConnectionState"> - </constant> - <constant name="STATE_CONNECTING" value="1" enum="ConnectionState"> - </constant> - <constant name="STATE_CONNECTED" value="2" enum="ConnectionState"> - </constant> - <constant name="STATE_DISCONNECTED" value="3" enum="ConnectionState"> - </constant> - <constant name="STATE_FAILED" value="4" enum="ConnectionState"> - </constant> - <constant name="STATE_CLOSED" value="5" enum="ConnectionState"> - </constant> - </constants> -</class> diff --git a/modules/webrtc/doc_classes/WebRTCPeerConnection.xml b/modules/webrtc/doc_classes/WebRTCPeerConnection.xml new file mode 100644 index 0000000000..ae709877f4 --- /dev/null +++ b/modules/webrtc/doc_classes/WebRTCPeerConnection.xml @@ -0,0 +1,190 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<class name="WebRTCPeerConnection" inherits="Reference" category="Core" version="3.2"> + <brief_description> + Interface to a WebRTC peer connection. + </brief_description> + <description> + A WebRTC connection between the local computer and a remote peer. Provides an interface to connect, maintain and monitor the connection. + Setting up a WebRTC connection between two peers from now on) may not seem a trivial task, but it can be broken down into 3 main steps: + - The peer that wants to initiate the connection ([code]A[/code] from now on) creates an offer and send it to the other peer ([code]B[/code] from now on). + - [code]B[/code] receives the offer, generate and answer, and sends it to [code]B[/code]). + - [code]A[/code] and [code]B[/code] then generates and exchange ICE candidates with each other. + After these steps, the connection should become connected. Keep on reading or look into the tutorial for more information. + </description> + <tutorials> + </tutorials> + <methods> + <method name="add_ice_candidate"> + <return type="int" enum="Error"> + </return> + <argument index="0" name="media" type="String"> + </argument> + <argument index="1" name="index" type="int"> + </argument> + <argument index="2" name="name" type="String"> + </argument> + <description> + Add an ice candidate generated by a remote peer (and received over the signaling server). See [signal ice_candidate_created]. + </description> + </method> + <method name="close"> + <return type="void"> + </return> + <description> + Close the peer connection and all data channels associated with it. Note, you cannot reuse this object for a new connection unless you call [method initialize]. + </description> + </method> + <method name="create_data_channel"> + <return type="WebRTCDataChannel"> + </return> + <argument index="0" name="label" type="String"> + </argument> + <argument index="1" name="options" type="Dictionary" default="{ + +}"> + </argument> + <description> + Returns a new [WebRTCDataChannel] (or [code]null[/code] on failure) with given [code]label[/code] and optionally configured via the [code]options[/code] dictionary. This method can only be called when the connection is in state [constant STATE_NEW]. + There are two ways to create a working data channel: either call [method create_data_channel] on only one of the peer and listen to [signal data_channel_received] on the other, or call [method create_data_channel] on both peers, with the same values, and the [code]negotiated[/code] option set to [code]true[/code]. + Valid [code]options[/code] are: + [codeblock] + { + "negotiated": true, # When set to true (default off), means the channel is negotiated out of band. "id" must be set too. data_channel_received will not be called. + "id": 1, # When "negotiated" is true this value must also be set to the same value on both peer. + + # Only one of maxRetransmits and maxPacketLifeTime can be specified, not both. They make the channel unreliable (but also better at real time). + "maxRetransmits": 1, # Specify the maximum number of attempt the peer will make to retransmits packets if they are not acknowledged. + "maxPacketLifeTime": 100, # Specify the maximum amount of time before giving up retransmitions of unacknowledged packets (in milliseconds). + "ordered": true, # When in unreliable mode (i.e. either "maxRetransmits" or "maxPacketLifetime" is set), "ordered" (true by default) specify if packet ordering is to be enforced. + + "protocol": "my-custom-protocol", # A custom sub-protocol string for this channel. + } + [/codeblock] + NOTE: You must keep a reference to channels created this way, or it will be closed. + </description> + </method> + <method name="create_offer"> + <return type="int" enum="Error"> + </return> + <description> + Creates a new SDP offer to start a WebRTC connection with a remote peer. At least one [WebRTCDataChannel] must have been created before calling this method. + If this functions returns [code]OK[/code], [signal session_description_created] will be called when the session is ready to be sent. + </description> + </method> + <method name="get_connection_state" qualifiers="const"> + <return type="int" enum="WebRTCPeerConnection.ConnectionState"> + </return> + <description> + Returns the connection state. See [enum ConnectionState]. + </description> + </method> + <method name="initialize"> + <return type="int" enum="Error"> + </return> + <argument index="0" name="configuration" type="Dictionary" default="{ + +}"> + </argument> + <description> + Re-initialize this peer connection, closing any previously active connection, and going back to state [constant STATE_NEW]. A dictionary of [code]options[/code] can be passed to configure the peer connection. + Valid [code]options[/code] are: + [codeblock] + { + "iceServers": [ + { + "urls": [ "stun:stun.example.com:3478" ], # One or more STUN servers. + }, + { + "urls": [ "turn:turn.example.com:3478" ], # One or more TURN servers. + "username": "a_username", # Optional username for the TURN server. + "credentials": "a_password", # Optional password for the TURN server. + } + ] + } + [/codeblock] + </description> + </method> + <method name="poll"> + <return type="int" enum="Error"> + </return> + <description> + Call this method frequently (e.g. in [method Node._process] or [method Node._physics_process]) to properly receive signals. + </description> + </method> + <method name="set_local_description"> + <return type="int" enum="Error"> + </return> + <argument index="0" name="type" type="String"> + </argument> + <argument index="1" name="sdp" type="String"> + </argument> + <description> + Sets the SDP description of the local peer. This should be called in response to [signal session_description_created]. + If [code]type[/code] is [code]answer[/code] the peer will start emitting [signal ice_candidate_created]. + </description> + </method> + <method name="set_remote_description"> + <return type="int" enum="Error"> + </return> + <argument index="0" name="type" type="String"> + </argument> + <argument index="1" name="sdp" type="String"> + </argument> + <description> + Sets the SDP description of the remote peer. This should be called with the values generated by a remote peer and received over the signaling server. + If [code]type[/code] is [code]offer[/code] the peer will emit [signal session_description_created] with the appropriate answer. + If [code]type[/code] is [code]answer[/code] the peer will start emitting [signal ice_candidate_created]. + </description> + </method> + </methods> + <signals> + <signal name="data_channel_received"> + <argument index="0" name="channel" type="Object"> + </argument> + <description> + Emitted when a new in-band channel is received, i.e. when the channel was created with [code]negotiated: false[/code] (default). + The object will be an instance of [WebRTCDataChannel]. You must keep a reference of it or it will be closed automatically. See [method create_data_channel] + </description> + </signal> + <signal name="ice_candidate_created"> + <argument index="0" name="media" type="String"> + </argument> + <argument index="1" name="index" type="int"> + </argument> + <argument index="2" name="name" type="String"> + </argument> + <description> + Emitted when a new ICE candidate has been created. The three parameters are meant to be passed to the remote peer over the signaling server. + </description> + </signal> + <signal name="session_description_created"> + <argument index="0" name="type" type="String"> + </argument> + <argument index="1" name="sdp" type="String"> + </argument> + <description> + Emitted after a successful call to [method create_offer] or [method set_remote_description] (when it generates an answer). The parameters are meant to be passed to [method set_local_description] on this object, and sent to the remote peer over the signaling server. + </description> + </signal> + </signals> + <constants> + <constant name="STATE_NEW" value="0" enum="ConnectionState"> + The connection is new, data channels and an offer can be created in this state. + </constant> + <constant name="STATE_CONNECTING" value="1" enum="ConnectionState"> + The peer is connecting, ICE is in progress, non of the transports has failed. + </constant> + <constant name="STATE_CONNECTED" value="2" enum="ConnectionState"> + The peer is connected, all ICE transports are connected. + </constant> + <constant name="STATE_DISCONNECTED" value="3" enum="ConnectionState"> + At least one ICE transport is disconnected. + </constant> + <constant name="STATE_FAILED" value="4" enum="ConnectionState"> + One or more of the ICE transports failed. + </constant> + <constant name="STATE_CLOSED" value="5" enum="ConnectionState"> + The peer connection is closed (after calling [method close] for example). + </constant> + </constants> +</class> diff --git a/modules/webrtc/register_types.cpp b/modules/webrtc/register_types.cpp index ee7a766bd9..58b68d926b 100644 --- a/modules/webrtc/register_types.cpp +++ b/modules/webrtc/register_types.cpp @@ -5,8 +5,8 @@ /* GODOT ENGINE */ /* https://godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur. */ -/* Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md) */ +/* 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 */ @@ -29,27 +29,33 @@ /*************************************************************************/ #include "register_types.h" -#include "webrtc_peer.h" +#include "webrtc_data_channel.h" +#include "webrtc_peer_connection.h" #ifdef JAVASCRIPT_ENABLED #include "emscripten.h" -#include "webrtc_peer_js.h" +#include "webrtc_peer_connection_js.h" #endif #ifdef WEBRTC_GDNATIVE_ENABLED -#include "webrtc_peer_gdnative.h" +#include "webrtc_data_channel_gdnative.h" +#include "webrtc_peer_connection_gdnative.h" #endif +#include "webrtc_multiplayer.h" void register_webrtc_types() { #ifdef JAVASCRIPT_ENABLED - WebRTCPeerJS::make_default(); + WebRTCPeerConnectionJS::make_default(); #elif defined(WEBRTC_GDNATIVE_ENABLED) - WebRTCPeerGDNative::make_default(); + WebRTCPeerConnectionGDNative::make_default(); #endif - ClassDB::register_custom_instance_class<WebRTCPeer>(); + ClassDB::register_custom_instance_class<WebRTCPeerConnection>(); #ifdef WEBRTC_GDNATIVE_ENABLED - ClassDB::register_class<WebRTCPeerGDNative>(); + ClassDB::register_class<WebRTCPeerConnectionGDNative>(); + ClassDB::register_class<WebRTCDataChannelGDNative>(); #endif + ClassDB::register_virtual_class<WebRTCDataChannel>(); + ClassDB::register_class<WebRTCMultiplayer>(); } void unregister_webrtc_types() {} diff --git a/modules/webrtc/register_types.h b/modules/webrtc/register_types.h index 18a5dcc5aa..4923547a95 100644 --- a/modules/webrtc/register_types.h +++ b/modules/webrtc/register_types.h @@ -5,8 +5,8 @@ /* GODOT ENGINE */ /* https://godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur. */ -/* Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md) */ +/* 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 */ diff --git a/modules/webrtc/webrtc_data_channel.cpp b/modules/webrtc/webrtc_data_channel.cpp new file mode 100644 index 0000000000..2bd30e68f5 --- /dev/null +++ b/modules/webrtc/webrtc_data_channel.cpp @@ -0,0 +1,64 @@ +/*************************************************************************/ +/* webrtc_data_channel.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 "webrtc_data_channel.h" + +void WebRTCDataChannel::_bind_methods() { + ClassDB::bind_method(D_METHOD("poll"), &WebRTCDataChannel::poll); + ClassDB::bind_method(D_METHOD("close"), &WebRTCDataChannel::close); + + ClassDB::bind_method(D_METHOD("was_string_packet"), &WebRTCDataChannel::was_string_packet); + ClassDB::bind_method(D_METHOD("set_write_mode", "write_mode"), &WebRTCDataChannel::set_write_mode); + ClassDB::bind_method(D_METHOD("get_write_mode"), &WebRTCDataChannel::get_write_mode); + ClassDB::bind_method(D_METHOD("get_ready_state"), &WebRTCDataChannel::get_ready_state); + ClassDB::bind_method(D_METHOD("get_label"), &WebRTCDataChannel::get_label); + ClassDB::bind_method(D_METHOD("is_ordered"), &WebRTCDataChannel::is_ordered); + ClassDB::bind_method(D_METHOD("get_id"), &WebRTCDataChannel::get_id); + ClassDB::bind_method(D_METHOD("get_max_packet_life_time"), &WebRTCDataChannel::get_max_packet_life_time); + ClassDB::bind_method(D_METHOD("get_max_retransmits"), &WebRTCDataChannel::get_max_retransmits); + ClassDB::bind_method(D_METHOD("get_protocol"), &WebRTCDataChannel::get_protocol); + ClassDB::bind_method(D_METHOD("is_negotiated"), &WebRTCDataChannel::is_negotiated); + + ADD_PROPERTY(PropertyInfo(Variant::INT, "write_mode", PROPERTY_HINT_ENUM), "set_write_mode", "get_write_mode"); + + BIND_ENUM_CONSTANT(WRITE_MODE_TEXT); + BIND_ENUM_CONSTANT(WRITE_MODE_BINARY); + + BIND_ENUM_CONSTANT(STATE_CONNECTING); + BIND_ENUM_CONSTANT(STATE_OPEN); + BIND_ENUM_CONSTANT(STATE_CLOSING); + BIND_ENUM_CONSTANT(STATE_CLOSED); +} + +WebRTCDataChannel::WebRTCDataChannel() { +} + +WebRTCDataChannel::~WebRTCDataChannel() { +} diff --git a/modules/webrtc/webrtc_peer.h b/modules/webrtc/webrtc_data_channel.h index e141c14655..0b161da784 100644 --- a/modules/webrtc/webrtc_peer.h +++ b/modules/webrtc/webrtc_data_channel.h @@ -1,12 +1,12 @@ /*************************************************************************/ -/* webrtc_peer.h */ +/* webrtc_data_channel.h */ /*************************************************************************/ /* This file is part of: */ /* GODOT ENGINE */ /* https://godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur. */ -/* Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md) */ +/* 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 */ @@ -28,13 +28,13 @@ /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /*************************************************************************/ -#ifndef WEBRTC_PEER_H -#define WEBRTC_PEER_H +#ifndef WEBRTC_DATA_CHANNEL_H +#define WEBRTC_DATA_CHANNEL_H #include "core/io/packet_peer.h" -class WebRTCPeer : public PacketPeer { - GDCLASS(WebRTCPeer, PacketPeer); +class WebRTCDataChannel : public PacketPeer { + GDCLASS(WebRTCDataChannel, PacketPeer); public: enum WriteMode { @@ -42,30 +42,32 @@ public: WRITE_MODE_BINARY, }; - enum ConnectionState { - STATE_NEW, + enum ChannelState { STATE_CONNECTING, - STATE_CONNECTED, - STATE_DISCONNECTED, - STATE_FAILED, + STATE_OPEN, + STATE_CLOSING, STATE_CLOSED }; protected: static void _bind_methods(); - static WebRTCPeer *(*_create)(); public: virtual void set_write_mode(WriteMode mode) = 0; virtual WriteMode get_write_mode() const = 0; virtual bool was_string_packet() const = 0; - virtual ConnectionState get_connection_state() const = 0; - virtual Error create_offer() = 0; - virtual Error set_remote_description(String type, String sdp) = 0; - virtual Error set_local_description(String type, String sdp) = 0; - virtual Error add_ice_candidate(String sdpMidName, int sdpMlineIndexName, String sdpName) = 0; + virtual ChannelState get_ready_state() const = 0; + virtual String get_label() const = 0; + virtual bool is_ordered() const = 0; + virtual int get_id() const = 0; + virtual int get_max_packet_life_time() const = 0; + virtual int get_max_retransmits() const = 0; + virtual String get_protocol() const = 0; + virtual bool is_negotiated() const = 0; + virtual Error poll() = 0; + virtual void close() = 0; /** Inherited from PacketPeer: **/ virtual int get_available_packet_count() const = 0; @@ -74,13 +76,10 @@ public: virtual int get_max_packet_size() const = 0; - static Ref<WebRTCPeer> create_ref(); - static WebRTCPeer *create(); - - WebRTCPeer(); - ~WebRTCPeer(); + WebRTCDataChannel(); + ~WebRTCDataChannel(); }; -VARIANT_ENUM_CAST(WebRTCPeer::WriteMode); -VARIANT_ENUM_CAST(WebRTCPeer::ConnectionState); -#endif // WEBRTC_PEER_H +VARIANT_ENUM_CAST(WebRTCDataChannel::WriteMode); +VARIANT_ENUM_CAST(WebRTCDataChannel::ChannelState); +#endif // WEBRTC_DATA_CHANNEL_H diff --git a/modules/webrtc/webrtc_peer_gdnative.cpp b/modules/webrtc/webrtc_data_channel_gdnative.cpp index f782944980..4f33491af2 100644 --- a/modules/webrtc/webrtc_peer_gdnative.cpp +++ b/modules/webrtc/webrtc_data_channel_gdnative.cpp @@ -1,12 +1,12 @@ /*************************************************************************/ -/* webrtc_peer_gdnative.cpp */ +/* webrtc_data_channel_gdnative.cpp */ /*************************************************************************/ /* This file is part of: */ /* GODOT ENGINE */ /* https://godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur. */ -/* Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md) */ +/* 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 */ @@ -30,84 +30,106 @@ #ifdef WEBRTC_GDNATIVE_ENABLED -#include "webrtc_peer_gdnative.h" +#include "webrtc_data_channel_gdnative.h" +#include "core/io/resource_loader.h" +#include "modules/gdnative/nativescript/nativescript.h" -void WebRTCPeerGDNative::_bind_methods() { +void WebRTCDataChannelGDNative::_bind_methods() { } -WebRTCPeerGDNative::WebRTCPeerGDNative() { +WebRTCDataChannelGDNative::WebRTCDataChannelGDNative() { interface = NULL; } -WebRTCPeerGDNative::~WebRTCPeerGDNative() { +WebRTCDataChannelGDNative::~WebRTCDataChannelGDNative() { } -Error WebRTCPeerGDNative::create_offer() { +Error WebRTCDataChannelGDNative::poll() { ERR_FAIL_COND_V(interface == NULL, ERR_UNCONFIGURED); - return (Error)interface->create_offer(interface->data); + return (Error)interface->poll(interface->data); } -Error WebRTCPeerGDNative::set_local_description(String p_type, String p_sdp) { - ERR_FAIL_COND_V(interface == NULL, ERR_UNCONFIGURED); - return (Error)interface->set_local_description(interface->data, p_type.utf8().get_data(), p_sdp.utf8().get_data()); +void WebRTCDataChannelGDNative::close() { + ERR_FAIL_COND(interface == NULL); + interface->close(interface->data); } -Error WebRTCPeerGDNative::set_remote_description(String p_type, String p_sdp) { - ERR_FAIL_COND_V(interface == NULL, ERR_UNCONFIGURED); - return (Error)interface->set_remote_description(interface->data, p_type.utf8().get_data(), p_sdp.utf8().get_data()); +void WebRTCDataChannelGDNative::set_write_mode(WriteMode p_mode) { + ERR_FAIL_COND(interface == NULL); + interface->set_write_mode(interface->data, p_mode); } -Error WebRTCPeerGDNative::add_ice_candidate(String sdpMidName, int sdpMlineIndexName, String sdpName) { - ERR_FAIL_COND_V(interface == NULL, ERR_UNCONFIGURED); - return (Error)interface->add_ice_candidate(interface->data, sdpMidName.utf8().get_data(), sdpMlineIndexName, sdpName.utf8().get_data()); +WebRTCDataChannel::WriteMode WebRTCDataChannelGDNative::get_write_mode() const { + ERR_FAIL_COND_V(interface == NULL, WRITE_MODE_BINARY); + return (WriteMode)interface->get_write_mode(interface->data); } -Error WebRTCPeerGDNative::poll() { - ERR_FAIL_COND_V(interface == NULL, ERR_UNCONFIGURED); - return (Error)interface->poll(interface->data); +bool WebRTCDataChannelGDNative::was_string_packet() const { + ERR_FAIL_COND_V(interface == NULL, false); + return interface->was_string_packet(interface->data); } -void WebRTCPeerGDNative::set_write_mode(WriteMode p_mode) { - ERR_FAIL_COND(interface == NULL); - interface->set_write_mode(interface->data, p_mode); +WebRTCDataChannel::ChannelState WebRTCDataChannelGDNative::get_ready_state() const { + ERR_FAIL_COND_V(interface == NULL, STATE_CLOSED); + return (ChannelState)interface->get_ready_state(interface->data); } -WebRTCPeer::WriteMode WebRTCPeerGDNative::get_write_mode() const { - ERR_FAIL_COND_V(interface == NULL, WRITE_MODE_BINARY); - return (WriteMode)interface->get_write_mode(interface->data); +String WebRTCDataChannelGDNative::get_label() const { + ERR_FAIL_COND_V(interface == NULL, ""); + return String(interface->get_label(interface->data)); } -bool WebRTCPeerGDNative::was_string_packet() const { +bool WebRTCDataChannelGDNative::is_ordered() const { ERR_FAIL_COND_V(interface == NULL, false); - return interface->was_string_packet(interface->data); + return interface->is_ordered(interface->data); } -WebRTCPeer::ConnectionState WebRTCPeerGDNative::get_connection_state() const { - ERR_FAIL_COND_V(interface == NULL, STATE_DISCONNECTED); - return STATE_DISCONNECTED; +int WebRTCDataChannelGDNative::get_id() const { + ERR_FAIL_COND_V(interface == NULL, -1); + return interface->get_id(interface->data); +} + +int WebRTCDataChannelGDNative::get_max_packet_life_time() const { + ERR_FAIL_COND_V(interface == NULL, -1); + return interface->get_max_packet_life_time(interface->data); +} + +int WebRTCDataChannelGDNative::get_max_retransmits() const { + ERR_FAIL_COND_V(interface == NULL, -1); + return interface->get_max_retransmits(interface->data); +} + +String WebRTCDataChannelGDNative::get_protocol() const { + ERR_FAIL_COND_V(interface == NULL, ""); + return String(interface->get_protocol(interface->data)); +} + +bool WebRTCDataChannelGDNative::is_negotiated() const { + ERR_FAIL_COND_V(interface == NULL, false); + return interface->is_negotiated(interface->data); } -Error WebRTCPeerGDNative::get_packet(const uint8_t **r_buffer, int &r_buffer_size) { +Error WebRTCDataChannelGDNative::get_packet(const uint8_t **r_buffer, int &r_buffer_size) { ERR_FAIL_COND_V(interface == NULL, ERR_UNCONFIGURED); return (Error)interface->get_packet(interface->data, r_buffer, &r_buffer_size); } -Error WebRTCPeerGDNative::put_packet(const uint8_t *p_buffer, int p_buffer_size) { +Error WebRTCDataChannelGDNative::put_packet(const uint8_t *p_buffer, int p_buffer_size) { ERR_FAIL_COND_V(interface == NULL, ERR_UNCONFIGURED); return (Error)interface->put_packet(interface->data, p_buffer, p_buffer_size); } -int WebRTCPeerGDNative::get_max_packet_size() const { +int WebRTCDataChannelGDNative::get_max_packet_size() const { ERR_FAIL_COND_V(interface == NULL, 0); return interface->get_max_packet_size(interface->data); } -int WebRTCPeerGDNative::get_available_packet_count() const { +int WebRTCDataChannelGDNative::get_available_packet_count() const { ERR_FAIL_COND_V(interface == NULL, 0); return interface->get_available_packet_count(interface->data); } -void WebRTCPeerGDNative::set_native_webrtc_peer(const godot_net_webrtc_peer *p_impl) { +void WebRTCDataChannelGDNative::set_native_webrtc_data_channel(const godot_net_webrtc_data_channel *p_impl) { interface = p_impl; } diff --git a/modules/webrtc/webrtc_peer_gdnative.h b/modules/webrtc/webrtc_data_channel_gdnative.h index 6786cec8ea..3685f86353 100644 --- a/modules/webrtc/webrtc_peer_gdnative.h +++ b/modules/webrtc/webrtc_data_channel_gdnative.h @@ -1,12 +1,12 @@ /*************************************************************************/ -/* webrtc_peer_gdnative.h */ +/* webrtc_data_channel_gdnative.h */ /*************************************************************************/ /* This file is part of: */ /* GODOT ENGINE */ /* https://godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur. */ -/* Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md) */ +/* 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 */ @@ -30,37 +30,39 @@ #ifdef WEBRTC_GDNATIVE_ENABLED -#ifndef WEBRTC_PEER_GDNATIVE_H -#define WEBRTC_PEER_GDNATIVE_H +#ifndef WEBRTC_DATA_CHANNEL_GDNATIVE_H +#define WEBRTC_DATA_CHANNEL_GDNATIVE_H #include "modules/gdnative/include/net/godot_net.h" -#include "webrtc_peer.h" +#include "webrtc_data_channel.h" -class WebRTCPeerGDNative : public WebRTCPeer { - GDCLASS(WebRTCPeerGDNative, WebRTCPeer); +class WebRTCDataChannelGDNative : public WebRTCDataChannel { + GDCLASS(WebRTCDataChannelGDNative, WebRTCDataChannel); protected: static void _bind_methods(); private: - const godot_net_webrtc_peer *interface; + const godot_net_webrtc_data_channel *interface; public: - static WebRTCPeer *_create() { return memnew(WebRTCPeerGDNative); } - static void make_default() { WebRTCPeer::_create = WebRTCPeerGDNative::_create; } - - void set_native_webrtc_peer(const godot_net_webrtc_peer *p_impl); + void set_native_webrtc_data_channel(const godot_net_webrtc_data_channel *p_impl); virtual void set_write_mode(WriteMode mode); virtual WriteMode get_write_mode() const; virtual bool was_string_packet() const; - virtual ConnectionState get_connection_state() const; - virtual Error create_offer(); - virtual Error set_remote_description(String type, String sdp); - virtual Error set_local_description(String type, String sdp); - virtual Error add_ice_candidate(String sdpMidName, int sdpMlineIndexName, String sdpName); + virtual ChannelState get_ready_state() const; + virtual String get_label() const; + virtual bool is_ordered() const; + virtual int get_id() const; + virtual int get_max_packet_life_time() const; + virtual int get_max_retransmits() const; + virtual String get_protocol() const; + virtual bool is_negotiated() const; + virtual Error poll(); + virtual void close(); /** Inherited from PacketPeer: **/ virtual int get_available_packet_count() const; @@ -69,10 +71,10 @@ public: virtual int get_max_packet_size() const; - WebRTCPeerGDNative(); - ~WebRTCPeerGDNative(); + WebRTCDataChannelGDNative(); + ~WebRTCDataChannelGDNative(); }; -#endif // WEBRTC_PEER_GDNATIVE_H +#endif // WEBRTC_DATA_CHANNEL_GDNATIVE_H #endif // WEBRTC_GDNATIVE_ENABLED diff --git a/modules/webrtc/webrtc_data_channel_js.cpp b/modules/webrtc/webrtc_data_channel_js.cpp new file mode 100644 index 0000000000..069918cc9c --- /dev/null +++ b/modules/webrtc/webrtc_data_channel_js.cpp @@ -0,0 +1,367 @@ +/*************************************************************************/ +/* webrtc_data_channel_js.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. */ +/*************************************************************************/ + +#ifdef JAVASCRIPT_ENABLED + +#include "webrtc_data_channel_js.h" +#include "emscripten.h" + +extern "C" { +EMSCRIPTEN_KEEPALIVE void _emrtc_on_ch_error(void *obj) { + WebRTCDataChannelJS *peer = static_cast<WebRTCDataChannelJS *>(obj); + peer->_on_error(); +} + +EMSCRIPTEN_KEEPALIVE void _emrtc_on_ch_open(void *obj) { + WebRTCDataChannelJS *peer = static_cast<WebRTCDataChannelJS *>(obj); + peer->_on_open(); +} + +EMSCRIPTEN_KEEPALIVE void _emrtc_on_ch_close(void *obj) { + WebRTCDataChannelJS *peer = static_cast<WebRTCDataChannelJS *>(obj); + peer->_on_close(); +} + +EMSCRIPTEN_KEEPALIVE void _emrtc_on_ch_message(void *obj, uint8_t *p_data, uint32_t p_size, bool p_is_string) { + WebRTCDataChannelJS *peer = static_cast<WebRTCDataChannelJS *>(obj); + peer->_on_message(p_data, p_size, p_is_string); +} +} + +void WebRTCDataChannelJS::_on_open() { + in_buffer.resize(16); +} + +void WebRTCDataChannelJS::_on_close() { + close(); +} + +void WebRTCDataChannelJS::_on_error() { + close(); +} + +void WebRTCDataChannelJS::_on_message(uint8_t *p_data, uint32_t p_size, bool p_is_string) { + if (in_buffer.space_left() < (int)(p_size + 5)) { + ERR_EXPLAIN("Buffer full! Dropping data"); + ERR_FAIL(); + } + + uint8_t is_string = p_is_string ? 1 : 0; + in_buffer.write((uint8_t *)&p_size, 4); + in_buffer.write((uint8_t *)&is_string, 1); + in_buffer.write(p_data, p_size); + queue_count++; +} + +void WebRTCDataChannelJS::close() { + in_buffer.resize(0); + queue_count = 0; + _was_string = false; + /* clang-format off */ + EM_ASM({ + var dict = Module.IDHandler.get($0); + if (!dict) return; + var channel = dict["channel"]; + channel.onopen = null; + channel.onclose = null; + channel.onerror = null; + channel.onmessage = null; + channel.close(); + }, _js_id); + /* clang-format on */ +} + +Error WebRTCDataChannelJS::poll() { + return OK; +} + +WebRTCDataChannelJS::ChannelState WebRTCDataChannelJS::get_ready_state() const { + /* clang-format off */ + return (ChannelState) EM_ASM_INT({ + var dict = Module.IDHandler.get($0); + if (!dict) return 3; // CLOSED + var channel = dict["channel"]; + switch(channel.readyState) { + case "connecting": + return 0; + case "open": + return 1; + case "closing": + return 2; + case "closed": + return 3; + } + return 3; // CLOSED + }, _js_id); + /* clang-format on */ +} + +int WebRTCDataChannelJS::get_available_packet_count() const { + return queue_count; +} + +Error WebRTCDataChannelJS::get_packet(const uint8_t **r_buffer, int &r_buffer_size) { + ERR_FAIL_COND_V(get_ready_state() != STATE_OPEN, ERR_UNCONFIGURED); + + if (queue_count == 0) + return ERR_UNAVAILABLE; + + uint32_t to_read = 0; + uint32_t left = 0; + uint8_t is_string = 0; + r_buffer_size = 0; + + in_buffer.read((uint8_t *)&to_read, 4); + --queue_count; + left = in_buffer.data_left(); + + if (left < to_read + 1) { + in_buffer.advance_read(left); + return FAILED; + } + + in_buffer.read(&is_string, 1); + _was_string = is_string == 1; + in_buffer.read(packet_buffer, to_read); + *r_buffer = packet_buffer; + r_buffer_size = to_read; + + return OK; +} + +Error WebRTCDataChannelJS::put_packet(const uint8_t *p_buffer, int p_buffer_size) { + ERR_FAIL_COND_V(get_ready_state() != STATE_OPEN, ERR_UNCONFIGURED); + + int is_bin = _write_mode == WebRTCDataChannel::WRITE_MODE_BINARY ? 1 : 0; + + /* clang-format off */ + EM_ASM({ + var dict = Module.IDHandler.get($0); + var channel = dict["channel"]; + var bytes_array = new Uint8Array($2); + var i = 0; + + for(i=0; i<$2; i++) { + bytes_array[i] = getValue($1+i, 'i8'); + } + + if ($3) { + channel.send(bytes_array.buffer); + } else { + var string = new TextDecoder("utf-8").decode(bytes_array); + channel.send(string); + } + }, _js_id, p_buffer, p_buffer_size, is_bin); + /* clang-format on */ + + return OK; +} + +int WebRTCDataChannelJS::get_max_packet_size() const { + return 1200; +} + +void WebRTCDataChannelJS::set_write_mode(WriteMode p_mode) { + _write_mode = p_mode; +} + +WebRTCDataChannel::WriteMode WebRTCDataChannelJS::get_write_mode() const { + return _write_mode; +} + +bool WebRTCDataChannelJS::was_string_packet() const { + return _was_string; +} + +String WebRTCDataChannelJS::get_label() const { + return _label; +} + +/* clang-format off */ +#define _JS_GET(PROP, DEF) \ +EM_ASM_INT({ \ + var dict = Module.IDHandler.get($0); \ + if (!dict || !dict["channel"]) { \ + return DEF; \ + } \ + var out = dict["channel"].PROP; \ + return out === null ? DEF : out; \ +}, _js_id) +/* clang-format on */ + +bool WebRTCDataChannelJS::is_ordered() const { + return _JS_GET(ordered, true); +} + +int WebRTCDataChannelJS::get_id() const { + return _JS_GET(id, 65535); +} + +int WebRTCDataChannelJS::get_max_packet_life_time() const { + // Can't use macro, webkit workaround. + /* clang-format off */ + return EM_ASM_INT({ + var dict = Module.IDHandler.get($0); + if (!dict || !dict["channel"]) { + return 65535; + } + if (dict["channel"].maxRetransmitTime !== undefined) { + // Guess someone didn't appreciate the standardization process. + return dict["channel"].maxRetransmitTime; + } + var out = dict["channel"].maxPacketLifeTime; + return out === null ? 65535 : out; + }, _js_id); + /* clang-format on */ +} + +int WebRTCDataChannelJS::get_max_retransmits() const { + return _JS_GET(maxRetransmits, 65535); +} + +String WebRTCDataChannelJS::get_protocol() const { + return _protocol; +} + +bool WebRTCDataChannelJS::is_negotiated() const { + return _JS_GET(negotiated, false); +} + +WebRTCDataChannelJS::WebRTCDataChannelJS() { + queue_count = 0; + _was_string = false; + _write_mode = WRITE_MODE_BINARY; + _js_id = 0; +} + +WebRTCDataChannelJS::WebRTCDataChannelJS(int js_id) { + queue_count = 0; + _was_string = false; + _write_mode = WRITE_MODE_BINARY; + _js_id = js_id; + + /* clang-format off */ + EM_ASM({ + var c_ptr = $0; + var dict = Module.IDHandler.get($1); + if (!dict) return; + var channel = dict["channel"]; + dict["ptr"] = c_ptr; + + channel.binaryType = "arraybuffer"; + channel.onopen = function (evt) { + ccall("_emrtc_on_ch_open", + "void", + ["number"], + [c_ptr] + ); + }; + channel.onclose = function (evt) { + ccall("_emrtc_on_ch_close", + "void", + ["number"], + [c_ptr] + ); + }; + channel.onerror = function (evt) { + ccall("_emrtc_on_ch_error", + "void", + ["number"], + [c_ptr] + ); + }; + channel.onmessage = function(event) { + var buffer; + var is_string = 0; + if (event.data instanceof ArrayBuffer) { + buffer = new Uint8Array(event.data); + } else if (event.data instanceof Blob) { + console.error("Blob type not supported"); + return; + } else if (typeof event.data === "string") { + is_string = 1; + var enc = new TextEncoder("utf-8"); + buffer = new Uint8Array(enc.encode(event.data)); + } else { + console.error("Unknown message type"); + return; + } + var len = buffer.length*buffer.BYTES_PER_ELEMENT; + var out = Module._malloc(len); + Module.HEAPU8.set(buffer, out); + ccall("_emrtc_on_ch_message", + "void", + ["number", "number", "number", "number"], + [c_ptr, out, len, is_string] + ); + Module._free(out); + } + + }, this, js_id); + // Parse label + char *str; + str = (char *)EM_ASM_INT({ + var dict = Module.IDHandler.get($0); + if (!dict || !dict["channel"]) return 0; + var str = dict["channel"].label; + var len = lengthBytesUTF8(str)+1; + var ptr = _malloc(str); + stringToUTF8(str, ptr, len+1); + return ptr; + }, js_id); + if(str != NULL) { + _label.parse_utf8(str); + EM_ASM({ _free($0) }, str); + } + str = (char *)EM_ASM_INT({ + var dict = Module.IDHandler.get($0); + if (!dict || !dict["channel"]) return 0; + var str = dict["channel"].protocol; + var len = lengthBytesUTF8(str)+1; + var ptr = _malloc(str); + stringToUTF8(str, ptr, len+1); + return ptr; + }, js_id); + if(str != NULL) { + _protocol.parse_utf8(str); + EM_ASM({ _free($0) }, str); + } + /* clang-format on */ +} + +WebRTCDataChannelJS::~WebRTCDataChannelJS() { + close(); + /* clang-format off */ + EM_ASM({ + Module.IDHandler.remove($0); + }, _js_id); + /* clang-format on */ +}; +#endif diff --git a/modules/webrtc/webrtc_peer_js.h b/modules/webrtc/webrtc_data_channel_js.h index 02f0c9b55d..b87f8e9326 100644 --- a/modules/webrtc/webrtc_peer_js.h +++ b/modules/webrtc/webrtc_data_channel_js.h @@ -1,12 +1,12 @@ /*************************************************************************/ -/* webrtc_peer_js.h */ +/* webrtc_data_channel_js.h */ /*************************************************************************/ /* This file is part of: */ /* GODOT ENGINE */ /* https://godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur. */ -/* Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md) */ +/* 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 */ @@ -28,43 +28,53 @@ /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /*************************************************************************/ -#ifndef WEBRTC_PEER_JS_H -#define WEBRTC_PEER_JS_H - #ifdef JAVASCRIPT_ENABLED -#include "webrtc_peer.h" +#ifndef WEBRTC_DATA_CHANNEL_JS_H +#define WEBRTC_DATA_CHANNEL_JS_H + +#include "webrtc_data_channel.h" -class WebRTCPeerJS : public WebRTCPeer { +class WebRTCDataChannelJS : public WebRTCDataChannel { + GDCLASS(WebRTCDataChannelJS, WebRTCDataChannel); private: - enum { - PACKET_BUFFER_SIZE = 65536 - 5 // 4 bytes for the size, 1 for for type - }; + String _label; + String _protocol; bool _was_string; WriteMode _write_mode; + enum { + PACKET_BUFFER_SIZE = 65536 - 5 // 4 bytes for the size, 1 for for type + }; + int _js_id; RingBuffer<uint8_t> in_buffer; int queue_count; uint8_t packet_buffer[PACKET_BUFFER_SIZE]; - ConnectionState _conn_state; public: - static WebRTCPeer *_create() { return memnew(WebRTCPeerJS); } - static void make_default() { WebRTCPeer::_create = WebRTCPeerJS::_create; } + void _on_open(); + void _on_close(); + void _on_error(); + void _on_message(uint8_t *p_data, uint32_t p_size, bool p_is_string); virtual void set_write_mode(WriteMode mode); virtual WriteMode get_write_mode() const; virtual bool was_string_packet() const; - virtual ConnectionState get_connection_state() const; - virtual Error create_offer(); - virtual Error set_remote_description(String type, String sdp); - virtual Error set_local_description(String type, String sdp); - virtual Error add_ice_candidate(String sdpMidName, int sdpMlineIndexName, String sdpName); + virtual ChannelState get_ready_state() const; + virtual String get_label() const; + virtual bool is_ordered() const; + virtual int get_id() const; + virtual int get_max_packet_life_time() const; + virtual int get_max_retransmits() const; + virtual String get_protocol() const; + virtual bool is_negotiated() const; + virtual Error poll(); + virtual void close(); /** Inherited from PacketPeer: **/ virtual int get_available_packet_count() const; @@ -73,16 +83,11 @@ public: virtual int get_max_packet_size() const; - void close(); - void _on_open(); - void _on_close(); - void _on_error(); - void _on_message(uint8_t *p_data, uint32_t p_size, bool p_is_string); - - WebRTCPeerJS(); - ~WebRTCPeerJS(); + WebRTCDataChannelJS(); + WebRTCDataChannelJS(int js_id); + ~WebRTCDataChannelJS(); }; -#endif +#endif // WEBRTC_DATA_CHANNEL_JS_H -#endif // WEBRTC_PEER_JS_H +#endif // JAVASCRIPT_ENABLED diff --git a/modules/webrtc/webrtc_multiplayer.cpp b/modules/webrtc/webrtc_multiplayer.cpp new file mode 100644 index 0000000000..17dafff93a --- /dev/null +++ b/modules/webrtc/webrtc_multiplayer.cpp @@ -0,0 +1,384 @@ +/*************************************************************************/ +/* webrtc_multiplayer.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 "webrtc_multiplayer.h" + +#include "core/io/marshalls.h" +#include "core/os/os.h" + +void WebRTCMultiplayer::_bind_methods() { + ClassDB::bind_method(D_METHOD("initialize", "peer_id", "server_compatibility"), &WebRTCMultiplayer::initialize, DEFVAL(false)); + ClassDB::bind_method(D_METHOD("add_peer", "peer", "peer_id", "unreliable_lifetime"), &WebRTCMultiplayer::add_peer, DEFVAL(1)); + ClassDB::bind_method(D_METHOD("remove_peer", "peer_id"), &WebRTCMultiplayer::remove_peer); + ClassDB::bind_method(D_METHOD("has_peer", "peer_id"), &WebRTCMultiplayer::has_peer); + ClassDB::bind_method(D_METHOD("get_peer", "peer_id"), &WebRTCMultiplayer::get_peer); + ClassDB::bind_method(D_METHOD("get_peers"), &WebRTCMultiplayer::get_peers); + ClassDB::bind_method(D_METHOD("close"), &WebRTCMultiplayer::close); +} + +void WebRTCMultiplayer::set_transfer_mode(TransferMode p_mode) { + transfer_mode = p_mode; +} + +NetworkedMultiplayerPeer::TransferMode WebRTCMultiplayer::get_transfer_mode() const { + return transfer_mode; +} + +void WebRTCMultiplayer::set_target_peer(int p_peer_id) { + target_peer = p_peer_id; +} + +/* Returns the ID of the NetworkedMultiplayerPeer who sent the most recent packet: */ +int WebRTCMultiplayer::get_packet_peer() const { + return next_packet_peer; +} + +bool WebRTCMultiplayer::is_server() const { + return unique_id == TARGET_PEER_SERVER; +} + +void WebRTCMultiplayer::poll() { + if (peer_map.size() == 0) + return; + + List<int> remove; + List<int> add; + for (Map<int, Ref<ConnectedPeer> >::Element *E = peer_map.front(); E; E = E->next()) { + Ref<ConnectedPeer> peer = E->get(); + peer->connection->poll(); + // Check peer state + switch (peer->connection->get_connection_state()) { + case WebRTCPeerConnection::STATE_NEW: + case WebRTCPeerConnection::STATE_CONNECTING: + // Go to next peer, not ready yet. + continue; + case WebRTCPeerConnection::STATE_CONNECTED: + // Good to go, go ahead and check channel state. + break; + default: + // Peer is closed or in error state. Got to next peer. + remove.push_back(E->key()); + continue; + } + // Check channels state + int ready = 0; + for (List<Ref<WebRTCDataChannel> >::Element *C = peer->channels.front(); C && C->get().is_valid(); C = C->next()) { + Ref<WebRTCDataChannel> ch = C->get(); + switch (ch->get_ready_state()) { + case WebRTCDataChannel::STATE_CONNECTING: + continue; + case WebRTCDataChannel::STATE_OPEN: + ready++; + continue; + default: + // Channel was closed or in error state, remove peer id. + remove.push_back(E->key()); + } + // We got a closed channel break out, the peer will be removed. + break; + } + // This peer has newly connected, and all channels are now open. + if (ready == peer->channels.size() && !peer->connected) { + peer->connected = true; + add.push_back(E->key()); + } + } + // Remove disconnected peers + for (List<int>::Element *E = remove.front(); E; E = E->next()) { + remove_peer(E->get()); + if (next_packet_peer == E->get()) + next_packet_peer = 0; + } + // Signal newly connected peers + for (List<int>::Element *E = add.front(); E; E = E->next()) { + // Already connected to server: simply notify new peer. + // NOTE: Mesh is always connected. + if (connection_status == CONNECTION_CONNECTED) + emit_signal("peer_connected", E->get()); + + // Server emulation mode suppresses peer_conencted until server connects. + if (server_compat && E->get() == TARGET_PEER_SERVER) { + // Server connected. + connection_status = CONNECTION_CONNECTED; + emit_signal("peer_connected", TARGET_PEER_SERVER); + emit_signal("connection_succeeded"); + // Notify of all previously connected peers + for (Map<int, Ref<ConnectedPeer> >::Element *F = peer_map.front(); F; F = F->next()) { + if (F->key() != 1 && F->get()->connected) + emit_signal("peer_connected", F->key()); + } + break; // Because we already notified of all newly added peers. + } + } + // Fetch next packet + if (next_packet_peer == 0) + _find_next_peer(); +} + +void WebRTCMultiplayer::_find_next_peer() { + Map<int, Ref<ConnectedPeer> >::Element *E = peer_map.find(next_packet_peer); + if (E) E = E->next(); + // After last. + while (E) { + for (List<Ref<WebRTCDataChannel> >::Element *F = E->get()->channels.front(); F; F = F->next()) { + if (F->get()->get_available_packet_count()) { + next_packet_peer = E->key(); + return; + } + } + E = E->next(); + } + E = peer_map.front(); + // Before last + while (E) { + for (List<Ref<WebRTCDataChannel> >::Element *F = E->get()->channels.front(); F; F = F->next()) { + if (F->get()->get_available_packet_count()) { + next_packet_peer = E->key(); + return; + } + } + if (E->key() == (int)next_packet_peer) + break; + E = E->next(); + } + // No packet found + next_packet_peer = 0; +} + +void WebRTCMultiplayer::set_refuse_new_connections(bool p_enable) { + refuse_connections = p_enable; +} + +bool WebRTCMultiplayer::is_refusing_new_connections() const { + return refuse_connections; +} + +NetworkedMultiplayerPeer::ConnectionStatus WebRTCMultiplayer::get_connection_status() const { + return connection_status; +} + +Error WebRTCMultiplayer::initialize(int p_self_id, bool p_server_compat) { + ERR_FAIL_COND_V(p_self_id < 0 || p_self_id > ~(1 << 31), ERR_INVALID_PARAMETER); + unique_id = p_self_id; + server_compat = p_server_compat; + + // Mesh and server are always connected + if (!server_compat || p_self_id == 1) + connection_status = CONNECTION_CONNECTED; + else + connection_status = CONNECTION_CONNECTING; + return OK; +} + +int WebRTCMultiplayer::get_unique_id() const { + ERR_FAIL_COND_V(connection_status == CONNECTION_DISCONNECTED, 1); + return unique_id; +} + +void WebRTCMultiplayer::_peer_to_dict(Ref<ConnectedPeer> p_connected_peer, Dictionary &r_dict) { + Array channels; + for (List<Ref<WebRTCDataChannel> >::Element *F = p_connected_peer->channels.front(); F; F = F->next()) { + channels.push_back(F->get()); + } + r_dict["connection"] = p_connected_peer->connection; + r_dict["connected"] = p_connected_peer->connected; + r_dict["channels"] = channels; +} + +bool WebRTCMultiplayer::has_peer(int p_peer_id) { + return peer_map.has(p_peer_id); +} + +Dictionary WebRTCMultiplayer::get_peer(int p_peer_id) { + ERR_FAIL_COND_V(!peer_map.has(p_peer_id), Dictionary()); + Dictionary out; + _peer_to_dict(peer_map[p_peer_id], out); + return out; +} + +Dictionary WebRTCMultiplayer::get_peers() { + Dictionary out; + for (Map<int, Ref<ConnectedPeer> >::Element *E = peer_map.front(); E; E = E->next()) { + Dictionary d; + _peer_to_dict(E->get(), d); + out[E->key()] = d; + } + return out; +} + +Error WebRTCMultiplayer::add_peer(Ref<WebRTCPeerConnection> p_peer, int p_peer_id, int p_unreliable_lifetime) { + ERR_FAIL_COND_V(p_peer_id < 0 || p_peer_id > ~(1 << 31), ERR_INVALID_PARAMETER); + ERR_FAIL_COND_V(p_unreliable_lifetime < 0, ERR_INVALID_PARAMETER); + ERR_FAIL_COND_V(refuse_connections, ERR_UNAUTHORIZED); + // Peer must be valid, and in new state (to create data channels) + ERR_FAIL_COND_V(!p_peer.is_valid(), ERR_INVALID_PARAMETER); + ERR_FAIL_COND_V(p_peer->get_connection_state() != WebRTCPeerConnection::STATE_NEW, ERR_INVALID_PARAMETER); + + Ref<ConnectedPeer> peer = memnew(ConnectedPeer); + peer->connection = p_peer; + + // Initialize data channels + Dictionary cfg; + cfg["negotiated"] = true; + cfg["ordered"] = true; + + cfg["id"] = 1; + peer->channels[CH_RELIABLE] = p_peer->create_data_channel("reliable", cfg); + ERR_FAIL_COND_V(!peer->channels[CH_RELIABLE].is_valid(), FAILED); + + cfg["id"] = 2; + cfg["maxPacketLifetime"] = p_unreliable_lifetime; + peer->channels[CH_ORDERED] = p_peer->create_data_channel("ordered", cfg); + ERR_FAIL_COND_V(!peer->channels[CH_ORDERED].is_valid(), FAILED); + + cfg["id"] = 3; + cfg["ordered"] = false; + peer->channels[CH_UNRELIABLE] = p_peer->create_data_channel("unreliable", cfg); + ERR_FAIL_COND_V(!peer->channels[CH_UNRELIABLE].is_valid(), FAILED); + + peer_map[p_peer_id] = peer; // add the new peer connection to the peer_map + + return OK; +} + +void WebRTCMultiplayer::remove_peer(int p_peer_id) { + ERR_FAIL_COND(!peer_map.has(p_peer_id)); + Ref<ConnectedPeer> peer = peer_map[p_peer_id]; + peer_map.erase(p_peer_id); + if (peer->connected) { + peer->connected = false; + emit_signal("peer_disconnected", p_peer_id); + if (server_compat && p_peer_id == TARGET_PEER_SERVER) { + emit_signal("server_disconnected"); + connection_status = CONNECTION_DISCONNECTED; + } + } +} + +Error WebRTCMultiplayer::get_packet(const uint8_t **r_buffer, int &r_buffer_size) { + // Peer not available + if (next_packet_peer == 0 || !peer_map.has(next_packet_peer)) { + _find_next_peer(); + ERR_FAIL_V(ERR_UNAVAILABLE); + } + for (List<Ref<WebRTCDataChannel> >::Element *E = peer_map[next_packet_peer]->channels.front(); E; E = E->next()) { + if (E->get()->get_available_packet_count()) { + Error err = E->get()->get_packet(r_buffer, r_buffer_size); + _find_next_peer(); + return err; + } + } + // Channels for that peer were empty. Bug? + _find_next_peer(); + ERR_FAIL_V(ERR_BUG); +} + +Error WebRTCMultiplayer::put_packet(const uint8_t *p_buffer, int p_buffer_size) { + ERR_FAIL_COND_V(connection_status == CONNECTION_DISCONNECTED, ERR_UNCONFIGURED); + + int ch = CH_RELIABLE; + switch (transfer_mode) { + case TRANSFER_MODE_RELIABLE: + ch = CH_RELIABLE; + break; + case TRANSFER_MODE_UNRELIABLE_ORDERED: + ch = CH_ORDERED; + break; + case TRANSFER_MODE_UNRELIABLE: + ch = CH_UNRELIABLE; + break; + } + + Map<int, Ref<ConnectedPeer> >::Element *E = NULL; + + if (target_peer > 0) { + + E = peer_map.find(target_peer); + if (!E) { + ERR_EXPLAIN("Invalid Target Peer: " + itos(target_peer)); + ERR_FAIL_V(ERR_INVALID_PARAMETER); + } + ERR_FAIL_COND_V(E->value()->channels.size() <= ch, ERR_BUG); + ERR_FAIL_COND_V(!E->value()->channels[ch].is_valid(), ERR_BUG); + return E->value()->channels[ch]->put_packet(p_buffer, p_buffer_size); + + } else { + int exclude = -target_peer; + + for (Map<int, Ref<ConnectedPeer> >::Element *F = peer_map.front(); F; F = F->next()) { + + // Exclude packet. If target_peer == 0 then don't exclude any packets + if (target_peer != 0 && F->key() == exclude) + continue; + + ERR_CONTINUE(F->value()->channels.size() <= ch || !F->value()->channels[ch].is_valid()); + F->value()->channels[ch]->put_packet(p_buffer, p_buffer_size); + } + } + return OK; +} + +int WebRTCMultiplayer::get_available_packet_count() const { + if (next_packet_peer == 0) + return 0; // To be sure next call to get_packet works if size > 0 . + int size = 0; + for (Map<int, Ref<ConnectedPeer> >::Element *E = peer_map.front(); E; E = E->next()) { + for (List<Ref<WebRTCDataChannel> >::Element *F = E->get()->channels.front(); F; F = F->next()) { + size += F->get()->get_available_packet_count(); + } + } + return size; +} + +int WebRTCMultiplayer::get_max_packet_size() const { + return 1200; +} + +void WebRTCMultiplayer::close() { + peer_map.clear(); + unique_id = 0; + next_packet_peer = 0; + target_peer = 0; + connection_status = CONNECTION_DISCONNECTED; +} + +WebRTCMultiplayer::WebRTCMultiplayer() { + unique_id = 0; + next_packet_peer = 0; + target_peer = 0; + transfer_mode = TRANSFER_MODE_RELIABLE; + refuse_connections = false; + connection_status = CONNECTION_DISCONNECTED; + server_compat = false; +} + +WebRTCMultiplayer::~WebRTCMultiplayer() { + close(); +} diff --git a/modules/webrtc/webrtc_multiplayer.h b/modules/webrtc/webrtc_multiplayer.h new file mode 100644 index 0000000000..82bbfd4f68 --- /dev/null +++ b/modules/webrtc/webrtc_multiplayer.h @@ -0,0 +1,116 @@ +/*************************************************************************/ +/* webrtc_multiplayer.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 WEBRTC_MULTIPLAYER_H +#define WEBRTC_MULTIPLAYER_H + +#include "core/io/networked_multiplayer_peer.h" +#include "webrtc_peer_connection.h" + +class WebRTCMultiplayer : public NetworkedMultiplayerPeer { + + GDCLASS(WebRTCMultiplayer, NetworkedMultiplayerPeer); + +protected: + static void _bind_methods(); + +private: + enum { + CH_RELIABLE = 0, + CH_ORDERED = 1, + CH_UNRELIABLE = 2, + CH_RESERVED_MAX = 3 + }; + + class ConnectedPeer : public Reference { + + public: + Ref<WebRTCPeerConnection> connection; + List<Ref<WebRTCDataChannel> > channels; + bool connected; + + ConnectedPeer() { + connected = false; + for (int i = 0; i < CH_RESERVED_MAX; i++) + channels.push_front(Ref<WebRTCDataChannel>()); + } + }; + + uint32_t unique_id; + int target_peer; + int client_count; + bool refuse_connections; + ConnectionStatus connection_status; + TransferMode transfer_mode; + int next_packet_peer; + bool server_compat; + + Map<int, Ref<ConnectedPeer> > peer_map; + + void _peer_to_dict(Ref<ConnectedPeer> p_connected_peer, Dictionary &r_dict); + void _find_next_peer(); + +public: + WebRTCMultiplayer(); + ~WebRTCMultiplayer(); + + Error initialize(int p_self_id, bool p_server_compat = false); + Error add_peer(Ref<WebRTCPeerConnection> p_peer, int p_peer_id, int p_unreliable_lifetime = 1); + void remove_peer(int p_peer_id); + bool has_peer(int p_peer_id); + Dictionary get_peer(int p_peer_id); + Dictionary get_peers(); + void close(); + + // PacketPeer + Error get_packet(const uint8_t **r_buffer, int &r_buffer_size); ///< buffer is GONE after next get_packet + Error put_packet(const uint8_t *p_buffer, int p_buffer_size); + int get_available_packet_count() const; + int get_max_packet_size() const; + + // NetworkedMultiplayerPeer + void set_transfer_mode(TransferMode p_mode); + TransferMode get_transfer_mode() const; + void set_target_peer(int p_peer_id); + + int get_unique_id() const; + int get_packet_peer() const; + + bool is_server() const; + + void poll(); + + void set_refuse_new_connections(bool p_enable); + bool is_refusing_new_connections() const; + + ConnectionStatus get_connection_status() const; +}; + +#endif diff --git a/modules/webrtc/webrtc_peer.cpp b/modules/webrtc/webrtc_peer_connection.cpp index 30c4505df9..69c7a51a40 100644 --- a/modules/webrtc/webrtc_peer.cpp +++ b/modules/webrtc/webrtc_peer_connection.cpp @@ -1,12 +1,12 @@ /*************************************************************************/ -/* webrtc_peer.cpp */ +/* webrtc_peer_connection.cpp */ /*************************************************************************/ /* This file is part of: */ /* GODOT ENGINE */ /* https://godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur. */ -/* Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md) */ +/* 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 */ @@ -28,43 +28,37 @@ /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /*************************************************************************/ -#include "webrtc_peer.h" +#include "webrtc_peer_connection.h" -WebRTCPeer *(*WebRTCPeer::_create)() = NULL; +WebRTCPeerConnection *(*WebRTCPeerConnection::_create)() = NULL; -Ref<WebRTCPeer> WebRTCPeer::create_ref() { +Ref<WebRTCPeerConnection> WebRTCPeerConnection::create_ref() { - if (!_create) - return Ref<WebRTCPeer>(); - return Ref<WebRTCPeer>(_create()); + return create(); } -WebRTCPeer *WebRTCPeer::create() { +WebRTCPeerConnection *WebRTCPeerConnection::create() { if (!_create) return NULL; return _create(); } -void WebRTCPeer::_bind_methods() { - ClassDB::bind_method(D_METHOD("create_offer"), &WebRTCPeer::create_offer); - ClassDB::bind_method(D_METHOD("set_local_description", "type", "sdp"), &WebRTCPeer::set_local_description); - ClassDB::bind_method(D_METHOD("set_remote_description", "type", "sdp"), &WebRTCPeer::set_remote_description); - ClassDB::bind_method(D_METHOD("poll"), &WebRTCPeer::poll); - ClassDB::bind_method(D_METHOD("add_ice_candidate", "media", "index", "name"), &WebRTCPeer::add_ice_candidate); - - ClassDB::bind_method(D_METHOD("was_string_packet"), &WebRTCPeer::was_string_packet); - ClassDB::bind_method(D_METHOD("set_write_mode", "write_mode"), &WebRTCPeer::set_write_mode); - ClassDB::bind_method(D_METHOD("get_write_mode"), &WebRTCPeer::get_write_mode); - ClassDB::bind_method(D_METHOD("get_connection_state"), &WebRTCPeer::get_connection_state); - - ADD_SIGNAL(MethodInfo("offer_created", PropertyInfo(Variant::STRING, "type"), PropertyInfo(Variant::STRING, "sdp"))); - ADD_SIGNAL(MethodInfo("new_ice_candidate", PropertyInfo(Variant::STRING, "media"), PropertyInfo(Variant::INT, "index"), PropertyInfo(Variant::STRING, "name"))); +void WebRTCPeerConnection::_bind_methods() { + ClassDB::bind_method(D_METHOD("initialize", "configuration"), &WebRTCPeerConnection::initialize, DEFVAL(Dictionary())); + ClassDB::bind_method(D_METHOD("create_data_channel", "label", "options"), &WebRTCPeerConnection::create_data_channel, DEFVAL(Dictionary())); + ClassDB::bind_method(D_METHOD("create_offer"), &WebRTCPeerConnection::create_offer); + ClassDB::bind_method(D_METHOD("set_local_description", "type", "sdp"), &WebRTCPeerConnection::set_local_description); + ClassDB::bind_method(D_METHOD("set_remote_description", "type", "sdp"), &WebRTCPeerConnection::set_remote_description); + ClassDB::bind_method(D_METHOD("add_ice_candidate", "media", "index", "name"), &WebRTCPeerConnection::add_ice_candidate); + ClassDB::bind_method(D_METHOD("poll"), &WebRTCPeerConnection::poll); + ClassDB::bind_method(D_METHOD("close"), &WebRTCPeerConnection::close); - ADD_PROPERTY(PropertyInfo(Variant::INT, "write_mode", PROPERTY_HINT_ENUM), "set_write_mode", "get_write_mode"); + ClassDB::bind_method(D_METHOD("get_connection_state"), &WebRTCPeerConnection::get_connection_state); - BIND_ENUM_CONSTANT(WRITE_MODE_TEXT); - BIND_ENUM_CONSTANT(WRITE_MODE_BINARY); + ADD_SIGNAL(MethodInfo("session_description_created", PropertyInfo(Variant::STRING, "type"), PropertyInfo(Variant::STRING, "sdp"))); + ADD_SIGNAL(MethodInfo("ice_candidate_created", PropertyInfo(Variant::STRING, "media"), PropertyInfo(Variant::INT, "index"), PropertyInfo(Variant::STRING, "name"))); + ADD_SIGNAL(MethodInfo("data_channel_received", PropertyInfo(Variant::OBJECT, "channel"))); BIND_ENUM_CONSTANT(STATE_NEW); BIND_ENUM_CONSTANT(STATE_CONNECTING); @@ -74,8 +68,8 @@ void WebRTCPeer::_bind_methods() { BIND_ENUM_CONSTANT(STATE_CLOSED); } -WebRTCPeer::WebRTCPeer() { +WebRTCPeerConnection::WebRTCPeerConnection() { } -WebRTCPeer::~WebRTCPeer() { +WebRTCPeerConnection::~WebRTCPeerConnection() { } diff --git a/modules/webrtc/webrtc_peer_connection.h b/modules/webrtc/webrtc_peer_connection.h new file mode 100644 index 0000000000..7be1390dab --- /dev/null +++ b/modules/webrtc/webrtc_peer_connection.h @@ -0,0 +1,74 @@ +/*************************************************************************/ +/* webrtc_peer_connection.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 WEBRTC_PEER_CONNECTION_H +#define WEBRTC_PEER_CONNECTION_H + +#include "core/io/packet_peer.h" +#include "modules/webrtc/webrtc_data_channel.h" + +class WebRTCPeerConnection : public Reference { + GDCLASS(WebRTCPeerConnection, Reference); + +public: + enum ConnectionState { + STATE_NEW, + STATE_CONNECTING, + STATE_CONNECTED, + STATE_DISCONNECTED, + STATE_FAILED, + STATE_CLOSED + }; + +protected: + static void _bind_methods(); + static WebRTCPeerConnection *(*_create)(); + +public: + virtual ConnectionState get_connection_state() const = 0; + + virtual Error initialize(Dictionary p_config = Dictionary()) = 0; + virtual Ref<WebRTCDataChannel> create_data_channel(String p_label, Dictionary p_options = Dictionary()) = 0; + virtual Error create_offer() = 0; + virtual Error set_remote_description(String type, String sdp) = 0; + virtual Error set_local_description(String type, String sdp) = 0; + virtual Error add_ice_candidate(String sdpMidName, int sdpMlineIndexName, String sdpName) = 0; + virtual Error poll() = 0; + virtual void close() = 0; + + static Ref<WebRTCPeerConnection> create_ref(); + static WebRTCPeerConnection *create(); + + WebRTCPeerConnection(); + ~WebRTCPeerConnection(); +}; + +VARIANT_ENUM_CAST(WebRTCPeerConnection::ConnectionState); +#endif // WEBRTC_PEER_CONNECTION_H diff --git a/modules/webrtc/webrtc_peer_connection_gdnative.cpp b/modules/webrtc/webrtc_peer_connection_gdnative.cpp new file mode 100644 index 0000000000..af98aa750a --- /dev/null +++ b/modules/webrtc/webrtc_peer_connection_gdnative.cpp @@ -0,0 +1,124 @@ +/*************************************************************************/ +/* webrtc_peer_connection_gdnative.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. */ +/*************************************************************************/ + +#ifdef WEBRTC_GDNATIVE_ENABLED + +#include "webrtc_peer_connection_gdnative.h" + +#include "core/io/resource_loader.h" +#include "modules/gdnative/nativescript/nativescript.h" +#include "webrtc_data_channel_gdnative.h" + +const godot_net_webrtc_library *WebRTCPeerConnectionGDNative::default_library = NULL; + +Error WebRTCPeerConnectionGDNative::set_default_library(const godot_net_webrtc_library *p_lib) { + if (default_library) { + const godot_net_webrtc_library *old = default_library; + default_library = NULL; + old->unregistered(); + } + default_library = p_lib; + return OK; // Maybe add version check and fail accordingly +} + +WebRTCPeerConnection *WebRTCPeerConnectionGDNative::_create() { + + WebRTCPeerConnectionGDNative *obj = memnew(WebRTCPeerConnectionGDNative); + ERR_EXPLAIN("Default GDNative WebRTC implementation not defined."); + ERR_FAIL_COND_V(!default_library, obj); + + // Call GDNative constructor + Error err = (Error)default_library->create_peer_connection(obj); + ERR_EXPLAIN("GDNative default library constructor returned an error"); + ERR_FAIL_COND_V(err != OK, obj); + + return obj; +} + +void WebRTCPeerConnectionGDNative::_bind_methods() { +} + +WebRTCPeerConnectionGDNative::WebRTCPeerConnectionGDNative() { + interface = NULL; +} + +WebRTCPeerConnectionGDNative::~WebRTCPeerConnectionGDNative() { +} + +Error WebRTCPeerConnectionGDNative::initialize(Dictionary p_config) { + ERR_FAIL_COND_V(interface == NULL, ERR_UNCONFIGURED); + return (Error)interface->initialize(interface->data, (const godot_dictionary *)&p_config); +} + +Ref<WebRTCDataChannel> WebRTCPeerConnectionGDNative::create_data_channel(String p_label, Dictionary p_options) { + ERR_FAIL_COND_V(interface == NULL, NULL); + return (WebRTCDataChannel *)interface->create_data_channel(interface->data, p_label.utf8().get_data(), (const godot_dictionary *)&p_options); +} + +Error WebRTCPeerConnectionGDNative::create_offer() { + ERR_FAIL_COND_V(interface == NULL, ERR_UNCONFIGURED); + return (Error)interface->create_offer(interface->data); +} + +Error WebRTCPeerConnectionGDNative::set_local_description(String p_type, String p_sdp) { + ERR_FAIL_COND_V(interface == NULL, ERR_UNCONFIGURED); + return (Error)interface->set_local_description(interface->data, p_type.utf8().get_data(), p_sdp.utf8().get_data()); +} + +Error WebRTCPeerConnectionGDNative::set_remote_description(String p_type, String p_sdp) { + ERR_FAIL_COND_V(interface == NULL, ERR_UNCONFIGURED); + return (Error)interface->set_remote_description(interface->data, p_type.utf8().get_data(), p_sdp.utf8().get_data()); +} + +Error WebRTCPeerConnectionGDNative::add_ice_candidate(String sdpMidName, int sdpMlineIndexName, String sdpName) { + ERR_FAIL_COND_V(interface == NULL, ERR_UNCONFIGURED); + return (Error)interface->add_ice_candidate(interface->data, sdpMidName.utf8().get_data(), sdpMlineIndexName, sdpName.utf8().get_data()); +} + +Error WebRTCPeerConnectionGDNative::poll() { + ERR_FAIL_COND_V(interface == NULL, ERR_UNCONFIGURED); + return (Error)interface->poll(interface->data); +} + +void WebRTCPeerConnectionGDNative::close() { + ERR_FAIL_COND(interface == NULL); + interface->close(interface->data); +} + +WebRTCPeerConnection::ConnectionState WebRTCPeerConnectionGDNative::get_connection_state() const { + ERR_FAIL_COND_V(interface == NULL, STATE_DISCONNECTED); + return (ConnectionState)interface->get_connection_state(interface->data); +} + +void WebRTCPeerConnectionGDNative::set_native_webrtc_peer_connection(const godot_net_webrtc_peer_connection *p_impl) { + interface = p_impl; +} + +#endif // WEBRTC_GDNATIVE_ENABLED diff --git a/modules/webrtc/webrtc_peer_connection_gdnative.h b/modules/webrtc/webrtc_peer_connection_gdnative.h new file mode 100644 index 0000000000..0a281c3d89 --- /dev/null +++ b/modules/webrtc/webrtc_peer_connection_gdnative.h @@ -0,0 +1,73 @@ +/*************************************************************************/ +/* webrtc_peer_connection_gdnative.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. */ +/*************************************************************************/ + +#ifdef WEBRTC_GDNATIVE_ENABLED + +#ifndef WEBRTC_PEER_CONNECTION_GDNATIVE_H +#define WEBRTC_PEER_CONNECTION_GDNATIVE_H + +#include "modules/gdnative/include/net/godot_net.h" +#include "webrtc_peer_connection.h" + +class WebRTCPeerConnectionGDNative : public WebRTCPeerConnection { + GDCLASS(WebRTCPeerConnectionGDNative, WebRTCPeerConnection); + +protected: + static void _bind_methods(); + static WebRTCPeerConnection *_create(); + +private: + static const godot_net_webrtc_library *default_library; + const godot_net_webrtc_peer_connection *interface; + +public: + static Error set_default_library(const godot_net_webrtc_library *p_library); + static void make_default() { WebRTCPeerConnection::_create = WebRTCPeerConnectionGDNative::_create; } + + void set_native_webrtc_peer_connection(const godot_net_webrtc_peer_connection *p_impl); + + virtual ConnectionState get_connection_state() const; + + virtual Error initialize(Dictionary p_config = Dictionary()); + virtual Ref<WebRTCDataChannel> create_data_channel(String p_label, Dictionary p_options = Dictionary()); + virtual Error create_offer(); + virtual Error set_remote_description(String type, String sdp); + virtual Error set_local_description(String type, String sdp); + virtual Error add_ice_candidate(String sdpMidName, int sdpMlineIndexName, String sdpName); + virtual Error poll(); + virtual void close(); + + WebRTCPeerConnectionGDNative(); + ~WebRTCPeerConnectionGDNative(); +}; + +#endif // WEBRTC_PEER_CONNECTION_GDNATIVE_H + +#endif // WEBRTC_GDNATIVE_ENABLED diff --git a/modules/webrtc/webrtc_peer_connection_js.cpp b/modules/webrtc/webrtc_peer_connection_js.cpp new file mode 100644 index 0000000000..9758ab3644 --- /dev/null +++ b/modules/webrtc/webrtc_peer_connection_js.cpp @@ -0,0 +1,314 @@ +/*************************************************************************/ +/* webrtc_peer_connection_js.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. */ +/*************************************************************************/ + +#ifdef JAVASCRIPT_ENABLED + +#include "webrtc_peer_connection_js.h" + +#include "webrtc_data_channel_js.h" + +#include "core/io/json.h" +#include "emscripten.h" + +extern "C" { +EMSCRIPTEN_KEEPALIVE void _emrtc_on_ice_candidate(void *obj, char *p_MidName, int p_MlineIndexName, char *p_sdpName) { + WebRTCPeerConnectionJS *peer = static_cast<WebRTCPeerConnectionJS *>(obj); + peer->emit_signal("ice_candidate_created", String(p_MidName), p_MlineIndexName, String(p_sdpName)); +} + +EMSCRIPTEN_KEEPALIVE void _emrtc_session_description_created(void *obj, char *p_type, char *p_offer) { + WebRTCPeerConnectionJS *peer = static_cast<WebRTCPeerConnectionJS *>(obj); + peer->emit_signal("session_description_created", String(p_type), String(p_offer)); +} + +EMSCRIPTEN_KEEPALIVE void _emrtc_on_connection_state_changed(void *obj) { + WebRTCPeerConnectionJS *peer = static_cast<WebRTCPeerConnectionJS *>(obj); + peer->_on_connection_state_changed(); +} + +EMSCRIPTEN_KEEPALIVE void _emrtc_on_error() { + ERR_PRINT("RTCPeerConnection error!"); +} + +EMSCRIPTEN_KEEPALIVE void _emrtc_emit_channel(void *obj, int p_id) { + WebRTCPeerConnectionJS *peer = static_cast<WebRTCPeerConnectionJS *>(obj); + peer->emit_signal("data_channel_received", Ref<WebRTCDataChannelJS>(new WebRTCDataChannelJS(p_id))); +} +} + +void _emrtc_create_pc(int p_id, const Dictionary &p_config) { + String config = JSON::print(p_config); + /* clang-format off */ + EM_ASM({ + var dict = Module.IDHandler.get($0); + var c_ptr = dict["ptr"]; + var config = JSON.parse(UTF8ToString($1)); + // Setup local connaction + var conn = null; + try { + conn = new RTCPeerConnection(config); + } catch (e) { + console.log(e); + return; + } + conn.oniceconnectionstatechange = function(event) { + if (!Module.IDHandler.get($0)) return; + ccall("_emrtc_on_connection_state_changed", "void", ["number"], [c_ptr]); + }; + conn.onicecandidate = function(event) { + if (!Module.IDHandler.get($0)) return; + if (!event.candidate) return; + + var c = event.candidate; + // should emit on ice candidate + ccall("_emrtc_on_ice_candidate", + "void", + ["number", "string", "number", "string"], + [c_ptr, c.sdpMid, c.sdpMLineIndex, c.candidate] + ); + }; + conn.ondatachannel = function (evt) { + var dict = Module.IDHandler.get($0); + if (!dict) { + return; + } + var id = Module.IDHandler.add({"channel": evt.channel, "ptr": null}); + ccall("_emrtc_emit_channel", + "void", + ["number", "number"], + [c_ptr, id] + ); + }; + dict["conn"] = conn; + }, p_id, config.utf8().get_data()); + /* clang-format on */ +} + +void WebRTCPeerConnectionJS::_on_connection_state_changed() { + /* clang-format off */ + _conn_state = (ConnectionState)EM_ASM_INT({ + var dict = Module.IDHandler.get($0); + if (!dict) return 5; // CLOSED + var conn = dict["conn"]; + switch(conn.iceConnectionState) { + case "new": + return 0; + case "checking": + return 1; + case "connected": + case "completed": + return 2; + case "disconnected": + return 3; + case "failed": + return 4; + case "closed": + return 5; + } + return 5; // CLOSED + }, _js_id); + /* clang-format on */ +} + +void WebRTCPeerConnectionJS::close() { + /* clang-format off */ + EM_ASM({ + var dict = Module.IDHandler.get($0); + if (!dict) return; + if (dict["conn"]) { + dict["conn"].close(); + } + }, _js_id); + /* clang-format on */ + _conn_state = STATE_CLOSED; +} + +Error WebRTCPeerConnectionJS::create_offer() { + ERR_FAIL_COND_V(_conn_state != STATE_NEW, FAILED); + + _conn_state = STATE_CONNECTING; + /* clang-format off */ + EM_ASM({ + var dict = Module.IDHandler.get($0); + var conn = dict["conn"]; + var c_ptr = dict["ptr"]; + var onError = function(error) { + console.error(error); + ccall("_emrtc_on_error", "void", [], []); + }; + var onCreated = function(offer) { + ccall("_emrtc_session_description_created", + "void", + ["number", "string", "string"], + [c_ptr, offer.type, offer.sdp] + ); + }; + conn.createOffer().then(onCreated).catch(onError); + }, _js_id); + /* clang-format on */ + return OK; +} + +Error WebRTCPeerConnectionJS::set_local_description(String type, String sdp) { + /* clang-format off */ + EM_ASM({ + var dict = Module.IDHandler.get($0); + var conn = dict["conn"]; + var c_ptr = dict["ptr"]; + var type = UTF8ToString($1); + var sdp = UTF8ToString($2); + var onError = function(error) { + console.error(error); + ccall("_emrtc_on_error", "void", [], []); + }; + conn.setLocalDescription({ + "sdp": sdp, + "type": type + }).catch(onError); + }, _js_id, type.utf8().get_data(), sdp.utf8().get_data()); + /* clang-format on */ + return OK; +} + +Error WebRTCPeerConnectionJS::set_remote_description(String type, String sdp) { + if (type == "offer") { + ERR_FAIL_COND_V(_conn_state != STATE_NEW, FAILED); + _conn_state = STATE_CONNECTING; + } + /* clang-format off */ + EM_ASM({ + var dict = Module.IDHandler.get($0); + var conn = dict["conn"]; + var c_ptr = dict["ptr"]; + var type = UTF8ToString($1); + var sdp = UTF8ToString($2); + + var onError = function(error) { + console.error(error); + ccall("_emrtc_on_error", "void", [], []); + }; + var onCreated = function(offer) { + ccall("_emrtc_session_description_created", + "void", + ["number", "string", "string"], + [c_ptr, offer.type, offer.sdp] + ); + }; + var onSet = function() { + if (type != "offer") { + return; + } + conn.createAnswer().then(onCreated); + }; + conn.setRemoteDescription({ + "sdp": sdp, + "type": type + }).then(onSet).catch(onError); + }, _js_id, type.utf8().get_data(), sdp.utf8().get_data()); + /* clang-format on */ + return OK; +} + +Error WebRTCPeerConnectionJS::add_ice_candidate(String sdpMidName, int sdpMlineIndexName, String sdpName) { + /* clang-format off */ + EM_ASM({ + var dict = Module.IDHandler.get($0); + var conn = dict["conn"]; + var c_ptr = dict["ptr"]; + var sdpMidName = UTF8ToString($1); + var sdpMlineIndexName = UTF8ToString($2); + var sdpName = UTF8ToString($3); + conn.addIceCandidate(new RTCIceCandidate({ + "candidate": sdpName, + "sdpMid": sdpMidName, + "sdpMlineIndex": sdpMlineIndexName + })); + }, _js_id, sdpMidName.utf8().get_data(), sdpMlineIndexName, sdpName.utf8().get_data()); + /* clang-format on */ + return OK; +} + +Error WebRTCPeerConnectionJS::initialize(Dictionary p_config) { + _emrtc_create_pc(_js_id, p_config); + return OK; +} + +Ref<WebRTCDataChannel> WebRTCPeerConnectionJS::create_data_channel(String p_channel, Dictionary p_channel_config) { + String config = JSON::print(p_channel_config); + /* clang-format off */ + int id = EM_ASM_INT({ + try { + var dict = Module.IDHandler.get($0); + if (!dict) return 0; + var label = UTF8ToString($1); + var config = JSON.parse(UTF8ToString($2)); + var conn = dict["conn"]; + return Module.IDHandler.add({ + "channel": conn.createDataChannel(label, config), + "ptr": null + }) + } catch (e) { + return 0; + } + }, _js_id, p_channel.utf8().get_data(), config.utf8().get_data()); + /* clang-format on */ + ERR_FAIL_COND_V(id == 0, NULL); + return memnew(WebRTCDataChannelJS(id)); +} + +Error WebRTCPeerConnectionJS::poll() { + return OK; +} + +WebRTCPeerConnection::ConnectionState WebRTCPeerConnectionJS::get_connection_state() const { + return _conn_state; +} + +WebRTCPeerConnectionJS::WebRTCPeerConnectionJS() { + _conn_state = STATE_NEW; + + /* clang-format off */ + _js_id = EM_ASM_INT({ + return Module.IDHandler.add({"conn": null, "ptr": $0}); + }, this); + /* clang-format on */ + Dictionary config; + _emrtc_create_pc(_js_id, config); +} + +WebRTCPeerConnectionJS::~WebRTCPeerConnectionJS() { + close(); + /* clang-format off */ + EM_ASM({ + Module.IDHandler.remove($0); + }, _js_id); + /* clang-format on */ +}; +#endif diff --git a/modules/webrtc/webrtc_peer_connection_js.h b/modules/webrtc/webrtc_peer_connection_js.h new file mode 100644 index 0000000000..43c0e3d6ee --- /dev/null +++ b/modules/webrtc/webrtc_peer_connection_js.h @@ -0,0 +1,66 @@ +/*************************************************************************/ +/* webrtc_peer_connection_js.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 WEBRTC_PEER_CONNECTION_JS_H +#define WEBRTC_PEER_CONNECTION_JS_H + +#ifdef JAVASCRIPT_ENABLED + +#include "webrtc_peer_connection.h" + +class WebRTCPeerConnectionJS : public WebRTCPeerConnection { + +private: + int _js_id; + ConnectionState _conn_state; + +public: + static WebRTCPeerConnection *_create() { return memnew(WebRTCPeerConnectionJS); } + static void make_default() { WebRTCPeerConnection::_create = WebRTCPeerConnectionJS::_create; } + + void _on_connection_state_changed(); + virtual ConnectionState get_connection_state() const; + + virtual Error initialize(Dictionary configuration = Dictionary()); + virtual Ref<WebRTCDataChannel> create_data_channel(String p_channel_name, Dictionary p_channel_config = Dictionary()); + virtual Error create_offer(); + virtual Error set_remote_description(String type, String sdp); + virtual Error set_local_description(String type, String sdp); + virtual Error add_ice_candidate(String sdpMidName, int sdpMlineIndexName, String sdpName); + virtual Error poll(); + virtual void close(); + + WebRTCPeerConnectionJS(); + ~WebRTCPeerConnectionJS(); +}; + +#endif + +#endif // WEBRTC_PEER_CONNECTION_JS_H diff --git a/modules/webrtc/webrtc_peer_js.cpp b/modules/webrtc/webrtc_peer_js.cpp deleted file mode 100644 index 1282e075ab..0000000000 --- a/modules/webrtc/webrtc_peer_js.cpp +++ /dev/null @@ -1,455 +0,0 @@ -/*************************************************************************/ -/* webrtc_peer_js.cpp */ -/*************************************************************************/ -/* This file is part of: */ -/* GODOT ENGINE */ -/* https://godotengine.org */ -/*************************************************************************/ -/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur. */ -/* Copyright (c) 2014-2018 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. */ -/*************************************************************************/ - -#ifdef JAVASCRIPT_ENABLED - -#include "webrtc_peer_js.h" -#include "emscripten.h" - -extern "C" { -EMSCRIPTEN_KEEPALIVE void _emrtc_on_ice_candidate(void *obj, char *p_MidName, int p_MlineIndexName, char *p_sdpName) { - WebRTCPeerJS *peer = static_cast<WebRTCPeerJS *>(obj); - peer->emit_signal("new_ice_candidate", String(p_MidName), p_MlineIndexName, String(p_sdpName)); -} - -EMSCRIPTEN_KEEPALIVE void _emrtc_offer_created(void *obj, char *p_type, char *p_offer) { - WebRTCPeerJS *peer = static_cast<WebRTCPeerJS *>(obj); - peer->emit_signal("offer_created", String(p_type), String(p_offer)); -} - -EMSCRIPTEN_KEEPALIVE void _emrtc_on_error(void *obj) { - WebRTCPeerJS *peer = static_cast<WebRTCPeerJS *>(obj); - peer->_on_error(); -} - -EMSCRIPTEN_KEEPALIVE void _emrtc_on_open(void *obj) { - WebRTCPeerJS *peer = static_cast<WebRTCPeerJS *>(obj); - peer->_on_open(); -} - -EMSCRIPTEN_KEEPALIVE void _emrtc_on_close(void *obj) { - WebRTCPeerJS *peer = static_cast<WebRTCPeerJS *>(obj); - peer->_on_close(); -} - -EMSCRIPTEN_KEEPALIVE void _emrtc_on_message(void *obj, uint8_t *p_data, uint32_t p_size, bool p_is_string) { - WebRTCPeerJS *peer = static_cast<WebRTCPeerJS *>(obj); - peer->_on_message(p_data, p_size, p_is_string); -} - -EMSCRIPTEN_KEEPALIVE void _emrtc_bind_channel(int p_id) { - /* clang-format off */ - EM_ASM({ - if (!Module.IDHandler.has($0)) { - return; // Godot Object is gone! - } - var dict = Module.IDHandler.get($0); - var channel = dict["channel"]; - var c_ptr = dict["ptr"]; - - channel.onopen = function (evt) { - ccall("_emrtc_on_open", - "void", - ["number"], - [c_ptr] - ); - }; - channel.onclose = function (evt) { - ccall("_emrtc_on_close", - "void", - ["number"], - [c_ptr] - ); - }; - channel.onerror = function (evt) { - ccall("_emrtc_on_error", - "void", - ["number"], - [c_ptr] - ); - }; - - channel.binaryType = "arraybuffer"; - channel.onmessage = function(event) { - var buffer; - var is_string = 0; - if (event.data instanceof ArrayBuffer) { - - buffer = new Uint8Array(event.data); - - } else if (event.data instanceof Blob) { - - alert("Blob type not supported"); - return; - - } else if (typeof event.data === "string") { - - is_string = 1; - var enc = new TextEncoder("utf-8"); - buffer = new Uint8Array(enc.encode(event.data)); - - } else { - - alert("Unknown message type"); - return; - - } - var len = buffer.length*buffer.BYTES_PER_ELEMENT; - var out = Module._malloc(len); - Module.HEAPU8.set(buffer, out); - ccall("_emrtc_on_message", - "void", - ["number", "number", "number", "number"], - [c_ptr, out, len, is_string] - ); - Module._free(out); - } - }, p_id); - /* clang-format on */ -} -} - -void _emrtc_create_pc(int p_id) { - /* clang-format off */ - EM_ASM({ - var dict = Module.IDHandler.get($0); - var c_ptr = dict["ptr"]; - // Setup local connaction - var conn = new RTCPeerConnection(); - conn.onicecandidate = function(event) { - if (!Module.IDHandler.get($0)) return; - if (!event.candidate) return; - - var c = event.candidate; - // should emit on ice candidate - ccall("_emrtc_on_ice_candidate", - "void", - ["number", "string", "number", "string"], - [c_ptr, c.sdpMid, c.sdpMLineIndex, c.candidate] - ); - }; - conn.ondatachannel = function (evt) { - var dict = Module.IDHandler.get($0); - if (!dict || dict["channel"]) { - return; - } - var channel = evt.channel; - dict["channel"] = channel; - ccall("_emrtc_bind_channel", - "void", - ["number"], - [$0] - ); - }; - dict["conn"] = conn; - }, p_id); - /* clang-format on */ -} - -void WebRTCPeerJS::_on_open() { - in_buffer.resize(16); - _conn_state = STATE_CONNECTED; -} - -void WebRTCPeerJS::_on_close() { - close(); -} - -void WebRTCPeerJS::_on_error() { - close(); - _conn_state = STATE_FAILED; -} - -void WebRTCPeerJS::_on_message(uint8_t *p_data, uint32_t p_size, bool p_is_string) { - if (in_buffer.space_left() < p_size + 5) { - ERR_EXPLAIN("Buffer full! Dropping data"); - ERR_FAIL(); - } - - uint8_t is_string = p_is_string ? 1 : 0; - in_buffer.write((uint8_t *)&p_size, 4); - in_buffer.write((uint8_t *)&is_string, 1); - in_buffer.write(p_data, p_size); - queue_count++; -} - -void WebRTCPeerJS::close() { - in_buffer.resize(0); - queue_count = 0; - _was_string = false; - /* clang-format off */ - EM_ASM({ - var dict = Module.IDHandler.get($0); - if (!dict) return; - if (dict["channel"]) { - dict["channel"].close(); - dict["channel"] = null; - } - if (dict["conn"]) { - dict["conn"].close(); - } - }, _js_id); - /* clang-format on */ - _conn_state = STATE_CLOSED; -} - -Error WebRTCPeerJS::create_offer() { - ERR_FAIL_COND_V(_conn_state != STATE_NEW, FAILED); - - _conn_state = STATE_CONNECTING; - /* clang-format off */ - EM_ASM({ - var dict = Module.IDHandler.get($0); - var conn = dict["conn"]; - var c_ptr = dict["ptr"]; - var onError = function(error) { - console.log(error); - ccall("_emrtc_on_error", - "void", - ["number"], - [c_ptr] - ); - }; - var onCreated = function(offer) { - ccall("_emrtc_offer_created", - "void", - ["number", "string", "string"], - [c_ptr, offer.type, offer.sdp] - ); - }; - - var channel = conn.createDataChannel("default"); - dict["channel"] = channel; - ccall("_emrtc_bind_channel", - "void", - ["number"], - [$0] - ); - conn.createOffer().then(onCreated).catch(onError); - }, _js_id); - /* clang-format on */ - return OK; -} - -Error WebRTCPeerJS::set_local_description(String type, String sdp) { - /* clang-format off */ - EM_ASM({ - var dict = Module.IDHandler.get($0); - var conn = dict["conn"]; - var c_ptr = dict["ptr"]; - var type = UTF8ToString($1); - var sdp = UTF8ToString($2); - var onError = function(error) { - console.log(error); - ccall("_emrtc_on_error", - "void", - ["number"], - [c_ptr] - ); - }; - conn.setLocalDescription({ - "sdp": sdp, - "type": type - }).catch(onError); - }, _js_id, type.utf8().get_data(), sdp.utf8().get_data()); - /* clang-format on */ - return OK; -} - -Error WebRTCPeerJS::set_remote_description(String type, String sdp) { - if (type == "offer") { - ERR_FAIL_COND_V(_conn_state != STATE_NEW, FAILED); - _conn_state = STATE_CONNECTING; - } - /* clang-format off */ - EM_ASM({ - var dict = Module.IDHandler.get($0); - var conn = dict["conn"]; - var c_ptr = dict["ptr"]; - var type = UTF8ToString($1); - var sdp = UTF8ToString($2); - - var onError = function(error) { - console.log(error); - ccall("_emrtc_on_error", - "void", - ["number"], - [c_ptr] - ); - }; - var onCreated = function(offer) { - ccall("_emrtc_offer_created", - "void", - ["number", "string", "string"], - [c_ptr, offer.type, offer.sdp] - ); - }; - var onSet = function() { - if (type != "offer") { - return; - } - conn.createAnswer().then(onCreated); - }; - conn.setRemoteDescription({ - "sdp": sdp, - "type": type - }).then(onSet).catch(onError); - }, _js_id, type.utf8().get_data(), sdp.utf8().get_data()); - /* clang-format on */ - return OK; -} - -Error WebRTCPeerJS::add_ice_candidate(String sdpMidName, int sdpMlineIndexName, String sdpName) { - /* clang-format off */ - EM_ASM({ - var dict = Module.IDHandler.get($0); - var conn = dict["conn"]; - var c_ptr = dict["ptr"]; - var sdpMidName = UTF8ToString($1); - var sdpMlineIndexName = UTF8ToString($2); - var sdpName = UTF8ToString($3); - conn.addIceCandidate(new RTCIceCandidate({ - "candidate": sdpName, - "sdpMid": sdpMidName, - "sdpMlineIndex": sdpMlineIndexName - })); - }, _js_id, sdpMidName.utf8().get_data(), sdpMlineIndexName, sdpName.utf8().get_data()); - /* clang-format on */ - return OK; -} - -Error WebRTCPeerJS::poll() { - return OK; -} - -WebRTCPeer::ConnectionState WebRTCPeerJS::get_connection_state() const { - return _conn_state; -} - -int WebRTCPeerJS::get_available_packet_count() const { - return queue_count; -} - -Error WebRTCPeerJS::get_packet(const uint8_t **r_buffer, int &r_buffer_size) { - ERR_FAIL_COND_V(_conn_state != STATE_CONNECTED, ERR_UNCONFIGURED); - - if (queue_count == 0) - return ERR_UNAVAILABLE; - - uint32_t to_read = 0; - uint32_t left = 0; - uint8_t is_string = 0; - r_buffer_size = 0; - - in_buffer.read((uint8_t *)&to_read, 4); - --queue_count; - left = in_buffer.data_left(); - - if (left < to_read + 1) { - in_buffer.advance_read(left); - return FAILED; - } - - in_buffer.read(&is_string, 1); - _was_string = is_string == 1; - in_buffer.read(packet_buffer, to_read); - *r_buffer = packet_buffer; - r_buffer_size = to_read; - - return OK; -} - -Error WebRTCPeerJS::put_packet(const uint8_t *p_buffer, int p_buffer_size) { - ERR_FAIL_COND_V(_conn_state != STATE_CONNECTED, ERR_UNCONFIGURED); - - int is_bin = _write_mode == WebRTCPeer::WRITE_MODE_BINARY ? 1 : 0; - - /* clang-format off */ - EM_ASM({ - var dict = Module.IDHandler.get($0); - var channel = dict["channel"]; - var bytes_array = new Uint8Array($2); - var i = 0; - - for(i=0; i<$2; i++) { - bytes_array[i] = getValue($1+i, 'i8'); - } - - if ($3) { - channel.send(bytes_array.buffer); - } else { - var string = new TextDecoder("utf-8").decode(bytes_array); - channel.send(string); - } - }, _js_id, p_buffer, p_buffer_size, is_bin); - /* clang-format on */ - - return OK; -} - -int WebRTCPeerJS::get_max_packet_size() const { - return 1200; -} - -void WebRTCPeerJS::set_write_mode(WriteMode p_mode) { - _write_mode = p_mode; -} - -WebRTCPeer::WriteMode WebRTCPeerJS::get_write_mode() const { - return _write_mode; -} - -bool WebRTCPeerJS::was_string_packet() const { - return _was_string; -} - -WebRTCPeerJS::WebRTCPeerJS() { - queue_count = 0; - _was_string = false; - _write_mode = WRITE_MODE_BINARY; - _conn_state = STATE_NEW; - - /* clang-format off */ - _js_id = EM_ASM_INT({ - return Module.IDHandler.add({"conn": null, "ptr": $0, "channel": null}); - }, this); - /* clang-format on */ - _emrtc_create_pc(_js_id); -} - -WebRTCPeerJS::~WebRTCPeerJS() { - close(); - /* clang-format off */ - EM_ASM({ - Module.IDHandler.remove($0); - }, _js_id); - /* clang-format on */ -}; -#endif diff --git a/modules/websocket/doc_classes/WebSocketMultiplayerPeer.xml b/modules/websocket/doc_classes/WebSocketMultiplayerPeer.xml index 8548d21323..103dbd771b 100644 --- a/modules/websocket/doc_classes/WebSocketMultiplayerPeer.xml +++ b/modules/websocket/doc_classes/WebSocketMultiplayerPeer.xml @@ -18,6 +18,24 @@ Returns the [WebSocketPeer] associated to the given [code]peer_id[/code]. </description> </method> + <method name="set_buffers"> + <return type="int" enum="Error"> + </return> + <argument index="0" name="input_buffer_size_kb" type="int"> + </argument> + <argument index="1" name="input_max_packets" type="int"> + </argument> + <argument index="2" name="output_buffer_size_kb" type="int"> + </argument> + <argument index="3" name="output_max_packets" type="int"> + </argument> + <description> + Configure the buffers sizes for this WebSocket peer. Default values can be specified in project settings under [code]network/limits[/code]. For server, values are meant per connected peer. + The first two parameters define the size and queued packets limits of the input buffer, the last two of the output buffer. + Buffer sizes are expressed in KiB, so [code]4 = 2^12 = 4096 bytes[/code]. All parameters will be rounded up to the nearest power of two. + NOTE: HTML5 exports only use the input buffer since the output one is managed by browsers. + </description> + </method> </methods> <signals> <signal name="peer_packet"> diff --git a/modules/websocket/emws_client.cpp b/modules/websocket/emws_client.cpp index aafae8f1c2..409cc9f699 100644 --- a/modules/websocket/emws_client.cpp +++ b/modules/websocket/emws_client.cpp @@ -205,6 +205,12 @@ int EMWSClient::get_max_packet_size() const { return (1 << _in_buf_size) - PROTO_SIZE; } +Error EMWSClient::set_buffers(int p_in_buffer, int p_in_packets, int p_out_buffer, int p_out_packets) { + _in_buf_size = nearest_shift(p_in_buffer - 1) + 10; + _in_pkt_size = nearest_shift(p_in_packets - 1); + return OK; +} + EMWSClient::EMWSClient() { _in_buf_size = nearest_shift((int)GLOBAL_GET(WSC_IN_BUF) - 1) + 10; _in_pkt_size = nearest_shift((int)GLOBAL_GET(WSC_IN_PKT) - 1); diff --git a/modules/websocket/emws_client.h b/modules/websocket/emws_client.h index 9bc29c1913..1811d05eea 100644 --- a/modules/websocket/emws_client.h +++ b/modules/websocket/emws_client.h @@ -49,6 +49,7 @@ private: 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>()); 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/emws_server.cpp b/modules/websocket/emws_server.cpp index 0eef1c4ba9..c4bb459ad0 100644 --- a/modules/websocket/emws_server.cpp +++ b/modules/websocket/emws_server.cpp @@ -79,6 +79,10 @@ int EMWSServer::get_max_packet_size() const { return 0; } +Error EMWSServer::set_buffers(int p_in_buffer, int p_in_packets, int p_out_buffer, int p_out_packets) { + return OK; +} + EMWSServer::EMWSServer() { } diff --git a/modules/websocket/emws_server.h b/modules/websocket/emws_server.h index bb101cd155..a5e5b4090e 100644 --- a/modules/websocket/emws_server.h +++ b/modules/websocket/emws_server.h @@ -42,6 +42,7 @@ class EMWSServer : public WebSocketServer { GDCIIMPL(EMWSServer, 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); void stop(); bool is_listening() const; diff --git a/modules/websocket/lws_client.cpp b/modules/websocket/lws_client.cpp index 08df76293b..f139a4ef66 100644 --- a/modules/websocket/lws_client.cpp +++ b/modules/websocket/lws_client.cpp @@ -215,6 +215,17 @@ uint16_t LWSClient::get_connected_port() const { return 1025; }; +Error LWSClient::set_buffers(int p_in_buffer, int p_in_packets, int p_out_buffer, int p_out_packets) { + ERR_EXPLAIN("Buffers sizes can only be set before listening or connecting"); + ERR_FAIL_COND_V(context != NULL, FAILED); + + _in_buf_size = nearest_shift(p_in_buffer - 1) + 10; + _in_pkt_size = nearest_shift(p_in_packets - 1); + _out_buf_size = nearest_shift(p_out_buffer - 1) + 10; + _out_pkt_size = nearest_shift(p_out_packets - 1); + return OK; +} + LWSClient::LWSClient() { _in_buf_size = nearest_shift((int)GLOBAL_GET(WSC_IN_BUF) - 1) + 10; _in_pkt_size = nearest_shift((int)GLOBAL_GET(WSC_IN_PKT) - 1); diff --git a/modules/websocket/lws_client.h b/modules/websocket/lws_client.h index b3a1237550..df4aabec7f 100644 --- a/modules/websocket/lws_client.h +++ b/modules/websocket/lws_client.h @@ -51,6 +51,7 @@ private: int _out_pkt_size; 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>()); int get_max_packet_size() const; Ref<WebSocketPeer> get_peer(int p_peer_id) const; diff --git a/modules/websocket/lws_server.cpp b/modules/websocket/lws_server.cpp index 61ccdca74a..482c02dc60 100644 --- a/modules/websocket/lws_server.cpp +++ b/modules/websocket/lws_server.cpp @@ -197,6 +197,17 @@ void LWSServer::disconnect_peer(int p_peer_id, int p_code, String p_reason) { get_peer(p_peer_id)->close(p_code, p_reason); } +Error LWSServer::set_buffers(int p_in_buffer, int p_in_packets, int p_out_buffer, int p_out_packets) { + ERR_EXPLAIN("Buffers sizes can only be set before listening or connecting"); + ERR_FAIL_COND_V(context != NULL, FAILED); + + _in_buf_size = nearest_shift(p_in_buffer - 1) + 10; + _in_pkt_size = nearest_shift(p_in_packets - 1); + _out_buf_size = nearest_shift(p_out_buffer - 1) + 10; + _out_pkt_size = nearest_shift(p_out_packets - 1); + return OK; +} + LWSServer::LWSServer() { _in_buf_size = nearest_shift((int)GLOBAL_GET(WSS_IN_BUF) - 1) + 10; _in_pkt_size = nearest_shift((int)GLOBAL_GET(WSS_IN_PKT) - 1); diff --git a/modules/websocket/lws_server.h b/modules/websocket/lws_server.h index 5096ee0f88..b331852d26 100644 --- a/modules/websocket/lws_server.h +++ b/modules/websocket/lws_server.h @@ -52,6 +52,7 @@ private: int _out_pkt_size; 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); void stop(); bool is_listening() const; diff --git a/modules/websocket/websocket_client.h b/modules/websocket/websocket_client.h index c464d97c7f..7ddb9468a5 100644 --- a/modules/websocket/websocket_client.h +++ b/modules/websocket/websocket_client.h @@ -67,6 +67,8 @@ public: void _on_disconnect(bool p_was_clean); void _on_error(); + virtual Error set_buffers(int p_in_buffer, int p_in_packets, int p_out_buffer, int p_out_packets) = 0; + WebSocketClient(); ~WebSocketClient(); }; diff --git a/modules/websocket/websocket_multiplayer_peer.cpp b/modules/websocket/websocket_multiplayer_peer.cpp index 6aab8a7e81..23cbf916eb 100644 --- a/modules/websocket/websocket_multiplayer_peer.cpp +++ b/modules/websocket/websocket_multiplayer_peer.cpp @@ -87,6 +87,7 @@ void WebSocketMultiplayerPeer::_clear() { void WebSocketMultiplayerPeer::_bind_methods() { + ClassDB::bind_method(D_METHOD("set_buffers", "input_buffer_size_kb", "input_max_packets", "output_buffer_size_kb", "output_max_packets"), &WebSocketMultiplayerPeer::set_buffers); ClassDB::bind_method(D_METHOD("get_peer", "peer_id"), &WebSocketMultiplayerPeer::get_peer); ADD_SIGNAL(MethodInfo("peer_packet", PropertyInfo(Variant::INT, "peer_source"))); diff --git a/modules/websocket/websocket_multiplayer_peer.h b/modules/websocket/websocket_multiplayer_peer.h index b050449ee0..089bc25fe9 100644 --- a/modules/websocket/websocket_multiplayer_peer.h +++ b/modules/websocket/websocket_multiplayer_peer.h @@ -97,6 +97,7 @@ public: virtual Error put_packet(const uint8_t *p_buffer, int p_buffer_size); /* WebSocketPeer */ + virtual Error set_buffers(int p_in_buffer, int p_in_packets, int p_out_buffer, int p_out_packets) = 0; virtual Ref<WebSocketPeer> get_peer(int p_peer_id) const = 0; void _process_multiplayer(Ref<WebSocketPeer> p_peer, uint32_t p_peer_id); diff --git a/modules/websocket/websocket_server.h b/modules/websocket/websocket_server.h index 7a94c4047b..83c0c10419 100644 --- a/modules/websocket/websocket_server.h +++ b/modules/websocket/websocket_server.h @@ -62,6 +62,8 @@ 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); + virtual Error set_buffers(int p_in_buffer, int p_in_packets, int p_out_buffer, int p_out_packets) = 0; + WebSocketServer(); ~WebSocketServer(); }; diff --git a/platform/android/detect.py b/platform/android/detect.py index ea70fefbc5..b7641172e4 100644 --- a/platform/android/detect.py +++ b/platform/android/detect.py @@ -214,13 +214,14 @@ def configure(env): lib_sysroot = env["ANDROID_NDK_ROOT"] + "/platforms/" + env['ndk_platform'] + "/" + env['ARCH'] ## Compile flags - - if env['android_stl']: + # Disable exceptions and rtti on non-tools (template) builds + if env['tools'] or env['android_stl']: env.Append(CPPFLAGS=["-isystem", env["ANDROID_NDK_ROOT"] + "/sources/cxx-stl/llvm-libc++/include"]) env.Append(CPPFLAGS=["-isystem", env["ANDROID_NDK_ROOT"] + "/sources/cxx-stl/llvm-libc++abi/include"]) env.Append(CXXFLAGS=['-frtti', "-std=gnu++14"]) else: env.Append(CXXFLAGS=['-fno-rtti', '-fno-exceptions']) + # Don't use dynamic_cast, necessary with no-rtti. env.Append(CPPFLAGS=['-DNO_SAFE_CAST']) ndk_version = get_ndk_version(env["ANDROID_NDK_ROOT"]) diff --git a/platform/android/export/export.cpp b/platform/android/export/export.cpp index b987b3aebd..30267aa968 100644 --- a/platform/android/export/export.cpp +++ b/platform/android/export/export.cpp @@ -790,7 +790,7 @@ class EditorExportPlatformAndroid : public EditorExportPlatform { if (tname == "manifest" && attrname == "versionName") { if (attr_value == 0xFFFFFFFF) { - WARN_PRINT("Version name in a resource, should be plaintext") + WARN_PRINT("Version name in a resource, should be plain text"); } else string_table.write[attr_value] = version_name; } diff --git a/platform/android/java/gradlew.bat b/platform/android/java/gradlew.bat index e95643d6a2..f9553162f1 100644 --- a/platform/android/java/gradlew.bat +++ b/platform/android/java/gradlew.bat @@ -1,84 +1,84 @@ -@if "%DEBUG%" == "" @echo off
-@rem ##########################################################################
-@rem
-@rem Gradle startup script for Windows
-@rem
-@rem ##########################################################################
-
-@rem Set local scope for the variables with windows NT shell
-if "%OS%"=="Windows_NT" setlocal
-
-set DIRNAME=%~dp0
-if "%DIRNAME%" == "" set DIRNAME=.
-set APP_BASE_NAME=%~n0
-set APP_HOME=%DIRNAME%
-
-@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
-set DEFAULT_JVM_OPTS=
-
-@rem Find java.exe
-if defined JAVA_HOME goto findJavaFromJavaHome
-
-set JAVA_EXE=java.exe
-%JAVA_EXE% -version >NUL 2>&1
-if "%ERRORLEVEL%" == "0" goto init
-
-echo.
-echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
-echo.
-echo Please set the JAVA_HOME variable in your environment to match the
-echo location of your Java installation.
-
-goto fail
-
-:findJavaFromJavaHome
-set JAVA_HOME=%JAVA_HOME:"=%
-set JAVA_EXE=%JAVA_HOME%/bin/java.exe
-
-if exist "%JAVA_EXE%" goto init
-
-echo.
-echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
-echo.
-echo Please set the JAVA_HOME variable in your environment to match the
-echo location of your Java installation.
-
-goto fail
-
-:init
-@rem Get command-line arguments, handling Windows variants
-
-if not "%OS%" == "Windows_NT" goto win9xME_args
-
-:win9xME_args
-@rem Slurp the command line arguments.
-set CMD_LINE_ARGS=
-set _SKIP=2
-
-:win9xME_args_slurp
-if "x%~1" == "x" goto execute
-
-set CMD_LINE_ARGS=%*
-
-:execute
-@rem Setup the command line
-
-set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
-
-@rem Execute Gradle
-"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
-
-:end
-@rem End local scope for the variables with windows NT shell
-if "%ERRORLEVEL%"=="0" goto mainEnd
-
-:fail
-rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
-rem the _cmd.exe /c_ return code!
-if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
-exit /b 1
-
-:mainEnd
-if "%OS%"=="Windows_NT" endlocal
-
-:omega
+@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS= + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto init + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto init + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:init +@rem Get command-line arguments, handling Windows variants + +if not "%OS%" == "Windows_NT" goto win9xME_args + +:win9xME_args +@rem Slurp the command line arguments. +set CMD_LINE_ARGS= +set _SKIP=2 + +:win9xME_args_slurp +if "x%~1" == "x" goto execute + +set CMD_LINE_ARGS=%* + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/platform/android/java/src/org/godotengine/godot/Godot.java b/platform/android/java/src/org/godotengine/godot/Godot.java index 374d40463a..751e885118 100644 --- a/platform/android/java/src/org/godotengine/godot/Godot.java +++ b/platform/android/java/src/org/godotengine/godot/Godot.java @@ -30,8 +30,6 @@ package org.godotengine.godot; -//import android.R; - import android.Manifest; import android.app.Activity; import android.app.ActivityManager; @@ -64,6 +62,7 @@ import android.util.Log; import android.view.Display; import android.view.KeyEvent; import android.view.MotionEvent; +import android.view.Surface; import android.view.View; import android.view.ViewGroup; import android.view.ViewGroup.LayoutParams; @@ -73,7 +72,6 @@ import android.view.WindowManager; import android.widget.Button; import android.widget.FrameLayout; import android.widget.ProgressBar; -import android.widget.RelativeLayout; import android.widget.TextView; import com.google.android.vending.expansion.downloader.DownloadProgressInfo; import com.google.android.vending.expansion.downloader.DownloaderClientMarshaller; @@ -94,6 +92,7 @@ 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.xr.XRMode; public class Godot extends Activity implements SensorEventListener, IDownloaderClient { @@ -120,6 +119,7 @@ public class Godot extends Activity implements SensorEventListener, IDownloaderC private boolean use_immersive = false; private boolean use_debug_opengl = false; private boolean mStatePaused; + private boolean activityResumed; private int mState; static private Intent mCurrentIntent; @@ -282,7 +282,7 @@ public class Godot extends Activity implements SensorEventListener, IDownloaderC // ...add to FrameLayout layout.addView(edittext); - mView = new GodotView(getApplication(), io, use_gl3, use_32_bits, use_debug_opengl, this); + mView = new GodotView(this, XRMode.PANCAKE, use_gl3, use_32_bits, use_debug_opengl); layout.addView(mView, new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT)); edittext.setView(mView); io.setEdit(edittext); @@ -402,6 +402,20 @@ public class Godot extends Activity implements SensorEventListener, IDownloaderC } } + /** + * Used by the native code (java_godot_wrapper.h) to check whether the activity is resumed or paused. + */ + private boolean isActivityResumed() { + return activityResumed; + } + + /** + * Used by the native code (java_godot_wrapper.h) to access the Android surface. + */ + private Surface getSurface() { + return mView.getHolder().getSurface(); + } + String expansion_pack_path; private void initializeGodot() { @@ -612,6 +626,8 @@ public class Godot extends Activity implements SensorEventListener, IDownloaderC @Override protected void onPause() { super.onPause(); + activityResumed = false; + if (!godot_initialized) { if (null != mDownloaderClientStub) { mDownloaderClientStub.disconnect(this); @@ -687,6 +703,8 @@ public class Godot extends Activity implements SensorEventListener, IDownloaderC singletons[i].onMainResume(); } + + activityResumed = true; } public void UiChangeListener() { @@ -1059,4 +1077,7 @@ public class Godot extends Activity implements SensorEventListener, IDownloaderC mProgressFraction.setText(Helpers.getDownloadProgressString(progress.mOverallProgress, progress.mOverallTotal)); } + public void initInputDevices() { + mView.initInputDevices(); + } } diff --git a/platform/android/java/src/org/godotengine/godot/GodotRenderer.java b/platform/android/java/src/org/godotengine/godot/GodotRenderer.java new file mode 100644 index 0000000000..8e3775c2a9 --- /dev/null +++ b/platform/android/java/src/org/godotengine/godot/GodotRenderer.java @@ -0,0 +1,61 @@ +/*************************************************************************/ +/* GodotRenderer.java */ +/*************************************************************************/ +/* 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. */ +/*************************************************************************/ + +package org.godotengine.godot; + +import android.opengl.GLSurfaceView; +import javax.microedition.khronos.egl.EGLConfig; +import javax.microedition.khronos.opengles.GL10; +import org.godotengine.godot.utils.GLUtils; + +/** + * Godot's renderer implementation. + */ +class GodotRenderer implements GLSurfaceView.Renderer { + + public void onDrawFrame(GL10 gl) { + GodotLib.step(); + for (int i = 0; i < Godot.singleton_count; i++) { + Godot.singletons[i].onGLDrawFrame(gl); + } + } + + public void onSurfaceChanged(GL10 gl, int width, int height) { + + GodotLib.resize(width, height); + for (int i = 0; i < Godot.singleton_count; i++) { + Godot.singletons[i].onGLSurfaceChanged(gl, width, height); + } + } + + public void onSurfaceCreated(GL10 gl, EGLConfig config) { + GodotLib.newcontext(GLUtils.use_32); + } +} diff --git a/platform/android/java/src/org/godotengine/godot/GodotView.java b/platform/android/java/src/org/godotengine/godot/GodotView.java index d7cd5b4360..1c189a1579 100644 --- a/platform/android/java/src/org/godotengine/godot/GodotView.java +++ b/platform/android/java/src/org/godotengine/godot/GodotView.java @@ -30,28 +30,20 @@ package org.godotengine.godot; import android.annotation.SuppressLint; -import android.content.Context; -import android.content.ContextWrapper; import android.graphics.PixelFormat; -import android.hardware.input.InputManager; import android.opengl.GLSurfaceView; -import android.util.AttributeSet; -import android.util.Log; -import android.view.InputDevice; import android.view.KeyEvent; import android.view.MotionEvent; -import java.io.File; -import java.util.ArrayList; -import java.util.Collections; -import java.util.Comparator; -import java.util.List; -import javax.microedition.khronos.egl.EGL10; -import javax.microedition.khronos.egl.EGLConfig; -import javax.microedition.khronos.egl.EGLContext; -import javax.microedition.khronos.egl.EGLDisplay; -import javax.microedition.khronos.opengles.GL10; -import org.godotengine.godot.input.InputManagerCompat; -import org.godotengine.godot.input.InputManagerCompat.InputDeviceListener; +import org.godotengine.godot.input.GodotInputHandler; +import org.godotengine.godot.utils.GLUtils; +import org.godotengine.godot.xr.XRMode; +import org.godotengine.godot.xr.ovr.OvrConfigChooser; +import org.godotengine.godot.xr.ovr.OvrContextFactory; +import org.godotengine.godot.xr.ovr.OvrWindowSurfaceFactory; +import org.godotengine.godot.xr.pancake.PancakeConfigChooser; +import org.godotengine.godot.xr.pancake.PancakeContextFactory; +import org.godotengine.godot.xr.pancake.PancakeFallbackConfigChooser; + /** * A simple GLSurfaceView sub-class that demonstrate how to perform * OpenGL ES 2.0 rendering into a GL Surface. Note the following important @@ -70,45 +62,26 @@ import org.godotengine.godot.input.InputManagerCompat.InputDeviceListener; * that matches it exactly (with regards to red/green/blue/alpha channels * bit depths). Failure to do so would result in an EGL_BAD_MATCH error. */ -public class GodotView extends GLSurfaceView implements InputDeviceListener { - - private static String TAG = "GodotView"; - private static final boolean DEBUG = false; - private Context ctx; - - private GodotIO io; - private static boolean use_gl3 = false; - private static boolean use_32 = false; - private static boolean use_debug_opengl = false; +public class GodotView extends GLSurfaceView { - private Godot activity; + private static String TAG = GodotView.class.getSimpleName(); - private InputManagerCompat mInputManager; - public GodotView(Context context, GodotIO p_io, boolean p_use_gl3, boolean p_use_32_bits, boolean p_use_debug_opengl, Godot p_activity) { - super(context); - ctx = context; - io = p_io; - use_gl3 = p_use_gl3; - use_32 = p_use_32_bits; - use_debug_opengl = p_use_debug_opengl; + private final Godot activity; + private final GodotInputHandler inputHandler; - activity = p_activity; - - setPreserveEGLContextOnPause(true); + public GodotView(Godot activity, XRMode xrMode, boolean p_use_gl3, boolean p_use_32_bits, boolean p_use_debug_opengl) { + super(activity); + GLUtils.use_gl3 = p_use_gl3; + GLUtils.use_32 = p_use_32_bits; + GLUtils.use_debug_opengl = p_use_debug_opengl; - mInputManager = InputManagerCompat.Factory.getInputManager(this.getContext()); - mInputManager.registerInputDeviceListener(this, null); - init(false, 16, 0); + this.activity = activity; + this.inputHandler = new GodotInputHandler(this); + init(xrMode, false, 16, 0); } - public GodotView(Context context) { - super(context); - ctx = context; - } - - public GodotView(Context context, boolean translucent, int depth, int stencil) { - super(context); - init(translucent, depth, stencil); + public void initInputDevices() { + this.inputHandler.initInputDevices(); } @SuppressLint("ClickableViewAccessibility") @@ -118,609 +91,80 @@ public class GodotView extends GLSurfaceView implements InputDeviceListener { return activity.gotTouchEvent(event); } - public int get_godot_button(int keyCode) { - - int button; - switch (keyCode) { - case KeyEvent.KEYCODE_BUTTON_A: // Android A is SNES B - button = 0; - break; - case KeyEvent.KEYCODE_BUTTON_B: - button = 1; - break; - case KeyEvent.KEYCODE_BUTTON_X: // Android X is SNES Y - button = 2; - break; - case KeyEvent.KEYCODE_BUTTON_Y: - button = 3; - break; - case KeyEvent.KEYCODE_BUTTON_L1: - button = 9; - break; - case KeyEvent.KEYCODE_BUTTON_L2: - button = 15; - break; - case KeyEvent.KEYCODE_BUTTON_R1: - button = 10; - break; - case KeyEvent.KEYCODE_BUTTON_R2: - button = 16; - break; - case KeyEvent.KEYCODE_BUTTON_SELECT: - button = 4; - break; - case KeyEvent.KEYCODE_BUTTON_START: - button = 6; - break; - case KeyEvent.KEYCODE_BUTTON_THUMBL: - button = 7; - break; - case KeyEvent.KEYCODE_BUTTON_THUMBR: - button = 8; - break; - case KeyEvent.KEYCODE_DPAD_UP: - button = 11; - break; - case KeyEvent.KEYCODE_DPAD_DOWN: - button = 12; - break; - case KeyEvent.KEYCODE_DPAD_LEFT: - button = 13; - break; - case KeyEvent.KEYCODE_DPAD_RIGHT: - button = 14; - break; - case KeyEvent.KEYCODE_BUTTON_C: - button = 17; - break; - case KeyEvent.KEYCODE_BUTTON_Z: - button = 18; - break; - - default: - button = keyCode - KeyEvent.KEYCODE_BUTTON_1 + 20; - break; - } - return button; - }; - - private static class joystick { - public int device_id; - public String name; - public ArrayList<InputDevice.MotionRange> axes; - public ArrayList<InputDevice.MotionRange> hats; - } - - private static class RangeComparator implements Comparator<InputDevice.MotionRange> { - @Override - public int compare(InputDevice.MotionRange arg0, InputDevice.MotionRange arg1) { - return arg0.getAxis() - arg1.getAxis(); - } - } - - ArrayList<joystick> joy_devices = new ArrayList<joystick>(); - - private int find_joy_device(int device_id) { - for (int i = 0; i < joy_devices.size(); i++) { - if (joy_devices.get(i).device_id == device_id) { - return i; - } - } - - return -1; - } - - @Override - public void onInputDeviceAdded(int deviceId) { - int id = find_joy_device(deviceId); - - // Check if the device has not been already added - if (id < 0) { - InputDevice device = mInputManager.getInputDevice(deviceId); - - id = joy_devices.size(); - - joystick joy = new joystick(); - joy.device_id = deviceId; - joy.name = device.getName(); - joy.axes = new ArrayList<InputDevice.MotionRange>(); - joy.hats = new ArrayList<InputDevice.MotionRange>(); - - List<InputDevice.MotionRange> ranges = device.getMotionRanges(); - Collections.sort(ranges, new RangeComparator()); - - for (InputDevice.MotionRange range : ranges) { - if (range.getAxis() == MotionEvent.AXIS_HAT_X || range.getAxis() == MotionEvent.AXIS_HAT_Y) { - joy.hats.add(range); - } else { - joy.axes.add(range); - } - } - - joy_devices.add(joy); - - final int device_id = id; - final String name = joy.name; - queueEvent(new Runnable() { - @Override - public void run() { - GodotLib.joyconnectionchanged(device_id, true, name); - } - }); - } - } - - @Override - public void onInputDeviceRemoved(int deviceId) { - final int device_id = find_joy_device(deviceId); - - // Check if the evice has not been already removed - if (device_id > -1) { - joy_devices.remove(device_id); - - queueEvent(new Runnable() { - @Override - public void run() { - GodotLib.joyconnectionchanged(device_id, false, ""); - } - }); - } - } - - @Override - public void onInputDeviceChanged(int deviceId) { - } @Override public boolean onKeyUp(final int keyCode, KeyEvent event) { - - if (keyCode == KeyEvent.KEYCODE_BACK) { - return true; - } - - if (keyCode == KeyEvent.KEYCODE_VOLUME_UP || keyCode == KeyEvent.KEYCODE_VOLUME_DOWN) { - return super.onKeyUp(keyCode, event); - }; - - int source = event.getSource(); - if ((source & InputDevice.SOURCE_JOYSTICK) == InputDevice.SOURCE_JOYSTICK || (source & InputDevice.SOURCE_DPAD) == InputDevice.SOURCE_DPAD || (source & InputDevice.SOURCE_GAMEPAD) == InputDevice.SOURCE_GAMEPAD) { - - final int button = get_godot_button(keyCode); - final int device_id = find_joy_device(event.getDeviceId()); - - // Check if the device exists - if (device_id > -1) { - queueEvent(new Runnable() { - @Override - public void run() { - GodotLib.joybutton(device_id, button, false); - } - }); - return true; - } - } else { - final int chr = event.getUnicodeChar(0); - queueEvent(new Runnable() { - @Override - public void run() { - GodotLib.key(keyCode, chr, false); - } - }); - }; - - return super.onKeyUp(keyCode, event); - }; + return inputHandler.onKeyUp(keyCode, event) || super.onKeyUp(keyCode, event); + } @Override public boolean onKeyDown(final int keyCode, KeyEvent event) { - - if (keyCode == KeyEvent.KEYCODE_BACK) { - activity.onBackPressed(); - // press 'back' button should not terminate program - //normal handle 'back' event in game logic - return true; - } - - if (keyCode == KeyEvent.KEYCODE_VOLUME_UP || keyCode == KeyEvent.KEYCODE_VOLUME_DOWN) { - return super.onKeyDown(keyCode, event); - }; - - int source = event.getSource(); - //Log.e(TAG, String.format("Key down! source %d, device %d, joystick %d, %d, %d", event.getDeviceId(), source, (source & InputDevice.SOURCE_JOYSTICK), (source & InputDevice.SOURCE_DPAD), (source & InputDevice.SOURCE_GAMEPAD))); - - if ((source & InputDevice.SOURCE_JOYSTICK) == InputDevice.SOURCE_JOYSTICK || (source & InputDevice.SOURCE_DPAD) == InputDevice.SOURCE_DPAD || (source & InputDevice.SOURCE_GAMEPAD) == InputDevice.SOURCE_GAMEPAD) { - - if (event.getRepeatCount() > 0) // ignore key echo - return true; - - final int button = get_godot_button(keyCode); - final int device_id = find_joy_device(event.getDeviceId()); - - // Check if the device exists - if (device_id > -1) { - queueEvent(new Runnable() { - @Override - public void run() { - GodotLib.joybutton(device_id, button, true); - } - }); - return true; - } - } else { - final int chr = event.getUnicodeChar(0); - queueEvent(new Runnable() { - @Override - public void run() { - GodotLib.key(keyCode, chr, true); - } - }); - }; - - return super.onKeyDown(keyCode, event); + return inputHandler.onKeyDown(keyCode, event) || super.onKeyDown(keyCode, event); } @Override public boolean onGenericMotionEvent(MotionEvent event) { - - if ((event.getSource() & InputDevice.SOURCE_JOYSTICK) == InputDevice.SOURCE_JOYSTICK && event.getAction() == MotionEvent.ACTION_MOVE) { - - final int device_id = find_joy_device(event.getDeviceId()); - - // Check if the device exists - if (device_id > -1) { - joystick joy = joy_devices.get(device_id); - - for (int i = 0; i < joy.axes.size(); i++) { - InputDevice.MotionRange range = joy.axes.get(i); - final float value = (event.getAxisValue(range.getAxis()) - range.getMin()) / range.getRange() * 2.0f - 1.0f; - final int idx = i; - queueEvent(new Runnable() { - @Override - public void run() { - GodotLib.joyaxis(device_id, idx, value); - } - }); - } - - for (int i = 0; i < joy.hats.size(); i += 2) { - final int hatX = Math.round(event.getAxisValue(joy.hats.get(i).getAxis())); - final int hatY = Math.round(event.getAxisValue(joy.hats.get(i + 1).getAxis())); - queueEvent(new Runnable() { - @Override - public void run() { - GodotLib.joyhat(device_id, hatX, hatY); - } - }); - } - return true; - } - }; - - return super.onGenericMotionEvent(event); - }; - - private void init(boolean translucent, int depth, int stencil) { - - this.setFocusableInTouchMode(true); - /* By default, GLSurfaceView() creates a RGB_565 opaque surface. - * If we want a translucent one, we should change the surface's - * format here, using PixelFormat.TRANSLUCENT for GL Surfaces - * is interpreted as any 32-bit surface with alpha by SurfaceFlinger. - */ - if (translucent) { - this.getHolder().setFormat(PixelFormat.TRANSLUCENT); - } - - /* Setup the context factory for 2.0 rendering. - * See ContextFactory class definition below - */ - setEGLContextFactory(new ContextFactory()); - - /* We need to choose an EGLConfig that matches the format of - * our surface exactly. This is going to be done in our - * custom config chooser. See ConfigChooser class definition - * below. - */ - - if (use_32) { - setEGLConfigChooser(translucent ? - new FallbackConfigChooser(8, 8, 8, 8, 24, stencil, new ConfigChooser(8, 8, 8, 8, 16, stencil)) : - new FallbackConfigChooser(8, 8, 8, 8, 24, stencil, new ConfigChooser(5, 6, 5, 0, 16, stencil))); - - } else { - setEGLConfigChooser(translucent ? - new ConfigChooser(8, 8, 8, 8, 16, stencil) : - new ConfigChooser(5, 6, 5, 0, 16, stencil)); - } - - /* Set the renderer responsible for frame rendering */ - setRenderer(new Renderer()); - } - - private static final int _EGL_CONTEXT_FLAGS_KHR = 0x30FC; - private static final int _EGL_CONTEXT_OPENGL_DEBUG_BIT_KHR = 0x00000001; - - private static class ContextFactory implements GLSurfaceView.EGLContextFactory { - private static int EGL_CONTEXT_CLIENT_VERSION = 0x3098; - public EGLContext createContext(EGL10 egl, EGLDisplay display, EGLConfig eglConfig) { - String driver_name = GodotLib.getGlobal("rendering/quality/driver/driver_name"); - if (use_gl3 && !driver_name.equals("GLES3")) { - use_gl3 = false; - } - if (use_gl3) - Log.w(TAG, "creating OpenGL ES 3.0 context :"); - else - Log.w(TAG, "creating OpenGL ES 2.0 context :"); - - checkEglError("Before eglCreateContext", egl); - EGLContext context; - if (use_debug_opengl) { - int[] attrib_list2 = { EGL_CONTEXT_CLIENT_VERSION, 2, _EGL_CONTEXT_FLAGS_KHR, _EGL_CONTEXT_OPENGL_DEBUG_BIT_KHR, EGL10.EGL_NONE }; - int[] attrib_list3 = { EGL_CONTEXT_CLIENT_VERSION, 3, _EGL_CONTEXT_FLAGS_KHR, _EGL_CONTEXT_OPENGL_DEBUG_BIT_KHR, EGL10.EGL_NONE }; - context = egl.eglCreateContext(display, eglConfig, EGL10.EGL_NO_CONTEXT, use_gl3 ? attrib_list3 : attrib_list2); - } else { - int[] attrib_list2 = { EGL_CONTEXT_CLIENT_VERSION, 2, EGL10.EGL_NONE }; - int[] attrib_list3 = { EGL_CONTEXT_CLIENT_VERSION, 3, EGL10.EGL_NONE }; - context = egl.eglCreateContext(display, eglConfig, EGL10.EGL_NO_CONTEXT, use_gl3 ? attrib_list3 : attrib_list2); - } - checkEglError("After eglCreateContext", egl); - return context; - } - - public void destroyContext(EGL10 egl, EGLDisplay display, EGLContext context) { - egl.eglDestroyContext(display, context); - } - } - - private static void checkEglError(String prompt, EGL10 egl) { - int error; - while ((error = egl.eglGetError()) != EGL10.EGL_SUCCESS) { - Log.e(TAG, String.format("%s: EGL error: 0x%x", prompt, error)); - } - } - /* Fallback if 32bit View is not supported*/ - private static class FallbackConfigChooser extends ConfigChooser { - private ConfigChooser fallback; - - public FallbackConfigChooser(int r, int g, int b, int a, int depth, int stencil, ConfigChooser fallback) { - super(r, g, b, a, depth, stencil); - this.fallback = fallback; - } - - @Override - public EGLConfig chooseConfig(EGL10 egl, EGLDisplay display, EGLConfig[] configs) { - EGLConfig ec = super.chooseConfig(egl, display, configs); - if (ec == null) { - Log.w(TAG, "Trying ConfigChooser fallback"); - ec = fallback.chooseConfig(egl, display, configs); - use_32 = false; - } - return ec; - } + return inputHandler.onGenericMotionEvent(event) || super.onGenericMotionEvent(event); } - private static class ConfigChooser implements GLSurfaceView.EGLConfigChooser { - - public ConfigChooser(int r, int g, int b, int a, int depth, int stencil) { - mRedSize = r; - mGreenSize = g; - mBlueSize = b; - mAlphaSize = a; - mDepthSize = depth; - mStencilSize = stencil; - } - - /* This EGL config specification is used to specify 2.0 rendering. - * We use a minimum size of 4 bits for red/green/blue, but will - * perform actual matching in chooseConfig() below. - */ - private static int EGL_OPENGL_ES2_BIT = 4; - private static int[] s_configAttribs2 = { - EGL10.EGL_RED_SIZE, 4, - EGL10.EGL_GREEN_SIZE, 4, - EGL10.EGL_BLUE_SIZE, 4, - // EGL10.EGL_DEPTH_SIZE, 16, - // EGL10.EGL_STENCIL_SIZE, EGL10.EGL_DONT_CARE, - EGL10.EGL_RENDERABLE_TYPE, EGL_OPENGL_ES2_BIT, - EGL10.EGL_NONE - }; - private static int[] s_configAttribs3 = { - EGL10.EGL_RED_SIZE, 4, - EGL10.EGL_GREEN_SIZE, 4, - EGL10.EGL_BLUE_SIZE, 4, - // EGL10.EGL_DEPTH_SIZE, 16, - // EGL10.EGL_STENCIL_SIZE, EGL10.EGL_DONT_CARE, - EGL10.EGL_RENDERABLE_TYPE, EGL_OPENGL_ES2_BIT, //apparently there is no EGL_OPENGL_ES3_BIT - EGL10.EGL_NONE - }; - - public EGLConfig chooseConfig(EGL10 egl, EGLDisplay display) { - - /* Get the number of minimally matching EGL configurations - */ - int[] num_config = new int[1]; - egl.eglChooseConfig(display, use_gl3 ? s_configAttribs3 : s_configAttribs2, null, 0, num_config); - - int numConfigs = num_config[0]; - - if (numConfigs <= 0) { - throw new IllegalArgumentException("No configs match configSpec"); - } - - /* Allocate then read the array of minimally matching EGL configs - */ - EGLConfig[] configs = new EGLConfig[numConfigs]; - egl.eglChooseConfig(display, use_gl3 ? s_configAttribs3 : s_configAttribs2, configs, numConfigs, num_config); + private void init(XRMode xrMode, boolean translucent, int depth, int stencil) { - if (DEBUG) { - printConfigs(egl, display, configs); - } - /* Now return the "best" one - */ - return chooseConfig(egl, display, configs); - } + setPreserveEGLContextOnPause(true); + setFocusableInTouchMode(true); + switch (xrMode) { - public EGLConfig chooseConfig(EGL10 egl, EGLDisplay display, - EGLConfig[] configs) { - for (EGLConfig config : configs) { - int d = findConfigAttrib(egl, display, config, - EGL10.EGL_DEPTH_SIZE, 0); - int s = findConfigAttrib(egl, display, config, - EGL10.EGL_STENCIL_SIZE, 0); + case OVR: + // Replace the default egl config chooser. + setEGLConfigChooser(new OvrConfigChooser()); - // We need at least mDepthSize and mStencilSize bits - if (d < mDepthSize || s < mStencilSize) - continue; + // Replace the default context factory. + setEGLContextFactory(new OvrContextFactory()); - // We want an *exact* match for red/green/blue/alpha - int r = findConfigAttrib(egl, display, config, - EGL10.EGL_RED_SIZE, 0); - int g = findConfigAttrib(egl, display, config, - EGL10.EGL_GREEN_SIZE, 0); - int b = findConfigAttrib(egl, display, config, - EGL10.EGL_BLUE_SIZE, 0); - int a = findConfigAttrib(egl, display, config, - EGL10.EGL_ALPHA_SIZE, 0); + // Replace the default window surface factory. + setEGLWindowSurfaceFactory(new OvrWindowSurfaceFactory()); + break; - if (r == mRedSize && g == mGreenSize && b == mBlueSize && a == mAlphaSize) - return config; - } - return null; - } + case PANCAKE: + default: + /* By default, GLSurfaceView() creates a RGB_565 opaque surface. + * If we want a translucent one, we should change the surface's + * format here, using PixelFormat.TRANSLUCENT for GL Surfaces + * is interpreted as any 32-bit surface with alpha by SurfaceFlinger. + */ + if (translucent) { + this.getHolder().setFormat(PixelFormat.TRANSLUCENT); + } - private int findConfigAttrib(EGL10 egl, EGLDisplay display, - EGLConfig config, int attribute, int defaultValue) { + /* Setup the context factory for 2.0 rendering. + * See ContextFactory class definition below + */ + setEGLContextFactory(new PancakeContextFactory()); - if (egl.eglGetConfigAttrib(display, config, attribute, mValue)) { - return mValue[0]; - } - return defaultValue; - } + /* We need to choose an EGLConfig that matches the format of + * our surface exactly. This is going to be done in our + * custom config chooser. See ConfigChooser class definition + * below. + */ - private void printConfigs(EGL10 egl, EGLDisplay display, - EGLConfig[] configs) { - int numConfigs = configs.length; - Log.w(TAG, String.format("%d configurations", numConfigs)); - for (int i = 0; i < numConfigs; i++) { - Log.w(TAG, String.format("Configuration %d:\n", i)); - printConfig(egl, display, configs[i]); - } - } + if (GLUtils.use_32) { + setEGLConfigChooser(translucent ? + new PancakeFallbackConfigChooser(8, 8, 8, 8, 24, stencil, + new PancakeConfigChooser(8, 8, 8, 8, 16, stencil)) : + new PancakeFallbackConfigChooser(8, 8, 8, 8, 24, stencil, + new PancakeConfigChooser(5, 6, 5, 0, 16, stencil))); - private void printConfig(EGL10 egl, EGLDisplay display, - EGLConfig config) { - int[] attributes = { - EGL10.EGL_BUFFER_SIZE, - EGL10.EGL_ALPHA_SIZE, - EGL10.EGL_BLUE_SIZE, - EGL10.EGL_GREEN_SIZE, - EGL10.EGL_RED_SIZE, - EGL10.EGL_DEPTH_SIZE, - EGL10.EGL_STENCIL_SIZE, - EGL10.EGL_CONFIG_CAVEAT, - EGL10.EGL_CONFIG_ID, - EGL10.EGL_LEVEL, - EGL10.EGL_MAX_PBUFFER_HEIGHT, - EGL10.EGL_MAX_PBUFFER_PIXELS, - EGL10.EGL_MAX_PBUFFER_WIDTH, - EGL10.EGL_NATIVE_RENDERABLE, - EGL10.EGL_NATIVE_VISUAL_ID, - EGL10.EGL_NATIVE_VISUAL_TYPE, - 0x3030, // EGL10.EGL_PRESERVED_RESOURCES, - EGL10.EGL_SAMPLES, - EGL10.EGL_SAMPLE_BUFFERS, - EGL10.EGL_SURFACE_TYPE, - EGL10.EGL_TRANSPARENT_TYPE, - EGL10.EGL_TRANSPARENT_RED_VALUE, - EGL10.EGL_TRANSPARENT_GREEN_VALUE, - EGL10.EGL_TRANSPARENT_BLUE_VALUE, - 0x3039, // EGL10.EGL_BIND_TO_TEXTURE_RGB, - 0x303A, // EGL10.EGL_BIND_TO_TEXTURE_RGBA, - 0x303B, // EGL10.EGL_MIN_SWAP_INTERVAL, - 0x303C, // EGL10.EGL_MAX_SWAP_INTERVAL, - EGL10.EGL_LUMINANCE_SIZE, - EGL10.EGL_ALPHA_MASK_SIZE, - EGL10.EGL_COLOR_BUFFER_TYPE, - EGL10.EGL_RENDERABLE_TYPE, - 0x3042 // EGL10.EGL_CONFORMANT - }; - String[] names = { - "EGL_BUFFER_SIZE", - "EGL_ALPHA_SIZE", - "EGL_BLUE_SIZE", - "EGL_GREEN_SIZE", - "EGL_RED_SIZE", - "EGL_DEPTH_SIZE", - "EGL_STENCIL_SIZE", - "EGL_CONFIG_CAVEAT", - "EGL_CONFIG_ID", - "EGL_LEVEL", - "EGL_MAX_PBUFFER_HEIGHT", - "EGL_MAX_PBUFFER_PIXELS", - "EGL_MAX_PBUFFER_WIDTH", - "EGL_NATIVE_RENDERABLE", - "EGL_NATIVE_VISUAL_ID", - "EGL_NATIVE_VISUAL_TYPE", - "EGL_PRESERVED_RESOURCES", - "EGL_SAMPLES", - "EGL_SAMPLE_BUFFERS", - "EGL_SURFACE_TYPE", - "EGL_TRANSPARENT_TYPE", - "EGL_TRANSPARENT_RED_VALUE", - "EGL_TRANSPARENT_GREEN_VALUE", - "EGL_TRANSPARENT_BLUE_VALUE", - "EGL_BIND_TO_TEXTURE_RGB", - "EGL_BIND_TO_TEXTURE_RGBA", - "EGL_MIN_SWAP_INTERVAL", - "EGL_MAX_SWAP_INTERVAL", - "EGL_LUMINANCE_SIZE", - "EGL_ALPHA_MASK_SIZE", - "EGL_COLOR_BUFFER_TYPE", - "EGL_RENDERABLE_TYPE", - "EGL_CONFORMANT" - }; - int[] value = new int[1]; - for (int i = 0; i < attributes.length; i++) { - int attribute = attributes[i]; - String name = names[i]; - if (egl.eglGetConfigAttrib(display, config, attribute, value)) { - Log.w(TAG, String.format(" %s: %d\n", name, value[0])); } else { - // Log.w(TAG, String.format(" %s: failed\n", name)); - while (egl.eglGetError() != EGL10.EGL_SUCCESS) - ; + setEGLConfigChooser(translucent ? + new PancakeConfigChooser(8, 8, 8, 8, 16, stencil) : + new PancakeConfigChooser(5, 6, 5, 0, 16, stencil)); } - } + break; } - // Subclasses can adjust these values: - protected int mRedSize; - protected int mGreenSize; - protected int mBlueSize; - protected int mAlphaSize; - protected int mDepthSize; - protected int mStencilSize; - private int[] mValue = new int[1]; + /* Set the renderer responsible for frame rendering */ + setRenderer(new GodotRenderer()); } - private static class Renderer implements GLSurfaceView.Renderer { - - public void onDrawFrame(GL10 gl) { - GodotLib.step(); - for (int i = 0; i < Godot.singleton_count; i++) { - Godot.singletons[i].onGLDrawFrame(gl); - } - } - - public void onSurfaceChanged(GL10 gl, int width, int height) { - - GodotLib.resize(width, height); - for (int i = 0; i < Godot.singleton_count; i++) { - Godot.singletons[i].onGLSurfaceChanged(gl, width, height); - } - } - - public void onSurfaceCreated(GL10 gl, EGLConfig config) { - GodotLib.newcontext(use_32); - } + public void onBackPressed() { + activity.onBackPressed(); } } diff --git a/platform/android/java/src/org/godotengine/godot/input/GodotInputHandler.java b/platform/android/java/src/org/godotengine/godot/input/GodotInputHandler.java new file mode 100644 index 0000000000..d01f958123 --- /dev/null +++ b/platform/android/java/src/org/godotengine/godot/input/GodotInputHandler.java @@ -0,0 +1,352 @@ +/*************************************************************************/ +/* GodotInputHandler.java */ +/*************************************************************************/ +/* 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. */ +/*************************************************************************/ + +package org.godotengine.godot.input; + +import static org.godotengine.godot.utils.GLUtils.DEBUG; + +import android.util.Log; +import android.view.InputDevice; +import android.view.InputDevice.MotionRange; +import android.view.KeyEvent; +import android.view.MotionEvent; +import java.util.ArrayList; +import java.util.Collections; +import java.util.Comparator; +import java.util.List; +import org.godotengine.godot.GodotLib; +import org.godotengine.godot.GodotView; +import org.godotengine.godot.input.InputManagerCompat.InputDeviceListener; + +/** + * Handles input related events for the {@link GodotView} view. + */ +public class GodotInputHandler implements InputDeviceListener { + + private final ArrayList<Joystick> joysticksDevices = new ArrayList<Joystick>(); + + private final GodotView godotView; + private final InputManagerCompat inputManager; + + public GodotInputHandler(GodotView godotView) { + this.godotView = godotView; + this.inputManager = InputManagerCompat.Factory.getInputManager(godotView.getContext()); + this.inputManager.registerInputDeviceListener(this, null); + } + + private void queueEvent(Runnable task) { + godotView.queueEvent(task); + } + + public boolean onKeyUp(final int keyCode, KeyEvent event) { + if (keyCode == KeyEvent.KEYCODE_BACK) { + return true; + } + + if (keyCode == KeyEvent.KEYCODE_VOLUME_UP || keyCode == KeyEvent.KEYCODE_VOLUME_DOWN) { + return false; + }; + + int source = event.getSource(); + if ((source & InputDevice.SOURCE_JOYSTICK) == InputDevice.SOURCE_JOYSTICK || (source & InputDevice.SOURCE_DPAD) == InputDevice.SOURCE_DPAD || (source & InputDevice.SOURCE_GAMEPAD) == InputDevice.SOURCE_GAMEPAD) { + + final int button = getGodotButton(keyCode); + final int device_id = findJoystickDevice(event.getDeviceId()); + + // Check if the device exists + if (device_id > -1) { + queueEvent(new Runnable() { + @Override + public void run() { + GodotLib.joybutton(device_id, button, false); + } + }); + return true; + } + } else { + final int chr = event.getUnicodeChar(0); + queueEvent(new Runnable() { + @Override + public void run() { + GodotLib.key(keyCode, chr, false); + } + }); + }; + + return false; + } + + public boolean onKeyDown(final int keyCode, KeyEvent event) { + if (keyCode == KeyEvent.KEYCODE_BACK) { + godotView.onBackPressed(); + // press 'back' button should not terminate program + //normal handle 'back' event in game logic + return true; + } + + if (keyCode == KeyEvent.KEYCODE_VOLUME_UP || keyCode == KeyEvent.KEYCODE_VOLUME_DOWN) { + return false; + }; + + int source = event.getSource(); + //Log.e(TAG, String.format("Key down! source %d, device %d, joystick %d, %d, %d", event.getDeviceId(), source, (source & InputDevice.SOURCE_JOYSTICK), (source & InputDevice.SOURCE_DPAD), (source & InputDevice.SOURCE_GAMEPAD))); + + if ((source & InputDevice.SOURCE_JOYSTICK) == InputDevice.SOURCE_JOYSTICK || (source & InputDevice.SOURCE_DPAD) == InputDevice.SOURCE_DPAD || (source & InputDevice.SOURCE_GAMEPAD) == InputDevice.SOURCE_GAMEPAD) { + + if (event.getRepeatCount() > 0) // ignore key echo + return true; + + final int button = getGodotButton(keyCode); + final int device_id = findJoystickDevice(event.getDeviceId()); + + // Check if the device exists + if (device_id > -1) { + queueEvent(new Runnable() { + @Override + public void run() { + GodotLib.joybutton(device_id, button, true); + } + }); + return true; + } + } else { + final int chr = event.getUnicodeChar(0); + queueEvent(new Runnable() { + @Override + public void run() { + GodotLib.key(keyCode, chr, true); + } + }); + }; + + return false; + } + + public boolean onGenericMotionEvent(MotionEvent event) { + if ((event.getSource() & InputDevice.SOURCE_JOYSTICK) == InputDevice.SOURCE_JOYSTICK && event.getAction() == MotionEvent.ACTION_MOVE) { + + final int device_id = findJoystickDevice(event.getDeviceId()); + + // Check if the device exists + if (device_id > -1) { + Joystick joy = joysticksDevices.get(device_id); + + for (int i = 0; i < joy.axes.size(); i++) { + InputDevice.MotionRange range = joy.axes.get(i); + final float value = (event.getAxisValue(range.getAxis()) - range.getMin()) / range.getRange() * 2.0f - 1.0f; + final int idx = i; + queueEvent(new Runnable() { + @Override + public void run() { + GodotLib.joyaxis(device_id, idx, value); + } + }); + } + + for (int i = 0; i < joy.hats.size(); i += 2) { + final int hatX = Math.round(event.getAxisValue(joy.hats.get(i).getAxis())); + final int hatY = Math.round(event.getAxisValue(joy.hats.get(i + 1).getAxis())); + queueEvent(new Runnable() { + @Override + public void run() { + GodotLib.joyhat(device_id, hatX, hatY); + } + }); + } + return true; + } + }; + + return false; + } + + public void initInputDevices() { + /* initially add input devices*/ + int[] deviceIds = inputManager.getInputDeviceIds(); + for (int deviceId : deviceIds) { + InputDevice device = inputManager.getInputDevice(deviceId); + if (DEBUG) { + Log.v("GodotView", String.format("init() deviceId:%d, Name:%s\n", deviceId, device.getName())); + } + onInputDeviceAdded(deviceId); + } + } + + @Override + public void onInputDeviceAdded(int deviceId) { + int id = findJoystickDevice(deviceId); + + // Check if the device has not been already added + if (id < 0) { + InputDevice device = inputManager.getInputDevice(deviceId); + //device can be null if deviceId is not found + if (device != null) { + int sources = device.getSources(); + if (((sources & InputDevice.SOURCE_GAMEPAD) == InputDevice.SOURCE_GAMEPAD) || + ((sources & InputDevice.SOURCE_JOYSTICK) == InputDevice.SOURCE_JOYSTICK)) { + id = joysticksDevices.size(); + + Joystick joy = new Joystick(); + joy.device_id = deviceId; + joy.name = device.getName(); + joy.axes = new ArrayList<InputDevice.MotionRange>(); + joy.hats = new ArrayList<InputDevice.MotionRange>(); + + List<InputDevice.MotionRange> ranges = device.getMotionRanges(); + Collections.sort(ranges, new RangeComparator()); + + for (InputDevice.MotionRange range : ranges) { + if (range.getAxis() == MotionEvent.AXIS_HAT_X || range.getAxis() == MotionEvent.AXIS_HAT_Y) { + joy.hats.add(range); + } else { + joy.axes.add(range); + } + } + + joysticksDevices.add(joy); + + final int device_id = id; + final String name = joy.name; + queueEvent(new Runnable() { + @Override + public void run() { + GodotLib.joyconnectionchanged(device_id, true, name); + } + }); + } + } + } + } + + @Override + public void onInputDeviceRemoved(int deviceId) { + final int device_id = findJoystickDevice(deviceId); + + // Check if the evice has not been already removed + if (device_id > -1) { + joysticksDevices.remove(device_id); + + queueEvent(new Runnable() { + @Override + public void run() { + GodotLib.joyconnectionchanged(device_id, false, ""); + } + }); + } + } + + @Override + public void onInputDeviceChanged(int deviceId) { + onInputDeviceRemoved(deviceId); + onInputDeviceAdded(deviceId); + } + + private static class RangeComparator implements Comparator<MotionRange> { + @Override + public int compare(MotionRange arg0, MotionRange arg1) { + return arg0.getAxis() - arg1.getAxis(); + } + } + + public static int getGodotButton(int keyCode) { + int button; + switch (keyCode) { + case KeyEvent.KEYCODE_BUTTON_A: // Android A is SNES B + button = 0; + break; + case KeyEvent.KEYCODE_BUTTON_B: + button = 1; + break; + case KeyEvent.KEYCODE_BUTTON_X: // Android X is SNES Y + button = 2; + break; + case KeyEvent.KEYCODE_BUTTON_Y: + button = 3; + break; + case KeyEvent.KEYCODE_BUTTON_L1: + button = 9; + break; + case KeyEvent.KEYCODE_BUTTON_L2: + button = 15; + break; + case KeyEvent.KEYCODE_BUTTON_R1: + button = 10; + break; + case KeyEvent.KEYCODE_BUTTON_R2: + button = 16; + break; + case KeyEvent.KEYCODE_BUTTON_SELECT: + button = 4; + break; + case KeyEvent.KEYCODE_BUTTON_START: + button = 6; + break; + case KeyEvent.KEYCODE_BUTTON_THUMBL: + button = 7; + break; + case KeyEvent.KEYCODE_BUTTON_THUMBR: + button = 8; + break; + case KeyEvent.KEYCODE_DPAD_UP: + button = 11; + break; + case KeyEvent.KEYCODE_DPAD_DOWN: + button = 12; + break; + case KeyEvent.KEYCODE_DPAD_LEFT: + button = 13; + break; + case KeyEvent.KEYCODE_DPAD_RIGHT: + button = 14; + break; + case KeyEvent.KEYCODE_BUTTON_C: + button = 17; + break; + case KeyEvent.KEYCODE_BUTTON_Z: + button = 18; + break; + + default: + button = keyCode - KeyEvent.KEYCODE_BUTTON_1 + 20; + break; + } + return button; + } + + private int findJoystickDevice(int device_id) { + for (int i = 0; i < joysticksDevices.size(); i++) { + if (joysticksDevices.get(i).device_id == device_id) { + return i; + } + } + + return -1; + } +} diff --git a/modules/gdnative/net/webrtc_peer_gdnative.cpp b/platform/android/java/src/org/godotengine/godot/input/Joystick.java index 60b1ed4fe4..ff95bfb0c5 100644 --- a/modules/gdnative/net/webrtc_peer_gdnative.cpp +++ b/platform/android/java/src/org/godotengine/godot/input/Joystick.java @@ -1,5 +1,5 @@ /*************************************************************************/ -/* packet_peer_gdnative.cpp */ +/* Joystick.java */ /*************************************************************************/ /* This file is part of: */ /* GODOT ENGINE */ @@ -28,18 +28,17 @@ /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /*************************************************************************/ -#include "modules/gdnative/gdnative.h" -#include "modules/gdnative/include/net/godot_net.h" +package org.godotengine.godot.input; -#ifdef WEBRTC_GDNATIVE_ENABLED -#include "modules/webrtc/webrtc_peer_gdnative.h" -#endif +import android.view.InputDevice.MotionRange; +import java.util.ArrayList; -extern "C" { - -void GDAPI godot_net_bind_webrtc_peer(godot_object *p_obj, const godot_net_webrtc_peer *p_impl) { -#ifdef WEBRTC_GDNATIVE_ENABLED - ((WebRTCPeerGDNative *)p_obj)->set_native_webrtc_peer(p_impl); -#endif -} +/** + * POJO class to represent a Joystick input device. + */ +class Joystick { + int device_id; + String name; + ArrayList<MotionRange> axes; + ArrayList<MotionRange> hats; } diff --git a/platform/android/java/src/org/godotengine/godot/utils/GLUtils.java b/platform/android/java/src/org/godotengine/godot/utils/GLUtils.java new file mode 100644 index 0000000000..6c95494f8b --- /dev/null +++ b/platform/android/java/src/org/godotengine/godot/utils/GLUtils.java @@ -0,0 +1,157 @@ +/*************************************************************************/ +/* GLUtils.java */ +/*************************************************************************/ +/* 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. */ +/*************************************************************************/ + +package org.godotengine.godot.utils; + +import android.util.Log; +import javax.microedition.khronos.egl.EGL10; +import javax.microedition.khronos.egl.EGLConfig; +import javax.microedition.khronos.egl.EGLDisplay; + +/** + * Contains GL utilities methods. + */ +public class GLUtils { + + private static final String TAG = GLUtils.class.getSimpleName(); + + public static final boolean DEBUG = false; + + public static boolean use_gl3 = false; + public static boolean use_32 = false; + public static boolean use_debug_opengl = false; + + private static final String[] ATTRIBUTES_NAMES = new String[] { + "EGL_BUFFER_SIZE", + "EGL_ALPHA_SIZE", + "EGL_BLUE_SIZE", + "EGL_GREEN_SIZE", + "EGL_RED_SIZE", + "EGL_DEPTH_SIZE", + "EGL_STENCIL_SIZE", + "EGL_CONFIG_CAVEAT", + "EGL_CONFIG_ID", + "EGL_LEVEL", + "EGL_MAX_PBUFFER_HEIGHT", + "EGL_MAX_PBUFFER_PIXELS", + "EGL_MAX_PBUFFER_WIDTH", + "EGL_NATIVE_RENDERABLE", + "EGL_NATIVE_VISUAL_ID", + "EGL_NATIVE_VISUAL_TYPE", + "EGL_PRESERVED_RESOURCES", + "EGL_SAMPLES", + "EGL_SAMPLE_BUFFERS", + "EGL_SURFACE_TYPE", + "EGL_TRANSPARENT_TYPE", + "EGL_TRANSPARENT_RED_VALUE", + "EGL_TRANSPARENT_GREEN_VALUE", + "EGL_TRANSPARENT_BLUE_VALUE", + "EGL_BIND_TO_TEXTURE_RGB", + "EGL_BIND_TO_TEXTURE_RGBA", + "EGL_MIN_SWAP_INTERVAL", + "EGL_MAX_SWAP_INTERVAL", + "EGL_LUMINANCE_SIZE", + "EGL_ALPHA_MASK_SIZE", + "EGL_COLOR_BUFFER_TYPE", + "EGL_RENDERABLE_TYPE", + "EGL_CONFORMANT" + }; + + private static final int[] ATTRIBUTES = new int[] { + EGL10.EGL_BUFFER_SIZE, + EGL10.EGL_ALPHA_SIZE, + EGL10.EGL_BLUE_SIZE, + EGL10.EGL_GREEN_SIZE, + EGL10.EGL_RED_SIZE, + EGL10.EGL_DEPTH_SIZE, + EGL10.EGL_STENCIL_SIZE, + EGL10.EGL_CONFIG_CAVEAT, + EGL10.EGL_CONFIG_ID, + EGL10.EGL_LEVEL, + EGL10.EGL_MAX_PBUFFER_HEIGHT, + EGL10.EGL_MAX_PBUFFER_PIXELS, + EGL10.EGL_MAX_PBUFFER_WIDTH, + EGL10.EGL_NATIVE_RENDERABLE, + EGL10.EGL_NATIVE_VISUAL_ID, + EGL10.EGL_NATIVE_VISUAL_TYPE, + 0x3030, // EGL10.EGL_PRESERVED_RESOURCES, + EGL10.EGL_SAMPLES, + EGL10.EGL_SAMPLE_BUFFERS, + EGL10.EGL_SURFACE_TYPE, + EGL10.EGL_TRANSPARENT_TYPE, + EGL10.EGL_TRANSPARENT_RED_VALUE, + EGL10.EGL_TRANSPARENT_GREEN_VALUE, + EGL10.EGL_TRANSPARENT_BLUE_VALUE, + 0x3039, // EGL10.EGL_BIND_TO_TEXTURE_RGB, + 0x303A, // EGL10.EGL_BIND_TO_TEXTURE_RGBA, + 0x303B, // EGL10.EGL_MIN_SWAP_INTERVAL, + 0x303C, // EGL10.EGL_MAX_SWAP_INTERVAL, + EGL10.EGL_LUMINANCE_SIZE, + EGL10.EGL_ALPHA_MASK_SIZE, + EGL10.EGL_COLOR_BUFFER_TYPE, + EGL10.EGL_RENDERABLE_TYPE, + 0x3042 // EGL10.EGL_CONFORMANT + }; + + private GLUtils() {} + + public static void checkEglError(String tag, String prompt, EGL10 egl) { + int error; + while ((error = egl.eglGetError()) != EGL10.EGL_SUCCESS) { + Log.e(tag, String.format("%s: EGL error: 0x%x", prompt, error)); + } + } + + public static void printConfigs(EGL10 egl, EGLDisplay display, + EGLConfig[] configs) { + int numConfigs = configs.length; + Log.v(TAG, String.format("%d configurations", numConfigs)); + for (int i = 0; i < numConfigs; i++) { + Log.v(TAG, String.format("Configuration %d:\n", i)); + printConfig(egl, display, configs[i]); + } + } + + private static void printConfig(EGL10 egl, EGLDisplay display, + EGLConfig config) { + int[] value = new int[1]; + for (int i = 0; i < ATTRIBUTES.length; i++) { + int attribute = ATTRIBUTES[i]; + String name = ATTRIBUTES_NAMES[i]; + if (egl.eglGetConfigAttrib(display, config, attribute, value)) { + Log.i(TAG, String.format(" %s: %d\n", name, value[0])); + } else { + // Log.w(TAG, String.format(" %s: failed\n", name)); + while (egl.eglGetError() != EGL10.EGL_SUCCESS) + ; + } + } + } +} diff --git a/platform/android/java/src/org/godotengine/godot/xr/XRMode.java b/platform/android/java/src/org/godotengine/godot/xr/XRMode.java new file mode 100644 index 0000000000..cbc8a1e902 --- /dev/null +++ b/platform/android/java/src/org/godotengine/godot/xr/XRMode.java @@ -0,0 +1,39 @@ +/*************************************************************************/ +/* XRMode.java */ +/*************************************************************************/ +/* 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. */ +/*************************************************************************/ + +package org.godotengine.godot.xr; + +/** + * Godot available XR modes. + */ +public enum XRMode { + PANCAKE, // Regular/flatscreen + OVR, // Oculus mobile VR SDK +} diff --git a/platform/android/java/src/org/godotengine/godot/xr/ovr/OvrConfigChooser.java b/platform/android/java/src/org/godotengine/godot/xr/ovr/OvrConfigChooser.java new file mode 100644 index 0000000000..ff836a31ca --- /dev/null +++ b/platform/android/java/src/org/godotengine/godot/xr/ovr/OvrConfigChooser.java @@ -0,0 +1,112 @@ +/*************************************************************************/ +/* OvrConfigChooser.java */ +/*************************************************************************/ +/* 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. */ +/*************************************************************************/ + +package org.godotengine.godot.xr.ovr; + +import android.opengl.EGLExt; +import android.opengl.GLSurfaceView; +import javax.microedition.khronos.egl.EGL10; +import javax.microedition.khronos.egl.EGLConfig; +import javax.microedition.khronos.egl.EGLDisplay; + +/** + * EGL config chooser for the Oculus Mobile VR SDK. + */ +public class OvrConfigChooser implements GLSurfaceView.EGLConfigChooser { + + private static final int[] CONFIG_ATTRIBS = { + EGL10.EGL_RED_SIZE, 8, + EGL10.EGL_GREEN_SIZE, 8, + EGL10.EGL_BLUE_SIZE, 8, + EGL10.EGL_ALPHA_SIZE, 8, // Need alpha for the multi-pass timewarp compositor + EGL10.EGL_DEPTH_SIZE, 0, + EGL10.EGL_STENCIL_SIZE, 0, + EGL10.EGL_SAMPLES, 0, + EGL10.EGL_NONE + }; + + @Override + public EGLConfig chooseConfig(EGL10 egl, EGLDisplay display) { + // Do NOT use eglChooseConfig, because the Android EGL code pushes in + // multisample flags in eglChooseConfig if the user has selected the "force 4x + // MSAA" option in settings, and that is completely wasted for our warp + // target. + int[] numConfig = new int[1]; + if (!egl.eglGetConfigs(display, null, 0, numConfig)) { + throw new IllegalArgumentException("eglGetConfigs failed."); + } + + int configsCount = numConfig[0]; + if (configsCount <= 0) { + throw new IllegalArgumentException("No configs match configSpec"); + } + + EGLConfig[] configs = new EGLConfig[configsCount]; + if (!egl.eglGetConfigs(display, configs, configsCount, numConfig)) { + throw new IllegalArgumentException("eglGetConfigs #2 failed."); + } + + int[] value = new int[1]; + for (EGLConfig config : configs) { + egl.eglGetConfigAttrib(display, config, EGL10.EGL_RENDERABLE_TYPE, value); + if ((value[0] & EGLExt.EGL_OPENGL_ES3_BIT_KHR) != EGLExt.EGL_OPENGL_ES3_BIT_KHR) { + continue; + } + + // The pbuffer config also needs to be compatible with normal window rendering + // so it can share textures with the window context. + egl.eglGetConfigAttrib(display, config, EGL10.EGL_SURFACE_TYPE, value); + if ((value[0] & (EGL10.EGL_WINDOW_BIT | EGL10.EGL_PBUFFER_BIT)) != (EGL10.EGL_WINDOW_BIT | EGL10.EGL_PBUFFER_BIT)) { + continue; + } + + // Check each attribute in CONFIG_ATTRIBS (which are the attributes we care about) + // and ensure the value in config matches. + int attribIndex = 0; + while (CONFIG_ATTRIBS[attribIndex] != EGL10.EGL_NONE) { + egl.eglGetConfigAttrib(display, config, CONFIG_ATTRIBS[attribIndex], value); + if (value[0] != CONFIG_ATTRIBS[attribIndex + 1]) { + // Attribute key's value does not match the configs value. + // Start checking next config. + break; + } + + // Step by two because CONFIG_ATTRIBS is in key/value pairs. + attribIndex += 2; + } + + if (CONFIG_ATTRIBS[attribIndex] == EGL10.EGL_NONE) { + // All relevant attributes match, set the config and stop checking the rest. + return config; + } + } + return null; + } +} diff --git a/platform/android/java/src/org/godotengine/godot/xr/ovr/OvrContextFactory.java b/platform/android/java/src/org/godotengine/godot/xr/ovr/OvrContextFactory.java new file mode 100644 index 0000000000..5f6da8c672 --- /dev/null +++ b/platform/android/java/src/org/godotengine/godot/xr/ovr/OvrContextFactory.java @@ -0,0 +1,58 @@ +/*************************************************************************/ +/* OvrContextFactory.java */ +/*************************************************************************/ +/* 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. */ +/*************************************************************************/ + +package org.godotengine.godot.xr.ovr; + +import android.opengl.EGL14; +import android.opengl.GLSurfaceView; +import javax.microedition.khronos.egl.EGL10; +import javax.microedition.khronos.egl.EGLConfig; +import javax.microedition.khronos.egl.EGLContext; +import javax.microedition.khronos.egl.EGLDisplay; + +/** + * EGL Context factory for the Oculus mobile VR SDK. + */ +public class OvrContextFactory implements GLSurfaceView.EGLContextFactory { + + private static final int[] CONTEXT_ATTRIBS = { + EGL14.EGL_CONTEXT_CLIENT_VERSION, 3, EGL10.EGL_NONE + }; + + @Override + public EGLContext createContext(EGL10 egl, EGLDisplay display, EGLConfig eglConfig) { + return egl.eglCreateContext(display, eglConfig, EGL10.EGL_NO_CONTEXT, CONTEXT_ATTRIBS); + } + + @Override + public void destroyContext(EGL10 egl, EGLDisplay display, EGLContext context) { + egl.eglDestroyContext(display, context); + } +} diff --git a/platform/android/java/src/org/godotengine/godot/xr/ovr/OvrWindowSurfaceFactory.java b/platform/android/java/src/org/godotengine/godot/xr/ovr/OvrWindowSurfaceFactory.java new file mode 100644 index 0000000000..f1e38c35d8 --- /dev/null +++ b/platform/android/java/src/org/godotengine/godot/xr/ovr/OvrWindowSurfaceFactory.java @@ -0,0 +1,60 @@ +/*************************************************************************/ +/* OvrWindowSurfaceFactory.java */ +/*************************************************************************/ +/* 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. */ +/*************************************************************************/ + +package org.godotengine.godot.xr.ovr; + +import android.opengl.GLSurfaceView; +import javax.microedition.khronos.egl.EGL10; +import javax.microedition.khronos.egl.EGLConfig; +import javax.microedition.khronos.egl.EGLDisplay; +import javax.microedition.khronos.egl.EGLSurface; + +/** + * EGL window surface factory for the Oculus mobile VR SDK. + */ +public class OvrWindowSurfaceFactory implements GLSurfaceView.EGLWindowSurfaceFactory { + + private final static int[] SURFACE_ATTRIBS = { + EGL10.EGL_WIDTH, 16, + EGL10.EGL_HEIGHT, 16, + EGL10.EGL_NONE + }; + + @Override + public EGLSurface createWindowSurface(EGL10 egl, EGLDisplay display, EGLConfig config, + Object nativeWindow) { + return egl.eglCreatePbufferSurface(display, config, SURFACE_ATTRIBS); + } + + @Override + public void destroySurface(EGL10 egl, EGLDisplay display, EGLSurface surface) { + egl.eglDestroySurface(display, surface); + } +} diff --git a/platform/android/java/src/org/godotengine/godot/xr/pancake/PancakeConfigChooser.java b/platform/android/java/src/org/godotengine/godot/xr/pancake/PancakeConfigChooser.java new file mode 100644 index 0000000000..ac19a09e76 --- /dev/null +++ b/platform/android/java/src/org/godotengine/godot/xr/pancake/PancakeConfigChooser.java @@ -0,0 +1,151 @@ +/*************************************************************************/ +/* PancakeConfigChooser.java */ +/*************************************************************************/ +/* 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. */ +/*************************************************************************/ + +package org.godotengine.godot.xr.pancake; + +import android.opengl.GLSurfaceView; +import javax.microedition.khronos.egl.EGL10; +import javax.microedition.khronos.egl.EGLConfig; +import javax.microedition.khronos.egl.EGLDisplay; +import org.godotengine.godot.utils.GLUtils; + +/** + * Used to select the egl config for pancake games. + */ +public class PancakeConfigChooser implements GLSurfaceView.EGLConfigChooser { + + private static final String TAG = PancakeConfigChooser.class.getSimpleName(); + + private int[] mValue = new int[1]; + + /* This EGL config specification is used to specify 2.0 rendering. + * We use a minimum size of 4 bits for red/green/blue, but will + * perform actual matching in chooseConfig() below. + */ + private static int EGL_OPENGL_ES2_BIT = 4; + private static int[] s_configAttribs2 = { + EGL10.EGL_RED_SIZE, 4, + EGL10.EGL_GREEN_SIZE, 4, + EGL10.EGL_BLUE_SIZE, 4, + // EGL10.EGL_DEPTH_SIZE, 16, + // EGL10.EGL_STENCIL_SIZE, EGL10.EGL_DONT_CARE, + EGL10.EGL_RENDERABLE_TYPE, EGL_OPENGL_ES2_BIT, + EGL10.EGL_NONE + }; + private static int[] s_configAttribs3 = { + EGL10.EGL_RED_SIZE, 4, + EGL10.EGL_GREEN_SIZE, 4, + EGL10.EGL_BLUE_SIZE, 4, + // EGL10.EGL_DEPTH_SIZE, 16, + // EGL10.EGL_STENCIL_SIZE, EGL10.EGL_DONT_CARE, + EGL10.EGL_RENDERABLE_TYPE, EGL_OPENGL_ES2_BIT, //apparently there is no EGL_OPENGL_ES3_BIT + EGL10.EGL_NONE + }; + + public PancakeConfigChooser(int r, int g, int b, int a, int depth, int stencil) { + mRedSize = r; + mGreenSize = g; + mBlueSize = b; + mAlphaSize = a; + mDepthSize = depth; + mStencilSize = stencil; + } + + public EGLConfig chooseConfig(EGL10 egl, EGLDisplay display) { + + /* Get the number of minimally matching EGL configurations + */ + int[] num_config = new int[1]; + egl.eglChooseConfig(display, GLUtils.use_gl3 ? s_configAttribs3 : s_configAttribs2, null, 0, num_config); + + int numConfigs = num_config[0]; + + if (numConfigs <= 0) { + throw new IllegalArgumentException("No configs match configSpec"); + } + + /* Allocate then read the array of minimally matching EGL configs + */ + EGLConfig[] configs = new EGLConfig[numConfigs]; + egl.eglChooseConfig(display, GLUtils.use_gl3 ? s_configAttribs3 : s_configAttribs2, configs, numConfigs, num_config); + + if (GLUtils.DEBUG) { + GLUtils.printConfigs(egl, display, configs); + } + /* Now return the "best" one + */ + return chooseConfig(egl, display, configs); + } + + public EGLConfig chooseConfig(EGL10 egl, EGLDisplay display, + EGLConfig[] configs) { + for (EGLConfig config : configs) { + int d = findConfigAttrib(egl, display, config, + EGL10.EGL_DEPTH_SIZE, 0); + int s = findConfigAttrib(egl, display, config, + EGL10.EGL_STENCIL_SIZE, 0); + + // We need at least mDepthSize and mStencilSize bits + if (d < mDepthSize || s < mStencilSize) + continue; + + // We want an *exact* match for red/green/blue/alpha + int r = findConfigAttrib(egl, display, config, + EGL10.EGL_RED_SIZE, 0); + int g = findConfigAttrib(egl, display, config, + EGL10.EGL_GREEN_SIZE, 0); + int b = findConfigAttrib(egl, display, config, + EGL10.EGL_BLUE_SIZE, 0); + int a = findConfigAttrib(egl, display, config, + EGL10.EGL_ALPHA_SIZE, 0); + + if (r == mRedSize && g == mGreenSize && b == mBlueSize && a == mAlphaSize) + return config; + } + return null; + } + + private int findConfigAttrib(EGL10 egl, EGLDisplay display, + EGLConfig config, int attribute, int defaultValue) { + + if (egl.eglGetConfigAttrib(display, config, attribute, mValue)) { + return mValue[0]; + } + return defaultValue; + } + + // Subclasses can adjust these values: + protected int mRedSize; + protected int mGreenSize; + protected int mBlueSize; + protected int mAlphaSize; + protected int mDepthSize; + protected int mStencilSize; +} diff --git a/platform/android/java/src/org/godotengine/godot/xr/pancake/PancakeContextFactory.java b/platform/android/java/src/org/godotengine/godot/xr/pancake/PancakeContextFactory.java new file mode 100644 index 0000000000..aca6ffdba6 --- /dev/null +++ b/platform/android/java/src/org/godotengine/godot/xr/pancake/PancakeContextFactory.java @@ -0,0 +1,81 @@ +/*************************************************************************/ +/* PancakeContextFactory.java */ +/*************************************************************************/ +/* 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. */ +/*************************************************************************/ + +package org.godotengine.godot.xr.pancake; + +import android.opengl.GLSurfaceView; +import android.util.Log; +import javax.microedition.khronos.egl.EGL10; +import javax.microedition.khronos.egl.EGLConfig; +import javax.microedition.khronos.egl.EGLContext; +import javax.microedition.khronos.egl.EGLDisplay; +import org.godotengine.godot.GodotLib; +import org.godotengine.godot.utils.GLUtils; + +/** + * Factory used to setup the opengl context for pancake games. + */ +public class PancakeContextFactory implements GLSurfaceView.EGLContextFactory { + private static final String TAG = PancakeContextFactory.class.getSimpleName(); + + private static final int _EGL_CONTEXT_FLAGS_KHR = 0x30FC; + private static final int _EGL_CONTEXT_OPENGL_DEBUG_BIT_KHR = 0x00000001; + + private static int EGL_CONTEXT_CLIENT_VERSION = 0x3098; + + public EGLContext createContext(EGL10 egl, EGLDisplay display, EGLConfig eglConfig) { + String driver_name = GodotLib.getGlobal("rendering/quality/driver/driver_name"); + if (GLUtils.use_gl3 && !driver_name.equals("GLES3")) { + GLUtils.use_gl3 = false; + } + if (GLUtils.use_gl3) + Log.w(TAG, "creating OpenGL ES 3.0 context :"); + else + Log.w(TAG, "creating OpenGL ES 2.0 context :"); + + GLUtils.checkEglError(TAG, "Before eglCreateContext", egl); + EGLContext context; + if (GLUtils.use_debug_opengl) { + int[] attrib_list2 = { EGL_CONTEXT_CLIENT_VERSION, 2, _EGL_CONTEXT_FLAGS_KHR, _EGL_CONTEXT_OPENGL_DEBUG_BIT_KHR, EGL10.EGL_NONE }; + int[] attrib_list3 = { EGL_CONTEXT_CLIENT_VERSION, 3, _EGL_CONTEXT_FLAGS_KHR, _EGL_CONTEXT_OPENGL_DEBUG_BIT_KHR, EGL10.EGL_NONE }; + context = egl.eglCreateContext(display, eglConfig, EGL10.EGL_NO_CONTEXT, GLUtils.use_gl3 ? attrib_list3 : attrib_list2); + } else { + int[] attrib_list2 = { EGL_CONTEXT_CLIENT_VERSION, 2, EGL10.EGL_NONE }; + int[] attrib_list3 = { EGL_CONTEXT_CLIENT_VERSION, 3, EGL10.EGL_NONE }; + context = egl.eglCreateContext(display, eglConfig, EGL10.EGL_NO_CONTEXT, GLUtils.use_gl3 ? attrib_list3 : attrib_list2); + } + GLUtils.checkEglError(TAG, "After eglCreateContext", egl); + return context; + } + + public void destroyContext(EGL10 egl, EGLDisplay display, EGLContext context) { + egl.eglDestroyContext(display, context); + } +} diff --git a/platform/android/java/src/org/godotengine/godot/xr/pancake/PancakeFallbackConfigChooser.java b/platform/android/java/src/org/godotengine/godot/xr/pancake/PancakeFallbackConfigChooser.java new file mode 100644 index 0000000000..e19f218916 --- /dev/null +++ b/platform/android/java/src/org/godotengine/godot/xr/pancake/PancakeFallbackConfigChooser.java @@ -0,0 +1,61 @@ +/*************************************************************************/ +/* PancakeFallbackConfigChooser.java */ +/*************************************************************************/ +/* 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. */ +/*************************************************************************/ + +package org.godotengine.godot.xr.pancake; + +import android.util.Log; +import javax.microedition.khronos.egl.EGL10; +import javax.microedition.khronos.egl.EGLConfig; +import javax.microedition.khronos.egl.EGLDisplay; +import org.godotengine.godot.utils.GLUtils; + +/* Fallback if 32bit View is not supported*/ +public class PancakeFallbackConfigChooser extends PancakeConfigChooser { + + private static final String TAG = PancakeFallbackConfigChooser.class.getSimpleName(); + + private PancakeConfigChooser fallback; + + public PancakeFallbackConfigChooser(int r, int g, int b, int a, int depth, int stencil, PancakeConfigChooser fallback) { + super(r, g, b, a, depth, stencil); + this.fallback = fallback; + } + + @Override + public EGLConfig chooseConfig(EGL10 egl, EGLDisplay display, EGLConfig[] configs) { + EGLConfig ec = super.chooseConfig(egl, display, configs); + if (ec == null) { + Log.w(TAG, "Trying ConfigChooser fallback"); + ec = fallback.chooseConfig(egl, display, configs); + GLUtils.use_32 = false; + } + return ec; + } +} diff --git a/platform/android/java_godot_wrapper.cpp b/platform/android/java_godot_wrapper.cpp index 101a1d76c6..339b14974c 100644 --- a/platform/android/java_godot_wrapper.cpp +++ b/platform/android/java_godot_wrapper.cpp @@ -59,6 +59,9 @@ 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"); + _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"); } GodotJavaWrapper::~GodotJavaWrapper() { @@ -183,3 +186,28 @@ bool GodotJavaWrapper::request_permission(const String &p_name) { return false; } } + +void GodotJavaWrapper::init_input_devices() { + if (_init_input_devices) { + JNIEnv *env = ThreadAndroid::get_env(); + env->CallVoidMethod(godot_instance, _init_input_devices); + } +} + +jobject GodotJavaWrapper::get_surface() { + if (_get_surface) { + JNIEnv *env = ThreadAndroid::get_env(); + return env->CallObjectMethod(godot_instance, _get_surface); + } else { + return NULL; + } +} + +bool GodotJavaWrapper::is_activity_resumed() { + if (_is_activity_resumed) { + JNIEnv *env = ThreadAndroid::get_env(); + return env->CallBooleanMethod(godot_instance, _is_activity_resumed); + } else { + return false; + } +} diff --git a/platform/android/java_godot_wrapper.h b/platform/android/java_godot_wrapper.h index 438aee019b..82c2a5d122 100644 --- a/platform/android/java_godot_wrapper.h +++ b/platform/android/java_godot_wrapper.h @@ -54,6 +54,9 @@ private: jmethodID _get_clipboard = 0; jmethodID _set_clipboard = 0; jmethodID _request_permission = 0; + jmethodID _init_input_devices = 0; + jmethodID _get_surface = 0; + jmethodID _is_activity_resumed = 0; public: GodotJavaWrapper(JNIEnv *p_env, jobject p_godot_instance); @@ -76,6 +79,9 @@ public: bool has_set_clipboard(); void set_clipboard(const String &p_text); bool request_permission(const String &p_name); + void init_input_devices(); + jobject get_surface(); + bool is_activity_resumed(); }; #endif /* !JAVA_GODOT_WRAPPER_H */ diff --git a/platform/android/os_android.cpp b/platform/android/os_android.cpp index 93d39859f2..ebc319e57d 100644 --- a/platform/android/os_android.cpp +++ b/platform/android/os_android.cpp @@ -176,6 +176,9 @@ Error OS_Android::initialize(const VideoMode &p_desired, int p_video_driver, int input = memnew(InputDefault); input->set_fallback_mapping("Default Android Gamepad"); + ///@TODO implement a subclass for Android and instantiate that instead + camera_server = memnew(CameraServer); + //power_manager = memnew(PowerAndroid); return OK; @@ -193,6 +196,9 @@ void OS_Android::delete_main_loop() { } void OS_Android::finalize() { + + memdelete(camera_server); + memdelete(input); } @@ -251,6 +257,10 @@ int OS_Android::get_mouse_button_state() const { } void OS_Android::set_window_title(const String &p_title) { + //This queries/updates the currently connected devices/joypads + //Set_window_title is called when initializing the main loop (main.cpp) + //therefore this place is found to be suitable (I found no better). + godot_java->init_input_devices(); } void OS_Android::set_video_mode(const VideoMode &p_video_mode, int p_screen) { @@ -277,7 +287,7 @@ Size2 OS_Android::get_window_size() const { return Vector2(default_videomode.width, default_videomode.height); } -String OS_Android::get_name() { +String OS_Android::get_name() const { return "Android"; } diff --git a/platform/android/os_android.h b/platform/android/os_android.h index d2198b0579..e74d4cfd43 100644 --- a/platform/android/os_android.h +++ b/platform/android/os_android.h @@ -39,6 +39,7 @@ #include "main/input_default.h" //#include "power_android.h" #include "servers/audio_server.h" +#include "servers/camera_server.h" #include "servers/visual/rasterizer.h" class GodotJavaWrapper; @@ -77,6 +78,8 @@ private: VisualServer *visual_server; + CameraServer *camera_server; + mutable String data_dir_cache; //AudioDriverAndroid audio_driver_android; @@ -139,7 +142,7 @@ public: virtual Size2 get_window_size() const; - virtual String get_name(); + virtual String get_name() const; virtual MainLoop *get_main_loop() const; virtual bool can_draw() const; diff --git a/platform/haiku/os_haiku.cpp b/platform/haiku/os_haiku.cpp index f3fed6669b..9c07535c85 100644 --- a/platform/haiku/os_haiku.cpp +++ b/platform/haiku/os_haiku.cpp @@ -69,7 +69,7 @@ void OS_Haiku::run() { main_loop->finish(); } -String OS_Haiku::get_name() { +String OS_Haiku::get_name() const { return "Haiku"; } @@ -133,6 +133,8 @@ Error OS_Haiku::initialize(const VideoMode &p_desired, int p_video_driver, int p window->Show(); visual_server->init(); + camera_server = memnew(CameraServer); + AudioDriverManager::initialize(p_audio_driver); return OK; @@ -148,6 +150,8 @@ void OS_Haiku::finalize() { visual_server->finish(); memdelete(visual_server); + memdelete(camera_server); + memdelete(input); #if defined(OPENGL_ENABLED) diff --git a/platform/haiku/os_haiku.h b/platform/haiku/os_haiku.h index 6ab006843a..70d78a1978 100644 --- a/platform/haiku/os_haiku.h +++ b/platform/haiku/os_haiku.h @@ -38,6 +38,7 @@ #include "haiku_direct_window.h" #include "main/input_default.h" #include "servers/audio_server.h" +#include "servers/camera_server.h" #include "servers/visual_server.h" class OS_Haiku : public OS_Unix { @@ -49,6 +50,7 @@ private: VisualServer *visual_server; VideoMode current_video_mode; int video_driver_index; + CameraServer *camera_server; #ifdef MEDIA_KIT_ENABLED AudioDriverMediaKit driver_media_kit; @@ -74,7 +76,7 @@ public: OS_Haiku(); void run(); - virtual String get_name(); + virtual String get_name() const; virtual MainLoop *get_main_loop() const; diff --git a/platform/iphone/SCsub b/platform/iphone/SCsub index fa1b124561..85ba56165b 100644 --- a/platform/iphone/SCsub +++ b/platform/iphone/SCsub @@ -14,6 +14,7 @@ iphone_lib = [ 'in_app_store.mm', 'icloud.mm', 'ios.mm', + 'camera_ios.mm', ] env_ios = env.Clone() diff --git a/platform/iphone/camera_ios.h b/platform/iphone/camera_ios.h new file mode 100644 index 0000000000..cf747283e1 --- /dev/null +++ b/platform/iphone/camera_ios.h @@ -0,0 +1,47 @@ +/*************************************************************************/ +/* camera_ios.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 CAMERAIOS_H +#define CAMERAIOS_H + +///@TODO this is a near duplicate of CameraOSX, we should find a way to combine those to minimise code duplication!!!! +// If you fix something here, make sure you fix it there as wel! + +#include "servers/camera_server.h" + +class CameraIOS : public CameraServer { +public: + CameraIOS(); + ~CameraIOS(); + + void update_feeds(); +}; + +#endif /* CAMERAIOS_H */
\ No newline at end of file diff --git a/platform/iphone/camera_ios.mm b/platform/iphone/camera_ios.mm new file mode 100644 index 0000000000..4c11701fdd --- /dev/null +++ b/platform/iphone/camera_ios.mm @@ -0,0 +1,429 @@ +/*************************************************************************/ +/* camera_ios.mm */ +/*************************************************************************/ +/* 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. */ +/*************************************************************************/ + +///@TODO this is a near duplicate of CameraOSX, we should find a way to combine those to minimise code duplication!!!! +// If you fix something here, make sure you fix it there as wel! + +#include "camera_ios.h" +#include "servers/camera/camera_feed.h" + +#import <AVFoundation/AVFoundation.h> +#import <UIKit/UIKit.h> + +////////////////////////////////////////////////////////////////////////// +// MyCaptureSession - This is a little helper class so we can capture our frames + +@interface MyCaptureSession : AVCaptureSession <AVCaptureVideoDataOutputSampleBufferDelegate> { + Ref<CameraFeed> feed; + size_t width[2]; + size_t height[2]; + PoolVector<uint8_t> img_data[2]; + + AVCaptureDeviceInput *input; + AVCaptureVideoDataOutput *output; +} + +@end + +@implementation MyCaptureSession + +- (id)initForFeed:(Ref<CameraFeed>)p_feed andDevice:(AVCaptureDevice *)p_device { + if (self = [super init]) { + NSError *error; + feed = p_feed; + width[0] = 0; + height[0] = 0; + width[1] = 0; + height[1] = 0; + + // prepare our device + [p_device lockForConfiguration:&error]; + + [p_device setFocusMode:AVCaptureFocusModeLocked]; + [p_device setExposureMode:AVCaptureExposureModeLocked]; + [p_device setWhiteBalanceMode:AVCaptureWhiteBalanceModeLocked]; + + [p_device unlockForConfiguration]; + + [self beginConfiguration]; + + // setup our capture + self.sessionPreset = AVCaptureSessionPreset1280x720; + + input = [AVCaptureDeviceInput deviceInputWithDevice:p_device error:&error]; + if (!input) { + print_line("Couldn't get input device for camera"); + } else { + [self addInput:input]; + } + + output = [AVCaptureVideoDataOutput new]; + if (!output) { + print_line("Couldn't get output device for camera"); + } else { + NSDictionary *settings = @{ (NSString *)kCVPixelBufferPixelFormatTypeKey : @(kCVPixelFormatType_420YpCbCr8BiPlanarFullRange) }; + output.videoSettings = settings; + + // discard if the data output queue is blocked (as we process the still image) + [output setAlwaysDiscardsLateVideoFrames:YES]; + + // now set ourselves as the delegate to receive new frames. Note that we're doing this on the main thread at the moment, we may need to change this.. + [output setSampleBufferDelegate:self queue:dispatch_get_main_queue()]; + + [self addOutput:output]; + } + + [self commitConfiguration]; + + // kick off our session.. + [self startRunning]; + }; + return self; +} + +- (void)cleanup { + // stop running + [self stopRunning]; + + // cleanup + [self beginConfiguration]; + + if (input) { + [self removeInput:input]; + // don't release this + input = nil; + } + + if (output) { + [self removeOutput:output]; + [output setSampleBufferDelegate:nil queue:NULL]; + [output release]; + output = nil; + } + + [self commitConfiguration]; +} + +- (void)dealloc { + // bye bye + [super dealloc]; +} + +- (void)captureOutput:(AVCaptureOutput *)captureOutput didOutputSampleBuffer:(CMSampleBufferRef)sampleBuffer fromConnection:(AVCaptureConnection *)connection { + // This gets called every time our camera has a new image for us to process. + // May need to investigate in a way to throttle this if we get more images then we're rendering frames.. + + // For now, version 1, we're just doing the bare minimum to make this work... + + CVImageBufferRef pixelBuffer = CMSampleBufferGetImageBuffer(sampleBuffer); + // int width = CVPixelBufferGetWidth(pixelBuffer); + // int height = CVPixelBufferGetHeight(pixelBuffer); + + // It says that we need to lock this on the documentation pages but it's not in the samples + // need to lock our base address so we can access our pixel buffers, better safe then sorry? + CVPixelBufferLockBaseAddress(pixelBuffer, kCVPixelBufferLock_ReadOnly); + + // get our buffers + unsigned char *dataY = (unsigned char *)CVPixelBufferGetBaseAddressOfPlane(pixelBuffer, 0); + unsigned char *dataCbCr = (unsigned char *)CVPixelBufferGetBaseAddressOfPlane(pixelBuffer, 1); + if (dataY == NULL) { + print_line("Couldn't access Y pixel buffer data"); + } else if (dataCbCr == NULL) { + print_line("Couldn't access CbCr pixel buffer data"); + } else { + UIDeviceOrientation orientation = [[UIApplication sharedApplication] statusBarOrientation]; + Ref<Image> img[2]; + + { + // do Y + int new_width = CVPixelBufferGetWidthOfPlane(pixelBuffer, 0); + int new_height = CVPixelBufferGetHeightOfPlane(pixelBuffer, 0); + int _bytes_per_row = CVPixelBufferGetBytesPerRowOfPlane(pixelBuffer, 0); + + if ((width[0] != new_width) || (height[0] != new_height)) { + // printf("Camera Y plane %i, %i - %i\n", new_width, new_height, bytes_per_row); + + width[0] = new_width; + height[0] = new_height; + img_data[0].resize(new_width * new_height); + } + + PoolVector<uint8_t>::Write w = img_data[0].write(); + memcpy(w.ptr(), dataY, new_width * new_height); + + img[0].instance(); + img[0]->create(new_width, new_height, 0, Image::FORMAT_R8, img_data[0]); + } + + { + // do CbCr + int new_width = CVPixelBufferGetWidthOfPlane(pixelBuffer, 1); + int new_height = CVPixelBufferGetHeightOfPlane(pixelBuffer, 1); + int bytes_per_row = CVPixelBufferGetBytesPerRowOfPlane(pixelBuffer, 1); + + if ((width[1] != new_width) || (height[1] != new_height)) { + // printf("Camera CbCr plane %i, %i - %i\n", new_width, new_height, bytes_per_row); + + width[1] = new_width; + height[1] = new_height; + img_data[1].resize(2 * new_width * new_height); + } + + PoolVector<uint8_t>::Write w = img_data[1].write(); + memcpy(w.ptr(), dataCbCr, 2 * new_width * new_height); + + ///TODO GLES2 doesn't support FORMAT_RG8, need to do some form of conversion + img[1].instance(); + img[1]->create(new_width, new_height, 0, Image::FORMAT_RG8, img_data[1]); + } + + // set our texture... + feed->set_YCbCr_imgs(img[0], img[1]); + + // update our matrix to match the orientation, note, before changing anything + // here, be aware that the project orientation settings must match your xcode + // settings or this will go wrong! + Transform2D display_transform; + switch (orientation) { + case UIInterfaceOrientationPortrait: { + display_transform = Transform2D(0.0, -1.0, -1.0, 0.0, 1.0, 1.0); + } break; + case UIInterfaceOrientationLandscapeRight: { + display_transform = Transform2D(1.0, 0.0, 0.0, -1.0, 0.0, 1.0); + } break; + case UIInterfaceOrientationLandscapeLeft: { + display_transform = Transform2D(-1.0, 0.0, 0.0, 1.0, 1.0, 0.0); + } break; + default: { + display_transform = Transform2D(0.0, 1.0, 1.0, 0.0, 0.0, 0.0); + } break; + } + + //TODO: this is correct for the camera on the back, I have a feeling this needs to be inversed for the camera on the front! + feed->set_transform(display_transform); + } + + // and unlock + CVPixelBufferUnlockBaseAddress(pixelBuffer, kCVPixelBufferLock_ReadOnly); +} + +@end + +////////////////////////////////////////////////////////////////////////// +// CameraFeedIOS - Subclass for camera feeds in iOS + +class CameraFeedIOS : public CameraFeed { +private: + bool is_arkit; // if true this feed is updated through ARKit (should only have one and not yet implemented) + AVCaptureDevice *device; + MyCaptureSession *capture_session; + +public: + bool get_is_arkit() const; + AVCaptureDevice *get_device() const; + + CameraFeedIOS(); + ~CameraFeedIOS(); + + void set_device(AVCaptureDevice *p_device); + + bool activate_feed(); + void deactivate_feed(); +}; + +bool CameraFeedIOS::get_is_arkit() const { + return is_arkit; +}; + +AVCaptureDevice *CameraFeedIOS::get_device() const { + return device; +}; + +CameraFeedIOS::CameraFeedIOS() { + capture_session = NULL; + device = NULL; + transform = Transform2D(1.0, 0.0, 0.0, 1.0, 0.0, 0.0); /* should re-orientate this based on device orientation */ +}; + +void CameraFeedIOS::set_device(AVCaptureDevice *p_device) { + device = p_device; + if (device == NULL) { + ///@TODO finish this! + is_arkit = true; + name = "ARKit"; + position = CameraFeed::FEED_BACK; + } else { + is_arkit = false; + [device retain]; + + // get some info + NSString *device_name = p_device.localizedName; + name = device_name.UTF8String; + position = CameraFeed::FEED_UNSPECIFIED; + if ([p_device position] == AVCaptureDevicePositionBack) { + position = CameraFeed::FEED_BACK; + } else if ([p_device position] == AVCaptureDevicePositionFront) { + position = CameraFeed::FEED_FRONT; + }; + }; +}; + +CameraFeedIOS::~CameraFeedIOS() { + if (capture_session != NULL) { + [capture_session release]; + capture_session = NULL; + }; + + if (device != NULL) { + [device release]; + device = NULL; + }; +}; + +bool CameraFeedIOS::activate_feed() { + if (is_arkit) { + ///@TODO to implement; + } else { + if (capture_session) { + // already recording! + } else { + // start camera capture + capture_session = [[MyCaptureSession alloc] initForFeed:this andDevice:device]; + }; + }; + + return true; +}; + +void CameraFeedIOS::deactivate_feed() { + // end camera capture if we have one + if (capture_session) { + [capture_session cleanup]; + [capture_session release]; + capture_session = NULL; + }; +}; + +////////////////////////////////////////////////////////////////////////// +// MyDeviceNotifications - This is a little helper class gets notifications +// when devices are connected/disconnected + +@interface MyDeviceNotifications : NSObject { + CameraIOS *camera_server; +} + +@end + +@implementation MyDeviceNotifications + +- (void)devices_changed:(NSNotification *)notification { + camera_server->update_feeds(); +} + +- (id)initForServer:(CameraIOS *)p_server { + if (self = [super init]) { + camera_server = p_server; + + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(devices_changed:) name:AVCaptureDeviceWasConnectedNotification object:nil]; + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(devices_changed:) name:AVCaptureDeviceWasDisconnectedNotification object:nil]; + }; + return self; +} + +- (void)dealloc { + // remove notifications + [[NSNotificationCenter defaultCenter] removeObserver:self name:AVCaptureDeviceWasConnectedNotification object:nil]; + [[NSNotificationCenter defaultCenter] removeObserver:self name:AVCaptureDeviceWasDisconnectedNotification object:nil]; + + [super dealloc]; +} + +@end + +MyDeviceNotifications *device_notifications = nil; + +////////////////////////////////////////////////////////////////////////// +// CameraIOS - Subclass for our camera server on iPhone + +void CameraIOS::update_feeds() { + // this way of doing things is deprecated but still works, + // rewrite to using AVCaptureDeviceDiscoverySession + + AVCaptureDeviceDiscoverySession *session = [AVCaptureDeviceDiscoverySession discoverySessionWithDeviceTypes:[NSArray arrayWithObjects:AVCaptureDeviceTypeBuiltInTelephotoCamera, AVCaptureDeviceTypeBuiltInDualCamera, AVCaptureDeviceTypeBuiltInTrueDepthCamera] mediaType:AVMediaTypeVideo position:AVCaptureDevicePositionUnspecified]; + + // remove devices that are gone.. + for (int i = feeds.size() - 1; i >= 0; i--) { + Ref<CameraFeedIOS> feed = (Ref<CameraFeedIOS>)feeds[i]; + + if (feed->get_is_arkit()) { + // ignore, this is our arkit entry + } else if (![session.devices containsObject:feed->get_device()]) { + // remove it from our array, this will also destroy it ;) + remove_feed(feed); + }; + }; + + // add new devices.. + for (AVCaptureDevice *device in session.devices) { + bool found = false; + for (int i = 0; i < feeds.size() && !found; i++) { + Ref<CameraFeedIOS> feed = (Ref<CameraFeedIOS>)feeds[i]; + if (feed->get_device() == device) { + found = true; + }; + }; + + if (!found) { + Ref<CameraFeedIOS> newfeed; + newfeed.instance(); + newfeed->set_device(device); + add_feed(newfeed); + }; + }; +}; + +CameraIOS::CameraIOS() { + [AVCaptureDevice requestAccessForMediaType:AVMediaTypeVideo + completionHandler:^(BOOL granted) { + if (granted) { + // Find available cameras we have at this time + update_feeds(); + + // should only have one of these.... + device_notifications = [[MyDeviceNotifications alloc] initForServer:this]; + } else { + print_line("No access to cameras!"); + } + }]; +}; + +CameraIOS::~CameraIOS() { + [device_notifications release]; +}; diff --git a/platform/iphone/detect.py b/platform/iphone/detect.py index 3ed0a4ade7..daf4f405fd 100644 --- a/platform/iphone/detect.py +++ b/platform/iphone/detect.py @@ -115,10 +115,12 @@ def configure(env): env.Append(CPPFLAGS=['-DNEED_LONG_INT']) env.Append(CPPFLAGS=['-DLIBYUV_DISABLE_NEON']) - if env['ios_exceptions']: - env.Append(CCFLAGS=['-fexceptions']) - else: - env.Append(CCFLAGS=['-fno-exceptions']) + # Disable exceptions on non-tools (template) builds + if not env['tools']: + if env['ios_exceptions']: + env.Append(CCFLAGS=['-fexceptions']) + else: + env.Append(CCFLAGS=['-fno-exceptions']) ## Link flags @@ -142,6 +144,7 @@ def configure(env): '-framework', 'CoreAudio', '-framework', 'CoreGraphics', '-framework', 'CoreMedia', + '-framework', 'CoreVideo', '-framework', 'CoreMotion', '-framework', 'Foundation', '-framework', 'GameController', diff --git a/platform/iphone/export/export.cpp b/platform/iphone/export/export.cpp index ba405ab7ae..7ca83320d0 100644 --- a/platform/iphone/export/export.cpp +++ b/platform/iphone/export/export.cpp @@ -914,7 +914,7 @@ Error EditorExportPlatformIOS::export_project(const Ref<EditorExportPreset> &p_p }; DirAccess *tmp_app_path = DirAccess::create_for_path(dest_dir); - ERR_FAIL_COND_V(!tmp_app_path, ERR_CANT_CREATE) + ERR_FAIL_COND_V(!tmp_app_path, ERR_CANT_CREATE); print_line("Unzipping..."); FileAccess *src_f = NULL; diff --git a/platform/iphone/icloud.mm b/platform/iphone/icloud.mm index e32618e8f6..c60db3d661 100644 --- a/platform/iphone/icloud.mm +++ b/platform/iphone/icloud.mm @@ -138,7 +138,7 @@ Variant nsobject_to_variant(NSObject *object) { //this is a type that icloud supports...but how did you submit it in the first place? //I guess this is a type that *might* show up, if you were, say, trying to make your game //compatible with existing cloud data written by another engine's version of your game - WARN_PRINT("NSDate unsupported, returning null Variant") + WARN_PRINT("NSDate unsupported, returning null Variant"); return Variant(); } else if ([object isKindOfClass:[NSNull class]] or object == nil) { return Variant(); diff --git a/platform/iphone/os_iphone.cpp b/platform/iphone/os_iphone.cpp index d8fb5992cc..f5fce66059 100644 --- a/platform/iphone/os_iphone.cpp +++ b/platform/iphone/os_iphone.cpp @@ -167,6 +167,8 @@ Error OSIPhone::initialize(const VideoMode &p_desired, int p_video_driver, int p input = memnew(InputDefault); + camera_server = memnew(CameraIOS); + #ifdef GAME_CENTER_ENABLED game_center = memnew(GameCenter); Engine::get_singleton()->add_singleton(Engine::Singleton("GameCenter", game_center)); @@ -361,6 +363,11 @@ void OSIPhone::finalize() { if (main_loop) // should not happen? memdelete(main_loop); + if (camera_server) { + memdelete(camera_server); + camera_server = NULL; + } + visual_server->finish(); memdelete(visual_server); // memdelete(rasterizer); @@ -495,7 +502,7 @@ String OSIPhone::get_user_data_dir() const { return data_dir; }; -String OSIPhone::get_name() { +String OSIPhone::get_name() const { return "iOS"; }; diff --git a/platform/iphone/os_iphone.h b/platform/iphone/os_iphone.h index 460dfacd9b..c16c29a858 100644 --- a/platform/iphone/os_iphone.h +++ b/platform/iphone/os_iphone.h @@ -37,6 +37,7 @@ #include "drivers/coreaudio/audio_driver_coreaudio.h" #include "drivers/unix/os_unix.h" +#include "camera_ios.h" #include "game_center.h" #include "icloud.h" #include "in_app_store.h" @@ -60,6 +61,8 @@ private: AudioDriverCoreAudio audio_driver; + CameraServer *camera_server; + #ifdef GAME_CENTER_ENABLED GameCenter *game_center; #endif @@ -174,7 +177,7 @@ public: void set_data_dir(String p_dir); - virtual String get_name(); + virtual String get_name() const; Error shell_open(String p_uri); diff --git a/platform/javascript/audio_driver_javascript.cpp b/platform/javascript/audio_driver_javascript.cpp index 11104007e2..163826f828 100644 --- a/platform/javascript/audio_driver_javascript.cpp +++ b/platform/javascript/audio_driver_javascript.cpp @@ -99,7 +99,7 @@ Error AudioDriverJavaScript::init() { return FAILED; } - if (!internal_buffer || memarr_len(internal_buffer) != buffer_length * channel_count) { + if (!internal_buffer || (int)memarr_len(internal_buffer) != buffer_length * channel_count) { if (internal_buffer) memdelete_arr(internal_buffer); internal_buffer = memnew_arr(float, buffer_length *channel_count); diff --git a/platform/javascript/detect.py b/platform/javascript/detect.py index 145ce8d83d..145ac42863 100644 --- a/platform/javascript/detect.py +++ b/platform/javascript/detect.py @@ -110,10 +110,12 @@ def configure(env): # once feasible also consider memory buffer size issues. env.Append(CPPDEFINES=['NO_THREADS']) - # These flags help keep the file size down. - env.Append(CCFLAGS=['-fno-exceptions', '-fno-rtti']) - # Don't use dynamic_cast, necessary with no-rtti. - env.Append(CPPDEFINES=['NO_SAFE_CAST']) + # Disable exceptions and rtti on non-tools (template) builds + if not env['tools']: + # These flags help keep the file size down. + env.Append(CCFLAGS=['-fno-exceptions', '-fno-rtti']) + # Don't use dynamic_cast, necessary with no-rtti. + env.Append(CPPDEFINES=['NO_SAFE_CAST']) if env['javascript_eval']: env.Append(CPPDEFINES=['JAVASCRIPT_EVAL_ENABLED']) diff --git a/platform/javascript/http_client.h.inc b/platform/javascript/http_client.h.inc index d707d623ab..c034069ab2 100644 --- a/platform/javascript/http_client.h.inc +++ b/platform/javascript/http_client.h.inc @@ -3,7 +3,7 @@ /*************************************************************************/ /* This file is part of: */ /* GODOT ENGINE */ -/* http://www.godotengine.org */ +/* https://godotengine.org */ /*************************************************************************/ /* Copyright (c) 2007-2019 Juan Linietsky, Ariel Manzur. */ /* Copyright (c) 2014-2019 Godot Engine contributors (cf. AUTHORS.md) */ diff --git a/platform/javascript/os_javascript.cpp b/platform/javascript/os_javascript.cpp index 2e3e10e222..d96ffc3a55 100644 --- a/platform/javascript/os_javascript.cpp +++ b/platform/javascript/os_javascript.cpp @@ -70,6 +70,20 @@ static bool is_canvas_focused() { /* clang-format on */ } +static Point2 correct_canvas_position(int x, int y) { + int canvas_width; + int canvas_height; + emscripten_get_canvas_element_size(NULL, &canvas_width, &canvas_height); + + double element_width; + double element_height; + emscripten_get_element_css_size(NULL, &element_width, &element_height); + + x = (int)(canvas_width / element_width * x); + y = (int)(canvas_height / element_height * y); + return Point2(x, y); +} + static bool cursor_inside_canvas = true; EM_BOOL OS_JavaScript::fullscreen_change_callback(int p_event_type, const EmscriptenFullscreenChangeEvent *p_event, void *p_user_data) { @@ -285,7 +299,7 @@ EM_BOOL OS_JavaScript::mouse_button_callback(int p_event_type, const EmscriptenM Ref<InputEventMouseButton> ev; ev.instance(); ev->set_pressed(p_event_type == EMSCRIPTEN_EVENT_MOUSEDOWN); - ev->set_position(Point2(p_event->canvasX, p_event->canvasY)); + ev->set_position(correct_canvas_position(p_event->canvasX, p_event->canvasY)); ev->set_global_position(ev->get_position()); dom2godot_mod(p_event, ev); switch (p_event->button) { @@ -349,7 +363,7 @@ EM_BOOL OS_JavaScript::mousemove_callback(int p_event_type, const EmscriptenMous OS_JavaScript *os = get_singleton(); int input_mask = os->input->get_mouse_button_mask(); - Point2 pos = Point2(p_event->canvasX, p_event->canvasY); + Point2 pos = correct_canvas_position(p_event->canvasX, p_event->canvasY); // For motion outside the canvas, only read mouse movement if dragging // started inside the canvas; imitating desktop app behaviour. if (!cursor_inside_canvas && !input_mask) @@ -666,7 +680,7 @@ EM_BOOL OS_JavaScript::touch_press_callback(int p_event_type, const EmscriptenTo if (!touch.isChanged) continue; ev->set_index(touch.identifier); - ev->set_position(Point2(touch.canvasX, touch.canvasY)); + ev->set_position(correct_canvas_position(touch.canvasX, touch.canvasY)); os->touches[i] = ev->get_position(); ev->set_pressed(p_event_type == EMSCRIPTEN_EVENT_TOUCHSTART); @@ -691,7 +705,7 @@ EM_BOOL OS_JavaScript::touchmove_callback(int p_event_type, const EmscriptenTouc if (!touch.isChanged) continue; ev->set_index(touch.identifier); - ev->set_position(Point2(touch.canvasX, touch.canvasY)); + ev->set_position(correct_canvas_position(touch.canvasX, touch.canvasY)); Point2 &prev = os->touches[i]; ev->set_relative(ev->get_position() - prev); prev = ev->get_position(); @@ -795,6 +809,47 @@ const char *OS_JavaScript::get_audio_driver_name(int p_driver) const { return "JavaScript"; } +// Clipboard +extern "C" EMSCRIPTEN_KEEPALIVE void update_clipboard(const char *p_text) { + // Only call set_clipboard from OS (sets local clipboard) + OS::get_singleton()->OS::set_clipboard(p_text); +} + +void OS_JavaScript::set_clipboard(const String &p_text) { + OS::set_clipboard(p_text); + /* clang-format off */ + int err = EM_ASM_INT({ + var text = UTF8ToString($0); + if (!navigator.clipboard || !navigator.clipboard.writeText) + return 1; + navigator.clipboard.writeText(text).catch(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); + }); + return 0; + }, p_text.utf8().get_data()); + /* clang-format on */ + ERR_EXPLAIN("Clipboard API is not supported."); + ERR_FAIL_COND(err); +} + +String OS_JavaScript::get_clipboard() const { + /* clang-format off */ + EM_ASM({ + try { + navigator.clipboard.readText().then(function (result) { + ccall('update_clipboard', 'void', ['string'], [result]); + }).catch(function (e) { + // Fail graciously. + }); + } catch (e) { + // Fail graciously. + } + }); + /* clang-format on */ + return this->OS::get_clipboard(); +} + // Lifecycle int OS_JavaScript::get_current_video_driver() const { return video_driver_index; @@ -901,6 +956,8 @@ Error OS_JavaScript::initialize(const VideoMode &p_desired, int p_video_driver, VisualServer *visual_server = memnew(VisualServerRaster()); input = memnew(InputDefault); + camera_server = memnew(CameraServer); + EMSCRIPTEN_RESULT result; #define EM_CHECK(ev) \ if (result != EMSCRIPTEN_RESULT_SUCCESS) \ @@ -939,6 +996,11 @@ Error OS_JavaScript::initialize(const VideoMode &p_desired, int p_video_driver, (['mouseover', 'mouseleave', 'focus', 'blur']).forEach(function(event, index) { Module.canvas.addEventListener(event, send_notification.bind(null, notifications[index])); }); + // Clipboard + const update_clipboard = cwrap('update_clipboard', null, ['string']); + window.addEventListener('paste', function(evt) { + update_clipboard(evt.clipboardData.getData('text')); + }, true); }, MainLoop::NOTIFICATION_WM_MOUSE_ENTER, MainLoop::NOTIFICATION_WM_MOUSE_EXIT, @@ -1030,6 +1092,7 @@ void OS_JavaScript::delete_main_loop() { void OS_JavaScript::finalize() { + memdelete(camera_server); memdelete(input); } @@ -1098,7 +1161,7 @@ void OS_JavaScript::set_icon(const Ref<Image> &p_icon) { Ref<Image> icon = p_icon; if (icon->is_compressed()) { icon = icon->duplicate(); - ERR_FAIL_COND(icon->decompress() != OK) + ERR_FAIL_COND(icon->decompress() != OK); } if (icon->get_format() != Image::FORMAT_RGBA8) { if (icon == p_icon) @@ -1159,7 +1222,7 @@ Error OS_JavaScript::shell_open(String p_uri) { return OK; } -String OS_JavaScript::get_name() { +String OS_JavaScript::get_name() const { return "HTML5"; } diff --git a/platform/javascript/os_javascript.h b/platform/javascript/os_javascript.h index f7ce28e660..9635465c0d 100644 --- a/platform/javascript/os_javascript.h +++ b/platform/javascript/os_javascript.h @@ -35,6 +35,7 @@ #include "drivers/unix/os_unix.h" #include "main/input_default.h" #include "servers/audio_server.h" +#include "servers/camera_server.h" #include "servers/visual/rasterizer.h" #include <emscripten/html5.h> @@ -65,6 +66,8 @@ class OS_JavaScript : public OS_Unix { int64_t sync_wait_time; int64_t last_sync_check_time; + CameraServer *camera_server; + static EM_BOOL fullscreen_change_callback(int p_event_type, const EmscriptenFullscreenChangeEvent *p_event, void *p_user_data); static EM_BOOL keydown_callback(int p_event_type, const EmscriptenKeyboardEvent *p_event, void *p_user_data); @@ -133,6 +136,9 @@ public: virtual int get_audio_driver_count() const; virtual const char *get_audio_driver_name(int p_driver) const; + virtual void set_clipboard(const String &p_text); + virtual String get_clipboard() const; + virtual MainLoop *get_main_loop() const; void run_async(); bool main_loop_iterate(); @@ -146,7 +152,7 @@ public: virtual void set_icon(const Ref<Image> &p_icon); String get_executable_path() const; virtual Error shell_open(String p_uri); - virtual String get_name(); + virtual String get_name() const; virtual bool can_draw() const; virtual String get_resource_dir() const; diff --git a/platform/osx/SCsub b/platform/osx/SCsub index e15b4339a7..9620863b96 100644 --- a/platform/osx/SCsub +++ b/platform/osx/SCsub @@ -13,6 +13,7 @@ files = [ 'dir_access_osx.mm', 'joypad_osx.cpp', 'power_osx.cpp', + 'camera_osx.mm', ] prog = env.add_program('#bin/godot', files) diff --git a/platform/osx/camera_osx.h b/platform/osx/camera_osx.h new file mode 100644 index 0000000000..80ca3759ba --- /dev/null +++ b/platform/osx/camera_osx.h @@ -0,0 +1,47 @@ +/*************************************************************************/ +/* camera_osx.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 CAMERAOSX_H +#define CAMERAOSX_H + +///@TODO this is a near duplicate of CameraIOS, we should find a way to combine those to minimise code duplication!!!! +// If you fix something here, make sure you fix it there as wel! + +#include "servers/camera_server.h" + +class CameraOSX : public CameraServer { +public: + CameraOSX(); + ~CameraOSX(); + + void update_feeds(); +}; + +#endif /* CAMERAOSX_H */
\ No newline at end of file diff --git a/platform/osx/camera_osx.mm b/platform/osx/camera_osx.mm new file mode 100644 index 0000000000..f13cf76beb --- /dev/null +++ b/platform/osx/camera_osx.mm @@ -0,0 +1,362 @@ +/*************************************************************************/ +/* camera_osx.mm */ +/*************************************************************************/ +/* 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. */ +/*************************************************************************/ + +///@TODO this is a near duplicate of CameraIOS, we should find a way to combine those to minimise code duplication!!!! +// If you fix something here, make sure you fix it there as wel! + +#include "camera_osx.h" +#include "servers/camera/camera_feed.h" +#import <AVFoundation/AVFoundation.h> + +////////////////////////////////////////////////////////////////////////// +// MyCaptureSession - This is a little helper class so we can capture our frames + +@interface MyCaptureSession : AVCaptureSession <AVCaptureVideoDataOutputSampleBufferDelegate> { + Ref<CameraFeed> feed; + size_t width[2]; + size_t height[2]; + PoolVector<uint8_t> img_data[2]; + + AVCaptureDeviceInput *input; + AVCaptureVideoDataOutput *output; +} + +@end + +@implementation MyCaptureSession + +- (id)initForFeed:(Ref<CameraFeed>)p_feed andDevice:(AVCaptureDevice *)p_device { + if (self = [super init]) { + NSError *error; + feed = p_feed; + width[0] = 0; + height[0] = 0; + width[1] = 0; + height[1] = 0; + + [self beginConfiguration]; + + input = [AVCaptureDeviceInput deviceInputWithDevice:p_device error:&error]; + if (!input) { + print_line("Couldn't get input device for camera"); + } else { + [self addInput:input]; + } + + output = [AVCaptureVideoDataOutput new]; + if (!output) { + print_line("Couldn't get output device for camera"); + } else { + NSDictionary *settings = @{ (NSString *)kCVPixelBufferPixelFormatTypeKey : @(kCVPixelFormatType_420YpCbCr8BiPlanarFullRange) }; + output.videoSettings = settings; + + // discard if the data output queue is blocked (as we process the still image) + [output setAlwaysDiscardsLateVideoFrames:YES]; + + // now set ourselves as the delegate to receive new frames. + [output setSampleBufferDelegate:self queue:dispatch_get_main_queue()]; + + // this takes ownership + [self addOutput:output]; + } + + [self commitConfiguration]; + + // kick off our session.. + [self startRunning]; + }; + return self; +} + +- (void)cleanup { + // stop running + [self stopRunning]; + + // cleanup + [self beginConfiguration]; + + // remove input + if (input) { + [self removeInput:input]; + // don't release this + input = NULL; + } + + // free up our output + if (output) { + [self removeOutput:output]; + [output setSampleBufferDelegate:nil queue:NULL]; + [output release]; + output = NULL; + } + + [self commitConfiguration]; +} + +- (void)dealloc { + // bye bye + [super dealloc]; +} + +- (void)captureOutput:(AVCaptureOutput *)captureOutput didOutputSampleBuffer:(CMSampleBufferRef)sampleBuffer fromConnection:(AVCaptureConnection *)connection { + // This gets called every time our camera has a new image for us to process. + // May need to investigate in a way to throttle this if we get more images then we're rendering frames.. + + // For now, version 1, we're just doing the bare minimum to make this work... + CVImageBufferRef pixelBuffer = CMSampleBufferGetImageBuffer(sampleBuffer); + // int _width = CVPixelBufferGetWidth(pixelBuffer); + // int _height = CVPixelBufferGetHeight(pixelBuffer); + + // It says that we need to lock this on the documentation pages but it's not in the samples + // need to lock our base address so we can access our pixel buffers, better safe then sorry? + CVPixelBufferLockBaseAddress(pixelBuffer, kCVPixelBufferLock_ReadOnly); + + // get our buffers + unsigned char *dataY = (unsigned char *)CVPixelBufferGetBaseAddressOfPlane(pixelBuffer, 0); + unsigned char *dataCbCr = (unsigned char *)CVPixelBufferGetBaseAddressOfPlane(pixelBuffer, 1); + if (dataY == NULL) { + print_line("Couldn't access Y pixel buffer data"); + } else if (dataCbCr == NULL) { + print_line("Couldn't access CbCr pixel buffer data"); + } else { + Ref<Image> img[2]; + + { + // do Y + int new_width = CVPixelBufferGetWidthOfPlane(pixelBuffer, 0); + int new_height = CVPixelBufferGetHeightOfPlane(pixelBuffer, 0); + + if ((width[0] != new_width) || (height[0] != new_height)) { + width[0] = new_width; + height[0] = new_height; + img_data[0].resize(new_width * new_height); + } + + PoolVector<uint8_t>::Write w = img_data[0].write(); + memcpy(w.ptr(), dataY, new_width * new_height); + + img[0].instance(); + img[0]->create(new_width, new_height, 0, Image::FORMAT_R8, img_data[0]); + } + + { + // do CbCr + int new_width = CVPixelBufferGetWidthOfPlane(pixelBuffer, 1); + int new_height = CVPixelBufferGetHeightOfPlane(pixelBuffer, 1); + + if ((width[1] != new_width) || (height[1] != new_height)) { + width[1] = new_width; + height[1] = new_height; + img_data[1].resize(2 * new_width * new_height); + } + + PoolVector<uint8_t>::Write w = img_data[1].write(); + memcpy(w.ptr(), dataCbCr, 2 * new_width * new_height); + + ///TODO GLES2 doesn't support FORMAT_RG8, need to do some form of conversion + img[1].instance(); + img[1]->create(new_width, new_height, 0, Image::FORMAT_RG8, img_data[1]); + } + + // set our texture... + feed->set_YCbCr_imgs(img[0], img[1]); + } + + // and unlock + CVPixelBufferUnlockBaseAddress(pixelBuffer, kCVPixelBufferLock_ReadOnly); +} + +@end + +////////////////////////////////////////////////////////////////////////// +// CameraFeedOSX - Subclass for camera feeds in OSX + +class CameraFeedOSX : public CameraFeed { +private: + AVCaptureDevice *device; + MyCaptureSession *capture_session; + +public: + AVCaptureDevice *get_device() const; + + CameraFeedOSX(); + ~CameraFeedOSX(); + + void set_device(AVCaptureDevice *p_device); + + bool activate_feed(); + void deactivate_feed(); +}; + +AVCaptureDevice *CameraFeedOSX::get_device() const { + return device; +}; + +CameraFeedOSX::CameraFeedOSX() { + device = NULL; + capture_session = NULL; +}; + +void CameraFeedOSX::set_device(AVCaptureDevice *p_device) { + device = p_device; + [device retain]; + + // get some info + NSString *device_name = p_device.localizedName; + name = device_name.UTF8String; + position = CameraFeed::FEED_UNSPECIFIED; + if ([p_device position] == AVCaptureDevicePositionBack) { + position = CameraFeed::FEED_BACK; + } else if ([p_device position] == AVCaptureDevicePositionFront) { + position = CameraFeed::FEED_FRONT; + }; +}; + +CameraFeedOSX::~CameraFeedOSX() { + if (capture_session != NULL) { + [capture_session release]; + capture_session = NULL; + }; + + if (device != NULL) { + [device release]; + device = NULL; + }; +}; + +bool CameraFeedOSX::activate_feed() { + if (capture_session) { + // already recording! + } else { + // start camera capture + capture_session = [[MyCaptureSession alloc] initForFeed:this andDevice:device]; + }; + + return true; +}; + +void CameraFeedOSX::deactivate_feed() { + // end camera capture if we have one + if (capture_session) { + [capture_session cleanup]; + [capture_session release]; + capture_session = NULL; + }; +}; + +////////////////////////////////////////////////////////////////////////// +// MyDeviceNotifications - This is a little helper class gets notifications +// when devices are connected/disconnected + +@interface MyDeviceNotifications : NSObject { + CameraOSX *camera_server; +} + +@end + +@implementation MyDeviceNotifications + +- (void)devices_changed:(NSNotification *)notification { + camera_server->update_feeds(); +} + +- (id)initForServer:(CameraOSX *)p_server { + if (self = [super init]) { + camera_server = p_server; + + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(devices_changed:) name:AVCaptureDeviceWasConnectedNotification object:nil]; + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(devices_changed:) name:AVCaptureDeviceWasDisconnectedNotification object:nil]; + }; + return self; +} + +- (void)dealloc { + // remove notifications + [[NSNotificationCenter defaultCenter] removeObserver:self name:AVCaptureDeviceWasConnectedNotification object:nil]; + [[NSNotificationCenter defaultCenter] removeObserver:self name:AVCaptureDeviceWasDisconnectedNotification object:nil]; + + [super dealloc]; +} + +@end + +MyDeviceNotifications *device_notifications = nil; + +////////////////////////////////////////////////////////////////////////// +// CameraOSX - Subclass for our camera server on OSX + +void CameraOSX::update_feeds() { + NSArray *devices = [AVCaptureDevice devicesWithMediaType:AVMediaTypeVideo]; + + // remove devices that are gone.. + for (int i = feeds.size() - 1; i >= 0; i--) { + Ref<CameraFeedOSX> feed = (Ref<CameraFeedOSX>)feeds[i]; + + if (![devices containsObject:feed->get_device()]) { + // remove it from our array, this will also destroy it ;) + remove_feed(feed); + }; + }; + + // add new devices.. + for (AVCaptureDevice *device in devices) { + bool found = false; + for (int i = 0; i < feeds.size() && !found; i++) { + Ref<CameraFeedOSX> feed = (Ref<CameraFeedOSX>)feeds[i]; + if (feed->get_device() == device) { + found = true; + }; + }; + + if (!found) { + Ref<CameraFeedOSX> newfeed; + newfeed.instance(); + newfeed->set_device(device); + + // assume display camera so inverse + Transform2D transform = Transform2D(-1.0, 0.0, 0.0, -1.0, 1.0, 1.0); + newfeed->set_transform(transform); + + add_feed(newfeed); + }; + }; +}; + +CameraOSX::CameraOSX() { + // Find available cameras we have at this time + update_feeds(); + + // should only have one of these.... + device_notifications = [[MyDeviceNotifications alloc] initForServer:this]; +}; + +CameraOSX::~CameraOSX() { + [device_notifications release]; +}; diff --git a/platform/osx/crash_handler_osx.mm b/platform/osx/crash_handler_osx.mm index ed8a955ae5..e19fdf1b9f 100644 --- a/platform/osx/crash_handler_osx.mm +++ b/platform/osx/crash_handler_osx.mm @@ -77,7 +77,12 @@ static void handle_crash(int sig) { void *bt_buffer[256]; size_t size = backtrace(bt_buffer, 256); String _execpath = OS::get_singleton()->get_executable_path(); - String msg = GLOBAL_GET("debug/settings/crash_handler/message"); + + String msg; + const ProjectSettings *proj_settings = ProjectSettings::get_singleton(); + if (proj_settings) { + msg = proj_settings->get("debug/settings/crash_handler/message"); + } // Dump the backtrace to stderr with a message to the user fprintf(stderr, "%s: Program crashed with signal %d\n", __FUNCTION__, sig); diff --git a/platform/osx/detect.py b/platform/osx/detect.py index 4c88f91d13..2175797dec 100644 --- a/platform/osx/detect.py +++ b/platform/osx/detect.py @@ -128,7 +128,7 @@ def configure(env): env.Prepend(CPPPATH=['#platform/osx']) env.Append(CPPFLAGS=['-DOSX_ENABLED', '-DUNIX_ENABLED', '-DGLES_ENABLED', '-DAPPLE_STYLE_KEYS', '-DCOREAUDIO_ENABLED', '-DCOREMIDI_ENABLED']) - env.Append(LINKFLAGS=['-framework', 'Cocoa', '-framework', 'Carbon', '-framework', 'OpenGL', '-framework', 'AGL', '-framework', 'AudioUnit', '-framework', 'CoreAudio', '-framework', 'CoreMIDI', '-lz', '-framework', 'IOKit', '-framework', 'ForceFeedback', '-framework', 'CoreVideo']) + env.Append(LINKFLAGS=['-framework', 'Cocoa', '-framework', 'Carbon', '-framework', 'OpenGL', '-framework', 'AGL', '-framework', 'AudioUnit', '-framework', 'CoreAudio', '-framework', 'CoreMIDI', '-lz', '-framework', 'IOKit', '-framework', 'ForceFeedback', '-framework', 'AVFoundation', '-framework', 'CoreMedia', '-framework', 'CoreVideo']) env.Append(LIBS=['pthread']) env.Append(CCFLAGS=['-mmacosx-version-min=10.9']) diff --git a/platform/osx/os_osx.h b/platform/osx/os_osx.h index 125a88ab6d..1e996608af 100644 --- a/platform/osx/os_osx.h +++ b/platform/osx/os_osx.h @@ -31,6 +31,7 @@ #ifndef OS_OSX_H #define OS_OSX_H +#include "camera_osx.h" #include "core/os/input.h" #include "crash_handler_osx.h" #include "drivers/coreaudio/audio_driver_coreaudio.h" @@ -60,6 +61,7 @@ public: unsigned int osx_state; bool pressed; bool echo; + bool raw; uint32_t scancode; uint32_t unicode; }; @@ -72,6 +74,8 @@ public: //Rasterizer *rasterizer; VisualServer *visual_server; + CameraServer *camera_server; + List<String> args; MainLoop *main_loop; @@ -133,6 +137,9 @@ public: String im_text; Point2 im_selection; + Size2 min_size; + Size2 max_size; + PowerOSX *power_manager; CrashHandler crash_handler; @@ -165,7 +172,7 @@ public: void wm_minimized(bool p_minimized); - virtual String get_name(); + virtual String get_name() const; virtual void alert(const String &p_alert, const String &p_title = "ALERT!"); @@ -181,11 +188,13 @@ public: virtual void warp_mouse_position(const Point2 &p_to); virtual Point2 get_mouse_position() const; virtual int get_mouse_button_state() const; + void update_real_mouse_position(); virtual void set_window_title(const String &p_title); virtual Size2 get_window_size() const; virtual Size2 get_real_window_size() const; + virtual void set_native_icon(const String &p_filename); virtual void set_icon(const Ref<Image> &p_icon); virtual MainLoop *get_main_loop() const; @@ -230,6 +239,10 @@ public: virtual Point2 get_window_position() const; virtual void set_window_position(const Point2 &p_position); + virtual Size2 get_max_window_size() const; + virtual Size2 get_min_window_size() const; + virtual void set_min_window_size(const Size2 p_size); + virtual void set_max_window_size(const Size2 p_size); virtual void set_window_size(const Size2 p_size); virtual void set_window_fullscreen(bool p_enabled); virtual bool is_window_fullscreen() const; diff --git a/platform/osx/os_osx.mm b/platform/osx/os_osx.mm index fec524c04b..4f84ae9c50 100644 --- a/platform/osx/os_osx.mm +++ b/platform/osx/os_osx.mm @@ -267,10 +267,23 @@ static CVReturn DisplayLinkCallback(CVDisplayLinkRef displayLink, const CVTimeSt - (void)windowDidEnterFullScreen:(NSNotification *)notification { OS_OSX::singleton->zoomed = true; + + [OS_OSX::singleton->window_object setContentMinSize:NSMakeSize(0, 0)]; + [OS_OSX::singleton->window_object setContentMaxSize:NSMakeSize(FLT_MAX, FLT_MAX)]; } - (void)windowDidExitFullScreen:(NSNotification *)notification { OS_OSX::singleton->zoomed = false; + + if (OS_OSX::singleton->min_size != Size2()) { + Size2 size = OS_OSX::singleton->min_size / OS_OSX::singleton->_display_scale(); + [OS_OSX::singleton->window_object setContentMinSize:NSMakeSize(size.x, size.y)]; + } + if (OS_OSX::singleton->max_size != Size2()) { + Size2 size = OS_OSX::singleton->max_size / OS_OSX::singleton->_display_scale(); + [OS_OSX::singleton->window_object setContentMaxSize:NSMakeSize(size.x, size.y)]; + } + if (!OS_OSX::singleton->resizable) [OS_OSX::singleton->window_object setStyleMask:[OS_OSX::singleton->window_object styleMask] & ~NSWindowStyleMaskResizable]; } @@ -392,7 +405,7 @@ static CVReturn DisplayLinkCallback(CVDisplayLinkRef displayLink, const CVTimeSt @interface GodotContentView : NSView <NSTextInputClient> { NSTrackingArea *trackingArea; NSMutableAttributedString *markedText; - bool imeMode; + bool imeInputEventInProgress; } - (void)cancelComposition; - (BOOL)wantsUpdateLayer; @@ -418,7 +431,7 @@ static CVReturn DisplayLinkCallback(CVDisplayLinkRef displayLink, const CVTimeSt - (id)init { self = [super init]; trackingArea = nil; - imeMode = false; + imeInputEventInProgress = false; [self updateTrackingAreas]; [self registerForDraggedTypes:[NSArray arrayWithObject:NSFilenamesPboardType]]; markedText = [[NSMutableAttributedString alloc] init]; @@ -452,7 +465,7 @@ static const NSRange kEmptyRange = { NSNotFound, 0 }; [markedText initWithString:aString]; } if (OS_OSX::singleton->im_active) { - imeMode = true; + imeInputEventInProgress = true; OS_OSX::singleton->im_text.parse_utf8([[markedText mutableString] UTF8String]); OS_OSX::singleton->im_selection = Point2(selectedRange.location, selectedRange.length); @@ -467,7 +480,7 @@ static const NSRange kEmptyRange = { NSNotFound, 0 }; } - (void)unmarkText { - imeMode = false; + imeInputEventInProgress = false; [[markedText mutableString] setString:@""]; if (OS_OSX::singleton->im_active) { OS_OSX::singleton->im_text = String(); @@ -540,6 +553,7 @@ static const NSRange kEmptyRange = { NSNotFound, 0 }; ke.osx_state = [event modifierFlags]; ke.pressed = true; ke.echo = false; + ke.raw = false; // IME input event ke.scancode = 0; ke.unicode = codepoint; @@ -1001,7 +1015,7 @@ static const _KeyCodeMap _keycodes[55] = { { '/', KEY_SLASH } }; -static int remapKey(unsigned int key) { +static int remapKey(unsigned int key, unsigned int state) { if (isNumpadKey(key)) return translateKey(key); @@ -1023,7 +1037,7 @@ static int remapKey(unsigned int key) { OSStatus err = UCKeyTranslate(keyboardLayout, key, kUCKeyActionDisplay, - 0, + (state >> 8) & 0xFF, LMGetKbdType(), kUCKeyTranslateNoDeadKeysBit, &keysDown, @@ -1045,29 +1059,52 @@ static int remapKey(unsigned int key) { - (void)keyDown:(NSEvent *)event { - //disable raw input in IME mode - if (!imeMode) { - OS_OSX::KeyEvent ke; + // Ignore all input if IME input is in progress + if (!imeInputEventInProgress) { + NSString *characters = [event characters]; + NSUInteger length = [characters length]; - ke.osx_state = [event modifierFlags]; - ke.pressed = true; - ke.echo = [event isARepeat]; - ke.scancode = remapKey([event keyCode]); - ke.unicode = 0; + if (!OS_OSX::singleton->im_active && length > 0 && keycode_has_unicode(remapKey([event keyCode], [event modifierFlags]))) { + // Fallback unicode character handler used if IME is not active + for (NSUInteger i = 0; i < length; i++) { + OS_OSX::KeyEvent ke; - push_to_key_event_buffer(ke); + ke.osx_state = [event modifierFlags]; + ke.pressed = true; + ke.echo = [event isARepeat]; + ke.scancode = remapKey([event keyCode], [event modifierFlags]); + ke.raw = true; + ke.unicode = [characters characterAtIndex:i]; + + push_to_key_event_buffer(ke); + } + } else { + OS_OSX::KeyEvent ke; + + ke.osx_state = [event modifierFlags]; + ke.pressed = true; + ke.echo = [event isARepeat]; + ke.scancode = remapKey([event keyCode], [event modifierFlags]); + ke.raw = false; + ke.unicode = 0; + + push_to_key_event_buffer(ke); + } } - if (OS_OSX::singleton->im_active == true) + // Pass events to IME handler + if (OS_OSX::singleton->im_active) [self interpretKeyEvents:[NSArray arrayWithObject:event]]; } - (void)flagsChanged:(NSEvent *)event { - if (!imeMode) { + // Ignore all input if IME input is in progress + if (!imeInputEventInProgress) { OS_OSX::KeyEvent ke; ke.echo = false; + ke.raw = true; int key = [event keyCode]; int mod = [event modifierFlags]; @@ -1105,7 +1142,7 @@ static int remapKey(unsigned int key) { } ke.osx_state = mod; - ke.scancode = remapKey(key); + ke.scancode = remapKey(key, mod); ke.unicode = 0; push_to_key_event_buffer(ke); @@ -1114,17 +1151,37 @@ static int remapKey(unsigned int key) { - (void)keyUp:(NSEvent *)event { - if (!imeMode) { + // Ignore all input if IME input is in progress + if (!imeInputEventInProgress) { + NSString *characters = [event characters]; + NSUInteger length = [characters length]; - OS_OSX::KeyEvent ke; + // Fallback unicode character handler used if IME is not active + if (!OS_OSX::singleton->im_active && length > 0 && keycode_has_unicode(remapKey([event keyCode], [event modifierFlags]))) { + for (NSUInteger i = 0; i < length; i++) { + OS_OSX::KeyEvent ke; - ke.osx_state = [event modifierFlags]; - ke.pressed = false; - ke.echo = false; - ke.scancode = remapKey([event keyCode]); - ke.unicode = 0; + ke.osx_state = [event modifierFlags]; + ke.pressed = false; + ke.echo = [event isARepeat]; + ke.scancode = remapKey([event keyCode], [event modifierFlags]); + ke.raw = true; + ke.unicode = [characters characterAtIndex:i]; - push_to_key_event_buffer(ke); + push_to_key_event_buffer(ke); + } + } else { + OS_OSX::KeyEvent ke; + + ke.osx_state = [event modifierFlags]; + ke.pressed = false; + ke.echo = [event isARepeat]; + ke.scancode = remapKey([event keyCode], [event modifierFlags]); + ke.raw = true; + ke.unicode = 0; + + push_to_key_event_buffer(ke); + } } } @@ -1498,6 +1555,8 @@ Error OS_OSX::initialize(const VideoMode &p_desired, int p_video_driver, int p_a visual_server->init(); AudioDriverManager::initialize(p_audio_driver); + camera_server = memnew(CameraOSX); + input = memnew(InputDefault); joypad_osx = memnew(JoypadOSX); @@ -1507,9 +1566,12 @@ Error OS_OSX::initialize(const VideoMode &p_desired, int p_video_driver, int p_a restore_rect = Rect2(get_window_position(), get_window_size()); - if (p_desired.layered_splash) { + if (p_desired.layered) { set_window_per_pixel_transparency_enabled(true); } + + update_real_mouse_position(); + return OK; } @@ -1529,6 +1591,11 @@ void OS_OSX::finalize() { delete_main_loop(); + if (camera_server) { + memdelete(camera_server); + camera_server = NULL; + } + memdelete(joypad_osx); memdelete(input); @@ -1551,7 +1618,7 @@ void OS_OSX::delete_main_loop() { main_loop = NULL; } -String OS_OSX::get_name() { +String OS_OSX::get_name() const { return "OSX"; } @@ -1843,6 +1910,12 @@ void OS_OSX::warp_mouse_position(const Point2 &p_to) { } } +void OS_OSX::update_real_mouse_position() { + + get_mouse_pos([window_object mouseLocationOutsideOfEventStream], [window_view backingScaleFactor]); + input->set_mouse_position(Point2(mouse_x, mouse_y)); +} + Point2 OS_OSX::get_mouse_position() const { return Vector2(mouse_x, mouse_y); @@ -1858,6 +1931,31 @@ void OS_OSX::set_window_title(const String &p_title) { [window_object setTitle:[NSString stringWithUTF8String:p_title.utf8().get_data()]]; } +void OS_OSX::set_native_icon(const String &p_filename) { + + FileAccess *f = FileAccess::open(p_filename, FileAccess::READ); + ERR_FAIL_COND(!f); + + Vector<uint8_t> data; + uint32_t len = f->get_len(); + data.resize(len); + f->get_buffer((uint8_t *)&data.write[0], len); + memdelete(f); + + NSData *icon_data = [[[NSData alloc] initWithBytes:&data.write[0] length:len] autorelease]; + if (!icon_data) { + ERR_EXPLAIN("Error reading icon data"); + ERR_FAIL(); + } + NSImage *icon = [[[NSImage alloc] initWithData:icon_data] autorelease]; + if (!icon) { + ERR_EXPLAIN("Error loading icon"); + ERR_FAIL(); + } + + [NSApp setApplicationIconImage:icon]; +} + void OS_OSX::set_icon(const Ref<Image> &p_icon) { Ref<Image> img = p_icon; @@ -2268,6 +2366,8 @@ void OS_OSX::set_window_position(const Point2 &p_position) { // Godot passes a positive value position.y *= -1; set_native_window_position(get_screens_origin() + position); + + update_real_mouse_position(); }; Size2 OS_OSX::get_window_size() const { @@ -2281,6 +2381,46 @@ Size2 OS_OSX::get_real_window_size() const { return Size2(frame.size.width, frame.size.height) * _display_scale(); } +Size2 OS_OSX::get_max_window_size() const { + return max_size; +} + +Size2 OS_OSX::get_min_window_size() const { + return min_size; +} + +void OS_OSX::set_min_window_size(const Size2 p_size) { + + if ((p_size != Size2()) && (max_size != Size2()) && ((p_size.x > max_size.x) || (p_size.y > max_size.y))) { + WARN_PRINT("Minimum window size can't be larger than maximum window size!"); + return; + } + min_size = p_size; + + if ((min_size != Size2()) && !zoomed) { + Size2 size = min_size / _display_scale(); + [window_object setContentMinSize:NSMakeSize(size.x, size.y)]; + } else { + [window_object setContentMinSize:NSMakeSize(0, 0)]; + } +} + +void OS_OSX::set_max_window_size(const Size2 p_size) { + + if ((p_size != Size2()) && ((p_size.x < min_size.x) || (p_size.y < min_size.y))) { + WARN_PRINT("Maximum window size can't be smaller than minimum window size!"); + return; + } + max_size = p_size; + + if ((max_size != Size2()) && !zoomed) { + Size2 size = max_size / _display_scale(); + [window_object setContentMaxSize:NSMakeSize(size.x, size.y)]; + } else { + [window_object setContentMaxSize:NSMakeSize(FLT_MAX, FLT_MAX)]; + } +} + void OS_OSX::set_window_size(const Size2 p_size) { Size2 size = p_size / _display_scale(); @@ -2310,6 +2450,19 @@ void OS_OSX::set_window_fullscreen(bool p_enabled) { set_window_per_pixel_transparency_enabled(false); if (!resizable) [window_object setStyleMask:[window_object styleMask] | NSWindowStyleMaskResizable]; + if (p_enabled) { + [window_object setContentMinSize:NSMakeSize(0, 0)]; + [window_object setContentMaxSize:NSMakeSize(FLT_MAX, FLT_MAX)]; + } else { + if (min_size != Size2()) { + Size2 size = min_size / _display_scale(); + [window_object setContentMinSize:NSMakeSize(size.x, size.y)]; + } + if (max_size != Size2()) { + Size2 size = max_size / _display_scale(); + [window_object setContentMaxSize:NSMakeSize(size.x, size.y)]; + } + } [window_object toggleFullScreen:nil]; } zoomed = p_enabled; @@ -2587,30 +2740,44 @@ void OS_OSX::process_key_events() { const KeyEvent &ke = key_event_buffer[i]; - if ((i == 0 && ke.scancode == 0) || (i > 0 && key_event_buffer[i - 1].scancode == 0)) { + if (ke.raw) { + // Non IME input - no composite characters, pass events as is k.instance(); get_key_modifier_state(ke.osx_state, k); k->set_pressed(ke.pressed); k->set_echo(ke.echo); - k->set_scancode(0); + k->set_scancode(ke.scancode); k->set_unicode(ke.unicode); push_input(k); - } - if (ke.scancode != 0) { - k.instance(); + } else { + // IME input + if ((i == 0 && ke.scancode == 0) || (i > 0 && key_event_buffer[i - 1].scancode == 0)) { + k.instance(); - get_key_modifier_state(ke.osx_state, k); - k->set_pressed(ke.pressed); - k->set_echo(ke.echo); - k->set_scancode(ke.scancode); + get_key_modifier_state(ke.osx_state, k); + k->set_pressed(ke.pressed); + k->set_echo(ke.echo); + k->set_scancode(0); + k->set_unicode(ke.unicode); - if (i + 1 < key_event_pos && key_event_buffer[i + 1].scancode == 0) { - k->set_unicode(key_event_buffer[i + 1].unicode); + push_input(k); } + if (ke.scancode != 0) { + k.instance(); - push_input(k); + get_key_modifier_state(ke.osx_state, k); + k->set_pressed(ke.pressed); + k->set_echo(ke.echo); + k->set_scancode(ke.scancode); + + if (i + 1 < key_event_pos && key_event_buffer[i + 1].scancode == 0) { + k->set_unicode(key_event_buffer[i + 1].unicode); + } + + push_input(k); + } } } diff --git a/platform/server/detect.py b/platform/server/detect.py index 08c2eb6aaf..a5648d8d9d 100644 --- a/platform/server/detect.py +++ b/platform/server/detect.py @@ -145,12 +145,12 @@ def configure(env): env.ParseConfig('pkg-config libpng --cflags --libs') if not env['builtin_bullet']: - # We need at least version 2.88 + # We need at least version 2.89 import subprocess bullet_version = subprocess.check_output(['pkg-config', 'bullet', '--modversion']).strip() - if str(bullet_version) < "2.88": + if str(bullet_version) < "2.89": # Abort as system bullet was requested but too old - print("Bullet: System version {0} does not match minimal requirements ({1}). Aborting.".format(bullet_version, "2.88")) + print("Bullet: System version {0} does not match minimal requirements ({1}). Aborting.".format(bullet_version, "2.89")) sys.exit(255) env.ParseConfig('pkg-config bullet --cflags --libs') diff --git a/platform/server/os_server.cpp b/platform/server/os_server.cpp index 53f2a65c8e..12e53054bc 100644 --- a/platform/server/os_server.cpp +++ b/platform/server/os_server.cpp @@ -190,7 +190,7 @@ bool OS_Server::can_draw() const { return false; //can never draw }; -String OS_Server::get_name() { +String OS_Server::get_name() const { return "Server"; } diff --git a/platform/server/os_server.h b/platform/server/os_server.h index 7441064790..e3488a693d 100644 --- a/platform/server/os_server.h +++ b/platform/server/os_server.h @@ -93,7 +93,7 @@ protected: virtual void set_main_loop(MainLoop *p_main_loop); public: - virtual String get_name(); + virtual String get_name() const; virtual void set_mouse_show(bool p_show); virtual void set_mouse_grab(bool p_grab); diff --git a/platform/uwp/export/export.cpp b/platform/uwp/export/export.cpp index cdcad33f6d..ec43a4c26f 100644 --- a/platform/uwp/export/export.cpp +++ b/platform/uwp/export/export.cpp @@ -241,7 +241,6 @@ void AppxPackager::make_block_map() { tmp_file->close(); memdelete(tmp_file); - tmp_file = NULL; } String AppxPackager::content_type(String p_extension) { @@ -291,7 +290,6 @@ void AppxPackager::make_content_types() { tmp_file->close(); memdelete(tmp_file); - tmp_file = NULL; } Vector<uint8_t> AppxPackager::make_file_header(FileMeta p_file_meta) { @@ -606,7 +604,6 @@ void AppxPackager::finish() { blockmap_file->close(); memdelete(blockmap_file); - blockmap_file = NULL; // Add content types EditorNode::progress_task_step("export", "Setting content types...", 5); @@ -622,7 +619,6 @@ void AppxPackager::finish() { types_file->close(); memdelete(types_file); - types_file = NULL; // Pre-process central directory before signing for (int i = 0; i < file_metadata.size(); i++) { diff --git a/platform/uwp/os_uwp.cpp b/platform/uwp/os_uwp.cpp index 1678d351b3..9d9be44ce5 100644 --- a/platform/uwp/os_uwp.cpp +++ b/platform/uwp/os_uwp.cpp @@ -302,6 +302,10 @@ Error OS_UWP::initialize(const VideoMode &p_desired, int p_video_driver, int p_a } visual_server->init(); + + ///@TODO implement a subclass for UWP and instantiate that instead + camera_server = memnew(CameraServer); + input = memnew(InputDefault); joypad = ref new JoypadUWP(input); @@ -400,6 +404,8 @@ void OS_UWP::finalize() { memdelete(input); + memdelete(camera_server); + joypad = nullptr; } @@ -530,7 +536,7 @@ OS::VideoMode OS_UWP::get_video_mode(int p_screen) const { void OS_UWP::get_fullscreen_mode_list(List<VideoMode> *p_list, int p_screen) const { } -String OS_UWP::get_name() { +String OS_UWP::get_name() const { return "UWP"; } diff --git a/platform/uwp/os_uwp.h b/platform/uwp/os_uwp.h index 7b00224017..b7a7248f19 100644 --- a/platform/uwp/os_uwp.h +++ b/platform/uwp/os_uwp.h @@ -41,6 +41,7 @@ #include "main/input_default.h" #include "power_uwp.h" #include "servers/audio_server.h" +#include "servers/camera_server.h" #include "servers/visual/rasterizer.h" #include "servers/visual_server.h" @@ -95,6 +96,8 @@ private: VisualServer *visual_server; int pressrc; + CameraServer *camera_server; + ContextEGL_UWP *gl_context; Windows::UI::Core::CoreWindow ^ window; @@ -195,7 +198,7 @@ public: virtual MainLoop *get_main_loop() const; - virtual String get_name(); + virtual String get_name() const; virtual Date get_date(bool utc) const; virtual Time get_time(bool utc) const; diff --git a/platform/windows/SCsub b/platform/windows/SCsub index 892d734734..8426ccbb89 100644 --- a/platform/windows/SCsub +++ b/platform/windows/SCsub @@ -8,6 +8,7 @@ import platform_windows_builders common_win = [ "godot_windows.cpp", + "camera_win.cpp", "context_gl_windows.cpp", "crash_handler_windows.cpp", "os_windows.cpp", diff --git a/platform/windows/camera_win.cpp b/platform/windows/camera_win.cpp new file mode 100644 index 0000000000..b97796fe89 --- /dev/null +++ b/platform/windows/camera_win.cpp @@ -0,0 +1,94 @@ +/*************************************************************************/ +/* camera_win.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 "camera_win.h" + +///@TODO sorry guys, I got about 80% through implementing this using DirectShow only to find out Microsoft deprecated half the API and its replacement is as confusing as they could make it +// Joey suggested looking into libuvc which offers a more direct route to webcams over USB and this is very promissing but it wouldn't compile on windows for me... +// I've gutted the classes I implemented DirectShow in just to have a skeleton for someone to work on, mail me for more details or if you want a copy.... + +////////////////////////////////////////////////////////////////////////// +// CameraFeedWindows - Subclass for our camera feed on windows + +/// @TODO need to implement this + +class CameraFeedWindows : public CameraFeed { +private: +protected: +public: + CameraFeedWindows(); + virtual ~CameraFeedWindows(); + + bool activate_feed(); + void deactivate_feed(); +}; + +CameraFeedWindows::CameraFeedWindows(){ + ///@TODO implement this, should store information about our available camera +}; + +CameraFeedWindows::~CameraFeedWindows() { + // make sure we stop recording if we are! + if (is_active()) { + deactivate_feed(); + }; + + ///@TODO free up anything used by this +}; + +bool CameraFeedWindows::activate_feed() { + ///@TODO this should activate our camera and start the process of capturing frames + + return true; +}; + +///@TODO we should probably have a callback method here that is being called by the camera API which provides frames and call back into the CameraServer to update our texture + +void CameraFeedWindows::deactivate_feed(){ + ///@TODO this should deactivate our camera and stop the process of capturing frames +}; + +////////////////////////////////////////////////////////////////////////// +// CameraWindows - Subclass for our camera server on windows + +void CameraWindows::add_active_cameras(){ + ///@TODO scan through any active cameras and create CameraFeedWindows objects for them +}; + +CameraWindows::CameraWindows() { + // Find cameras active right now + add_active_cameras(); + + // need to add something that will react to devices being connected/removed... +}; + +CameraWindows::~CameraWindows(){ + +}; diff --git a/platform/windows/camera_win.h b/platform/windows/camera_win.h new file mode 100644 index 0000000000..22ce9aa43f --- /dev/null +++ b/platform/windows/camera_win.h @@ -0,0 +1,46 @@ +/*************************************************************************/ +/* camera_win.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 CAMERAWIN_H +#define CAMERAWIN_H + +#include "servers/camera/camera_feed.h" +#include "servers/camera_server.h" + +class CameraWindows : public CameraServer { +private: + void add_active_cameras(); + +public: + CameraWindows(); + ~CameraWindows(); +}; + +#endif /* CAMERAWIN_H */ diff --git a/platform/windows/crash_handler_windows.cpp b/platform/windows/crash_handler_windows.cpp index 4006c4c60e..0716ee67f4 100644 --- a/platform/windows/crash_handler_windows.cpp +++ b/platform/windows/crash_handler_windows.cpp @@ -166,11 +166,16 @@ DWORD CrashHandlerException(EXCEPTION_POINTERS *ep) { line.SizeOfStruct = sizeof(line); IMAGE_NT_HEADERS *h = ImageNtHeader(base); DWORD image_type = h->FileHeader.Machine; - int n = 0; - String msg = GLOBAL_GET("debug/settings/crash_handler/message"); + + String msg; + const ProjectSettings *proj_settings = ProjectSettings::get_singleton(); + if (proj_settings) { + msg = proj_settings->get("debug/settings/crash_handler/message"); + } fprintf(stderr, "Dumping the backtrace. %ls\n", msg.c_str()); + int n = 0; do { if (skip_first) { skip_first = false; diff --git a/platform/windows/export/export.cpp b/platform/windows/export/export.cpp index 141ab96370..4a72d07adc 100644 --- a/platform/windows/export/export.cpp +++ b/platform/windows/export/export.cpp @@ -138,8 +138,8 @@ void EditorExportPlatformWindows::get_export_options(List<ExportOption> *r_optio EditorExportPlatformPC::get_export_options(r_options); 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"), "")); - r_options->push_back(ExportOption(PropertyInfo(Variant::STRING, "application/product_version"), "")); + 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"), "")); r_options->push_back(ExportOption(PropertyInfo(Variant::STRING, "application/company_name", PROPERTY_HINT_PLACEHOLDER_TEXT, "Company Name"), "")); r_options->push_back(ExportOption(PropertyInfo(Variant::STRING, "application/product_name", PROPERTY_HINT_PLACEHOLDER_TEXT, "Game Name"), "")); r_options->push_back(ExportOption(PropertyInfo(Variant::STRING, "application/file_description"), "")); diff --git a/platform/windows/godot_res.rc b/platform/windows/godot_res.rc index f2dca10d55..1fa8957f15 100644 --- a/platform/windows/godot_res.rc +++ b/platform/windows/godot_res.rc @@ -21,7 +21,7 @@ BEGIN BLOCK "040904b0" BEGIN VALUE "CompanyName", "Godot Engine" - VALUE "FileDescription", VERSION_NAME " Editor" + VALUE "FileDescription", VERSION_NAME VALUE "FileVersion", VERSION_NUMBER VALUE "ProductName", VERSION_NAME VALUE "Licence", "MIT" diff --git a/platform/windows/joypad_windows.cpp b/platform/windows/joypad_windows.cpp index 5a399cdf90..53ce342e8c 100644 --- a/platform/windows/joypad_windows.cpp +++ b/platform/windows/joypad_windows.cpp @@ -103,17 +103,17 @@ bool JoypadWindows::is_xinput_device(const GUID *p_guid) { PRAWINPUTDEVICELIST dev_list = NULL; unsigned int dev_list_count = 0; - if (GetRawInputDeviceList(NULL, &dev_list_count, sizeof(RAWINPUTDEVICELIST)) == -1) { + if (GetRawInputDeviceList(NULL, &dev_list_count, sizeof(RAWINPUTDEVICELIST)) == (UINT)-1) { return false; } dev_list = (PRAWINPUTDEVICELIST)malloc(sizeof(RAWINPUTDEVICELIST) * dev_list_count); if (!dev_list) return false; - if (GetRawInputDeviceList(dev_list, &dev_list_count, sizeof(RAWINPUTDEVICELIST)) == -1) { + if (GetRawInputDeviceList(dev_list, &dev_list_count, sizeof(RAWINPUTDEVICELIST)) == (UINT)-1) { free(dev_list); return false; } - for (int i = 0; i < dev_list_count; i++) { + for (unsigned int i = 0; i < dev_list_count; i++) { RID_DEVICE_INFO rdi; char dev_name[128]; @@ -334,9 +334,9 @@ void JoypadWindows::process_joypads() { if (joy.state.dwPacketNumber != joy.last_packet) { int button_mask = XINPUT_GAMEPAD_DPAD_UP; - for (int i = 0; i <= 16; i++) { + for (int j = 0; j <= 16; j++) { - input->joy_button(joy.id, i, joy.state.Gamepad.wButtons & button_mask); + input->joy_button(joy.id, j, joy.state.Gamepad.wButtons & button_mask); button_mask = button_mask * 2; } @@ -406,7 +406,7 @@ void JoypadWindows::process_joypads() { // on mingw, these constants are not constants int count = 6; - int axes[] = { DIJOFS_X, DIJOFS_Y, DIJOFS_Z, DIJOFS_RX, DIJOFS_RY, DIJOFS_RZ }; + unsigned int axes[] = { DIJOFS_X, DIJOFS_Y, DIJOFS_Z, DIJOFS_RX, DIJOFS_RY, DIJOFS_RZ }; int values[] = { js.lX, js.lY, js.lZ, js.lRx, js.lRy, js.lRz }; for (int j = 0; j < joy->joy_axis.size(); j++) { @@ -426,7 +426,11 @@ void JoypadWindows::post_hat(int p_device, DWORD p_dpad) { int dpad_val = 0; - if (p_dpad == -1) { + // Should be -1 when centered, but according to docs: + // "Some drivers report the centered position of the POV indicator as 65,535. Determine whether the indicator is centered as follows: + // BOOL POVCentered = (LOWORD(dwPOV) == 0xFFFF);" + // https://docs.microsoft.com/en-us/previous-versions/windows/desktop/ee416628(v%3Dvs.85)#remarks + if (LOWORD(p_dpad) == 0xFFFF) { dpad_val = InputDefault::HAT_MASK_CENTER; } if (p_dpad == 0) { diff --git a/platform/windows/os_windows.cpp b/platform/windows/os_windows.cpp index c386fed367..6e6df08f02 100644 --- a/platform/windows/os_windows.cpp +++ b/platform/windows/os_windows.cpp @@ -94,6 +94,7 @@ static BOOL CALLBACK _MonitorEnumProcSize(HMONITOR hMonitor, HDC hdcMonitor, LPR return TRUE; } +#ifdef DEBUG_ENABLED static String format_error_message(DWORD id) { LPWSTR messageBuffer = NULL; @@ -106,6 +107,7 @@ static String format_error_message(DWORD id) { return msg; } +#endif // DEBUG_ENABLED extern HINSTANCE godot_hinstance; @@ -353,7 +355,23 @@ LRESULT OS_Windows::WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) return 0; // Return To The Message Loop } - + case WM_GETMINMAXINFO: { + if (video_mode.resizable && !video_mode.fullscreen) { + Size2 decor = get_real_window_size() - get_window_size(); // Size of window decorations + MINMAXINFO *min_max_info = (MINMAXINFO *)lParam; + if (min_size != Size2()) { + min_max_info->ptMinTrackSize.x = min_size.x + decor.x; + min_max_info->ptMinTrackSize.y = min_size.y + decor.y; + } + if (max_size != Size2()) { + min_max_info->ptMaxTrackSize.x = max_size.x + decor.x; + min_max_info->ptMaxTrackSize.y = max_size.y + decor.y; + } + return 0; + } else { + break; + } + } case WM_PAINT: Main::force_redraw(); @@ -555,6 +573,7 @@ LRESULT OS_Windows::WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) break; } } + FALLTHROUGH; case WM_MBUTTONDOWN: case WM_MBUTTONUP: case WM_RBUTTONDOWN: @@ -583,7 +602,6 @@ LRESULT OS_Windows::WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) case WM_MBUTTONDOWN: { mb->set_pressed(true); mb->set_button_index(3); - } break; case WM_MBUTTONUP: { mb->set_pressed(false); @@ -598,19 +616,16 @@ LRESULT OS_Windows::WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) mb->set_button_index(2); } break; case WM_LBUTTONDBLCLK: { - mb->set_pressed(true); mb->set_button_index(1); mb->set_doubleclick(true); } break; case WM_RBUTTONDBLCLK: { - mb->set_pressed(true); mb->set_button_index(2); mb->set_doubleclick(true); } break; case WM_MBUTTONDBLCLK: { - mb->set_pressed(true); mb->set_button_index(3); mb->set_doubleclick(true); @@ -1358,6 +1373,8 @@ Error OS_Windows::initialize(const VideoMode &p_desired, int p_video_driver, int power_manager = memnew(PowerWindows); + camera_server = memnew(CameraWindows); + AudioDriverManager::initialize(p_audio_driver); TRACKMOUSEEVENT tme; @@ -1381,7 +1398,7 @@ Error OS_Windows::initialize(const VideoMode &p_desired, int p_video_driver, int SetFocus(hWnd); // Sets Keyboard Focus To } - if (p_desired.layered_splash) { + if (p_desired.layered) { set_window_per_pixel_transparency_enabled(true); } @@ -1517,6 +1534,7 @@ void OS_Windows::finalize() { memdelete(joypad); memdelete(input); + memdelete(camera_server); touch_state.clear(); visual_server->finish(); @@ -1769,6 +1787,7 @@ void OS_Windows::set_window_position(const Point2 &p_position) { last_pos = p_position; update_real_mouse_position(); } + Size2 OS_Windows::get_window_size() const { if (minimized) { @@ -1781,6 +1800,33 @@ Size2 OS_Windows::get_window_size() const { } return Size2(); } + +Size2 OS_Windows::get_max_window_size() const { + return max_size; +} + +Size2 OS_Windows::get_min_window_size() const { + return min_size; +} + +void OS_Windows::set_min_window_size(const Size2 p_size) { + + if ((p_size != Size2()) && (max_size != Size2()) && ((p_size.x > max_size.x) || (p_size.y > max_size.y))) { + WARN_PRINT("Minimum window size can't be larger than maximum window size!"); + return; + } + min_size = p_size; +} + +void OS_Windows::set_max_window_size(const Size2 p_size) { + + if ((p_size != Size2()) && ((p_size.x < min_size.x) || (p_size.y < min_size.y))) { + WARN_PRINT("Maximum window size can't be smaller than minimum window size!"); + return; + } + max_size = p_size; +} + Size2 OS_Windows::get_real_window_size() const { RECT r; @@ -1789,6 +1835,7 @@ Size2 OS_Windows::get_real_window_size() const { } return Size2(); } + void OS_Windows::set_window_size(const Size2 p_size) { int w = p_size.width; @@ -1816,11 +1863,11 @@ void OS_Windows::set_window_size(const Size2 p_size) { // Don't let the mouse leave the window when resizing to a smaller resolution if (mouse_mode == MOUSE_MODE_CONFINED) { - RECT rect; - GetClientRect(hWnd, &rect); - ClientToScreen(hWnd, (POINT *)&rect.left); - ClientToScreen(hWnd, (POINT *)&rect.right); - ClipCursor(&rect); + RECT crect; + GetClientRect(hWnd, &crect); + ClientToScreen(hWnd, (POINT *)&crect.left); + ClientToScreen(hWnd, (POINT *)&crect.right); + ClipCursor(&crect); } } void OS_Windows::set_window_fullscreen(bool p_enabled) { @@ -2119,7 +2166,7 @@ void OS_Windows::request_attention() { FlashWindowEx(&info); } -String OS_Windows::get_name() { +String OS_Windows::get_name() const { return "Windows"; } @@ -2193,6 +2240,8 @@ uint64_t OS_Windows::get_unix_time() const { FILETIME fep; SystemTimeToFileTime(&ep, &fep); + // FIXME: dereferencing type-punned pointer will break strict-aliasing rules (GCC warning) + // https://docs.microsoft.com/en-us/windows/desktop/api/minwinbase/ns-minwinbase-filetime#remarks return (*(uint64_t *)&ft - *(uint64_t *)&fep) / 10000000; }; @@ -2378,7 +2427,7 @@ void OS_Windows::set_custom_mouse_cursor(const RES &p_cursor, CursorShape p_shap } // Finally, create the icon - ICONINFO iconinfo = { 0 }; + ICONINFO iconinfo; iconinfo.fIcon = FALSE; iconinfo.xHotspot = p_hotspot.x; iconinfo.yHotspot = p_hotspot.y; @@ -2475,7 +2524,13 @@ Error OS_Windows::execute(const String &p_path, const List<String> &p_arguments, for (const List<String>::Element *E = p_arguments.front(); E; E = E->next()) { - argss += String(" \"") + E->get() + "\""; + argss += " \"" + E->get() + "\""; + } + + argss += "\""; + + if (read_stderr) { + argss += " 2>&1"; // Read stderr too } FILE *f = _wpopen(argss.c_str(), L"r"); @@ -2525,9 +2580,9 @@ Error OS_Windows::execute(const String &p_path, const List<String> &p_arguments, if (p_blocking) { - DWORD ret = WaitForSingleObject(pi.pi.hProcess, INFINITE); + DWORD ret2 = WaitForSingleObject(pi.pi.hProcess, INFINITE); if (r_exitcode) - *r_exitcode = ret; + *r_exitcode = ret2; CloseHandle(pi.pi.hProcess); CloseHandle(pi.pi.hThread); @@ -2577,6 +2632,117 @@ String OS_Windows::get_executable_path() const { return s; } +void OS_Windows::set_native_icon(const String &p_filename) { + + FileAccess *f = FileAccess::open(p_filename, FileAccess::READ); + ERR_FAIL_COND(!f); + + ICONDIR *icon_dir = (ICONDIR *)memalloc(sizeof(ICONDIR)); + int pos = 0; + + icon_dir->idReserved = f->get_32(); + pos += sizeof(WORD); + f->seek(pos); + + icon_dir->idType = f->get_32(); + pos += sizeof(WORD); + f->seek(pos); + + if (icon_dir->idType != 1) { + ERR_EXPLAIN("Invalid icon file format!"); + ERR_FAIL(); + } + + icon_dir->idCount = f->get_32(); + pos += sizeof(WORD); + f->seek(pos); + + icon_dir = (ICONDIR *)memrealloc(icon_dir, 3 * sizeof(WORD) + icon_dir->idCount * sizeof(ICONDIRENTRY)); + f->get_buffer((uint8_t *)&icon_dir->idEntries[0], icon_dir->idCount * sizeof(ICONDIRENTRY)); + + int small_icon_index = -1; // Select 16x16 with largest color count + int small_icon_cc = 0; + int big_icon_index = -1; // Select largest + int big_icon_width = 16; + int big_icon_cc = 0; + + for (int i = 0; i < icon_dir->idCount; i++) { + int colors = (icon_dir->idEntries[i].bColorCount == 0) ? 32768 : icon_dir->idEntries[i].bColorCount; + int width = (icon_dir->idEntries[i].bWidth == 0) ? 256 : icon_dir->idEntries[i].bWidth; + if (width == 16) { + if (colors >= small_icon_cc) { + small_icon_index = i; + small_icon_cc = colors; + } + } + if (width >= big_icon_width) { + if (colors >= big_icon_cc) { + big_icon_index = i; + big_icon_width = width; + big_icon_cc = colors; + } + } + } + + if (big_icon_index == -1) { + ERR_EXPLAIN("No valid icons found!"); + ERR_FAIL(); + } + + if (small_icon_index == -1) { + WARN_PRINTS("No small icon found, reusing " + itos(big_icon_width) + "x" + itos(big_icon_width) + " @" + itos(big_icon_cc) + " icon!"); + small_icon_index = big_icon_index; + small_icon_cc = big_icon_cc; + } + + // Read the big icon + DWORD bytecount_big = icon_dir->idEntries[big_icon_index].dwBytesInRes; + Vector<uint8_t> data_big; + data_big.resize(bytecount_big); + pos = icon_dir->idEntries[big_icon_index].dwImageOffset; + f->seek(pos); + f->get_buffer((uint8_t *)&data_big.write[0], bytecount_big); + HICON icon_big = CreateIconFromResource((PBYTE)&data_big.write[0], bytecount_big, TRUE, 0x00030000); + if (!icon_big) { + ERR_EXPLAIN("Could not create " + itos(big_icon_width) + "x" + itos(big_icon_width) + " @" + itos(big_icon_cc) + " icon, error: " + format_error_message(GetLastError())); + ERR_FAIL(); + } + + // Read the small icon + DWORD bytecount_small = icon_dir->idEntries[small_icon_index].dwBytesInRes; + Vector<uint8_t> data_small; + data_small.resize(bytecount_small); + pos = icon_dir->idEntries[small_icon_index].dwImageOffset; + f->seek(pos); + f->get_buffer((uint8_t *)&data_small.write[0], bytecount_small); + HICON icon_small = CreateIconFromResource((PBYTE)&data_small.write[0], bytecount_small, TRUE, 0x00030000); + if (!icon_small) { + ERR_EXPLAIN("Could not create 16x16 @" + itos(small_icon_cc) + " icon, error: " + format_error_message(GetLastError())); + ERR_FAIL(); + } + + // Online tradition says to be sure last error is cleared and set the small icon first + int err = 0; + SetLastError(err); + + SendMessage(hWnd, WM_SETICON, ICON_SMALL, (LPARAM)icon_small); + err = GetLastError(); + if (err) { + ERR_EXPLAIN("Error setting ICON_SMALL: " + format_error_message(err)); + ERR_FAIL(); + } + + SendMessage(hWnd, WM_SETICON, ICON_BIG, (LPARAM)icon_big); + err = GetLastError(); + if (err) { + ERR_EXPLAIN("Error setting ICON_BIG: " + format_error_message(err)); + ERR_FAIL(); + } + + memdelete(f); + memdelete(icon_dir); +} + void OS_Windows::set_icon(const Ref<Image> &p_icon) { ERR_FAIL_COND(!p_icon.is_valid()); diff --git a/platform/windows/os_windows.h b/platform/windows/os_windows.h index 0e0b9bf3f6..4660c16b97 100644 --- a/platform/windows/os_windows.h +++ b/platform/windows/os_windows.h @@ -31,6 +31,7 @@ #ifndef OS_WINDOWS_H #define OS_WINDOWS_H +#include "camera_win.h" #include "context_gl_windows.h" #include "core/os/input.h" #include "core/os/os.h" @@ -58,6 +59,25 @@ /** @author Juan Linietsky <reduzio@gmail.com> */ + +typedef struct { + BYTE bWidth; // Width, in pixels, of the image + BYTE bHeight; // Height, in pixels, of the image + BYTE bColorCount; // Number of colors in image (0 if >=8bpp) + BYTE bReserved; // Reserved ( must be 0) + WORD wPlanes; // Color Planes + WORD wBitCount; // Bits per pixel + DWORD dwBytesInRes; // How many bytes in this resource? + DWORD dwImageOffset; // Where in the file is this image? +} ICONDIRENTRY, *LPICONDIRENTRY; + +typedef struct { + WORD idReserved; // Reserved (must be 0) + WORD idType; // Resource Type (1 for icons) + WORD idCount; // How many images? + ICONDIRENTRY idEntries[1]; // An entry for each image (idCount of 'em) +} ICONDIR, *LPICONDIR; + class JoypadWindows; class OS_Windows : public OS { @@ -89,6 +109,7 @@ class OS_Windows : public OS { ContextGL_Windows *gl_context; #endif VisualServer *visual_server; + CameraWindows *camera_server; int pressrc; HDC hDC; // Private GDI Device Context HINSTANCE hInstance; // Holds The Instance Of The Application @@ -105,6 +126,9 @@ class OS_Windows : public OS { HCURSOR hCursor; + Size2 min_size; + Size2 max_size; + Size2 window_rect; VideoMode video_mode; bool preserve_window_size = false; @@ -217,6 +241,10 @@ public: virtual void set_window_position(const Point2 &p_position); virtual Size2 get_window_size() const; virtual Size2 get_real_window_size() const; + virtual Size2 get_max_window_size() const; + virtual Size2 get_min_window_size() const; + virtual void set_min_window_size(const Size2 p_size); + virtual void set_max_window_size(const Size2 p_size); virtual void set_window_size(const Size2 p_size); virtual void set_window_fullscreen(bool p_enabled); virtual bool is_window_fullscreen() const; @@ -246,7 +274,7 @@ public: virtual MainLoop *get_main_loop() const; - virtual String get_name(); + virtual String get_name() const; virtual Date get_date(bool utc) const; virtual Time get_time(bool utc) const; @@ -276,6 +304,8 @@ public: CursorShape get_cursor_shape() const; virtual void set_custom_mouse_cursor(const RES &p_cursor, CursorShape p_shape, const Vector2 &p_hotspot); void GetMaskBitmaps(HBITMAP hSourceBitmap, COLORREF clrTransparent, OUT HBITMAP &hAndMaskBitmap, OUT HBITMAP &hXorMaskBitmap); + + void set_native_icon(const String &p_filename); void set_icon(const Ref<Image> &p_icon); virtual String get_executable_path() const; diff --git a/platform/windows/power_windows.cpp b/platform/windows/power_windows.cpp index b96ae51132..0efd88c216 100644 --- a/platform/windows/power_windows.cpp +++ b/platform/windows/power_windows.cpp @@ -89,7 +89,7 @@ bool PowerWindows::GetPowerInfo_Windows() { if (pct != 255) { /* 255 == unknown */ percent_left = (pct > 100) ? 100 : pct; /* clamp between 0%, 100% */ } - if (secs != 0xFFFFFFFF) { /* ((DWORD)-1) == unknown */ + if (secs != (int)0xFFFFFFFF) { /* ((DWORD)-1) == unknown */ nsecs_left = secs; } } diff --git a/platform/windows/windows_terminal_logger.cpp b/platform/windows/windows_terminal_logger.cpp index 7def419103..adbdafb07e 100644 --- a/platform/windows/windows_terminal_logger.cpp +++ b/platform/windows/windows_terminal_logger.cpp @@ -45,7 +45,7 @@ void WindowsTerminalLogger::logv(const char *p_format, va_list p_list, bool p_er int len = vsnprintf(buf, BUFFER_SIZE, p_format, p_list); if (len <= 0) return; - if (len >= BUFFER_SIZE) + if ((unsigned int)len >= BUFFER_SIZE) len = BUFFER_SIZE; // Output is too big, will be truncated buf[len] = 0; @@ -154,4 +154,4 @@ void WindowsTerminalLogger::log_error(const char *p_function, const char *p_file WindowsTerminalLogger::~WindowsTerminalLogger() {} -#endif
\ No newline at end of file +#endif diff --git a/platform/x11/context_gl_x11.cpp b/platform/x11/context_gl_x11.cpp index aadf7ee36d..9718b03164 100644 --- a/platform/x11/context_gl_x11.cpp +++ b/platform/x11/context_gl_x11.cpp @@ -191,6 +191,7 @@ Error ContextGL_X11::initialize() { swa.colormap = XCreateColormap(x11_display, RootWindow(x11_display, vi->screen), vi->visual, AllocNone); x11_window = XCreateWindow(x11_display, RootWindow(x11_display, vi->screen), 0, 0, OS::get_singleton()->get_video_mode().width, OS::get_singleton()->get_video_mode().height, 0, vi->depth, InputOutput, vi->visual, valuemask, &swa); + XStoreName(x11_display, x11_window, "Godot Engine"); ERR_FAIL_COND_V(!x11_window, ERR_UNCONFIGURED); set_class_hint(x11_display, x11_window); diff --git a/platform/x11/crash_handler_x11.cpp b/platform/x11/crash_handler_x11.cpp index 44d3cf1910..ca7251078f 100644 --- a/platform/x11/crash_handler_x11.cpp +++ b/platform/x11/crash_handler_x11.cpp @@ -53,7 +53,12 @@ static void handle_crash(int sig) { void *bt_buffer[256]; size_t size = backtrace(bt_buffer, 256); String _execpath = OS::get_singleton()->get_executable_path(); - String msg = GLOBAL_GET("debug/settings/crash_handler/message"); + + String msg; + const ProjectSettings *proj_settings = ProjectSettings::get_singleton(); + if (proj_settings) { + msg = proj_settings->get("debug/settings/crash_handler/message"); + } // Dump the backtrace to stderr with a message to the user fprintf(stderr, "%s: Program crashed with signal %d\n", __FUNCTION__, sig); diff --git a/platform/x11/detect.py b/platform/x11/detect.py index 933ee6b72e..a502308eee 100644 --- a/platform/x11/detect.py +++ b/platform/x11/detect.py @@ -219,12 +219,12 @@ def configure(env): env.ParseConfig('pkg-config libpng --cflags --libs') if not env['builtin_bullet']: - # We need at least version 2.88 + # We need at least version 2.89 import subprocess bullet_version = subprocess.check_output(['pkg-config', 'bullet', '--modversion']).strip() - if str(bullet_version) < "2.88": + if str(bullet_version) < "2.89": # Abort as system bullet was requested but too old - print("Bullet: System version {0} does not match minimal requirements ({1}). Aborting.".format(bullet_version, "2.88")) + print("Bullet: System version {0} does not match minimal requirements ({1}). Aborting.".format(bullet_version, "2.89")) sys.exit(255) env.ParseConfig('pkg-config bullet --cflags --libs') diff --git a/platform/x11/godot_x11.cpp b/platform/x11/godot_x11.cpp index 79407cd9dc..9baa4d6dca 100644 --- a/platform/x11/godot_x11.cpp +++ b/platform/x11/godot_x11.cpp @@ -55,8 +55,11 @@ int main(int argc, char *argv[]) { os.run(); // it is actually the OS that decides how to run Main::cleanup(); - if (ret) - chdir(cwd); + if (ret) { // Previous getcwd was successful + if (chdir(cwd) != 0) { + ERR_PRINT("Couldn't return to previous working directory."); + } + } free(cwd); return os.get_exit_code(); diff --git a/platform/x11/joypad_linux.cpp b/platform/x11/joypad_linux.cpp index c4dd8fe0e0..3e9e8033e8 100644 --- a/platform/x11/joypad_linux.cpp +++ b/platform/x11/joypad_linux.cpp @@ -444,10 +444,10 @@ InputDefault::JoyAxis JoypadLinux::axis_correct(const input_absinfo *p_abs, int jx.min = -1; if (p_value < 0) { jx.value = (float)-p_value / min; + } else { + jx.value = (float)p_value / max; } - jx.value = (float)p_value / max; - } - if (min == 0) { + } else if (min == 0) { jx.min = 0; jx.value = 0.0f + (float)p_value / max; } diff --git a/platform/x11/os_x11.cpp b/platform/x11/os_x11.cpp index c2e7b561d3..6421dc270f 100644 --- a/platform/x11/os_x11.cpp +++ b/platform/x11/os_x11.cpp @@ -534,22 +534,26 @@ Error OS_X11::initialize(const VideoMode &p_desired, int p_video_driver, int p_a } { - Pixmap cursormask; - XGCValues xgc; - GC gc; - XColor col; - Cursor cursor; + // Creating an empty/transparent cursor + + // Create 1x1 bitmap + Pixmap cursormask = XCreatePixmap(x11_display, + RootWindow(x11_display, DefaultScreen(x11_display)), 1, 1, 1); - cursormask = XCreatePixmap(x11_display, RootWindow(x11_display, DefaultScreen(x11_display)), 1, 1, 1); + // Fill with zero + XGCValues xgc; xgc.function = GXclear; - gc = XCreateGC(x11_display, cursormask, GCFunction, &xgc); + GC gc = XCreateGC(x11_display, cursormask, GCFunction, &xgc); XFillRectangle(x11_display, cursormask, gc, 0, 0, 1, 1); - col.pixel = 0; - col.red = 0; - col.flags = 4; - cursor = XCreatePixmapCursor(x11_display, - cursormask, cursormask, + + // Color value doesn't matter. Mask zero means no foreground or background will be drawn + XColor col = {}; + + Cursor cursor = XCreatePixmapCursor(x11_display, + cursormask, // source (using cursor mask as placeholder, since it'll all be ignored) + cursormask, // mask &col, &col, 0, 0); + XFreePixmap(x11_display, cursormask); XFreeGC(x11_display, gc); @@ -579,6 +583,9 @@ Error OS_X11::initialize(const VideoMode &p_desired, int p_video_driver, int p_a AudioDriverManager::initialize(p_audio_driver); + ///@TODO implement a subclass for Linux and instantiate that instead + camera_server = memnew(CameraServer); + input = memnew(InputDefault); window_has_focus = true; // Set focus to true at init @@ -589,7 +596,7 @@ Error OS_X11::initialize(const VideoMode &p_desired, int p_video_driver, int p_a power_manager = memnew(PowerX11); - if (p_desired.layered_splash) { + if (p_desired.layered) { set_window_per_pixel_transparency_enabled(true); } @@ -779,6 +786,8 @@ void OS_X11::finalize() { memdelete(input); + memdelete(camera_server); + visual_server->finish(); memdelete(visual_server); //memdelete(rasterizer); @@ -997,28 +1006,40 @@ void OS_X11::set_wm_fullscreen(bool p_enabled) { XFlush(x11_display); - if (!p_enabled && !is_window_resizable()) { + if (!p_enabled) { // Reset the non-resizable flags if we un-set these before. Size2 size = get_window_size(); XSizeHints *xsh; - xsh = XAllocSizeHints(); - xsh->flags = PMinSize | PMaxSize; - xsh->min_width = size.x; - xsh->max_width = size.x; - xsh->min_height = size.y; - xsh->max_height = size.y; - + if (!is_window_resizable()) { + xsh->flags = PMinSize | PMaxSize; + xsh->min_width = size.x; + xsh->max_width = size.x; + xsh->min_height = size.y; + xsh->max_height = size.y; + } else { + xsh->flags = 0L; + if (min_size != Size2()) { + xsh->flags |= PMinSize; + xsh->min_width = min_size.x; + xsh->min_height = min_size.y; + } + if (max_size != Size2()) { + xsh->flags |= PMaxSize; + xsh->max_width = max_size.x; + xsh->max_height = max_size.y; + } + } XSetWMNormalHints(x11_display, x11_window, xsh); XFree(xsh); } - if (!p_enabled && !get_borderless_window()) { - // put decorations back if the window wasn't suppoesed to be borderless + if (!p_enabled) { + // put back or remove decorations according to the last set borderless state Hints hints; Atom property; hints.flags = 2; - hints.decorations = 1; + hints.decorations = current_videomode.borderless_window ? 0 : 1; property = XInternAtom(x11_display, "_MOTIF_WM_HINTS", True); XChangeProperty(x11_display, x11_window, property, property, 32, PropModeReplace, (unsigned char *)&hints, 5); } @@ -1235,6 +1256,72 @@ Size2 OS_X11::get_real_window_size() const { return Size2(w, h); } +Size2 OS_X11::get_max_window_size() const { + return max_size; +} + +Size2 OS_X11::get_min_window_size() const { + return min_size; +} + +void OS_X11::set_min_window_size(const Size2 p_size) { + + if ((p_size != Size2()) && (max_size != Size2()) && ((p_size.x > max_size.x) || (p_size.y > max_size.y))) { + WARN_PRINT("Minimum window size can't be larger than maximum window size!"); + return; + } + min_size = p_size; + + if (is_window_resizable()) { + XSizeHints *xsh; + xsh = XAllocSizeHints(); + xsh->flags = 0L; + if (min_size != Size2()) { + xsh->flags |= PMinSize; + xsh->min_width = min_size.x; + xsh->min_height = min_size.y; + } + if (max_size != Size2()) { + xsh->flags |= PMaxSize; + xsh->max_width = max_size.x; + xsh->max_height = max_size.y; + } + XSetWMNormalHints(x11_display, x11_window, xsh); + XFree(xsh); + + XFlush(x11_display); + } +} + +void OS_X11::set_max_window_size(const Size2 p_size) { + + if ((p_size != Size2()) && ((p_size.x < min_size.x) || (p_size.y < min_size.y))) { + WARN_PRINT("Maximum window size can't be smaller than minimum window size!"); + return; + } + max_size = p_size; + + if (is_window_resizable()) { + XSizeHints *xsh; + xsh = XAllocSizeHints(); + xsh->flags = 0L; + if (min_size != Size2()) { + xsh->flags |= PMinSize; + xsh->min_width = min_size.x; + xsh->min_height = min_size.y; + } + if (max_size != Size2()) { + xsh->flags |= PMaxSize; + xsh->max_width = max_size.x; + xsh->max_height = max_size.y; + } + XSetWMNormalHints(x11_display, x11_window, xsh); + XFree(xsh); + + XFlush(x11_display); + } +} + void OS_X11::set_window_size(const Size2 p_size) { if (current_videomode.width == p_size.width && current_videomode.height == p_size.height) @@ -1247,17 +1334,29 @@ void OS_X11::set_window_size(const Size2 p_size) { int old_h = xwa.height; // If window resizable is disabled we need to update the attributes first + XSizeHints *xsh; + xsh = XAllocSizeHints(); if (!is_window_resizable()) { - XSizeHints *xsh; - xsh = XAllocSizeHints(); xsh->flags = PMinSize | PMaxSize; xsh->min_width = p_size.x; xsh->max_width = p_size.x; xsh->min_height = p_size.y; xsh->max_height = p_size.y; - XSetWMNormalHints(x11_display, x11_window, xsh); - XFree(xsh); + } else { + xsh->flags = 0L; + if (min_size != Size2()) { + xsh->flags |= PMinSize; + xsh->min_width = min_size.x; + xsh->min_height = min_size.y; + } + if (max_size != Size2()) { + xsh->flags |= PMaxSize; + xsh->max_width = max_size.x; + xsh->max_height = max_size.y; + } } + XSetWMNormalHints(x11_display, x11_window, xsh); + XFree(xsh); // Resize the window XResizeWindow(x11_display, x11_window, p_size.x, p_size.y); @@ -1303,20 +1402,37 @@ bool OS_X11::is_window_fullscreen() const { } void OS_X11::set_window_resizable(bool p_enabled) { - XSizeHints *xsh; - Size2 size = get_window_size(); + XSizeHints *xsh; xsh = XAllocSizeHints(); - xsh->flags = p_enabled ? 0L : PMinSize | PMaxSize; if (!p_enabled) { + Size2 size = get_window_size(); + + xsh->flags = PMinSize | PMaxSize; xsh->min_width = size.x; xsh->max_width = size.x; xsh->min_height = size.y; xsh->max_height = size.y; + } else { + xsh->flags = 0L; + if (min_size != Size2()) { + xsh->flags |= PMinSize; + xsh->min_width = min_size.x; + xsh->min_height = min_size.y; + } + if (max_size != Size2()) { + xsh->flags |= PMaxSize; + xsh->max_width = max_size.x; + xsh->max_height = max_size.y; + } } + XSetWMNormalHints(x11_display, x11_window, xsh); XFree(xsh); + current_videomode.resizable = p_enabled; + + XFlush(x11_display); } bool OS_X11::is_window_resizable() const { @@ -1527,7 +1643,7 @@ bool OS_X11::is_window_always_on_top() const { void OS_X11::set_borderless_window(bool p_borderless) { - if (current_videomode.borderless_window == p_borderless) + if (get_borderless_window() == p_borderless) return; if (!p_borderless && layered_window) @@ -1547,7 +1663,24 @@ void OS_X11::set_borderless_window(bool p_borderless) { } bool OS_X11::get_borderless_window() { - return current_videomode.borderless_window; + + bool borderless = current_videomode.borderless_window; + Atom prop = XInternAtom(x11_display, "_MOTIF_WM_HINTS", True); + if (prop != None) { + + Atom type; + int format; + unsigned long len; + unsigned long remaining; + unsigned char *data = NULL; + if (XGetWindowProperty(x11_display, x11_window, prop, 0, sizeof(Hints), False, AnyPropertyType, &type, &format, &len, &remaining, &data) == Success) { + if (data && (format == 32) && (len >= 5)) { + borderless = !((Hints *)data)->decorations; + } + XFree(data); + } + } + return borderless; } void OS_X11::request_attention() { @@ -2374,7 +2507,7 @@ void OS_X11::process_xevents() { Vector<String> files = String((char *)p.data).split("\n", false); for (int i = 0; i < files.size(); i++) { - files.write[i] = files[i].replace("file://", "").http_unescape().strip_escapes(); + files.write[i] = files[i].replace("file://", "").http_unescape().strip_edges(); } main_loop->drop_files(files); @@ -2592,7 +2725,7 @@ String OS_X11::get_clipboard() const { return ret; } -String OS_X11::get_name() { +String OS_X11::get_name() const { return "X11"; } diff --git a/platform/x11/os_x11.h b/platform/x11/os_x11.h index a54851d4e7..510487b599 100644 --- a/platform/x11/os_x11.h +++ b/platform/x11/os_x11.h @@ -42,6 +42,7 @@ #include "main/input_default.h" #include "power_x11.h" #include "servers/audio_server.h" +#include "servers/camera_server.h" #include "servers/visual/rasterizer.h" #include "servers/visual_server.h" //#include "servers/visual/visual_server_wrap_mt.h" @@ -119,6 +120,9 @@ class OS_X11 : public OS_Unix { bool im_active; Vector2 im_position; + Size2 min_size; + Size2 max_size; + Point2 last_mouse_pos; bool last_mouse_pos_valid; Point2i last_click_pos; @@ -146,6 +150,8 @@ class OS_X11 : public OS_Unix { void get_key_modifier_state(unsigned int p_x11_state, Ref<InputEventWithModifiers> state); void flush_mouse_motion(); + CameraServer *camera_server; + MouseMode mouse_mode; Point2i center; @@ -216,7 +222,7 @@ protected: bool is_window_maximize_allowed(); public: - virtual String get_name(); + virtual String get_name() const; virtual void set_cursor_shape(CursorShape p_shape); virtual CursorShape get_cursor_shape() const; @@ -265,6 +271,10 @@ public: virtual void set_window_position(const Point2 &p_position); virtual Size2 get_window_size() const; virtual Size2 get_real_window_size() const; + virtual Size2 get_max_window_size() const; + virtual Size2 get_min_window_size() const; + virtual void set_min_window_size(const Size2 p_size); + virtual void set_max_window_size(const Size2 p_size); virtual void set_window_size(const Size2 p_size); virtual void set_window_fullscreen(bool p_enabled); virtual bool is_window_fullscreen() const; diff --git a/scene/2d/animated_sprite.cpp b/scene/2d/animated_sprite.cpp index 25ad6bd5c9..5bf70e12b7 100644 --- a/scene/2d/animated_sprite.cpp +++ b/scene/2d/animated_sprite.cpp @@ -646,6 +646,7 @@ void AnimatedSprite::_reset_timeout() { void AnimatedSprite::set_animation(const StringName &p_animation) { ERR_EXPLAIN(vformat("There is no animation with name '%s'.", p_animation)); + ERR_FAIL_COND(frames == NULL); ERR_FAIL_COND(frames->get_animation_names().find(p_animation) == -1); if (animation == p_animation) diff --git a/scene/2d/camera_2d.cpp b/scene/2d/camera_2d.cpp index 11846654c5..a0d74dd283 100644 --- a/scene/2d/camera_2d.cpp +++ b/scene/2d/camera_2d.cpp @@ -29,10 +29,11 @@ /*************************************************************************/ #include "camera_2d.h" + +#include "core/engine.h" #include "core/math/math_funcs.h" #include "scene/scene_string_names.h" #include "servers/visual_server.h" -#include <editor/editor_node.h> void Camera2D::_update_scroll() { @@ -44,15 +45,16 @@ void Camera2D::_update_scroll() { return; } + if (!viewport) + return; + if (current) { ERR_FAIL_COND(custom_viewport && !ObjectDB::get_instance(custom_viewport_id)); Transform2D xform = get_camera_transform(); - if (viewport) { - viewport->set_canvas_transform(xform); - } + viewport->set_canvas_transform(xform); Size2 screen_size = viewport->get_visible_rect().size; Point2 screen_offset = (anchor_mode == ANCHOR_MODE_DRAG_CENTER ? (screen_size * 0.5) : Point2()); diff --git a/scene/2d/canvas_modulate.cpp b/scene/2d/canvas_modulate.cpp index bd7bb97b03..009d664462 100644 --- a/scene/2d/canvas_modulate.cpp +++ b/scene/2d/canvas_modulate.cpp @@ -70,7 +70,7 @@ void CanvasModulate::_bind_methods() { void CanvasModulate::set_color(const Color &p_color) { color = p_color; - if (is_inside_tree()) { + if (is_visible_in_tree()) { VS::get_singleton()->canvas_set_modulate(get_canvas(), color); } } diff --git a/scene/2d/cpu_particles_2d.cpp b/scene/2d/cpu_particles_2d.cpp index ff27e0a29a..a8d72bb774 100644 --- a/scene/2d/cpu_particles_2d.cpp +++ b/scene/2d/cpu_particles_2d.cpp @@ -29,8 +29,9 @@ /*************************************************************************/ #include "cpu_particles_2d.h" -#include "particles_2d.h" + #include "scene/2d/canvas_item.h" +#include "scene/2d/particles_2d.h" #include "scene/resources/particles_material.h" #include "servers/visual_server.h" @@ -85,7 +86,9 @@ void CPUParticles2D::set_randomness_ratio(float p_ratio) { void CPUParticles2D::set_use_local_coordinates(bool p_enable) { local_coords = p_enable; + set_notify_transform(!p_enable); } + void CPUParticles2D::set_speed_scale(float p_scale) { speed_scale = p_scale; @@ -324,9 +327,9 @@ void CPUParticles2D::set_param_curve(Parameter p_param, const Ref<Curve> &p_curv case PARAM_ANGULAR_VELOCITY: { _adjust_curve_range(p_curve, -360, 360); } break; - /*case PARAM_ORBIT_VELOCITY: { + case PARAM_ORBIT_VELOCITY: { _adjust_curve_range(p_curve, -500, 500); - } break;*/ + } break; case PARAM_LINEAR_ACCEL: { _adjust_curve_range(p_curve, -200, 200); } break; @@ -466,7 +469,7 @@ void CPUParticles2D::_validate_property(PropertyInfo &property) const { property.usage = 0; } - if (property.name == "emission_sphere_radius" && emission_shape != EMISSION_SHAPE_CIRCLE) { + if (property.name == "emission_sphere_radius" && emission_shape != EMISSION_SHAPE_SPHERE) { property.usage = 0; } @@ -489,12 +492,6 @@ void CPUParticles2D::_validate_property(PropertyInfo &property) const { if (property.name == "emission_colors" && emission_shape != EMISSION_SHAPE_POINTS && emission_shape != EMISSION_SHAPE_DIRECTED_POINTS) { property.usage = 0; } - - /* - if (property.name.begins_with("orbit_") && !flags[FLAG_DISABLE_Z]) { - property.usage = 0; - } - */ } static uint32_t idhash(uint32_t x) { @@ -545,6 +542,8 @@ void CPUParticles2D::_particles_process(float p_delta) { velocity_xform[2] = Vector2(); } + float system_phase = time / lifetime; + for (int i = 0; i < pcount; i++) { Particle &p = parray[i]; @@ -552,21 +551,26 @@ void CPUParticles2D::_particles_process(float p_delta) { if (!emitting && !p.active) continue; - float restart_time = (float(i) / float(pcount)) * lifetime; float local_delta = p_delta; + // The phase is a ratio between 0 (birth) and 1 (end of life) for each particle. + // While we use time in tests later on, for randomness we use the phase as done in the + // original shader code, and we later multiply by lifetime to get the time. + float restart_phase = float(i) / float(pcount); + if (randomness_ratio > 0.0) { uint32_t seed = cycle; - if (restart_time >= time) { + if (restart_phase >= system_phase) { seed -= uint32_t(1); } seed *= uint32_t(pcount); seed += uint32_t(i); float random = float(idhash(seed) % uint32_t(65536)) / 65536.0; - restart_time += randomness_ratio * random * 1.0 / float(pcount); + restart_phase += randomness_ratio * random * 1.0 / float(pcount); } - restart_time *= (1.0 - explosiveness_ratio); + restart_phase *= (1.0 - explosiveness_ratio); + float restart_time = restart_phase * lifetime; bool restart = false; if (time > prev_time) { @@ -643,8 +647,9 @@ void CPUParticles2D::_particles_process(float p_delta) { case EMISSION_SHAPE_POINT: { //do none } break; - case EMISSION_SHAPE_CIRCLE: { - p.transform[2] = Vector2(Math::randf() * 2.0 - 1.0, Math::randf() * 2.0 - 1.0).normalized() * emission_sphere_radius; + case EMISSION_SHAPE_SPHERE: { + Vector3 sphere_shape = Vector3(Math::randf() * 2.0 - 1.0, Math::randf() * 2.0 - 1.0, Math::randf() * 2.0 - 1.0).normalized() * emission_sphere_radius; + p.transform[2] = Vector2(sphere_shape.x, sphere_shape.y); } break; case EMISSION_SHAPE_RECTANGLE: { p.transform[2] = Vector2(Math::randf() * 2.0 - 1.0, Math::randf() * 2.0 - 1.0) * emission_rect_extents; @@ -688,16 +693,12 @@ void CPUParticles2D::_particles_process(float p_delta) { if (curve_parameters[PARAM_INITIAL_LINEAR_VELOCITY].is_valid()) { tex_linear_velocity = curve_parameters[PARAM_INITIAL_LINEAR_VELOCITY]->interpolate(p.custom[1]); } - /* - float tex_orbit_velocity = 0.0; - if (flags[FLAG_DISABLE_Z]) { - - if (curve_parameters[PARAM_INITIAL_ORBIT_VELOCITY].is_valid()) { - tex_orbit_velocity = curve_parameters[PARAM_INITIAL_ORBIT_VELOCITY]->interpolate(p.custom[1]); - } + float tex_orbit_velocity = 0.0; + if (curve_parameters[PARAM_ORBIT_VELOCITY].is_valid()) { + tex_orbit_velocity = curve_parameters[PARAM_ORBIT_VELOCITY]->interpolate(p.custom[1]); } -*/ + float tex_angular_velocity = 0.0; if (curve_parameters[PARAM_ANGULAR_VELOCITY].is_valid()) { tex_angular_velocity = curve_parameters[PARAM_ANGULAR_VELOCITY]->interpolate(p.custom[1]); @@ -748,22 +749,19 @@ void CPUParticles2D::_particles_process(float p_delta) { force += diff.length() > 0.0 ? diff.normalized() * (parameters[PARAM_RADIAL_ACCEL] + tex_radial_accel) * Math::lerp(1.0f, rand_from_seed(alt_seed), randomness[PARAM_RADIAL_ACCEL]) : Vector2(); //apply tangential acceleration; Vector2 yx = Vector2(diff.y, diff.x); - force += yx.length() > 0.0 ? (yx * Vector2(-1.0, 1.0)) * ((parameters[PARAM_TANGENTIAL_ACCEL] + tex_tangential_accel) * Math::lerp(1.0f, rand_from_seed(alt_seed), randomness[PARAM_TANGENTIAL_ACCEL])) : Vector2(); + force += yx.length() > 0.0 ? (yx * Vector2(-1.0, 1.0)).normalized() * ((parameters[PARAM_TANGENTIAL_ACCEL] + tex_tangential_accel) * Math::lerp(1.0f, rand_from_seed(alt_seed), randomness[PARAM_TANGENTIAL_ACCEL])) : Vector2(); //apply attractor forces p.velocity += force * local_delta; //orbit velocity -#if 0 - if (flags[FLAG_DISABLE_Z]) { - - float orbit_amount = (orbit_velocity + tex_orbit_velocity) * mix(1.0, rand_from_seed(alt_seed), orbit_velocity_random); - if (orbit_amount != 0.0) { - float ang = orbit_amount * DELTA * pi * 2.0; - mat2 rot = mat2(vec2(cos(ang), -sin(ang)), vec2(sin(ang), cos(ang))); - TRANSFORM[3].xy -= diff.xy; - TRANSFORM[3].xy += rot * diff.xy; - } + float orbit_amount = (parameters[PARAM_ORBIT_VELOCITY] + tex_orbit_velocity) * Math::lerp(1.0f, rand_from_seed(alt_seed), randomness[PARAM_ORBIT_VELOCITY]); + if (orbit_amount != 0.0) { + float ang = orbit_amount * local_delta * Math_PI * 2.0; + // Not sure why the ParticlesMaterial code uses a clockwise rotation matrix, + // but we use -ang here to reproduce its behavior. + Transform2D rot = Transform2D(-ang, Vector2()); + p.transform[2] -= diff; + p.transform[2] += rot.basis_xform(diff); } -#endif if (curve_parameters[PARAM_INITIAL_LINEAR_VELOCITY].is_valid()) { p.velocity = p.velocity.normalized() * tex_linear_velocity; } @@ -865,11 +863,6 @@ void CPUParticles2D::_update_particle_data_buffer() { PoolVector<Particle>::Read r = particles.read(); float *ptr = w.ptr(); - Transform2D un_transform; - if (!local_coords) { - un_transform = get_global_transform().affine_inverse(); - } - if (draw_order != DRAW_ORDER_INDEX) { ow = particle_order.write(); order = ow.ptr(); @@ -891,7 +884,7 @@ void CPUParticles2D::_update_particle_data_buffer() { Transform2D t = r[idx].transform; if (!local_coords) { - t = un_transform * t; + t = inv_emission_transform * t; } if (r[idx].active) { @@ -1060,6 +1053,42 @@ void CPUParticles2D::_notification(int p_what) { _update_particle_data_buffer(); } + + if (p_what == NOTIFICATION_TRANSFORM_CHANGED) { + + inv_emission_transform = get_global_transform().affine_inverse(); + + if (!local_coords) { + + int pc = particles.size(); + + PoolVector<float>::Write w = particle_data.write(); + PoolVector<Particle>::Read r = particles.read(); + float *ptr = w.ptr(); + + for (int i = 0; i < pc; i++) { + + Transform2D t = inv_emission_transform * r[i].transform; + + if (r[i].active) { + + ptr[0] = t.elements[0][0]; + ptr[1] = t.elements[1][0]; + ptr[2] = 0; + ptr[3] = t.elements[2][0]; + ptr[4] = t.elements[0][1]; + ptr[5] = t.elements[1][1]; + ptr[6] = 0; + ptr[7] = t.elements[2][1]; + + } else { + zeromem(ptr, sizeof(float) * 8); + } + + ptr += 13; + } + } + } } void CPUParticles2D::convert_from_particles(Node *p_particles) { @@ -1174,15 +1203,16 @@ void CPUParticles2D::_bind_methods() { ADD_PROPERTY(PropertyInfo(Variant::BOOL, "emitting"), "set_emitting", "is_emitting"); ADD_PROPERTY(PropertyInfo(Variant::INT, "amount", PROPERTY_HINT_EXP_RANGE, "1,1000000,1"), "set_amount", "get_amount"); ADD_GROUP("Time", ""); - ADD_PROPERTY(PropertyInfo(Variant::REAL, "lifetime", PROPERTY_HINT_EXP_RANGE, "0.01,600.0,0.01,or_greater"), "set_lifetime", "get_lifetime"); + ADD_PROPERTY(PropertyInfo(Variant::REAL, "lifetime", PROPERTY_HINT_RANGE, "0.01,600.0,0.01,or_greater"), "set_lifetime", "get_lifetime"); ADD_PROPERTY(PropertyInfo(Variant::BOOL, "one_shot"), "set_one_shot", "get_one_shot"); - ADD_PROPERTY(PropertyInfo(Variant::REAL, "preprocess", PROPERTY_HINT_EXP_RANGE, "0.00,600.0,0.01"), "set_pre_process_time", "get_pre_process_time"); + ADD_PROPERTY(PropertyInfo(Variant::REAL, "preprocess", PROPERTY_HINT_RANGE, "0.00,600.0,0.01"), "set_pre_process_time", "get_pre_process_time"); ADD_PROPERTY(PropertyInfo(Variant::REAL, "speed_scale", PROPERTY_HINT_RANGE, "0,64,0.01"), "set_speed_scale", "get_speed_scale"); ADD_PROPERTY(PropertyInfo(Variant::REAL, "explosiveness", PROPERTY_HINT_RANGE, "0,1,0.01"), "set_explosiveness_ratio", "get_explosiveness_ratio"); ADD_PROPERTY(PropertyInfo(Variant::REAL, "randomness", PROPERTY_HINT_RANGE, "0,1,0.01"), "set_randomness_ratio", "get_randomness_ratio"); ADD_PROPERTY(PropertyInfo(Variant::INT, "fixed_fps", PROPERTY_HINT_RANGE, "0,1000,1"), "set_fixed_fps", "get_fixed_fps"); ADD_PROPERTY(PropertyInfo(Variant::BOOL, "fract_delta"), "set_fractional_delta", "get_fractional_delta"); ADD_GROUP("Drawing", ""); + // No visibility_rect property contrarily to Particles2D, it's updated automatically. ADD_PROPERTY(PropertyInfo(Variant::BOOL, "local_coords"), "set_use_local_coordinates", "get_use_local_coordinates"); ADD_PROPERTY(PropertyInfo(Variant::INT, "draw_order", PROPERTY_HINT_ENUM, "Index,Lifetime"), "set_draw_order", "get_draw_order"); ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "texture", PROPERTY_HINT_RESOURCE_TYPE, "Texture"), "set_texture", "get_texture"); @@ -1263,12 +1293,10 @@ void CPUParticles2D::_bind_methods() { ADD_PROPERTYI(PropertyInfo(Variant::REAL, "angular_velocity", PROPERTY_HINT_RANGE, "-720,720,0.01,or_lesser,or_greater"), "set_param", "get_param", PARAM_ANGULAR_VELOCITY); ADD_PROPERTYI(PropertyInfo(Variant::REAL, "angular_velocity_random", PROPERTY_HINT_RANGE, "0,1,0.01"), "set_param_randomness", "get_param_randomness", PARAM_ANGULAR_VELOCITY); ADD_PROPERTYI(PropertyInfo(Variant::OBJECT, "angular_velocity_curve", PROPERTY_HINT_RESOURCE_TYPE, "Curve"), "set_param_curve", "get_param_curve", PARAM_ANGULAR_VELOCITY); - /* ADD_GROUP("Orbit Velocity", "orbit_"); ADD_PROPERTYI(PropertyInfo(Variant::REAL, "orbit_velocity", PROPERTY_HINT_RANGE, "-1000,1000,0.01,or_lesser,or_greater"), "set_param", "get_param", PARAM_ORBIT_VELOCITY); ADD_PROPERTYI(PropertyInfo(Variant::REAL, "orbit_velocity_random", PROPERTY_HINT_RANGE, "0,1,0.01"), "set_param_randomness", "get_param_randomness", PARAM_ORBIT_VELOCITY); ADD_PROPERTYI(PropertyInfo(Variant::OBJECT, "orbit_velocity_curve", PROPERTY_HINT_RESOURCE_TYPE, "Curve"), "set_param_curve", "get_param_curve", PARAM_ORBIT_VELOCITY); -*/ ADD_GROUP("Linear Accel", "linear_"); ADD_PROPERTYI(PropertyInfo(Variant::REAL, "linear_accel", PROPERTY_HINT_RANGE, "-100,100,0.01,or_lesser,or_greater"), "set_param", "get_param", PARAM_LINEAR_ACCEL); ADD_PROPERTYI(PropertyInfo(Variant::REAL, "linear_accel_random", PROPERTY_HINT_RANGE, "0,1,0.01"), "set_param_randomness", "get_param_randomness", PARAM_LINEAR_ACCEL); @@ -1324,10 +1352,12 @@ void CPUParticles2D::_bind_methods() { BIND_ENUM_CONSTANT(PARAM_MAX); BIND_ENUM_CONSTANT(FLAG_ALIGN_Y_TO_VELOCITY); + BIND_ENUM_CONSTANT(FLAG_ROTATE_Y); // Unused, but exposed for consistency with 3D. + BIND_ENUM_CONSTANT(FLAG_DISABLE_Z); // Unused, but exposed for consistency with 3D. BIND_ENUM_CONSTANT(FLAG_MAX); BIND_ENUM_CONSTANT(EMISSION_SHAPE_POINT); - BIND_ENUM_CONSTANT(EMISSION_SHAPE_CIRCLE); + BIND_ENUM_CONSTANT(EMISSION_SHAPE_SPHERE); BIND_ENUM_CONSTANT(EMISSION_SHAPE_RECTANGLE); BIND_ENUM_CONSTANT(EMISSION_SHAPE_POINTS); BIND_ENUM_CONSTANT(EMISSION_SHAPE_DIRECTED_POINTS); @@ -1362,7 +1392,7 @@ CPUParticles2D::CPUParticles2D() { set_spread(45); set_flatness(0); set_param(PARAM_INITIAL_LINEAR_VELOCITY, 1); - //set_param(PARAM_ORBIT_VELOCITY, 0); + set_param(PARAM_ORBIT_VELOCITY, 0); set_param(PARAM_LINEAR_ACCEL, 0); set_param(PARAM_ANGULAR_VELOCITY, 0); set_param(PARAM_RADIAL_ACCEL, 0); diff --git a/scene/2d/cpu_particles_2d.h b/scene/2d/cpu_particles_2d.h index 23d2586331..6c83abb311 100644 --- a/scene/2d/cpu_particles_2d.h +++ b/scene/2d/cpu_particles_2d.h @@ -68,12 +68,14 @@ public: enum Flags { FLAG_ALIGN_Y_TO_VELOCITY, + FLAG_ROTATE_Y, // Unused, but exposed for consistency with 3D. + FLAG_DISABLE_Z, // Unused, but exposed for consistency with 3D. FLAG_MAX }; enum EmissionShape { EMISSION_SHAPE_POINT, - EMISSION_SHAPE_CIRCLE, + EMISSION_SHAPE_SPHERE, EMISSION_SHAPE_RECTANGLE, EMISSION_SHAPE_POINTS, EMISSION_SHAPE_DIRECTED_POINTS, @@ -116,7 +118,7 @@ private: const Particle *particles; bool operator()(int p_a, int p_b) const { - return particles[p_a].time < particles[p_b].time; + return particles[p_a].time > particles[p_b].time; } }; @@ -142,6 +144,8 @@ private: int fixed_fps; bool fractional_delta; + Transform2D inv_emission_transform; + DrawOrder draw_order; Ref<Texture> texture; diff --git a/scene/2d/light_2d.cpp b/scene/2d/light_2d.cpp index 6b12db9e44..7f01ff8806 100644 --- a/scene/2d/light_2d.cpp +++ b/scene/2d/light_2d.cpp @@ -435,7 +435,7 @@ void Light2D::_bind_methods() { ADD_PROPERTY(PropertyInfo(Variant::VECTOR2, "offset"), "set_texture_offset", "get_texture_offset"); ADD_PROPERTY(PropertyInfo(Variant::REAL, "texture_scale", PROPERTY_HINT_RANGE, "0.01,50,0.01"), "set_texture_scale", "get_texture_scale"); ADD_PROPERTY(PropertyInfo(Variant::COLOR, "color"), "set_color", "get_color"); - ADD_PROPERTY(PropertyInfo(Variant::REAL, "energy", PROPERTY_HINT_RANGE, "0.01,100,0.01"), "set_energy", "get_energy"); + ADD_PROPERTY(PropertyInfo(Variant::REAL, "energy", PROPERTY_HINT_RANGE, "0,16,0.01,or_greater"), "set_energy", "get_energy"); ADD_PROPERTY(PropertyInfo(Variant::INT, "mode", PROPERTY_HINT_ENUM, "Add,Sub,Mix,Mask"), "set_mode", "get_mode"); ADD_GROUP("Range", "range_"); ADD_PROPERTY(PropertyInfo(Variant::REAL, "range_height", PROPERTY_HINT_RANGE, "-2048,2048,0.1,or_lesser,or_greater"), "set_height", "get_height"); diff --git a/scene/2d/line_2d.cpp b/scene/2d/line_2d.cpp index ba06b3ebff..5ba184b324 100644 --- a/scene/2d/line_2d.cpp +++ b/scene/2d/line_2d.cpp @@ -105,6 +105,7 @@ void Line2D::set_point_position(int i, Vector2 pos) { } Vector2 Line2D::get_point_position(int i) const { + ERR_FAIL_INDEX_V(i, _points.size(), Vector2()); return _points.get(i); } diff --git a/scene/2d/mesh_instance_2d.cpp b/scene/2d/mesh_instance_2d.cpp index b382ca7b33..bcd4bca940 100644 --- a/scene/2d/mesh_instance_2d.cpp +++ b/scene/2d/mesh_instance_2d.cpp @@ -50,6 +50,8 @@ void MeshInstance2D::_bind_methods() { ClassDB::bind_method(D_METHOD("set_normal_map", "normal_map"), &MeshInstance2D::set_normal_map); ClassDB::bind_method(D_METHOD("get_normal_map"), &MeshInstance2D::get_normal_map); + ADD_SIGNAL(MethodInfo("texture_changed")); + ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "mesh", PROPERTY_HINT_RESOURCE_TYPE, "Mesh"), "set_mesh", "get_mesh"); ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "texture", PROPERTY_HINT_RESOURCE_TYPE, "Texture"), "set_texture", "get_texture"); ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "normal_map", PROPERTY_HINT_RESOURCE_TYPE, "Texture"), "set_normal_map", "get_normal_map"); diff --git a/scene/2d/multimesh_instance_2d.cpp b/scene/2d/multimesh_instance_2d.cpp new file mode 100644 index 0000000000..ca75302163 --- /dev/null +++ b/scene/2d/multimesh_instance_2d.cpp @@ -0,0 +1,111 @@ +/*************************************************************************/ +/* multimesh_instance_2d.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 "multimesh_instance_2d.h" + +void MultiMeshInstance2D::_notification(int p_what) { + + if (p_what == NOTIFICATION_DRAW) { + if (multimesh.is_valid()) { + draw_multimesh(multimesh, texture, normal_map); + } + } +} + +void MultiMeshInstance2D::_bind_methods() { + + ClassDB::bind_method(D_METHOD("set_multimesh", "multimesh"), &MultiMeshInstance2D::set_multimesh); + ClassDB::bind_method(D_METHOD("get_multimesh"), &MultiMeshInstance2D::get_multimesh); + + ClassDB::bind_method(D_METHOD("set_texture", "texture"), &MultiMeshInstance2D::set_texture); + ClassDB::bind_method(D_METHOD("get_texture"), &MultiMeshInstance2D::get_texture); + + ClassDB::bind_method(D_METHOD("set_normal_map", "normal_map"), &MultiMeshInstance2D::set_normal_map); + ClassDB::bind_method(D_METHOD("get_normal_map"), &MultiMeshInstance2D::get_normal_map); + + ADD_SIGNAL(MethodInfo("texture_changed")); + + ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "multimesh", PROPERTY_HINT_RESOURCE_TYPE, "MultiMesh"), "set_multimesh", "get_multimesh"); + ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "texture", PROPERTY_HINT_RESOURCE_TYPE, "Texture"), "set_texture", "get_texture"); + ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "normal_map", PROPERTY_HINT_RESOURCE_TYPE, "Texture"), "set_normal_map", "get_normal_map"); +} + +void MultiMeshInstance2D::set_multimesh(const Ref<MultiMesh> &p_multimesh) { + + multimesh = p_multimesh; + update(); +} + +Ref<MultiMesh> MultiMeshInstance2D::get_multimesh() const { + + return multimesh; +} + +void MultiMeshInstance2D::set_texture(const Ref<Texture> &p_texture) { + + if (p_texture == texture) + return; + texture = p_texture; + update(); + emit_signal("texture_changed"); + _change_notify("texture"); +} + +Ref<Texture> MultiMeshInstance2D::get_texture() const { + + return texture; +} + +void MultiMeshInstance2D::set_normal_map(const Ref<Texture> &p_texture) { + + normal_map = p_texture; + update(); +} + +Ref<Texture> MultiMeshInstance2D::get_normal_map() const { + + return normal_map; +} + +Rect2 MultiMeshInstance2D::_edit_get_rect() const { + + if (multimesh.is_valid()) { + AABB aabb = multimesh->get_aabb(); + return Rect2(aabb.position.x, aabb.position.y, aabb.size.x, aabb.size.y); + } + + return Node2D::_edit_get_rect(); +} + +MultiMeshInstance2D::MultiMeshInstance2D() { +} + +MultiMeshInstance2D::~MultiMeshInstance2D() { +} diff --git a/scene/2d/multimesh_instance_2d.h b/scene/2d/multimesh_instance_2d.h new file mode 100644 index 0000000000..3795497183 --- /dev/null +++ b/scene/2d/multimesh_instance_2d.h @@ -0,0 +1,65 @@ +/*************************************************************************/ +/* multimesh_instance_2d.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 MULTIMESH_INSTANCE_2D_H +#define MULTIMESH_INSTANCE_2D_H + +#include "scene/2d/node_2d.h" +#include "scene/resources/multimesh.h" + +class MultiMeshInstance2D : public Node2D { + GDCLASS(MultiMeshInstance2D, Node2D); + + Ref<MultiMesh> multimesh; + + Ref<Texture> texture; + Ref<Texture> normal_map; + +protected: + void _notification(int p_what); + static void _bind_methods(); + +public: + void set_multimesh(const Ref<MultiMesh> &p_multimesh); + Ref<MultiMesh> get_multimesh() const; + + void set_texture(const Ref<Texture> &p_texture); + Ref<Texture> get_texture() const; + + void set_normal_map(const Ref<Texture> &p_texture); + Ref<Texture> get_normal_map() const; + + virtual Rect2 _edit_get_rect() const; + + MultiMeshInstance2D(); + ~MultiMeshInstance2D(); +}; + +#endif // MULTIMESH_INSTANCE_2D_H diff --git a/scene/2d/navigation_polygon.cpp b/scene/2d/navigation_polygon.cpp index 0f6af358bd..e389d5f98f 100644 --- a/scene/2d/navigation_polygon.cpp +++ b/scene/2d/navigation_polygon.cpp @@ -312,7 +312,7 @@ void NavigationPolygon::_bind_methods() { ClassDB::bind_method(D_METHOD("_set_outlines", "outlines"), &NavigationPolygon::_set_outlines); ClassDB::bind_method(D_METHOD("_get_outlines"), &NavigationPolygon::_get_outlines); - ADD_PROPERTY(PropertyInfo(Variant::POOL_VECTOR3_ARRAY, "vertices", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_NOEDITOR | PROPERTY_USAGE_INTERNAL), "set_vertices", "get_vertices"); + ADD_PROPERTY(PropertyInfo(Variant::POOL_VECTOR2_ARRAY, "vertices", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_NOEDITOR | PROPERTY_USAGE_INTERNAL), "set_vertices", "get_vertices"); ADD_PROPERTY(PropertyInfo(Variant::ARRAY, "polygons", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_NOEDITOR | PROPERTY_USAGE_INTERNAL), "_set_polygons", "_get_polygons"); ADD_PROPERTY(PropertyInfo(Variant::ARRAY, "outlines", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_NOEDITOR | PROPERTY_USAGE_INTERNAL), "_set_outlines", "_get_outlines"); } diff --git a/scene/2d/path_2d.cpp b/scene/2d/path_2d.cpp index 4097006b33..e062067248 100644 --- a/scene/2d/path_2d.cpp +++ b/scene/2d/path_2d.cpp @@ -264,7 +264,7 @@ void PathFollow2D::_validate_property(PropertyInfo &property) const { if (path && path->get_curve().is_valid()) max = path->get_curve()->get_baked_length(); - property.hint_string = "0," + rtos(max) + ",0.01,or_greater"; + property.hint_string = "0," + rtos(max) + ",0.01,or_lesser"; } } @@ -306,8 +306,8 @@ void PathFollow2D::_bind_methods() { ClassDB::bind_method(D_METHOD("set_lookahead", "lookahead"), &PathFollow2D::set_lookahead); ClassDB::bind_method(D_METHOD("get_lookahead"), &PathFollow2D::get_lookahead); - ADD_PROPERTY(PropertyInfo(Variant::REAL, "offset", PROPERTY_HINT_RANGE, "0,10000,0.01,or_greater"), "set_offset", "get_offset"); - ADD_PROPERTY(PropertyInfo(Variant::REAL, "unit_offset", PROPERTY_HINT_RANGE, "0,1,0.0001,or_greater", PROPERTY_USAGE_EDITOR), "set_unit_offset", "get_unit_offset"); + ADD_PROPERTY(PropertyInfo(Variant::REAL, "offset", PROPERTY_HINT_RANGE, "0,10000,0.01,or_lesser"), "set_offset", "get_offset"); + ADD_PROPERTY(PropertyInfo(Variant::REAL, "unit_offset", PROPERTY_HINT_RANGE, "0,1,0.0001,or_lesser", PROPERTY_USAGE_EDITOR), "set_unit_offset", "get_unit_offset"); ADD_PROPERTY(PropertyInfo(Variant::REAL, "h_offset"), "set_h_offset", "get_h_offset"); ADD_PROPERTY(PropertyInfo(Variant::REAL, "v_offset"), "set_v_offset", "get_v_offset"); ADD_PROPERTY(PropertyInfo(Variant::BOOL, "rotate"), "set_rotate", "is_rotating"); @@ -319,8 +319,24 @@ void PathFollow2D::_bind_methods() { void PathFollow2D::set_offset(float p_offset) { offset = p_offset; - if (path) + if (path) { + if (path->get_curve().is_valid() && path->get_curve()->get_baked_length()) { + float path_length = path->get_curve()->get_baked_length(); + + if (loop) { + while (offset > path_length) + offset -= path_length; + + while (offset < 0) + offset += path_length; + + } else { + offset = CLAMP(offset, 0, path_length); + } + } + _update_transform(); + } _change_notify("offset"); _change_notify("unit_offset"); } diff --git a/scene/2d/physics_body_2d.cpp b/scene/2d/physics_body_2d.cpp index 578c9aa5f9..2bd9e5e2a2 100644 --- a/scene/2d/physics_body_2d.cpp +++ b/scene/2d/physics_body_2d.cpp @@ -203,8 +203,8 @@ void StaticBody2D::set_friction(real_t p_friction) { return; } - ERR_EXPLAIN("The method set_friction has been deprecated and will be removed in the future, use physics material instead.") - WARN_DEPRECATED + ERR_EXPLAIN("The method set_friction has been deprecated and will be removed in the future, use physics material instead."); + WARN_DEPRECATED; ERR_FAIL_COND(p_friction < 0 || p_friction > 1); @@ -217,8 +217,8 @@ void StaticBody2D::set_friction(real_t p_friction) { real_t StaticBody2D::get_friction() const { - ERR_EXPLAIN("The method get_friction has been deprecated and will be removed in the future, use physics material instead.") - WARN_DEPRECATED + ERR_EXPLAIN("The method get_friction has been deprecated and will be removed in the future, use physics material instead."); + WARN_DEPRECATED; if (physics_material_override.is_null()) { return 1; @@ -233,8 +233,8 @@ void StaticBody2D::set_bounce(real_t p_bounce) { return; } - ERR_EXPLAIN("The method set_bounce has been deprecated and will be removed in the future, use physics material instead.") - WARN_DEPRECATED + ERR_EXPLAIN("The method set_bounce has been deprecated and will be removed in the future, use physics material instead."); + WARN_DEPRECATED; ERR_FAIL_COND(p_bounce < 0 || p_bounce > 1); @@ -247,8 +247,8 @@ void StaticBody2D::set_bounce(real_t p_bounce) { real_t StaticBody2D::get_bounce() const { - ERR_EXPLAIN("The method get_bounce has been deprecated and will be removed in the future, use physics material instead.") - WARN_DEPRECATED + ERR_EXPLAIN("The method get_bounce has been deprecated and will be removed in the future, use physics material instead."); + WARN_DEPRECATED; if (physics_material_override.is_null()) { return 0; @@ -630,8 +630,8 @@ void RigidBody2D::set_friction(real_t p_friction) { return; } - ERR_EXPLAIN("The method set_friction has been deprecated and will be removed in the future, use physics material instead.") - WARN_DEPRECATED + ERR_EXPLAIN("The method set_friction has been deprecated and will be removed in the future, use physics material instead."); + WARN_DEPRECATED; ERR_FAIL_COND(p_friction < 0 || p_friction > 1); @@ -643,8 +643,8 @@ void RigidBody2D::set_friction(real_t p_friction) { } real_t RigidBody2D::get_friction() const { - ERR_EXPLAIN("The method get_friction has been deprecated and will be removed in the future, use physics material instead.") - WARN_DEPRECATED + ERR_EXPLAIN("The method get_friction has been deprecated and will be removed in the future, use physics material instead."); + WARN_DEPRECATED; if (physics_material_override.is_null()) { return 1; @@ -659,8 +659,8 @@ void RigidBody2D::set_bounce(real_t p_bounce) { return; } - ERR_EXPLAIN("The method set_bounce has been deprecated and will be removed in the future, use physics material instead.") - WARN_DEPRECATED + ERR_EXPLAIN("The method set_bounce has been deprecated and will be removed in the future, use physics material instead."); + WARN_DEPRECATED; ERR_FAIL_COND(p_bounce < 0 || p_bounce > 1); @@ -672,8 +672,8 @@ void RigidBody2D::set_bounce(real_t p_bounce) { } real_t RigidBody2D::get_bounce() const { - ERR_EXPLAIN("The method get_bounce has been deprecated and will be removed in the future, use physics material instead.") - WARN_DEPRECATED + ERR_EXPLAIN("The method get_bounce has been deprecated and will be removed in the future, use physics material instead."); + WARN_DEPRECATED; if (physics_material_override.is_null()) { return 0; diff --git a/scene/2d/position_2d.cpp b/scene/2d/position_2d.cpp index bed6f8a816..f0c46a5fb7 100644 --- a/scene/2d/position_2d.cpp +++ b/scene/2d/position_2d.cpp @@ -33,15 +33,19 @@ #include "core/engine.h" #include "scene/resources/texture.h" +const float DEFAULT_GIZMO_EXTENTS = 10.0; + void Position2D::_draw_cross() { - draw_line(Point2(-10, 0), Point2(+10, 0), Color(1, 0.5, 0.5)); - draw_line(Point2(0, -10), Point2(0, +10), Color(0.5, 1, 0.5)); + float extents = get_gizmo_extents(); + draw_line(Point2(-extents, 0), Point2(+extents, 0), Color(1, 0.5, 0.5)); + draw_line(Point2(0, -extents), Point2(0, +extents), Color(0.5, 1, 0.5)); } Rect2 Position2D::_edit_get_rect() const { - return Rect2(Point2(-10, -10), Size2(20, 20)); + float extents = get_gizmo_extents(); + return Rect2(Point2(-extents, -extents), Size2(extents * 2, extents * 2)); } bool Position2D::_edit_use_rect() const { @@ -66,5 +70,31 @@ void Position2D::_notification(int p_what) { } } +void Position2D::set_gizmo_extents(float p_extents) { + if (p_extents == DEFAULT_GIZMO_EXTENTS) { + set_meta("_gizmo_extents_", Variant()); + } else { + set_meta("_gizmo_extents_", p_extents); + } + + update(); +} + +float Position2D::get_gizmo_extents() const { + if (has_meta("_gizmo_extents_")) { + return get_meta("_gizmo_extents_"); + } else { + return DEFAULT_GIZMO_EXTENTS; + } +} + +void Position2D::_bind_methods() { + + ClassDB::bind_method(D_METHOD("_set_gizmo_extents", "extents"), &Position2D::set_gizmo_extents); + ClassDB::bind_method(D_METHOD("_get_gizmo_extents"), &Position2D::get_gizmo_extents); + + ADD_PROPERTY(PropertyInfo(Variant::REAL, "gizmo_extents", PROPERTY_HINT_RANGE, "0,1000,0.1,or_greater", PROPERTY_USAGE_EDITOR | PROPERTY_USAGE_INTERNAL), "_set_gizmo_extents", "_get_gizmo_extents"); +} + Position2D::Position2D() { } diff --git a/scene/2d/position_2d.h b/scene/2d/position_2d.h index c95315fea3..ec73c02d2b 100644 --- a/scene/2d/position_2d.h +++ b/scene/2d/position_2d.h @@ -41,10 +41,15 @@ class Position2D : public Node2D { protected: void _notification(int p_what); + static void _bind_methods(); public: virtual Rect2 _edit_get_rect() const; virtual bool _edit_use_rect() const; + + void set_gizmo_extents(float p_extents); + float get_gizmo_extents() const; + Position2D(); }; diff --git a/scene/2d/skeleton_2d.h b/scene/2d/skeleton_2d.h index cf9877e6f8..d24c0a1561 100644 --- a/scene/2d/skeleton_2d.h +++ b/scene/2d/skeleton_2d.h @@ -39,6 +39,9 @@ class Bone2D : public Node2D { GDCLASS(Bone2D, Node2D) friend class Skeleton2D; +#ifdef TOOLS_ENABLED + friend class AnimatedValuesBackup; +#endif Bone2D *parent_bone; Skeleton2D *skeleton; @@ -71,6 +74,9 @@ class Skeleton2D : public Node2D { GDCLASS(Skeleton2D, Node2D); friend class Bone2D; +#ifdef TOOLS_ENABLED + friend class AnimatedValuesBackup; +#endif struct Bone { bool operator<(const Bone &p_bone) const { diff --git a/scene/2d/tile_map.cpp b/scene/2d/tile_map.cpp index 3dc0f46676..b3b6f3175d 100644 --- a/scene/2d/tile_map.cpp +++ b/scene/2d/tile_map.cpp @@ -202,47 +202,27 @@ void TileMap::_fix_cell_transform(Transform2D &xform, const Cell &p_cell, const Size2 s = p_sc; Vector2 offset = p_offset; - if (tile_origin == TILE_ORIGIN_BOTTOM_LEFT) - offset.y += cell_size.y; - else if (tile_origin == TILE_ORIGIN_CENTER) { - offset += cell_size / 2; - } - - if (s.y > s.x) { - if ((p_cell.flip_h && (p_cell.flip_v || p_cell.transpose)) || (p_cell.flip_v && !p_cell.transpose)) - offset.y += s.y - s.x; - } else if (s.y < s.x) { - if ((p_cell.flip_v && (p_cell.flip_h || p_cell.transpose)) || (p_cell.flip_h && !p_cell.transpose)) - offset.x += s.x - s.y; - } - if (p_cell.transpose) { SWAP(xform.elements[0].x, xform.elements[0].y); SWAP(xform.elements[1].x, xform.elements[1].y); SWAP(offset.x, offset.y); SWAP(s.x, s.y); } + if (p_cell.flip_h) { xform.elements[0].x = -xform.elements[0].x; xform.elements[1].x = -xform.elements[1].x; - if (tile_origin == TILE_ORIGIN_TOP_LEFT || tile_origin == TILE_ORIGIN_BOTTOM_LEFT) - offset.x = s.x - offset.x; - else if (tile_origin == TILE_ORIGIN_CENTER) - offset.x = s.x - offset.x / 2; + offset.x = s.x - offset.x; } + if (p_cell.flip_v) { xform.elements[0].y = -xform.elements[0].y; xform.elements[1].y = -xform.elements[1].y; - if (tile_origin == TILE_ORIGIN_TOP_LEFT) - offset.y = s.y - offset.y; - else if (tile_origin == TILE_ORIGIN_BOTTOM_LEFT) { - offset.y += s.y; - } else if (tile_origin == TILE_ORIGIN_CENTER) { - offset.y += s.y; - } + offset.y = s.y - offset.y; } - xform.elements[2].x += offset.x; - xform.elements[2].y += offset.y; + /* For a future CheckBox to Center Texture: + offset += cell_size / 2 - s / 2; */ + xform.elements[2] += offset; } void TileMap::update_dirty_quadrants() { @@ -390,64 +370,26 @@ void TileMap::update_dirty_quadrants() { rect.size.x += fp_adjust; rect.size.y += fp_adjust; - if (rect.size.y > rect.size.x) { - if ((c.flip_h && (c.flip_v || c.transpose)) || (c.flip_v && !c.transpose)) - tile_ofs.y += rect.size.y - rect.size.x; - } else if (rect.size.y < rect.size.x) { - if ((c.flip_v && (c.flip_h || c.transpose)) || (c.flip_h && !c.transpose)) - tile_ofs.x += rect.size.x - rect.size.y; - } - - /* rect.size.x+=fp_adjust; - rect.size.y+=fp_adjust;*/ - - if (c.transpose) + if (c.transpose) { SWAP(tile_ofs.x, tile_ofs.y); + /* For a future CheckBox to Center Texture: + rect.position.x += cell_size.x / 2 - rect.size.y / 2; + rect.position.y += cell_size.y / 2 - rect.size.x / 2; + } else { + rect.position += cell_size / 2 - rect.size / 2; */ + } if (c.flip_h) { rect.size.x = -rect.size.x; tile_ofs.x = -tile_ofs.x; } + if (c.flip_v) { rect.size.y = -rect.size.y; tile_ofs.y = -tile_ofs.y; } - Vector2 center_ofs; - - if (tile_origin == TILE_ORIGIN_TOP_LEFT) { - rect.position += tile_ofs; - - } else if (tile_origin == TILE_ORIGIN_BOTTOM_LEFT) { - - rect.position += tile_ofs; - - if (c.transpose) { - if (c.flip_h) - rect.position.x -= cell_size.x; - else - rect.position.x += cell_size.x; - } else { - if (c.flip_v) - rect.position.y -= cell_size.y; - else - rect.position.y += cell_size.y; - } - - } else if (tile_origin == TILE_ORIGIN_CENTER) { - - rect.position += tile_ofs; - - if (c.flip_h) - rect.position.x -= cell_size.x / 2; - else - rect.position.x += cell_size.x / 2; - - if (c.flip_v) - rect.position.y -= cell_size.y / 2; - else - rect.position.y += cell_size.y / 2; - } + rect.position += tile_ofs; Ref<Texture> normal_map = tile_set->tile_get_normal_map(c.id); Color modulate = tile_set->tile_get_modulate(c.id); @@ -471,7 +413,7 @@ void TileMap::update_dirty_quadrants() { Vector2 shape_ofs = shapes[j].shape_transform.get_origin(); - _fix_cell_transform(xform, c, shape_ofs + center_ofs, s); + _fix_cell_transform(xform, c, shape_ofs, s); xform *= shapes[j].shape_transform.untranslated(); @@ -523,7 +465,7 @@ void TileMap::update_dirty_quadrants() { if (navpoly.is_valid()) { Transform2D xform; xform.set_origin(offset.floor() + q.pos); - _fix_cell_transform(xform, c, npoly_ofs + center_ofs, s); + _fix_cell_transform(xform, c, npoly_ofs, s); int pid = navigation->navpoly_add(navpoly, nav_rel * xform); @@ -573,7 +515,7 @@ void TileMap::update_dirty_quadrants() { } Transform2D navxform; navxform.set_origin(offset.floor()); - _fix_cell_transform(navxform, c, npoly_ofs + center_ofs, s); + _fix_cell_transform(navxform, c, npoly_ofs, s); vs->canvas_item_set_transform(debug_navigation_item, navxform); vs->canvas_item_add_triangle_array(debug_navigation_item, indices, vertices, colors); @@ -593,7 +535,7 @@ void TileMap::update_dirty_quadrants() { Vector2 occluder_ofs = tile_set->tile_get_occluder_offset(c.id); Transform2D xform; xform.set_origin(offset.floor() + q.pos); - _fix_cell_transform(xform, c, occluder_ofs + center_ofs, s); + _fix_cell_transform(xform, c, occluder_ofs, s); RID orid = VS::get_singleton()->canvas_light_occluder_create(); VS::get_singleton()->canvas_light_occluder_set_transform(orid, get_global_transform() * xform); @@ -927,8 +869,17 @@ void TileMap::update_cell_bitmask(int p_x, int p_y) { _make_quadrant_dirty(Q); } else if (tile_set->tile_get_tile_mode(id) == TileSet::SINGLE_TILE) { + E->get().autotile_coord_x = 0; E->get().autotile_coord_y = 0; + } else if (tile_set->tile_get_tile_mode(id) == TileSet::ATLAS_TILE) { + + if (tile_set->autotile_get_bitmask(id, Vector2(p_x, p_y)) == TileSet::BIND_CENTER) { + Vector2 coord = tile_set->atlastile_get_subtile_by_priority(id, this, Vector2(p_x, p_y)); + + E->get().autotile_coord_x = (int)coord.x; + E->get().autotile_coord_y = (int)coord.y; + } } } } diff --git a/scene/3d/arvr_nodes.cpp b/scene/3d/arvr_nodes.cpp index 52fa96ee4a..95eec41fb2 100644 --- a/scene/3d/arvr_nodes.cpp +++ b/scene/3d/arvr_nodes.cpp @@ -127,7 +127,7 @@ Point2 ARVRCamera::unproject_position(const Vector3 &p_pos) const { return res; }; -Vector3 ARVRCamera::project_position(const Point2 &p_point) const { +Vector3 ARVRCamera::project_position(const Point2 &p_point, float p_z_depth) const { // get our ARVRServer ARVRServer *arvr_server = ARVRServer::get_singleton(); ERR_FAIL_NULL_V(arvr_server, Vector3()); @@ -135,7 +135,7 @@ Vector3 ARVRCamera::project_position(const Point2 &p_point) const { Ref<ARVRInterface> arvr_interface = arvr_server->get_primary_interface(); if (arvr_interface.is_null()) { // we might be in the editor or have VR turned off, just call superclass - return Camera::project_position(p_point); + return Camera::project_position(p_point, p_z_depth); } if (!is_inside_tree()) { @@ -155,7 +155,7 @@ Vector3 ARVRCamera::project_position(const Point2 &p_point) const { point.y = (1.0 - (p_point.y / viewport_size.y)) * 2.0 - 1.0; point *= vp_size; - Vector3 p(point.x, point.y, -get_znear()); + Vector3 p(point.x, point.y, -p_z_depth); return get_camera_transform().xform(p); }; @@ -390,7 +390,7 @@ String ARVRController::get_configuration_warning() const { }; ARVRController::ARVRController() { - controller_id = 0; + controller_id = 1; is_active = true; button_states = 0; }; @@ -530,7 +530,7 @@ Ref<Mesh> ARVRAnchor::get_mesh() const { } ARVRAnchor::ARVRAnchor() { - anchor_id = 0; + anchor_id = 1; is_active = true; }; diff --git a/scene/3d/arvr_nodes.h b/scene/3d/arvr_nodes.h index 0833e18d48..8e735f7110 100644 --- a/scene/3d/arvr_nodes.h +++ b/scene/3d/arvr_nodes.h @@ -55,7 +55,7 @@ public: virtual Vector3 project_local_ray_normal(const Point2 &p_pos) const; virtual Point2 unproject_position(const Vector3 &p_pos) const; - virtual Vector3 project_position(const Point2 &p_point) const; + virtual Vector3 project_position(const Point2 &p_point, float p_z_depth = 0) const; virtual Vector<Plane> get_frustum() const; ARVRCamera(); diff --git a/scene/3d/baked_lightmap.cpp b/scene/3d/baked_lightmap.cpp index d66e6cc83d..2b12e78158 100644 --- a/scene/3d/baked_lightmap.cpp +++ b/scene/3d/baked_lightmap.cpp @@ -173,7 +173,7 @@ void BakedLightmapData::_bind_methods() { ADD_PROPERTY(PropertyInfo(Variant::AABB, "bounds", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_NOEDITOR), "set_bounds", "get_bounds"); ADD_PROPERTY(PropertyInfo(Variant::TRANSFORM, "cell_space_transform", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_NOEDITOR), "set_cell_space_transform", "get_cell_space_transform"); ADD_PROPERTY(PropertyInfo(Variant::INT, "cell_subdiv", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_NOEDITOR), "set_cell_subdiv", "get_cell_subdiv"); - ADD_PROPERTY(PropertyInfo(Variant::REAL, "energy", PROPERTY_HINT_RANGE, "0,16,0.01"), "set_energy", "get_energy"); + ADD_PROPERTY(PropertyInfo(Variant::REAL, "energy", PROPERTY_HINT_RANGE, "0,16,0.01,or_greater"), "set_energy", "get_energy"); ADD_PROPERTY(PropertyInfo(Variant::POOL_BYTE_ARRAY, "octree", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_NOEDITOR), "set_octree", "get_octree"); ADD_PROPERTY(PropertyInfo(Variant::ARRAY, "user_data", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_NOEDITOR | PROPERTY_USAGE_INTERNAL), "_set_user_data", "_get_user_data"); } diff --git a/scene/3d/camera.cpp b/scene/3d/camera.cpp index 8b91f56344..c7d6919a2b 100644 --- a/scene/3d/camera.cpp +++ b/scene/3d/camera.cpp @@ -106,9 +106,15 @@ void Camera::_notification(int p_what) { case NOTIFICATION_ENTER_WORLD: { - bool first_camera = get_viewport()->_camera_add(this); - if (!get_tree()->is_node_being_edited(this) && (current || first_camera)) - make_current(); + // Needs to track the Viewport because it's needed on NOTIFICATION_EXIT_WORLD + // and Spatial will handle it first, including clearing its reference to the Viewport, + // therefore making it impossible to subclasses to access it + viewport = get_viewport(); + ERR_FAIL_COND(!viewport); + + bool first_camera = viewport->_camera_add(this); + if (current || first_camera) + viewport->_camera_set(this); } break; case NOTIFICATION_TRANSFORM_CHANGED: { @@ -130,17 +136,20 @@ void Camera::_notification(int p_what) { } } - get_viewport()->_camera_remove(this); + if (viewport) { + viewport->_camera_remove(this); + viewport = NULL; + } } break; case NOTIFICATION_BECAME_CURRENT: { - if (get_world().is_valid()) { - get_world()->_register_camera(this); + if (viewport) { + viewport->find_world()->_register_camera(this); } } break; case NOTIFICATION_LOST_CURRENT: { - if (get_world().is_valid()) { - get_world()->_remove_camera(this); + if (viewport) { + viewport->find_world()->_remove_camera(this); } } break; } @@ -255,8 +264,6 @@ bool Camera::is_current() const { return get_viewport()->get_camera() == this; } else return current; - - return false; } bool Camera::_can_gizmo_scale() const { @@ -391,13 +398,17 @@ Point2 Camera::unproject_position(const Vector3 &p_pos) const { return res; } -Vector3 Camera::project_position(const Point2 &p_point) const { +Vector3 Camera::project_position(const Point2 &p_point, float p_z_depth) const { if (!is_inside_tree()) { ERR_EXPLAIN("Camera is not inside scene."); ERR_FAIL_COND_V(!is_inside_tree(), Vector3()); } + if (p_z_depth == 0) { + return get_global_transform().origin; + } + Size2 viewport_size = get_viewport()->get_visible_rect().size; CameraMatrix cm; @@ -415,7 +426,7 @@ Vector3 Camera::project_position(const Point2 &p_point) const { point.y = (1.0 - (p_point.y / viewport_size.y)) * 2.0 - 1.0; point *= vp_size; - Vector3 p(point.x, point.y, -near); + Vector3 p(point.x, point.y, -p_z_depth); return get_camera_transform().xform(p); } @@ -490,7 +501,7 @@ void Camera::_bind_methods() { ClassDB::bind_method(D_METHOD("project_ray_origin", "screen_point"), &Camera::project_ray_origin); ClassDB::bind_method(D_METHOD("unproject_position", "world_point"), &Camera::unproject_position); ClassDB::bind_method(D_METHOD("is_position_behind", "world_point"), &Camera::is_position_behind); - ClassDB::bind_method(D_METHOD("project_position", "screen_point"), &Camera::project_position); + ClassDB::bind_method(D_METHOD("project_position", "screen_point", "z_depth"), &Camera::project_position, DEFVAL(0)); ClassDB::bind_method(D_METHOD("set_perspective", "fov", "z_near", "z_far"), &Camera::set_perspective); ClassDB::bind_method(D_METHOD("set_orthogonal", "size", "z_near", "z_far"), &Camera::set_orthogonal); ClassDB::bind_method(D_METHOD("set_frustum", "size", "offset", "z_near", "z_far"), &Camera::set_frustum); @@ -524,6 +535,7 @@ void Camera::_bind_methods() { ClassDB::bind_method(D_METHOD("set_doppler_tracking", "mode"), &Camera::set_doppler_tracking); ClassDB::bind_method(D_METHOD("get_doppler_tracking"), &Camera::get_doppler_tracking); ClassDB::bind_method(D_METHOD("get_frustum"), &Camera::get_frustum); + ClassDB::bind_method(D_METHOD("get_camera_rid"), &Camera::get_camera); ClassDB::bind_method(D_METHOD("set_cull_mask_bit", "layer", "enable"), &Camera::set_cull_mask_bit); ClassDB::bind_method(D_METHOD("get_cull_mask_bit", "layer"), &Camera::get_cull_mask_bit); @@ -689,6 +701,7 @@ Camera::Camera() { near = 0; far = 0; current = false; + viewport = NULL; force_change = false; mode = PROJECTION_PERSPECTIVE; set_perspective(70.0, 0.05, 100.0); @@ -856,6 +869,11 @@ void ClippedCamera::clear_exceptions() { exclude.clear(); } +float ClippedCamera::get_clip_offset() const { + + return clip_offset; +} + void ClippedCamera::set_clip_to_areas(bool p_clip) { clip_to_areas = p_clip; @@ -899,6 +917,8 @@ void ClippedCamera::_bind_methods() { ClassDB::bind_method(D_METHOD("set_clip_to_areas", "enable"), &ClippedCamera::set_clip_to_areas); ClassDB::bind_method(D_METHOD("is_clip_to_areas_enabled"), &ClippedCamera::is_clip_to_areas_enabled); + ClassDB::bind_method(D_METHOD("get_clip_offset"), &ClippedCamera::get_clip_offset); + ClassDB::bind_method(D_METHOD("set_clip_to_bodies", "enable"), &ClippedCamera::set_clip_to_bodies); ClassDB::bind_method(D_METHOD("is_clip_to_bodies_enabled"), &ClippedCamera::is_clip_to_bodies_enabled); diff --git a/scene/3d/camera.h b/scene/3d/camera.h index fe8cb84f0d..c0a4f77435 100644 --- a/scene/3d/camera.h +++ b/scene/3d/camera.h @@ -64,6 +64,7 @@ public: private: bool force_change; bool current; + Viewport *viewport; Projection mode; @@ -143,7 +144,7 @@ public: virtual Vector3 project_local_ray_normal(const Point2 &p_pos) const; virtual Point2 unproject_position(const Vector3 &p_pos) const; bool is_position_behind(const Vector3 &p_pos) const; - virtual Vector3 project_position(const Point2 &p_point) const; + virtual Vector3 project_position(const Point2 &p_point, float p_z_depth = 0) const; Vector<Vector3> get_near_plane_points() const; @@ -233,6 +234,8 @@ public: void remove_exception(const Object *p_object); void clear_exceptions(); + float get_clip_offset() const; + ClippedCamera(); ~ClippedCamera(); }; diff --git a/scene/3d/collision_shape.cpp b/scene/3d/collision_shape.cpp index 3190e1e0b2..219ea56681 100644 --- a/scene/3d/collision_shape.cpp +++ b/scene/3d/collision_shape.cpp @@ -228,7 +228,9 @@ void CollisionShape::_update_debug_shape() { void CollisionShape::_shape_changed() { // If this is a heightfield shape our center may have changed - _update_in_shape_owner(true); + if (parent) { + _update_in_shape_owner(true); + } if (is_inside_tree() && get_tree()->is_debugging_collisions_hint() && !debug_shape_dirty) { debug_shape_dirty = true; diff --git a/scene/3d/cpu_particles.cpp b/scene/3d/cpu_particles.cpp index d4e242dcb7..cff147ba74 100644 --- a/scene/3d/cpu_particles.cpp +++ b/scene/3d/cpu_particles.cpp @@ -212,7 +212,7 @@ String CPUParticles::get_configuration_warning() const { get_param_curve(PARAM_ANIM_SPEED).is_valid() || get_param_curve(PARAM_ANIM_OFFSET).is_valid())) { if (warnings != String()) warnings += "\n"; - warnings += "- " + TTR("CPUParticles animation requires the usage of a SpatialMaterial with \"Billboard Particles\" enabled."); + warnings += "- " + TTR("CPUParticles animation requires the usage of a SpatialMaterial whose Billboard Mode is set to \"Particle Billboard\"."); } return warnings; @@ -302,9 +302,9 @@ void CPUParticles::set_param_curve(Parameter p_param, const Ref<Curve> &p_curve) case PARAM_ANGULAR_VELOCITY: { _adjust_curve_range(p_curve, -360, 360); } break; - /*case PARAM_ORBIT_VELOCITY: { + case PARAM_ORBIT_VELOCITY: { _adjust_curve_range(p_curve, -500, 500); - } break;*/ + } break; case PARAM_LINEAR_ACCEL: { _adjust_curve_range(p_curve, -200, 200); } break; @@ -461,11 +461,10 @@ void CPUParticles::_validate_property(PropertyInfo &property) const { if (property.name == "emission_normals" && emission_shape != EMISSION_SHAPE_DIRECTED_POINTS) { property.usage = 0; } - /* + if (property.name.begins_with("orbit_") && !flags[FLAG_DISABLE_Z]) { property.usage = 0; } - */ } static uint32_t idhash(uint32_t x) { @@ -515,6 +514,8 @@ void CPUParticles::_particles_process(float p_delta) { velocity_xform = emission_xform.basis; } + float system_phase = time / lifetime; + for (int i = 0; i < pcount; i++) { Particle &p = parray[i]; @@ -522,21 +523,26 @@ void CPUParticles::_particles_process(float p_delta) { if (!emitting && !p.active) continue; - float restart_time = (float(i) / float(pcount)) * lifetime; float local_delta = p_delta; + // The phase is a ratio between 0 (birth) and 1 (end of life) for each particle. + // While we use time in tests later on, for randomness we use the phase as done in the + // original shader code, and we later multiply by lifetime to get the time. + float restart_phase = float(i) / float(pcount); + if (randomness_ratio > 0.0) { uint32_t seed = cycle; - if (restart_time >= time) { + if (restart_phase >= system_phase) { seed -= uint32_t(1); } seed *= uint32_t(pcount); seed += uint32_t(i); float random = float(idhash(seed) % uint32_t(65536)) / 65536.0; - restart_time += randomness_ratio * random * 1.0 / float(pcount); + restart_phase += randomness_ratio * random * 1.0 / float(pcount); } - restart_time *= (1.0 - explosiveness_ratio); + restart_phase *= (1.0 - explosiveness_ratio); + float restart_time = restart_phase * lifetime; bool restart = false; if (time > prev_time) { @@ -691,16 +697,14 @@ void CPUParticles::_particles_process(float p_delta) { if (curve_parameters[PARAM_INITIAL_LINEAR_VELOCITY].is_valid()) { tex_linear_velocity = curve_parameters[PARAM_INITIAL_LINEAR_VELOCITY]->interpolate(p.custom[1]); } - /* - float tex_orbit_velocity = 0.0; + float tex_orbit_velocity = 0.0; if (flags[FLAG_DISABLE_Z]) { - - if (curve_parameters[PARAM_INITIAL_ORBIT_VELOCITY].is_valid()) { - tex_orbit_velocity = curve_parameters[PARAM_INITIAL_ORBIT_VELOCITY]->interpolate(p.custom[1]); + if (curve_parameters[PARAM_ORBIT_VELOCITY].is_valid()) { + tex_orbit_velocity = curve_parameters[PARAM_ORBIT_VELOCITY]->interpolate(p.custom[1]); } } -*/ + float tex_angular_velocity = 0.0; if (curve_parameters[PARAM_ANGULAR_VELOCITY].is_valid()) { tex_angular_velocity = curve_parameters[PARAM_ANGULAR_VELOCITY]->interpolate(p.custom[1]); @@ -754,8 +758,9 @@ void CPUParticles::_particles_process(float p_delta) { //apply tangential acceleration; if (flags[FLAG_DISABLE_Z]) { - Vector3 yx = Vector3(diff.y, 0, diff.x); - force += yx.length() > 0.0 ? (yx * Vector3(-1.0, 0, 1.0)) * ((parameters[PARAM_TANGENTIAL_ACCEL] + tex_tangential_accel) * Math::lerp(1.0f, rand_from_seed(alt_seed), randomness[PARAM_TANGENTIAL_ACCEL])) : Vector3(); + Vector2 yx = Vector2(diff.y, diff.x); + Vector2 yx2 = (yx * Vector2(-1.0, 1.0)).normalized(); + force += yx.length() > 0.0 ? Vector3(yx2.x, yx2.y, 0.0) * ((parameters[PARAM_TANGENTIAL_ACCEL] + tex_tangential_accel) * Math::lerp(1.0f, rand_from_seed(alt_seed), randomness[PARAM_TANGENTIAL_ACCEL])) : Vector3(); } else { Vector3 crossDiff = diff.normalized().cross(gravity.normalized()); @@ -764,18 +769,18 @@ void CPUParticles::_particles_process(float p_delta) { //apply attractor forces p.velocity += force * local_delta; //orbit velocity -#if 0 if (flags[FLAG_DISABLE_Z]) { - - float orbit_amount = (orbit_velocity + tex_orbit_velocity) * mix(1.0, rand_from_seed(alt_seed), orbit_velocity_random); + float orbit_amount = (parameters[PARAM_ORBIT_VELOCITY] + tex_orbit_velocity) * Math::lerp(1.0f, rand_from_seed(alt_seed), randomness[PARAM_ORBIT_VELOCITY]); if (orbit_amount != 0.0) { - float ang = orbit_amount * DELTA * pi * 2.0; - mat2 rot = mat2(vec2(cos(ang), -sin(ang)), vec2(sin(ang), cos(ang))); - TRANSFORM[3].xy -= diff.xy; - TRANSFORM[3].xy += rot * diff.xy; + float ang = orbit_amount * local_delta * Math_PI * 2.0; + // Not sure why the ParticlesMaterial code uses a clockwise rotation matrix, + // but we use -ang here to reproduce its behavior. + Transform2D rot = Transform2D(-ang, Vector2()); + Vector2 rotv = rot.basis_xform(Vector2(diff.x, diff.y)); + p.transform.origin -= Vector3(diff.x, diff.y, 0); + p.transform.origin += Vector3(rotv.x, rotv.y, 0); } } -#endif if (curve_parameters[PARAM_INITIAL_LINEAR_VELOCITY].is_valid()) { p.velocity = p.velocity.normalized() * tex_linear_velocity; } @@ -910,11 +915,6 @@ void CPUParticles::_update_particle_data_buffer() { PoolVector<Particle>::Read r = particles.read(); float *ptr = w.ptr(); - Transform un_transform; - if (!local_coords) { - un_transform = get_global_transform().affine_inverse(); - } - if (draw_order != DRAW_ORDER_INDEX) { ow = particle_order.write(); order = ow.ptr(); @@ -932,7 +932,12 @@ void CPUParticles::_update_particle_data_buffer() { Vector3 dir = c->get_global_transform().basis.get_axis(2); //far away to close if (local_coords) { - dir = un_transform.basis.xform(dir).normalized(); + + // will look different from Particles in editor as this is based on the camera in the scenetree + // and not the editor camera + dir = inv_emission_transform.xform(dir).normalized(); + } else { + dir = dir.normalized(); } SortArray<int, SortAxis> sorter; @@ -950,7 +955,7 @@ void CPUParticles::_update_particle_data_buffer() { Transform t = r[idx].transform; if (!local_coords) { - t = un_transform * t; + t = inv_emission_transform * t; } if (r[idx].active) { @@ -1116,6 +1121,46 @@ void CPUParticles::_notification(int p_what) { _update_particle_data_buffer(); } } + + if (p_what == NOTIFICATION_TRANSFORM_CHANGED) { + + inv_emission_transform = get_global_transform().affine_inverse(); + + if (!local_coords) { + + int pc = particles.size(); + + PoolVector<float>::Write w = particle_data.write(); + PoolVector<Particle>::Read r = particles.read(); + float *ptr = w.ptr(); + + for (int i = 0; i < pc; i++) { + + Transform t = inv_emission_transform * r[i].transform; + + if (r[i].active) { + ptr[0] = t.basis.elements[0][0]; + ptr[1] = t.basis.elements[0][1]; + ptr[2] = t.basis.elements[0][2]; + ptr[3] = t.origin.x; + ptr[4] = t.basis.elements[1][0]; + ptr[5] = t.basis.elements[1][1]; + ptr[6] = t.basis.elements[1][2]; + ptr[7] = t.origin.y; + ptr[8] = t.basis.elements[2][0]; + ptr[9] = t.basis.elements[2][1]; + ptr[10] = t.basis.elements[2][2]; + ptr[11] = t.origin.z; + } else { + zeromem(ptr, sizeof(float) * 12); + } + + ptr += 17; + } + + can_update = true; + } + } } void CPUParticles::convert_from_particles(Node *p_particles) { @@ -1171,7 +1216,7 @@ void CPUParticles::convert_from_particles(Node *p_particles) { CONVERT_PARAM(PARAM_INITIAL_LINEAR_VELOCITY); CONVERT_PARAM(PARAM_ANGULAR_VELOCITY); - // CONVERT_PARAM(PARAM_ORBIT_VELOCITY); + CONVERT_PARAM(PARAM_ORBIT_VELOCITY); CONVERT_PARAM(PARAM_LINEAR_ACCEL); CONVERT_PARAM(PARAM_RADIAL_ACCEL); CONVERT_PARAM(PARAM_TANGENTIAL_ACCEL); @@ -1314,12 +1359,10 @@ void CPUParticles::_bind_methods() { ADD_PROPERTYI(PropertyInfo(Variant::REAL, "angular_velocity", PROPERTY_HINT_RANGE, "-720,720,0.01,or_lesser,or_greater"), "set_param", "get_param", PARAM_ANGULAR_VELOCITY); ADD_PROPERTYI(PropertyInfo(Variant::REAL, "angular_velocity_random", PROPERTY_HINT_RANGE, "0,1,0.01"), "set_param_randomness", "get_param_randomness", PARAM_ANGULAR_VELOCITY); ADD_PROPERTYI(PropertyInfo(Variant::OBJECT, "angular_velocity_curve", PROPERTY_HINT_RESOURCE_TYPE, "Curve"), "set_param_curve", "get_param_curve", PARAM_ANGULAR_VELOCITY); - /* ADD_GROUP("Orbit Velocity", "orbit_"); ADD_PROPERTYI(PropertyInfo(Variant::REAL, "orbit_velocity", PROPERTY_HINT_RANGE, "-1000,1000,0.01,or_lesser,or_greater"), "set_param", "get_param", PARAM_ORBIT_VELOCITY); ADD_PROPERTYI(PropertyInfo(Variant::REAL, "orbit_velocity_random", PROPERTY_HINT_RANGE, "0,1,0.01"), "set_param_randomness", "get_param_randomness", PARAM_ORBIT_VELOCITY); ADD_PROPERTYI(PropertyInfo(Variant::OBJECT, "orbit_velocity_curve", PROPERTY_HINT_RESOURCE_TYPE, "Curve"), "set_param_curve", "get_param_curve", PARAM_ORBIT_VELOCITY); -*/ ADD_GROUP("Linear Accel", "linear_"); ADD_PROPERTYI(PropertyInfo(Variant::REAL, "linear_accel", PROPERTY_HINT_RANGE, "-100,100,0.01,or_lesser,or_greater"), "set_param", "get_param", PARAM_LINEAR_ACCEL); ADD_PROPERTYI(PropertyInfo(Variant::REAL, "linear_accel_random", PROPERTY_HINT_RANGE, "0,1,0.01"), "set_param_randomness", "get_param_randomness", PARAM_LINEAR_ACCEL); @@ -1362,7 +1405,7 @@ void CPUParticles::_bind_methods() { BIND_ENUM_CONSTANT(PARAM_INITIAL_LINEAR_VELOCITY); BIND_ENUM_CONSTANT(PARAM_ANGULAR_VELOCITY); - //BIND_ENUM_CONSTANT(PARAM_ORBIT_VELOCITY); + BIND_ENUM_CONSTANT(PARAM_ORBIT_VELOCITY); BIND_ENUM_CONSTANT(PARAM_LINEAR_ACCEL); BIND_ENUM_CONSTANT(PARAM_RADIAL_ACCEL); BIND_ENUM_CONSTANT(PARAM_TANGENTIAL_ACCEL); @@ -1376,6 +1419,7 @@ void CPUParticles::_bind_methods() { BIND_ENUM_CONSTANT(FLAG_ALIGN_Y_TO_VELOCITY); BIND_ENUM_CONSTANT(FLAG_ROTATE_Y); + BIND_ENUM_CONSTANT(FLAG_DISABLE_Z); BIND_ENUM_CONSTANT(FLAG_MAX); BIND_ENUM_CONSTANT(EMISSION_SHAPE_POINT); @@ -1393,6 +1437,8 @@ CPUParticles::CPUParticles() { cycle = 0; redraw = false; + set_notify_transform(true); + multimesh = VisualServer::get_singleton()->multimesh_create(); VisualServer::get_singleton()->multimesh_set_visible_instances(multimesh, 0); set_base(multimesh); @@ -1414,7 +1460,7 @@ CPUParticles::CPUParticles() { set_spread(45); set_flatness(0); set_param(PARAM_INITIAL_LINEAR_VELOCITY, 1); - //set_param(PARAM_ORBIT_VELOCITY, 0); + set_param(PARAM_ORBIT_VELOCITY, 0); set_param(PARAM_LINEAR_ACCEL, 0); set_param(PARAM_RADIAL_ACCEL, 0); set_param(PARAM_TANGENTIAL_ACCEL, 0); diff --git a/scene/3d/cpu_particles.h b/scene/3d/cpu_particles.h index b863a3cb3f..6f267102fa 100644 --- a/scene/3d/cpu_particles.h +++ b/scene/3d/cpu_particles.h @@ -53,7 +53,7 @@ public: PARAM_INITIAL_LINEAR_VELOCITY, PARAM_ANGULAR_VELOCITY, - //PARAM_ORBIT_VELOCITY, + PARAM_ORBIT_VELOCITY, PARAM_LINEAR_ACCEL, PARAM_RADIAL_ACCEL, PARAM_TANGENTIAL_ACCEL, @@ -116,7 +116,7 @@ private: const Particle *particles; bool operator()(int p_a, int p_b) const { - return particles[p_a].time < particles[p_b].time; + return particles[p_a].time > particles[p_b].time; } }; @@ -142,6 +142,8 @@ private: int fixed_fps; bool fractional_delta; + Transform inv_emission_transform; + volatile bool can_update; DrawOrder draw_order; diff --git a/scene/3d/gi_probe.cpp b/scene/3d/gi_probe.cpp index c491275f00..414e932f61 100644 --- a/scene/3d/gi_probe.cpp +++ b/scene/3d/gi_probe.cpp @@ -539,7 +539,7 @@ void GIProbe::_bind_methods() { ADD_PROPERTY(PropertyInfo(Variant::INT, "subdiv", PROPERTY_HINT_ENUM, "64,128,256,512"), "set_subdiv", "get_subdiv"); ADD_PROPERTY(PropertyInfo(Variant::VECTOR3, "extents"), "set_extents", "get_extents"); ADD_PROPERTY(PropertyInfo(Variant::INT, "dynamic_range", PROPERTY_HINT_RANGE, "1,16,1"), "set_dynamic_range", "get_dynamic_range"); - ADD_PROPERTY(PropertyInfo(Variant::REAL, "energy", PROPERTY_HINT_RANGE, "0,16,0.01"), "set_energy", "get_energy"); + ADD_PROPERTY(PropertyInfo(Variant::REAL, "energy", PROPERTY_HINT_RANGE, "0,16,0.01,or_greater"), "set_energy", "get_energy"); ADD_PROPERTY(PropertyInfo(Variant::REAL, "propagation", PROPERTY_HINT_RANGE, "0,1,0.01"), "set_propagation", "get_propagation"); ADD_PROPERTY(PropertyInfo(Variant::REAL, "bias", PROPERTY_HINT_RANGE, "0,4,0.001"), "set_bias", "get_bias"); ADD_PROPERTY(PropertyInfo(Variant::REAL, "normal_bias", PROPERTY_HINT_RANGE, "0,4,0.001"), "set_normal_bias", "get_normal_bias"); diff --git a/scene/3d/light.cpp b/scene/3d/light.cpp index 2377068ede..2e64872616 100644 --- a/scene/3d/light.cpp +++ b/scene/3d/light.cpp @@ -249,8 +249,8 @@ void Light::_bind_methods() { ADD_GROUP("Light", "light_"); ADD_PROPERTY(PropertyInfo(Variant::COLOR, "light_color", PROPERTY_HINT_COLOR_NO_ALPHA), "set_color", "get_color"); - ADD_PROPERTYI(PropertyInfo(Variant::REAL, "light_energy", PROPERTY_HINT_RANGE, "0,16,0.01"), "set_param", "get_param", PARAM_ENERGY); - ADD_PROPERTYI(PropertyInfo(Variant::REAL, "light_indirect_energy", PROPERTY_HINT_RANGE, "0,16,0.01"), "set_param", "get_param", PARAM_INDIRECT_ENERGY); + ADD_PROPERTYI(PropertyInfo(Variant::REAL, "light_energy", PROPERTY_HINT_RANGE, "0,16,0.01,or_greater"), "set_param", "get_param", PARAM_ENERGY); + ADD_PROPERTYI(PropertyInfo(Variant::REAL, "light_indirect_energy", PROPERTY_HINT_RANGE, "0,16,0.01,or_greater"), "set_param", "get_param", PARAM_INDIRECT_ENERGY); ADD_PROPERTY(PropertyInfo(Variant::BOOL, "light_negative"), "set_negative", "is_negative"); ADD_PROPERTYI(PropertyInfo(Variant::REAL, "light_specular", PROPERTY_HINT_RANGE, "0,1,0.01"), "set_param", "get_param", PARAM_SPECULAR); ADD_PROPERTY(PropertyInfo(Variant::INT, "light_bake_mode", PROPERTY_HINT_ENUM, "Disable,Indirect,All"), "set_bake_mode", "get_bake_mode"); diff --git a/scene/3d/navigation_mesh.cpp b/scene/3d/navigation_mesh.cpp index 003f76664d..f82543b789 100644 --- a/scene/3d/navigation_mesh.cpp +++ b/scene/3d/navigation_mesh.cpp @@ -73,6 +73,41 @@ int NavigationMesh::get_sample_partition_type() const { return static_cast<int>(partition_type); } +void NavigationMesh::set_parsed_geometry_type(int p_value) { + ERR_FAIL_COND(p_value >= PARSED_GEOMETRY_MAX); + parsed_geometry_type = static_cast<ParsedGeometryType>(p_value); + _change_notify(); +} + +int NavigationMesh::get_parsed_geometry_type() const { + return parsed_geometry_type; +} + +void NavigationMesh::set_collision_mask(uint32_t p_mask) { + + collision_mask = p_mask; +} + +uint32_t NavigationMesh::get_collision_mask() const { + + return collision_mask; +} + +void NavigationMesh::set_collision_mask_bit(int p_bit, bool p_value) { + + uint32_t mask = get_collision_mask(); + if (p_value) + mask |= 1 << p_bit; + else + mask &= ~(1 << p_bit); + set_collision_mask(mask); +} + +bool NavigationMesh::get_collision_mask_bit(int p_bit) const { + + return get_collision_mask() & (1 << p_bit); +} + void NavigationMesh::set_cell_size(float p_value) { cell_size = p_value; } @@ -204,6 +239,7 @@ bool NavigationMesh::get_filter_walkable_low_height_spans() const { void NavigationMesh::set_vertices(const PoolVector<Vector3> &p_vertices) { vertices = p_vertices; + _change_notify(); } PoolVector<Vector3> NavigationMesh::get_vertices() const { @@ -217,6 +253,7 @@ void NavigationMesh::_set_polygons(const Array &p_array) { for (int i = 0; i < p_array.size(); i++) { polygons.write[i].indices = p_array[i]; } + _change_notify(); } Array NavigationMesh::_get_polygons() const { @@ -235,6 +272,7 @@ void NavigationMesh::add_polygon(const Vector<int> &p_polygon) { Polygon polygon; polygon.indices = p_polygon; polygons.push_back(polygon); + _change_notify(); } int NavigationMesh::get_polygon_count() const { @@ -340,6 +378,15 @@ void NavigationMesh::_bind_methods() { ClassDB::bind_method(D_METHOD("set_sample_partition_type", "sample_partition_type"), &NavigationMesh::set_sample_partition_type); ClassDB::bind_method(D_METHOD("get_sample_partition_type"), &NavigationMesh::get_sample_partition_type); + ClassDB::bind_method(D_METHOD("set_parsed_geometry_type", "geometry_type"), &NavigationMesh::set_parsed_geometry_type); + ClassDB::bind_method(D_METHOD("get_parsed_geometry_type"), &NavigationMesh::get_parsed_geometry_type); + + ClassDB::bind_method(D_METHOD("set_collision_mask", "mask"), &NavigationMesh::set_collision_mask); + ClassDB::bind_method(D_METHOD("get_collision_mask"), &NavigationMesh::get_collision_mask); + + 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_cell_size", "cell_size"), &NavigationMesh::set_cell_size); ClassDB::bind_method(D_METHOD("get_cell_size"), &NavigationMesh::get_cell_size); @@ -405,10 +452,16 @@ void NavigationMesh::_bind_methods() { BIND_CONSTANT(SAMPLE_PARTITION_MONOTONE); BIND_CONSTANT(SAMPLE_PARTITION_LAYERS); + BIND_CONSTANT(PARSED_GEOMETRY_MESH_INSTANCES); + BIND_CONSTANT(PARSED_GEOMETRY_STATIC_COLLIDERS); + BIND_CONSTANT(PARSED_GEOMETRY_BOTH); + ADD_PROPERTY(PropertyInfo(Variant::POOL_VECTOR3_ARRAY, "vertices", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_NOEDITOR | PROPERTY_USAGE_INTERNAL), "set_vertices", "get_vertices"); ADD_PROPERTY(PropertyInfo(Variant::ARRAY, "polygons", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_NOEDITOR | PROPERTY_USAGE_INTERNAL), "_set_polygons", "_get_polygons"); 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::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"); @@ -429,6 +482,15 @@ void NavigationMesh::_bind_methods() { ADD_PROPERTY(PropertyInfo(Variant::BOOL, "filter/filter_walkable_low_height_spans"), "set_filter_walkable_low_height_spans", "get_filter_walkable_low_height_spans"); } +void NavigationMesh::_validate_property(PropertyInfo &property) const { + if (property.name == "geometry/collision_mask") { + if (parsed_geometry_type == PARSED_GEOMETRY_MESH_INSTANCES) { + property.usage = 0; + return; + } + } +} + NavigationMesh::NavigationMesh() { cell_size = 0.3f; cell_height = 0.2f; @@ -445,7 +507,8 @@ NavigationMesh::NavigationMesh() { detail_sample_max_error = 1.0f; partition_type = SAMPLE_PARTITION_WATERSHED; - + parsed_geometry_type = PARSED_GEOMETRY_MESH_INSTANCES; + collision_mask = 0xFFFFFFFF; filter_low_hanging_obstacles = false; filter_ledge_spans = false; filter_walkable_low_height_spans = false; @@ -566,8 +629,17 @@ void NavigationMeshInstance::set_navigation_mesh(const Ref<NavigationMesh> &p_na navigation->navmesh_remove(nav_id); nav_id = -1; } + + if (navmesh.is_valid()) { + navmesh->remove_change_receptor(this); + } + navmesh = p_navmesh; + if (navmesh.is_valid()) { + navmesh->add_change_receptor(this); + } + if (navigation && navmesh.is_valid() && enabled) { nav_id = navigation->navmesh_add(navmesh, get_relative_transform(navigation), this); } @@ -617,6 +689,11 @@ void NavigationMeshInstance::_bind_methods() { ADD_PROPERTY(PropertyInfo(Variant::BOOL, "enabled"), "set_enabled", "is_enabled"); } +void NavigationMeshInstance::_changed_callback(Object *p_changed, const char *p_prop) { + update_gizmo(); + update_configuration_warning(); +} + NavigationMeshInstance::NavigationMeshInstance() { debug_view = NULL; @@ -625,3 +702,8 @@ NavigationMeshInstance::NavigationMeshInstance() { enabled = true; set_notify_transform(true); } + +NavigationMeshInstance::~NavigationMeshInstance() { + if (navmesh.is_valid()) + navmesh->remove_change_receptor(this); +} diff --git a/scene/3d/navigation_mesh.h b/scene/3d/navigation_mesh.h index 74531e2423..5fbf3998ff 100644 --- a/scene/3d/navigation_mesh.h +++ b/scene/3d/navigation_mesh.h @@ -57,6 +57,7 @@ class NavigationMesh : public Resource { protected: static void _bind_methods(); + virtual void _validate_property(PropertyInfo &property) const; void _set_polygons(const Array &p_array); Array _get_polygons() const; @@ -69,6 +70,13 @@ public: SAMPLE_PARTITION_MAX }; + enum ParsedGeometryType { + PARSED_GEOMETRY_MESH_INSTANCES = 0, + PARSED_GEOMETRY_STATIC_COLLIDERS, + PARSED_GEOMETRY_BOTH, + PARSED_GEOMETRY_MAX + }; + protected: float cell_size; float cell_height; @@ -85,6 +93,8 @@ protected: float detail_sample_max_error; SamplePartitionType partition_type; + ParsedGeometryType parsed_geometry_type; + uint32_t collision_mask; bool filter_low_hanging_obstacles; bool filter_ledge_spans; @@ -95,6 +105,15 @@ public: void set_sample_partition_type(int p_value); int get_sample_partition_type() const; + void set_parsed_geometry_type(int p_value); + int get_parsed_geometry_type() const; + + void set_collision_mask(uint32_t p_mask); + uint32_t get_collision_mask() const; + + void set_collision_mask_bit(int p_bit, bool p_value); + bool get_collision_mask_bit(int p_bit) const; + void set_cell_size(float p_value); float get_cell_size() const; @@ -174,6 +193,7 @@ class NavigationMeshInstance : public Spatial { protected: void _notification(int p_what); static void _bind_methods(); + void _changed_callback(Object *p_changed, const char *p_prop); public: void set_enabled(bool p_enabled); @@ -185,6 +205,7 @@ public: String get_configuration_warning() const; NavigationMeshInstance(); + ~NavigationMeshInstance(); }; #endif // NAVIGATION_MESH_H diff --git a/scene/3d/particles.cpp b/scene/3d/particles.cpp index 57ab01f7be..156560f802 100644 --- a/scene/3d/particles.cpp +++ b/scene/3d/particles.cpp @@ -268,7 +268,7 @@ String Particles::get_configuration_warning() const { process->get_param_texture(ParticlesMaterial::PARAM_ANIM_SPEED).is_valid() || process->get_param_texture(ParticlesMaterial::PARAM_ANIM_OFFSET).is_valid())) { if (warnings != String()) warnings += "\n"; - warnings += "- " + TTR("Particles animation requires the usage of a SpatialMaterial with \"Billboard Particles\" enabled."); + warnings += "- " + TTR("Particles animation requires the usage of a SpatialMaterial whose Billboard Mode is set to \"Particle Billboard\"."); } } diff --git a/scene/3d/physics_body.cpp b/scene/3d/physics_body.cpp index 57af951110..3624e04434 100644 --- a/scene/3d/physics_body.cpp +++ b/scene/3d/physics_body.cpp @@ -192,8 +192,8 @@ void StaticBody::set_friction(real_t p_friction) { return; } - ERR_EXPLAIN("The method set_friction has been deprecated and will be removed in the future, use physics material instead.") - WARN_DEPRECATED + ERR_EXPLAIN("The method set_friction has been deprecated and will be removed in the future, use physics material instead."); + WARN_DEPRECATED; ERR_FAIL_COND(p_friction < 0 || p_friction > 1); @@ -206,8 +206,8 @@ void StaticBody::set_friction(real_t p_friction) { real_t StaticBody::get_friction() const { - ERR_EXPLAIN("The method get_friction has been deprecated and will be removed in the future, use physics material instead.") - WARN_DEPRECATED + ERR_EXPLAIN("The method get_friction has been deprecated and will be removed in the future, use physics material instead."); + WARN_DEPRECATED; if (physics_material_override.is_null()) { return 1; @@ -222,8 +222,8 @@ void StaticBody::set_bounce(real_t p_bounce) { return; } - ERR_EXPLAIN("The method set_bounce has been deprecated and will be removed in the future, use physics material instead.") - WARN_DEPRECATED + ERR_EXPLAIN("The method set_bounce has been deprecated and will be removed in the future, use physics material instead."); + WARN_DEPRECATED; ERR_FAIL_COND(p_bounce < 0 || p_bounce > 1); @@ -236,8 +236,8 @@ void StaticBody::set_bounce(real_t p_bounce) { real_t StaticBody::get_bounce() const { - ERR_EXPLAIN("The method get_bounce has been deprecated and will be removed in the future, use physics material instead.") - WARN_DEPRECATED + ERR_EXPLAIN("The method get_bounce has been deprecated and will be removed in the future, use physics material instead."); + WARN_DEPRECATED; if (physics_material_override.is_null()) { return 0; @@ -636,8 +636,8 @@ void RigidBody::set_friction(real_t p_friction) { return; } - ERR_EXPLAIN("The method set_friction has been deprecated and will be removed in the future, use physics material instead.") - WARN_DEPRECATED + ERR_EXPLAIN("The method set_friction has been deprecated and will be removed in the future, use physics material instead."); + WARN_DEPRECATED; ERR_FAIL_COND(p_friction < 0 || p_friction > 1); @@ -649,8 +649,8 @@ void RigidBody::set_friction(real_t p_friction) { } real_t RigidBody::get_friction() const { - ERR_EXPLAIN("The method get_friction has been deprecated and will be removed in the future, use physics material instead.") - WARN_DEPRECATED + ERR_EXPLAIN("The method get_friction has been deprecated and will be removed in the future, use physics material instead."); + WARN_DEPRECATED; if (physics_material_override.is_null()) { return 1; @@ -665,8 +665,8 @@ void RigidBody::set_bounce(real_t p_bounce) { return; } - ERR_EXPLAIN("The method set_bounce has been deprecated and will be removed in the future, use physics material instead.") - WARN_DEPRECATED + ERR_EXPLAIN("The method set_bounce has been deprecated and will be removed in the future, use physics material instead."); + WARN_DEPRECATED; ERR_FAIL_COND(p_bounce < 0 || p_bounce > 1); @@ -677,8 +677,8 @@ void RigidBody::set_bounce(real_t p_bounce) { physics_material_override->set_bounce(p_bounce); } real_t RigidBody::get_bounce() const { - ERR_EXPLAIN("The method get_bounce has been deprecated and will be removed in the future, use physics material instead.") - WARN_DEPRECATED + ERR_EXPLAIN("The method get_bounce has been deprecated and will be removed in the future, use physics material instead."); + WARN_DEPRECATED; if (physics_material_override.is_null()) { return 0; } diff --git a/scene/3d/proximity_group.cpp b/scene/3d/proximity_group.cpp index 12eab2e4e8..96dc3304f2 100644 --- a/scene/3d/proximity_group.cpp +++ b/scene/3d/proximity_group.cpp @@ -204,6 +204,7 @@ ProximityGroup::ProximityGroup() { group_version = 0; dispatch_mode = MODE_PROXY; + cell_size = 1.0; grid_radius = Vector3(1, 1, 1); set_notify_transform(true); }; diff --git a/scene/3d/spatial.cpp b/scene/3d/spatial.cpp index 05fd984f93..efd418e3c7 100644 --- a/scene/3d/spatial.cpp +++ b/scene/3d/spatial.cpp @@ -676,28 +676,29 @@ void Spatial::set_identity() { void Spatial::look_at(const Vector3 &p_target, const Vector3 &p_up) { - Transform lookat(get_global_transform()); - if (lookat.origin == p_target) { + Vector3 origin(get_global_transform().origin); + look_at_from_position(origin, p_target, p_up); +} + +void Spatial::look_at_from_position(const Vector3 &p_pos, const Vector3 &p_target, const Vector3 &p_up) { + + if (p_pos == p_target) { ERR_EXPLAIN("Node origin and target are in the same position, look_at() failed"); ERR_FAIL(); } - if (p_up.cross(p_target - lookat.origin) == Vector3()) { + if (p_up.cross(p_target - p_pos) == Vector3()) { ERR_EXPLAIN("Up vector and direction between node origin and target are aligned, look_at() failed"); ERR_FAIL(); } - Vector3 original_scale(lookat.basis.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); -} - -void Spatial::look_at_from_position(const Vector3 &p_pos, const Vector3 &p_target, const Vector3 &p_up) { Transform lookat; lookat.origin = p_pos; + + Vector3 original_scale(get_global_transform().basis.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); } diff --git a/scene/3d/vehicle_body.cpp b/scene/3d/vehicle_body.cpp index fde135c972..32b8219ee0 100644 --- a/scene/3d/vehicle_body.cpp +++ b/scene/3d/vehicle_body.cpp @@ -270,6 +270,8 @@ void VehicleWheel::_bind_methods() { ClassDB::bind_method(D_METHOD("get_skidinfo"), &VehicleWheel::get_skidinfo); + ClassDB::bind_method(D_METHOD("get_rpm"), &VehicleWheel::get_rpm); + ADD_PROPERTY(PropertyInfo(Variant::BOOL, "use_as_traction"), "set_use_as_traction", "is_used_as_traction"); ADD_PROPERTY(PropertyInfo(Variant::BOOL, "use_as_steering"), "set_use_as_steering", "is_used_as_steering"); ADD_GROUP("Wheel", "wheel_"); @@ -311,6 +313,11 @@ float VehicleWheel::get_skidinfo() const { return m_skidInfo; } +float VehicleWheel::get_rpm() const { + + return m_rpm; +} + VehicleWheel::VehicleWheel() { steers = false; @@ -865,12 +872,11 @@ void VehicleBody::_direct_state_changed(Object *p_state) { real_t proj2 = fwd.dot(vel); wheel.m_deltaRotation = (proj2 * step) / (wheel.m_wheelRadius); - wheel.m_rotation += wheel.m_deltaRotation; - - } else { - wheel.m_rotation += wheel.m_deltaRotation; } + wheel.m_rotation += wheel.m_deltaRotation; + wheel.m_rpm = ((wheel.m_deltaRotation / step) * 60) / Math_TAU; + wheel.m_deltaRotation *= real_t(0.99); //damping of rotation when not in contact } diff --git a/scene/3d/vehicle_body.h b/scene/3d/vehicle_body.h index 7e7571df4d..9e3fe72282 100644 --- a/scene/3d/vehicle_body.h +++ b/scene/3d/vehicle_body.h @@ -68,6 +68,7 @@ class VehicleWheel : public Spatial { real_t m_steering; real_t m_rotation; real_t m_deltaRotation; + real_t m_rpm; real_t m_rollInfluence; //real_t m_engineForce; real_t m_brake; @@ -134,6 +135,8 @@ public: float get_skidinfo() const; + float get_rpm() const; + String get_configuration_warning() const; VehicleWheel(); diff --git a/scene/3d/visual_instance.cpp b/scene/3d/visual_instance.cpp index 1aded826c0..99c86f0406 100644 --- a/scene/3d/visual_instance.cpp +++ b/scene/3d/visual_instance.cpp @@ -271,6 +271,11 @@ float GeometryInstance::get_extra_cull_margin() const { return extra_cull_margin; } +void GeometryInstance::set_custom_aabb(AABB aabb) { + + VS::get_singleton()->instance_set_custom_aabb(get_instance(), aabb); +} + void GeometryInstance::_bind_methods() { ClassDB::bind_method(D_METHOD("set_material_override", "material"), &GeometryInstance::set_material_override); @@ -297,6 +302,8 @@ void GeometryInstance::_bind_methods() { ClassDB::bind_method(D_METHOD("set_extra_cull_margin", "margin"), &GeometryInstance::set_extra_cull_margin); ClassDB::bind_method(D_METHOD("get_extra_cull_margin"), &GeometryInstance::get_extra_cull_margin); + ClassDB::bind_method(D_METHOD("set_custom_aabb", "aabb"), &GeometryInstance::set_custom_aabb); + ClassDB::bind_method(D_METHOD("get_aabb"), &GeometryInstance::get_aabb); ADD_GROUP("Geometry", ""); diff --git a/scene/3d/visual_instance.h b/scene/3d/visual_instance.h index f5b7479bb1..3b924e0454 100644 --- a/scene/3d/visual_instance.h +++ b/scene/3d/visual_instance.h @@ -89,6 +89,7 @@ class GeometryInstance : public VisualInstance { public: enum Flags { FLAG_USE_BAKED_LIGHT = VS::INSTANCE_FLAG_USE_BAKED_LIGHT, + FLAG_DRAW_NEXT_FRAME_IF_VISIBLE = VS::INSTANCE_FLAG_DRAW_NEXT_FRAME_IF_VISIBLE, FLAG_MAX = VS::INSTANCE_FLAG_MAX, }; @@ -139,6 +140,8 @@ public: void set_extra_cull_margin(float p_margin); float get_extra_cull_margin() const; + void set_custom_aabb(AABB aabb); + GeometryInstance(); }; diff --git a/scene/animation/animation_blend_tree.cpp b/scene/animation/animation_blend_tree.cpp index e9b38ae990..20a09696e1 100644 --- a/scene/animation/animation_blend_tree.cpp +++ b/scene/animation/animation_blend_tree.cpp @@ -1049,7 +1049,7 @@ AnimationNodeBlendTree::ConnectionError AnimationNodeBlendTree::can_connect_node return CONNECTION_ERROR_NO_INPUT; } - if (!nodes.has(p_input_node)) { + if (p_input_node == p_output_node) { return CONNECTION_ERROR_SAME_NODE; } diff --git a/scene/animation/animation_node_state_machine.cpp b/scene/animation/animation_node_state_machine.cpp index 1e3470cd90..60f8806b25 100644 --- a/scene/animation/animation_node_state_machine.cpp +++ b/scene/animation/animation_node_state_machine.cpp @@ -314,8 +314,9 @@ float AnimationNodeStateMachinePlayback::process(AnimationNodeStateMachine *sm, if (start_request_travel) { if (!playing) { + String node_name = start_request; start_request = StringName(); - ERR_EXPLAIN("Can't travel to '" + String(start_request) + "' if state machine is not active."); + ERR_EXPLAIN("Can't travel to '" + node_name + "' if state machine is not playing."); ERR_FAIL_V(0); } diff --git a/scene/animation/animation_player.cpp b/scene/animation/animation_player.cpp index a5955d57f7..75088c79fe 100644 --- a/scene/animation/animation_player.cpp +++ b/scene/animation/animation_player.cpp @@ -37,12 +37,20 @@ #ifdef TOOLS_ENABLED #include "editor/editor_settings.h" +#include "scene/2d/skeleton_2d.h" void AnimatedValuesBackup::update_skeletons() { for (int i = 0; i < entries.size(); i++) { if (entries[i].bone_idx != -1) { + // 3D bone Object::cast_to<Skeleton>(entries[i].object)->notification(Skeleton::NOTIFICATION_UPDATE_SKELETON); + } else { + Bone2D *bone = Object::cast_to<Bone2D>(entries[i].object); + if (bone && bone->skeleton) { + // 2D bone + bone->skeleton->_update_transform(); + } } } } diff --git a/scene/animation/animation_tree.cpp b/scene/animation/animation_tree.cpp index d1d3582c9d..54f0fdc26a 100644 --- a/scene/animation/animation_tree.cpp +++ b/scene/animation/animation_tree.cpp @@ -316,7 +316,7 @@ String AnimationNode::get_caption() const { void AnimationNode::add_input(const String &p_name) { //root nodes can't add inputs - ERR_FAIL_COND(Object::cast_to<AnimationRootNode>(this) != NULL) + ERR_FAIL_COND(Object::cast_to<AnimationRootNode>(this) != NULL); Input input; ERR_FAIL_COND(p_name.find(".") != -1 || p_name.find("/") != -1); input.name = p_name; @@ -1580,6 +1580,7 @@ AnimationTree::AnimationTree() { active = false; cache_valid = false; setup_pass = 1; + process_pass = 1; started = true; properties_dirty = true; last_animation_player = 0; diff --git a/scene/animation/animation_tree_player.cpp b/scene/animation/animation_tree_player.cpp index 3cc90c2ad6..5c3e123ac3 100644 --- a/scene/animation/animation_tree_player.cpp +++ b/scene/animation/animation_tree_player.cpp @@ -404,7 +404,7 @@ void AnimationTreePlayer::_notification(int p_what) { case NOTIFICATION_ENTER_TREE: { ERR_EXPLAIN("AnimationTreePlayer has been deprecated. Use AnimationTree instead."); - WARN_DEPRECATED + WARN_DEPRECATED; if (!processing) { //make sure that a previous process state was not saved diff --git a/scene/animation/tween.cpp b/scene/animation/tween.cpp index 23998183b8..c70e58564f 100644 --- a/scene/animation/tween.cpp +++ b/scene/animation/tween.cpp @@ -34,10 +34,14 @@ void Tween::_add_pending_command(StringName p_key, const Variant &p_arg1, const Variant &p_arg2, const Variant &p_arg3, const Variant &p_arg4, const Variant &p_arg5, const Variant &p_arg6, const Variant &p_arg7, const Variant &p_arg8, const Variant &p_arg9, const Variant &p_arg10) { + // Add a new pending command and reference it pending_commands.push_back(PendingCommand()); PendingCommand &cmd = pending_commands.back()->get(); + // Update the command with the target key cmd.key = p_key; + + // Determine command argument count int &count = cmd.args; if (p_arg10.get_type() != Variant::NIL) count = 10; @@ -59,6 +63,9 @@ void Tween::_add_pending_command(StringName p_key, const Variant &p_arg1, const count = 2; else if (p_arg1.get_type() != Variant::NIL) count = 1; + + // Add the specified arguments to the command + // TODO: Make this a switch statement? if (count > 0) cmd.arg[0] = p_arg1; if (count > 1) @@ -83,10 +90,14 @@ void Tween::_add_pending_command(StringName p_key, const Variant &p_arg1, const void Tween::_process_pending_commands() { + // For each pending command... for (List<PendingCommand>::Element *E = pending_commands.front(); E; E = E->next()) { + // Get the command PendingCommand &cmd = E->get(); Variant::CallError err; + + // Grab all of the arguments for the command Variant *arg[10] = { &cmd.arg[0], &cmd.arg[1], @@ -99,16 +110,20 @@ void Tween::_process_pending_commands() { &cmd.arg[8], &cmd.arg[9], }; + + // Execute the command (and retrieve any errors) this->call(cmd.key, (const Variant **)arg, cmd.args, err); } + + // Clear the pending commands pending_commands.clear(); } bool Tween::_set(const StringName &p_name, const Variant &p_value) { + // Set the correct attribute based on the given name String name = p_name; - - if (name == "playback/speed" || name == "speed") { //bw compatibility + if (name == "playback/speed" || name == "speed") { // Backwards compatibility set_speed_scale(p_value); } else if (name == "playback/active") { @@ -122,69 +137,78 @@ bool Tween::_set(const StringName &p_name, const Variant &p_value) { bool Tween::_get(const StringName &p_name, Variant &r_ret) const { + // Get the correct attribute based on the given name String name = p_name; - - if (name == "playback/speed") { //bw compatibility - + if (name == "playback/speed") { // Backwards compatibility r_ret = speed_scale; - } else if (name == "playback/active") { + } else if (name == "playback/active") { r_ret = is_active(); - } else if (name == "playback/repeat") { + } else if (name == "playback/repeat") { r_ret = is_repeat(); } - return true; } void Tween::_get_property_list(List<PropertyInfo> *p_list) const { - + // Add the property info for the Tween object p_list->push_back(PropertyInfo(Variant::BOOL, "playback/active", PROPERTY_HINT_NONE, "")); p_list->push_back(PropertyInfo(Variant::BOOL, "playback/repeat", PROPERTY_HINT_NONE, "")); p_list->push_back(PropertyInfo(Variant::REAL, "playback/speed", PROPERTY_HINT_RANGE, "-64,64,0.01")); } void Tween::_notification(int p_what) { - + // What notification did we receive? switch (p_what) { case NOTIFICATION_ENTER_TREE: { - + // Are we not already active? if (!is_active()) { - //make sure that a previous process state was not saved - //only process if "processing" is set + // Make sure that a previous process state was not saved + // Only process if "processing" is set set_physics_process_internal(false); set_process_internal(false); } } break; - case NOTIFICATION_READY: { + case NOTIFICATION_READY: { + // Do nothing } break; + case NOTIFICATION_INTERNAL_PROCESS: { + // Are we processing during physics time? if (tween_process_mode == TWEEN_PROCESS_PHYSICS) + // Do nothing since we aren't aligned with physics when we should be break; + // Should we update? if (is_active()) + // Update the tweens _tween_process(get_process_delta_time()); } break; - case NOTIFICATION_INTERNAL_PHYSICS_PROCESS: { + case NOTIFICATION_INTERNAL_PHYSICS_PROCESS: { + // Are we processing during 'regular' time? if (tween_process_mode == TWEEN_PROCESS_IDLE) + // Do nothing since we whould only process during idle time break; + // Should we update? if (is_active()) + // Update the tweens _tween_process(get_physics_process_delta_time()); } break; - case NOTIFICATION_EXIT_TREE: { + case NOTIFICATION_EXIT_TREE: { + // We've left the tree. Stop all tweens stop_all(); } break; } } void Tween::_bind_methods() { - + // Bind getters and setters ClassDB::bind_method(D_METHOD("is_active"), &Tween::is_active); ClassDB::bind_method(D_METHOD("set_active", "active"), &Tween::set_active); @@ -197,6 +221,7 @@ void Tween::_bind_methods() { ClassDB::bind_method(D_METHOD("set_tween_process_mode", "mode"), &Tween::set_tween_process_mode); ClassDB::bind_method(D_METHOD("get_tween_process_mode"), &Tween::get_tween_process_mode); + // Bind the various Tween control methods ClassDB::bind_method(D_METHOD("start"), &Tween::start); ClassDB::bind_method(D_METHOD("reset", "object", "key"), &Tween::reset, DEFVAL("")); ClassDB::bind_method(D_METHOD("reset_all"), &Tween::reset_all); @@ -211,6 +236,7 @@ void Tween::_bind_methods() { ClassDB::bind_method(D_METHOD("tell"), &Tween::tell); ClassDB::bind_method(D_METHOD("get_runtime"), &Tween::get_runtime); + // Bind interpolation and follow methods ClassDB::bind_method(D_METHOD("interpolate_property", "object", "property", "initial_val", "final_val", "duration", "trans_type", "ease_type", "delay"), &Tween::interpolate_property, DEFVAL(0)); ClassDB::bind_method(D_METHOD("interpolate_method", "object", "method", "initial_val", "final_val", "duration", "trans_type", "ease_type", "delay"), &Tween::interpolate_method, DEFVAL(0)); ClassDB::bind_method(D_METHOD("interpolate_callback", "object", "duration", "callback", "arg1", "arg2", "arg3", "arg4", "arg5"), &Tween::interpolate_callback, DEFVAL(Variant()), DEFVAL(Variant()), DEFVAL(Variant()), DEFVAL(Variant()), DEFVAL(Variant())); @@ -220,18 +246,22 @@ void Tween::_bind_methods() { ClassDB::bind_method(D_METHOD("targeting_property", "object", "property", "initial", "initial_val", "final_val", "duration", "trans_type", "ease_type", "delay"), &Tween::targeting_property, DEFVAL(0)); ClassDB::bind_method(D_METHOD("targeting_method", "object", "method", "initial", "initial_method", "final_val", "duration", "trans_type", "ease_type", "delay"), &Tween::targeting_method, DEFVAL(0)); + // Add the Tween signals ADD_SIGNAL(MethodInfo("tween_started", PropertyInfo(Variant::OBJECT, "object"), PropertyInfo(Variant::NODE_PATH, "key"))); ADD_SIGNAL(MethodInfo("tween_step", PropertyInfo(Variant::OBJECT, "object"), PropertyInfo(Variant::NODE_PATH, "key"), PropertyInfo(Variant::REAL, "elapsed"), PropertyInfo(Variant::OBJECT, "value"))); ADD_SIGNAL(MethodInfo("tween_completed", PropertyInfo(Variant::OBJECT, "object"), PropertyInfo(Variant::NODE_PATH, "key"))); ADD_SIGNAL(MethodInfo("tween_all_completed")); + // Add the properties and tie them to the getters and setters ADD_PROPERTY(PropertyInfo(Variant::BOOL, "repeat"), "set_repeat", "is_repeat"); ADD_PROPERTY(PropertyInfo(Variant::INT, "playback_process_mode", PROPERTY_HINT_ENUM, "Physics,Idle"), "set_tween_process_mode", "get_tween_process_mode"); ADD_PROPERTY(PropertyInfo(Variant::REAL, "playback_speed", PROPERTY_HINT_RANGE, "-64,64,0.01"), "set_speed_scale", "get_speed_scale"); + // Bind Idle vs Physics process BIND_ENUM_CONSTANT(TWEEN_PROCESS_PHYSICS); BIND_ENUM_CONSTANT(TWEEN_PROCESS_IDLE); + // Bind the Transition type constants BIND_ENUM_CONSTANT(TRANS_LINEAR); BIND_ENUM_CONSTANT(TRANS_SINE); BIND_ENUM_CONSTANT(TRANS_QUINT); @@ -244,6 +274,7 @@ void Tween::_bind_methods() { BIND_ENUM_CONSTANT(TRANS_BOUNCE); BIND_ENUM_CONSTANT(TRANS_BACK); + // Bind the easing constants BIND_ENUM_CONSTANT(EASE_IN); BIND_ENUM_CONSTANT(EASE_OUT); BIND_ENUM_CONSTANT(EASE_IN_OUT); @@ -252,27 +283,30 @@ void Tween::_bind_methods() { Variant &Tween::_get_initial_val(InterpolateData &p_data) { + // What type of data are we interpolating? switch (p_data.type) { case INTER_PROPERTY: case INTER_METHOD: case FOLLOW_PROPERTY: case FOLLOW_METHOD: + // Simply use the given initial value return p_data.initial_val; case TARGETING_PROPERTY: case TARGETING_METHOD: { - + // Get the object that is being targeted Object *object = ObjectDB::get_instance(p_data.target_id); ERR_FAIL_COND_V(object == NULL, p_data.initial_val); + // Are we targeting a property or a method? static Variant initial_val; if (p_data.type == TARGETING_PROPERTY) { - + // Get the property from the target object bool valid = false; initial_val = object->get_indexed(p_data.target_key, &valid); ERR_FAIL_COND_V(!valid, p_data.initial_val); } else { - + // Call the method and get the initial value from it Variant::CallError error; initial_val = object->call(p_data.target_key[0], NULL, 0, error); ERR_FAIL_COND_V(error.error != Variant::CallError::CALL_OK, p_data.initial_val); @@ -281,64 +315,75 @@ Variant &Tween::_get_initial_val(InterpolateData &p_data) { } case INTER_CALLBACK: + // Callback does not have a special initial value break; } + // If we've made it here, just return the delta value as the initial value return p_data.delta_val; } Variant &Tween::_get_delta_val(InterpolateData &p_data) { + // What kind of data are we interpolating? switch (p_data.type) { case INTER_PROPERTY: case INTER_METHOD: + // Simply return the given delta value return p_data.delta_val; case FOLLOW_PROPERTY: case FOLLOW_METHOD: { - + // We're following an object, so grab that instance 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); } - // convert INT to REAL is better for interpolaters + // 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(); + + // Calculate the delta based on the initial value and the final value _calc_delta_val(p_data.initial_val, final_val, p_data.delta_val); return p_data.delta_val; } case TARGETING_PROPERTY: case TARGETING_METHOD: { - + // Grab the initial value from the data to calculate delta Variant initial_val = _get_initial_val(p_data); - // convert INT to REAL is better for interpolaters + + // If we're looking at an INT value, instead convert it to a REAL + // This is better for interpolation if (initial_val.get_type() == Variant::INT) initial_val = initial_val.operator real_t(); - //_calc_delta_val(p_data.initial_val, p_data.final_val, p_data.delta_val); + // Calculate the delta based on the initial value and the final value _calc_delta_val(initial_val, p_data.final_val, p_data.delta_val); return p_data.delta_val; } case INTER_CALLBACK: + // Callbacks have no special delta break; } + // If we've made it here, use the initial value as the delta return p_data.initial_val; } 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 &delta_val = _get_delta_val(p_data); Variant result; @@ -346,48 +391,59 @@ Variant Tween::_run_equation(InterpolateData &p_data) { #define APPLY_EQUATION(element) \ r.element = _run_equation(p_data.trans_type, p_data.ease_type, p_data.elapsed - p_data.delay, i.element, d.element, p_data.duration); + // What type of data are we interpolating? switch (initial_val.get_type()) { case Variant::BOOL: + // Run the boolean specific equation (checking if it is at least 0.5) result = (_run_equation(p_data.trans_type, p_data.ease_type, p_data.elapsed - p_data.delay, initial_val, delta_val, p_data.duration)) >= 0.5; break; case Variant::INT: + // Run the integer specific equation result = (int)_run_equation(p_data.trans_type, p_data.ease_type, p_data.elapsed - p_data.delay, (int)initial_val, (int)delta_val, p_data.duration); break; case Variant::REAL: + // Run the REAL specific equation result = _run_equation(p_data.trans_type, p_data.ease_type, p_data.elapsed - p_data.delay, (real_t)initial_val, (real_t)delta_val, p_data.duration); break; case Variant::VECTOR2: { + // Get vectors for initial and delta values Vector2 i = initial_val; Vector2 d = delta_val; Vector2 r; + // Execute the equation and mutate the r vector + // This uses the custom APPLY_EQUATION macro defined above APPLY_EQUATION(x); APPLY_EQUATION(y); - result = r; } break; case Variant::VECTOR3: { + // Get vectors for initial and delta values Vector3 i = initial_val; Vector3 d = delta_val; Vector3 r; + // Execute the equation and mutate the r vector + // This uses the custom APPLY_EQUATION macro defined above APPLY_EQUATION(x); APPLY_EQUATION(y); APPLY_EQUATION(z); - result = r; } break; case Variant::BASIS: { + // Get the basis for initial and delta values Basis i = initial_val; Basis d = delta_val; Basis r; + // Execute the equation on all the basis and mutate the r basis + // This uses the custom APPLY_EQUATION macro defined above APPLY_EQUATION(elements[0][0]); APPLY_EQUATION(elements[0][1]); APPLY_EQUATION(elements[0][2]); @@ -397,55 +453,63 @@ Variant Tween::_run_equation(InterpolateData &p_data) { APPLY_EQUATION(elements[2][0]); APPLY_EQUATION(elements[2][1]); APPLY_EQUATION(elements[2][2]); - result = r; } break; case Variant::TRANSFORM2D: { + // Get the transforms for initial and delta values Transform2D i = initial_val; Transform2D d = delta_val; Transform2D r; + // Execute the equation on the transforms and mutate the r transform + // This uses the custom APPLY_EQUATION macro defined above APPLY_EQUATION(elements[0][0]); APPLY_EQUATION(elements[0][1]); APPLY_EQUATION(elements[1][0]); APPLY_EQUATION(elements[1][1]); APPLY_EQUATION(elements[2][0]); APPLY_EQUATION(elements[2][1]); - result = r; } break; case Variant::QUAT: { + // Get the quaternian for the initial and delta values Quat i = initial_val; Quat d = delta_val; Quat r; + // Execute the equation on the quaternian values and mutate the r quaternian + // This uses the custom APPLY_EQUATION macro defined above APPLY_EQUATION(x); APPLY_EQUATION(y); APPLY_EQUATION(z); APPLY_EQUATION(w); - result = r; } break; case Variant::AABB: { + // Get the AABB's for the initial and delta values AABB i = initial_val; AABB d = delta_val; AABB r; + // Execute the equation for the position and size of the AABB's and mutate the r AABB + // This uses the custom APPLY_EQUATION macro defined above APPLY_EQUATION(position.x); APPLY_EQUATION(position.y); APPLY_EQUATION(position.z); APPLY_EQUATION(size.x); APPLY_EQUATION(size.y); APPLY_EQUATION(size.z); - result = r; } break; case Variant::TRANSFORM: { + // Get the transforms for the initial and delta values Transform i = initial_val; Transform d = delta_val; Transform r; + // Execute the equation for each of the transforms and their origin and mutate the r transform + // This uses the custom APPLY_EQUATION macro defined above APPLY_EQUATION(basis.elements[0][0]); APPLY_EQUATION(basis.elements[0][1]); APPLY_EQUATION(basis.elements[0][2]); @@ -458,40 +522,45 @@ Variant Tween::_run_equation(InterpolateData &p_data) { APPLY_EQUATION(origin.x); APPLY_EQUATION(origin.y); APPLY_EQUATION(origin.z); - result = r; } break; case Variant::COLOR: { + // Get the Color for initial and delta value Color i = initial_val; Color d = delta_val; Color r; + // Apply the equation on the Color RGBA, and mutate the r color + // This uses the custom APPLY_EQUATION macro defined above APPLY_EQUATION(r); APPLY_EQUATION(g); APPLY_EQUATION(b); APPLY_EQUATION(a); - result = r; } break; default: { + // If unknown, just return the initial value result = initial_val; } break; }; #undef APPLY_EQUATION - + // Return the result that was computed return result; } bool Tween::_apply_tween_value(InterpolateData &p_data, Variant &value) { + // Get the object we want to apply the new value to Object *object = ObjectDB::get_instance(p_data.id); ERR_FAIL_COND_V(object == NULL, false); + // What kind of data are we mutating? switch (p_data.type) { case INTER_PROPERTY: case FOLLOW_PROPERTY: case TARGETING_PROPERTY: { + // Simply set the property on the object bool valid = false; object->set_indexed(p_data.key, value, &valid); return valid; @@ -500,85 +569,112 @@ bool Tween::_apply_tween_value(InterpolateData &p_data, Variant &value) { case INTER_METHOD: case FOLLOW_METHOD: case TARGETING_METHOD: { + // We want to call the method on the target object Variant::CallError error; + + // Do we have a non-nil value passed in? if (value.get_type() != Variant::NIL) { + // Pass it as an argument to the function call Variant *arg[1] = { &value }; object->call(p_data.key[0], (const Variant **)arg, 1, error); } else { + // Don't pass any argument object->call(p_data.key[0], NULL, 0, error); } + // Did we get an error from the function call? if (error.error == Variant::CallError::CALL_OK) return true; return false; } case INTER_CALLBACK: + // Nothing to apply for a callback break; }; + // No issues found! return true; } void Tween::_tween_process(float p_delta) { - + // Process all of the pending commands _process_pending_commands(); + // If the scale is 0, make no progress on the tweens if (speed_scale == 0) return; - p_delta *= speed_scale; + // Update the delta and whether we are pending an update + p_delta *= speed_scale; pending_update++; - // if repeat and all interpolates was finished then reset all interpolates - bool all_finished = true; - if (repeat) { + // Are we repeating the interpolations? + if (repeat) { + // For each interpolation... + bool repeats_finished = true; for (List<InterpolateData>::Element *E = interpolates.front(); E; E = E->next()) { - + // Get the data from it InterpolateData &data = E->get(); + // Is not finished? if (!data.finish) { - all_finished = false; + // We aren't finished yet, no need to check the rest + repeats_finished = false; break; } } - if (all_finished) + // If we are all finished, we can reset all of the tweens + if (repeats_finished) reset_all(); } - all_finished = true; + // Are all of the tweens complete? + bool all_finished = true; + + // For each tween we wish to interpolate... for (List<InterpolateData>::Element *E = interpolates.front(); E; E = E->next()) { + // Get the data from it InterpolateData &data = E->get(); + + // Track if we hit one that isn't finished yet all_finished = all_finished && data.finish; + // Is the data not active or already finished? No need to go any further if (!data.active || data.finish) continue; + // Get the target object for this interpolation Object *object = ObjectDB::get_instance(data.id); if (object == NULL) continue; + // Are we still delaying this tween? bool prev_delaying = data.elapsed <= data.delay; data.elapsed += p_delta; if (data.elapsed < data.delay) continue; else if (prev_delaying) { - + // We can apply the tween's value to the data and emit that the tween has started _apply_tween_value(data, data.initial_val); emit_signal("tween_started", object, NodePath(Vector<StringName>(), data.key, false)); } + // Are we at the end of the tween? if (data.elapsed > (data.delay + data.duration)) { - + // Set the elapsed time to the end and mark this one as finished data.elapsed = data.delay + data.duration; data.finish = true; } + // Are we interpolating a callback? if (data.type == INTER_CALLBACK) { + // Is the tween completed? if (data.finish) { + // Are we calling this callback deferred or immediately? if (data.call_deferred) { - + // Run the deferred function callback, applying the correct number of arguments switch (data.args) { case 0: object->call_deferred(data.key[0]); @@ -600,6 +696,7 @@ void Tween::_tween_process(float p_delta) { break; } } else { + // Call the function directly with the arguments Variant::CallError error; Variant *arg[5] = { &data.arg[0], @@ -612,23 +709,35 @@ void Tween::_tween_process(float p_delta) { } } } else { + // We can apply the value directly Variant result = _run_equation(data); _apply_tween_value(data, result); + + // Emit that the tween has taken a step emit_signal("tween_step", object, NodePath(Vector<StringName>(), data.key, false), data.elapsed, result); } + // Is the tween now finished? if (data.finish) { + // Set it to the final value directly _apply_tween_value(data, data.final_val); + + // Mark the tween as completed and emit the signal data.elapsed = 0; emit_signal("tween_completed", object, NodePath(Vector<StringName>(), data.key, false)); - // not repeat mode, remove completed action + + // If we are not repeating the tween, remove it if (!repeat) call_deferred("_remove_by_uid", data.uid); - } else if (!repeat) + } else if (!repeat) { + // Check whether all tweens are finished all_finished = all_finished && data.finish; + } } + // One less update left to go pending_update--; + // If all tweens are completed, we no longer need to be active if (all_finished) { set_active(false); emit_signal("tween_all_completed"); @@ -636,76 +745,75 @@ void Tween::_tween_process(float p_delta) { } void Tween::set_tween_process_mode(TweenProcessMode p_mode) { - tween_process_mode = p_mode; } Tween::TweenProcessMode Tween::get_tween_process_mode() const { - return tween_process_mode; } bool Tween::is_active() const { - return is_processing_internal() || is_physics_processing_internal(); } void Tween::set_active(bool p_active) { - + // Do nothing if it's the same active mode that we currently are if (is_active() == p_active) return; + // Depending on physics or idle, set processing switch (tween_process_mode) { - case TWEEN_PROCESS_IDLE: set_process_internal(p_active); break; case TWEEN_PROCESS_PHYSICS: set_physics_process_internal(p_active); break; } } bool Tween::is_repeat() const { - return repeat; } void Tween::set_repeat(bool p_repeat) { - repeat = p_repeat; } void Tween::set_speed_scale(float p_speed) { - speed_scale = p_speed; } float Tween::get_speed_scale() const { - return speed_scale; } bool Tween::start() { + // Are there any pending updates? if (pending_update != 0) { + // Start the tweens after deferring call_deferred("start"); return true; } + // We want to be activated set_active(true); return true; } bool Tween::reset(Object *p_object, StringName p_key) { - + // Find all interpolations that use the same object and target string pending_update++; for (List<InterpolateData>::Element *E = interpolates.front(); E; E = E->next()) { - + // Get the target object InterpolateData &data = E->get(); Object *object = ObjectDB::get_instance(data.id); if (object == NULL) continue; + // Do we have the correct object and key? if (object == p_object && (data.concatenated_key == p_key || p_key == "")) { - + // Reset the tween to the initial state data.elapsed = 0; data.finish = false; + + // Also apply the initial state if there isn't a delay if (data.delay == 0) _apply_tween_value(data, data.initial_val); } @@ -715,13 +823,15 @@ bool Tween::reset(Object *p_object, StringName p_key) { } bool Tween::reset_all() { - + // Go through all interpolations pending_update++; for (List<InterpolateData>::Element *E = interpolates.front(); E; E = E->next()) { - + // Get the target data and set it back to the initial state InterpolateData &data = E->get(); data.elapsed = 0; data.finish = false; + + // If there isn't a delay, apply the value to the object if (data.delay == 0) _apply_tween_value(data, data.initial_val); } @@ -730,15 +840,19 @@ bool Tween::reset_all() { } bool Tween::stop(Object *p_object, StringName p_key) { - + // Find the tween that has the given target object and string key pending_update++; for (List<InterpolateData>::Element *E = interpolates.front(); E; E = E->next()) { + // Get the object the tween is targeting InterpolateData &data = E->get(); Object *object = ObjectDB::get_instance(data.id); if (object == NULL) continue; + + // Is this the correct object and does it have the given key? if (object == p_object && (data.concatenated_key == p_key || p_key == "")) + // Disable the tween data.active = false; } pending_update--; @@ -746,12 +860,13 @@ bool Tween::stop(Object *p_object, StringName p_key) { } bool Tween::stop_all() { - + // We no longer need to be active since all tweens have been stopped set_active(false); + // For each interpolation... pending_update++; for (List<InterpolateData>::Element *E = interpolates.front(); E; E = E->next()) { - + // Simply set it inactive InterpolateData &data = E->get(); data.active = false; } @@ -760,16 +875,20 @@ bool Tween::stop_all() { } bool Tween::resume(Object *p_object, StringName p_key) { - + // We need to be activated + // TODO: What if no tween is found?? set_active(true); + // Find the tween that uses the given target object and string key pending_update++; for (List<InterpolateData>::Element *E = interpolates.front(); E; E = E->next()) { - + // Grab the object InterpolateData &data = E->get(); Object *object = ObjectDB::get_instance(data.id); if (object == NULL) continue; + + // If the object and string key match, activate it if (object == p_object && (data.concatenated_key == p_key || p_key == "")) data.active = true; } @@ -778,12 +897,14 @@ bool Tween::resume(Object *p_object, StringName p_key) { } bool Tween::resume_all() { - + // Set ourselves active so we can process tweens + // TODO: What if there are no tweens? We get set to active for no reason! set_active(true); + // For each interpolation... pending_update++; for (List<InterpolateData>::Element *E = interpolates.front(); E; E = E->next()) { - + // Simply grab it and set it to active InterpolateData &data = E->get(); data.active = true; } @@ -792,35 +913,46 @@ bool Tween::resume_all() { } bool Tween::remove(Object *p_object, StringName p_key) { + // If we are still updating, call this function again later if (pending_update != 0) { call_deferred("remove", p_object, p_key); return true; } + + // For each interpolation... List<List<InterpolateData>::Element *> for_removal; for (List<InterpolateData>::Element *E = interpolates.front(); E; E = E->next()) { - + // Get the target object InterpolateData &data = E->get(); Object *object = ObjectDB::get_instance(data.id); if (object == NULL) continue; + + // If the target object and string key match, queue it for removal if (object == p_object && (data.concatenated_key == p_key || p_key == "")) { for_removal.push_back(E); } } + + // For each interpolation we wish to remove... for (List<List<InterpolateData>::Element *>::Element *E = for_removal.front(); E; E = E->next()) { + // Erase it interpolates.erase(E->get()); } return true; } void Tween::_remove_by_uid(int uid) { + // If we are still updating, call this function again later if (pending_update != 0) { call_deferred("_remove_by_uid", uid); return; } + // Find the interpolation that matches the given UID for (List<InterpolateData>::Element *E = interpolates.front(); E; E = E->next()) { if (uid == E->get().uid) { + // It matches, erase it and stop looking E->erase(); break; } @@ -829,49 +961,61 @@ void Tween::_remove_by_uid(int uid) { void Tween::_push_interpolate_data(InterpolateData &p_data) { pending_update++; + + // Add the new interpolation p_data.uid = ++uid; interpolates.push_back(p_data); + pending_update--; } bool Tween::remove_all() { - + // If we are still updating, call this function again later if (pending_update != 0) { call_deferred("remove_all"); return true; } + // We no longer need to be active set_active(false); + + // Clear out all interpolations and reset the uid interpolates.clear(); uid = 0; + return true; } bool Tween::seek(real_t p_time) { - + // Go through each interpolation... pending_update++; for (List<InterpolateData>::Element *E = interpolates.front(); E; E = E->next()) { - + // Get the target data InterpolateData &data = E->get(); + // Update the elapsed data to be set to the target time data.elapsed = p_time; - if (data.elapsed < data.delay) { + // Are we at the end? + if (data.elapsed < data.delay) { + // There is still time left to go data.finish = false; continue; } else if (data.elapsed >= (data.delay + data.duration)) { - - data.finish = true; + // We are past the end of it, set the elapsed time to the end and mark as finished data.elapsed = (data.delay + data.duration); + data.finish = true; } else { + // We are not finished with this interpolation yet data.finish = false; } + // If we are a callback, do nothing special if (data.type == INTER_CALLBACK) { continue; } + // Run the equation on the data and apply the value Variant result = _run_equation(data); - _apply_tween_value(data, result); } pending_update--; @@ -879,13 +1023,16 @@ bool Tween::seek(real_t p_time) { } real_t Tween::tell() const { - + // We want to grab the position of the furthest along tween pending_update++; real_t pos = 0; - for (const List<InterpolateData>::Element *E = interpolates.front(); E; E = E->next()) { + // For each interpolation... + for (const List<InterpolateData>::Element *E = interpolates.front(); E; E = E->next()) { + // Get the data and figure out if it's position is further along than the previous ones const InterpolateData &data = E->get(); if (data.elapsed > pos) + // Save it if so pos = data.elapsed; } pending_update--; @@ -893,55 +1040,63 @@ real_t Tween::tell() const { } real_t Tween::get_runtime() const { - + // If the tween isn't moving, it'll last forever if (speed_scale == 0) { return INFINITY; } pending_update++; + + // For each interpolation... real_t runtime = 0; for (const List<InterpolateData>::Element *E = interpolates.front(); E; E = E->next()) { - + // Get the tween data and see if it's runtime is greater than the previous tweens const InterpolateData &data = E->get(); real_t t = data.delay + data.duration; if (t > runtime) + // This is the longest running tween runtime = t; } pending_update--; + // Adjust the runtime for the current speed scale return runtime / speed_scale; } bool Tween::_calc_delta_val(const Variant &p_initial_val, const Variant &p_final_val, Variant &p_delta_val) { + // Get the initial, final, and delta values const Variant &initial_val = p_initial_val; const Variant &final_val = p_final_val; Variant &delta_val = p_delta_val; + // What kind of data are we interpolating? switch (initial_val.get_type()) { case Variant::BOOL: - //delta_val = p_final_val; - delta_val = (int)p_final_val - (int)p_initial_val; - break; - + // We'll treat booleans just like integers case Variant::INT: + // Compute the integer delta delta_val = (int)final_val - (int)initial_val; break; case Variant::REAL: + // Convert to REAL and find the delta delta_val = (real_t)final_val - (real_t)initial_val; break; case Variant::VECTOR2: + // Convert to Vectors and find the delta delta_val = final_val.operator Vector2() - initial_val.operator Vector2(); break; case Variant::VECTOR3: + // Convert to Vectors and find the delta delta_val = final_val.operator Vector3() - initial_val.operator Vector3(); break; case Variant::BASIS: { + // Build a new basis which is the delta between the initial and final values Basis i = initial_val; Basis f = final_val; delta_val = Basis(f.elements[0][0] - i.elements[0][0], @@ -956,6 +1111,7 @@ bool Tween::_calc_delta_val(const Variant &p_initial_val, const Variant &p_final } break; case Variant::TRANSFORM2D: { + // Build a new transform which is the difference between the initial and final values Transform2D i = initial_val; Transform2D f = final_val; Transform2D d = Transform2D(); @@ -967,15 +1123,21 @@ bool Tween::_calc_delta_val(const Variant &p_initial_val, const Variant &p_final d[2][1] = f.elements[2][1] - i.elements[2][1]; delta_val = d; } break; + case Variant::QUAT: + // Convert to quaternianls and find the delta delta_val = final_val.operator Quat() - initial_val.operator Quat(); break; + case Variant::AABB: { + // Build a new AABB and use the new position and sizes to make a delta AABB i = initial_val; AABB f = final_val; delta_val = AABB(f.position - i.position, f.size - i.size); } break; + case Variant::TRANSFORM: { + // Build a new transform which is the difference between the initial and final values Transform i = initial_val; Transform f = final_val; Transform d; @@ -994,124 +1156,157 @@ bool Tween::_calc_delta_val(const Variant &p_initial_val, const Variant &p_final delta_val = d; } break; + case Variant::COLOR: { + // Make a new color which is the difference between each the color's RGBA attributes Color i = initial_val; Color f = final_val; delta_val = Color(f.r - i.r, f.g - i.g, f.b - i.b, f.a - i.a); } break; default: + // TODO: Should move away from a 'magic string'? ERR_PRINT("Invalid param type, except(int/real/vector2/vector/matrix/matrix32/quat/aabb/transform/color)"); return false; }; return true; } -bool Tween::interpolate_property(Object *p_object, NodePath p_property, Variant p_initial_val, Variant p_final_val, real_t p_duration, TransitionType p_trans_type, EaseType p_ease_type, real_t p_delay) { - if (pending_update != 0) { - _add_pending_command("interpolate_property", p_object, p_property, p_initial_val, p_final_val, p_duration, p_trans_type, p_ease_type, p_delay); - return true; - } - p_property = p_property.get_as_property_path(); - - if (p_initial_val.get_type() == Variant::NIL) p_initial_val = p_object->get_indexed(p_property.get_subnames()); - - // convert INT to REAL is better for interpolaters - if (p_initial_val.get_type() == Variant::INT) p_initial_val = p_initial_val.operator real_t(); - if (p_final_val.get_type() == Variant::INT) p_final_val = p_final_val.operator real_t(); - - ERR_FAIL_COND_V(p_object == NULL, false); - ERR_FAIL_COND_V(!ObjectDB::instance_validate(p_object), false); - ERR_FAIL_COND_V(p_initial_val.get_type() != p_final_val.get_type(), false); - ERR_FAIL_COND_V(p_duration <= 0, false); - ERR_FAIL_COND_V(p_trans_type < 0 || p_trans_type >= TRANS_COUNT, false); - ERR_FAIL_COND_V(p_ease_type < 0 || p_ease_type >= EASE_COUNT, false); - ERR_FAIL_COND_V(p_delay < 0, false); +bool Tween::_build_interpolation(InterpolateType p_interpolation_type, Object *p_object, NodePath *p_property, StringName *p_method, Variant p_initial_val, Variant p_final_val, real_t p_duration, TransitionType p_trans_type, EaseType p_ease_type, real_t p_delay) { - bool prop_valid = false; - p_object->get_indexed(p_property.get_subnames(), &prop_valid); - ERR_FAIL_COND_V(!prop_valid, false); + // TODO: Add initialization+implementation for remaining interpolation types + // TODO: Fix this method's organization to take advantage of the type + // Make a new interpolation data InterpolateData data; data.active = true; - data.type = INTER_PROPERTY; + data.type = p_interpolation_type; data.finish = false; data.elapsed = 0; + // Validate and apply interpolation data + + // Give it the object + ERR_EXPLAIN("Invalid object provided to Tween!"); + ERR_FAIL_COND_V(p_object == NULL, false); // Is the object real + ERR_FAIL_COND_V(!ObjectDB::instance_validate(p_object), false); // Is the object a valid instance? data.id = p_object->get_instance_id(); - data.key = p_property.get_subnames(); - data.concatenated_key = p_property.get_concatenated_subnames(); + + // Validate the initial and final values + ERR_EXPLAIN("Initial value type does not match final value type!"); // TODO: Print both types to make debugging easier + ERR_FAIL_COND_V(p_initial_val.get_type() != p_final_val.get_type(), false); // Do the initial and final value types match? data.initial_val = p_initial_val; data.final_val = p_final_val; + + // Check the Duration + ERR_EXPLAIN("Only non-negative duration values allowed in Tweens!"); + ERR_FAIL_COND_V(p_duration < 0, false); // Is the tween duration non-negative data.duration = p_duration; + + // Tween Delay + ERR_EXPLAIN("Only non-negative delay values allowed in Tweens!"); + ERR_FAIL_COND_V(p_delay < 0, false); // Is the delay non-negative? + data.delay = p_delay; + + // Transition type + ERR_EXPLAIN("Invalid transition type provided to Tween"); + ERR_FAIL_COND_V(p_trans_type < 0 || p_trans_type >= TRANS_COUNT, false); // Is the transition type valid data.trans_type = p_trans_type; + + // Easing type + ERR_EXPLAIN("Invalid easing type provided to Tween"); + ERR_FAIL_COND_V(p_ease_type < 0 || p_ease_type >= EASE_COUNT, false); // Is the easing type valid data.ease_type = p_ease_type; - data.delay = p_delay; + // Is the property defined? + if (p_property) { + // Check that the object actually contains the given property + bool prop_valid = false; + p_object->get_indexed(p_property->get_subnames(), &prop_valid); + ERR_EXPLAIN("Tween target object has no property named: " + p_property->get_concatenated_subnames()); + ERR_FAIL_COND_V(!prop_valid, false); + + data.key = p_property->get_subnames(); + data.concatenated_key = p_property->get_concatenated_subnames(); + } + + // Is the method defined? + if (p_method) { + // Does the object even have the requested method? + ERR_EXPLAIN("Tween target object has no method named: " + *p_method); // TODO: Fix this error message + ERR_FAIL_COND_V(!p_object->has_method(*p_method), false); + + data.key.push_back(*p_method); + data.concatenated_key = *p_method; + } + + // Is there not a valid delta? if (!_calc_delta_val(data.initial_val, data.final_val, data.delta_val)) return false; + // Add this interpolation to the total _push_interpolate_data(data); return true; } -bool Tween::interpolate_method(Object *p_object, StringName p_method, Variant p_initial_val, Variant p_final_val, real_t p_duration, TransitionType p_trans_type, EaseType p_ease_type, real_t p_delay) { +bool Tween::interpolate_property(Object *p_object, NodePath p_property, Variant p_initial_val, Variant p_final_val, real_t p_duration, TransitionType p_trans_type, EaseType p_ease_type, real_t p_delay) { + // If we are busy updating, call this function again later if (pending_update != 0) { - _add_pending_command("interpolate_method", p_object, p_method, p_initial_val, p_final_val, p_duration, p_trans_type, p_ease_type, p_delay); + _add_pending_command("interpolate_property", p_object, p_property, p_initial_val, p_final_val, p_duration, p_trans_type, p_ease_type, p_delay); return true; } - // convert INT to REAL is better for interpolaters - if (p_initial_val.get_type() == Variant::INT) p_initial_val = p_initial_val.operator real_t(); - if (p_final_val.get_type() == Variant::INT) p_final_val = p_final_val.operator real_t(); - ERR_FAIL_COND_V(p_object == NULL, false); - ERR_FAIL_COND_V(!ObjectDB::instance_validate(p_object), false); - ERR_FAIL_COND_V(p_initial_val.get_type() != p_final_val.get_type(), false); - ERR_FAIL_COND_V(p_duration <= 0, false); - ERR_FAIL_COND_V(p_trans_type < 0 || p_trans_type >= TRANS_COUNT, false); - ERR_FAIL_COND_V(p_ease_type < 0 || p_ease_type >= EASE_COUNT, false); - ERR_FAIL_COND_V(p_delay < 0, false); + // Get the property from the node path + p_property = p_property.get_as_property_path(); - ERR_EXPLAIN("Object has no method named: %s" + p_method); - ERR_FAIL_COND_V(!p_object->has_method(p_method), false); + // If no initial value given, grab the initial value from the object + // TODO: Is this documented? This is very useful and removes a lot of clutter from tweens! + if (p_initial_val.get_type() == Variant::NIL) p_initial_val = p_object->get_indexed(p_property.get_subnames()); - InterpolateData data; - data.active = true; - data.type = INTER_METHOD; - data.finish = false; - data.elapsed = 0; + // Convert any integers into REALs as they are better for interpolation + if (p_initial_val.get_type() == Variant::INT) p_initial_val = p_initial_val.operator real_t(); + if (p_final_val.get_type() == Variant::INT) p_final_val = p_final_val.operator real_t(); - data.id = p_object->get_instance_id(); - data.key.push_back(p_method); - data.concatenated_key = p_method; - data.initial_val = p_initial_val; - data.final_val = p_final_val; - data.duration = p_duration; - data.trans_type = p_trans_type; - data.ease_type = p_ease_type; - data.delay = p_delay; + // Build the interpolation data + bool result = _build_interpolation(INTER_PROPERTY, p_object, &p_property, NULL, p_initial_val, p_final_val, p_duration, p_trans_type, p_ease_type, p_delay); + return result; +} - if (!_calc_delta_val(data.initial_val, data.final_val, data.delta_val)) - return false; +bool Tween::interpolate_method(Object *p_object, StringName p_method, Variant p_initial_val, Variant p_final_val, real_t p_duration, TransitionType p_trans_type, EaseType p_ease_type, real_t p_delay) { + // If we are busy updating, call this function again later + if (pending_update != 0) { + _add_pending_command("interpolate_method", p_object, p_method, p_initial_val, p_final_val, p_duration, p_trans_type, p_ease_type, p_delay); + return true; + } - _push_interpolate_data(data); - return true; + // Convert any integers into REALs as they are better for interpolation + if (p_initial_val.get_type() == Variant::INT) p_initial_val = p_initial_val.operator real_t(); + if (p_final_val.get_type() == Variant::INT) p_final_val = p_final_val.operator real_t(); + + // Build the interpolation data + bool result = _build_interpolation(INTER_METHOD, p_object, NULL, &p_method, p_initial_val, p_final_val, p_duration, p_trans_type, p_ease_type, p_delay); + return result; } bool Tween::interpolate_callback(Object *p_object, real_t p_duration, String p_callback, VARIANT_ARG_DECLARE) { - + // If we are already updating, call this function again later if (pending_update != 0) { _add_pending_command("interpolate_callback", p_object, p_duration, p_callback, p_arg1, p_arg2, p_arg3, p_arg4, p_arg5); return true; } + // Check that the target object is valid ERR_FAIL_COND_V(p_object == NULL, false); ERR_FAIL_COND_V(!ObjectDB::instance_validate(p_object), false); + + // Duration cannot be negative ERR_FAIL_COND_V(p_duration < 0, false); + // Check whether the object even has the callback ERR_EXPLAIN("Object has no callback named: %s" + p_callback); ERR_FAIL_COND_V(!p_object->has_method(p_callback), false); + // Build a new InterpolationData InterpolateData data; data.active = true; data.type = INTER_CALLBACK; @@ -1119,12 +1314,14 @@ bool Tween::interpolate_callback(Object *p_object, real_t p_duration, String p_c data.call_deferred = false; data.elapsed = 0; + // Give the data it's configuration data.id = p_object->get_instance_id(); data.key.push_back(p_callback); data.concatenated_key = p_callback; data.duration = p_duration; data.delay = 0; + // Add arguments to the interpolation int args = 0; if (p_arg5.get_type() != Variant::NIL) args = 5; @@ -1146,23 +1343,30 @@ bool Tween::interpolate_callback(Object *p_object, real_t p_duration, String p_c data.arg[3] = p_arg4; data.arg[4] = p_arg5; + // Add the new interpolation _push_interpolate_data(data); return true; } bool Tween::interpolate_deferred_callback(Object *p_object, real_t p_duration, String p_callback, VARIANT_ARG_DECLARE) { - + // If we are already updating, call this function again later if (pending_update != 0) { _add_pending_command("interpolate_deferred_callback", p_object, p_duration, p_callback, p_arg1, p_arg2, p_arg3, p_arg4, p_arg5); return true; } + + // Check that the target object is valid ERR_FAIL_COND_V(p_object == NULL, false); ERR_FAIL_COND_V(!ObjectDB::instance_validate(p_object), false); + + // No negative durations allowed ERR_FAIL_COND_V(p_duration < 0, false); + // Confirm the callback exists on the object ERR_EXPLAIN("Object has no callback named: %s" + p_callback); ERR_FAIL_COND_V(!p_object->has_method(p_callback), false); + // Create a new InterpolateData for the callback InterpolateData data; data.active = true; data.type = INTER_CALLBACK; @@ -1170,12 +1374,14 @@ bool Tween::interpolate_deferred_callback(Object *p_object, real_t p_duration, S data.call_deferred = true; data.elapsed = 0; + // Give the data it's configuration data.id = p_object->get_instance_id(); data.key.push_back(p_callback); data.concatenated_key = p_callback; data.duration = p_duration; data.delay = 0; + // Collect arguments for the callback int args = 0; if (p_arg5.get_type() != Variant::NIL) args = 5; @@ -1197,32 +1403,46 @@ bool Tween::interpolate_deferred_callback(Object *p_object, real_t p_duration, S data.arg[3] = p_arg4; data.arg[4] = p_arg5; + // Add the new interpolation _push_interpolate_data(data); return true; } bool Tween::follow_property(Object *p_object, NodePath p_property, Variant p_initial_val, Object *p_target, NodePath p_target_property, real_t p_duration, TransitionType p_trans_type, EaseType p_ease_type, real_t p_delay) { + // If we are already updating, call this function again later if (pending_update != 0) { _add_pending_command("follow_property", p_object, p_property, p_initial_val, p_target, p_target_property, p_duration, p_trans_type, p_ease_type, p_delay); return true; } + + // Get the two properties from their paths p_property = p_property.get_as_property_path(); p_target_property = p_target_property.get_as_property_path(); + // If no initial value is given, grab it from the source object + // TODO: Is this documented? It's really helpful for decluttering tweens if (p_initial_val.get_type() == Variant::NIL) p_initial_val = p_object->get_indexed(p_property.get_subnames()); - // convert INT to REAL is better for interpolaters + // Convert initial INT values to REAL as they are better for interpolation if (p_initial_val.get_type() == Variant::INT) p_initial_val = p_initial_val.operator real_t(); + // Confirm the source and target objects are valid ERR_FAIL_COND_V(p_object == NULL, false); ERR_FAIL_COND_V(!ObjectDB::instance_validate(p_object), false); ERR_FAIL_COND_V(p_target == NULL, false); ERR_FAIL_COND_V(!ObjectDB::instance_validate(p_target), false); - ERR_FAIL_COND_V(p_duration <= 0, false); + + // No negative durations + ERR_FAIL_COND_V(p_duration < 0, false); + + // Ensure transition and easing types are valid ERR_FAIL_COND_V(p_trans_type < 0 || p_trans_type >= TRANS_COUNT, false); ERR_FAIL_COND_V(p_ease_type < 0 || p_ease_type >= EASE_COUNT, false); + + // No negative delays ERR_FAIL_COND_V(p_delay < 0, false); + // Confirm the source and target objects have the desired properties bool prop_valid = false; p_object->get_indexed(p_property.get_subnames(), &prop_valid); ERR_FAIL_COND_V(!prop_valid, false); @@ -1231,16 +1451,20 @@ bool Tween::follow_property(Object *p_object, NodePath p_property, Variant p_ini Variant target_val = p_target->get_indexed(p_target_property.get_subnames(), &target_prop_valid); ERR_FAIL_COND_V(!target_prop_valid, false); - // convert INT to REAL is better for interpolaters + // Convert target INT to REAL since it is better for interpolation if (target_val.get_type() == Variant::INT) target_val = target_val.operator real_t(); + + // Verify that the target value and initial value are the same type ERR_FAIL_COND_V(target_val.get_type() != p_initial_val.get_type(), false); + // Create a new InterpolateData InterpolateData data; data.active = true; data.type = FOLLOW_PROPERTY; data.finish = false; data.elapsed = 0; + // Give the InterpolateData it's configuration data.id = p_object->get_instance_id(); data.key = p_property.get_subnames(); data.concatenated_key = p_property.get_concatenated_subnames(); @@ -1252,46 +1476,59 @@ bool Tween::follow_property(Object *p_object, NodePath p_property, Variant p_ini data.ease_type = p_ease_type; data.delay = p_delay; + // Add the interpolation _push_interpolate_data(data); return true; } bool Tween::follow_method(Object *p_object, StringName p_method, Variant p_initial_val, Object *p_target, StringName p_target_method, real_t p_duration, TransitionType p_trans_type, EaseType p_ease_type, real_t p_delay) { + // If we are currently updating, call this function again later if (pending_update != 0) { _add_pending_command("follow_method", p_object, p_method, p_initial_val, p_target, p_target_method, p_duration, p_trans_type, p_ease_type, p_delay); return true; } - // convert INT to REAL is better for interpolaters + // Convert initial INT values to REAL as they are better for interpolation if (p_initial_val.get_type() == Variant::INT) p_initial_val = p_initial_val.operator real_t(); + // Verify the source and target objects are valid ERR_FAIL_COND_V(p_object == NULL, false); ERR_FAIL_COND_V(!ObjectDB::instance_validate(p_object), false); ERR_FAIL_COND_V(p_target == NULL, false); ERR_FAIL_COND_V(!ObjectDB::instance_validate(p_target), false); - ERR_FAIL_COND_V(p_duration <= 0, false); + + // No negative durations + ERR_FAIL_COND_V(p_duration < 0, false); + + // Ensure that the transition and ease types are valid ERR_FAIL_COND_V(p_trans_type < 0 || p_trans_type >= TRANS_COUNT, false); ERR_FAIL_COND_V(p_ease_type < 0 || p_ease_type >= EASE_COUNT, false); + + // No negative delays ERR_FAIL_COND_V(p_delay < 0, false); + // Confirm both objects have the target methods ERR_EXPLAIN("Object has no method named: %s" + p_method); ERR_FAIL_COND_V(!p_object->has_method(p_method), false); ERR_EXPLAIN("Target has no method named: %s" + p_target_method); ERR_FAIL_COND_V(!p_target->has_method(p_target_method), false); + // Call the method to get the target value Variant::CallError error; Variant target_val = p_target->call(p_target_method, NULL, 0, error); ERR_FAIL_COND_V(error.error != Variant::CallError::CALL_OK, false); - // convert INT to REAL is better for interpolaters + // Convert target INT values to REAL as they are better for interpolation if (target_val.get_type() == Variant::INT) target_val = target_val.operator real_t(); ERR_FAIL_COND_V(target_val.get_type() != p_initial_val.get_type(), false); + // Make the new InterpolateData for the method follow InterpolateData data; data.active = true; data.type = FOLLOW_METHOD; data.finish = false; data.elapsed = 0; + // Give the data it's configuration data.id = p_object->get_instance_id(); data.key.push_back(p_method); data.concatenated_key = p_method; @@ -1303,31 +1540,41 @@ bool Tween::follow_method(Object *p_object, StringName p_method, Variant p_initi data.ease_type = p_ease_type; data.delay = p_delay; + // Add the new interpolation _push_interpolate_data(data); return true; } bool Tween::targeting_property(Object *p_object, NodePath p_property, Object *p_initial, NodePath p_initial_property, Variant p_final_val, real_t p_duration, TransitionType p_trans_type, EaseType p_ease_type, real_t p_delay) { - + // If we are currently updating, call this function again later if (pending_update != 0) { _add_pending_command("targeting_property", p_object, p_property, p_initial, p_initial_property, p_final_val, p_duration, p_trans_type, p_ease_type, p_delay); return true; } + // Grab the target property and the target property p_property = p_property.get_as_property_path(); p_initial_property = p_initial_property.get_as_property_path(); - // convert INT to REAL is better for interpolaters + // Convert the initial INT values to REAL as they are better for Interpolation if (p_final_val.get_type() == Variant::INT) p_final_val = p_final_val.operator real_t(); + // Verify both objects are valid ERR_FAIL_COND_V(p_object == NULL, false); ERR_FAIL_COND_V(!ObjectDB::instance_validate(p_object), false); ERR_FAIL_COND_V(p_initial == NULL, false); ERR_FAIL_COND_V(!ObjectDB::instance_validate(p_initial), false); - ERR_FAIL_COND_V(p_duration <= 0, false); + + // No negative durations + ERR_FAIL_COND_V(p_duration < 0, false); + + // Ensure transition and easing types are valid ERR_FAIL_COND_V(p_trans_type < 0 || p_trans_type >= TRANS_COUNT, false); ERR_FAIL_COND_V(p_ease_type < 0 || p_ease_type >= EASE_COUNT, false); + + // No negative delays ERR_FAIL_COND_V(p_delay < 0, false); + // Ensure the initial and target properties exist on their objects bool prop_valid = false; p_object->get_indexed(p_property.get_subnames(), &prop_valid); ERR_FAIL_COND_V(!prop_valid, false); @@ -1336,16 +1583,18 @@ bool Tween::targeting_property(Object *p_object, NodePath p_property, Object *p_ Variant initial_val = p_initial->get_indexed(p_initial_property.get_subnames(), &initial_prop_valid); ERR_FAIL_COND_V(!initial_prop_valid, false); - // convert INT to REAL is better for interpolaters + // Convert the initial INT value to REAL as it is better for interpolation if (initial_val.get_type() == Variant::INT) initial_val = initial_val.operator real_t(); ERR_FAIL_COND_V(initial_val.get_type() != p_final_val.get_type(), false); + // Build the InterpolateData object InterpolateData data; data.active = true; data.type = TARGETING_PROPERTY; data.finish = false; data.elapsed = 0; + // Give the data it's configuration data.id = p_object->get_instance_id(); data.key = p_property.get_subnames(); data.concatenated_key = p_property.get_concatenated_subnames(); @@ -1358,49 +1607,64 @@ bool Tween::targeting_property(Object *p_object, NodePath p_property, Object *p_ data.ease_type = p_ease_type; data.delay = p_delay; + // Ensure there is a valid delta if (!_calc_delta_val(data.initial_val, data.final_val, data.delta_val)) return false; + // Add the interpolation _push_interpolate_data(data); return true; } bool Tween::targeting_method(Object *p_object, StringName p_method, Object *p_initial, StringName p_initial_method, Variant p_final_val, real_t p_duration, TransitionType p_trans_type, EaseType p_ease_type, real_t p_delay) { + // If we are currently updating, call this function again later if (pending_update != 0) { _add_pending_command("targeting_method", p_object, p_method, p_initial, p_initial_method, p_final_val, p_duration, p_trans_type, p_ease_type, p_delay); return true; } - // convert INT to REAL is better for interpolaters + + // Convert final INT values to REAL as they are better for interpolation if (p_final_val.get_type() == Variant::INT) p_final_val = p_final_val.operator real_t(); + // Make sure the given objects are valid ERR_FAIL_COND_V(p_object == NULL, false); ERR_FAIL_COND_V(!ObjectDB::instance_validate(p_object), false); ERR_FAIL_COND_V(p_initial == NULL, false); ERR_FAIL_COND_V(!ObjectDB::instance_validate(p_initial), false); - ERR_FAIL_COND_V(p_duration <= 0, false); + + // No negative durations + ERR_FAIL_COND_V(p_duration < 0, false); + + // Ensure transition and easing types are valid ERR_FAIL_COND_V(p_trans_type < 0 || p_trans_type >= TRANS_COUNT, false); ERR_FAIL_COND_V(p_ease_type < 0 || p_ease_type >= EASE_COUNT, false); + + // No negative delays ERR_FAIL_COND_V(p_delay < 0, false); + // Make sure both objects have the given method ERR_EXPLAIN("Object has no method named: %s" + p_method); ERR_FAIL_COND_V(!p_object->has_method(p_method), false); ERR_EXPLAIN("Initial Object has no method named: %s" + p_initial_method); ERR_FAIL_COND_V(!p_initial->has_method(p_initial_method), false); + // Call the method to get the initial value Variant::CallError error; Variant initial_val = p_initial->call(p_initial_method, NULL, 0, error); ERR_FAIL_COND_V(error.error != Variant::CallError::CALL_OK, false); - // convert INT to REAL is better for interpolaters + // Convert initial INT values to REAL as they aer better for interpolation if (initial_val.get_type() == Variant::INT) initial_val = initial_val.operator real_t(); ERR_FAIL_COND_V(initial_val.get_type() != p_final_val.get_type(), false); + // Build the new InterpolateData object InterpolateData data; data.active = true; data.type = TARGETING_METHOD; data.finish = false; data.elapsed = 0; + // Configure the data data.id = p_object->get_instance_id(); data.key.push_back(p_method); data.concatenated_key = p_method; @@ -1413,16 +1677,17 @@ bool Tween::targeting_method(Object *p_object, StringName p_method, Object *p_in data.ease_type = p_ease_type; data.delay = p_delay; + // Ensure there is a valid delta if (!_calc_delta_val(data.initial_val, data.final_val, data.delta_val)) return false; + // Add the interpolation _push_interpolate_data(data); return true; } Tween::Tween() { - - //String autoplay; + // Initialize tween attributes tween_process_mode = TWEEN_PROCESS_IDLE; repeat = false; speed_scale = 1; diff --git a/scene/animation/tween.h b/scene/animation/tween.h index 6fe3bffdbe..64ce099ecd 100644 --- a/scene/animation/tween.h +++ b/scene/animation/tween.h @@ -135,6 +135,7 @@ private: void _tween_process(float p_delta); void _remove_by_uid(int uid); void _push_interpolate_data(InterpolateData &p_data); + bool _build_interpolation(InterpolateType p_interpolation_type, Object *p_object, NodePath *p_property, StringName *p_method, Variant p_initial_val, Variant p_final_val, real_t p_duration, TransitionType p_trans_type, EaseType p_ease_type, real_t p_delay); protected: bool _set(const StringName &p_name, const Variant &p_value); diff --git a/scene/audio/audio_stream_player.cpp b/scene/audio/audio_stream_player.cpp index 144e58d8b9..2def9fe8fc 100644 --- a/scene/audio/audio_stream_player.cpp +++ b/scene/audio/audio_stream_player.cpp @@ -32,8 +32,7 @@ #include "core/engine.h" - -void AudioStreamPlayer::_mix_to_bus(const AudioFrame *p_frames,int p_amount) { +void AudioStreamPlayer::_mix_to_bus(const AudioFrame *p_frames, int p_amount) { int bus_index = AudioServer::get_singleton()->thread_find_bus_index(bus); @@ -66,10 +65,8 @@ void AudioStreamPlayer::_mix_to_bus(const AudioFrame *p_frames,int p_amount) { } } - void AudioStreamPlayer::_mix_internal(bool p_fadeout) { - //get data AudioFrame *buffer = mix_buffer.ptrw(); int buffer_size = mix_buffer.size(); @@ -94,15 +91,14 @@ void AudioStreamPlayer::_mix_internal(bool p_fadeout) { //set volume for next mix mix_volume_db = target_volume; - _mix_to_bus(buffer,buffer_size); - + _mix_to_bus(buffer, buffer_size); } void AudioStreamPlayer::_mix_audio() { if (use_fadeout) { - _mix_to_bus(fadeout_buffer.ptr(),fadeout_buffer.size()); - use_fadeout=false; + _mix_to_bus(fadeout_buffer.ptr(), fadeout_buffer.size()); + use_fadeout = false; } if (!stream_playback.is_valid() || !active || @@ -121,7 +117,7 @@ void AudioStreamPlayer::_mix_audio() { if (setstop) { _mix_internal(true); stream_playback->stop(); - setstop=false; + setstop = false; } if (setseek >= 0.0 && !stop_has_priority) { @@ -154,7 +150,7 @@ void AudioStreamPlayer::_notification(int p_what) { if (p_what == NOTIFICATION_INTERNAL_PROCESS) { if (!active || (setseek < 0 && !stream_playback->is_playing())) { - active = false; + active = false; set_process_internal(false); emit_signal("finished"); } @@ -200,7 +196,7 @@ void AudioStreamPlayer::set_stream(Ref<AudioStream> p_stream) { vol += vol_inc; } - use_fadeout=true; + use_fadeout = true; } mix_buffer.resize(AudioServer::get_singleton()->thread_get_mix_buffer_size()); @@ -252,7 +248,7 @@ void AudioStreamPlayer::play(float p_from_pos) { if (stream_playback.is_valid()) { //mix_volume_db = volume_db; do not reset volume ramp here, can cause clicks setseek = p_from_pos; - stop_has_priority=false; + stop_has_priority = false; active = true; set_process_internal(true); } @@ -268,8 +264,8 @@ void AudioStreamPlayer::seek(float p_seconds) { void AudioStreamPlayer::stop() { if (stream_playback.is_valid() && active) { - setstop=true; - stop_has_priority=true; + setstop = true; + stop_has_priority = true; } } @@ -357,7 +353,7 @@ void AudioStreamPlayer::_validate_property(PropertyInfo &property) const { if (property.name == "bus") { String options; - for (int i = 0; i <AudioServer::get_singleton()->get_bus_count(); i++) { + for (int i = 0; i < AudioServer::get_singleton()->get_bus_count(); i++) { if (i > 0) options += ","; String name = AudioServer::get_singleton()->get_bus_name(i); @@ -442,8 +438,8 @@ AudioStreamPlayer::AudioStreamPlayer() { stream_paused_fade = false; mix_target = MIX_TARGET_STEREO; fadeout_buffer.resize(512); - setstop=false; - use_fadeout=false; + setstop = false; + use_fadeout = false; AudioServer::get_singleton()->connect("bus_layout_changed", this, "_bus_layout_changed"); } diff --git a/scene/audio/audio_stream_player.h b/scene/audio/audio_stream_player.h index 0b782b67e7..7987bd7e7d 100644 --- a/scene/audio/audio_stream_player.h +++ b/scene/audio/audio_stream_player.h @@ -112,7 +112,6 @@ public: Ref<AudioStreamPlayback> get_stream_playback(); - AudioStreamPlayer(); ~AudioStreamPlayer(); }; diff --git a/scene/gui/base_button.cpp b/scene/gui/base_button.cpp index e95781c181..fadf5e432c 100644 --- a/scene/gui/base_button.cpp +++ b/scene/gui/base_button.cpp @@ -56,185 +56,53 @@ void BaseButton::_gui_input(Ref<InputEvent> p_event) { if (status.disabled) // no interaction with disabled button return; - Ref<InputEventMouseButton> b = p_event; + Ref<InputEventMouseButton> mouse_button = p_event; + bool ui_accept = p_event->is_action("ui_accept") && !p_event->is_echo(); - if (b.is_valid()) { - if (((1 << (b->get_button_index() - 1)) & button_mask) == 0) - return; - - if (status.pressing_button) - return; - - if (action_mode == ACTION_MODE_BUTTON_PRESS) { - - if (b->is_pressed()) { - - emit_signal("button_down"); - - if (!toggle_mode) { //mouse press attempt - - status.press_attempt = true; - status.pressing_inside = true; + bool button_masked = mouse_button.is_valid() && ((1 << (mouse_button->get_button_index() - 1)) & button_mask) > 0; + if (button_masked || ui_accept) { + if (p_event->is_pressed()) { + status.press_attempt = true; + status.pressing_inside = true; + emit_signal("button_down"); + } - pressed(); - if (get_script_instance()) { - Variant::CallError ce; - get_script_instance()->call(SceneStringNames::get_singleton()->_pressed, NULL, 0, ce); + if (status.press_attempt && status.pressing_inside) { + if (toggle_mode) { + if ((p_event->is_pressed() && action_mode == ACTION_MODE_BUTTON_PRESS) || (!p_event->is_pressed() && action_mode == ACTION_MODE_BUTTON_RELEASE)) { + if (action_mode == ACTION_MODE_BUTTON_PRESS) { + status.press_attempt = false; + status.pressing_inside = false; } - - _unpress_group(); - emit_signal("pressed"); - - } else { - status.pressed = !status.pressed; - pressed(); - _unpress_group(); - emit_signal("pressed"); - - toggled(status.pressed); - if (get_script_instance()) { - get_script_instance()->call(SceneStringNames::get_singleton()->_toggled, status.pressed); - } - emit_signal("toggled", status.pressed); + _toggled(status.pressed); + _pressed(); } - } else { - - emit_signal("button_up"); - - /* this is pointless if (status.press_attempt && status.pressing_inside) { - //released(); - emit_signal("released"); + if (!p_event->is_pressed()) { + _pressed(); } -*/ - status.press_attempt = false; } - update(); - return; } - if (b->is_pressed()) { - - status.press_attempt = true; - status.pressing_inside = true; - emit_signal("button_down"); - - } else { - + if (!p_event->is_pressed()) { // pressed state should be correct with button_up signal emit_signal("button_up"); - - if (status.press_attempt && status.pressing_inside) { - - if (!toggle_mode) { //mouse press attempt - - pressed(); - if (get_script_instance()) { - Variant::CallError ce; - get_script_instance()->call(SceneStringNames::get_singleton()->_pressed, NULL, 0, ce); - } - - _unpress_group(); - emit_signal("pressed"); - - } else { - - status.pressed = !status.pressed; - - pressed(); - _unpress_group(); - emit_signal("pressed"); - - toggled(status.pressed); - if (get_script_instance()) { - get_script_instance()->call(SceneStringNames::get_singleton()->_toggled, status.pressed); - } - emit_signal("toggled", status.pressed); - } - } - status.press_attempt = false; } update(); + return; } - Ref<InputEventMouseMotion> mm = p_event; - - if (mm.is_valid()) { - if (status.press_attempt && status.pressing_button == 0) { + Ref<InputEventMouseMotion> mouse_motion = p_event; + if (mouse_motion.is_valid()) { + if (status.press_attempt) { bool last_press_inside = status.pressing_inside; - status.pressing_inside = has_point(mm->get_position()); - if (last_press_inside != status.pressing_inside) + status.pressing_inside = has_point(mouse_motion->get_position()); + if (last_press_inside != status.pressing_inside) { update(); - } - } - - if (!mm.is_valid() && !b.is_valid()) { - - if (p_event->is_echo()) { - return; - } - - if (status.disabled) { - return; - } - - if (status.press_attempt && status.pressing_button == 0) { - return; - } - - if (p_event->is_action("ui_accept")) { - - if (p_event->is_pressed()) { - - status.pressing_button++; - status.press_attempt = true; - status.pressing_inside = true; - emit_signal("button_down"); - - } else if (status.press_attempt) { - - if (status.pressing_button) - status.pressing_button--; - - if (status.pressing_button) - return; - - status.press_attempt = false; - status.pressing_inside = false; - - emit_signal("button_up"); - - if (!toggle_mode) { //mouse press attempt - - pressed(); - if (get_script_instance()) { - Variant::CallError ce; - get_script_instance()->call(SceneStringNames::get_singleton()->_pressed, NULL, 0, ce); - } - - _unpress_group(); - emit_signal("pressed"); - } else { - - status.pressed = !status.pressed; - - pressed(); - _unpress_group(); - emit_signal("pressed"); - - toggled(status.pressed); - if (get_script_instance()) { - get_script_instance()->call(SceneStringNames::get_singleton()->_toggled, status.pressed); - } - emit_signal("toggled", status.pressed); - } } - - accept_event(); - update(); } } } @@ -255,7 +123,6 @@ void BaseButton::_notification(int p_what) { if (status.press_attempt) { status.press_attempt = false; - status.pressing_button = 0; update(); } } @@ -268,9 +135,8 @@ void BaseButton::_notification(int p_what) { if (p_what == NOTIFICATION_FOCUS_EXIT) { - if (status.pressing_button && status.press_attempt) { + if (status.press_attempt) { status.press_attempt = false; - status.pressing_button = 0; status.hovering = false; update(); } else if (status.hovering) { @@ -290,21 +156,31 @@ void BaseButton::_notification(int p_what) { status.hovering = false; status.press_attempt = false; status.pressing_inside = false; - status.pressing_button = 0; } } -void BaseButton::pressed() { +void BaseButton::_pressed() { - if (get_script_instance()) - get_script_instance()->call("pressed"); + if (get_script_instance()) { + get_script_instance()->call(SceneStringNames::get_singleton()->_pressed); + } + pressed(); + emit_signal("pressed"); } -void BaseButton::toggled(bool p_pressed) { +void BaseButton::_toggled(bool p_pressed) { if (get_script_instance()) { - get_script_instance()->call("toggled", p_pressed); + get_script_instance()->call(SceneStringNames::get_singleton()->_toggled, p_pressed); } + toggled(p_pressed); + emit_signal("toggled", p_pressed); +} + +void BaseButton::pressed() { +} + +void BaseButton::toggled(bool p_pressed) { } void BaseButton::set_disabled(bool p_disabled) { @@ -318,7 +194,6 @@ void BaseButton::set_disabled(bool p_disabled) { } status.press_attempt = false; status.pressing_inside = false; - status.pressing_button = 0; } update(); _change_notify("disabled"); @@ -341,6 +216,8 @@ void BaseButton::set_pressed(bool p_pressed) { if (p_pressed) { _unpress_group(); } + _toggled(status.pressed); + update(); } @@ -458,9 +335,6 @@ bool BaseButton::is_keep_pressed_outside() const { void BaseButton::set_shortcut(const Ref<ShortCut> &p_shortcut) { - if (shortcut.is_null() == p_shortcut.is_null()) - return; - shortcut = p_shortcut; set_process_unhandled_input(shortcut.is_valid()); } @@ -477,11 +351,10 @@ void BaseButton::_unhandled_input(Ref<InputEvent> p_event) { return; //ignore because of modal window if (is_toggle_mode()) { - set_pressed(!is_pressed()); - emit_signal("toggled", is_pressed()); + set_pressed(!is_pressed()); // Also calls _toggled() internally. } - emit_signal("pressed"); + _pressed(); } } @@ -585,7 +458,6 @@ BaseButton::BaseButton() { status.hovering = false; status.pressing_inside = false; status.disabled = false; - status.pressing_button = 0; set_focus_mode(FOCUS_ALL); enabled_focus_mode = FOCUS_ALL; action_mode = ACTION_MODE_BUTTON_RELEASE; diff --git a/scene/gui/base_button.h b/scene/gui/base_button.h index 22a8f6d8fe..abb3f58d6b 100644 --- a/scene/gui/base_button.h +++ b/scene/gui/base_button.h @@ -65,13 +65,14 @@ private: bool pressing_inside; bool disabled; - int pressing_button; } status; Ref<ButtonGroup> button_group; void _unpress_group(); + void _pressed(); + void _toggled(bool p_pressed); protected: virtual void pressed(); diff --git a/scene/gui/container.cpp b/scene/gui/container.cpp index 1f9bfb9936..c9cf5f8308 100644 --- a/scene/gui/container.cpp +++ b/scene/gui/container.cpp @@ -177,7 +177,7 @@ String Container::get_configuration_warning() const { if (warning != String()) { warning += "\n"; } - warning += TTR("Container by itself serves no purpose unless a script configures it's children placement behavior.\nIf you don't intend to add a script, then please use a plain 'Control' node instead."); + warning += TTR("Container by itself serves no purpose unless a script configures its children placement behavior.\nIf you don't intend to add a script, then please use a plain 'Control' node instead."); } return warning; } diff --git a/scene/gui/control.cpp b/scene/gui/control.cpp index a38f97a90c..0845b56828 100644 --- a/scene/gui/control.cpp +++ b/scene/gui/control.cpp @@ -29,22 +29,23 @@ /*************************************************************************/ #include "control.h" -#include "core/project_settings.h" -#include "scene/main/canvas_layer.h" -#include "scene/main/viewport.h" -#include "servers/visual_server.h" #include "core/message_queue.h" #include "core/os/keyboard.h" #include "core/os/os.h" #include "core/print_string.h" +#include "core/project_settings.h" #include "scene/gui/label.h" #include "scene/gui/panel.h" +#include "scene/main/canvas_layer.h" +#include "scene/main/viewport.h" #include "scene/scene_string_names.h" +#include "servers/visual_server.h" + #ifdef TOOLS_ENABLED #include "editor/editor_settings.h" +#include "editor/plugins/canvas_item_editor_plugin.h" #endif -#include <stdio.h> Dictionary Control::_edit_get_state() const { @@ -66,6 +67,7 @@ Dictionary Control::_edit_get_state() const { s["margins"] = margins; return s; } + void Control::_edit_set_state(const Dictionary &p_state) { Dictionary state = p_state; @@ -87,7 +89,12 @@ void Control::_edit_set_state(const Dictionary &p_state) { } void Control::_edit_set_position(const Point2 &p_position) { +#ifdef TOOLS_ENABLED + set_position(p_position, CanvasItemEditor::get_singleton()->is_anchors_mode_enabled()); +#else + // Unlikely to happen. TODO: enclose all _edit_ functions into TOOLS_ENABLED set_position(p_position); +#endif }; Point2 Control::_edit_get_position() const { @@ -103,8 +110,14 @@ Size2 Control::_edit_get_scale() const { } void Control::_edit_set_rect(const Rect2 &p_edit_rect) { +#ifdef TOOLS_ENABLED + set_position((get_position() + get_transform().basis_xform(p_edit_rect.position)).snapped(Vector2(1, 1)), CanvasItemEditor::get_singleton()->is_anchors_mode_enabled()); + set_size(p_edit_rect.size.snapped(Vector2(1, 1)), CanvasItemEditor::get_singleton()->is_anchors_mode_enabled()); +#else + // Unlikely to happen. TODO: enclose all _edit_ functions into TOOLS_ENABLED set_position((get_position() + get_transform().basis_xform(p_edit_rect.position)).snapped(Vector2(1, 1))); set_size(p_edit_rect.size.snapped(Vector2(1, 1))); +#endif } Rect2 Control::_edit_get_rect() const { @@ -276,7 +289,7 @@ void Control::_update_minimum_size() { Size2 minsize = get_combined_minimum_size(); if (minsize.x > data.size_cache.x || minsize.y > data.size_cache.y) { - _size_changed(); + set_size(data.size_cache); } data.updating_last_minimum_size = false; @@ -1366,7 +1379,7 @@ void Control::set_anchor(Margin p_margin, float p_anchor, bool p_keep_margin, bo float previous_margin_pos = data.margin[p_margin] + data.anchor[p_margin] * parent_range; float previous_opposite_margin_pos = data.margin[(p_margin + 2) % 4] + data.anchor[(p_margin + 2) % 4] * parent_range; - data.anchor[p_margin] = CLAMP(p_anchor, 0.0, 1.0); + data.anchor[p_margin] = p_anchor; if (((p_margin == MARGIN_LEFT || p_margin == MARGIN_TOP) && data.anchor[p_margin] > data.anchor[(p_margin + 2) % 4]) || ((p_margin == MARGIN_RIGHT || p_margin == MARGIN_BOTTOM) && data.anchor[p_margin] < data.anchor[(p_margin + 2) % 4])) { @@ -1395,15 +1408,7 @@ void Control::set_anchor(Margin p_margin, float p_anchor, bool p_keep_margin, bo } void Control::_set_anchor(Margin p_margin, float p_anchor) { -#ifdef TOOLS_ENABLED - if (is_inside_tree() && Engine::get_singleton()->is_editor_hint()) { - set_anchor(p_margin, p_anchor, EDITOR_DEF("editors/2d/keep_margins_when_changing_anchors", false)); - } else { - set_anchor(p_margin, p_anchor, false); - } -#else - set_anchor(p_margin, p_anchor, false); -#endif + set_anchor(p_margin, p_anchor); } void Control::set_anchor_and_margin(Margin p_margin, float p_anchor, float p_pos, bool p_push_opposite_anchor) { @@ -1412,7 +1417,7 @@ void Control::set_anchor_and_margin(Margin p_margin, float p_anchor, float p_pos set_margin(p_margin, p_pos); } -void Control::set_anchors_preset(LayoutPreset p_preset, bool p_keep_margin) { +void Control::set_anchors_preset(LayoutPreset p_preset, bool p_keep_margins) { //Left switch (p_preset) { case PRESET_TOP_LEFT: @@ -1423,21 +1428,21 @@ void Control::set_anchors_preset(LayoutPreset p_preset, bool p_keep_margin) { case PRESET_LEFT_WIDE: case PRESET_HCENTER_WIDE: case PRESET_WIDE: - set_anchor(MARGIN_LEFT, ANCHOR_BEGIN, p_keep_margin); + set_anchor(MARGIN_LEFT, ANCHOR_BEGIN, p_keep_margins); break; case PRESET_CENTER_TOP: case PRESET_CENTER_BOTTOM: case PRESET_CENTER: case PRESET_VCENTER_WIDE: - set_anchor(MARGIN_LEFT, 0.5, p_keep_margin); + set_anchor(MARGIN_LEFT, 0.5, p_keep_margins); break; case PRESET_TOP_RIGHT: case PRESET_BOTTOM_RIGHT: case PRESET_CENTER_RIGHT: case PRESET_RIGHT_WIDE: - set_anchor(MARGIN_LEFT, ANCHOR_END, p_keep_margin); + set_anchor(MARGIN_LEFT, ANCHOR_END, p_keep_margins); break; } @@ -1451,21 +1456,21 @@ void Control::set_anchors_preset(LayoutPreset p_preset, bool p_keep_margin) { case PRESET_TOP_WIDE: case PRESET_VCENTER_WIDE: case PRESET_WIDE: - set_anchor(MARGIN_TOP, ANCHOR_BEGIN, p_keep_margin); + set_anchor(MARGIN_TOP, ANCHOR_BEGIN, p_keep_margins); break; case PRESET_CENTER_LEFT: case PRESET_CENTER_RIGHT: case PRESET_CENTER: case PRESET_HCENTER_WIDE: - set_anchor(MARGIN_TOP, 0.5, p_keep_margin); + set_anchor(MARGIN_TOP, 0.5, p_keep_margins); break; case PRESET_BOTTOM_LEFT: case PRESET_BOTTOM_RIGHT: case PRESET_CENTER_BOTTOM: case PRESET_BOTTOM_WIDE: - set_anchor(MARGIN_TOP, ANCHOR_END, p_keep_margin); + set_anchor(MARGIN_TOP, ANCHOR_END, p_keep_margins); break; } @@ -1475,14 +1480,14 @@ void Control::set_anchors_preset(LayoutPreset p_preset, bool p_keep_margin) { case PRESET_BOTTOM_LEFT: case PRESET_CENTER_LEFT: case PRESET_LEFT_WIDE: - set_anchor(MARGIN_RIGHT, ANCHOR_BEGIN, p_keep_margin); + set_anchor(MARGIN_RIGHT, ANCHOR_BEGIN, p_keep_margins); break; case PRESET_CENTER_TOP: case PRESET_CENTER_BOTTOM: case PRESET_CENTER: case PRESET_VCENTER_WIDE: - set_anchor(MARGIN_RIGHT, 0.5, p_keep_margin); + set_anchor(MARGIN_RIGHT, 0.5, p_keep_margins); break; case PRESET_TOP_RIGHT: @@ -1493,7 +1498,7 @@ void Control::set_anchors_preset(LayoutPreset p_preset, bool p_keep_margin) { case PRESET_BOTTOM_WIDE: case PRESET_HCENTER_WIDE: case PRESET_WIDE: - set_anchor(MARGIN_RIGHT, ANCHOR_END, p_keep_margin); + set_anchor(MARGIN_RIGHT, ANCHOR_END, p_keep_margins); break; } @@ -1503,14 +1508,14 @@ void Control::set_anchors_preset(LayoutPreset p_preset, bool p_keep_margin) { case PRESET_TOP_RIGHT: case PRESET_CENTER_TOP: case PRESET_TOP_WIDE: - set_anchor(MARGIN_BOTTOM, ANCHOR_BEGIN, p_keep_margin); + set_anchor(MARGIN_BOTTOM, ANCHOR_BEGIN, p_keep_margins); break; case PRESET_CENTER_LEFT: case PRESET_CENTER_RIGHT: case PRESET_CENTER: case PRESET_HCENTER_WIDE: - set_anchor(MARGIN_BOTTOM, 0.5, p_keep_margin); + set_anchor(MARGIN_BOTTOM, 0.5, p_keep_margins); break; case PRESET_BOTTOM_LEFT: @@ -1521,7 +1526,7 @@ void Control::set_anchors_preset(LayoutPreset p_preset, bool p_keep_margin) { case PRESET_BOTTOM_WIDE: case PRESET_VCENTER_WIDE: case PRESET_WIDE: - set_anchor(MARGIN_BOTTOM, ANCHOR_END, p_keep_margin); + set_anchor(MARGIN_BOTTOM, ANCHOR_END, p_keep_margins); break; } } @@ -1714,7 +1719,11 @@ Point2 Control::get_global_position() const { return get_global_transform().get_origin(); } -void Control::set_global_position(const Point2 &p_point) { +void Control::_set_global_position(const Point2 &p_point) { + set_global_position(p_point); +} + +void Control::set_global_position(const Point2 &p_point, bool p_keep_margins) { Transform2D inv; @@ -1723,7 +1732,7 @@ void Control::set_global_position(const Point2 &p_point) { inv = data.parent_canvas_item->get_global_transform().affine_inverse(); } - set_position(inv.xform(p_point)); + set_position(inv.xform(p_point), p_keep_margins); } Rect2 Control::_compute_child_rect(const float p_anchors[4], const float p_margins[4]) const { @@ -1737,6 +1746,18 @@ Rect2 Control::_compute_child_rect(const float p_anchors[4], const float p_margi return result; } +void Control::_compute_anchors(Rect2 p_rect, const float p_margins[4], float (&r_anchors)[4]) { + + Size2 parent_rect_size = get_parent_anchorable_rect().size; + ERR_FAIL_COND(parent_rect_size.x == 0.0); + ERR_FAIL_COND(parent_rect_size.y == 0.0); + + r_anchors[0] = (p_rect.position.x - p_margins[0]) / parent_rect_size.x; + r_anchors[1] = (p_rect.position.y - p_margins[1]) / parent_rect_size.y; + r_anchors[2] = (p_rect.position.x + p_rect.size.x - p_margins[2]) / parent_rect_size.x; + r_anchors[3] = (p_rect.position.y + p_rect.size.y - p_margins[3]) / parent_rect_size.y; +} + void Control::_compute_margins(Rect2 p_rect, const float p_anchors[4], float (&r_margins)[4]) { Size2 parent_rect_size = get_parent_anchorable_rect().size; @@ -1746,13 +1767,28 @@ void Control::_compute_margins(Rect2 p_rect, const float p_anchors[4], float (&r r_margins[3] = p_rect.position.y + p_rect.size.y - (p_anchors[3] * parent_rect_size.y); } -void Control::set_position(const Size2 &p_point) { +void Control::_set_position(const Size2 &p_point) { + set_position(p_point); +} - _compute_margins(Rect2(p_point, data.size_cache), data.anchor, data.margin); +void Control::set_position(const Size2 &p_point, bool p_keep_margins) { + if (p_keep_margins) { + _compute_anchors(Rect2(p_point, data.size_cache), data.margin, data.anchor); + _change_notify("anchor_left"); + _change_notify("anchor_right"); + _change_notify("anchor_top"); + _change_notify("anchor_bottom"); + } else { + _compute_margins(Rect2(p_point, data.size_cache), data.anchor, data.margin); + } _size_changed(); } -void Control::set_size(const Size2 &p_size) { +void Control::_set_size(const Size2 &p_size) { + set_size(p_size); +} + +void Control::set_size(const Size2 &p_size, bool p_keep_margins) { Size2 new_size = p_size; Size2 min = get_combined_minimum_size(); @@ -1761,7 +1797,15 @@ void Control::set_size(const Size2 &p_size) { if (new_size.y < min.y) new_size.y = min.y; - _compute_margins(Rect2(data.pos_cache, new_size), data.anchor, data.margin); + if (p_keep_margins) { + _compute_anchors(Rect2(data.pos_cache, new_size), data.margin, data.anchor); + _change_notify("anchor_left"); + _change_notify("anchor_right"); + _change_notify("anchor_top"); + _change_notify("anchor_bottom"); + } else { + _compute_margins(Rect2(data.pos_cache, new_size), data.anchor, data.margin); + } _size_changed(); } @@ -1799,53 +1843,72 @@ Rect2 Control::get_anchorable_rect() const { void Control::add_icon_override(const StringName &p_name, const Ref<Texture> &p_icon) { - ERR_FAIL_COND(p_icon.is_null()); if (data.icon_override.has(p_name)) { data.icon_override[p_name]->disconnect("changed", this, "_override_changed"); } - data.icon_override[p_name] = p_icon; - if (data.icon_override[p_name].is_valid()) { - data.icon_override[p_name]->connect("changed", this, "_override_changed", Vector<Variant>(), CONNECT_REFERENCE_COUNTED); + + // clear if "null" is passed instead of a icon + if (p_icon.is_null()) { + data.icon_override.erase(p_name); + } else { + data.icon_override[p_name] = p_icon; + if (data.icon_override[p_name].is_valid()) { + data.icon_override[p_name]->connect("changed", this, "_override_changed", Vector<Variant>(), CONNECT_REFERENCE_COUNTED); + } } notification(NOTIFICATION_THEME_CHANGED); } void Control::add_shader_override(const StringName &p_name, const Ref<Shader> &p_shader) { - ERR_FAIL_COND(p_shader.is_null()); + if (data.shader_override.has(p_name)) { data.shader_override[p_name]->disconnect("changed", this, "_override_changed"); } - data.shader_override[p_name] = p_shader; - if (data.shader_override[p_name].is_valid()) { - data.shader_override[p_name]->connect("changed", this, "_override_changed", Vector<Variant>(), CONNECT_REFERENCE_COUNTED); + + // clear if "null" is passed instead of a shader + if (p_shader.is_null()) { + data.shader_override.erase(p_name); + } else { + data.shader_override[p_name] = p_shader; + if (data.shader_override[p_name].is_valid()) { + data.shader_override[p_name]->connect("changed", this, "_override_changed", Vector<Variant>(), CONNECT_REFERENCE_COUNTED); + } } notification(NOTIFICATION_THEME_CHANGED); } void Control::add_style_override(const StringName &p_name, const Ref<StyleBox> &p_style) { - ERR_FAIL_COND(p_style.is_null()); if (data.style_override.has(p_name)) { data.style_override[p_name]->disconnect("changed", this, "_override_changed"); } - data.style_override[p_name] = p_style; - if (data.style_override[p_name].is_valid()) { - data.style_override[p_name]->connect("changed", this, "_override_changed", Vector<Variant>(), CONNECT_REFERENCE_COUNTED); - } + // clear if "null" is passed instead of a style + if (p_style.is_null()) { + data.style_override.erase(p_name); + } else { + data.style_override[p_name] = p_style; + if (data.style_override[p_name].is_valid()) { + data.style_override[p_name]->connect("changed", this, "_override_changed", Vector<Variant>(), CONNECT_REFERENCE_COUNTED); + } + } notification(NOTIFICATION_THEME_CHANGED); } void Control::add_font_override(const StringName &p_name, const Ref<Font> &p_font) { - ERR_FAIL_COND(p_font.is_null()); if (data.font_override.has(p_name)) { data.font_override[p_name]->disconnect("changed", this, "_override_changed"); } - data.font_override[p_name] = p_font; - if (data.font_override[p_name].is_valid()) { - data.font_override[p_name]->connect("changed", this, "_override_changed", Vector<Variant>(), CONNECT_REFERENCE_COUNTED); - } + // clear if "null" is passed instead of a font + if (p_font.is_null()) { + data.font_override.erase(p_name); + } else { + data.font_override[p_name] = p_font; + if (data.font_override[p_name].is_valid()) { + data.font_override[p_name]->connect("changed", this, "_override_changed", Vector<Variant>(), CONNECT_REFERENCE_COUNTED); + } + } notification(NOTIFICATION_THEME_CHANGED); } void Control::add_color_override(const StringName &p_name, const Color &p_color) { @@ -2702,20 +2765,23 @@ void Control::_bind_methods() { ClassDB::bind_method(D_METHOD("accept_event"), &Control::accept_event); ClassDB::bind_method(D_METHOD("get_minimum_size"), &Control::get_minimum_size); ClassDB::bind_method(D_METHOD("get_combined_minimum_size"), &Control::get_combined_minimum_size); - ClassDB::bind_method(D_METHOD("set_anchors_preset", "preset", "keep_margin"), &Control::set_anchors_preset, DEFVAL(false)); + ClassDB::bind_method(D_METHOD("set_anchors_preset", "preset", "keep_margins"), &Control::set_anchors_preset, DEFVAL(false)); ClassDB::bind_method(D_METHOD("set_margins_preset", "preset", "resize_mode", "margin"), &Control::set_margins_preset, DEFVAL(PRESET_MODE_MINSIZE), DEFVAL(0)); ClassDB::bind_method(D_METHOD("set_anchors_and_margins_preset", "preset", "resize_mode", "margin"), &Control::set_anchors_and_margins_preset, DEFVAL(PRESET_MODE_MINSIZE), DEFVAL(0)); - ClassDB::bind_method(D_METHOD("set_anchor", "margin", "anchor", "keep_margin", "push_opposite_anchor"), &Control::set_anchor, DEFVAL(false), DEFVAL(true)); ClassDB::bind_method(D_METHOD("_set_anchor", "margin", "anchor"), &Control::_set_anchor); + ClassDB::bind_method(D_METHOD("set_anchor", "margin", "anchor", "keep_margin", "push_opposite_anchor"), &Control::set_anchor, DEFVAL(false), DEFVAL(true)); ClassDB::bind_method(D_METHOD("get_anchor", "margin"), &Control::get_anchor); ClassDB::bind_method(D_METHOD("set_margin", "margin", "offset"), &Control::set_margin); ClassDB::bind_method(D_METHOD("set_anchor_and_margin", "margin", "anchor", "offset", "push_opposite_anchor"), &Control::set_anchor_and_margin, DEFVAL(false)); ClassDB::bind_method(D_METHOD("set_begin", "position"), &Control::set_begin); ClassDB::bind_method(D_METHOD("set_end", "position"), &Control::set_end); - ClassDB::bind_method(D_METHOD("set_position", "position"), &Control::set_position); - ClassDB::bind_method(D_METHOD("set_size", "size"), &Control::set_size); + ClassDB::bind_method(D_METHOD("set_position", "position", "keep_margins"), &Control::set_position, DEFVAL(false)); + ClassDB::bind_method(D_METHOD("_set_position", "margin"), &Control::_set_position); + ClassDB::bind_method(D_METHOD("set_size", "size", "keep_margins"), &Control::set_size, DEFVAL(false)); + ClassDB::bind_method(D_METHOD("_set_size", "size"), &Control::_set_size); ClassDB::bind_method(D_METHOD("set_custom_minimum_size", "size"), &Control::set_custom_minimum_size); - ClassDB::bind_method(D_METHOD("set_global_position", "position"), &Control::set_global_position); + ClassDB::bind_method(D_METHOD("set_global_position", "position", "keep_margins"), &Control::set_global_position, DEFVAL(false)); + ClassDB::bind_method(D_METHOD("_set_global_position", "position"), &Control::_set_global_position); ClassDB::bind_method(D_METHOD("set_rotation", "radians"), &Control::set_rotation); ClassDB::bind_method(D_METHOD("set_rotation_degrees", "degrees"), &Control::set_rotation_degrees); ClassDB::bind_method(D_METHOD("set_scale", "scale"), &Control::set_scale); @@ -2835,10 +2901,10 @@ void Control::_bind_methods() { BIND_VMETHOD(MethodInfo(Variant::BOOL, "_clips_input")); ADD_GROUP("Anchor", "anchor_"); - ADD_PROPERTYI(PropertyInfo(Variant::REAL, "anchor_left", PROPERTY_HINT_RANGE, "0,1,0.01"), "_set_anchor", "get_anchor", MARGIN_LEFT); - ADD_PROPERTYI(PropertyInfo(Variant::REAL, "anchor_top", PROPERTY_HINT_RANGE, "0,1,0.01"), "_set_anchor", "get_anchor", MARGIN_TOP); - ADD_PROPERTYI(PropertyInfo(Variant::REAL, "anchor_right", PROPERTY_HINT_RANGE, "0,1,0.01"), "_set_anchor", "get_anchor", MARGIN_RIGHT); - ADD_PROPERTYI(PropertyInfo(Variant::REAL, "anchor_bottom", PROPERTY_HINT_RANGE, "0,1,0.01"), "_set_anchor", "get_anchor", MARGIN_BOTTOM); + ADD_PROPERTYI(PropertyInfo(Variant::REAL, "anchor_left", PROPERTY_HINT_RANGE, "0,1,0.01,or_lesser,or_greater"), "_set_anchor", "get_anchor", MARGIN_LEFT); + ADD_PROPERTYI(PropertyInfo(Variant::REAL, "anchor_top", PROPERTY_HINT_RANGE, "0,1,0.01,or_lesser,or_greater"), "_set_anchor", "get_anchor", MARGIN_TOP); + ADD_PROPERTYI(PropertyInfo(Variant::REAL, "anchor_right", PROPERTY_HINT_RANGE, "0,1,0.01,or_lesser,or_greater"), "_set_anchor", "get_anchor", MARGIN_RIGHT); + ADD_PROPERTYI(PropertyInfo(Variant::REAL, "anchor_bottom", PROPERTY_HINT_RANGE, "0,1,0.01,or_lesser,or_greater"), "_set_anchor", "get_anchor", MARGIN_BOTTOM); ADD_GROUP("Margin", "margin_"); ADD_PROPERTYI(PropertyInfo(Variant::INT, "margin_left", PROPERTY_HINT_RANGE, "-4096,4096"), "set_margin", "get_margin", MARGIN_LEFT); @@ -2851,9 +2917,9 @@ void Control::_bind_methods() { ADD_PROPERTY(PropertyInfo(Variant::INT, "grow_vertical", PROPERTY_HINT_ENUM, "Begin,End,Both"), "set_v_grow_direction", "get_v_grow_direction"); ADD_GROUP("Rect", "rect_"); - ADD_PROPERTY(PropertyInfo(Variant::VECTOR2, "rect_position", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_EDITOR), "set_position", "get_position"); - ADD_PROPERTY(PropertyInfo(Variant::VECTOR2, "rect_global_position", PROPERTY_HINT_NONE, "", 0), "set_global_position", "get_global_position"); - ADD_PROPERTY(PropertyInfo(Variant::VECTOR2, "rect_size", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_EDITOR), "set_size", "get_size"); + ADD_PROPERTY(PropertyInfo(Variant::VECTOR2, "rect_position", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_EDITOR), "_set_position", "get_position"); + ADD_PROPERTY(PropertyInfo(Variant::VECTOR2, "rect_global_position", PROPERTY_HINT_NONE, "", 0), "_set_global_position", "get_global_position"); + ADD_PROPERTY(PropertyInfo(Variant::VECTOR2, "rect_size", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_EDITOR), "_set_size", "get_size"); ADD_PROPERTY(PropertyInfo(Variant::VECTOR2, "rect_min_size"), "set_custom_minimum_size", "get_custom_minimum_size"); ADD_PROPERTY(PropertyInfo(Variant::REAL, "rect_rotation", PROPERTY_HINT_RANGE, "-1080,1080,0.01"), "set_rotation_degrees", "get_rotation_degrees"); ADD_PROPERTY(PropertyInfo(Variant::VECTOR2, "rect_scale"), "set_scale", "get_scale"); diff --git a/scene/gui/control.h b/scene/gui/control.h index 5e33f6ba43..a6f9a442ae 100644 --- a/scene/gui/control.h +++ b/scene/gui/control.h @@ -217,6 +217,9 @@ private: Control *_get_focus_neighbour(Margin p_margin, int p_count = 0); void _set_anchor(Margin p_margin, float p_anchor); + void _set_position(const Point2 &p_point); + void _set_global_position(const Point2 &p_point); + void _set_size(const Size2 &p_size); void _propagate_theme_changed(CanvasItem *p_at, Control *p_owner, bool p_assign = true); void _theme_changed(); @@ -229,6 +232,7 @@ private: Rect2 _compute_child_rect(const float p_anchors[4], const float p_margins[4]) const; void _compute_margins(Rect2 p_rect, const float p_anchors[4], float (&r_margins)[4]); + void _compute_anchors(Rect2 p_rect, const float p_margins[4], float (&r_anchors)[4]); void _size_changed(); String _get_tooltip() const; @@ -325,7 +329,7 @@ public: /* POSITIONING */ - void set_anchors_preset(LayoutPreset p_preset, bool p_keep_margin = true); + void set_anchors_preset(LayoutPreset p_preset, bool p_keep_margins = true); void set_margins_preset(LayoutPreset p_preset, LayoutPresetMode p_resize_mode = PRESET_MODE_MINSIZE, int p_margin = 0); void set_anchors_and_margins_preset(LayoutPreset p_preset, LayoutPresetMode p_resize_mode = PRESET_MODE_MINSIZE, int p_margin = 0); @@ -343,12 +347,12 @@ public: Point2 get_begin() const; Point2 get_end() const; - void set_position(const Point2 &p_point); - void set_global_position(const Point2 &p_point); + void set_position(const Point2 &p_point, bool p_keep_margins = false); + void set_global_position(const Point2 &p_point, bool p_keep_margins = false); Point2 get_position() const; Point2 get_global_position() const; - void set_size(const Size2 &p_size); + void set_size(const Size2 &p_size, bool p_keep_margins = false); Size2 get_size() const; Rect2 get_rect() const; diff --git a/scene/gui/file_dialog.cpp b/scene/gui/file_dialog.cpp index 5671b41de8..bc8dcf0e82 100644 --- a/scene/gui/file_dialog.cpp +++ b/scene/gui/file_dialog.cpp @@ -48,8 +48,9 @@ void FileDialog::_notification(int p_what) { if (p_what == NOTIFICATION_ENTER_TREE) { - refresh->set_icon(get_icon("reload")); 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_POPUP_HIDE) { @@ -393,20 +394,19 @@ void FileDialog::update_file_list() { List<String> files; List<String> dirs; - bool isdir; - bool ishidden; - bool show_hidden = show_hidden_files; + bool is_dir; + bool is_hidden; String item; - while ((item = dir_access->get_next(&isdir)) != "") { + while ((item = dir_access->get_next(&is_dir)) != "") { if (item == "." || item == "..") continue; - ishidden = dir_access->current_is_hidden(); + is_hidden = dir_access->current_is_hidden(); - if (show_hidden || !ishidden) { - if (!isdir) + if (show_hidden_files || !is_hidden) { + if (!is_dir) files.push_back(item); else dirs.push_back(item); @@ -431,8 +431,6 @@ void FileDialog::update_file_list() { dirs.pop_front(); } - dirs.clear(); - List<String> patterns; // build filter if (filter->get_selected() == filter->get_item_count() - 1) { @@ -507,8 +505,6 @@ void FileDialog::update_file_list() { if (tree->get_root() && tree->get_root()->get_children() && tree->get_selected() == NULL) tree->get_root()->get_children()->select(0); - - files.clear(); } void FileDialog::_filter_selected(int) { @@ -877,6 +873,13 @@ FileDialog::FileDialog() { refresh->connect("pressed", this, "_update_file_list"); hbc->add_child(refresh); + show_hidden = memnew(ToolButton); + show_hidden->set_toggle_mode(true); + show_hidden->set_pressed(is_showing_hidden_files()); + show_hidden->set_tooltip(RTR("Toggle Hidden Files")); + 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"); diff --git a/scene/gui/file_dialog.h b/scene/gui/file_dialog.h index 85edac0b12..9f7ea1a2f2 100644 --- a/scene/gui/file_dialog.h +++ b/scene/gui/file_dialog.h @@ -90,6 +90,7 @@ private: ToolButton *dir_up; ToolButton *refresh; + ToolButton *show_hidden; Vector<String> filters; diff --git a/scene/gui/gradient_edit.cpp b/scene/gui/gradient_edit.cpp index cfbc9d6d18..75f5f79873 100644 --- a/scene/gui/gradient_edit.cpp +++ b/scene/gui/gradient_edit.cpp @@ -29,10 +29,17 @@ /*************************************************************************/ #include "gradient_edit.h" + #include "core/os/keyboard.h" -#include "editor/editor_scale.h" +#ifdef TOOLS_ENABLED +#include "editor/editor_scale.h" #define SPACING (3 * EDSCALE) +#define POINT_WIDTH (8 * EDSCALE) +#else +#define SPACING 3 +#define POINT_WIDTH 8 +#endif GradientEdit::GradientEdit() { grabbed = -1; diff --git a/scene/gui/gradient_edit.h b/scene/gui/gradient_edit.h index 662278a17b..6f31107729 100644 --- a/scene/gui/gradient_edit.h +++ b/scene/gui/gradient_edit.h @@ -36,8 +36,6 @@ #include "scene/resources/default_theme/theme_data.h" #include "scene/resources/gradient.h" -#define POINT_WIDTH (8 * EDSCALE) - class GradientEdit : public Control { GDCLASS(GradientEdit, Control); diff --git a/scene/gui/graph_node.cpp b/scene/gui/graph_node.cpp index e8692d56d2..6463ee5ad5 100644 --- a/scene/gui/graph_node.cpp +++ b/scene/gui/graph_node.cpp @@ -159,9 +159,7 @@ void GraphNode::_resort() { fit_child_in_rect(c, r); cache_y.push_back(vofs + size.y * 0.5); - if (vofs > 0) - vofs += sep; - vofs += size.y; + vofs += size.y + sep; } update(); diff --git a/scene/gui/item_list.cpp b/scene/gui/item_list.cpp index 026374ded1..91b76839d7 100644 --- a/scene/gui/item_list.cpp +++ b/scene/gui/item_list.cpp @@ -470,6 +470,8 @@ Size2 ItemList::Item::get_icon_size() const { void ItemList::_gui_input(const Ref<InputEvent> &p_event) { + double prev_scroll = scroll_bar->get_value(); + Ref<InputEventMouseMotion> mm = p_event; if (defer_select_single >= 0 && mm.is_valid()) { defer_select_single = -1; @@ -747,9 +749,21 @@ void ItemList::_gui_input(const Ref<InputEvent> &p_event) { search_string = ""; } - search_string += String::chr(k->get_unicode()); - for (int i = 0; i < items.size(); i++) { - if (items[i].text.begins_with(search_string)) { + if (String::chr(k->get_unicode()) != search_string) + search_string += String::chr(k->get_unicode()); + + for (int i = current + 1; i <= items.size(); i++) { + if (i == items.size()) { + if (current == 0) + break; + else + i = 0; + } + + if (i == current) + break; + + if (items[i].text.findn(search_string) == 0) { set_current(i); ensure_current_is_visible(); if (select_mode == SELECT_SINGLE) { @@ -767,6 +781,9 @@ void ItemList::_gui_input(const Ref<InputEvent> &p_event) { scroll_bar->set_value(scroll_bar->get_value() + scroll_bar->get_page() * pan_gesture->get_delta().y / 8); } + + if (scroll_bar->get_value() != prev_scroll) + accept_event(); //accept event if scroll changed } void ItemList::ensure_current_is_visible() { @@ -1243,7 +1260,7 @@ int ItemList::get_item_at_position(const Point2 &p_pos, bool p_exact) const { Rect2 rc = items[i].rect_cache; if (i % current_columns == current_columns - 1) { - rc.size.width = get_size().width; //not right but works + rc.size.width = get_size().width - rc.position.x; //make sure you can still select the last item when clicking past the column } if (rc.has_point(pos)) { diff --git a/scene/gui/line_edit.cpp b/scene/gui/line_edit.cpp index 2d18a80833..da6bff8ab8 100644 --- a/scene/gui/line_edit.cpp +++ b/scene/gui/line_edit.cpp @@ -44,7 +44,7 @@ static bool _is_text_char(CharType c) { - return (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z') || (c >= '0' && c <= '9') || c == '_'; + return !is_symbol(c); } void LineEdit::_gui_input(Ref<InputEvent> p_event) { @@ -68,6 +68,7 @@ void LineEdit::_gui_input(Ref<InputEvent> p_event) { _reset_caret_blink_timer(); if (b->is_pressed()) { + accept_event(); //don't pass event further when clicked on text field if (!text.empty() && is_editable() && _is_over_clear_button(b->get_position())) { clear_button_status.press_attempt = true; clear_button_status.pressing_inside = true; @@ -159,6 +160,38 @@ void LineEdit::_gui_input(Ref<InputEvent> p_event) { if (!k->is_pressed()) return; + +#ifdef APPLE_STYLE_KEYS + if (k->get_control() && !k->get_shift() && !k->get_alt() && !k->get_command()) { + uint32_t remap_key = KEY_UNKNOWN; + switch (k->get_scancode()) { + case KEY_F: { + remap_key = KEY_RIGHT; + } break; + case KEY_B: { + remap_key = KEY_LEFT; + } break; + case KEY_P: { + remap_key = KEY_UP; + } break; + case KEY_N: { + remap_key = KEY_DOWN; + } break; + case KEY_D: { + remap_key = KEY_DELETE; + } break; + case KEY_H: { + remap_key = KEY_BACKSPACE; + } break; + } + + if (remap_key != KEY_UNKNOWN) { + k->set_scancode(remap_key); + k->set_control(false); + } + } +#endif + unsigned int code = k->get_scancode(); if (k->get_command()) { @@ -506,7 +539,7 @@ void LineEdit::_gui_input(Ref<InputEvent> p_event) { if (handled) { accept_event(); - } else if (!k->get_alt() && !k->get_command()) { + } else if (!k->get_command()) { if (k->get_unicode() >= 32 && k->get_scancode() != KEY_DELETE) { if (editable) { @@ -890,7 +923,8 @@ void LineEdit::cut_text() { void LineEdit::paste_text() { - String paste_buffer = OS::get_singleton()->get_clipboard(); + // Strip escape characters like \n and \t as they can't be displayed on LineEdit. + String paste_buffer = OS::get_singleton()->get_clipboard().strip_escapes(); if (paste_buffer != "") { @@ -1656,6 +1690,7 @@ LineEdit::LineEdit() { context_menu_enabled = true; menu = memnew(PopupMenu); add_child(menu); + editable = false; // initialise to opposite first, so we get past the early-out in set_editable set_editable(true); menu->connect("id_pressed", this, "menu_option"); expand_to_text_length = false; diff --git a/scene/gui/option_button.cpp b/scene/gui/option_button.cpp index 694065497a..872402e9e1 100644 --- a/scene/gui/option_button.cpp +++ b/scene/gui/option_button.cpp @@ -86,24 +86,7 @@ void OptionButton::_focused(int p_which) { void OptionButton::_selected(int p_which) { - int selid = -1; - for (int i = 0; i < popup->get_item_count(); i++) { - - bool is_clicked = popup->get_item_id(i) == p_which; - if (is_clicked) { - selid = i; - break; - } - } - - if (selid == -1 && p_which >= 0 && p_which < popup->get_item_count()) { - _select(p_which, true); - } else { - - ERR_FAIL_COND(selid == -1); - - _select(selid, true); - } + _select(p_which, true); } void OptionButton::pressed() { @@ -354,7 +337,8 @@ OptionButton::OptionButton() { add_child(popup); popup->set_pass_on_modal_close_click(false); popup->set_notify_transform(true); - popup->connect("id_pressed", this, "_selected"); + popup->set_allow_search(true); + popup->connect("index_pressed", this, "_selected"); popup->connect("id_focused", this, "_focused"); popup->connect("popup_hide", this, "set_pressed", varray(false)); } diff --git a/scene/gui/popup.cpp b/scene/gui/popup.cpp index b7601bdd3e..fdb1b65f77 100644 --- a/scene/gui/popup.cpp +++ b/scene/gui/popup.cpp @@ -115,6 +115,18 @@ void Popup::set_as_minsize() { set_size(total_minsize); } +void Popup::popup_centered_clamped(const Size2 &p_size, float p_fallback_ratio) { + + Size2 popup_size = p_size; + Size2 window_size = get_viewport_rect().size; + + // clamp popup size in each dimension if window size is too small (using fallback ratio) + popup_size.x = MIN(window_size.x * p_fallback_ratio, popup_size.x); + popup_size.y = MIN(window_size.y * p_fallback_ratio, popup_size.y); + + popup_centered(popup_size); +} + void Popup::popup_centered_minsize(const Size2 &p_minsize) { set_custom_minimum_size(p_minsize); @@ -179,6 +191,7 @@ void Popup::_bind_methods() { ClassDB::bind_method(D_METHOD("popup_centered", "size"), &Popup::popup_centered, DEFVAL(Size2())); ClassDB::bind_method(D_METHOD("popup_centered_ratio", "ratio"), &Popup::popup_centered_ratio, DEFVAL(0.75)); ClassDB::bind_method(D_METHOD("popup_centered_minsize", "minsize"), &Popup::popup_centered_minsize, DEFVAL(Size2())); + ClassDB::bind_method(D_METHOD("popup_centered_clamped", "size", "fallback_ratio"), &Popup::popup_centered_clamped, DEFVAL(Size2()), DEFVAL(0.75)); ClassDB::bind_method(D_METHOD("popup", "bounds"), &Popup::popup, DEFVAL(Rect2())); ClassDB::bind_method(D_METHOD("set_exclusive", "enable"), &Popup::set_exclusive); ClassDB::bind_method(D_METHOD("is_exclusive"), &Popup::is_exclusive); diff --git a/scene/gui/popup.h b/scene/gui/popup.h index 7ccefe1d75..6615c51ec5 100644 --- a/scene/gui/popup.h +++ b/scene/gui/popup.h @@ -64,6 +64,7 @@ public: void popup_centered(const Size2 &p_size = Size2()); void popup_centered_minsize(const Size2 &p_minsize = Size2()); void set_as_minsize(); + void popup_centered_clamped(const Size2 &p_size = Size2(), float p_fallback_ratio = 0.75); virtual void popup(const Rect2 &p_bounds = Rect2()); virtual String get_configuration_warning() const; diff --git a/scene/gui/popup_menu.cpp b/scene/gui/popup_menu.cpp index 984307530d..2cac345dae 100644 --- a/scene/gui/popup_menu.cpp +++ b/scene/gui/popup_menu.cpp @@ -31,6 +31,7 @@ #include "popup_menu.h" #include "core/os/input.h" #include "core/os/keyboard.h" +#include "core/os/os.h" #include "core/print_string.h" #include "core/translation.h" @@ -380,6 +381,43 @@ void PopupMenu::_gui_input(const Ref<InputEvent> &p_event) { _scroll(-pan_gesture->get_delta().y, pan_gesture->get_position()); } } + + Ref<InputEventKey> k = p_event; + + if (allow_search && k.is_valid() && k->get_unicode()) { + + uint64_t now = OS::get_singleton()->get_ticks_msec(); + uint64_t diff = now - search_time_msec; + uint64_t max_interval = uint64_t(GLOBAL_DEF("gui/timers/incremental_search_max_interval_msec", 2000)); + search_time_msec = now; + + if (diff > max_interval) { + search_string = ""; + } + + if (String::chr(k->get_unicode()) != search_string) + search_string += String::chr(k->get_unicode()); + + for (int i = mouse_over + 1; i <= items.size(); i++) { + if (i == items.size()) { + if (mouse_over <= 0) + break; + else + i = 0; + } + + if (i == mouse_over) + break; + + if (items[i].text.findn(search_string) == 0) { + mouse_over = i; + emit_signal("id_focused", i); + update(); + accept_event(); + break; + } + } + } } bool PopupMenu::has_point(const Point2 &p_point) const { @@ -1289,6 +1327,16 @@ float PopupMenu::get_submenu_popup_delay() const { return submenu_timer->get_wait_time(); } +void PopupMenu::set_allow_search(bool p_allow) { + + allow_search = p_allow; +} + +bool PopupMenu::get_allow_search() const { + + return allow_search; +} + void PopupMenu::set_hide_on_window_lose_focus(bool p_enabled) { hide_on_window_lose_focus = p_enabled; @@ -1407,6 +1455,9 @@ void PopupMenu::_bind_methods() { ClassDB::bind_method(D_METHOD("set_hide_on_window_lose_focus", "enable"), &PopupMenu::set_hide_on_window_lose_focus); ClassDB::bind_method(D_METHOD("is_hide_on_window_lose_focus"), &PopupMenu::is_hide_on_window_lose_focus); + ClassDB::bind_method(D_METHOD("set_allow_search", "allow"), &PopupMenu::set_allow_search); + ClassDB::bind_method(D_METHOD("get_allow_search"), &PopupMenu::get_allow_search); + ClassDB::bind_method(D_METHOD("_submenu_timeout"), &PopupMenu::_submenu_timeout); ADD_PROPERTY(PropertyInfo(Variant::ARRAY, "items", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_NOEDITOR | PROPERTY_USAGE_INTERNAL), "_set_items", "_get_items"); @@ -1414,6 +1465,7 @@ void PopupMenu::_bind_methods() { ADD_PROPERTY(PropertyInfo(Variant::BOOL, "hide_on_checkable_item_selection"), "set_hide_on_checkable_item_selection", "is_hide_on_checkable_item_selection"); ADD_PROPERTY(PropertyInfo(Variant::BOOL, "hide_on_state_item_selection"), "set_hide_on_state_item_selection", "is_hide_on_state_item_selection"); ADD_PROPERTY(PropertyInfo(Variant::REAL, "submenu_popup_delay"), "set_submenu_popup_delay", "get_submenu_popup_delay"); + ADD_PROPERTY(PropertyInfo(Variant::BOOL, "allow_search"), "set_allow_search", "get_allow_search"); ADD_SIGNAL(MethodInfo("id_pressed", PropertyInfo(Variant::INT, "id"))); ADD_SIGNAL(MethodInfo("id_focused", PropertyInfo(Variant::INT, "id"))); @@ -1435,6 +1487,10 @@ PopupMenu::PopupMenu() { initial_button_mask = 0; during_grabbed_click = false; + allow_search = false; + search_time_msec = 0; + search_string = ""; + set_focus_mode(FOCUS_ALL); set_as_toplevel(true); set_hide_on_item_selection(true); diff --git a/scene/gui/popup_menu.h b/scene/gui/popup_menu.h index 687006d58d..babdd21281 100644 --- a/scene/gui/popup_menu.h +++ b/scene/gui/popup_menu.h @@ -112,6 +112,10 @@ class PopupMenu : public Popup { void _ref_shortcut(Ref<ShortCut> p_sc); void _unref_shortcut(Ref<ShortCut> p_sc); + bool allow_search; + uint64_t search_time_msec; + String search_string; + protected: virtual bool has_point(const Point2 &p_point) const; @@ -206,6 +210,9 @@ public: void set_submenu_popup_delay(float p_time); float get_submenu_popup_delay() const; + void set_allow_search(bool p_allow); + bool get_allow_search() const; + virtual void popup(const Rect2 &p_bounds = Rect2()); void set_hide_on_window_lose_focus(bool p_enabled); diff --git a/scene/gui/range.cpp b/scene/gui/range.cpp index c24e62c8cb..d00acaf08a 100644 --- a/scene/gui/range.cpp +++ b/scene/gui/range.cpp @@ -63,7 +63,7 @@ void Range::Shared::emit_value_changed() { void Range::_changed_notify(const char *p_what) { - emit_signal("changed", shared->val); + emit_signal("changed"); update(); _change_notify(p_what); } @@ -79,6 +79,7 @@ void Range::Shared::emit_changed(const char *p_what) { } void Range::set_value(double p_val) { + if (shared->step > 0) p_val = Math::round(p_val / shared->step) * shared->step; @@ -303,22 +304,27 @@ bool Range::is_ratio_exp() const { } void Range::set_allow_greater(bool p_allow) { + shared->allow_greater = p_allow; } bool Range::is_greater_allowed() const { + return shared->allow_greater; } void Range::set_allow_lesser(bool p_allow) { + shared->allow_lesser = p_allow; } bool Range::is_lesser_allowed() const { + return shared->allow_lesser; } Range::Range() { + shared = memnew(Shared); shared->min = 0; shared->max = 100; diff --git a/scene/gui/rich_text_label.cpp b/scene/gui/rich_text_label.cpp index 101eb2ac88..8891f679ee 100644 --- a/scene/gui/rich_text_label.cpp +++ b/scene/gui/rich_text_label.cpp @@ -307,6 +307,13 @@ int RichTextLabel::_process_line(ItemFrame *p_frame, const Vector2 &p_ofs, int & switch (it->type) { + case ITEM_ALIGN: { + + ItemAlign *align_it = static_cast<ItemAlign *>(it); + + align = align_it->align; + + } break; case ITEM_TEXT: { ItemText *text = static_cast<ItemText *>(it); @@ -592,7 +599,7 @@ int RichTextLabel::_process_line(ItemFrame *p_frame, const Vector2 &p_ofs, int & //assign actual widths for (int i = 0; i < table->columns.size(); i++) { table->columns.write[i].width = table->columns[i].min_width; - if (table->columns[i].expand) + if (table->columns[i].expand && total_ratio > 0) table->columns.write[i].width += table->columns[i].expand_ratio * remaining_width / total_ratio; table->total_width += table->columns[i].width + hseparation; } @@ -1411,9 +1418,13 @@ void RichTextLabel::_add_item(Item *p_item, bool p_enter, bool p_ensure_newline) if (p_enter) current = p_item; - if (p_ensure_newline && current_frame->lines[current_frame->lines.size() - 1].from) { - _invalidate_current_line(current_frame); - current_frame->lines.resize(current_frame->lines.size() + 1); + if (p_ensure_newline) { + Item *from = current_frame->lines[current_frame->lines.size() - 1].from; + // only create a new line for Item types that generate content/layout, ignore those that represent formatting/styling + if (from && from->type != ITEM_FONT && from->type != ITEM_COLOR && from->type != ITEM_UNDERLINE && from->type != ITEM_STRIKETHROUGH) { + _invalidate_current_line(current_frame); + current_frame->lines.resize(current_frame->lines.size() + 1); + } } if (current_frame->lines[current_frame->lines.size() - 1].from == NULL) { @@ -2336,6 +2347,7 @@ RichTextLabel::RichTextLabel() { tab_size = 4; default_align = ALIGN_LEFT; underline_meta = true; + meta_hovering = NULL; override_selected_font_color = false; scroll_visible = false; diff --git a/scene/gui/scroll_bar.cpp b/scene/gui/scroll_bar.cpp index 2938654ed9..686d1c96cc 100644 --- a/scene/gui/scroll_bar.cpp +++ b/scene/gui/scroll_bar.cpp @@ -53,29 +53,19 @@ void ScrollBar::_gui_input(Ref<InputEvent> p_event) { if (b.is_valid()) { accept_event(); - if (b->get_button_index() == 5 && b->is_pressed()) { + if (b->get_button_index() == BUTTON_WHEEL_DOWN && b->is_pressed()) { - /* - if (orientation==VERTICAL) - set_val( get_val() + get_page() / 4.0 ); - else - */ set_value(get_value() + get_page() / 4.0); accept_event(); } - if (b->get_button_index() == 4 && b->is_pressed()) { + if (b->get_button_index() == BUTTON_WHEEL_UP && b->is_pressed()) { - /* - if (orientation==HORIZONTAL) - set_val( get_val() - get_page() / 4.0 ); - else - */ set_value(get_value() - get_page() / 4.0); accept_event(); } - if (b->get_button_index() != 1) + if (b->get_button_index() != BUTTON_LEFT) return; if (b->is_pressed()) { diff --git a/scene/gui/scroll_container.cpp b/scene/gui/scroll_container.cpp index e50a71b0ff..a1034937b5 100644 --- a/scene/gui/scroll_container.cpp +++ b/scene/gui/scroll_container.cpp @@ -88,13 +88,16 @@ void ScrollContainer::_cancel_drag() { void ScrollContainer::_gui_input(const Ref<InputEvent> &p_gui_input) { + double prev_v_scroll = v_scroll->get_value(); + double prev_h_scroll = h_scroll->get_value(); + Ref<InputEventMouseButton> mb = p_gui_input; if (mb.is_valid()) { if (mb->get_button_index() == BUTTON_WHEEL_UP && mb->is_pressed()) { // only horizontal is enabled, scroll horizontally - if (h_scroll->is_visible() && !v_scroll->is_visible()) { + if (h_scroll->is_visible() && (!v_scroll->is_visible() || mb->get_shift())) { h_scroll->set_value(h_scroll->get_value() - h_scroll->get_page() / 8 * mb->get_factor()); } else if (v_scroll->is_visible_in_tree()) { v_scroll->set_value(v_scroll->get_value() - v_scroll->get_page() / 8 * mb->get_factor()); @@ -103,7 +106,7 @@ void ScrollContainer::_gui_input(const Ref<InputEvent> &p_gui_input) { if (mb->get_button_index() == BUTTON_WHEEL_DOWN && mb->is_pressed()) { // only horizontal is enabled, scroll horizontally - if (h_scroll->is_visible() && !v_scroll->is_visible()) { + if (h_scroll->is_visible() && (!v_scroll->is_visible() || mb->get_shift())) { h_scroll->set_value(h_scroll->get_value() + h_scroll->get_page() / 8 * mb->get_factor()); } else if (v_scroll->is_visible()) { v_scroll->set_value(v_scroll->get_value() + v_scroll->get_page() / 8 * mb->get_factor()); @@ -122,6 +125,9 @@ void ScrollContainer::_gui_input(const Ref<InputEvent> &p_gui_input) { } } + if (v_scroll->get_value() != prev_v_scroll || h_scroll->get_value() != prev_h_scroll) + accept_event(); //accept event if scroll changed + if (!OS::get_singleton()->has_touchscreen_ui_hint()) return; @@ -204,6 +210,9 @@ void ScrollContainer::_gui_input(const Ref<InputEvent> &p_gui_input) { v_scroll->set_value(v_scroll->get_value() + v_scroll->get_page() * pan_gesture->get_delta().y / 8); } } + + if (v_scroll->get_value() != prev_v_scroll || h_scroll->get_value() != prev_h_scroll) + accept_event(); //accept event if scroll changed } void ScrollContainer::_update_scrollbar_position() { diff --git a/scene/gui/slider.cpp b/scene/gui/slider.cpp index 028ca41cbf..b777e77bc3 100644 --- a/scene/gui/slider.cpp +++ b/scene/gui/slider.cpp @@ -295,6 +295,7 @@ Slider::Slider(Orientation p_orientation) { mouse_inside = false; grab.active = false; ticks = 0; + ticks_on_borders = false; custom_step = -1; editable = true; scrollable = true; diff --git a/scene/gui/spin_box.cpp b/scene/gui/spin_box.cpp index d21143739c..e778af3ceb 100644 --- a/scene/gui/spin_box.cpp +++ b/scene/gui/spin_box.cpp @@ -277,6 +277,7 @@ SpinBox::SpinBox() { add_child(line_edit); line_edit->set_anchors_and_margins_preset(Control::PRESET_WIDE); + line_edit->set_mouse_filter(MOUSE_FILTER_PASS); //connect("value_changed",this,"_value_changed"); line_edit->connect("text_entered", this, "_text_entered", Vector<Variant>(), CONNECT_DEFERRED); line_edit->connect("focus_exited", this, "_line_edit_focus_exit", Vector<Variant>(), CONNECT_DEFERRED); diff --git a/scene/gui/text_edit.cpp b/scene/gui/text_edit.cpp index 8acd28a2f4..36d7dad1d3 100644 --- a/scene/gui/text_edit.cpp +++ b/scene/gui/text_edit.cpp @@ -50,7 +50,7 @@ inline bool _is_symbol(CharType c) { static bool _is_text_char(CharType c) { - return (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z') || (c >= '0' && c <= '9') || c == '_'; + return !is_symbol(c); } static bool _is_whitespace(CharType c) { @@ -104,6 +104,13 @@ static CharType _get_right_pair_symbol(CharType c) { return 0; } +static int _find_first_non_whitespace_column_of_line(const String &line) { + int left = 0; + while (left < line.length() && _is_whitespace(line[left])) + left++; + return left; +} + void TextEdit::Text::set_font(const Ref<Font> &p_font) { font = p_font; @@ -292,6 +299,7 @@ void TextEdit::Text::insert(int p_at, const String &p_text) { line.marked = false; line.safe = false; line.breakpoint = false; + line.bookmark = false; line.hidden = false; line.width_cache = -1; line.wrap_amount_cache = -1; @@ -346,7 +354,7 @@ void TextEdit::_update_scrollbars() { if (line_numbers) total_width += cache.line_number_w; - if (draw_breakpoint_gutter) { + if (draw_breakpoint_gutter || draw_bookmark_gutter) { total_width += cache.breakpoint_gutter_width; } @@ -398,6 +406,7 @@ void TextEdit::_update_scrollbars() { cursor.line_ofs = 0; cursor.wrap_ofs = 0; v_scroll->set_value(0); + v_scroll->set_max(0); v_scroll->hide(); } @@ -416,6 +425,7 @@ void TextEdit::_update_scrollbars() { cursor.x_ofs = 0; h_scroll->set_value(0); + h_scroll->set_max(0); h_scroll->hide(); } @@ -605,7 +615,7 @@ void TextEdit::_notification(int p_what) { draw_caret = false; } - if (draw_breakpoint_gutter) { + if (draw_breakpoint_gutter || draw_bookmark_gutter) { breakpoint_gutter_width = (get_row_height() * 55) / 100; cache.breakpoint_gutter_width = breakpoint_gutter_width; } else { @@ -954,6 +964,16 @@ void TextEdit::_notification(int p_what) { #endif } + // draw bookmark marker + if (text.is_bookmark(line)) { + if (draw_bookmark_gutter) { + int vertical_gap = (get_row_height() * 40) / 100; + int horizontal_gap = (cache.breakpoint_gutter_width * 30) / 100; + int marker_radius = get_row_height() - (vertical_gap * 2); + VisualServer::get_singleton()->canvas_item_add_circle(ci, Point2(cache.style_normal->get_margin(MARGIN_LEFT) + horizontal_gap - 2 + marker_radius / 2, ofs_y + vertical_gap + marker_radius / 2), marker_radius, Color(cache.bookmark_color.r, cache.bookmark_color.g, cache.bookmark_color.b)); + } + } + // draw breakpoint marker if (text.is_breakpoint(line)) { if (draw_breakpoint_gutter) { @@ -1095,7 +1115,7 @@ void TextEdit::_notification(int p_what) { if (line == cursor.line && cursor_wrap_index == line_wrap_index && highlight_current_line) { // draw the wrap indent offset highlight if (line_wrap_index != 0 && j == 0) { - VisualServer::get_singleton()->canvas_item_add_rect(ci, Rect2(char_ofs + char_margin - indent_px, ofs_y, (char_ofs + char_margin), get_row_height()), cache.current_line_color); + VisualServer::get_singleton()->canvas_item_add_rect(ci, Rect2(char_ofs + char_margin - indent_px, ofs_y, indent_px, get_row_height()), cache.current_line_color); } // if its the last char draw to end of the line if (j == str.length() - 1) { @@ -1634,31 +1654,25 @@ void TextEdit::backspace_at_cursor() { _consume_backspace_for_pair_symbol(prev_line, prev_column); } else { // handle space indentation - if (cursor.column - indent_size >= 0 && indent_using_spaces) { - - // if there is enough spaces to count as a tab + if (cursor.column != 0 && indent_using_spaces) { + // check if there are no other chars before cursor, just indentation bool unindent = true; - for (int i = 1; i <= indent_size; i++) { - if (text[cursor.line][cursor.column - i] != ' ') { - unindent = false; - break; - } - } - - // and it is before the first character int i = 0; while (i < cursor.column && i < text[cursor.line].length()) { - if (text[cursor.line][i] != ' ' && text[cursor.line][i] != '\t') { + if (!_is_whitespace(text[cursor.line][i])) { unindent = false; break; } i++; } - // then we can remove it as a single character. + // then we can remove all spaces as a single character. if (unindent) { - _remove_text(cursor.line, cursor.column - indent_size, cursor.line, cursor.column); - prev_column = cursor.column - indent_size; + // we want to remove spaces up to closest indent + // or whole indent if cursor is pointing at it + int spaces_to_delete = _calculate_spaces_till_next_left_indent(cursor.column); + prev_column = cursor.column - spaces_to_delete; + _remove_text(cursor.line, prev_column, cursor.line, cursor.column); } else { _remove_text(prev_line, prev_column, cursor.line, cursor.column); } @@ -1675,6 +1689,10 @@ void TextEdit::indent_right() { int start_line; int end_line; + + // this value informs us by how much we changed selection position by indenting right + // default is 1 for tab indentation + int selection_offset = 1; begin_complex_operation(); if (is_selection_active()) { @@ -1693,18 +1711,24 @@ void TextEdit::indent_right() { for (int i = start_line; i <= end_line; i++) { String line_text = get_line(i); if (indent_using_spaces) { - line_text = space_indent + line_text; + // we don't really care where selection is - we just need to know indentation level at the beginning of the line + int left = _find_first_non_whitespace_column_of_line(line_text); + int spaces_to_add = _calculate_spaces_till_next_right_indent(left); + // since we will add this much spaces we want move whole selection and cursor by this much + selection_offset = spaces_to_add; + for (int j = 0; j < spaces_to_add; j++) + line_text = ' ' + line_text; } else { line_text = '\t' + line_text; } set_line(i, line_text); } - // fix selection and cursor being off by one on the last line + // fix selection and cursor being off after shifting selection right if (is_selection_active()) { - select(selection.from_line, selection.from_column + 1, selection.to_line, selection.to_column + 1); + select(selection.from_line, selection.from_column + selection_offset, selection.to_line, selection.to_column + selection_offset); } - cursor_set_column(cursor.column + 1, false); + cursor_set_column(cursor.column + selection_offset, false); end_complex_operation(); update(); } @@ -1713,6 +1737,15 @@ void TextEdit::indent_left() { int start_line; int end_line; + + // moving cursor and selection after unindenting can get tricky + // because changing content of line can move cursor and selection on it's own (if new line ends before previous position of either) + // therefore we just remember initial values + // and at the end of the operation offset them by number of removed characters + int removed_characters = 0; + int initial_selection_end_column = selection.to_column; + int initial_cursor_column = cursor.column; + begin_complex_operation(); if (is_selection_active()) { @@ -1735,21 +1768,43 @@ void TextEdit::indent_left() { if (line_text.begins_with("\t")) { line_text = line_text.substr(1, line_text.length()); set_line(i, line_text); - } else if (line_text.begins_with(space_indent)) { - line_text = line_text.substr(indent_size, line_text.length()); + removed_characters = 1; + } else if (line_text.begins_with(" ")) { + // when unindenting we aim to remove spaces before line that has selection no matter what is selected + // so we start of by finding first non whitespace character of line + int left = _find_first_non_whitespace_column_of_line(line_text); + + // here we remove only enough spaces to align text to nearest full multiple of indentation_size + // in case where selection begins at the start of indentation_size multiple we remove whole indentation level + int spaces_to_remove = _calculate_spaces_till_next_left_indent(left); + + line_text = line_text.substr(spaces_to_remove, line_text.length()); set_line(i, line_text); + removed_characters = spaces_to_remove; } } // fix selection and cursor being off by one on the last line if (is_selection_active() && last_line_text != get_line(end_line)) { - select(selection.from_line, selection.from_column - 1, selection.to_line, selection.to_column - 1); + select(selection.from_line, selection.from_column - removed_characters, + selection.to_line, initial_selection_end_column - removed_characters); } - cursor_set_column(cursor.column - 1, false); + cursor_set_column(initial_cursor_column - removed_characters, false); end_complex_operation(); update(); } +int TextEdit::_calculate_spaces_till_next_left_indent(int column) { + int spaces_till_indent = column % indent_size; + if (spaces_till_indent == 0) + spaces_till_indent = indent_size; + return spaces_till_indent; +} + +int TextEdit::_calculate_spaces_till_next_right_indent(int column) { + return indent_size - column % indent_size; +} + void TextEdit::_get_mouse_pos(const Point2i &p_mouse, int &r_row, int &r_col) const { float rows = p_mouse.y; @@ -1801,6 +1856,9 @@ void TextEdit::_get_mouse_pos(const Point2i &p_mouse, int &r_row, int &r_col) co void TextEdit::_gui_input(const Ref<InputEvent> &p_gui_input) { + double prev_v_scroll = v_scroll->get_value(); + double prev_h_scroll = h_scroll->get_value(); + Ref<InputEventMouseButton> mb = p_gui_input; if (mb.is_valid()) { @@ -2055,6 +2113,9 @@ void TextEdit::_gui_input(const Ref<InputEvent> &p_gui_input) { _scroll_down(delta); } h_scroll->set_value(h_scroll->get_value() + pan_gesture->get_delta().x * 100); + if (v_scroll->get_value() != prev_v_scroll || h_scroll->get_value() != prev_h_scroll) + accept_event(); //accept event if scroll changed + return; } @@ -2098,6 +2159,9 @@ void TextEdit::_gui_input(const Ref<InputEvent> &p_gui_input) { } } + if (v_scroll->get_value() != prev_v_scroll || h_scroll->get_value() != prev_h_scroll) + accept_event(); //accept event if scroll changed + Ref<InputEventKey> k = p_gui_input; if (k.is_valid()) { @@ -2506,15 +2570,11 @@ void TextEdit::_gui_input(const Ref<InputEvent> &p_gui_input) { } else { if (k->get_shift()) { - //simple unindent + // simple unindent int cc = cursor.column; - - const int len = text[cursor.line].length(); const String &line = text[cursor.line]; - int left = 0; // number of whitespace chars at beginning of line - while (left < len && (line[left] == '\t' || line[left] == ' ')) - left++; + int left = _find_first_non_whitespace_column_of_line(line); cc = MIN(cc, left); while (cc < indent_size && cc < left && line[cc] == ' ') @@ -2522,24 +2582,18 @@ void TextEdit::_gui_input(const Ref<InputEvent> &p_gui_input) { if (cc > 0 && cc <= text[cursor.line].length()) { if (text[cursor.line][cc - 1] == '\t') { + // tabs unindentation _remove_text(cursor.line, cc - 1, cursor.line, cc); if (cursor.column >= left) cursor_set_column(MAX(0, cursor.column - 1)); update(); } else { - int n = 0; - - for (int i = 1; i <= MIN(cc, indent_size); i++) { - if (line[cc - i] != ' ') { - break; - } - n++; - } - - if (n > 0) { - _remove_text(cursor.line, cc - n, cursor.line, cc); - if (cursor.column > left - n) // inside text? - cursor_set_column(MAX(0, cursor.column - n)); + // spaces unindentation + int spaces_to_remove = _calculate_spaces_till_next_left_indent(cc); + if (spaces_to_remove > 0) { + _remove_text(cursor.line, cc - spaces_to_remove, cursor.line, cc); + if (cursor.column > left - spaces_to_remove) // inside text? + cursor_set_column(MAX(0, cursor.column - spaces_to_remove)); update(); } } @@ -2548,9 +2602,14 @@ void TextEdit::_gui_input(const Ref<InputEvent> &p_gui_input) { update(); } } else { - //simple indent + // simple indent if (indent_using_spaces) { - _insert_text_at_cursor(space_indent); + // insert only as much spaces as needed till next indentation level + int spaces_to_add = _calculate_spaces_till_next_right_indent(cursor.column); + String indent_to_insert = String(); + for (int i = 0; i < spaces_to_add; i++) + indent_to_insert = ' ' + indent_to_insert; + _insert_text_at_cursor(indent_to_insert); } else { _insert_text_at_cursor("\t"); } @@ -4019,7 +4078,7 @@ void TextEdit::cursor_set_line(int p_row, bool p_adjust_viewport, bool p_can_be_ cursor.line = p_row; int n_col = get_char_pos_for_line(cursor.last_fit_x, p_row, p_wrap_index); - if (is_wrap_enabled() && p_wrap_index < times_line_wraps(p_row)) { + if (n_col != 0 && is_wrap_enabled() && p_wrap_index < times_line_wraps(p_row)) { Vector<String> rows = get_wrap_rows_text(p_row); int row_end_col = 0; for (int i = 0; i < p_wrap_index + 1; i++) { @@ -4110,7 +4169,7 @@ void TextEdit::_scroll_moved(double p_to_val) { int v_scroll_i = floor(get_v_scroll()); int sc = 0; int n_line; - for (n_line = 0; n_line < text.size(); n_line++) { + for (n_line = 0; n_line < text.size() - 1; n_line++) { if (!is_line_hidden(n_line)) { sc++; sc += times_line_wraps(n_line); @@ -4303,17 +4362,22 @@ Control::CursorShape TextEdit::get_cursor_shape(const Point2 &p_pos) const { void TextEdit::set_text(String p_text) { setting_text = true; - _clear(); - _insert_text_at_cursor(p_text); - clear_undo_history(); - cursor.column = 0; - cursor.line = 0; - cursor.x_ofs = 0; - cursor.line_ofs = 0; - cursor.wrap_ofs = 0; - cursor.last_fit_x = 0; - cursor_set_line(0); - cursor_set_column(0); + if (!undo_enabled) { + _clear(); + _insert_text_at_cursor(p_text); + } + + if (undo_enabled) { + cursor_set_line(0); + cursor_set_column(0); + + begin_complex_operation(); + _remove_text(0, 0, MAX(0, get_line_count() - 1), MAX(get_line(MAX(get_line_count() - 1, 0)).size() - 1, 0)); + _insert_text_at_cursor(p_text); + end_complex_operation(); + selection.active = false; + } + update(); setting_text = false; @@ -4499,6 +4563,7 @@ void TextEdit::_update_caches() { cache.mark_color = get_color("mark_color"); cache.current_line_color = get_color("current_line_color"); cache.line_length_guideline_color = get_color("line_length_guideline_color"); + cache.bookmark_color = get_color("bookmark_color"); cache.breakpoint_color = get_color("breakpoint_color"); cache.executing_line_color = get_color("executing_line_color"); cache.code_folding_color = get_color("code_folding_color"); @@ -4617,6 +4682,8 @@ bool TextEdit::has_keyword_color(String p_keyword) const { } Color TextEdit::get_keyword_color(String p_keyword) const { + + ERR_FAIL_COND_V(!keywords.has(p_keyword), Color()); return keywords[p_keyword]; } @@ -5096,6 +5163,37 @@ void TextEdit::clear_executing_line() { update(); } +bool TextEdit::is_line_set_as_bookmark(int p_line) const { + + ERR_FAIL_INDEX_V(p_line, text.size(), false); + return text.is_bookmark(p_line); +} + +void TextEdit::set_line_as_bookmark(int p_line, bool p_bookmark) { + + ERR_FAIL_INDEX(p_line, text.size()); + text.set_bookmark(p_line, p_bookmark); + update(); +} + +void TextEdit::get_bookmarks(List<int> *p_bookmarks) const { + + for (int i = 0; i < text.size(); i++) { + if (text.is_bookmark(i)) + p_bookmarks->push_back(i); + } +} + +Array TextEdit::get_bookmarks_array() const { + + Array arr; + for (int i = 0; i < text.size(); i++) { + if (text.is_bookmark(i)) + arr.append(i); + } + return arr; +} + bool TextEdit::is_line_set_as_breakpoint(int p_line) const { ERR_FAIL_INDEX_V(p_line, text.size(), false); @@ -5515,7 +5613,7 @@ void TextEdit::undo() { TextOperation op = undo_stack_pos->get(); _do_text_op(op, true); - if (op.from_line != op.to_line || op.to_column != op.from_column + 1) + if (op.type != TextOperation::TYPE_INSERT && (op.from_line != op.to_line || op.to_column != op.from_column + 1)) select(op.from_line, op.from_column, op.to_line, op.to_column); current_op.version = op.prev_version; @@ -6183,6 +6281,15 @@ void TextEdit::set_line_length_guideline_column(int p_column) { update(); } +void TextEdit::set_bookmark_gutter_enabled(bool p_draw) { + draw_bookmark_gutter = p_draw; + update(); +} + +bool TextEdit::is_bookmark_gutter_enabled() const { + return draw_bookmark_gutter; +} + void TextEdit::set_breakpoint_gutter_enabled(bool p_draw) { draw_breakpoint_gutter = p_draw; update(); @@ -6237,14 +6344,14 @@ int TextEdit::get_info_gutter_width() const { return info_gutter_width; } -void TextEdit::set_hiding_enabled(int p_enabled) { +void TextEdit::set_hiding_enabled(bool p_enabled) { if (!p_enabled) unhide_all_lines(); hiding_enabled = p_enabled; update(); } -int TextEdit::is_hiding_enabled() const { +bool TextEdit::is_hiding_enabled() const { return hiding_enabled; } @@ -6579,6 +6686,7 @@ TextEdit::TextEdit() { line_numbers_zero_padded = false; line_length_guideline = false; line_length_guideline_col = 80; + draw_bookmark_gutter = false; draw_breakpoint_gutter = false; draw_fold_gutter = false; draw_info_gutter = false; @@ -6603,6 +6711,7 @@ TextEdit::TextEdit() { context_menu_enabled = true; menu = memnew(PopupMenu); add_child(menu); + readonly = true; // initialise to opposite first, so we get past the early-out in set_readonly set_readonly(false); menu->connect("id_pressed", this, "menu_option"); first_draw = true; diff --git a/scene/gui/text_edit.h b/scene/gui/text_edit.h index eb9fb2cf57..0c26602d2b 100644 --- a/scene/gui/text_edit.h +++ b/scene/gui/text_edit.h @@ -75,6 +75,7 @@ public: int width_cache : 24; bool marked : 1; bool breakpoint : 1; + bool bookmark : 1; bool hidden : 1; bool safe : 1; int wrap_amount_cache : 24; @@ -105,6 +106,8 @@ public: void set(int p_line, const String &p_text); void set_marked(int p_line, bool p_marked) { text.write[p_line].marked = p_marked; } bool is_marked(int p_line) const { return text[p_line].marked; } + void set_bookmark(int p_line, bool p_bookmark) { text.write[p_line].bookmark = p_bookmark; } + bool is_bookmark(int p_line) const { return text[p_line].bookmark; } void set_breakpoint(int p_line, bool p_breakpoint) { text.write[p_line].breakpoint = p_breakpoint; } bool is_breakpoint(int p_line) const { return text[p_line].breakpoint; } void set_hidden(int p_line, bool p_hidden) { text.write[p_line].hidden = p_hidden; } @@ -188,6 +191,7 @@ private: Color member_variable_color; Color selection_color; Color mark_color; + Color bookmark_color; Color breakpoint_color; Color executing_line_color; Color code_folding_color; @@ -300,6 +304,7 @@ private: bool line_numbers_zero_padded; bool line_length_guideline; int line_length_guideline_col; + bool draw_bookmark_gutter; bool draw_breakpoint_gutter; int breakpoint_gutter_width; bool draw_fold_gutter; @@ -432,6 +437,9 @@ private: void _confirm_completion(); void _update_completion_candidates(); + int _calculate_spaces_till_next_left_indent(int column); + int _calculate_spaces_till_next_right_indent(int column); + protected: virtual String get_tooltip(const Point2 &p_pos) const; @@ -490,6 +498,10 @@ public: void insert_at(const String &p_text, int at); int get_line_count() const; void set_line_as_marked(int p_line, bool p_marked); + void set_line_as_bookmark(int p_line, bool p_bookmark); + bool is_line_set_as_bookmark(int p_line) const; + void get_bookmarks(List<int> *p_bookmarks) const; + Array get_bookmarks_array() const; void set_line_as_breakpoint(int p_line, bool p_breakpoint); bool is_line_set_as_breakpoint(int p_line) const; void set_executing_line(int p_line); @@ -664,6 +676,9 @@ public: void set_show_line_length_guideline(bool p_show); void set_line_length_guideline_column(int p_column); + void set_bookmark_gutter_enabled(bool p_draw); + bool is_bookmark_gutter_enabled() const; + void set_breakpoint_gutter_enabled(bool p_draw); bool is_breakpoint_gutter_enabled() const; @@ -682,8 +697,8 @@ public: void set_info_gutter_width(int p_gutter_width); int get_info_gutter_width() const; - void set_hiding_enabled(int p_enabled); - int is_hiding_enabled() const; + void set_hiding_enabled(bool p_enabled); + bool is_hiding_enabled() const; void set_tooltip_request_func(Object *p_obj, const StringName &p_function, const Variant &p_udata); @@ -720,7 +735,7 @@ public: virtual void _update_cache() = 0; virtual Map<int, TextEdit::HighlighterInfo> _get_line_syntax_highlighting(int p_line) = 0; - virtual String get_name() = 0; + virtual String get_name() const = 0; virtual List<String> get_supported_languages() = 0; void set_text_editor(TextEdit *p_text_editor); diff --git a/scene/gui/tree.cpp b/scene/gui/tree.cpp index f22fe5b6a5..522c1ecb6a 100644 --- a/scene/gui/tree.cpp +++ b/scene/gui/tree.cpp @@ -39,7 +39,7 @@ #include "scene/main/viewport.h" #ifdef TOOLS_ENABLED -#include "editor/editor_node.h" +#include "editor/editor_scale.h" #endif #include <limits.h> @@ -318,7 +318,7 @@ void TreeItem::set_custom_draw(int p_column, Object *p_object, const StringName void TreeItem::set_collapsed(bool p_collapsed) { - if (collapsed == p_collapsed) + if (collapsed == p_collapsed || !tree) return; collapsed = p_collapsed; TreeItem *ci = tree->selected_item; @@ -344,8 +344,7 @@ void TreeItem::set_collapsed(bool p_collapsed) { } _changed_notify(); - if (tree) - tree->emit_signal("item_collapsed", this); + tree->emit_signal("item_collapsed", this); } bool TreeItem::is_collapsed() { @@ -389,7 +388,7 @@ TreeItem *TreeItem::get_children() { return children; } -TreeItem *TreeItem::get_prev_visible() { +TreeItem *TreeItem::get_prev_visible(bool p_wrap) { TreeItem *current = this; @@ -398,8 +397,20 @@ TreeItem *TreeItem::get_prev_visible() { if (!prev) { current = current->parent; - if (!current || (current == tree->root && tree->hide_root)) + if (current == tree->root && tree->hide_root) { return NULL; + } else if (!current) { + if (p_wrap) { + current = this; + TreeItem *temp = this->get_next_visible(); + while (temp) { + current = temp; + temp = temp->get_next_visible(); + } + } else { + return NULL; + } + } } else { current = prev; @@ -415,7 +426,7 @@ TreeItem *TreeItem::get_prev_visible() { return current; } -TreeItem *TreeItem::get_next_visible() { +TreeItem *TreeItem::get_next_visible(bool p_wrap) { TreeItem *current = this; @@ -433,10 +444,14 @@ TreeItem *TreeItem::get_next_visible() { current = current->parent; } - if (current == NULL) - return NULL; - else + if (!current) { + if (p_wrap) + return tree->root; + else + return NULL; + } else { current = current->next; + } } return current; @@ -740,8 +755,8 @@ void TreeItem::_bind_methods() { ClassDB::bind_method(D_METHOD("get_parent"), &TreeItem::get_parent); ClassDB::bind_method(D_METHOD("get_children"), &TreeItem::get_children); - ClassDB::bind_method(D_METHOD("get_next_visible"), &TreeItem::get_next_visible); - ClassDB::bind_method(D_METHOD("get_prev_visible"), &TreeItem::get_prev_visible); + ClassDB::bind_method(D_METHOD("get_next_visible", "wrap"), &TreeItem::get_next_visible, DEFVAL(false)); + ClassDB::bind_method(D_METHOD("get_prev_visible", "wrap"), &TreeItem::get_prev_visible, DEFVAL(false)); ClassDB::bind_method(D_METHOD("remove_child", "child"), &TreeItem::_remove_child); @@ -1970,6 +1985,9 @@ int Tree::propagate_mouse_event(const Point2i &p_pos, int x_ofs, int y_ofs, bool item_h += child_h; } } + if (p_item == root && p_button == BUTTON_RIGHT) { + emit_signal("empty_rmb", get_local_mouse_position()); + } } return item_h; // nothing found @@ -2266,7 +2284,7 @@ void Tree::_gui_input(Ref<InputEvent> p_event) { next = _n; } else { - return; + break; } } if (next == selected_item) @@ -2304,7 +2322,7 @@ void Tree::_gui_input(Ref<InputEvent> p_event) { prev = _n; } else { - return; + break; } } if (prev == selected_item) @@ -3488,6 +3506,7 @@ void Tree::scroll_to_item(TreeItem *p_item) { TreeItem *Tree::_search_item_text(TreeItem *p_at, const String &p_find, int *r_col, bool p_selectable, bool p_backwards) { + TreeItem *from = p_at; while (p_at) { for (int i = 0; i < columns.size(); i++) { @@ -3499,9 +3518,12 @@ TreeItem *Tree::_search_item_text(TreeItem *p_at, const String &p_find, int *r_c } if (p_backwards) - p_at = p_at->get_prev_visible(); + p_at = p_at->get_prev_visible(true); else - p_at = p_at->get_next_visible(); + p_at = p_at->get_next_visible(true); + + if ((p_at) == from) + break; } return NULL; @@ -3509,10 +3531,14 @@ TreeItem *Tree::_search_item_text(TreeItem *p_at, const String &p_find, int *r_c TreeItem *Tree::search_item_text(const String &p_find, int *r_col, bool p_selectable) { - if (!root) + TreeItem *from = get_selected(); + + if (!from) + from = root; + if (!from) return NULL; - return _search_item_text(root, p_find, r_col, p_selectable); + return _search_item_text(from->get_next_visible(true), p_find, r_col, p_selectable); } void Tree::_do_incr_search(const String &p_add) { @@ -3521,7 +3547,7 @@ void Tree::_do_incr_search(const String &p_add) { uint64_t diff = time - last_keypress; if (diff > uint64_t(GLOBAL_DEF("gui/timers/incremental_search_max_interval_msec", 2000))) incr_search = p_add; - else + else if (incr_search != p_add) incr_search += p_add; last_keypress = time; @@ -3694,6 +3720,10 @@ String Tree::get_tooltip(const Point2 &p_pos) const { const TreeItem::Cell &c = it->cells[col]; int col_width = get_column_width(col); + + for (int i = 0; i < col; i++) + pos.x -= get_column_width(i); + for (int j = c.buttons.size() - 1; j >= 0; j--) { Ref<Texture> b = c.buttons[j].texture; Size2 size = b->get_size() + cache.button_pressed->get_minimum_size(); @@ -3853,6 +3883,7 @@ void Tree::_bind_methods() { ADD_SIGNAL(MethodInfo("cell_selected")); ADD_SIGNAL(MethodInfo("multi_selected", PropertyInfo(Variant::OBJECT, "item", PROPERTY_HINT_RESOURCE_TYPE, "TreeItem"), PropertyInfo(Variant::INT, "column"), PropertyInfo(Variant::BOOL, "selected"))); ADD_SIGNAL(MethodInfo("item_rmb_selected", PropertyInfo(Variant::VECTOR2, "position"))); + ADD_SIGNAL(MethodInfo("empty_rmb", PropertyInfo(Variant::VECTOR2, "position"))); ADD_SIGNAL(MethodInfo("empty_tree_rmb_selected", PropertyInfo(Variant::VECTOR2, "position"))); ADD_SIGNAL(MethodInfo("item_edited")); ADD_SIGNAL(MethodInfo("item_rmb_edited")); diff --git a/scene/gui/tree.h b/scene/gui/tree.h index 26d64baafb..45d451eb72 100644 --- a/scene/gui/tree.h +++ b/scene/gui/tree.h @@ -238,8 +238,8 @@ public: TreeItem *get_parent(); TreeItem *get_children(); - TreeItem *get_prev_visible(); - TreeItem *get_next_visible(); + TreeItem *get_prev_visible(bool p_wrap = false); + TreeItem *get_next_visible(bool p_wrap = false); void remove_child(TreeItem *p_item); diff --git a/scene/main/node.cpp b/scene/main/node.cpp index e80de68e3b..ee23b24b3c 100644 --- a/scene/main/node.cpp +++ b/scene/main/node.cpp @@ -949,6 +949,7 @@ void Node::set_name(const String &p_name) { if (is_inside_tree()) { emit_signal("renamed"); + get_tree()->node_renamed(this); get_tree()->tree_changed(); } } @@ -1164,7 +1165,7 @@ void Node::add_child(Node *p_child, bool p_legible_unique_name) { ERR_FAIL_NULL(p_child); if (p_child == this) { - ERR_EXPLAIN("Can't add child '" + p_child->get_name() + "' to itself.") + ERR_EXPLAIN("Can't add child '" + p_child->get_name() + "' to itself."); ERR_FAIL_COND(p_child == this); // adding to itself! } @@ -1198,7 +1199,7 @@ void Node::add_child_below_node(Node *p_node, Node *p_child, bool p_legible_uniq if (is_a_parent_of(p_node)) { move_child(p_child, p_node->get_position_in_parent() + 1); } else { - WARN_PRINTS("Cannot move under node " + p_node->get_name() + " as " + p_child->get_name() + " does not share a parent.") + WARN_PRINTS("Cannot move under node " + p_node->get_name() + " as " + p_child->get_name() + " does not share a parent."); } } @@ -2076,7 +2077,9 @@ Node *Node::_duplicate(int p_flags, Map<const Node *, Node *> *r_duplimap) const } } - node->set_name(get_name()); + if (get_name() != String()) { + node->set_name(get_name()); + } #ifdef TOOLS_ENABLED if ((p_flags & DUPLICATE_FROM_EDITOR) && r_duplimap) diff --git a/scene/main/scene_tree.cpp b/scene/main/scene_tree.cpp index b81364e2f0..7f0cebd492 100644 --- a/scene/main/scene_tree.cpp +++ b/scene/main/scene_tree.cpp @@ -105,6 +105,11 @@ void SceneTree::node_removed(Node *p_node) { call_skip.insert(p_node); } +void SceneTree::node_renamed(Node *p_node) { + + emit_signal(node_renamed_name, p_node); +} + SceneTree::Group *SceneTree::add_to_group(const StringName &p_group, Node *p_node) { Map<StringName, Group>::Element *E = group_map.find(p_group); @@ -1239,7 +1244,7 @@ void SceneTree::_update_root_rect() { root->update_canvas_items(); //force them to update just in case if (use_font_oversampling) { - WARN_PRINT("Font oversampling does not work in 'Viewport' stretch mode, only '2D'.") + WARN_PRINT("Font oversampling does not work in 'Viewport' stretch mode, only '2D'."); } } break; @@ -1895,6 +1900,7 @@ void SceneTree::_bind_methods() { ADD_SIGNAL(MethodInfo("tree_changed")); ADD_SIGNAL(MethodInfo("node_added", PropertyInfo(Variant::OBJECT, "node", PROPERTY_HINT_RESOURCE_TYPE, "Node"))); ADD_SIGNAL(MethodInfo("node_removed", PropertyInfo(Variant::OBJECT, "node", PROPERTY_HINT_RESOURCE_TYPE, "Node"))); + ADD_SIGNAL(MethodInfo("node_renamed", PropertyInfo(Variant::OBJECT, "node", PROPERTY_HINT_RESOURCE_TYPE, "Node"))); ADD_SIGNAL(MethodInfo("screen_resized")); ADD_SIGNAL(MethodInfo("node_configuration_warning_changed", PropertyInfo(Variant::OBJECT, "node", PROPERTY_HINT_RESOURCE_TYPE, "Node"))); @@ -1983,6 +1989,7 @@ SceneTree::SceneTree() { tree_changed_name = "tree_changed"; node_added_name = "node_added"; node_removed_name = "node_removed"; + node_renamed_name = "node_renamed"; ugc_locked = false; call_lock = 0; root_lock = 0; diff --git a/scene/main/scene_tree.h b/scene/main/scene_tree.h index e098b3d53c..0bcb724929 100644 --- a/scene/main/scene_tree.h +++ b/scene/main/scene_tree.h @@ -126,6 +126,7 @@ private: StringName tree_changed_name; StringName node_added_name; StringName node_removed_name; + StringName node_renamed_name; bool use_font_oversampling; int64_t current_frame; @@ -201,6 +202,7 @@ private: void tree_changed(); void node_added(Node *p_node); void node_removed(Node *p_node); + void node_renamed(Node *p_node); Group *add_to_group(const StringName &p_group, Node *p_node); void remove_from_group(const StringName &p_group, Node *p_node); diff --git a/scene/main/viewport.cpp b/scene/main/viewport.cpp index ae2c571201..c02873cdeb 100644 --- a/scene/main/viewport.cpp +++ b/scene/main/viewport.cpp @@ -886,7 +886,7 @@ void Viewport::_camera_set(Camera *p_camera) { if (camera == p_camera) return; - if (camera && find_world().is_valid()) { + if (camera) { camera->notification(Camera::NOTIFICATION_LOST_CURRENT); } camera = p_camera; @@ -895,7 +895,7 @@ void Viewport::_camera_set(Camera *p_camera) { else VisualServer::get_singleton()->viewport_attach_camera(viewport, RID()); - if (camera && find_world().is_valid()) { + if (camera) { camera->notification(Camera::NOTIFICATION_BECAME_CURRENT); } @@ -914,9 +914,7 @@ void Viewport::_camera_remove(Camera *p_camera) { cameras.erase(p_camera); if (camera == p_camera) { - if (camera && find_world().is_valid()) { - camera->notification(Camera::NOTIFICATION_LOST_CURRENT); - } + camera->notification(Camera::NOTIFICATION_LOST_CURRENT); camera = NULL; } } @@ -1013,7 +1011,7 @@ void Viewport::_propagate_enter_world(Node *p_node) { Viewport *v = Object::cast_to<Viewport>(p_node); if (v) { - if (v->world.is_valid()) + if (v->world.is_valid() || v->own_world.is_valid()) return; } } @@ -1050,7 +1048,7 @@ void Viewport::_propagate_exit_world(Node *p_node) { Viewport *v = Object::cast_to<Viewport>(p_node); if (v) { - if (v->world.is_valid()) + if (v->world.is_valid() || v->own_world.is_valid()) return; } } @@ -1070,23 +1068,11 @@ void Viewport::set_world(const Ref<World> &p_world) { if (is_inside_tree()) _propagate_exit_world(this); -#ifndef _3D_DISABLED - if (find_world().is_valid() && camera) - camera->notification(Camera::NOTIFICATION_LOST_CURRENT); -#endif - world = p_world; if (is_inside_tree()) _propagate_enter_world(this); -#ifndef _3D_DISABLED - if (find_world().is_valid() && camera) - camera->notification(Camera::NOTIFICATION_BECAME_CURRENT); -#endif - - //propagate exit - if (is_inside_tree()) { VisualServer::get_singleton()->viewport_set_scenario(viewport, find_world()->get_scenario()); } @@ -2722,11 +2708,6 @@ void Viewport::set_use_own_world(bool p_world) { if (is_inside_tree()) _propagate_exit_world(this); -#ifndef _3D_DISABLED - if (find_world().is_valid() && camera) - camera->notification(Camera::NOTIFICATION_LOST_CURRENT); -#endif - if (!p_world) own_world = Ref<World>(); else @@ -2735,13 +2716,6 @@ void Viewport::set_use_own_world(bool p_world) { if (is_inside_tree()) _propagate_enter_world(this); -#ifndef _3D_DISABLED - if (find_world().is_valid() && camera) - camera->notification(Camera::NOTIFICATION_BECAME_CURRENT); -#endif - - //propagate exit - if (is_inside_tree()) { VisualServer::get_singleton()->viewport_set_scenario(viewport, find_world()->get_scenario()); } @@ -2765,6 +2739,19 @@ Rect2 Viewport::get_attach_to_screen_rect() const { return to_screen_rect; } +void Viewport::set_use_render_direct_to_screen(bool p_render_direct_to_screen) { + + if (p_render_direct_to_screen == render_direct_to_screen) + return; + + render_direct_to_screen = p_render_direct_to_screen; + VS::get_singleton()->viewport_set_render_direct_to_screen(viewport, p_render_direct_to_screen); +} + +bool Viewport::is_using_render_direct_to_screen() const { + return render_direct_to_screen; +} + void Viewport::set_physics_object_picking(bool p_enable) { physics_object_picking = p_enable; @@ -3030,6 +3017,8 @@ void Viewport::_bind_methods() { ClassDB::bind_method(D_METHOD("set_as_audio_listener_2d", "enable"), &Viewport::set_as_audio_listener_2d); ClassDB::bind_method(D_METHOD("is_audio_listener_2d"), &Viewport::is_audio_listener_2d); ClassDB::bind_method(D_METHOD("set_attach_to_screen_rect", "rect"), &Viewport::set_attach_to_screen_rect); + ClassDB::bind_method(D_METHOD("set_use_render_direct_to_screen", "enable"), &Viewport::set_use_render_direct_to_screen); + ClassDB::bind_method(D_METHOD("is_using_render_direct_to_screen"), &Viewport::is_using_render_direct_to_screen); ClassDB::bind_method(D_METHOD("get_mouse_position"), &Viewport::get_mouse_position); ClassDB::bind_method(D_METHOD("warp_mouse", "to_position"), &Viewport::warp_mouse); @@ -3084,6 +3073,7 @@ void Viewport::_bind_methods() { ADD_PROPERTY(PropertyInfo(Variant::BOOL, "disable_3d"), "set_disable_3d", "is_3d_disabled"); ADD_PROPERTY(PropertyInfo(Variant::BOOL, "keep_3d_linear"), "set_keep_3d_linear", "get_keep_3d_linear"); ADD_PROPERTY(PropertyInfo(Variant::INT, "usage", PROPERTY_HINT_ENUM, "2D,2D No-Sampling,3D,3D No-Effects"), "set_usage", "get_usage"); + ADD_PROPERTY(PropertyInfo(Variant::BOOL, "render_direct_to_screen"), "set_use_render_direct_to_screen", "is_using_render_direct_to_screen"); ADD_PROPERTY(PropertyInfo(Variant::INT, "debug_draw", PROPERTY_HINT_ENUM, "Disabled,Unshaded,Overdraw,Wireframe"), "set_debug_draw", "get_debug_draw"); ADD_GROUP("Render Target", "render_target_"); ADD_PROPERTY(PropertyInfo(Variant::BOOL, "render_target_v_flip"), "set_vflip", "get_vflip"); @@ -3166,6 +3156,8 @@ Viewport::Viewport() { texture_rid = VisualServer::get_singleton()->viewport_get_texture(viewport); texture_flags = 0; + render_direct_to_screen = false; + default_texture.instance(); default_texture->vp = const_cast<Viewport *>(this); viewport_textures.insert(default_texture.ptr()); diff --git a/scene/main/viewport.h b/scene/main/viewport.h index d67b4ac348..b7160d5139 100644 --- a/scene/main/viewport.h +++ b/scene/main/viewport.h @@ -182,6 +182,7 @@ private: Size2 size; Rect2 to_screen_rect; + bool render_direct_to_screen; RID contact_2d_debug; RID contact_3d_debug_multimesh; @@ -481,6 +482,9 @@ public: void set_attach_to_screen_rect(const Rect2 &p_rect); Rect2 get_attach_to_screen_rect() const; + void set_use_render_direct_to_screen(bool p_render_direct_to_screen); + bool is_using_render_direct_to_screen() const; + Vector2 get_mouse_position() const; void warp_mouse(const Vector2 &p_pos); diff --git a/scene/register_scene_types.cpp b/scene/register_scene_types.cpp index 8bfb50c68d..0423fcb5f0 100644 --- a/scene/register_scene_types.cpp +++ b/scene/register_scene_types.cpp @@ -48,6 +48,7 @@ #include "scene/2d/light_occluder_2d.h" #include "scene/2d/line_2d.h" #include "scene/2d/mesh_instance_2d.h" +#include "scene/2d/multimesh_instance_2d.h" #include "scene/2d/navigation_2d.h" #include "scene/2d/parallax_background.h" #include "scene/2d/parallax_layer.h" @@ -144,7 +145,6 @@ #include "scene/resources/material.h" #include "scene/resources/mesh.h" #include "scene/resources/mesh_data_tool.h" -#include "scene/resources/mesh_library.h" #include "scene/resources/packed_scene.h" #include "scene/resources/particles_material.h" #include "scene/resources/physics_material.h" @@ -209,6 +209,7 @@ #include "scene/3d/visibility_notifier.h" #include "scene/animation/skeleton_ik.h" #include "scene/resources/environment.h" +#include "scene/resources/mesh_library.h" #endif static Ref<ResourceFormatSaverText> resource_saver_text; @@ -468,7 +469,7 @@ void register_scene_types() { OS::get_singleton()->yield(); //may take time to init #endif - ClassDB::register_class<MeshLibrary>(); + AcceptDialog::set_swap_ok_cancel(GLOBAL_DEF("gui/common/swap_ok_cancel", bool(OS::get_singleton()->get_swap_ok_cancel()))); ClassDB::register_class<Shader>(); @@ -476,6 +477,7 @@ void register_scene_types() { ClassDB::register_virtual_class<VisualShaderNode>(); ClassDB::register_class<VisualShaderNodeInput>(); ClassDB::register_virtual_class<VisualShaderNodeOutput>(); + ClassDB::register_class<VisualShaderNodeGroupBase>(); ClassDB::register_class<VisualShaderNodeScalarConstant>(); ClassDB::register_class<VisualShaderNodeBooleanConstant>(); ClassDB::register_class<VisualShaderNodeColorConstant>(); @@ -524,6 +526,7 @@ void register_scene_types() { ClassDB::register_class<VisualShaderNodeIf>(); ClassDB::register_class<VisualShaderNodeSwitch>(); ClassDB::register_class<VisualShaderNodeFresnel>(); + ClassDB::register_class<VisualShaderNodeExpression>(); ClassDB::register_class<ShaderMaterial>(); ClassDB::register_virtual_class<CanvasItem>(); @@ -541,6 +544,7 @@ void register_scene_types() { ClassDB::register_class<Position2D>(); ClassDB::register_class<Line2D>(); ClassDB::register_class<MeshInstance2D>(); + ClassDB::register_class<MultiMeshInstance2D>(); ClassDB::register_virtual_class<CollisionObject2D>(); ClassDB::register_virtual_class<PhysicsBody2D>(); ClassDB::register_class<StaticBody2D>(); @@ -585,9 +589,13 @@ void register_scene_types() { SceneTree::add_idle_callback(ParticlesMaterial::flush_changes); ParticlesMaterial::init_shaders(); -#ifndef _3D_DISABLED ClassDB::register_virtual_class<Mesh>(); ClassDB::register_class<ArrayMesh>(); + ClassDB::register_class<MultiMesh>(); + ClassDB::register_class<SurfaceTool>(); + ClassDB::register_class<MeshDataTool>(); + +#ifndef _3D_DISABLED ClassDB::register_virtual_class<PrimitiveMesh>(); ClassDB::register_class<CapsuleMesh>(); ClassDB::register_class<CubeMesh>(); @@ -601,7 +609,6 @@ void register_scene_types() { SceneTree::add_idle_callback(SpatialMaterial::flush_changes); SpatialMaterial::init_shaders(); - ClassDB::register_class<MultiMesh>(); ClassDB::register_class<MeshLibrary>(); OS::get_singleton()->yield(); //may take time to init @@ -617,9 +624,6 @@ void register_scene_types() { ClassDB::register_class<ConvexPolygonShape>(); ClassDB::register_class<ConcavePolygonShape>(); - ClassDB::register_class<SurfaceTool>(); - ClassDB::register_class<MeshDataTool>(); - OS::get_singleton()->yield(); //may take time to init ClassDB::register_class<SpatialVelocityTracker>(); @@ -642,6 +646,7 @@ void register_scene_types() { ClassDB::register_class<GradientTexture>(); ClassDB::register_class<ProxyTexture>(); ClassDB::register_class<AnimatedTexture>(); + ClassDB::register_class<CameraTexture>(); ClassDB::register_class<CubeMap>(); ClassDB::register_virtual_class<TextureLayered>(); ClassDB::register_class<Texture3D>(); diff --git a/scene/resources/animation.cpp b/scene/resources/animation.cpp index 9c79b2ba3b..e4da659b0d 100644 --- a/scene/resources/animation.cpp +++ b/scene/resources/animation.cpp @@ -93,7 +93,7 @@ bool Animation::_set(const StringName &p_name, const Variant &p_value) { TransformTrack *tt = static_cast<TransformTrack *>(tracks[track]); PoolVector<float> values = p_value; int vcount = values.size(); - ERR_FAIL_COND_V(vcount % 12, false); // shuld be multiple of 11 + ERR_FAIL_COND_V(vcount % 12, false); // should be multiple of 11 PoolVector<float>::Read r = values.read(); @@ -819,15 +819,17 @@ int Animation::_insert(float p_time, T &p_keys, const V &p_value) { while (true) { - if (idx == 0 || p_keys[idx - 1].time < p_time) { - //condition for insertion. - p_keys.insert(idx, p_value); - return idx; - } else if (p_keys[idx - 1].time == p_time) { + // Condition for replacement. + if (idx > 0 && Math::is_equal_approx(p_keys[idx - 1].time, p_time)) { - // condition for replacing. p_keys.write[idx - 1] = p_value; return idx - 1; + + // Condition for insert. + } else if (idx == 0 || p_keys[idx - 1].time < p_time) { + + p_keys.insert(idx, p_value); + return idx; } idx--; @@ -1296,6 +1298,78 @@ float Animation::track_get_key_time(int p_track, int p_key_idx) const { ERR_FAIL_V(-1); } +void Animation::track_set_key_time(int p_track, int p_key_idx, float p_time) { + + ERR_FAIL_INDEX(p_track, tracks.size()); + Track *t = tracks[p_track]; + + switch (t->type) { + + case TYPE_TRANSFORM: { + + TransformTrack *tt = static_cast<TransformTrack *>(t); + ERR_FAIL_INDEX(p_key_idx, tt->transforms.size()); + TKey<TransformKey> key = tt->transforms[p_key_idx]; + key.time = p_time; + tt->transforms.remove(p_key_idx); + _insert(p_time, tt->transforms, key); + return; + } + case TYPE_VALUE: { + + ValueTrack *vt = static_cast<ValueTrack *>(t); + ERR_FAIL_INDEX(p_key_idx, vt->values.size()); + TKey<Variant> key = vt->values[p_key_idx]; + key.time = p_time; + vt->values.remove(p_key_idx); + _insert(p_time, vt->values, key); + return; + } + case TYPE_METHOD: { + + MethodTrack *mt = static_cast<MethodTrack *>(t); + ERR_FAIL_INDEX(p_key_idx, mt->methods.size()); + MethodKey key = mt->methods[p_key_idx]; + key.time = p_time; + mt->methods.remove(p_key_idx); + _insert(p_time, mt->methods, key); + return; + } + case TYPE_BEZIER: { + + BezierTrack *bt = static_cast<BezierTrack *>(t); + ERR_FAIL_INDEX(p_key_idx, bt->values.size()); + TKey<BezierKey> key = bt->values[p_key_idx]; + key.time = p_time; + bt->values.remove(p_key_idx); + _insert(p_time, bt->values, key); + return; + } + case TYPE_AUDIO: { + + AudioTrack *at = static_cast<AudioTrack *>(t); + ERR_FAIL_INDEX(p_key_idx, at->values.size()); + TKey<AudioKey> key = at->values[p_key_idx]; + key.time = p_time; + at->values.remove(p_key_idx); + _insert(p_time, at->values, key); + return; + } + case TYPE_ANIMATION: { + + AnimationTrack *at = static_cast<AnimationTrack *>(t); + ERR_FAIL_INDEX(p_key_idx, at->values.size()); + TKey<StringName> key = at->values[p_key_idx]; + key.time = p_time; + at->values.remove(p_key_idx); + _insert(p_time, at->values, key); + return; + } + } + + ERR_FAIL(); +} + float Animation::track_get_key_transition(int p_track, int p_key_idx) const { ERR_FAIL_INDEX_V(p_track, tracks.size(), -1); @@ -2559,17 +2633,6 @@ bool Animation::has_loop() const { return loop; } -void Animation::track_move_up(int p_track) { - - if (p_track >= 0 && p_track < (tracks.size() - 1)) { - - SWAP(tracks.write[p_track], tracks.write[p_track + 1]); - } - - emit_changed(); - emit_signal(SceneStringNames::get_singleton()->tracks_changed); -} - void Animation::track_set_imported(int p_track, bool p_imported) { ERR_FAIL_INDEX(p_track, tracks.size()); @@ -2595,12 +2658,40 @@ bool Animation::track_is_enabled(int p_track) const { return tracks[p_track]->enabled; } +void Animation::track_move_up(int p_track) { + + if (p_track >= 0 && p_track < (tracks.size() - 1)) { + + SWAP(tracks.write[p_track], tracks.write[p_track + 1]); + } + + emit_changed(); + emit_signal(SceneStringNames::get_singleton()->tracks_changed); +} + void Animation::track_move_down(int p_track) { if (p_track > 0 && p_track < tracks.size()) { SWAP(tracks.write[p_track], tracks.write[p_track - 1]); } + + emit_changed(); + emit_signal(SceneStringNames::get_singleton()->tracks_changed); +} + +void Animation::track_move_to(int p_track, int p_to_index) { + + ERR_FAIL_INDEX(p_track, tracks.size()); + ERR_FAIL_INDEX(p_to_index, tracks.size() + 1); + if (p_track == p_to_index || p_track == p_to_index - 1) + return; + + Track *track = tracks.get(p_track); + tracks.remove(p_track); + // Take into account that the position of the tracks that come after the one removed will change. + tracks.insert(p_to_index > p_track ? p_to_index - 1 : p_to_index, track); + emit_changed(); emit_signal(SceneStringNames::get_singleton()->tracks_changed); } @@ -2612,6 +2703,7 @@ void Animation::track_swap(int p_track, int p_with_track) { if (p_track == p_with_track) return; SWAP(tracks.write[p_track], tracks.write[p_with_track]); + emit_changed(); emit_signal(SceneStringNames::get_singleton()->tracks_changed); } @@ -2656,6 +2748,7 @@ void Animation::_bind_methods() { 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_set_imported", "idx", "imported"), &Animation::track_set_imported); @@ -2670,6 +2763,7 @@ void Animation::_bind_methods() { 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("track_get_key_count", "idx"), &Animation::track_get_key_count); diff --git a/scene/resources/animation.h b/scene/resources/animation.h index 3d38a8902f..59f2ae24c7 100644 --- a/scene/resources/animation.h +++ b/scene/resources/animation.h @@ -293,6 +293,7 @@ public: void track_move_up(int p_track); void track_move_down(int p_track); + void track_move_to(int p_track, int p_to_index); void track_swap(int p_track, int p_with_track); void track_set_imported(int p_track, bool p_imported); @@ -304,6 +305,7 @@ public: void track_insert_key(int p_track, float p_time, const Variant &p_key, float p_transition = 1); void track_set_key_transition(int p_track, int p_key_idx, float p_transition); void track_set_key_value(int p_track, int p_key_idx, const Variant &p_value); + void track_set_key_time(int p_track, int p_key_idx, float p_time); int track_find_key(int p_track, float p_time, bool p_exact = false) const; void track_remove_key(int p_track, int p_idx); void track_remove_key_at_position(int p_track, float p_pos); diff --git a/scene/resources/bit_map.cpp b/scene/resources/bit_map.cpp index a9d85be0dc..e4a64a1de1 100644 --- a/scene/resources/bit_map.cpp +++ b/scene/resources/bit_map.cpp @@ -595,16 +595,16 @@ Array BitMap::_opaque_to_polygons_bind(const Rect2 &p_rect, float p_epsilon) con return result_array; } -void BitMap::resize(const Size2& p_new_size) { +void BitMap::resize(const Size2 &p_new_size) { Ref<BitMap> new_bitmap; new_bitmap.instance(); new_bitmap->create(p_new_size); - int lw = MIN(width,p_new_size.width); - int lh = MIN(height,p_new_size.height); - for(int x=0;x<lw;x++) { - for(int y=0;y<lh;y++) { - new_bitmap->set_bit(Vector2(x,y),get_bit(Vector2(x,y))); + int lw = MIN(width, p_new_size.width); + int lh = MIN(height, p_new_size.height); + for (int x = 0; x < lw; x++) { + for (int y = 0; y < lh; y++) { + new_bitmap->set_bit(Vector2(x, y), get_bit(Vector2(x, y))); } } @@ -617,11 +617,11 @@ Ref<Image> BitMap::convert_to_image() const { Ref<Image> image; image.instance(); - image->create(width,height,false,Image::FORMAT_L8); + image->create(width, height, false, Image::FORMAT_L8); image->lock(); - for(int i=0;i<width;i++) { - for(int j=0;j<height;j++) { - image->set_pixel( i,j,get_bit(Point2(i,j)) ? Color(1,1,1) : Color(0,0,0)); + for (int i = 0; i < width; i++) { + for (int j = 0; j < height; j++) { + image->set_pixel(i, j, get_bit(Point2(i, j)) ? Color(1, 1, 1) : Color(0, 0, 0)); } } @@ -629,30 +629,28 @@ Ref<Image> BitMap::convert_to_image() const { return image; } -void BitMap::blit(const Vector2& p_pos,const Ref<BitMap>& p_bitmap) { +void BitMap::blit(const Vector2 &p_pos, const Ref<BitMap> &p_bitmap) { int x = p_pos.x; int y = p_pos.y; int w = p_bitmap->get_size().width; int h = p_bitmap->get_size().height; - for(int i=0;i<w;i++) { - for (int j=0;j<h;j++) { - int px = x+i; - int py = y+j; - if (px<0 || px>=width) + for (int i = 0; i < w; i++) { + for (int j = 0; j < h; j++) { + int px = x + i; + int py = y + j; + if (px < 0 || px >= width) continue; - if (py<0 || py>=height) + if (py < 0 || py >= height) continue; - if (p_bitmap->get_bit(Vector2(i,j))) { - set_bit(Vector2(x,y),true); + if (p_bitmap->get_bit(Vector2(i, j))) { + set_bit(Vector2(x, y), true); } } } - } - void BitMap::_bind_methods() { ClassDB::bind_method(D_METHOD("create", "size"), &BitMap::create); diff --git a/scene/resources/bit_map.h b/scene/resources/bit_map.h index 6e1171b8a9..daf24affb1 100644 --- a/scene/resources/bit_map.h +++ b/scene/resources/bit_map.h @@ -64,11 +64,11 @@ public: int get_true_bit_count() const; Size2 get_size() const; - void resize(const Size2& p_new_size); + void resize(const Size2 &p_new_size); void grow_mask(int p_pixels, const Rect2 &p_rect); - void blit(const Vector2& p_pos,const Ref<BitMap>& p_bitmap); + void blit(const Vector2 &p_pos, const Ref<BitMap> &p_bitmap); Ref<Image> convert_to_image() const; Vector<Vector<Vector2> > clip_opaque_to_polygons(const Rect2 &p_rect, float p_epsilon = 2.0) const; diff --git a/scene/resources/curve.cpp b/scene/resources/curve.cpp index ece8ad4bb0..950518aa6e 100644 --- a/scene/resources/curve.cpp +++ b/scene/resources/curve.cpp @@ -782,7 +782,8 @@ Vector2 Curve2D::interpolate_baked(float p_offset, bool p_cubic) const { if (idx >= bpc - 1) { return r[bpc - 1]; } else if (idx == bpc - 2) { - frac /= Math::fmod(baked_max_ofs, bake_interval); + if (frac > 0) + frac /= Math::fmod(baked_max_ofs, bake_interval); } else { frac /= bake_interval; } @@ -1352,7 +1353,8 @@ Vector3 Curve3D::interpolate_baked(float p_offset, bool p_cubic) const { if (idx >= bpc - 1) { return r[bpc - 1]; } else if (idx == bpc - 2) { - frac /= Math::fmod(baked_max_ofs, bake_interval); + if (frac > 0) + frac /= Math::fmod(baked_max_ofs, bake_interval); } else { frac /= bake_interval; } @@ -1396,7 +1398,8 @@ float Curve3D::interpolate_baked_tilt(float p_offset) const { if (idx >= bpc - 1) { return r[bpc - 1]; } else if (idx == bpc - 2) { - frac /= Math::fmod(baked_max_ofs, bake_interval); + if (frac > 0) + frac /= Math::fmod(baked_max_ofs, bake_interval); } else { frac /= bake_interval; } diff --git a/scene/resources/default_theme/default_theme.cpp b/scene/resources/default_theme/default_theme.cpp index 0b88763300..2c5dfc375c 100644 --- a/scene/resources/default_theme/default_theme.cpp +++ b/scene/resources/default_theme/default_theme.cpp @@ -441,6 +441,7 @@ void fill_default_theme(Ref<Theme> &theme, const Ref<Font> &default_font, const theme->set_color("font_color_selected", "TextEdit", Color(0, 0, 0)); theme->set_color("selection_color", "TextEdit", font_color_selection); theme->set_color("mark_color", "TextEdit", Color(1.0, 0.4, 0.4, 0.4)); + theme->set_color("bookmark_color", "TextEdit", Color(0.08, 0.49, 0.98)); theme->set_color("breakpoint_color", "TextEdit", Color(0.8, 0.8, 0.4, 0.2)); theme->set_color("executing_line_color", "TextEdit", Color(0.2, 0.8, 0.2, 0.4)); theme->set_color("code_folding_color", "TextEdit", Color(0.8, 0.8, 0.8, 0.8)); @@ -540,8 +541,9 @@ void fill_default_theme(Ref<Theme> &theme, const Ref<Font> &default_font, const // File Dialog - theme->set_icon("reload", "FileDialog", make_icon(icon_reload_png)); theme->set_icon("parent_folder", "FileDialog", make_icon(icon_parent_folder_png)); + theme->set_icon("reload", "FileDialog", make_icon(icon_reload_png)); + theme->set_icon("toggle_hidden", "FileDialog", make_icon(icon_visibility_png)); // Popup @@ -581,14 +583,14 @@ void fill_default_theme(Ref<Theme> &theme, const Ref<Font> &default_font, const // GraphNode - Ref<StyleBoxTexture> graphsb = make_stylebox(graph_node_png, 6, 24, 6, 5, 16, 24, 16, 5); - Ref<StyleBoxTexture> graphsbcomment = make_stylebox(graph_node_comment_png, 6, 24, 6, 5, 16, 24, 16, 5); - Ref<StyleBoxTexture> graphsbcommentselected = make_stylebox(graph_node_comment_focus_png, 6, 24, 6, 5, 16, 24, 16, 5); - Ref<StyleBoxTexture> graphsbselected = make_stylebox(graph_node_selected_png, 6, 24, 6, 5, 16, 24, 16, 5); + Ref<StyleBoxTexture> graphsb = make_stylebox(graph_node_png, 6, 24, 6, 5, 16, 24, 16, 6); + Ref<StyleBoxTexture> graphsbcomment = make_stylebox(graph_node_comment_png, 6, 24, 6, 5, 16, 24, 16, 6); + Ref<StyleBoxTexture> graphsbcommentselected = make_stylebox(graph_node_comment_focus_png, 6, 24, 6, 5, 16, 24, 16, 6); + Ref<StyleBoxTexture> graphsbselected = make_stylebox(graph_node_selected_png, 6, 24, 6, 5, 16, 24, 16, 6); Ref<StyleBoxTexture> graphsbdefault = make_stylebox(graph_node_default_png, 4, 4, 4, 4, 6, 4, 4, 4); Ref<StyleBoxTexture> graphsbdeffocus = make_stylebox(graph_node_default_focus_png, 4, 4, 4, 4, 6, 4, 4, 4); - Ref<StyleBoxTexture> graph_bpoint = make_stylebox(graph_node_breakpoint_png, 6, 24, 6, 5, 16, 24, 16, 5); - Ref<StyleBoxTexture> graph_position = make_stylebox(graph_node_position_png, 6, 24, 6, 5, 16, 24, 16, 5); + Ref<StyleBoxTexture> graph_bpoint = make_stylebox(graph_node_breakpoint_png, 6, 24, 6, 5, 16, 24, 16, 6); + Ref<StyleBoxTexture> graph_position = make_stylebox(graph_node_position_png, 6, 24, 6, 5, 16, 24, 16, 6); //graphsb->set_expand_margin_size(MARGIN_LEFT,10); //graphsb->set_expand_margin_size(MARGIN_RIGHT,10); diff --git a/scene/resources/default_theme/font_hidpi.inc b/scene/resources/default_theme/font_hidpi.inc index 2fc0f56c3f..4860149e6b 100644 --- a/scene/resources/default_theme/font_hidpi.inc +++ b/scene/resources/default_theme/font_hidpi.inc @@ -1,3 +1,4 @@ +/* clang-format off */ static const int _hidpi_font_height=25; static const int _hidpi_font_ascent=19; static const int _hidpi_font_charcount=191; @@ -25459,3 +25460,4 @@ static const unsigned char _hidpi_font_img_data[25255]={ 96, 130, }; +/* clang-format on */ diff --git a/scene/resources/default_theme/font_lodpi.inc b/scene/resources/default_theme/font_lodpi.inc index 8eae45a8a7..959e2c1d7b 100644 --- a/scene/resources/default_theme/font_lodpi.inc +++ b/scene/resources/default_theme/font_lodpi.inc @@ -1,3 +1,4 @@ +/* clang-format off */ static const int _lodpi_font_height=14; static const int _lodpi_font_ascent=11; static const int _lodpi_font_charcount=191; @@ -13113,3 +13114,4 @@ static const unsigned char _lodpi_font_img_data[12909]={ 96, 130, }; +/* clang-format on */ diff --git a/scene/resources/default_theme/icon_visibility.png b/scene/resources/default_theme/icon_visibility.png Binary files differnew file mode 100644 index 0000000000..6402571f3e --- /dev/null +++ b/scene/resources/default_theme/icon_visibility.png diff --git a/scene/resources/default_theme/theme_data.h b/scene/resources/default_theme/theme_data.h index 87b8afd6a3..5e13a6625a 100644 --- a/scene/resources/default_theme/theme_data.h +++ b/scene/resources/default_theme/theme_data.h @@ -194,6 +194,10 @@ static const unsigned char icon_stop_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, 0x1e, 0x49, 0x44, 0x41, 0x54, 0x78, 0xda, 0x63, 0x20, 0x2, 0x7c, 0x60, 0x26, 0x28, 0xf3, 0xf0, 0x3f, 0x76, 0x8, 0x94, 0xa2, 0x97, 0x82, 0x51, 0x5, 0x84, 0x23, 0x8b, 0x30, 0x0, 0x0, 0x66, 0x60, 0x11, 0xdc, 0x92, 0xb3, 0xb7, 0xe7, 0x0, 0x0, 0x0, 0x0, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82 }; +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 +}; + static const unsigned char icon_zoom_less_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, 0x13, 0x49, 0x44, 0x41, 0x54, 0x78, 0xda, 0x63, 0x18, 0x31, 0xe0, 0xc1, 0x7f, 0x3c, 0x90, 0xb0, 0x82, 0x11, 0x2, 0x0, 0xbf, 0x57, 0x36, 0x25, 0x52, 0x24, 0x7b, 0x26, 0x0, 0x0, 0x0, 0x0, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82 }; diff --git a/scene/resources/dynamic_font.h b/scene/resources/dynamic_font.h index 887c7b42c8..8d60ea1798 100644 --- a/scene/resources/dynamic_font.h +++ b/scene/resources/dynamic_font.h @@ -303,7 +303,6 @@ VARIANT_ENUM_CAST(DynamicFont::SpacingType); ///////////// class ResourceFormatLoaderDynamicFont : public ResourceFormatLoader { - GDCLASS(ResourceFormatLoaderDynamicFont, ResourceFormatLoader) public: virtual RES load(const String &p_path, const String &p_original_path = "", Error *r_error = NULL); virtual void get_recognized_extensions(List<String> *p_extensions) const; diff --git a/scene/resources/dynamic_font_stb.h b/scene/resources/dynamic_font_stb.h index 4c98487600..caee6e7e32 100644 --- a/scene/resources/dynamic_font_stb.h +++ b/scene/resources/dynamic_font_stb.h @@ -180,7 +180,6 @@ public: ///////////// class ResourceFormatLoaderDynamicFont : public ResourceFormatLoader { - GDCLASS(ResourceFormatLoaderDynamicFont, ResourceFormatLoader) public: virtual RES load(const String &p_path, const String &p_original_path = "", Error *r_error = NULL); virtual void get_recognized_extensions(List<String> *p_extensions) const; diff --git a/scene/resources/environment.cpp b/scene/resources/environment.cpp index 17609ed505..7c3867beaa 100644 --- a/scene/resources/environment.cpp +++ b/scene/resources/environment.cpp @@ -111,6 +111,11 @@ void Environment::set_ambient_light_sky_contribution(float p_energy) { VS::get_singleton()->environment_set_ambient_light(environment, ambient_color, ambient_energy, ambient_sky_contribution); } +void Environment::set_camera_feed_id(int p_camera_feed_id) { + camera_feed_id = p_camera_feed_id; + VS::get_singleton()->environment_set_camera_feed_id(environment, camera_feed_id); +}; + Environment::BGMode Environment::get_background() const { return bg_mode; @@ -165,6 +170,10 @@ float Environment::get_ambient_light_sky_contribution() const { return ambient_sky_contribution; } +int Environment::get_camera_feed_id(void) const { + + return camera_feed_id; +} void Environment::set_tonemapper(ToneMapper p_tone_mapper) { @@ -321,6 +330,12 @@ void Environment::_validate_property(PropertyInfo &property) const { } } + if (property.name == "background_camera_feed_id") { + if (bg_mode != BG_CAMERA_FEED) { + property.usage = PROPERTY_USAGE_NOEDITOR; + } + } + static const char *hide_prefixes[] = { "fog_", "auto_exposure_", @@ -946,6 +961,7 @@ void Environment::_bind_methods() { ClassDB::bind_method(D_METHOD("set_ambient_light_color", "color"), &Environment::set_ambient_light_color); ClassDB::bind_method(D_METHOD("set_ambient_light_energy", "energy"), &Environment::set_ambient_light_energy); ClassDB::bind_method(D_METHOD("set_ambient_light_sky_contribution", "energy"), &Environment::set_ambient_light_sky_contribution); + ClassDB::bind_method(D_METHOD("set_camera_feed_id", "camera_feed_id"), &Environment::set_camera_feed_id); ClassDB::bind_method(D_METHOD("get_background"), &Environment::get_background); ClassDB::bind_method(D_METHOD("get_sky"), &Environment::get_sky); @@ -959,9 +975,10 @@ void Environment::_bind_methods() { ClassDB::bind_method(D_METHOD("get_ambient_light_color"), &Environment::get_ambient_light_color); ClassDB::bind_method(D_METHOD("get_ambient_light_energy"), &Environment::get_ambient_light_energy); ClassDB::bind_method(D_METHOD("get_ambient_light_sky_contribution"), &Environment::get_ambient_light_sky_contribution); + ClassDB::bind_method(D_METHOD("get_camera_feed_id"), &Environment::get_camera_feed_id); ADD_GROUP("Background", "background_"); - ADD_PROPERTY(PropertyInfo(Variant::INT, "background_mode", PROPERTY_HINT_ENUM, "Clear Color,Custom Color,Sky,Color+Sky,Canvas,Keep"), "set_background", "get_background"); + ADD_PROPERTY(PropertyInfo(Variant::INT, "background_mode", PROPERTY_HINT_ENUM, "Clear Color,Custom Color,Sky,Color+Sky,Canvas,Keep,Camera Feed"), "set_background", "get_background"); ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "background_sky", PROPERTY_HINT_RESOURCE_TYPE, "Sky"), "set_sky", "get_sky"); ADD_PROPERTY(PropertyInfo(Variant::REAL, "background_sky_custom_fov", PROPERTY_HINT_RANGE, "0,180,0.1"), "set_sky_custom_fov", "get_sky_custom_fov"); ADD_PROPERTY(PropertyInfo(Variant::BASIS, "background_sky_orientation"), "set_sky_orientation", "get_sky_orientation"); @@ -970,6 +987,7 @@ void Environment::_bind_methods() { ADD_PROPERTY(PropertyInfo(Variant::COLOR, "background_color"), "set_bg_color", "get_bg_color"); ADD_PROPERTY(PropertyInfo(Variant::REAL, "background_energy", PROPERTY_HINT_RANGE, "0,16,0.01"), "set_bg_energy", "get_bg_energy"); ADD_PROPERTY(PropertyInfo(Variant::INT, "background_canvas_max_layer", PROPERTY_HINT_RANGE, "-1000,1000,1"), "set_canvas_max_layer", "get_canvas_max_layer"); + ADD_PROPERTY(PropertyInfo(Variant::INT, "background_camera_feed_id", PROPERTY_HINT_RANGE, "1,10,1"), "set_camera_feed_id", "get_camera_feed_id"); ADD_GROUP("Ambient Light", "ambient_light_"); ADD_PROPERTY(PropertyInfo(Variant::COLOR, "ambient_light_color"), "set_ambient_light_color", "get_ambient_light_color"); ADD_PROPERTY(PropertyInfo(Variant::REAL, "ambient_light_energy", PROPERTY_HINT_RANGE, "0,16,0.01"), "set_ambient_light_energy", "get_ambient_light_energy"); @@ -1265,6 +1283,7 @@ void Environment::_bind_methods() { BIND_ENUM_CONSTANT(BG_SKY); BIND_ENUM_CONSTANT(BG_COLOR_SKY); BIND_ENUM_CONSTANT(BG_CANVAS); + BIND_ENUM_CONSTANT(BG_CAMERA_FEED); BIND_ENUM_CONSTANT(BG_MAX); BIND_ENUM_CONSTANT(GLOW_BLEND_MODE_ADDITIVE); @@ -1294,8 +1313,8 @@ void Environment::_bind_methods() { Environment::Environment() : bg_mode(BG_CLEAR_COLOR), tone_mapper(TONE_MAPPER_LINEAR), - ssao_blur(SSAO_BLUR_DISABLED), - ssao_quality(SSAO_QUALITY_LOW), + ssao_blur(SSAO_BLUR_3x3), + ssao_quality(SSAO_QUALITY_MEDIUM), glow_blend_mode(GLOW_BLEND_MODE_ADDITIVE), dof_blur_far_quality(DOF_BLUR_QUALITY_LOW), dof_blur_near_quality(DOF_BLUR_QUALITY_LOW) { @@ -1310,6 +1329,7 @@ Environment::Environment() : ambient_energy = 1.0; //ambient_sky_contribution = 1.0; set_ambient_light_sky_contribution(1.0); + set_camera_feed_id(1); tone_mapper = TONE_MAPPER_LINEAR; tonemap_exposure = 1.0; @@ -1346,7 +1366,7 @@ Environment::Environment() : ssao_ao_channel_affect = 0.0; ssao_blur = SSAO_BLUR_3x3; set_ssao_edge_sharpness(4); - set_ssao_quality(SSAO_QUALITY_LOW); + set_ssao_quality(SSAO_QUALITY_MEDIUM); glow_enabled = false; glow_levels = (1 << 2) | (1 << 4); diff --git a/scene/resources/environment.h b/scene/resources/environment.h index a54f13a88f..acce9c09a2 100644 --- a/scene/resources/environment.h +++ b/scene/resources/environment.h @@ -49,6 +49,7 @@ public: BG_COLOR_SKY, BG_CANVAS, BG_KEEP, + BG_CAMERA_FEED, BG_MAX }; @@ -98,6 +99,7 @@ private: Color ambient_color; float ambient_energy; float ambient_sky_contribution; + int camera_feed_id; ToneMapper tone_mapper; float tonemap_exposure; @@ -192,6 +194,7 @@ public: void set_ambient_light_color(const Color &p_color); void set_ambient_light_energy(float p_energy); void set_ambient_light_sky_contribution(float p_energy); + void set_camera_feed_id(int p_camera_feed_id); BGMode get_background() const; Ref<Sky> get_sky() const; @@ -205,6 +208,7 @@ public: Color get_ambient_light_color() const; float get_ambient_light_energy() const; float get_ambient_light_sky_contribution() const; + int get_camera_feed_id(void) const; void set_tonemapper(ToneMapper p_tone_mapper); ToneMapper get_tonemapper() const; diff --git a/scene/resources/font.cpp b/scene/resources/font.cpp index 128db3f109..627397f0ab 100644 --- a/scene/resources/font.cpp +++ b/scene/resources/font.cpp @@ -530,7 +530,13 @@ Size2 Font::get_wordwrap_string_size(const String &p_string, float p_width) cons void BitmapFont::set_fallback(const Ref<BitmapFont> &p_fallback) { - ERR_FAIL_COND(p_fallback == this); + for (Ref<BitmapFont> fallback_child = p_fallback; fallback_child != NULL; fallback_child = fallback_child->get_fallback()) { + if (fallback_child == this) { + ERR_EXPLAIN("Can't set as fallback one of its parents to prevent crashes due to recursive loop."); + ERR_FAIL_COND(fallback_child == this); + } + } + fallback = p_fallback; } diff --git a/scene/resources/font.h b/scene/resources/font.h index def2c2285a..436ed43c42 100644 --- a/scene/resources/font.h +++ b/scene/resources/font.h @@ -202,7 +202,6 @@ public: }; class ResourceFormatLoaderBMFont : public ResourceFormatLoader { - GDCLASS(ResourceFormatLoaderBMFont, ResourceFormatLoader) public: virtual RES load(const String &p_path, const String &p_original_path = "", Error *r_error = NULL); virtual void get_recognized_extensions(List<String> *p_extensions) const; diff --git a/scene/resources/height_map_shape.cpp b/scene/resources/height_map_shape.cpp index 8cd271dab0..f763700d52 100644 --- a/scene/resources/height_map_shape.cpp +++ b/scene/resources/height_map_shape.cpp @@ -85,6 +85,7 @@ void HeightMapShape::_update_shape() { d["min_height"] = min_height; d["max_height"] = max_height; PhysicsServer::get_singleton()->shape_set_data(get_shape(), d); + Shape::_update_shape(); } void HeightMapShape::set_map_width(int p_new) { diff --git a/scene/resources/material.cpp b/scene/resources/material.cpp index 766c7bbd9f..6dec4a0c49 100644 --- a/scene/resources/material.cpp +++ b/scene/resources/material.cpp @@ -38,7 +38,12 @@ void Material::set_next_pass(const Ref<Material> &p_pass) { - ERR_FAIL_COND(p_pass == this); + for (Ref<Material> pass_child = p_pass; pass_child != NULL; pass_child = pass_child->get_next_pass()) { + if (pass_child == this) { + ERR_EXPLAIN("Can't set as next_pass one of its parents to prevent crashes due to recursive loop."); + ERR_FAIL_COND(pass_child == this); + } + } if (next_pass == p_pass) return; @@ -468,6 +473,9 @@ void SpatialMaterial::_update_shader() { if (flags[FLAG_ENSURE_CORRECT_NORMALS]) { code += ",ensure_correct_normals"; } + if (flags[FLAG_USE_SHADOW_TO_OPACITY]) { + code += ",shadow_to_opacity"; + } code += ";\n"; code += "uniform vec4 albedo : hint_color;\n"; @@ -849,7 +857,7 @@ void SpatialMaterial::_update_shader() { code += "\tALBEDO *= 1.0 - ref_amount;\n"; code += "\tALPHA = 1.0;\n"; - } else if (features[FEATURE_TRANSPARENT] || flags[FLAG_USE_ALPHA_SCISSOR] || (distance_fade == DISTANCE_FADE_PIXEL_ALPHA) || proximity_fade_enabled) { + } else if (features[FEATURE_TRANSPARENT] || flags[FLAG_USE_ALPHA_SCISSOR] || flags[FLAG_USE_SHADOW_TO_OPACITY] || (distance_fade == DISTANCE_FADE_PIXEL_ALPHA) || proximity_fade_enabled) { code += "\tALPHA = albedo.a * albedo_tex.a;\n"; } @@ -1349,7 +1357,7 @@ void SpatialMaterial::set_flag(Flags p_flag, bool p_enabled) { return; flags[p_flag] = p_enabled; - if (p_flag == FLAG_USE_ALPHA_SCISSOR || p_flag == FLAG_UNSHADED) { + if ((p_flag == FLAG_USE_ALPHA_SCISSOR) || (p_flag == FLAG_UNSHADED) || (p_flag == FLAG_USE_SHADOW_TO_OPACITY)) { _change_notify(); } _queue_shader_change(); @@ -2060,6 +2068,7 @@ void SpatialMaterial::_bind_methods() { ADD_GROUP("Flags", "flags_"); ADD_PROPERTYI(PropertyInfo(Variant::BOOL, "flags_transparent"), "set_feature", "get_feature", FEATURE_TRANSPARENT); + ADD_PROPERTYI(PropertyInfo(Variant::BOOL, "flags_use_shadow_to_opacity"), "set_flag", "get_flag", FLAG_USE_SHADOW_TO_OPACITY); ADD_PROPERTYI(PropertyInfo(Variant::BOOL, "flags_unshaded"), "set_flag", "get_flag", FLAG_UNSHADED); ADD_PROPERTYI(PropertyInfo(Variant::BOOL, "flags_vertex_lighting"), "set_flag", "get_flag", FLAG_USE_VERTEX_LIGHTING); ADD_PROPERTYI(PropertyInfo(Variant::BOOL, "flags_no_depth_test"), "set_flag", "get_flag", FLAG_DISABLE_DEPTH_TEST); @@ -2085,7 +2094,7 @@ void SpatialMaterial::_bind_methods() { ADD_PROPERTY(PropertyInfo(Variant::INT, "params_billboard_mode", PROPERTY_HINT_ENUM, "Disabled,Enabled,Y-Billboard,Particle Billboard"), "set_billboard_mode", "get_billboard_mode"); ADD_PROPERTYI(PropertyInfo(Variant::BOOL, "params_billboard_keep_scale"), "set_flag", "get_flag", FLAG_BILLBOARD_KEEP_SCALE); ADD_PROPERTY(PropertyInfo(Variant::BOOL, "params_grow"), "set_grow_enabled", "is_grow_enabled"); - ADD_PROPERTY(PropertyInfo(Variant::REAL, "params_grow_amount", PROPERTY_HINT_RANGE, "-16,10,0.01"), "set_grow", "get_grow"); + ADD_PROPERTY(PropertyInfo(Variant::REAL, "params_grow_amount", PROPERTY_HINT_RANGE, "-16,16,0.001"), "set_grow", "get_grow"); ADD_PROPERTYI(PropertyInfo(Variant::BOOL, "params_use_alpha_scissor"), "set_flag", "get_flag", FLAG_USE_ALPHA_SCISSOR); ADD_PROPERTY(PropertyInfo(Variant::REAL, "params_alpha_scissor_threshold", PROPERTY_HINT_RANGE, "0,1,0.01"), "set_alpha_scissor_threshold", "get_alpha_scissor_threshold"); ADD_GROUP("Particles Anim", "particles_anim_"); @@ -2111,7 +2120,7 @@ void SpatialMaterial::_bind_methods() { ADD_GROUP("Emission", "emission_"); ADD_PROPERTYI(PropertyInfo(Variant::BOOL, "emission_enabled"), "set_feature", "get_feature", FEATURE_EMISSION); ADD_PROPERTY(PropertyInfo(Variant::COLOR, "emission", PROPERTY_HINT_COLOR_NO_ALPHA), "set_emission", "get_emission"); - ADD_PROPERTY(PropertyInfo(Variant::REAL, "emission_energy", PROPERTY_HINT_RANGE, "0,16,0.01"), "set_emission_energy", "get_emission_energy"); + ADD_PROPERTY(PropertyInfo(Variant::REAL, "emission_energy", PROPERTY_HINT_RANGE, "0,16,0.01,or_greater"), "set_emission_energy", "get_emission_energy"); ADD_PROPERTY(PropertyInfo(Variant::INT, "emission_operator", PROPERTY_HINT_ENUM, "Add,Multiply"), "set_emission_operator", "get_emission_operator"); ADD_PROPERTYI(PropertyInfo(Variant::BOOL, "emission_on_uv2"), "set_flag", "get_flag", FLAG_EMISSION_ON_UV2); ADD_PROPERTYI(PropertyInfo(Variant::OBJECT, "emission_texture", PROPERTY_HINT_RESOURCE_TYPE, "Texture"), "set_texture", "get_texture", TEXTURE_EMISSION); @@ -2193,11 +2202,11 @@ void SpatialMaterial::_bind_methods() { ADD_GROUP("Proximity Fade", "proximity_fade_"); ADD_PROPERTY(PropertyInfo(Variant::BOOL, "proximity_fade_enable"), "set_proximity_fade", "is_proximity_fade_enabled"); - ADD_PROPERTY(PropertyInfo(Variant::REAL, "proximity_fade_distance", PROPERTY_HINT_RANGE, "0,4096,0.1"), "set_proximity_fade_distance", "get_proximity_fade_distance"); + ADD_PROPERTY(PropertyInfo(Variant::REAL, "proximity_fade_distance", PROPERTY_HINT_RANGE, "0,4096,0.01"), "set_proximity_fade_distance", "get_proximity_fade_distance"); ADD_GROUP("Distance Fade", "distance_fade_"); ADD_PROPERTY(PropertyInfo(Variant::INT, "distance_fade_mode", PROPERTY_HINT_ENUM, "Disabled,PixelAlpha,PixelDither,ObjectDither"), "set_distance_fade", "get_distance_fade"); - ADD_PROPERTY(PropertyInfo(Variant::REAL, "distance_fade_min_distance", PROPERTY_HINT_RANGE, "0,4096,0.1"), "set_distance_fade_min_distance", "get_distance_fade_min_distance"); - ADD_PROPERTY(PropertyInfo(Variant::REAL, "distance_fade_max_distance", PROPERTY_HINT_RANGE, "0,4096,0.1"), "set_distance_fade_max_distance", "get_distance_fade_max_distance"); + ADD_PROPERTY(PropertyInfo(Variant::REAL, "distance_fade_min_distance", PROPERTY_HINT_RANGE, "0,4096,0.01"), "set_distance_fade_min_distance", "get_distance_fade_min_distance"); + ADD_PROPERTY(PropertyInfo(Variant::REAL, "distance_fade_max_distance", PROPERTY_HINT_RANGE, "0,4096,0.01"), "set_distance_fade_max_distance", "get_distance_fade_max_distance"); BIND_ENUM_CONSTANT(TEXTURE_ALBEDO); BIND_ENUM_CONSTANT(TEXTURE_METALLIC); @@ -2266,6 +2275,7 @@ void SpatialMaterial::_bind_methods() { BIND_ENUM_CONSTANT(FLAG_DONT_RECEIVE_SHADOWS); BIND_ENUM_CONSTANT(FLAG_DISABLE_AMBIENT_LIGHT); BIND_ENUM_CONSTANT(FLAG_ENSURE_CORRECT_NORMALS); + BIND_ENUM_CONSTANT(FLAG_USE_SHADOW_TO_OPACITY); BIND_ENUM_CONSTANT(FLAG_MAX); BIND_ENUM_CONSTANT(DIFFUSE_BURLEY); diff --git a/scene/resources/material.h b/scene/resources/material.h index 1f7fc267af..29b45f769b 100644 --- a/scene/resources/material.h +++ b/scene/resources/material.h @@ -196,6 +196,7 @@ public: FLAG_DONT_RECEIVE_SHADOWS, FLAG_ENSURE_CORRECT_NORMALS, FLAG_DISABLE_AMBIENT_LIGHT, + FLAG_USE_SHADOW_TO_OPACITY, FLAG_MAX }; diff --git a/scene/resources/mesh.cpp b/scene/resources/mesh.cpp index 67639858ce..6443b44bb6 100644 --- a/scene/resources/mesh.cpp +++ b/scene/resources/mesh.cpp @@ -489,6 +489,7 @@ void Mesh::_bind_methods() { ClassDB::bind_method(D_METHOD("get_surface_count"), &Mesh::get_surface_count); ClassDB::bind_method(D_METHOD("surface_get_arrays", "surf_idx"), &Mesh::surface_get_arrays); ClassDB::bind_method(D_METHOD("surface_get_blend_shape_arrays", "surf_idx"), &Mesh::surface_get_blend_shape_arrays); + ClassDB::bind_method(D_METHOD("surface_set_material", "surf_idx", "material"), &Mesh::surface_set_material); ClassDB::bind_method(D_METHOD("surface_get_material", "surf_idx"), &Mesh::surface_get_material); BIND_ENUM_CONSTANT(PRIMITIVE_POINTS); @@ -1305,7 +1306,6 @@ void ArrayMesh::_bind_methods() { ClassDB::bind_method(D_METHOD("surface_get_array_index_len", "surf_idx"), &ArrayMesh::surface_get_array_index_len); ClassDB::bind_method(D_METHOD("surface_get_format", "surf_idx"), &ArrayMesh::surface_get_format); ClassDB::bind_method(D_METHOD("surface_get_primitive_type", "surf_idx"), &ArrayMesh::surface_get_primitive_type); - ClassDB::bind_method(D_METHOD("surface_set_material", "surf_idx", "material"), &ArrayMesh::surface_set_material); ClassDB::bind_method(D_METHOD("surface_find_by_name", "name"), &ArrayMesh::surface_find_by_name); ClassDB::bind_method(D_METHOD("surface_set_name", "surf_idx", "name"), &ArrayMesh::surface_set_name); ClassDB::bind_method(D_METHOD("surface_get_name", "surf_idx"), &ArrayMesh::surface_get_name); diff --git a/scene/resources/mesh.h b/scene/resources/mesh.h index 1457d283bd..b38791b9a6 100644 --- a/scene/resources/mesh.h +++ b/scene/resources/mesh.h @@ -128,6 +128,7 @@ public: virtual Array surface_get_blend_shape_arrays(int p_surface) const = 0; virtual uint32_t surface_get_format(int p_idx) const = 0; virtual PrimitiveType surface_get_primitive_type(int p_idx) const = 0; + virtual void surface_set_material(int p_idx, const Ref<Material> &p_material) = 0; virtual Ref<Material> surface_get_material(int p_idx) const = 0; virtual int get_blend_shape_count() const = 0; virtual StringName get_blend_shape_name(int p_index) const = 0; @@ -215,8 +216,8 @@ public: PrimitiveType surface_get_primitive_type(int p_idx) const; bool surface_is_alpha_sorting_enabled(int p_idx) const; - void surface_set_material(int p_idx, const Ref<Material> &p_material); - Ref<Material> surface_get_material(int p_idx) const; + virtual void surface_set_material(int p_idx, const Ref<Material> &p_material); + virtual Ref<Material> surface_get_material(int p_idx) const; int surface_find_by_name(const String &p_name) const; void surface_set_name(int p_idx, const String &p_name); diff --git a/scene/resources/packed_scene.cpp b/scene/resources/packed_scene.cpp index 2c6f30f429..99286668ce 100644 --- a/scene/resources/packed_scene.cpp +++ b/scene/resources/packed_scene.cpp @@ -92,8 +92,8 @@ Node *SceneState::instance(GenEditState p_edit_state) const { if (i > 0) { - ERR_EXPLAIN(vformat("Invalid scene: node %s does not specify its parent node.", snames[n.name])) - ERR_FAIL_COND_V(n.parent == -1, NULL) + ERR_EXPLAIN(vformat("Invalid scene: node %s does not specify its parent node.", snames[n.name])); + ERR_FAIL_COND_V(n.parent == -1, NULL); NODE_FROM_ID(nparent, n.parent); #ifdef DEBUG_ENABLED if (!nparent && (n.parent & FLAG_ID_IS_PATH)) { diff --git a/scene/resources/particles_material.cpp b/scene/resources/particles_material.cpp index ef67e6ea80..758475b75e 100644 --- a/scene/resources/particles_material.cpp +++ b/scene/resources/particles_material.cpp @@ -1186,6 +1186,7 @@ void ParticlesMaterial::_bind_methods() { BIND_ENUM_CONSTANT(FLAG_ALIGN_Y_TO_VELOCITY); BIND_ENUM_CONSTANT(FLAG_ROTATE_Y); + BIND_ENUM_CONSTANT(FLAG_DISABLE_Z); BIND_ENUM_CONSTANT(FLAG_MAX); BIND_ENUM_CONSTANT(EMISSION_SHAPE_POINT); diff --git a/scene/resources/primitive_meshes.cpp b/scene/resources/primitive_meshes.cpp index db58fe7823..04d13c8869 100644 --- a/scene/resources/primitive_meshes.cpp +++ b/scene/resources/primitive_meshes.cpp @@ -157,6 +157,12 @@ Mesh::PrimitiveType PrimitiveMesh::surface_get_primitive_type(int p_idx) const { return primitive_type; } +void PrimitiveMesh::surface_set_material(int p_idx, const Ref<Material> &p_material) { + ERR_FAIL_INDEX(p_idx, 1); + + set_material(p_material); +} + Ref<Material> PrimitiveMesh::surface_get_material(int p_idx) const { ERR_FAIL_INDEX_V(p_idx, 1, NULL); diff --git a/scene/resources/primitive_meshes.h b/scene/resources/primitive_meshes.h index 88a26801b7..0045a48736 100644 --- a/scene/resources/primitive_meshes.h +++ b/scene/resources/primitive_meshes.h @@ -72,6 +72,7 @@ public: virtual Array surface_get_blend_shape_arrays(int p_surface) const; virtual uint32_t surface_get_format(int p_idx) const; virtual Mesh::PrimitiveType surface_get_primitive_type(int p_idx) const; + virtual void surface_set_material(int p_idx, const Ref<Material> &p_material); virtual Ref<Material> surface_get_material(int p_idx) const; virtual int get_blend_shape_count() const; virtual StringName get_blend_shape_name(int p_index) const; diff --git a/scene/resources/resource_format_text.cpp b/scene/resources/resource_format_text.cpp index e9f90fc85f..0921c0dae9 100644 --- a/scene/resources/resource_format_text.cpp +++ b/scene/resources/resource_format_text.cpp @@ -447,9 +447,8 @@ Error ResourceInteractiveLoaderText::poll() { resource_cache.push_back(res); #ifdef TOOLS_ENABLED //remember ID for saving - res->set_id_for_path(local_path,index); + res->set_id_for_path(local_path, index); #endif - } ExtResource er; @@ -1545,9 +1544,6 @@ Error ResourceFormatSaverTextInstance::save(const String &p_path, const RES &p_r } { - - - } #ifdef TOOLS_ENABLED @@ -1569,7 +1565,7 @@ Error ResourceFormatSaverTextInstance::save(const String &p_path, const RES &p_r } int attempt = 1; //start from one, more readable format - while(cached_ids_found.has(attempt)) { + while (cached_ids_found.has(attempt)) { attempt++; } @@ -1577,7 +1573,7 @@ Error ResourceFormatSaverTextInstance::save(const String &p_path, const RES &p_r E->get() = attempt; //update also in resource Ref<Resource> res = E->key(); - res->set_id_for_path(local_path,attempt); + res->set_id_for_path(local_path, attempt); } #else //make sure to start from one, as it makes format more readable @@ -1598,7 +1594,6 @@ Error ResourceFormatSaverTextInstance::save(const String &p_path, const RES &p_r sorted_er.sort(); - for (int i = 0; i < sorted_er.size(); i++) { String p = sorted_er[i].resource->get_path(); @@ -1717,15 +1712,15 @@ Error ResourceFormatSaverTextInstance::save(const String &p_path, const RES &p_r Vector<StringName> groups = state->get_node_groups(i); String header = "[node"; - header += " name=\"" + String(name) + "\""; + header += " name=\"" + String(name).c_escape() + "\""; if (type != StringName()) { header += " type=\"" + String(type) + "\""; } if (path != NodePath()) { - header += " parent=\"" + String(path.simplified()) + "\""; + header += " parent=\"" + String(path.simplified()).c_escape() + "\""; } if (owner != NodePath() && owner != NodePath(".")) { - header += " owner=\"" + String(owner.simplified()) + "\""; + header += " owner=\"" + String(owner.simplified()).c_escape() + "\""; } if (index >= 0) { header += " index=\"" + itos(index) + "\""; diff --git a/scene/resources/resource_format_text.h b/scene/resources/resource_format_text.h index ab6f94986c..0041989f09 100644 --- a/scene/resources/resource_format_text.h +++ b/scene/resources/resource_format_text.h @@ -128,7 +128,6 @@ public: }; class ResourceFormatLoaderText : public ResourceFormatLoader { - GDCLASS(ResourceFormatLoaderText, ResourceFormatLoader) public: static ResourceFormatLoaderText *singleton; virtual Ref<ResourceInteractiveLoader> load_interactive(const String &p_path, const String &p_original_path = "", Error *r_error = NULL); @@ -172,10 +171,9 @@ class ResourceFormatSaverTextInstance { struct ResourceSort { RES resource; int index; - bool operator<(const ResourceSort& p_right) const { + bool operator<(const ResourceSort &p_right) const { return index < p_right.index; } - }; void _find_resources(const Variant &p_variant, bool p_main = false); @@ -188,7 +186,6 @@ public: }; class ResourceFormatSaverText : public ResourceFormatSaver { - GDCLASS(ResourceFormatSaverText, ResourceFormatSaver) public: static ResourceFormatSaverText *singleton; virtual Error save(const String &p_path, const RES &p_resource, uint32_t p_flags = 0); diff --git a/scene/resources/shader.h b/scene/resources/shader.h index fb493046fc..6e7447839f 100644 --- a/scene/resources/shader.h +++ b/scene/resources/shader.h @@ -100,7 +100,6 @@ public: VARIANT_ENUM_CAST(Shader::Mode); class ResourceFormatLoaderShader : public ResourceFormatLoader { - GDCLASS(ResourceFormatLoaderShader, ResourceFormatLoader) public: virtual RES load(const String &p_path, const String &p_original_path = "", Error *r_error = NULL); virtual void get_recognized_extensions(List<String> *p_extensions) const; @@ -109,7 +108,6 @@ public: }; class ResourceFormatSaverShader : public ResourceFormatSaver { - GDCLASS(ResourceFormatSaverShader, ResourceFormatSaver) public: virtual Error save(const String &p_path, const RES &p_resource, uint32_t p_flags = 0); virtual void get_recognized_extensions(const RES &p_resource, List<String> *p_extensions) const; diff --git a/scene/resources/sky.cpp b/scene/resources/sky.cpp index 48945d4e63..292fdcdbd2 100644 --- a/scene/resources/sky.cpp +++ b/scene/resources/sky.cpp @@ -62,7 +62,7 @@ void Sky::_bind_methods() { } Sky::Sky() { - radiance_size = RADIANCE_SIZE_512; + radiance_size = RADIANCE_SIZE_128; } ///////////////////////////////////////// diff --git a/scene/resources/surface_tool.cpp b/scene/resources/surface_tool.cpp index 8c0497e91a..496b1b2bdc 100644 --- a/scene/resources/surface_tool.cpp +++ b/scene/resources/surface_tool.cpp @@ -769,6 +769,26 @@ void SurfaceTool::create_from(const Ref<Mesh> &p_existing, int p_surface) { material = p_existing->surface_get_material(p_surface); } +void SurfaceTool::create_from_blend_shape(const Ref<Mesh> &p_existing, int p_surface, const String p_blend_shape_name) { + clear(); + primitive = p_existing->surface_get_primitive_type(p_surface); + Array arr = p_existing->surface_get_blend_shape_arrays(p_surface); + Array blend_shape_names; + int32_t shape_idx = -1; + for (int32_t i = 0; i < p_existing->get_blend_shape_count(); i++) { + String name = p_existing->get_blend_shape_name(i); + if (name == p_blend_shape_name) { + shape_idx = i; + break; + } + } + ERR_FAIL_COND(shape_idx == -1); + ERR_FAIL_COND(shape_idx >= arr.size()); + Array mesh = arr[shape_idx]; + ERR_FAIL_COND(mesh.size() != VS::ARRAY_MAX); + _create_list_from_arrays(arr[shape_idx], &vertex_array, &index_array, format); +} + void SurfaceTool::append_from(const Ref<Mesh> &p_existing, int p_surface, const Transform &p_xform) { if (vertex_array.size() == 0) { @@ -1071,8 +1091,10 @@ void SurfaceTool::_bind_methods() { ClassDB::bind_method(D_METHOD("clear"), &SurfaceTool::clear); ClassDB::bind_method(D_METHOD("create_from", "existing", "surface"), &SurfaceTool::create_from); + ClassDB::bind_method(D_METHOD("create_from_blend_shape", "existing", "surface", "blend_shape"), &SurfaceTool::create_from_blend_shape); ClassDB::bind_method(D_METHOD("append_from", "existing", "surface", "transform"), &SurfaceTool::append_from); ClassDB::bind_method(D_METHOD("commit", "existing", "flags"), &SurfaceTool::commit, DEFVAL(Variant()), DEFVAL(Mesh::ARRAY_COMPRESS_DEFAULT)); + ClassDB::bind_method(D_METHOD("commit_to_arrays"), &SurfaceTool::commit_to_arrays); } SurfaceTool::SurfaceTool() { diff --git a/scene/resources/surface_tool.h b/scene/resources/surface_tool.h index c55cade813..c4c71dca13 100644 --- a/scene/resources/surface_tool.h +++ b/scene/resources/surface_tool.h @@ -136,6 +136,7 @@ public: static Vector<Vertex> create_vertex_array_from_triangle_arrays(const Array &p_arrays); Array commit_to_arrays(); void create_from(const Ref<Mesh> &p_existing, int p_surface); + void create_from_blend_shape(const Ref<Mesh> &p_existing, int p_surface, const String p_blend_shape_name); void append_from(const Ref<Mesh> &p_existing, int p_surface, const Transform &p_xform); Ref<ArrayMesh> commit(const Ref<ArrayMesh> &p_existing = Ref<ArrayMesh>(), uint32_t p_flags = Mesh::ARRAY_COMPRESS_DEFAULT); diff --git a/scene/resources/texture.cpp b/scene/resources/texture.cpp index 92172912c2..6e0bc43296 100644 --- a/scene/resources/texture.cpp +++ b/scene/resources/texture.cpp @@ -36,6 +36,7 @@ #include "core/os/os.h" #include "mesh.h" #include "scene/resources/bit_map.h" +#include "servers/camera/camera_feed.h" Size2 Texture::get_size() const { @@ -232,7 +233,7 @@ Image::Format ImageTexture::get_format() const { #ifndef DISABLE_DEPRECATED Error ImageTexture::load(const String &p_path) { - WARN_DEPRECATED + WARN_DEPRECATED; Ref<Image> img; img.instance(); Error err = img->load(p_path); @@ -2498,3 +2499,107 @@ String ResourceFormatLoaderTextureLayered::get_resource_type(const String &p_pat return "TextureArray"; return ""; } + +void CameraTexture::_bind_methods() { + ClassDB::bind_method(D_METHOD("set_camera_feed_id", "feed_id"), &CameraTexture::set_camera_feed_id); + ClassDB::bind_method(D_METHOD("get_camera_feed_id"), &CameraTexture::get_camera_feed_id); + + ClassDB::bind_method(D_METHOD("set_which_feed", "which_feed"), &CameraTexture::set_which_feed); + ClassDB::bind_method(D_METHOD("get_which_feed"), &CameraTexture::get_which_feed); + + ClassDB::bind_method(D_METHOD("set_camera_active", "active"), &CameraTexture::set_camera_active); + ClassDB::bind_method(D_METHOD("get_camera_active"), &CameraTexture::get_camera_active); + + ADD_PROPERTY(PropertyInfo(Variant::INT, "camera_feed_id"), "set_camera_feed_id", "get_camera_feed_id"); + ADD_PROPERTY(PropertyInfo(Variant::INT, "which_feed"), "set_which_feed", "get_which_feed"); + ADD_PROPERTY(PropertyInfo(Variant::BOOL, "camera_is_active"), "set_camera_active", "get_camera_active"); +} + +int CameraTexture::get_width() const { + Ref<CameraFeed> feed = CameraServer::get_singleton()->get_feed_by_id(camera_feed_id); + if (feed.is_valid()) { + return feed->get_base_width(); + } else { + return 0; + } +} + +int CameraTexture::get_height() const { + Ref<CameraFeed> feed = CameraServer::get_singleton()->get_feed_by_id(camera_feed_id); + if (feed.is_valid()) { + return feed->get_base_height(); + } else { + return 0; + } +} + +bool CameraTexture::has_alpha() const { + return false; +} + +RID CameraTexture::get_rid() const { + Ref<CameraFeed> feed = CameraServer::get_singleton()->get_feed_by_id(camera_feed_id); + if (feed.is_valid()) { + return feed->get_texture(which_feed); + } else { + return RID(); + } +} + +void CameraTexture::set_flags(uint32_t p_flags) { + // not supported +} + +uint32_t CameraTexture::get_flags() const { + // not supported + return 0; +} + +Ref<Image> CameraTexture::get_data() const { + // not (yet) supported + return Ref<Image>(); +} + +void CameraTexture::set_camera_feed_id(int p_new_id) { + camera_feed_id = p_new_id; + _change_notify(); +} + +int CameraTexture::get_camera_feed_id() const { + return camera_feed_id; +} + +void CameraTexture::set_which_feed(CameraServer::FeedImage p_which) { + which_feed = p_which; + _change_notify(); +} + +CameraServer::FeedImage CameraTexture::get_which_feed() const { + return which_feed; +} + +void CameraTexture::set_camera_active(bool p_active) { + Ref<CameraFeed> feed = CameraServer::get_singleton()->get_feed_by_id(camera_feed_id); + if (feed.is_valid()) { + feed->set_active(p_active); + _change_notify(); + } +} + +bool CameraTexture::get_camera_active() const { + Ref<CameraFeed> feed = CameraServer::get_singleton()->get_feed_by_id(camera_feed_id); + if (feed.is_valid()) { + return feed->is_active(); + } else { + return false; + } +} + +CameraTexture::CameraTexture() { + camera_feed_id = 0; + which_feed = CameraServer::FEED_RGBA_IMAGE; +} + +CameraTexture::~CameraTexture() { + // nothing to do here yet +} diff --git a/scene/resources/texture.h b/scene/resources/texture.h index 58287b7593..59d243484d 100644 --- a/scene/resources/texture.h +++ b/scene/resources/texture.h @@ -39,6 +39,7 @@ #include "core/resource.h" #include "scene/resources/curve.h" #include "scene/resources/gradient.h" +#include "servers/camera_server.h" #include "servers/visual_server.h" /** @@ -238,7 +239,6 @@ public: }; class ResourceFormatLoaderStreamTexture : public ResourceFormatLoader { - GDCLASS(ResourceFormatLoaderStreamTexture, ResourceFormatLoader) public: virtual RES load(const String &p_path, const String &p_original_path = "", Error *r_error = NULL); virtual void get_recognized_extensions(List<String> *p_extensions) const; @@ -536,7 +536,6 @@ public: }; class ResourceFormatLoaderTextureLayered : public ResourceFormatLoader { - GDCLASS(ResourceFormatLoaderTextureLayered, ResourceFormatLoader) public: enum Compression { COMPRESSION_LOSSLESS, @@ -740,4 +739,38 @@ public: ~AnimatedTexture(); }; +class CameraTexture : public Texture { + GDCLASS(CameraTexture, Texture) + +private: + int camera_feed_id; + CameraServer::FeedImage which_feed; + +protected: + static void _bind_methods(); + +public: + virtual int get_width() const; + virtual int get_height() const; + virtual RID get_rid() const; + virtual bool has_alpha() const; + + virtual void set_flags(uint32_t p_flags); + virtual uint32_t get_flags() const; + + virtual Ref<Image> get_data() const; + + void set_camera_feed_id(int p_new_id); + int get_camera_feed_id() const; + + void set_which_feed(CameraServer::FeedImage p_which); + CameraServer::FeedImage get_which_feed() const; + + void set_camera_active(bool p_active); + bool get_camera_active() const; + + CameraTexture(); + ~CameraTexture(); +}; + #endif diff --git a/scene/resources/tile_set.cpp b/scene/resources/tile_set.cpp index 5b5968c10f..d09fac47f0 100644 --- a/scene/resources/tile_set.cpp +++ b/scene/resources/tile_set.cpp @@ -319,6 +319,7 @@ void TileSet::_get_property_list(List<PropertyInfo> *p_list) const { p_list->push_back(PropertyInfo(Variant::INT, pre + "autotile/spacing", PROPERTY_HINT_RANGE, "0,256,1", PROPERTY_USAGE_NOEDITOR | PROPERTY_USAGE_INTERNAL)); p_list->push_back(PropertyInfo(Variant::ARRAY, pre + "autotile/occluder_map", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_NOEDITOR | PROPERTY_USAGE_INTERNAL)); p_list->push_back(PropertyInfo(Variant::ARRAY, pre + "autotile/navpoly_map", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_NOEDITOR | PROPERTY_USAGE_INTERNAL)); + p_list->push_back(PropertyInfo(Variant::ARRAY, pre + "autotile/priority_map", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_NOEDITOR | PROPERTY_USAGE_INTERNAL)); p_list->push_back(PropertyInfo(Variant::ARRAY, pre + "autotile/z_index_map", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_NOEDITOR | PROPERTY_USAGE_INTERNAL)); } p_list->push_back(PropertyInfo(Variant::VECTOR2, pre + "occluder_offset")); @@ -646,6 +647,36 @@ Vector2 TileSet::autotile_get_subtile_for_bitmask(int p_id, uint16_t p_bitmask, } } +Vector2 TileSet::atlastile_get_subtile_by_priority(int p_id, const Node *p_tilemap_node, const Vector2 &p_tile_location) { + + ERR_FAIL_COND_V(!tile_map.has(p_id), Vector2()); + //First try to forward selection to script + if (get_script_instance() != NULL) { + if (get_script_instance()->has_method("_forward_atlas_subtile_selection")) { + Variant ret = get_script_instance()->call("_forward_atlas_subtile_selection", p_id, p_tilemap_node, p_tile_location); + if (ret.get_type() == Variant::VECTOR2) { + return ret; + } + } + } + + Vector2 coord = tile_get_region(p_id).size / autotile_get_size(p_id); + + List<Vector2> coords; + for (int x = 0; x < coord.x; x++) { + for (int y = 0; y < coord.y; y++) { + for (int i = 0; i < autotile_get_subtile_priority(p_id, Vector2(x, y)); i++) { + coords.push_back(Vector2(x, y)); + } + } + } + if (coords.size() == 0) { + return autotile_get_icon_coordinate(p_id); + } else { + return coords[Math::random(0, (int)coords.size())]; + } +} + void TileSet::tile_set_name(int p_id, const String &p_name) { ERR_FAIL_COND(!tile_map.has(p_id)); @@ -1141,6 +1172,7 @@ void TileSet::_bind_methods() { BIND_VMETHOD(MethodInfo(Variant::BOOL, "_is_tile_bound", PropertyInfo(Variant::INT, "drawn_id"), PropertyInfo(Variant::INT, "neighbor_id"))); BIND_VMETHOD(MethodInfo(Variant::VECTOR2, "_forward_subtile_selection", PropertyInfo(Variant::INT, "autotile_id"), PropertyInfo(Variant::INT, "bitmask"), PropertyInfo(Variant::OBJECT, "tilemap", PROPERTY_HINT_NONE, "TileMap"), PropertyInfo(Variant::VECTOR2, "tile_location"))); + BIND_VMETHOD(MethodInfo(Variant::VECTOR2, "_forward_atlas_subtile_selection", PropertyInfo(Variant::INT, "atlastile_id"), PropertyInfo(Variant::OBJECT, "tilemap", PROPERTY_HINT_NONE, "TileMap"), PropertyInfo(Variant::VECTOR2, "tile_location"))); BIND_ENUM_CONSTANT(BITMASK_2X2); BIND_ENUM_CONSTANT(BITMASK_3X3_MINIMAL); diff --git a/scene/resources/tile_set.h b/scene/resources/tile_set.h index fb84cee218..5fc22b9fc6 100644 --- a/scene/resources/tile_set.h +++ b/scene/resources/tile_set.h @@ -195,6 +195,7 @@ public: uint32_t autotile_get_bitmask(int p_id, Vector2 p_coord); const Map<Vector2, uint32_t> &autotile_get_bitmask_map(int p_id); Vector2 autotile_get_subtile_for_bitmask(int p_id, uint16_t p_bitmask, const Node *p_tilemap_node = NULL, const Vector2 &p_tile_location = Vector2()); + Vector2 atlastile_get_subtile_by_priority(int p_id, const Node *p_tilemap_node = NULL, const Vector2 &p_tile_location = Vector2()); void tile_set_shape(int p_id, int p_shape_id, const Ref<Shape2D> &p_shape); Ref<Shape2D> tile_get_shape(int p_id, int p_shape_id) const; diff --git a/scene/resources/visual_shader.cpp b/scene/resources/visual_shader.cpp index b8f21948c3..dd595d9ff8 100644 --- a/scene/resources/visual_shader.cpp +++ b/scene/resources/visual_shader.cpp @@ -29,6 +29,7 @@ /*************************************************************************/ #include "visual_shader.h" + #include "core/vmap.h" #include "servers/visual/shader_types.h" @@ -159,6 +160,7 @@ Vector2 VisualShader::get_node_position(Type p_type, int p_id) const { ERR_FAIL_COND_V(!g->nodes.has(p_id), Vector2()); return g->nodes[p_id].position; } + Ref<VisualShaderNode> VisualShader::get_node(Type p_type, int p_id) const { ERR_FAIL_INDEX_V(p_type, TYPE_MAX, Ref<VisualShaderNode>()); const Graph *g = &graph[p_type]; @@ -269,6 +271,18 @@ bool VisualShader::can_connect_nodes(Type p_type, int p_from_node, int p_from_po return true; } +void VisualShader::connect_nodes_forced(Type p_type, int p_from_node, int p_from_port, int p_to_node, int p_to_port) { + ERR_FAIL_INDEX(p_type, TYPE_MAX); + Graph *g = &graph[p_type]; + Connection c; + c.from_node = p_from_node; + c.from_port = p_from_port; + c.to_node = p_to_node; + c.to_port = p_to_port; + g->connections.push_back(c); + _queue_update(); +} + Error VisualShader::connect_nodes(Type p_type, int p_from_node, int p_from_port, int p_to_node, int p_to_port) { ERR_FAIL_INDEX_V(p_type, TYPE_MAX, ERR_CANT_CONNECT); Graph *g = &graph[p_type]; @@ -283,7 +297,7 @@ Error VisualShader::connect_nodes(Type p_type, int p_from_node, int p_from_port, if (MAX(0, from_port_type - 2) != (MAX(0, to_port_type - 2))) { ERR_EXPLAIN("Incompatible port types (scalar/vec/bool with transform"); - ERR_FAIL_V(ERR_INVALID_PARAMETER) + ERR_FAIL_V(ERR_INVALID_PARAMETER); return ERR_INVALID_PARAMETER; } @@ -304,6 +318,7 @@ Error VisualShader::connect_nodes(Type p_type, int p_from_node, int p_from_port, _queue_update(); return OK; } + void VisualShader::disconnect_nodes(Type p_type, int p_from_node, int p_from_port, int p_to_node, int p_to_port) { ERR_FAIL_INDEX(p_type, TYPE_MAX); Graph *g = &graph[p_type]; @@ -334,6 +349,7 @@ Array VisualShader::_get_node_connections(Type p_type) const { return ret; } + void VisualShader::get_node_connections(Type p_type, List<Connection> *r_connections) const { ERR_FAIL_INDEX(p_type, TYPE_MAX); const Graph *g = &graph[p_type]; @@ -477,6 +493,54 @@ String VisualShader::generate_preview_shader(Type p_type, int p_node, int p_port #define IS_SYMBOL_CHAR(m_d) (((m_d) >= 'a' && (m_d) <= 'z') || ((m_d) >= 'A' && (m_d) <= 'Z') || ((m_d) >= '0' && (m_d) <= '9') || (m_d) == '_') +String VisualShader::validate_port_name(const String &p_name, const List<String> &p_input_ports, const List<String> &p_output_ports) const { + String name = p_name; + + while (name.length() && !IS_INITIAL_CHAR(name[0])) { + name = name.substr(1, name.length() - 1); + } + + if (name != String()) { + + String valid_name; + + for (int i = 0; i < name.length(); i++) { + if (IS_SYMBOL_CHAR(name[i])) { + valid_name += String::chr(name[i]); + } else if (name[i] == ' ') { + valid_name += "_"; + } + } + + name = valid_name; + } + + String valid_name = name; + bool is_equal = false; + + for (int i = 0; i < p_input_ports.size(); i++) { + if (name == p_input_ports[i]) { + is_equal = true; + break; + } + } + + if (!is_equal) { + for (int i = 0; i < p_output_ports.size(); i++) { + if (name == p_output_ports[i]) { + is_equal = true; + break; + } + } + } + + if (is_equal) { + name = ""; + } + + return name; +} + String VisualShader::validate_uniform_name(const String &p_name, const Ref<VisualShaderNodeUniform> &p_uniform) const { String name = p_name; //validate name first @@ -596,7 +660,7 @@ bool VisualShader::_set(const StringName &p_name, const Variant &p_value) { Vector<int> conns = p_value; if (conns.size() % 4 == 0) { for (int i = 0; i < conns.size(); i += 4) { - connect_nodes(type, conns[i + 0], conns[i + 1], conns[i + 2], conns[i + 3]); + connect_nodes_forced(type, conns[i + 0], conns[i + 1], conns[i + 2], conns[i + 3]); } } return true; @@ -611,6 +675,18 @@ bool VisualShader::_set(const StringName &p_name, const Variant &p_value) { } else if (what == "position") { set_node_position(type, id, p_value); return true; + } else if (what == "size") { + ((VisualShaderNodeGroupBase *)get_node(type, id).ptr())->set_size(p_value); + return true; + } else if (what == "input_ports") { + ((VisualShaderNodeGroupBase *)get_node(type, id).ptr())->set_inputs(p_value); + return true; + } else if (what == "output_ports") { + ((VisualShaderNodeGroupBase *)get_node(type, id).ptr())->set_outputs(p_value); + return true; + } else if (what == "expression") { + ((VisualShaderNodeExpression *)get_node(type, id).ptr())->set_expression(p_value); + return true; } } return false; @@ -668,6 +744,18 @@ bool VisualShader::_get(const StringName &p_name, Variant &r_ret) const { } else if (what == "position") { r_ret = get_node_position(type, id); return true; + } else if (what == "size") { + r_ret = ((VisualShaderNodeGroupBase *)get_node(type, id).ptr())->get_size(); + return true; + } else if (what == "input_ports") { + r_ret = ((VisualShaderNodeGroupBase *)get_node(type, id).ptr())->get_inputs(); + return true; + } else if (what == "output_ports") { + r_ret = ((VisualShaderNodeGroupBase *)get_node(type, id).ptr())->get_outputs(); + return true; + } else if (what == "expression") { + r_ret = ((VisualShaderNodeExpression *)get_node(type, id).ptr())->get_expression(); + return true; } } return false; @@ -727,6 +815,15 @@ void VisualShader::_get_property_list(List<PropertyInfo> *p_list) const { p_list->push_back(PropertyInfo(Variant::OBJECT, prop_name + "/node", PROPERTY_HINT_RESOURCE_TYPE, "VisualShaderNode", PROPERTY_USAGE_NOEDITOR | PROPERTY_USAGE_DO_NOT_SHARE_ON_DUPLICATE)); } p_list->push_back(PropertyInfo(Variant::VECTOR2, prop_name + "/position", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_NOEDITOR)); + + if (Object::cast_to<VisualShaderNodeGroupBase>(E->get().node.ptr()) != NULL) { + p_list->push_back(PropertyInfo(Variant::VECTOR2, prop_name + "/size", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_NOEDITOR)); + p_list->push_back(PropertyInfo(Variant::STRING, prop_name + "/input_ports", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_NOEDITOR)); + p_list->push_back(PropertyInfo(Variant::STRING, prop_name + "/output_ports", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_NOEDITOR)); + } + if (Object::cast_to<VisualShaderNodeExpression>(E->get().node.ptr()) != NULL) { + p_list->push_back(PropertyInfo(Variant::STRING, prop_name + "/expression", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_NOEDITOR)); + } } p_list->push_back(PropertyInfo(Variant::POOL_INT_ARRAY, "nodes/" + String(type_string[i]) + "/connections", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_NOEDITOR)); } @@ -993,26 +1090,33 @@ void VisualShader::_input_type_changed(Type p_type, int p_id) { } } +void VisualShader::rebuild() { + dirty = true; + _update_shader(); +} + void VisualShader::_bind_methods() { ClassDB::bind_method(D_METHOD("set_mode", "mode"), &VisualShader::set_mode); ClassDB::bind_method(D_METHOD("add_node", "type", "node", "position", "id"), &VisualShader::add_node); - ClassDB::bind_method(D_METHOD("set_node_position", "type", "id", "position"), &VisualShader::set_node_position); - ClassDB::bind_method(D_METHOD("get_node", "type", "id"), &VisualShader::get_node); + + ClassDB::bind_method(D_METHOD("set_node_position", "type", "id", "position"), &VisualShader::set_node_position); ClassDB::bind_method(D_METHOD("get_node_position", "type", "id"), &VisualShader::get_node_position); ClassDB::bind_method(D_METHOD("get_node_list", "type"), &VisualShader::get_node_list); 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); ClassDB::bind_method(D_METHOD("connect_nodes", "type", "from_node", "from_port", "to_node", "to_port"), &VisualShader::connect_nodes); ClassDB::bind_method(D_METHOD("disconnect_nodes", "type", "from_node", "from_port", "to_node", "to_port"), &VisualShader::disconnect_nodes); + ClassDB::bind_method(D_METHOD("connect_nodes_forced", "type", "from_node", "from_port", "to_node", "to_port"), &VisualShader::connect_nodes_forced); ClassDB::bind_method(D_METHOD("get_node_connections", "type"), &VisualShader::_get_node_connections); @@ -1627,3 +1731,555 @@ void VisualShaderNodeUniform::_bind_methods() { VisualShaderNodeUniform::VisualShaderNodeUniform() { } + +////////////// GroupBase + +String VisualShaderNodeGroupBase::get_caption() const { + return "Group"; +} + +void VisualShaderNodeGroupBase::set_size(const Vector2 &p_size) { + size = p_size; +} + +Vector2 VisualShaderNodeGroupBase::get_size() const { + return size; +} + +void VisualShaderNodeGroupBase::set_inputs(const String &p_inputs) { + + if (inputs == p_inputs) + return; + + clear_input_ports(); + + inputs = p_inputs; + + Vector<String> input_strings = inputs.split(";", false); + + int input_port_count = input_strings.size(); + + for (int i = 0; i < input_port_count; i++) { + + Vector<String> arr = input_strings[i].split(","); + + int port_idx = arr[0].to_int(); + int port_type = arr[1].to_int(); + String port_name = arr[2]; + + Port port; + port.type = (PortType)port_type; + port.name = port_name; + input_ports[port_idx] = port; + } +} + +String VisualShaderNodeGroupBase::get_inputs() const { + return inputs; +} + +void VisualShaderNodeGroupBase::set_outputs(const String &p_outputs) { + + if (outputs == p_outputs) + return; + + clear_output_ports(); + + outputs = p_outputs; + + Vector<String> output_strings = outputs.split(";", false); + + int output_port_count = output_strings.size(); + + for (int i = 0; i < output_port_count; i++) { + + Vector<String> arr = output_strings[i].split(","); + + int port_idx = arr[0].to_int(); + int port_type = arr[1].to_int(); + String port_name = arr[2]; + + Port port; + port.type = (PortType)port_type; + port.name = port_name; + output_ports[port_idx] = port; + } +} + +String VisualShaderNodeGroupBase::get_outputs() const { + return outputs; +} + +void VisualShaderNodeGroupBase::add_input_port(int p_id, int p_type, const String &p_name) { + + String str = itos(p_id) + "," + itos(p_type) + "," + p_name + ";"; + Vector<String> inputs_strings = inputs.split(";", false); + int index = 0; + if (p_id < inputs_strings.size()) { + for (int i = 0; i < inputs_strings.size(); i++) { + if (i == p_id) { + inputs = inputs.insert(index, str); + break; + } + index += inputs_strings[i].size(); + } + } else { + inputs += str; + } + + inputs_strings = inputs.split(";", false); + index = 0; + + for (int i = 0; i < inputs_strings.size(); i++) { + int count = 0; + for (int j = 0; j < inputs_strings[i].size(); j++) { + if (inputs_strings[i][j] == ',') { + break; + } + count++; + } + + inputs.erase(index, count); + inputs = inputs.insert(index, itos(i)); + index += inputs_strings[i].size(); + } + + _apply_port_changes(); +} + +void VisualShaderNodeGroupBase::remove_input_port(int p_id) { + + Vector<String> inputs_strings = inputs.split(";", false); + int count = 0; + int index = 0; + for (int i = 0; i < inputs_strings.size(); i++) { + Vector<String> arr = inputs_strings[i].split(","); + if (arr[0].to_int() == p_id) { + count = inputs_strings[i].size(); + break; + } + index += inputs_strings[i].size(); + } + inputs.erase(index, count); + + inputs_strings = inputs.split(";", false); + for (int i = p_id; i < inputs_strings.size(); i++) { + inputs = inputs.replace_first(inputs_strings[i].split(",")[0], itos(i)); + } + + _apply_port_changes(); +} + +int VisualShaderNodeGroupBase::get_input_port_count() const { + return input_ports.size(); +} + +bool VisualShaderNodeGroupBase::has_input_port(int p_id) const { + return input_ports.has(p_id); +} + +void VisualShaderNodeGroupBase::add_output_port(int p_id, int p_type, const String &p_name) { + + String str = itos(p_id) + "," + itos(p_type) + "," + p_name + ";"; + Vector<String> outputs_strings = outputs.split(";", false); + int index = 0; + if (p_id < outputs_strings.size()) { + for (int i = 0; i < outputs_strings.size(); i++) { + if (i == p_id) { + outputs = outputs.insert(index, str); + break; + } + index += outputs_strings[i].size(); + } + } else { + outputs += str; + } + + outputs_strings = outputs.split(";", false); + index = 0; + + for (int i = 0; i < outputs_strings.size(); i++) { + int count = 0; + for (int j = 0; j < outputs_strings[i].size(); j++) { + if (outputs_strings[i][j] == ',') { + break; + } + count++; + } + + outputs.erase(index, count); + outputs = outputs.insert(index, itos(i)); + index += outputs_strings[i].size(); + } + + _apply_port_changes(); +} + +void VisualShaderNodeGroupBase::remove_output_port(int p_id) { + + Vector<String> outputs_strings = outputs.split(";", false); + int count = 0; + int index = 0; + for (int i = 0; i < outputs_strings.size(); i++) { + Vector<String> arr = outputs_strings[i].split(","); + if (arr[0].to_int() == p_id) { + count = outputs_strings[i].size(); + break; + } + index += outputs_strings[i].size(); + } + outputs.erase(index, count); + + outputs_strings = outputs.split(";", false); + for (int i = p_id; i < outputs_strings.size(); i++) { + outputs = outputs.replace_first(outputs_strings[i].split(",")[0], itos(i)); + } + + _apply_port_changes(); +} + +int VisualShaderNodeGroupBase::get_output_port_count() const { + return output_ports.size(); +} + +bool VisualShaderNodeGroupBase::has_output_port(int p_id) const { + return output_ports.has(p_id); +} + +void VisualShaderNodeGroupBase::clear_input_ports() { + input_ports.clear(); +} + +void VisualShaderNodeGroupBase::clear_output_ports() { + output_ports.clear(); +} + +void VisualShaderNodeGroupBase::set_input_port_type(int p_id, int p_type) { + + if (input_ports[p_id].type == p_type) + return; + + Vector<String> inputs_strings = inputs.split(";", false); + int count = 0; + int index = 0; + for (int i = 0; i < inputs_strings.size(); i++) { + Vector<String> arr = inputs_strings[i].split(","); + if (arr[0].to_int() == p_id) { + index += arr[0].size(); + count = arr[1].size() - 1; + break; + } + index += inputs_strings[i].size(); + } + + inputs.erase(index, count); + + inputs = inputs.insert(index, itos(p_type)); + + _apply_port_changes(); +} + +VisualShaderNodeGroupBase::PortType VisualShaderNodeGroupBase::get_input_port_type(int p_id) const { + ERR_FAIL_COND_V(!input_ports.has(p_id), (PortType)0); + return input_ports[p_id].type; +} + +void VisualShaderNodeGroupBase::set_input_port_name(int p_id, const String &p_name) { + + if (input_ports[p_id].name == p_name) + return; + + Vector<String> inputs_strings = inputs.split(";", false); + int count = 0; + int index = 0; + for (int i = 0; i < inputs_strings.size(); i++) { + Vector<String> arr = inputs_strings[i].split(","); + if (arr[0].to_int() == p_id) { + index += arr[0].size() + arr[1].size(); + count = arr[2].size() - 1; + break; + } + index += inputs_strings[i].size(); + } + + inputs.erase(index, count); + + inputs = inputs.insert(index, p_name); + + _apply_port_changes(); +} + +String VisualShaderNodeGroupBase::get_input_port_name(int p_id) const { + ERR_FAIL_COND_V(!input_ports.has(p_id), ""); + return input_ports[p_id].name; +} + +void VisualShaderNodeGroupBase::set_output_port_type(int p_id, int p_type) { + + if (output_ports[p_id].type == p_type) + return; + + Vector<String> output_strings = outputs.split(";", false); + int count = 0; + int index = 0; + for (int i = 0; i < output_strings.size(); i++) { + Vector<String> arr = output_strings[i].split(","); + if (arr[0].to_int() == p_id) { + index += arr[0].size(); + count = arr[1].size() - 1; + break; + } + index += output_strings[i].size(); + } + + outputs.erase(index, count); + + outputs = outputs.insert(index, itos(p_type)); + + _apply_port_changes(); +} + +VisualShaderNodeGroupBase::PortType VisualShaderNodeGroupBase::get_output_port_type(int p_id) const { + ERR_FAIL_COND_V(!output_ports.has(p_id), (PortType)0); + return output_ports[p_id].type; +} + +void VisualShaderNodeGroupBase::set_output_port_name(int p_id, const String &p_name) { + if (output_ports[p_id].name == p_name) + return; + + Vector<String> output_strings = outputs.split(";", false); + int count = 0; + int index = 0; + for (int i = 0; i < output_strings.size(); i++) { + Vector<String> arr = output_strings[i].split(","); + if (arr[0].to_int() == p_id) { + index += arr[0].size() + arr[1].size(); + count = arr[2].size() - 1; + break; + } + index += output_strings[i].size(); + } + + outputs.erase(index, count); + + outputs = outputs.insert(index, p_name); + + _apply_port_changes(); +} + +String VisualShaderNodeGroupBase::get_output_port_name(int p_id) const { + ERR_FAIL_COND_V(!output_ports.has(p_id), ""); + return output_ports[p_id].name; +} + +int VisualShaderNodeGroupBase::get_free_input_port_id() const { + return input_ports.size(); +} + +int VisualShaderNodeGroupBase::get_free_output_port_id() const { + return output_ports.size(); +} + +void VisualShaderNodeGroupBase::set_control(Control *p_control, int p_index) { + controls[p_index] = p_control; +} + +Control *VisualShaderNodeGroupBase::get_control(int p_index) { + ERR_FAIL_COND_V(!controls.has(p_index), NULL); + return controls[p_index]; +} + +void VisualShaderNodeGroupBase::_apply_port_changes() { + + Vector<String> inputs_strings = inputs.split(";", false); + Vector<String> outputs_strings = outputs.split(";", false); + + clear_input_ports(); + clear_output_ports(); + + for (int i = 0; i < inputs_strings.size(); i++) { + Vector<String> arr = inputs_strings[i].split(","); + Port port; + port.type = (PortType)arr[1].to_int(); + port.name = arr[2]; + input_ports[i] = port; + } + for (int i = 0; i < outputs_strings.size(); i++) { + Vector<String> arr = outputs_strings[i].split(","); + Port port; + port.type = (PortType)arr[1].to_int(); + port.name = arr[2]; + output_ports[i] = port; + } +} + +void VisualShaderNodeGroupBase::_bind_methods() { + + ClassDB::bind_method(D_METHOD("set_size", "size"), &VisualShaderNodeGroupBase::set_size); + ClassDB::bind_method(D_METHOD("get_size"), &VisualShaderNodeGroupBase::get_size); + + ClassDB::bind_method(D_METHOD("set_inputs", "inputs"), &VisualShaderNodeGroupBase::set_inputs); + ClassDB::bind_method(D_METHOD("get_inputs"), &VisualShaderNodeGroupBase::get_inputs); + + ClassDB::bind_method(D_METHOD("set_outputs", "outputs"), &VisualShaderNodeGroupBase::set_outputs); + ClassDB::bind_method(D_METHOD("get_outputs"), &VisualShaderNodeGroupBase::get_outputs); + + ClassDB::bind_method(D_METHOD("add_input_port", "id", "type", "name"), &VisualShaderNodeGroupBase::add_input_port); + ClassDB::bind_method(D_METHOD("remove_input_port", "id"), &VisualShaderNodeGroupBase::remove_input_port); + ClassDB::bind_method(D_METHOD("get_input_port_count"), &VisualShaderNodeGroupBase::get_input_port_count); + ClassDB::bind_method(D_METHOD("has_input_port", "id"), &VisualShaderNodeGroupBase::has_input_port); + ClassDB::bind_method(D_METHOD("clear_input_ports"), &VisualShaderNodeGroupBase::clear_input_ports); + + ClassDB::bind_method(D_METHOD("add_output_port", "id", "type", "name"), &VisualShaderNodeGroupBase::add_output_port); + ClassDB::bind_method(D_METHOD("remove_output_port", "id"), &VisualShaderNodeGroupBase::remove_output_port); + ClassDB::bind_method(D_METHOD("get_output_port_count"), &VisualShaderNodeGroupBase::get_output_port_count); + ClassDB::bind_method(D_METHOD("has_output_port", "id"), &VisualShaderNodeGroupBase::has_output_port); + ClassDB::bind_method(D_METHOD("clear_output_ports"), &VisualShaderNodeGroupBase::clear_output_ports); + + ClassDB::bind_method(D_METHOD("set_input_port_name"), &VisualShaderNodeGroupBase::set_input_port_name); + ClassDB::bind_method(D_METHOD("set_input_port_type"), &VisualShaderNodeGroupBase::set_input_port_type); + ClassDB::bind_method(D_METHOD("set_output_port_name"), &VisualShaderNodeGroupBase::set_output_port_name); + ClassDB::bind_method(D_METHOD("set_output_port_type"), &VisualShaderNodeGroupBase::set_output_port_type); + + ClassDB::bind_method(D_METHOD("get_free_input_port_id"), &VisualShaderNodeGroupBase::get_free_input_port_id); + ClassDB::bind_method(D_METHOD("get_free_output_port_id"), &VisualShaderNodeGroupBase::get_free_output_port_id); + + ClassDB::bind_method(D_METHOD("set_control", "control", "index"), &VisualShaderNodeGroupBase::set_control); + ClassDB::bind_method(D_METHOD("get_control", "index"), &VisualShaderNodeGroupBase::get_control); +} + +String VisualShaderNodeGroupBase::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 { + return ""; +} + +VisualShaderNodeGroupBase::VisualShaderNodeGroupBase() { + size = Size2(0, 0); + inputs = ""; + outputs = ""; +} + +////////////// Expression + +String VisualShaderNodeExpression::get_caption() const { + return "Expression"; +} + +void VisualShaderNodeExpression::set_expression(const String &p_expression) { + expression = p_expression; +} + +void VisualShaderNodeExpression::build() { + emit_changed(); +} + +String VisualShaderNodeExpression::get_expression() const { + return expression; +} + +String VisualShaderNodeExpression::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 _expression = expression; + + _expression = _expression.insert(0, "\n"); + _expression = _expression.replace("\n", "\n\t\t"); + + static Vector<String> pre_symbols; + if (pre_symbols.empty()) { + pre_symbols.push_back("\t"); + pre_symbols.push_back("{"); + pre_symbols.push_back("["); + pre_symbols.push_back("("); + pre_symbols.push_back(" "); + pre_symbols.push_back("-"); + pre_symbols.push_back("*"); + pre_symbols.push_back("/"); + pre_symbols.push_back("+"); + pre_symbols.push_back("="); + pre_symbols.push_back("&"); + pre_symbols.push_back("|"); + pre_symbols.push_back("!"); + } + + static Vector<String> post_symbols; + if (post_symbols.empty()) { + post_symbols.push_back("\0"); + post_symbols.push_back("\t"); + post_symbols.push_back("\n"); + post_symbols.push_back(";"); + post_symbols.push_back("}"); + post_symbols.push_back("]"); + post_symbols.push_back(")"); + post_symbols.push_back(" "); + post_symbols.push_back("."); + post_symbols.push_back("-"); + post_symbols.push_back("*"); + post_symbols.push_back("/"); + post_symbols.push_back("+"); + post_symbols.push_back("="); + post_symbols.push_back("&"); + post_symbols.push_back("|"); + post_symbols.push_back("!"); + } + + for (int i = 0; i < get_input_port_count(); i++) { + for (int j = 0; j < pre_symbols.size(); j++) { + for (int k = 0; k < post_symbols.size(); k++) { + _expression = _expression.replace(pre_symbols[j] + get_input_port_name(i) + post_symbols[k], pre_symbols[j] + p_input_vars[i] + post_symbols[k]); + } + } + } + for (int i = 0; i < get_output_port_count(); i++) { + for (int j = 0; j < pre_symbols.size(); j++) { + for (int k = 0; k < post_symbols.size(); k++) { + _expression = _expression.replace(pre_symbols[j] + get_output_port_name(i) + post_symbols[k], pre_symbols[j] + p_output_vars[i] + post_symbols[k]); + } + } + } + + String output_initializer; + + for (int i = 0; i < get_output_port_count(); i++) { + int port_type = get_output_port_type(i); + String tk = ""; + switch (port_type) { + case PORT_TYPE_SCALAR: + tk = "0.0"; + break; + case PORT_TYPE_VECTOR: + tk = "vec3(0.0, 0.0, 0.0)"; + break; + case PORT_TYPE_BOOLEAN: + tk = "false"; + break; + case PORT_TYPE_TRANSFORM: + tk = "mat4(1.0)"; + break; + default: + continue; + } + output_initializer += "\t" + p_output_vars[i] + "=" + tk + ";\n"; + } + + String code; + code += output_initializer; + code += "\t{"; + code += _expression; + code += "\n\t}"; + + return code; +} + +void VisualShaderNodeExpression::_bind_methods() { + + ClassDB::bind_method(D_METHOD("set_expression", "expression"), &VisualShaderNodeExpression::set_expression); + ClassDB::bind_method(D_METHOD("get_expression"), &VisualShaderNodeExpression::get_expression); + + ClassDB::bind_method(D_METHOD("build"), &VisualShaderNodeExpression::build); + + ADD_PROPERTY(PropertyInfo(Variant::STRING, "expression"), "set_expression", "get_expression"); +} + +VisualShaderNodeExpression::VisualShaderNodeExpression() { + expression = ""; +} diff --git a/scene/resources/visual_shader.h b/scene/resources/visual_shader.h index cf10de9bf5..838c2c618d 100644 --- a/scene/resources/visual_shader.h +++ b/scene/resources/visual_shader.h @@ -32,6 +32,7 @@ #define VISUAL_SHADER_H #include "core/string_builder.h" +#include "scene/gui/control.h" #include "scene/resources/shader.h" class VisualShaderNodeUniform; @@ -135,7 +136,9 @@ public: bool can_connect_nodes(Type p_type, int p_from_node, int p_from_port, int p_to_node, int p_to_port) const; Error connect_nodes(Type p_type, int p_from_node, int p_from_port, int p_to_node, int p_to_port); void disconnect_nodes(Type p_type, int p_from_node, int p_from_port, int p_to_node, int p_to_port); + void connect_nodes_forced(Type p_type, int p_from_node, int p_from_port, int p_to_node, int p_to_port); + void rebuild(); void get_node_connections(Type p_type, List<Connection> *r_connections) const; void set_mode(Mode p_mode); @@ -148,6 +151,7 @@ public: String generate_preview_shader(Type p_type, int p_node, int p_port, Vector<DefaultTextureParam> &r_default_tex_params) const; + String validate_port_name(const String &p_name, const List<String> &p_input_ports, const List<String> &p_output_ports) const; String validate_uniform_name(const String &p_name, const Ref<VisualShaderNodeUniform> &p_uniform) const; VisualShader(); @@ -314,4 +318,93 @@ public: VisualShaderNodeUniform(); }; +class VisualShaderNodeGroupBase : public VisualShaderNode { + GDCLASS(VisualShaderNodeGroupBase, VisualShaderNode) +private: + void _apply_port_changes(); + +protected: + Vector2 size; + String inputs; + String outputs; + + struct Port { + PortType type; + String name; + }; + + Map<int, Port> input_ports; + Map<int, Port> output_ports; + Map<int, Control *> controls; + +protected: + static void _bind_methods(); + +public: + virtual String get_caption() const; + + void set_size(const Vector2 &p_size); + Vector2 get_size() const; + + void set_inputs(const String &p_inputs); + String get_inputs() const; + + void set_outputs(const String &p_outputs); + String get_outputs() const; + + void add_input_port(int p_id, int p_type, const String &p_name); + void remove_input_port(int p_id); + virtual int get_input_port_count() const; + bool has_input_port(int p_id) const; + void clear_input_ports(); + + void add_output_port(int p_id, int p_type, const String &p_name); + void remove_output_port(int p_id); + virtual int get_output_port_count() const; + bool has_output_port(int p_id) const; + void clear_output_ports(); + + void set_input_port_type(int p_id, int p_type); + virtual PortType get_input_port_type(int p_id) const; + void set_input_port_name(int p_id, const String &p_name); + virtual String get_input_port_name(int p_id) const; + + void set_output_port_type(int p_id, int p_type); + virtual PortType get_output_port_type(int p_id) const; + void set_output_port_name(int p_id, const String &p_name); + virtual String get_output_port_name(int p_id) const; + + int get_free_input_port_id() const; + int get_free_output_port_id() const; + + void set_control(Control *p_control, int p_index); + Control *get_control(int p_index); + + 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; + + VisualShaderNodeGroupBase(); +}; + +class VisualShaderNodeExpression : public VisualShaderNodeGroupBase { + GDCLASS(VisualShaderNodeExpression, VisualShaderNodeGroupBase) + +private: + String expression; + +protected: + static void _bind_methods(); + +public: + virtual String get_caption() const; + + void set_expression(const String &p_expression); + String get_expression() const; + + void build(); + + 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; + + VisualShaderNodeExpression(); +}; + #endif // VISUAL_SHADER_H diff --git a/servers/SCsub b/servers/SCsub index f4af347fe6..34ba70b8cb 100644 --- a/servers/SCsub +++ b/servers/SCsub @@ -6,6 +6,7 @@ env.servers_sources = [] env.add_source_files(env.servers_sources, "*.cpp") SConscript('arvr/SCsub') +SConscript('camera/SCsub') SConscript('physics/SCsub') SConscript('physics_2d/SCsub') SConscript('visual/SCsub') diff --git a/servers/arvr/arvr_interface.cpp b/servers/arvr/arvr_interface.cpp index 686ad0ba9b..e1b7611354 100644 --- a/servers/arvr/arvr_interface.cpp +++ b/servers/arvr/arvr_interface.cpp @@ -56,6 +56,7 @@ void ARVRInterface::_bind_methods() { // but we do have properties specific to AR.... ClassDB::bind_method(D_METHOD("get_anchor_detection_is_enabled"), &ARVRInterface::get_anchor_detection_is_enabled); ClassDB::bind_method(D_METHOD("set_anchor_detection_is_enabled", "enable"), &ARVRInterface::set_anchor_detection_is_enabled); + ClassDB::bind_method(D_METHOD("get_camera_feed_id"), &ARVRInterface::get_camera_feed_id); ADD_GROUP("AR", "ar_"); ADD_PROPERTY(PropertyInfo(Variant::BOOL, "ar_is_anchor_detection_enabled"), "set_anchor_detection_is_enabled", "get_anchor_detection_is_enabled"); @@ -136,3 +137,9 @@ bool ARVRInterface::get_anchor_detection_is_enabled() const { void ARVRInterface::set_anchor_detection_is_enabled(bool p_enable){ // don't do anything here, this needs to be implemented on AR interface to enable/disable things like plane detection etc. }; + +int ARVRInterface::get_camera_feed_id() { + // don't do anything here, this needs to be implemented on AR interface to enable/disable things like plane detection etc. + + return 0; +}; diff --git a/servers/arvr/arvr_interface.h b/servers/arvr/arvr_interface.h index 9ea59a3961..ffafa4fcf5 100644 --- a/servers/arvr/arvr_interface.h +++ b/servers/arvr/arvr_interface.h @@ -101,6 +101,7 @@ public: /** specific to AR **/ virtual bool get_anchor_detection_is_enabled() const; virtual void set_anchor_detection_is_enabled(bool p_enable); + virtual int get_camera_feed_id(); /** rendering and internal **/ diff --git a/servers/audio/effects/audio_effect_spectrum_analyzer.cpp b/servers/audio/effects/audio_effect_spectrum_analyzer.cpp index 5a201b7dfa..305f9046c3 100644 --- a/servers/audio/effects/audio_effect_spectrum_analyzer.cpp +++ b/servers/audio/effects/audio_effect_spectrum_analyzer.cpp @@ -1,3 +1,33 @@ +/*************************************************************************/ +/* audio_effect_spectrum_analyzer.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 "audio_effect_spectrum_analyzer.h" #include "servers/audio_server.h" @@ -171,7 +201,7 @@ Vector2 AudioEffectSpectrumAnalyzerInstance::get_magnitude_for_frequency_range(f for (int i = begin_pos; i <= end_pos; i++) { max.x = MAX(max.x, r[i].l); - max.y = MAX(max.x, r[i].r); + max.y = MAX(max.y, r[i].r); } return max; diff --git a/servers/audio/effects/audio_effect_spectrum_analyzer.h b/servers/audio/effects/audio_effect_spectrum_analyzer.h index 0534426da3..4f4c3c8a58 100644 --- a/servers/audio/effects/audio_effect_spectrum_analyzer.h +++ b/servers/audio/effects/audio_effect_spectrum_analyzer.h @@ -1,3 +1,33 @@ +/*************************************************************************/ +/* audio_effect_spectrum_analyzer.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 AUDIO_EFFECT_SPECTRUM_ANALYZER_H #define AUDIO_EFFECT_SPECTRUM_ANALYZER_H diff --git a/servers/audio/effects/audio_stream_generator.cpp b/servers/audio/effects/audio_stream_generator.cpp index f4a66b5643..49af63e82a 100644 --- a/servers/audio/effects/audio_stream_generator.cpp +++ b/servers/audio/effects/audio_stream_generator.cpp @@ -1,3 +1,33 @@ +/*************************************************************************/ +/* audio_stream_generator.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 "audio_stream_generator.h" void AudioStreamGenerator::set_mix_rate(float p_mix_rate) { diff --git a/servers/audio/effects/audio_stream_generator.h b/servers/audio/effects/audio_stream_generator.h index 2082682907..c3490ddaa5 100644 --- a/servers/audio/effects/audio_stream_generator.h +++ b/servers/audio/effects/audio_stream_generator.h @@ -1,5 +1,35 @@ -#ifndef AUDIO_STREAM_USER_FED_H -#define AUDIO_STREAM_USER_FED_H +/*************************************************************************/ +/* audio_stream_generator.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 AUDIO_STREAM_GENERATOR_H +#define AUDIO_STREAM_GENERATOR_H #include "core/ring_buffer.h" #include "servers/audio/audio_stream.h" @@ -63,4 +93,4 @@ public: AudioStreamGeneratorPlayback(); }; -#endif // AUDIO_STREAM_USER_FED_H +#endif // AUDIO_STREAM_GENERATOR_H diff --git a/servers/audio_server.h b/servers/audio_server.h index e56d87ce84..8c0ffd5a6b 100644 --- a/servers/audio_server.h +++ b/servers/audio_server.h @@ -149,7 +149,7 @@ class AudioServer : public Object { GDCLASS(AudioServer, Object) public: - //re-expose this her, as AudioDriver is not exposed to script + //re-expose this here, as AudioDriver is not exposed to script enum SpeakerMode { SPEAKER_MODE_STEREO, SPEAKER_SURROUND_31, diff --git a/servers/camera/SCsub b/servers/camera/SCsub new file mode 100644 index 0000000000..ccc76e823f --- /dev/null +++ b/servers/camera/SCsub @@ -0,0 +1,7 @@ +#!/usr/bin/env python + +Import('env') + +env.add_source_files(env.servers_sources, "*.cpp") + +Export('env') diff --git a/servers/camera/camera_feed.cpp b/servers/camera/camera_feed.cpp new file mode 100644 index 0000000000..31b8b2874f --- /dev/null +++ b/servers/camera/camera_feed.cpp @@ -0,0 +1,266 @@ +/*************************************************************************/ +/* camera_feed.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 "camera_feed.h" +#include "servers/visual_server.h" + +void CameraFeed::_bind_methods() { + // The setters prefixed with _ are only exposed so we can have feeds through GDNative! + // They should not be called by the end user. + + ClassDB::bind_method(D_METHOD("get_id"), &CameraFeed::get_id); + ClassDB::bind_method(D_METHOD("get_name"), &CameraFeed::get_name); + ClassDB::bind_method(D_METHOD("_set_name", "name"), &CameraFeed::set_name); + + ClassDB::bind_method(D_METHOD("is_active"), &CameraFeed::is_active); + ClassDB::bind_method(D_METHOD("set_active", "active"), &CameraFeed::set_active); + + ClassDB::bind_method(D_METHOD("get_position"), &CameraFeed::get_position); + ClassDB::bind_method(D_METHOD("_set_position", "position"), &CameraFeed::set_position); + + // Note, for transform some feeds may override what the user sets (such as ARKit) + ClassDB::bind_method(D_METHOD("get_transform"), &CameraFeed::get_transform); + ClassDB::bind_method(D_METHOD("set_transform", "transform"), &CameraFeed::set_transform); + + ClassDB::bind_method(D_METHOD("_set_RGB_img", "rgb_img"), &CameraFeed::set_RGB_img); + ClassDB::bind_method(D_METHOD("_set_YCbCr_img", "ycbcr_img"), &CameraFeed::set_YCbCr_img); + ClassDB::bind_method(D_METHOD("_set_YCbCr_imgs", "y_img", "cbcr_img"), &CameraFeed::set_YCbCr_imgs); + ClassDB::bind_method(D_METHOD("_allocate_texture", "width", "height", "format", "texture_type", "data_type"), &CameraFeed::allocate_texture); + + ADD_GROUP("Feed", "feed_"); + ADD_PROPERTY(PropertyInfo(Variant::BOOL, "feed_is_active"), "set_active", "is_active"); + ADD_PROPERTY(PropertyInfo(Variant::TRANSFORM2D, "feed_transform"), "set_transform", "get_transform"); + + BIND_ENUM_CONSTANT(FEED_NOIMAGE); + BIND_ENUM_CONSTANT(FEED_RGB); + BIND_ENUM_CONSTANT(FEED_YCbCr); + BIND_ENUM_CONSTANT(FEED_YCbCr_Sep); + + BIND_ENUM_CONSTANT(FEED_UNSPECIFIED); + BIND_ENUM_CONSTANT(FEED_FRONT); + BIND_ENUM_CONSTANT(FEED_BACK); +} + +int CameraFeed::get_id() const { + return id; +} + +bool CameraFeed::is_active() const { + return active; +} + +void CameraFeed::set_active(bool p_is_active) { + if (p_is_active == active) { + // all good + } else if (p_is_active) { + // attempt to activate this feed + if (activate_feed()) { + print_line("Activate " + name); + active = true; + } + } else { + // just deactivate it + deactivate_feed(); + print_line("Deactivate " + name); + active = false; + } +} + +String CameraFeed::get_name() const { + return name; +} + +void CameraFeed::set_name(String p_name) { + name = p_name; +} + +int CameraFeed::get_base_width() const { + return base_width; +} + +int CameraFeed::get_base_height() const { + return base_height; +} + +CameraFeed::FeedDataType CameraFeed::get_datatype() const { + return datatype; +} + +CameraFeed::FeedPosition CameraFeed::get_position() const { + return position; +} + +void CameraFeed::set_position(CameraFeed::FeedPosition p_position) { + position = p_position; +} + +Transform2D CameraFeed::get_transform() const { + return transform; +} + +void CameraFeed::set_transform(const Transform2D &p_transform) { + transform = p_transform; +} + +RID CameraFeed::get_texture(CameraServer::FeedImage p_which) { + return texture[p_which]; +} + +CameraFeed::CameraFeed() { + // initialize our feed + id = CameraServer::get_singleton()->get_free_id(); + name = "???"; + active = false; + datatype = CameraFeed::FEED_RGB; + position = CameraFeed::FEED_UNSPECIFIED; + transform = Transform2D(1.0, 0.0, 0.0, -1.0, 0.0, 1.0); + + // create a texture object + VisualServer *vs = VisualServer::get_singleton(); + texture[CameraServer::FEED_Y_IMAGE] = vs->texture_create(); // also used for RGBA + texture[CameraServer::FEED_CbCr_IMAGE] = vs->texture_create(); +} + +CameraFeed::CameraFeed(String p_name, FeedPosition p_position) { + // initialize our feed + id = CameraServer::get_singleton()->get_free_id(); + base_width = 0; + base_height = 0; + name = p_name; + active = false; + datatype = CameraFeed::FEED_NOIMAGE; + position = p_position; + transform = Transform2D(1.0, 0.0, 0.0, -1.0, 0.0, 1.0); + + // create a texture object + VisualServer *vs = VisualServer::get_singleton(); + texture[CameraServer::FEED_Y_IMAGE] = vs->texture_create(); // also used for RGBA + texture[CameraServer::FEED_CbCr_IMAGE] = vs->texture_create(); +} + +CameraFeed::~CameraFeed() { + // Free our textures + VisualServer *vs = VisualServer::get_singleton(); + vs->free(texture[CameraServer::FEED_Y_IMAGE]); + vs->free(texture[CameraServer::FEED_CbCr_IMAGE]); +} + +void CameraFeed::set_RGB_img(Ref<Image> p_rgb_img) { + if (active) { + VisualServer *vs = VisualServer::get_singleton(); + + int new_width = p_rgb_img->get_width(); + int new_height = p_rgb_img->get_height(); + + if ((base_width != new_width) || (base_height != new_height)) { + // We're assuming here that our camera image doesn't change around formats etc, allocate the whole lot... + base_width = new_width; + base_height = new_height; + + vs->texture_allocate(texture[CameraServer::FEED_RGBA_IMAGE], new_width, new_height, 0, Image::FORMAT_RGB8, VS::TEXTURE_TYPE_2D, VS::TEXTURE_FLAGS_DEFAULT); + } + + vs->texture_set_data(texture[CameraServer::FEED_RGBA_IMAGE], p_rgb_img); + datatype = CameraFeed::FEED_RGB; + } +} + +void CameraFeed::set_YCbCr_img(Ref<Image> p_ycbcr_img) { + if (active) { + VisualServer *vs = VisualServer::get_singleton(); + + int new_width = p_ycbcr_img->get_width(); + int new_height = p_ycbcr_img->get_height(); + + if ((base_width != new_width) || (base_height != new_height)) { + // We're assuming here that our camera image doesn't change around formats etc, allocate the whole lot... + base_width = new_width; + base_height = new_height; + + vs->texture_allocate(texture[CameraServer::FEED_RGBA_IMAGE], new_width, new_height, 0, Image::FORMAT_RGB8, VS::TEXTURE_TYPE_2D, VS::TEXTURE_FLAGS_DEFAULT); + } + + vs->texture_set_data(texture[CameraServer::FEED_RGBA_IMAGE], p_ycbcr_img); + datatype = CameraFeed::FEED_YCbCr; + } +} + +void CameraFeed::set_YCbCr_imgs(Ref<Image> p_y_img, Ref<Image> p_cbcr_img) { + if (active) { + VisualServer *vs = VisualServer::get_singleton(); + + ///@TODO investigate whether we can use thirdparty/misc/yuv2rgb.h here to convert our YUV data to RGB, our shader approach is potentially faster though.. + // Wondering about including that into multiple projects, may cause issues. + // That said, if we convert to RGB, we could enable using texture resources again... + + int new_y_width = p_y_img->get_width(); + int new_y_height = p_y_img->get_height(); + int new_cbcr_width = p_cbcr_img->get_width(); + int new_cbcr_height = p_cbcr_img->get_height(); + + if ((base_width != new_y_width) || (base_height != new_y_height)) { + // We're assuming here that our camera image doesn't change around formats etc, allocate the whole lot... + base_width = new_y_width; + base_height = new_y_height; + + vs->texture_allocate(texture[CameraServer::FEED_Y_IMAGE], new_y_width, new_y_height, 0, Image::FORMAT_R8, VS::TEXTURE_TYPE_2D, VS::TEXTURE_FLAG_USED_FOR_STREAMING); + + ///@TODO GLES2 doesn't support FORMAT_RG8, need to do some form of conversion + vs->texture_allocate(texture[CameraServer::FEED_CbCr_IMAGE], new_cbcr_width, new_cbcr_height, 0, Image::FORMAT_RG8, VS::TEXTURE_TYPE_2D, VS::TEXTURE_FLAG_USED_FOR_STREAMING); + } + + vs->texture_set_data(texture[CameraServer::FEED_Y_IMAGE], p_y_img); + vs->texture_set_data(texture[CameraServer::FEED_CbCr_IMAGE], p_cbcr_img); + datatype = CameraFeed::FEED_YCbCr_Sep; + } +} + +void CameraFeed::allocate_texture(int p_width, int p_height, Image::Format p_format, VisualServer::TextureType p_texture_type, FeedDataType p_data_type) { + VisualServer *vs = VisualServer::get_singleton(); + + if ((base_width != p_width) || (base_height != p_height)) { + // We're assuming here that our camera image doesn't change around formats etc, allocate the whole lot... + base_width = p_width; + base_height = p_height; + + vs->texture_allocate(texture[0], p_width, p_height, 0, p_format, p_texture_type, VS::TEXTURE_FLAGS_DEFAULT); + } + + datatype = p_data_type; +} + +bool CameraFeed::activate_feed() { + // nothing to do here + return true; +} + +void CameraFeed::deactivate_feed() { + // nothing to do here +} diff --git a/servers/camera/camera_feed.h b/servers/camera/camera_feed.h new file mode 100644 index 0000000000..90c076071c --- /dev/null +++ b/servers/camera/camera_feed.h @@ -0,0 +1,115 @@ +/*************************************************************************/ +/* camera_feed.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 CAMERA_FEED_H +#define CAMERA_FEED_H + +#include "core/image.h" +#include "core/math/transform_2d.h" +#include "servers/camera_server.h" +#include "servers/visual_server.h" + +/** + @author Bastiaan Olij <mux213@gmail.com> + + The camera server is a singleton object that gives access to the various + camera feeds that can be used as the background for our environment. +**/ + +class CameraFeed : public Reference { + GDCLASS(CameraFeed, Reference); + +public: + enum FeedDataType { + FEED_NOIMAGE, // we don't have an image yet + FEED_RGB, // our texture will contain a normal RGB texture that can be used directly + FEED_YCbCr, // our texture will contain a YCbCr texture that needs to be converted to RGB before output + FEED_YCbCr_Sep // our camera is split into two textures, first plane contains Y data, second plane contains CbCr data + }; + + enum FeedPosition { + FEED_UNSPECIFIED, // we have no idea + FEED_FRONT, // this is a camera on the front of the device + FEED_BACK // this is a camera on the back of the device + }; + +private: + int id; // unique id for this, for internal use in case feeds are removed + int base_width; + int base_height; + +protected: + String name; // name of our camera feed + FeedDataType datatype; // type of texture data stored + FeedPosition position; // position of camera on the device + Transform2D transform; // display transform + + bool active; // only when active do we actually update the camera texture each frame + RID texture[CameraServer::FEED_IMAGES]; // texture images needed for this + + static void _bind_methods(); + +public: + int get_id() const; + bool is_active() const; + void set_active(bool p_is_active); + + String get_name() const; + void set_name(String p_name); + + int get_base_width() const; + int get_base_height() const; + + FeedPosition get_position() const; + void set_position(FeedPosition p_position); + + Transform2D get_transform() const; + void set_transform(const Transform2D &p_transform); + + RID get_texture(CameraServer::FeedImage p_which); + + CameraFeed(); + CameraFeed(String p_name, FeedPosition p_position = CameraFeed::FEED_UNSPECIFIED); + virtual ~CameraFeed(); + + FeedDataType get_datatype() const; + void set_RGB_img(Ref<Image> p_rgb_img); + void set_YCbCr_img(Ref<Image> p_ycbcr_img); + void set_YCbCr_imgs(Ref<Image> p_y_img, Ref<Image> p_cbcr_img); + void allocate_texture(int p_width, int p_height, Image::Format p_format, VisualServer::TextureType p_texture_type, FeedDataType p_data_type); + + virtual bool activate_feed(); + virtual void deactivate_feed(); +}; + +VARIANT_ENUM_CAST(CameraFeed::FeedDataType); +VARIANT_ENUM_CAST(CameraFeed::FeedPosition); + +#endif /* !CAMERA_FEED_H */ diff --git a/servers/camera_server.cpp b/servers/camera_server.cpp new file mode 100644 index 0000000000..8d2ae37001 --- /dev/null +++ b/servers/camera_server.cpp @@ -0,0 +1,169 @@ +/*************************************************************************/ +/* camera_server.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 "camera_server.h" +#include "servers/camera/camera_feed.h" +#include "visual_server.h" + +//////////////////////////////////////////////////////// +// CameraServer + +void CameraServer::_bind_methods() { + ClassDB::bind_method(D_METHOD("get_feed", "index"), &CameraServer::get_feed); + ClassDB::bind_method(D_METHOD("get_feed_count"), &CameraServer::get_feed_count); + ClassDB::bind_method(D_METHOD("feeds"), &CameraServer::get_feeds); + + ClassDB::bind_method(D_METHOD("add_feed", "feed"), &CameraServer::add_feed); + ClassDB::bind_method(D_METHOD("remove_feed", "feed"), &CameraServer::remove_feed); + + ADD_SIGNAL(MethodInfo("camera_feed_added", PropertyInfo(Variant::INT, "id"))); + ADD_SIGNAL(MethodInfo("camera_feed_removed", PropertyInfo(Variant::INT, "id"))); + + BIND_ENUM_CONSTANT(FEED_RGBA_IMAGE); + BIND_ENUM_CONSTANT(FEED_YCbCr_IMAGE); + BIND_ENUM_CONSTANT(FEED_Y_IMAGE); + BIND_ENUM_CONSTANT(FEED_CbCr_IMAGE); +}; + +CameraServer *CameraServer::singleton = NULL; + +CameraServer *CameraServer::get_singleton() { + return singleton; +}; + +int CameraServer::get_free_id() { + bool id_exists = true; + int newid = 0; + + // find a free id + while (id_exists) { + newid++; + id_exists = false; + for (int i = 0; i < feeds.size() && !id_exists; i++) { + if (feeds[i]->get_id() == newid) { + id_exists = true; + }; + }; + }; + + return newid; +}; + +int CameraServer::get_feed_index(int p_id) { + for (int i = 0; i < feeds.size(); i++) { + if (feeds[i]->get_id() == p_id) { + return i; + }; + }; + + return -1; +}; + +Ref<CameraFeed> CameraServer::get_feed_by_id(int p_id) { + int index = get_feed_index(p_id); + + if (index == -1) { + return NULL; + } else { + return feeds[index]; + } +}; + +void CameraServer::add_feed(const Ref<CameraFeed> &p_feed) { + // add our feed + feeds.push_back(p_feed); + +// record for debugging +#ifdef DEBUG_ENABLED + print_line("Registered camera " + p_feed->get_name() + " with id " + itos(p_feed->get_id()) + " position " + itos(p_feed->get_position()) + " at index " + itos(feeds.size() - 1)); +#endif + + // let whomever is interested know + emit_signal("camera_feed_added", p_feed->get_id()); +}; + +void CameraServer::remove_feed(const Ref<CameraFeed> &p_feed) { + for (int i = 0; i < feeds.size(); i++) { + if (feeds[i] == p_feed) { + int feed_id = p_feed->get_id(); + +// record for debugging +#ifdef DEBUG_ENABLED + print_line("Removed camera " + p_feed->get_name() + " with id " + itos(feed_id) + " position " + itos(p_feed->get_position())); +#endif + + // remove it from our array, if this results in our feed being unreferenced it will be destroyed + feeds.remove(i); + + // let whomever is interested know + emit_signal("camera_feed_removed", feed_id); + return; + }; + }; +}; + +Ref<CameraFeed> CameraServer::get_feed(int p_index) { + ERR_FAIL_INDEX_V(p_index, feeds.size(), NULL); + + return feeds[p_index]; +}; + +int CameraServer::get_feed_count() { + return feeds.size(); +}; + +Array CameraServer::get_feeds() { + Array return_feeds; + int cc = get_feed_count(); + return_feeds.resize(cc); + + for (int i = 0; i < feeds.size(); i++) { + return_feeds[i] = get_feed(i); + }; + + return return_feeds; +}; + +RID CameraServer::feed_texture(int p_id, CameraServer::FeedImage p_texture) { + int index = get_feed_index(p_id); + ERR_FAIL_COND_V(index == -1, RID()); + + Ref<CameraFeed> feed = get_feed(index); + + return feed->get_texture(p_texture); +}; + +CameraServer::CameraServer() { + singleton = this; +}; + +CameraServer::~CameraServer() { + singleton = NULL; +}; diff --git a/servers/camera_server.h b/servers/camera_server.h new file mode 100644 index 0000000000..d204142c7d --- /dev/null +++ b/servers/camera_server.h @@ -0,0 +1,96 @@ +/*************************************************************************/ +/* camera_server.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 CAMERA_SERVER_H +#define CAMERA_SERVER_H + +#include "core/object.h" +#include "core/os/thread_safe.h" +#include "core/reference.h" +#include "core/rid.h" +#include "core/variant.h" + +/** + @author Bastiaan Olij <mux213@gmail.com> + + The camera server is a singleton object that gives access to the various + camera feeds that can be used as the background for our environment. +**/ + +class CameraFeed; + +class CameraServer : public Object { + GDCLASS(CameraServer, Object); + _THREAD_SAFE_CLASS_ + +public: + enum FeedImage { + FEED_RGBA_IMAGE = 0, + FEED_YCbCr_IMAGE = 0, + FEED_Y_IMAGE = 0, + FEED_CbCr_IMAGE = 1, + FEED_IMAGES = 2 + }; + +private: +protected: + Vector<Ref<CameraFeed> > feeds; + + static CameraServer *singleton; + + static void _bind_methods(); + +public: + static CameraServer *get_singleton(); + + // Right now we identify our feed by it's ID when it's used in the background. + // May see if we can change this to purely relying on CameraFeed objects or by name. + int get_free_id(); + int get_feed_index(int p_id); + Ref<CameraFeed> get_feed_by_id(int p_id); + + // add and remove feeds + void add_feed(const Ref<CameraFeed> &p_feed); + void remove_feed(const Ref<CameraFeed> &p_feed); + + // get our feeds + Ref<CameraFeed> get_feed(int p_idx); + int get_feed_count(); + Array get_feeds(); + + RID feed_texture(int p_id, FeedImage p_texture); + + CameraServer(); + ~CameraServer(); +}; + +VARIANT_ENUM_CAST(CameraServer::FeedImage); + +#endif /* CAMERA_SERVER_H */ diff --git a/servers/physics_2d/joints_2d_sw.cpp b/servers/physics_2d/joints_2d_sw.cpp index 954b0fa3ea..acdaa6e6df 100644 --- a/servers/physics_2d/joints_2d_sw.cpp +++ b/servers/physics_2d/joints_2d_sw.cpp @@ -92,7 +92,7 @@ normal_relative_velocity(Body2DSW *a, Body2DSW *b, Vector2 rA, Vector2 rB, Vecto bool PinJoint2DSW::setup(real_t p_step) { Space2DSW *space = A->get_space(); - ERR_FAIL_COND_V(!space, false;) + ERR_FAIL_COND_V(!space, false); rA = A->get_transform().basis_xform(anchor_A); rB = B ? B->get_transform().basis_xform(anchor_B) : anchor_B; diff --git a/servers/physics_2d/shape_2d_sw.cpp b/servers/physics_2d/shape_2d_sw.cpp index 66d2dcd417..0043b948b0 100644 --- a/servers/physics_2d/shape_2d_sw.cpp +++ b/servers/physics_2d/shape_2d_sw.cpp @@ -240,12 +240,7 @@ bool SegmentShape2DSW::intersect_segment(const Vector2 &p_begin, const Vector2 & real_t SegmentShape2DSW::get_moment_of_inertia(real_t p_mass, const Size2 &p_scale) const { - Vector2 s[2] = { a * p_scale, b * p_scale }; - - real_t l = s[1].distance_to(s[0]); - Vector2 ofs = (s[0] + s[1]) * 0.5; - - return p_mass * (l * l / 12.0 + ofs.length_squared()); + return p_mass * ((a * p_scale).distance_squared_to(b * p_scale)) / 12; } void SegmentShape2DSW::set_data(const Variant &p_data) { @@ -318,7 +313,9 @@ bool CircleShape2DSW::intersect_segment(const Vector2 &p_begin, const Vector2 &p real_t CircleShape2DSW::get_moment_of_inertia(real_t p_mass, const Size2 &p_scale) const { - return (radius * radius) * (p_scale.x * 0.5 + p_scale.y * 0.5); + real_t a = radius * p_scale.x; + real_t b = radius * p_scale.y; + return p_mass * (a * a + b * b) / 4; } void CircleShape2DSW::set_data(const Variant &p_data) { @@ -637,7 +634,7 @@ real_t ConvexPolygonShape2DSW::get_moment_of_inertia(real_t p_mass, const Size2 aabb.expand_to(points[i].pos * p_scale); } - return p_mass * aabb.size.dot(aabb.size) / 12.0 + p_mass * (aabb.position + aabb.size * 0.5).length_squared(); + return p_mass * aabb.size.dot(aabb.size) / 12.0; } void ConvexPolygonShape2DSW::set_data(const Variant &p_data) { diff --git a/servers/register_server_types.cpp b/servers/register_server_types.cpp index f3394019f5..f7cec6a378 100644 --- a/servers/register_server_types.cpp +++ b/servers/register_server_types.cpp @@ -54,6 +54,8 @@ #include "audio/effects/audio_effect_stereo_enhance.h" #include "audio/effects/audio_stream_generator.h" #include "audio_server.h" +#include "camera/camera_feed.h" +#include "camera_server.h" #include "core/script_debugger_remote.h" #include "physics/physics_server_sw.h" #include "physics_2d/physics_2d_server_sw.h" @@ -114,6 +116,7 @@ void register_server_types() { ClassDB::register_virtual_class<PhysicsServer>(); ClassDB::register_virtual_class<Physics2DServer>(); ClassDB::register_class<ARVRServer>(); + ClassDB::register_class<CameraServer>(); shader_types = memnew(ShaderTypes); @@ -169,6 +172,8 @@ void register_server_types() { ClassDB::register_virtual_class<AudioEffectSpectrumAnalyzerInstance>(); } + ClassDB::register_class<CameraFeed>(); + ClassDB::register_virtual_class<Physics2DDirectBodyState>(); ClassDB::register_virtual_class<Physics2DDirectSpaceState>(); ClassDB::register_virtual_class<Physics2DShapeQueryResult>(); @@ -208,4 +213,5 @@ void register_server_singletons() { Engine::get_singleton()->add_singleton(Engine::Singleton("PhysicsServer", PhysicsServer::get_singleton())); Engine::get_singleton()->add_singleton(Engine::Singleton("Physics2DServer", Physics2DServer::get_singleton())); Engine::get_singleton()->add_singleton(Engine::Singleton("ARVRServer", ARVRServer::get_singleton())); + Engine::get_singleton()->add_singleton(Engine::Singleton("CameraServer", CameraServer::get_singleton())); } diff --git a/servers/visual/rasterizer.h b/servers/visual/rasterizer.h index a02f52f034..31b468b50b 100644 --- a/servers/visual/rasterizer.h +++ b/servers/visual/rasterizer.h @@ -60,6 +60,7 @@ public: virtual void environment_set_bg_energy(RID p_env, float p_energy) = 0; virtual void environment_set_canvas_max_layer(RID p_env, int p_max_layer) = 0; virtual void environment_set_ambient_light(RID p_env, const Color &p_color, float p_energy = 1.0, float p_sky_contribution = 0.0) = 0; + virtual void environment_set_camera_feed_id(RID p_env, int p_camera_feed_id) = 0; virtual void environment_set_dof_blur_near(RID p_env, bool p_enable, float p_distance, float p_transition, float p_far_amount, VS::EnvironmentDOFBlurQuality p_quality) = 0; virtual void environment_set_dof_blur_far(RID p_env, bool p_enable, float p_distance, float p_transition, float p_far_amount, VS::EnvironmentDOFBlurQuality p_quality) = 0; @@ -204,6 +205,7 @@ public: virtual uint32_t texture_get_height(RID p_texture) const = 0; virtual uint32_t texture_get_depth(RID p_texture) const = 0; virtual void texture_set_size_override(RID p_texture, int p_width, int p_height, int p_depth_3d) = 0; + virtual void texture_bind(RID p_texture, uint32_t p_texture_no) = 0; virtual void texture_set_path(RID p_texture, const String &p_path) = 0; virtual String texture_get_path(RID p_texture) const = 0; @@ -550,10 +552,12 @@ public: RENDER_TARGET_NO_SAMPLING, RENDER_TARGET_HDR, RENDER_TARGET_KEEP_3D_LINEAR, + RENDER_TARGET_DIRECT_TO_SCREEN, RENDER_TARGET_FLAG_MAX }; virtual RID render_target_create() = 0; + virtual void render_target_set_position(RID p_render_target, int p_x, int p_y) = 0; virtual void render_target_set_size(RID p_render_target, int p_width, int p_height) = 0; virtual RID render_target_get_texture(RID p_render_target) const = 0; virtual void render_target_set_external_texture(RID p_render_target, unsigned int p_texture_id) = 0; @@ -1101,7 +1105,7 @@ public: virtual RasterizerCanvas *get_canvas() = 0; virtual RasterizerScene *get_scene() = 0; - virtual void set_boot_image(const Ref<Image> &p_image, const Color &p_color, bool p_scale) = 0; + virtual void set_boot_image(const Ref<Image> &p_image, const Color &p_color, bool p_scale, bool p_use_filter = true) = 0; virtual void initialize() = 0; virtual void begin_frame(double frame_step) = 0; diff --git a/servers/visual/shader_language.cpp b/servers/visual/shader_language.cpp index cb3a744730..42b9f19d9d 100644 --- a/servers/visual/shader_language.cpp +++ b/servers/visual/shader_language.cpp @@ -132,6 +132,7 @@ const char *ShaderLanguage::token_names[TK_MAX] = { "TYPE_SAMPLERCUBE", "INTERPOLATION_FLAT", "INTERPOLATION_SMOOTH", + "CONST", "PRECISION_LOW", "PRECISION_MID", "PRECISION_HIGH", @@ -271,6 +272,7 @@ const ShaderLanguage::KeyWord ShaderLanguage::keyword_list[] = { { TK_TYPE_SAMPLERCUBE, "samplerCube" }, { TK_INTERPOLATION_FLAT, "flat" }, { TK_INTERPOLATION_SMOOTH, "smooth" }, + { TK_CONST, "const" }, { TK_PRECISION_LOW, "lowp" }, { TK_PRECISION_MID, "mediump" }, { TK_PRECISION_HIGH, "highp" }, @@ -920,6 +922,16 @@ bool ShaderLanguage::_find_identifier(const BlockNode *p_block, const Map<String return true; } + if (shader->constants.has(p_identifier)) { + if (r_data_type) { + *r_data_type = shader->constants[p_identifier].type; + } + if (r_type) { + *r_type = IDENTIFIER_CONSTANT; + } + return true; + } + for (int i = 0; i < shader->functions.size(); i++) { if (!shader->functions[i].callable) @@ -2699,6 +2711,12 @@ bool ShaderLanguage::_validate_assign(Node *p_node, const Map<StringName, BuiltI return false; } + if (shader->constants.has(var->name)) { + if (r_message) + *r_message = RTR("Constants cannot be modified."); + return false; + } + if (!(p_builtin_types.has(var->name) && p_builtin_types[var->name].constant)) { return true; } @@ -2968,6 +2986,10 @@ ShaderLanguage::Node *ShaderLanguage::_parse_expression(BlockNode *p_block, cons member_type = DataType(dt - 1); } else if (l == 2) { member_type = dt; + } else if (l == 3) { + member_type = DataType(dt + 1); + } else if (l == 4) { + member_type = DataType(dt + 2); } else { ok = false; break; @@ -3001,6 +3023,8 @@ ShaderLanguage::Node *ShaderLanguage::_parse_expression(BlockNode *p_block, cons member_type = DataType(dt - 1); } else if (l == 3) { member_type = dt; + } else if (l == 4) { + member_type = DataType(dt + 1); } else { ok = false; break; @@ -3987,7 +4011,7 @@ Error ShaderLanguage::_parse_block(BlockNode *p_block, const Map<StringName, Bui } else { - //nothng else, so expression + //nothing else, so expression _set_tkpos(pos); //rollback Node *expr = _parse_and_reduce_expression(p_block, p_builtin_types); if (!expr) @@ -4316,24 +4340,30 @@ Error ShaderLanguage::_parse_shader(const Map<StringName, FunctionInfo> &p_funct } break; default: { - //function + //function or constant variable + bool is_constant = false; DataPrecision precision = PRECISION_DEFAULT; DataType type; StringName name; + if (tk.type == TK_CONST) { + is_constant = true; + tk = _get_token(); + } + if (is_token_precision(tk.type)) { precision = get_token_precision(tk.type); tk = _get_token(); } if (!is_token_datatype(tk.type)) { - _set_error("Expected function, uniform or varying "); + _set_error("Expected constant, function, uniform or varying "); return ERR_PARSE_ERROR; } if (!is_token_variable_datatype(tk.type)) { - _set_error("Invalid data type for function return (samplers not allowed)"); + _set_error("Invalid data type for constants or function return (samplers not allowed)"); return ERR_PARSE_ERROR; } @@ -4353,8 +4383,73 @@ Error ShaderLanguage::_parse_shader(const Map<StringName, FunctionInfo> &p_funct tk = _get_token(); if (tk.type != TK_PARENTHESIS_OPEN) { - _set_error("Expected '(' after identifier"); - return ERR_PARSE_ERROR; + if (type == TYPE_VOID) { + _set_error("Expected '(' after function identifier"); + return ERR_PARSE_ERROR; + } + + //variable + + while (true) { + ShaderNode::Constant constant; + constant.type = type; + constant.precision = precision; + constant.initializer = NULL; + + if (tk.type == TK_OP_ASSIGN) { + + if (!is_constant) { + _set_error("Expected 'const' keyword before constant definition"); + return ERR_PARSE_ERROR; + } + + //variable created with assignment! must parse an expression + Node *expr = _parse_and_reduce_expression(NULL, Map<StringName, BuiltInInfo>()); + if (!expr) + return ERR_PARSE_ERROR; + + if (expr->type != Node::TYPE_CONSTANT) { + _set_error("Expected constant expression after '='"); + return ERR_PARSE_ERROR; + } + + constant.initializer = static_cast<ConstantNode *>(expr); + + if (type != expr->get_datatype()) { + _set_error("Invalid assignment of '" + get_datatype_name(expr->get_datatype()) + "' to '" + get_datatype_name(type) + "'"); + return ERR_PARSE_ERROR; + } + tk = _get_token(); + } else { + _set_error("Expected initialization of constant"); + return ERR_PARSE_ERROR; + } + + shader->constants[name] = constant; + if (tk.type == TK_COMMA) { + tk = _get_token(); + if (tk.type != TK_IDENTIFIER) { + _set_error("Expected identifier after type"); + return ERR_PARSE_ERROR; + } + + name = tk.text; + if (_find_identifier(NULL, Map<StringName, BuiltInInfo>(), name)) { + _set_error("Redefinition of '" + String(name) + "'"); + return ERR_PARSE_ERROR; + } + + tk = _get_token(); + + } else if (tk.type == TK_SEMICOLON) { + break; + } else { + _set_error("Expected ',' or ';' after constant"); + return ERR_PARSE_ERROR; + } + } + + break; } Map<StringName, BuiltInInfo> builtin_types; diff --git a/servers/visual/shader_language.h b/servers/visual/shader_language.h index 67c273d267..934dc2c403 100644 --- a/servers/visual/shader_language.h +++ b/servers/visual/shader_language.h @@ -80,6 +80,7 @@ public: TK_TYPE_SAMPLERCUBE, TK_INTERPOLATION_FLAT, TK_INTERPOLATION_SMOOTH, + TK_CONST, TK_PRECISION_LOW, TK_PRECISION_MID, TK_PRECISION_HIGH, @@ -440,6 +441,13 @@ public: }; struct ShaderNode : public Node { + + struct Constant { + DataType type; + DataPrecision precision; + ConstantNode *initializer; + }; + struct Function { StringName name; FunctionNode *function; @@ -492,6 +500,7 @@ public: } }; + Map<StringName, Constant> constants; Map<StringName, Varying> varyings; Map<StringName, Uniform> uniforms; Vector<StringName> render_modes; @@ -632,6 +641,7 @@ private: IDENTIFIER_FUNCTION_ARGUMENT, IDENTIFIER_LOCAL_VAR, IDENTIFIER_BUILTIN_VAR, + IDENTIFIER_CONSTANT, }; bool _find_identifier(const BlockNode *p_block, const Map<StringName, BuiltInInfo> &p_builtin_types, const StringName &p_identifier, DataType *r_data_type = NULL, IdentifierType *r_type = NULL); diff --git a/servers/visual/shader_types.cpp b/servers/visual/shader_types.cpp index 8fd5dfc738..bc6010117c 100644 --- a/servers/visual/shader_types.cpp +++ b/servers/visual/shader_types.cpp @@ -147,6 +147,7 @@ ShaderTypes::ShaderTypes() { shader_modes[VS::SHADER_SPATIAL].functions["light"].built_ins["DIFFUSE_LIGHT"] = ShaderLanguage::TYPE_VEC3; shader_modes[VS::SHADER_SPATIAL].functions["light"].built_ins["SPECULAR_LIGHT"] = ShaderLanguage::TYPE_VEC3; shader_modes[VS::SHADER_SPATIAL].functions["light"].built_ins["OUTPUT_IS_SRGB"] = constt(ShaderLanguage::TYPE_BOOL); + shader_modes[VS::SHADER_SPATIAL].functions["light"].built_ins["ALPHA"] = ShaderLanguage::TYPE_FLOAT; shader_modes[VS::SHADER_SPATIAL].functions["light"].can_discard = true; @@ -187,6 +188,7 @@ ShaderTypes::ShaderTypes() { shader_modes[VS::SHADER_SPATIAL].modes.push_back("shadows_disabled"); shader_modes[VS::SHADER_SPATIAL].modes.push_back("ambient_light_disabled"); + shader_modes[VS::SHADER_SPATIAL].modes.push_back("shadow_to_opacity"); shader_modes[VS::SHADER_SPATIAL].modes.push_back("vertex_lighting"); diff --git a/servers/visual/visual_server_raster.cpp b/servers/visual/visual_server_raster.cpp index a9ca920178..d45bda72b7 100644 --- a/servers/visual/visual_server_raster.cpp +++ b/servers/visual/visual_server_raster.cpp @@ -153,10 +153,10 @@ int VisualServerRaster::get_render_info(RenderInfo p_info) { /* TESTING */ -void VisualServerRaster::set_boot_image(const Ref<Image> &p_image, const Color &p_color, bool p_scale) { +void VisualServerRaster::set_boot_image(const Ref<Image> &p_image, const Color &p_color, bool p_scale, bool p_use_filter) { redraw_request(); - VSG::rasterizer->set_boot_image(p_image, p_color, p_scale); + VSG::rasterizer->set_boot_image(p_image, p_color, p_scale, p_use_filter); } void VisualServerRaster::set_default_clear_color(const Color &p_color) { VSG::viewport->set_default_clear_color(p_color); @@ -201,8 +201,10 @@ VisualServerRaster::VisualServerRaster() { VSG::canvas_render = VSG::rasterizer->get_canvas(); VSG::scene_render = VSG::rasterizer->get_scene(); - for (int i = 0; i < 4; i++) + for (int i = 0; i < 4; i++) { black_margin[i] = 0; + black_image[i] = RID(); + } } VisualServerRaster::~VisualServerRaster() { diff --git a/servers/visual/visual_server_raster.h b/servers/visual/visual_server_raster.h index 3ec428d687..f37d651dee 100644 --- a/servers/visual/visual_server_raster.h +++ b/servers/visual/visual_server_raster.h @@ -159,6 +159,7 @@ public: BIND1RC(uint32_t, texture_get_height, RID) BIND1RC(uint32_t, texture_get_depth, RID) BIND4(texture_set_size_override, RID, int, int, int) + BIND2(texture_bind, RID, uint32_t) BIND3(texture_set_detect_3d_callback, RID, TextureDetectCallback, void *) BIND3(texture_set_detect_srgb_callback, RID, TextureDetectCallback, void *) @@ -454,6 +455,7 @@ public: BIND2(viewport_set_clear_mode, RID, ViewportClearMode) BIND3(viewport_attach_to_screen, RID, const Rect2 &, int) + BIND2(viewport_set_render_direct_to_screen, RID, bool) BIND1(viewport_detach, RID) BIND2(viewport_set_update_mode, RID, ViewportUpdateMode) @@ -502,6 +504,7 @@ public: BIND2(environment_set_bg_energy, RID, float) BIND2(environment_set_canvas_max_layer, RID, int) BIND4(environment_set_ambient_light, RID, const Color &, float, float) + BIND2(environment_set_camera_feed_id, RID, int) BIND7(environment_set_ssr, RID, bool, int, float, float, float, bool) BIND13(environment_set_ssao, RID, bool, float, float, float, float, float, float, float, const Color &, EnvironmentSSAOQuality, EnvironmentSSAOBlur, float) @@ -684,7 +687,7 @@ public: /* TESTING */ - virtual void set_boot_image(const Ref<Image> &p_image, const Color &p_color, bool p_scale); + virtual void set_boot_image(const Ref<Image> &p_image, const Color &p_color, bool p_scale, bool p_use_filter = true); virtual void set_default_clear_color(const Color &p_color); virtual bool has_feature(Features p_feature) const; diff --git a/servers/visual/visual_server_viewport.cpp b/servers/visual/visual_server_viewport.cpp index e7f60c2c1f..b7c54caffd 100644 --- a/servers/visual/visual_server_viewport.cpp +++ b/servers/visual/visual_server_viewport.cpp @@ -343,7 +343,7 @@ void VisualServerViewport::draw_viewports() { vp->render_info[VS::VIEWPORT_RENDER_INFO_SURFACE_CHANGES_IN_FRAME] = VSG::storage->get_captured_render_info(VS::INFO_SURFACE_CHANGES_IN_FRAME); vp->render_info[VS::VIEWPORT_RENDER_INFO_DRAW_CALLS_IN_FRAME] = VSG::storage->get_captured_render_info(VS::INFO_DRAW_CALLS_IN_FRAME); - if (vp->viewport_to_screen_rect != Rect2()) { + if (vp->viewport_to_screen_rect != Rect2() && (!vp->viewport_render_direct_to_screen || !VSG::rasterizer->is_low_end())) { //copy to screen if set as such VSG::rasterizer->set_current_render_target(RID()); VSG::rasterizer->blit_render_target_to_screen(vp->render_target, vp->viewport_to_screen_rect, vp->viewport_to_screen); @@ -368,6 +368,7 @@ RID VisualServerViewport::viewport_create() { viewport->hide_canvas = false; viewport->render_target = VSG::storage->render_target_create(); viewport->shadow_atlas = VSG::scene_render->shadow_atlas_create(); + viewport->viewport_render_direct_to_screen = false; return rid; } @@ -424,14 +425,55 @@ void VisualServerViewport::viewport_attach_to_screen(RID p_viewport, const Rect2 Viewport *viewport = viewport_owner.getornull(p_viewport); ERR_FAIL_COND(!viewport); + // If using GLES2 we can optimize this operation by rendering directly to system_fbo + // instead of rendering to fbo and copying to system_fbo after + if (VSG::rasterizer->is_low_end() && viewport->viewport_render_direct_to_screen) { + + VSG::storage->render_target_set_size(viewport->render_target, p_rect.size.x, p_rect.size.y); + VSG::storage->render_target_set_position(viewport->render_target, p_rect.position.x, p_rect.position.y); + } + viewport->viewport_to_screen_rect = p_rect; viewport->viewport_to_screen = p_screen; } + +void VisualServerViewport::viewport_set_render_direct_to_screen(RID p_viewport, bool p_enable) { + Viewport *viewport = viewport_owner.getornull(p_viewport); + ERR_FAIL_COND(!viewport); + + if (p_enable == viewport->viewport_render_direct_to_screen) + return; + + // if disabled, reset render_target size and position + if (!p_enable) { + + VSG::storage->render_target_set_position(viewport->render_target, 0, 0); + VSG::storage->render_target_set_size(viewport->render_target, viewport->size.x, viewport->size.y); + } + + VSG::storage->render_target_set_flag(viewport->render_target, RasterizerStorage::RENDER_TARGET_DIRECT_TO_SCREEN, p_enable); + viewport->viewport_render_direct_to_screen = p_enable; + + // if attached to screen already, setup screen size and position, this needs to happen after setting flag to avoid an unneccesary buffer allocation + if (VSG::rasterizer->is_low_end() && viewport->viewport_to_screen_rect != Rect2() && p_enable) { + + VSG::storage->render_target_set_size(viewport->render_target, viewport->viewport_to_screen_rect.size.x, viewport->viewport_to_screen_rect.size.y); + VSG::storage->render_target_set_position(viewport->render_target, viewport->viewport_to_screen_rect.position.x, viewport->viewport_to_screen_rect.position.y); + } +} + void VisualServerViewport::viewport_detach(RID p_viewport) { Viewport *viewport = viewport_owner.getornull(p_viewport); ERR_FAIL_COND(!viewport); + // if render_direct_to_screen was used, reset size and position + if (VSG::rasterizer->is_low_end() && viewport->viewport_render_direct_to_screen) { + + VSG::storage->render_target_set_position(viewport->render_target, 0, 0); + VSG::storage->render_target_set_size(viewport->render_target, viewport->size.x, viewport->size.y); + } + viewport->viewport_to_screen_rect = Rect2(); viewport->viewport_to_screen = 0; } diff --git a/servers/visual/visual_server_viewport.h b/servers/visual/visual_server_viewport.h index 555b40a103..43bbcb66c3 100644 --- a/servers/visual/visual_server_viewport.h +++ b/servers/visual/visual_server_viewport.h @@ -58,6 +58,7 @@ public: int viewport_to_screen; Rect2 viewport_to_screen_rect; + bool viewport_render_direct_to_screen; bool hide_scenario; bool hide_canvas; @@ -158,6 +159,7 @@ public: void viewport_set_size(RID p_viewport, int p_width, int p_height); void viewport_attach_to_screen(RID p_viewport, const Rect2 &p_rect = Rect2(), int p_screen = 0); + void viewport_set_render_direct_to_screen(RID p_viewport, bool p_enable); void viewport_detach(RID p_viewport); void viewport_set_active(RID p_viewport, bool p_active); diff --git a/servers/visual/visual_server_wrap_mt.h b/servers/visual/visual_server_wrap_mt.h index b2753369b8..24e50eb99e 100644 --- a/servers/visual/visual_server_wrap_mt.h +++ b/servers/visual/visual_server_wrap_mt.h @@ -95,6 +95,7 @@ public: FUNC1RC(uint32_t, texture_get_height, RID) FUNC1RC(uint32_t, texture_get_depth, RID) FUNC4(texture_set_size_override, RID, int, int, int) + FUNC2(texture_bind, RID, uint32_t) FUNC3(texture_set_detect_3d_callback, RID, TextureDetectCallback, void *) FUNC3(texture_set_detect_srgb_callback, RID, TextureDetectCallback, void *) @@ -381,6 +382,7 @@ public: FUNC2(viewport_set_clear_mode, RID, ViewportClearMode) FUNC3(viewport_attach_to_screen, RID, const Rect2 &, int) + FUNC2(viewport_set_render_direct_to_screen, RID, bool) FUNC1(viewport_detach, RID) FUNC2(viewport_set_update_mode, RID, ViewportUpdateMode) @@ -429,6 +431,7 @@ public: FUNC2(environment_set_bg_energy, RID, float) FUNC2(environment_set_canvas_max_layer, RID, int) FUNC4(environment_set_ambient_light, RID, const Color &, float, float) + FUNC2(environment_set_camera_feed_id, RID, int) FUNC7(environment_set_ssr, RID, bool, int, float, float, float, bool) FUNC13(environment_set_ssao, RID, bool, float, float, float, float, float, float, float, const Color &, EnvironmentSSAOQuality, EnvironmentSSAOBlur, float) @@ -601,7 +604,7 @@ public: return visual_server->get_render_info(p_info); } - FUNC3(set_boot_image, const Ref<Image> &, const Color &, bool) + FUNC4(set_boot_image, const Ref<Image> &, const Color &, bool, bool) FUNC1(set_default_clear_color, const Color &) FUNC0R(RID, get_test_cube) diff --git a/servers/visual_server.cpp b/servers/visual_server.cpp index b39b400a53..60be63fd24 100644 --- a/servers/visual_server.cpp +++ b/servers/visual_server.cpp @@ -1676,6 +1676,7 @@ void VisualServer::_bind_methods() { ClassDB::bind_method(D_METHOD("texture_set_path", "texture", "path"), &VisualServer::texture_set_path); ClassDB::bind_method(D_METHOD("texture_get_path", "texture"), &VisualServer::texture_get_path); ClassDB::bind_method(D_METHOD("texture_set_shrink_all_x2_on_set_data", "shrink"), &VisualServer::texture_set_shrink_all_x2_on_set_data); + ClassDB::bind_method(D_METHOD("texture_bind", "texture", "number"), &VisualServer::texture_bind); ClassDB::bind_method(D_METHOD("texture_debug_usage"), &VisualServer::_texture_debug_usage_bind); ClassDB::bind_method(D_METHOD("textures_keep_original", "enable"), &VisualServer::textures_keep_original); @@ -1876,6 +1877,7 @@ void VisualServer::_bind_methods() { ClassDB::bind_method(D_METHOD("viewport_set_active", "viewport", "active"), &VisualServer::viewport_set_active); ClassDB::bind_method(D_METHOD("viewport_set_parent_viewport", "viewport", "parent_viewport"), &VisualServer::viewport_set_parent_viewport); ClassDB::bind_method(D_METHOD("viewport_attach_to_screen", "viewport", "rect", "screen"), &VisualServer::viewport_attach_to_screen, DEFVAL(Rect2()), DEFVAL(0)); + ClassDB::bind_method(D_METHOD("viewport_set_render_direct_to_screen", "viewport", "enabled"), &VisualServer::viewport_set_render_direct_to_screen); ClassDB::bind_method(D_METHOD("viewport_detach", "viewport"), &VisualServer::viewport_detach); ClassDB::bind_method(D_METHOD("viewport_set_update_mode", "viewport", "update_mode"), &VisualServer::viewport_set_update_mode); ClassDB::bind_method(D_METHOD("viewport_set_vflip", "viewport", "enabled"), &VisualServer::viewport_set_vflip); @@ -2046,7 +2048,7 @@ void VisualServer::_bind_methods() { ClassDB::bind_method(D_METHOD("get_test_texture"), &VisualServer::get_test_texture); ClassDB::bind_method(D_METHOD("get_white_texture"), &VisualServer::get_white_texture); - ClassDB::bind_method(D_METHOD("set_boot_image", "image", "color", "scale"), &VisualServer::set_boot_image); + ClassDB::bind_method(D_METHOD("set_boot_image", "image", "color", "scale", "use_filter"), &VisualServer::set_boot_image, DEFVAL(true)); ClassDB::bind_method(D_METHOD("set_default_clear_color", "color"), &VisualServer::set_default_clear_color); ClassDB::bind_method(D_METHOD("has_feature", "feature"), &VisualServer::has_feature); diff --git a/servers/visual_server.h b/servers/visual_server.h index 5146ca47f1..a84d395e3f 100644 --- a/servers/visual_server.h +++ b/servers/visual_server.h @@ -140,6 +140,7 @@ public: virtual uint32_t texture_get_height(RID p_texture) const = 0; virtual uint32_t texture_get_depth(RID p_texture) const = 0; virtual void texture_set_size_override(RID p_texture, int p_width, int p_height, int p_depth_3d) = 0; + virtual void texture_bind(RID p_texture, uint32_t p_texture_no) = 0; virtual void texture_set_path(RID p_texture, const String &p_path) = 0; virtual String texture_get_path(RID p_texture) const = 0; @@ -610,6 +611,7 @@ public: virtual void viewport_set_parent_viewport(RID p_viewport, RID p_parent_viewport) = 0; virtual void viewport_attach_to_screen(RID p_viewport, const Rect2 &p_rect = Rect2(), int p_screen = 0) = 0; + virtual void viewport_set_render_direct_to_screen(RID p_viewport, bool p_enable) = 0; virtual void viewport_detach(RID p_viewport) = 0; enum ViewportUpdateMode { @@ -706,6 +708,7 @@ public: ENV_BG_COLOR_SKY, ENV_BG_CANVAS, ENV_BG_KEEP, + ENV_BG_CAMERA_FEED, ENV_BG_MAX }; @@ -717,6 +720,7 @@ public: virtual void environment_set_bg_energy(RID p_env, float p_energy) = 0; virtual void environment_set_canvas_max_layer(RID p_env, int p_max_layer) = 0; virtual void environment_set_ambient_light(RID p_env, const Color &p_color, float p_energy = 1.0, float p_sky_contribution = 0.0) = 0; + virtual void environment_set_camera_feed_id(RID p_env, int p_camera_feed_id) = 0; //set default SSAO options //set default SSR options @@ -1028,7 +1032,7 @@ public: virtual void mesh_add_surface_from_mesh_data(RID p_mesh, const Geometry::MeshData &p_mesh_data); virtual void mesh_add_surface_from_planes(RID p_mesh, const PoolVector<Plane> &p_planes); - virtual void set_boot_image(const Ref<Image> &p_image, const Color &p_color, bool p_scale) = 0; + virtual void set_boot_image(const Ref<Image> &p_image, const Color &p_color, bool p_scale, bool p_use_filter = true) = 0; virtual void set_default_clear_color(const Color &p_color) = 0; enum Features { diff --git a/thirdparty/README.md b/thirdparty/README.md index bc820634bb..3e1e8f9734 100644 --- a/thirdparty/README.md +++ b/thirdparty/README.md @@ -26,7 +26,7 @@ comments. ## bullet - Upstream: https://github.com/bulletphysics/bullet3 -- Version: 2.88 +- Version: git (5ec8339, 2019) - License: zlib Files extracted from upstream source: @@ -346,7 +346,7 @@ Collection of single-file libraries used in Godot components. * License: Public Domain - `clipper.{cpp,hpp}` * Upstream: https://sourceforge.net/projects/polyclipping - * Version: 6.4.2 + * Version: 6.4.2 + Godot changes (added optional exceptions handling) * License: BSL-1.0 - `fastlz.{c,h}` * Upstream: https://github.com/ariya/FastLZ diff --git a/thirdparty/assimp/code/res/resource.h b/thirdparty/assimp/code/res/resource.h deleted file mode 100644 index 37d39284fe..0000000000 --- a/thirdparty/assimp/code/res/resource.h +++ /dev/null @@ -1,14 +0,0 @@ -//{{NO_DEPENDENCIES}} -// Microsoft Visual C++ generated include file. -// Used by assimp.rc - -// Nächste Standardwerte für neue Objekte -// -#ifdef APSTUDIO_INVOKED -#ifndef APSTUDIO_READONLY_SYMBOLS -#define _APS_NEXT_RESOURCE_VALUE 101 -#define _APS_NEXT_COMMAND_VALUE 40001 -#define _APS_NEXT_CONTROL_VALUE 1001 -#define _APS_NEXT_SYMED_VALUE 101 -#endif -#endif diff --git a/thirdparty/bullet/Bullet3Common/b3Quaternion.h b/thirdparty/bullet/Bullet3Common/b3Quaternion.h index 9bd5ff7d90..4fdd72dcc4 100644 --- a/thirdparty/bullet/Bullet3Common/b3Quaternion.h +++ b/thirdparty/bullet/Bullet3Common/b3Quaternion.h @@ -92,8 +92,11 @@ public: /**@brief Set the rotation using axis angle notation * @param axis The axis around which to rotate * @param angle The magnitude of the rotation in Radians */ - void setRotation(const b3Vector3& axis, const b3Scalar& _angle) + void setRotation(const b3Vector3& axis1, const b3Scalar& _angle) { + b3Vector3 axis = axis1; + axis.safeNormalize(); + b3Scalar d = axis.length(); b3Assert(d != b3Scalar(0.0)); if (d < B3_EPSILON) diff --git a/thirdparty/bullet/Bullet3Common/b3Vector3.h b/thirdparty/bullet/Bullet3Common/b3Vector3.h index 56e6c13311..a70d68d6e1 100644 --- a/thirdparty/bullet/Bullet3Common/b3Vector3.h +++ b/thirdparty/bullet/Bullet3Common/b3Vector3.h @@ -36,7 +36,7 @@ subject to the following restrictions: #pragma warning(disable : 4556) // value of intrinsic immediate argument '4294967239' is out of range '0 - 255' #endif -#define B3_SHUFFLE(x, y, z, w) ((w) << 6 | (z) << 4 | (y) << 2 | (x)) +#define B3_SHUFFLE(x, y, z, w) (((w) << 6 | (z) << 4 | (y) << 2 | (x)) & 0xff) //#define b3_pshufd_ps( _a, _mask ) (__m128) _mm_shuffle_epi32((__m128i)(_a), (_mask) ) #define b3_pshufd_ps(_a, _mask) _mm_shuffle_ps((_a), (_a), (_mask)) #define b3_splat3_ps(_a, _i) b3_pshufd_ps((_a), B3_SHUFFLE(_i, _i, _i, 3)) diff --git a/thirdparty/bullet/BulletCollision/BroadphaseCollision/btDbvt.cpp b/thirdparty/bullet/BulletCollision/BroadphaseCollision/btDbvt.cpp index 37156fd589..166cb04c0b 100644 --- a/thirdparty/bullet/BulletCollision/BroadphaseCollision/btDbvt.cpp +++ b/thirdparty/bullet/BulletCollision/BroadphaseCollision/btDbvt.cpp @@ -37,7 +37,7 @@ static DBVT_INLINE int indexof(const btDbvtNode* node) static DBVT_INLINE btDbvtVolume merge(const btDbvtVolume& a, const btDbvtVolume& b) { -#if (DBVT_MERGE_IMPL == DBVT_IMPL_SSE) +#ifdef BT_USE_SSE ATTRIBUTE_ALIGNED16(char locals[sizeof(btDbvtAabbMm)]); btDbvtVolume* ptr = (btDbvtVolume*)locals; btDbvtVolume& res = *ptr; @@ -80,6 +80,7 @@ static DBVT_INLINE void deletenode(btDbvt* pdbvt, static void recursedeletenode(btDbvt* pdbvt, btDbvtNode* node) { + if (node == 0) return; if (!node->isleaf()) { recursedeletenode(pdbvt, node->childs[0]); @@ -298,7 +299,7 @@ static int split(btDbvtNode** leaves, static btDbvtVolume bounds(btDbvtNode** leaves, int count) { -#if DBVT_MERGE_IMPL == DBVT_IMPL_SSE +#ifdef BT_USE_SSE ATTRIBUTE_ALIGNED16(char locals[sizeof(btDbvtVolume)]); btDbvtVolume* ptr = (btDbvtVolume*)locals; btDbvtVolume& volume = *ptr; diff --git a/thirdparty/bullet/BulletCollision/BroadphaseCollision/btSimpleBroadphase.cpp b/thirdparty/bullet/BulletCollision/BroadphaseCollision/btSimpleBroadphase.cpp index 166cf771fe..b7fe0a1f34 100644 --- a/thirdparty/bullet/BulletCollision/BroadphaseCollision/btSimpleBroadphase.cpp +++ b/thirdparty/bullet/BulletCollision/BroadphaseCollision/btSimpleBroadphase.cpp @@ -123,11 +123,11 @@ protected: void btSimpleBroadphase::destroyProxy(btBroadphaseProxy* proxyOrg, btDispatcher* dispatcher) { + m_pairCache->removeOverlappingPairsContainingProxy(proxyOrg, dispatcher); + btSimpleBroadphaseProxy* proxy0 = static_cast<btSimpleBroadphaseProxy*>(proxyOrg); freeHandle(proxy0); - m_pairCache->removeOverlappingPairsContainingProxy(proxyOrg, dispatcher); - //validate(); } diff --git a/thirdparty/bullet/BulletCollision/CollisionDispatch/btCollisionObject.cpp b/thirdparty/bullet/BulletCollision/CollisionDispatch/btCollisionObject.cpp index 98a02d0c45..b48d9301d7 100644 --- a/thirdparty/bullet/BulletCollision/CollisionDispatch/btCollisionObject.cpp +++ b/thirdparty/bullet/BulletCollision/CollisionDispatch/btCollisionObject.cpp @@ -43,6 +43,7 @@ btCollisionObject::btCollisionObject() m_userObjectPointer(0), m_userIndex2(-1), m_userIndex(-1), + m_userIndex3(-1), m_hitFraction(btScalar(1.)), m_ccdSweptSphereRadius(btScalar(0.)), m_ccdMotionThreshold(btScalar(0.)), diff --git a/thirdparty/bullet/BulletCollision/CollisionDispatch/btCollisionObject.h b/thirdparty/bullet/BulletCollision/CollisionDispatch/btCollisionObject.h index 56b3d89e56..85dc488c8c 100644 --- a/thirdparty/bullet/BulletCollision/CollisionDispatch/btCollisionObject.h +++ b/thirdparty/bullet/BulletCollision/CollisionDispatch/btCollisionObject.h @@ -101,6 +101,8 @@ protected: int m_userIndex; + int m_userIndex3; + ///time of impact calculation btScalar m_hitFraction; @@ -526,6 +528,11 @@ public: return m_userIndex2; } + int getUserIndex3() const + { + return m_userIndex3; + } + ///users can point to their objects, userPointer is not used by Bullet void setUserPointer(void* userPointer) { @@ -543,6 +550,11 @@ public: m_userIndex2 = index; } + void setUserIndex3(int index) + { + m_userIndex3 = index; + } + int getUpdateRevisionInternal() const { return m_updateRevision; diff --git a/thirdparty/bullet/BulletCollision/CollisionDispatch/btCollisionWorld.cpp b/thirdparty/bullet/BulletCollision/CollisionDispatch/btCollisionWorld.cpp index b30ce03164..71184f36ac 100644 --- a/thirdparty/bullet/BulletCollision/CollisionDispatch/btCollisionWorld.cpp +++ b/thirdparty/bullet/BulletCollision/CollisionDispatch/btCollisionWorld.cpp @@ -19,10 +19,10 @@ subject to the following restrictions: #include "BulletCollision/CollisionShapes/btCollisionShape.h" #include "BulletCollision/CollisionShapes/btConvexShape.h" #include "BulletCollision/NarrowPhaseCollision/btGjkEpaPenetrationDepthSolver.h" -#include "BulletCollision/CollisionShapes/btSphereShape.h" //for raycasting -#include "BulletCollision/CollisionShapes/btBvhTriangleMeshShape.h" //for raycasting -#include "BulletCollision/CollisionShapes/btScaledBvhTriangleMeshShape.h" //for raycasting -#include "BulletCollision/CollisionShapes/btHeightfieldTerrainShape.h" //for raycasting +#include "BulletCollision/CollisionShapes/btSphereShape.h" //for raycasting +#include "BulletCollision/CollisionShapes/btBvhTriangleMeshShape.h" //for raycasting +#include "BulletCollision/CollisionShapes/btScaledBvhTriangleMeshShape.h" //for raycasting +#include "BulletCollision/CollisionShapes/btHeightfieldTerrainShape.h" //for raycasting #include "BulletCollision/NarrowPhaseCollision/btRaycastCallback.h" #include "BulletCollision/CollisionShapes/btCompoundShape.h" #include "BulletCollision/NarrowPhaseCollision/btSubSimplexConvexCast.h" @@ -414,7 +414,9 @@ void btCollisionWorld::rayTestSingleInternal(const btTransform& rayFromTrans, co rcb.m_hitFraction = resultCallback.m_closestHitFraction; triangleMesh->performRaycast(&rcb, rayFromLocalScaled, rayToLocalScaled); } - else if (collisionShape->getShapeType()==TERRAIN_SHAPE_PROXYTYPE) + else if (((resultCallback.m_flags&btTriangleRaycastCallback::kF_DisableHeightfieldAccelerator)==0) + && collisionShape->getShapeType() == TERRAIN_SHAPE_PROXYTYPE + ) { ///optimized version for btHeightfieldTerrainShape btHeightfieldTerrainShape* heightField = (btHeightfieldTerrainShape*)collisionShape; @@ -422,7 +424,7 @@ void btCollisionWorld::rayTestSingleInternal(const btTransform& rayFromTrans, co btVector3 rayFromLocal = worldTocollisionObject * rayFromTrans.getOrigin(); btVector3 rayToLocal = worldTocollisionObject * rayToTrans.getOrigin(); - BridgeTriangleRaycastCallback rcb(rayFromLocal,rayToLocal,&resultCallback,collisionObjectWrap->getCollisionObject(),heightField,colObjWorldTransform); + BridgeTriangleRaycastCallback rcb(rayFromLocal, rayToLocal, &resultCallback, collisionObjectWrap->getCollisionObject(), heightField, colObjWorldTransform); rcb.m_hitFraction = resultCallback.m_closestHitFraction; heightField->performRaycast(&rcb, rayFromLocal, rayToLocal); } diff --git a/thirdparty/bullet/BulletCollision/CollisionShapes/btConvexPolyhedron.cpp b/thirdparty/bullet/BulletCollision/CollisionShapes/btConvexPolyhedron.cpp index 65b669e1c0..9694f4ddb3 100644 --- a/thirdparty/bullet/BulletCollision/CollisionShapes/btConvexPolyhedron.cpp +++ b/thirdparty/bullet/BulletCollision/CollisionShapes/btConvexPolyhedron.cpp @@ -27,7 +27,7 @@ btConvexPolyhedron::~btConvexPolyhedron() { } -inline bool IsAlmostZero(const btVector3& v) +inline bool IsAlmostZero1(const btVector3& v) { if (btFabs(v.x()) > 1e-6 || btFabs(v.y()) > 1e-6 || btFabs(v.z()) > 1e-6) return false; return true; @@ -122,8 +122,8 @@ void btConvexPolyhedron::initialize() for (int p = 0; p < m_uniqueEdges.size(); p++) { - if (IsAlmostZero(m_uniqueEdges[p] - edge) || - IsAlmostZero(m_uniqueEdges[p] + edge)) + if (IsAlmostZero1(m_uniqueEdges[p] - edge) || + IsAlmostZero1(m_uniqueEdges[p] + edge)) { found = true; break; diff --git a/thirdparty/bullet/BulletCollision/CollisionShapes/btHeightfieldTerrainShape.cpp b/thirdparty/bullet/BulletCollision/CollisionShapes/btHeightfieldTerrainShape.cpp index 4adf27e6bb..34ec2d8c45 100644 --- a/thirdparty/bullet/BulletCollision/CollisionShapes/btHeightfieldTerrainShape.cpp +++ b/thirdparty/bullet/BulletCollision/CollisionShapes/btHeightfieldTerrainShape.cpp @@ -71,9 +71,10 @@ void btHeightfieldTerrainShape::initialize( m_flipQuadEdges = flipQuadEdges; m_useDiamondSubdivision = false; m_useZigzagSubdivision = false; + m_flipTriangleWinding = false; m_upAxis = upAxis; m_localScaling.setValue(btScalar(1.), btScalar(1.), btScalar(1.)); - m_vboundsGrid = NULL; + m_vboundsChunkSize = 0; m_vboundsGridWidth = 0; m_vboundsGridLength = 0; @@ -335,30 +336,37 @@ void btHeightfieldTerrainShape::processAllTriangles(btTriangleCallback* callback for (int x = startX; x < endX; x++) { btVector3 vertices[3]; + int indices[3] = { 0, 1, 2 }; + if (m_flipTriangleWinding) + { + indices[0] = 2; + indices[2] = 0; + } + if (m_flipQuadEdges || (m_useDiamondSubdivision && !((j + x) & 1)) || (m_useZigzagSubdivision && !(j & 1))) { //first triangle - getVertex(x, j, vertices[0]); - getVertex(x, j + 1, vertices[1]); - getVertex(x + 1, j + 1, vertices[2]); + getVertex(x, j, vertices[indices[0]]); + getVertex(x, j + 1, vertices[indices[1]]); + getVertex(x + 1, j + 1, vertices[indices[2]]); callback->processTriangle(vertices, x, j); //second triangle // getVertex(x,j,vertices[0]);//already got this vertex before, thanks to Danny Chapman - getVertex(x + 1, j + 1, vertices[1]); - getVertex(x + 1, j, vertices[2]); + getVertex(x + 1, j + 1, vertices[indices[1]]); + getVertex(x + 1, j, vertices[indices[2]]); callback->processTriangle(vertices, x, j); } else { //first triangle - getVertex(x, j, vertices[0]); - getVertex(x, j + 1, vertices[1]); - getVertex(x + 1, j, vertices[2]); + getVertex(x, j, vertices[indices[0]]); + getVertex(x, j + 1, vertices[indices[1]]); + getVertex(x + 1, j, vertices[indices[2]]); callback->processTriangle(vertices, x, j); //second triangle - getVertex(x + 1, j, vertices[0]); + getVertex(x + 1, j, vertices[indices[0]]); //getVertex(x,j+1,vertices[1]); - getVertex(x + 1, j + 1, vertices[2]); + getVertex(x + 1, j + 1, vertices[indices[2]]); callback->processTriangle(vertices, x, j); } } @@ -381,39 +389,42 @@ const btVector3& btHeightfieldTerrainShape::getLocalScaling() const return m_localScaling; } - - -struct GridRaycastState +namespace { - int x; // Next quad coords - int z; - int prev_x; // Previous quad coords - int prev_z; - btScalar param; // Exit param for previous quad - btScalar prevParam; // Enter param for previous quad - btScalar maxDistanceFlat; - btScalar maxDistance3d; -}; - + struct GridRaycastState + { + int x; // Next quad coords + int z; + int prev_x; // Previous quad coords + int prev_z; + btScalar param; // Exit param for previous quad + btScalar prevParam; // Enter param for previous quad + btScalar maxDistanceFlat; + btScalar maxDistance3d; + }; +} // TODO Does it really need to take 3D vectors? /// Iterates through a virtual 2D grid of unit-sized square cells, /// and executes an action on each cell intersecting the given segment, ordered from begin to end. /// Initially inspired by http://www.cse.yorku.ca/~amana/research/grid.pdf template <typename Action_T> -void gridRaycast(Action_T &quadAction, const btVector3 &beginPos, const btVector3 &endPos) +void gridRaycast(Action_T& quadAction, const btVector3& beginPos, const btVector3& endPos, int indices[3]) { GridRaycastState rs; rs.maxDistance3d = beginPos.distance(endPos); if (rs.maxDistance3d < 0.0001) + { // Consider the ray is too small to hit anything return; + } + - btScalar rayDirectionFlatX = endPos[0] - beginPos[0]; - btScalar rayDirectionFlatZ = endPos[2] - beginPos[2]; + btScalar rayDirectionFlatX = endPos[indices[0]] - beginPos[indices[0]]; + btScalar rayDirectionFlatZ = endPos[indices[2]] - beginPos[indices[2]]; rs.maxDistanceFlat = btSqrt(rayDirectionFlatX * rayDirectionFlatX + rayDirectionFlatZ * rayDirectionFlatZ); - if(rs.maxDistanceFlat < 0.0001) + if (rs.maxDistanceFlat < 0.0001) { // Consider the ray vertical rayDirectionFlatX = 0; @@ -433,34 +444,46 @@ void gridRaycast(Action_T &quadAction, const btVector3 &beginPos, const btVector const btScalar paramDeltaZ = ziStep != 0 ? 1.f / btFabs(rayDirectionFlatZ) : infinite; // pos = param * dir - btScalar paramCrossX; // At which value of `param` we will cross a x-axis lane? - btScalar paramCrossZ; // At which value of `param` we will cross a z-axis lane? + btScalar paramCrossX; // At which value of `param` we will cross a x-axis lane? + btScalar paramCrossZ; // At which value of `param` we will cross a z-axis lane? // paramCrossX and paramCrossZ are initialized as being the first cross // X initialization if (xiStep != 0) { if (xiStep == 1) - paramCrossX = (ceil(beginPos[0]) - beginPos[0]) * paramDeltaX; + { + paramCrossX = (ceil(beginPos[indices[0]]) - beginPos[indices[0]]) * paramDeltaX; + } else - paramCrossX = (beginPos[0] - floor(beginPos[0])) * paramDeltaX; + { + paramCrossX = (beginPos[indices[0]] - floor(beginPos[indices[0]])) * paramDeltaX; + } } else - paramCrossX = infinite; // Will never cross on X + { + paramCrossX = infinite; // Will never cross on X + } // Z initialization if (ziStep != 0) { if (ziStep == 1) - paramCrossZ = (ceil(beginPos[2]) - beginPos[2]) * paramDeltaZ; + { + paramCrossZ = (ceil(beginPos[indices[2]]) - beginPos[indices[2]]) * paramDeltaZ; + } else - paramCrossZ = (beginPos[2] - floor(beginPos[2])) * paramDeltaZ; + { + paramCrossZ = (beginPos[indices[2]] - floor(beginPos[indices[2]])) * paramDeltaZ; + } } else - paramCrossZ = infinite; // Will never cross on Z + { + paramCrossZ = infinite; // Will never cross on Z + } - rs.x = static_cast<int>(floor(beginPos[0])); - rs.z = static_cast<int>(floor(beginPos[2])); + rs.x = static_cast<int>(floor(beginPos[indices[0]])); + rs.z = static_cast<int>(floor(beginPos[indices[2]])); // Workaround cases where the ray starts at an integer position if (paramCrossX == 0.0) @@ -469,7 +492,9 @@ void gridRaycast(Action_T &quadAction, const btVector3 &beginPos, const btVector // If going backwards, we should ignore the position we would get by the above flooring, // because the ray is not heading in that direction if (xiStep == -1) + { rs.x -= 1; + } } if (paramCrossZ == 0.0) @@ -513,14 +538,15 @@ void gridRaycast(Action_T &quadAction, const btVector3 &beginPos, const btVector break; } else + { quadAction(rs); + } } } - struct ProcessTrianglesAction { - const btHeightfieldTerrainShape *shape; + const btHeightfieldTerrainShape* shape; bool flipQuadEdges; bool useDiamondSubdivision; int width; @@ -529,11 +555,15 @@ struct ProcessTrianglesAction void exec(int x, int z) const { - if(x < 0 || z < 0 || x >= width || z >= length) + if (x < 0 || z < 0 || x >= width || z >= length) + { return; + } btVector3 vertices[3]; + // TODO Since this is for raycasts, we could greatly benefit from an early exit on the first hit + // Check quad if (flipQuadEdges || (useDiamondSubdivision && (((z + x) & 1) > 0))) { @@ -565,16 +595,15 @@ struct ProcessTrianglesAction } } - void operator ()(const GridRaycastState &bs) const + void operator()(const GridRaycastState& bs) const { exec(bs.prev_x, bs.prev_z); } }; - struct ProcessVBoundsAction { - const btHeightfieldTerrainShape::Range *vbounds; + const btAlignedObjectArray<btHeightfieldTerrainShape::Range>& vbounds; int width; int length; int chunkSize; @@ -583,15 +612,23 @@ struct ProcessVBoundsAction btVector3 rayEnd; btVector3 rayDir; + int* m_indices; ProcessTrianglesAction processTriangles; - void operator ()(const GridRaycastState &rs) const + ProcessVBoundsAction(const btAlignedObjectArray<btHeightfieldTerrainShape::Range>& bnd, int* indices) + : vbounds(bnd), + m_indices(indices) + { + } + void operator()(const GridRaycastState& rs) const { int x = rs.prev_x; int z = rs.prev_z; - if(x < 0 || z < 0 || x >= width || z >= length) + if (x < 0 || z < 0 || x >= width || z >= length) + { return; + } const btHeightfieldTerrainShape::Range chunk = vbounds[x + z * width]; @@ -608,10 +645,14 @@ struct ProcessVBoundsAction // We did enter the flat projection of the AABB, // but we have to check if we intersect it on the vertical axis - if (enterPos[1] > chunk.max && exitPos[1] > chunk.max) + if (enterPos[1] > chunk.max && exitPos[m_indices[1]] > chunk.max) + { return; - if (enterPos[1] < chunk.min && exitPos[1] < chunk.min) + } + if (enterPos[1] < chunk.min && exitPos[m_indices[1]] < chunk.min) + { return; + } } else { @@ -621,13 +662,12 @@ struct ProcessVBoundsAction exitPos = rayEnd; } - gridRaycast(processTriangles, enterPos, exitPos); + gridRaycast(processTriangles, enterPos, exitPos, m_indices); // Note: it could be possible to have more than one grid at different levels, // to do this there would be a branch using a pointer to another ProcessVBoundsAction } }; - // TODO How do I interrupt the ray when there is a hit? `callback` does not return any result /// Performs a raycast using a hierarchical Bresenham algorithm. /// Does not allocate any memory by itself. @@ -648,10 +688,16 @@ void btHeightfieldTerrainShape::performRaycast(btTriangleCallback* callback, con processTriangles.length = m_heightStickLength - 1; // TODO Transform vectors to account for m_upAxis - int iBeginX = static_cast<int>(floor(beginPos[0])); - int iBeginZ = static_cast<int>(floor(beginPos[2])); - int iEndX = static_cast<int>(floor(endPos[0])); - int iEndZ = static_cast<int>(floor(endPos[2])); + int indices[3] = { 0, 1, 2 }; + if (m_upAxis == 2) + { + indices[1] = 2; + indices[2] = 1; + } + int iBeginX = static_cast<int>(floor(beginPos[indices[0]])); + int iBeginZ = static_cast<int>(floor(beginPos[indices[2]])); + int iEndX = static_cast<int>(floor(endPos[indices[0]])); + int iEndZ = static_cast<int>(floor(endPos[indices[2]])); if (iBeginX == iEndX && iBeginZ == iEndZ) { @@ -662,36 +708,36 @@ void btHeightfieldTerrainShape::performRaycast(btTriangleCallback* callback, con return; } - if (m_vboundsGrid == NULL) + + + if (m_vboundsGrid.size()==0) { // Process all quads intersecting the flat projection of the ray - gridRaycast(processTriangles, beginPos, endPos); + gridRaycast(processTriangles, beginPos, endPos, &indices[0]); } else { btVector3 rayDiff = endPos - beginPos; - btScalar flatDistance2 = rayDiff[0] * rayDiff[0] + rayDiff[2] * rayDiff[2]; + btScalar flatDistance2 = rayDiff[indices[0]] * rayDiff[indices[0]] + rayDiff[indices[2]] * rayDiff[indices[2]]; if (flatDistance2 < m_vboundsChunkSize * m_vboundsChunkSize) { // Don't use chunks, the ray is too short in the plane - gridRaycast(processTriangles, beginPos, endPos); + gridRaycast(processTriangles, beginPos, endPos, &indices[0]); } - ProcessVBoundsAction processVBounds; + ProcessVBoundsAction processVBounds(m_vboundsGrid, &indices[0]); processVBounds.width = m_vboundsGridWidth; processVBounds.length = m_vboundsGridLength; - processVBounds.vbounds = m_vboundsGrid; processVBounds.rayBegin = beginPos; processVBounds.rayEnd = endPos; processVBounds.rayDir = rayDiff.normalized(); processVBounds.processTriangles = processTriangles; processVBounds.chunkSize = m_vboundsChunkSize; // The ray is long, run raycast on a higher-level grid - gridRaycast(processVBounds, beginPos / m_vboundsChunkSize, endPos / m_vboundsChunkSize); + gridRaycast(processVBounds, beginPos / m_vboundsChunkSize, endPos / m_vboundsChunkSize, indices); } } - /// Builds a grid data structure storing the min and max heights of the terrain in chunks. /// if chunkSize is zero, that accelerator is removed. /// If you modify the heights, you need to rebuild this accelerator. @@ -708,11 +754,15 @@ void btHeightfieldTerrainShape::buildAccelerator(int chunkSize) int nChunksZ = m_heightStickLength / chunkSize; if (m_heightStickWidth % chunkSize > 0) - ++nChunksX; // In case terrain size isn't dividable by chunk size + { + ++nChunksX; // In case terrain size isn't dividable by chunk size + } if (m_heightStickLength % chunkSize > 0) + { ++nChunksZ; + } - if(m_vboundsGridWidth != nChunksX || m_vboundsGridLength != nChunksZ) + if (m_vboundsGridWidth != nChunksX || m_vboundsGridLength != nChunksZ) { clearAccelerator(); m_vboundsGridWidth = nChunksX; @@ -720,13 +770,13 @@ void btHeightfieldTerrainShape::buildAccelerator(int chunkSize) } if (nChunksX == 0 || nChunksZ == 0) + { return; + } - // TODO What is the recommended way to allocate this? // This data structure is only reallocated if the required size changed - if (m_vboundsGrid == NULL) - m_vboundsGrid = new Range[nChunksX * nChunksZ]; - + m_vboundsGrid.resize(nChunksX * nChunksZ); + // Compute min and max height for all chunks for (int cz = 0; cz < nChunksZ; ++cz) { @@ -760,19 +810,27 @@ void btHeightfieldTerrainShape::buildAccelerator(int chunkSize) for (int z = z0; z < z0 + chunkSize + 1; ++z) { if (z >= m_heightStickLength) + { continue; + } for (int x = x0; x < x0 + chunkSize + 1; ++x) { if (x >= m_heightStickWidth) + { continue; + } btScalar height = getRawHeightFieldValue(x, z); if (height < r.min) + { r.min = height; + } else if (height > r.max) + { r.max = height; + } } } @@ -781,15 +839,7 @@ void btHeightfieldTerrainShape::buildAccelerator(int chunkSize) } } - void btHeightfieldTerrainShape::clearAccelerator() { - if (m_vboundsGrid) - { - // TODO What is the recommended way to deallocate this? - delete[] m_vboundsGrid; - m_vboundsGrid = 0; - } -} - - + m_vboundsGrid.clear(); +}
\ No newline at end of file diff --git a/thirdparty/bullet/BulletCollision/CollisionShapes/btHeightfieldTerrainShape.h b/thirdparty/bullet/BulletCollision/CollisionShapes/btHeightfieldTerrainShape.h index e23b548cb2..43e1d25e3d 100644 --- a/thirdparty/bullet/BulletCollision/CollisionShapes/btHeightfieldTerrainShape.h +++ b/thirdparty/bullet/BulletCollision/CollisionShapes/btHeightfieldTerrainShape.h @@ -17,7 +17,7 @@ subject to the following restrictions: #define BT_HEIGHTFIELD_TERRAIN_SHAPE_H #include "btConcaveShape.h" - +#include "LinearMath/btAlignedObjectArray.h" ///btHeightfieldTerrainShape simulates a 2D heightfield terrain /** @@ -73,7 +73,8 @@ ATTRIBUTE_ALIGNED16(class) btHeightfieldTerrainShape : public btConcaveShape { public: - struct Range { + struct Range + { btScalar min; btScalar max; }; @@ -102,13 +103,13 @@ protected: bool m_flipQuadEdges; bool m_useDiamondSubdivision; bool m_useZigzagSubdivision; - + bool m_flipTriangleWinding; int m_upAxis; btVector3 m_localScaling; // Accelerator - Range *m_vboundsGrid; + btAlignedObjectArray<Range> m_vboundsGrid; int m_vboundsGridWidth; int m_vboundsGridLength; int m_vboundsChunkSize; @@ -157,6 +158,10 @@ public: ///could help compatibility with Ogre heightfields. See https://code.google.com/p/bullet/issues/detail?id=625 void setUseZigzagSubdivision(bool useZigzagSubdivision = true) { m_useZigzagSubdivision = useZigzagSubdivision; } + void setFlipTriangleWinding(bool flipTriangleWinding) + { + m_flipTriangleWinding = flipTriangleWinding; + } virtual void getAabb(const btTransform& t, btVector3& aabbMin, btVector3& aabbMax) const; virtual void processAllTriangles(btTriangleCallback * callback, const btVector3& aabbMin, const btVector3& aabbMax) const; @@ -166,16 +171,20 @@ public: virtual void setLocalScaling(const btVector3& scaling); virtual const btVector3& getLocalScaling() const; - - void getVertex(int x,int y,btVector3& vertex) const; - void performRaycast (btTriangleCallback* callback, const btVector3& raySource, const btVector3& rayTarget) const; + void getVertex(int x, int y, btVector3& vertex) const; + + void performRaycast(btTriangleCallback * callback, const btVector3& raySource, const btVector3& rayTarget) const; - void buildAccelerator(int chunkSize=16); + void buildAccelerator(int chunkSize = 16); void clearAccelerator(); + int getUpAxis() const + { + return m_upAxis; + } //debugging virtual const char* getName() const { return "HEIGHTFIELD"; } }; -#endif //BT_HEIGHTFIELD_TERRAIN_SHAPE_H +#endif //BT_HEIGHTFIELD_TERRAIN_SHAPE_H
\ No newline at end of file diff --git a/thirdparty/bullet/BulletCollision/Gimpact/btGImpactBvhStructs.h b/thirdparty/bullet/BulletCollision/Gimpact/btGImpactBvhStructs.h index 54888c6757..8f78c234b4 100644 --- a/thirdparty/bullet/BulletCollision/Gimpact/btGImpactBvhStructs.h +++ b/thirdparty/bullet/BulletCollision/Gimpact/btGImpactBvhStructs.h @@ -28,28 +28,7 @@ subject to the following restrictions: #include "btBoxCollision.h" #include "btTriangleShapeEx.h" - -//! Overlapping pair -struct GIM_PAIR -{ - int m_index1; - int m_index2; - GIM_PAIR() - { - } - - GIM_PAIR(const GIM_PAIR& p) - { - m_index1 = p.m_index1; - m_index2 = p.m_index2; - } - - GIM_PAIR(int index1, int index2) - { - m_index1 = index1; - m_index2 = index2; - } -}; +#include "gim_pair.h" //for GIM_PAIR ///GIM_BVH_DATA is an internal GIMPACT collision structure to contain axis aligned bounding box struct GIM_BVH_DATA diff --git a/thirdparty/bullet/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.cpp b/thirdparty/bullet/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.cpp index 3d8ab9f520..73e3db1010 100644 --- a/thirdparty/bullet/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.cpp +++ b/thirdparty/bullet/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.cpp @@ -18,7 +18,7 @@ subject to the following restrictions: 3. This notice may not be removed or altered from any source distribution. */ /* -Author: Francisco Len Nßjera +Author: Francisco Leon Najera Concave-Concave Collision */ @@ -590,14 +590,16 @@ void btGImpactCollisionAlgorithm::gimpact_vs_shape(const btCollisionObjectWrappe } btCollisionObjectWrapper ob0(body0Wrap, colshape0, body0Wrap->getCollisionObject(), body0Wrap->getWorldTransform(), m_part0, m_triface0); - const btCollisionObjectWrapper* prevObj0 = m_resultOut->getBody0Wrap(); + const btCollisionObjectWrapper* prevObj; if (m_resultOut->getBody0Wrap()->getCollisionObject() == ob0.getCollisionObject()) { + prevObj = m_resultOut->getBody0Wrap(); m_resultOut->setBody0Wrap(&ob0); } else { + prevObj = m_resultOut->getBody1Wrap(); m_resultOut->setBody1Wrap(&ob0); } @@ -610,7 +612,15 @@ void btGImpactCollisionAlgorithm::gimpact_vs_shape(const btCollisionObjectWrappe { shape_vs_shape_collision(&ob0, body1Wrap, colshape0, shape1); } - m_resultOut->setBody0Wrap(prevObj0); + + if (m_resultOut->getBody0Wrap()->getCollisionObject() == ob0.getCollisionObject()) + { + m_resultOut->setBody0Wrap(prevObj); + } + else + { + m_resultOut->setBody1Wrap(prevObj); + } } shape0->unlockChildShapes(); diff --git a/thirdparty/bullet/BulletCollision/Gimpact/btGImpactShape.h b/thirdparty/bullet/BulletCollision/Gimpact/btGImpactShape.h index 5b85e87041..eb33ce05e2 100644 --- a/thirdparty/bullet/BulletCollision/Gimpact/btGImpactShape.h +++ b/thirdparty/bullet/BulletCollision/Gimpact/btGImpactShape.h @@ -1,5 +1,5 @@ /*! \file btGImpactShape.h -\author Francisco Len Nßjera +\author Francisco Leon Najera */ /* This source file is part of GIMPACT Library. diff --git a/thirdparty/bullet/BulletCollision/Gimpact/gim_box_set.h b/thirdparty/bullet/BulletCollision/Gimpact/gim_box_set.h index 0522007e4f..afc591dac0 100644 --- a/thirdparty/bullet/BulletCollision/Gimpact/gim_box_set.h +++ b/thirdparty/bullet/BulletCollision/Gimpact/gim_box_set.h @@ -37,28 +37,7 @@ email: projectileman@yahoo.com #include "gim_radixsort.h" #include "gim_box_collision.h" #include "gim_tri_collision.h" - -//! Overlapping pair -struct GIM_PAIR -{ - GUINT m_index1; - GUINT m_index2; - GIM_PAIR() - { - } - - GIM_PAIR(const GIM_PAIR& p) - { - m_index1 = p.m_index1; - m_index2 = p.m_index2; - } - - GIM_PAIR(GUINT index1, GUINT index2) - { - m_index1 = index1; - m_index2 = index2; - } -}; +#include "gim_pair.h" //! A pairset array class gim_pair_set : public gim_array<GIM_PAIR> diff --git a/thirdparty/bullet/BulletCollision/Gimpact/gim_pair.h b/thirdparty/bullet/BulletCollision/Gimpact/gim_pair.h new file mode 100644 index 0000000000..56c185a5dc --- /dev/null +++ b/thirdparty/bullet/BulletCollision/Gimpact/gim_pair.h @@ -0,0 +1,28 @@ +#ifndef GIM_PAIR_H +#define GIM_PAIR_H + + +//! Overlapping pair +struct GIM_PAIR +{ + int m_index1; + int m_index2; + GIM_PAIR() + { + } + + GIM_PAIR(const GIM_PAIR& p) + { + m_index1 = p.m_index1; + m_index2 = p.m_index2; + } + + GIM_PAIR(int index1, int index2) + { + m_index1 = index1; + m_index2 = index2; + } +}; + +#endif //GIM_PAIR_H + diff --git a/thirdparty/bullet/BulletCollision/NarrowPhaseCollision/btConvexCast.h b/thirdparty/bullet/BulletCollision/NarrowPhaseCollision/btConvexCast.h index 76f54699c5..77b19be599 100644 --- a/thirdparty/bullet/BulletCollision/NarrowPhaseCollision/btConvexCast.h +++ b/thirdparty/bullet/BulletCollision/NarrowPhaseCollision/btConvexCast.h @@ -23,11 +23,11 @@ class btMinkowskiSumShape; #include "LinearMath/btIDebugDraw.h" #ifdef BT_USE_DOUBLE_PRECISION -#define MAX_ITERATIONS 64 -#define MAX_EPSILON (SIMD_EPSILON * 10) +#define MAX_CONVEX_CAST_ITERATIONS 64 +#define MAX_CONVEX_CAST_EPSILON (SIMD_EPSILON * 10) #else -#define MAX_ITERATIONS 32 -#define MAX_EPSILON btScalar(0.0001) +#define MAX_CONVEX_CAST_ITERATIONS 32 +#define MAX_CONVEX_CAST_EPSILON btScalar(0.0001) #endif ///Typically the conservative advancement reaches solution in a few iterations, clip it to 32 for degenerate cases. ///See discussion about this here http://continuousphysics.com/Bullet/phpBB2/viewtopic.php?t=565 @@ -58,8 +58,8 @@ public: : m_fraction(btScalar(BT_LARGE_FLOAT)), m_debugDrawer(0), m_allowedPenetration(btScalar(0)), - m_subSimplexCastMaxIterations(MAX_ITERATIONS), - m_subSimplexCastEpsilon(MAX_EPSILON) + m_subSimplexCastMaxIterations(MAX_CONVEX_CAST_ITERATIONS), + m_subSimplexCastEpsilon(MAX_CONVEX_CAST_EPSILON) { } diff --git a/thirdparty/bullet/BulletCollision/NarrowPhaseCollision/btGjkPairDetector.cpp b/thirdparty/bullet/BulletCollision/NarrowPhaseCollision/btGjkPairDetector.cpp index 803f6e0671..4339b2ea75 100644 --- a/thirdparty/bullet/BulletCollision/NarrowPhaseCollision/btGjkPairDetector.cpp +++ b/thirdparty/bullet/BulletCollision/NarrowPhaseCollision/btGjkPairDetector.cpp @@ -1,4 +1,4 @@ -/* +/* Bullet Continuous Collision Detection and Physics Library Copyright (c) 2003-2006 Erwin Coumans http://continuousphysics.com/Bullet/ diff --git a/thirdparty/bullet/BulletCollision/NarrowPhaseCollision/btRaycastCallback.h b/thirdparty/bullet/BulletCollision/NarrowPhaseCollision/btRaycastCallback.h index 2b2dfabec2..2d0df718a2 100644 --- a/thirdparty/bullet/BulletCollision/NarrowPhaseCollision/btRaycastCallback.h +++ b/thirdparty/bullet/BulletCollision/NarrowPhaseCollision/btRaycastCallback.h @@ -37,6 +37,7 @@ public: ///SubSimplexConvexCastRaytest is the default, even if kF_None is set. kF_UseSubSimplexConvexCastRaytest = 1 << 2, // Uses an approximate but faster ray versus convex intersection algorithm kF_UseGjkConvexCastRaytest = 1 << 3, + kF_DisableHeightfieldAccelerator = 1 << 4, //don't use the heightfield raycast accelerator. See https://github.com/bulletphysics/bullet3/pull/2062 kF_Terminator = 0xFFFFFFFF }; unsigned int m_flags; diff --git a/thirdparty/bullet/BulletDynamics/ConstraintSolver/btBatchedConstraints.cpp b/thirdparty/bullet/BulletDynamics/ConstraintSolver/btBatchedConstraints.cpp index b51dfaad3c..2a5efc6495 100644 --- a/thirdparty/bullet/BulletDynamics/ConstraintSolver/btBatchedConstraints.cpp +++ b/thirdparty/bullet/BulletDynamics/ConstraintSolver/btBatchedConstraints.cpp @@ -22,6 +22,8 @@ subject to the following restrictions: #include <string.h> //for memset +#include <cmath> + const int kNoMerge = -1; bool btBatchedConstraints::s_debugDrawBatches = false; @@ -520,7 +522,7 @@ static void writeGrainSizes(btBatchedConstraints* bc) { const Range& phase = bc->m_phases[iPhase]; int numBatches = phase.end - phase.begin; - float grainSize = floor((0.25f * numBatches / float(numThreads)) + 0.0f); + float grainSize = std::floor((0.25f * numBatches / float(numThreads)) + 0.0f); bc->m_phaseGrainSize[iPhase] = btMax(1, int(grainSize)); } } diff --git a/thirdparty/bullet/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp b/thirdparty/bullet/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp index 10678b2a61..ac046aa6ea 100644 --- a/thirdparty/bullet/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp +++ b/thirdparty/bullet/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp @@ -19,6 +19,7 @@ Written by: Marcus Hennix #include "BulletDynamics/Dynamics/btRigidBody.h" #include "LinearMath/btTransformUtil.h" #include "LinearMath/btMinMax.h" +#include <cmath> #include <new> //#define CONETWIST_USE_OBSOLETE_SOLVER true @@ -842,7 +843,7 @@ void btConeTwistConstraint::computeConeLimitInfo(const btQuaternion& qCone, btScalar norm = 1 / (m_swingSpan2 * m_swingSpan2); norm += surfaceSlope2 / (m_swingSpan1 * m_swingSpan1); btScalar swingLimit2 = (1 + surfaceSlope2) / norm; - swingLimit = sqrt(swingLimit2); + swingLimit = std::sqrt(swingLimit2); } // test! @@ -887,7 +888,7 @@ btVector3 btConeTwistConstraint::GetPointForAngle(btScalar fAngleInRadians, btSc btScalar norm = 1 / (m_swingSpan2 * m_swingSpan2); norm += surfaceSlope2 / (m_swingSpan1 * m_swingSpan1); btScalar swingLimit2 = (1 + surfaceSlope2) / norm; - swingLimit = sqrt(swingLimit2); + swingLimit = std::sqrt(swingLimit2); } // convert into point in constraint space: diff --git a/thirdparty/bullet/BulletDynamics/ConstraintSolver/btConstraintSolver.h b/thirdparty/bullet/BulletDynamics/ConstraintSolver/btConstraintSolver.h index 808433477c..68a4a07a1d 100644 --- a/thirdparty/bullet/BulletDynamics/ConstraintSolver/btConstraintSolver.h +++ b/thirdparty/bullet/BulletDynamics/ConstraintSolver/btConstraintSolver.h @@ -35,6 +35,7 @@ enum btConstraintSolverType BT_MLCP_SOLVER = 2, BT_NNCG_SOLVER = 4, BT_MULTIBODY_SOLVER = 8, + BT_BLOCK_SOLVER = 16, }; class btConstraintSolver diff --git a/thirdparty/bullet/BulletDynamics/ConstraintSolver/btContactSolverInfo.h b/thirdparty/bullet/BulletDynamics/ConstraintSolver/btContactSolverInfo.h index 89f8db8b1a..63d7c98e16 100644 --- a/thirdparty/bullet/BulletDynamics/ConstraintSolver/btContactSolverInfo.h +++ b/thirdparty/bullet/BulletDynamics/ConstraintSolver/btContactSolverInfo.h @@ -64,6 +64,7 @@ struct btContactSolverInfoData btScalar m_restitutionVelocityThreshold; bool m_jointFeedbackInWorldSpace; bool m_jointFeedbackInJointFrame; + int m_reportSolverAnalytics; }; struct btContactSolverInfo : public btContactSolverInfoData @@ -98,6 +99,7 @@ struct btContactSolverInfo : public btContactSolverInfoData m_restitutionVelocityThreshold = 0.2f; //if the relative velocity is below this threshold, there is zero restitution m_jointFeedbackInWorldSpace = false; m_jointFeedbackInJointFrame = false; + m_reportSolverAnalytics = 0; } }; diff --git a/thirdparty/bullet/BulletDynamics/ConstraintSolver/btGeneric6DofSpring2Constraint.cpp b/thirdparty/bullet/BulletDynamics/ConstraintSolver/btGeneric6DofSpring2Constraint.cpp index 49c8d9bbf7..9a3b39e6f8 100644 --- a/thirdparty/bullet/BulletDynamics/ConstraintSolver/btGeneric6DofSpring2Constraint.cpp +++ b/thirdparty/bullet/BulletDynamics/ConstraintSolver/btGeneric6DofSpring2Constraint.cpp @@ -32,7 +32,7 @@ Cons: /* 2007-09-09 -btGeneric6DofConstraint Refactored by Francisco Le?n +btGeneric6DofConstraint Refactored by Francisco Leon email: projectileman@yahoo.com http://gimpact.sf.net */ @@ -40,6 +40,7 @@ http://gimpact.sf.net #include "btGeneric6DofSpring2Constraint.h" #include "BulletDynamics/Dynamics/btRigidBody.h" #include "LinearMath/btTransformUtil.h" +#include <cmath> #include <new> btGeneric6DofSpring2Constraint::btGeneric6DofSpring2Constraint(btRigidBody& rbA, btRigidBody& rbB, const btTransform& frameInA, const btTransform& frameInB, RotateOrder rotOrder) @@ -310,9 +311,9 @@ void btGeneric6DofSpring2Constraint::calculateAngleInfo() case RO_XYZ: { //Is this the "line of nodes" calculation choosing planes YZ (B coordinate system) and xy (A coordinate system)? (http://en.wikipedia.org/wiki/Euler_angles) - //The two planes are non-homologous, so this is a Tait–Bryan angle formalism and not a proper Euler + //The two planes are non-homologous, so this is a Tait-Bryan angle formalism and not a proper Euler //Extrinsic rotations are equal to the reversed order intrinsic rotations so the above xyz extrinsic rotations (axes are fixed) are the same as the zy'x" intrinsic rotations (axes are refreshed after each rotation) - //that is why xy and YZ planes are chosen (this will describe a zy'x" intrinsic rotation) (see the figure on the left at http://en.wikipedia.org/wiki/Euler_angles under Tait–Bryan angles) + //that is why xy and YZ planes are chosen (this will describe a zy'x" intrinsic rotation) (see the figure on the left at http://en.wikipedia.org/wiki/Euler_angles under Tait-Bryan angles) // x' = Nperp = N.cross(axis2) // y' = N = axis2.cross(axis0) // z' = z @@ -845,7 +846,7 @@ int btGeneric6DofSpring2Constraint::get_limit_motor_info2( if (m_rbA.getInvMass() == 0) m = mB; else if (m_rbB.getInvMass() == 0) m = mA; else m = mA*mB / (mA + mB); - btScalar angularfreq = sqrt(ks / m); + btScalar angularfreq = btSqrt(ks / m); //limit stiffness (the spring should not be sampled faster that the quarter of its angular frequency) if (limot->m_springStiffnessLimited && 0.25 < angularfreq * dt) @@ -865,7 +866,7 @@ int btGeneric6DofSpring2Constraint::get_limit_motor_info2( // vel + f / m * (rotational ? -1 : 1) // so in theory this should be set here for m_constraintError // (with m_constraintError we set a desired velocity for the affected body(es)) - // however in practice any value is fine as long as it is greater then the "proper" velocity, + // however in practice any value is fine as long as it is greater than the "proper" velocity, // because the m_lowerLimit and the m_upperLimit will determinate the strength of the final pulling force // so it is much simpler (and more robust) just to simply use inf (with the proper sign) // (Even with our best intent the "new" velocity is only an estimation. If we underestimate @@ -1085,7 +1086,7 @@ void btGeneric6DofSpring2Constraint::setServoTarget(int index, btScalar targetOr btScalar target = targetOrg + SIMD_PI; if (1) { - btScalar m = target - SIMD_2_PI * floor(target / SIMD_2_PI); + btScalar m = target - SIMD_2_PI * std::floor(target / SIMD_2_PI); // handle boundary cases resulted from floating-point cut off: { if (m >= SIMD_2_PI) diff --git a/thirdparty/bullet/BulletDynamics/ConstraintSolver/btGeneric6DofSpring2Constraint.h b/thirdparty/bullet/BulletDynamics/ConstraintSolver/btGeneric6DofSpring2Constraint.h index bc3ee6d210..00e24364e0 100644 --- a/thirdparty/bullet/BulletDynamics/ConstraintSolver/btGeneric6DofSpring2Constraint.h +++ b/thirdparty/bullet/BulletDynamics/ConstraintSolver/btGeneric6DofSpring2Constraint.h @@ -294,7 +294,7 @@ protected: bool m_hasStaticBody; int m_flags; - btGeneric6DofSpring2Constraint& operator=(btGeneric6DofSpring2Constraint&) + btGeneric6DofSpring2Constraint& operator=(const btGeneric6DofSpring2Constraint&) { btAssert(0); return *this; diff --git a/thirdparty/bullet/BulletDynamics/ConstraintSolver/btSequentialImpulseConstraintSolver.cpp b/thirdparty/bullet/BulletDynamics/ConstraintSolver/btSequentialImpulseConstraintSolver.cpp index def3227b43..d3b71e4583 100644 --- a/thirdparty/bullet/BulletDynamics/ConstraintSolver/btSequentialImpulseConstraintSolver.cpp +++ b/thirdparty/bullet/BulletDynamics/ConstraintSolver/btSequentialImpulseConstraintSolver.cpp @@ -394,6 +394,18 @@ btSingleConstraintRowSolver btSequentialImpulseConstraintSolver::getScalarConstr return gResolveSingleConstraintRowLowerLimit_scalar_reference; } +btSingleConstraintRowSolver btSequentialImpulseConstraintSolver::getScalarSplitPenetrationImpulseGeneric() +{ + return gResolveSplitPenetrationImpulse_scalar_reference; +} + +btSingleConstraintRowSolver btSequentialImpulseConstraintSolver::getSSE2SplitPenetrationImpulseGeneric() +{ + return gResolveSplitPenetrationImpulse_sse2; +} + + + #ifdef USE_SIMD btSingleConstraintRowSolver btSequentialImpulseConstraintSolver::getSSE2ConstraintRowSolverGeneric() { @@ -421,6 +433,11 @@ unsigned long btSequentialImpulseConstraintSolver::btRand2() return m_btSeed2; } +unsigned long btSequentialImpulseConstraintSolver::btRand2a(unsigned long& seed) +{ + seed = (1664525L * seed + 1013904223L) & 0xffffffff; + return seed; +} //See ODE: adam's all-int straightforward(?) dRandInt (0..n-1) int btSequentialImpulseConstraintSolver::btRandInt2(int n) { @@ -454,42 +471,44 @@ int btSequentialImpulseConstraintSolver::btRandInt2(int n) return (int)(r % un); } -void btSequentialImpulseConstraintSolver::initSolverBody(btSolverBody* solverBody, btCollisionObject* collisionObject, btScalar timeStep) +int btSequentialImpulseConstraintSolver::btRandInt2a(int n, unsigned long& seed) { - btRigidBody* rb = collisionObject ? btRigidBody::upcast(collisionObject) : 0; - - solverBody->internalGetDeltaLinearVelocity().setValue(0.f, 0.f, 0.f); - solverBody->internalGetDeltaAngularVelocity().setValue(0.f, 0.f, 0.f); - solverBody->internalGetPushVelocity().setValue(0.f, 0.f, 0.f); - solverBody->internalGetTurnVelocity().setValue(0.f, 0.f, 0.f); + // seems good; xor-fold and modulus + const unsigned long un = static_cast<unsigned long>(n); + unsigned long r = btSequentialImpulseConstraintSolver::btRand2a(seed); - if (rb) - { - solverBody->m_worldTransform = rb->getWorldTransform(); - solverBody->internalSetInvMass(btVector3(rb->getInvMass(), rb->getInvMass(), rb->getInvMass()) * rb->getLinearFactor()); - solverBody->m_originalBody = rb; - solverBody->m_angularFactor = rb->getAngularFactor(); - solverBody->m_linearFactor = rb->getLinearFactor(); - solverBody->m_linearVelocity = rb->getLinearVelocity(); - solverBody->m_angularVelocity = rb->getAngularVelocity(); - solverBody->m_externalForceImpulse = rb->getTotalForce() * rb->getInvMass() * timeStep; - solverBody->m_externalTorqueImpulse = rb->getTotalTorque() * rb->getInvInertiaTensorWorld() * timeStep; - } - else + // note: probably more aggressive than it needs to be -- might be + // able to get away without one or two of the innermost branches. + if (un <= 0x00010000UL) { - solverBody->m_worldTransform.setIdentity(); - solverBody->internalSetInvMass(btVector3(0, 0, 0)); - solverBody->m_originalBody = 0; - solverBody->m_angularFactor.setValue(1, 1, 1); - solverBody->m_linearFactor.setValue(1, 1, 1); - solverBody->m_linearVelocity.setValue(0, 0, 0); - solverBody->m_angularVelocity.setValue(0, 0, 0); - solverBody->m_externalForceImpulse.setValue(0, 0, 0); - solverBody->m_externalTorqueImpulse.setValue(0, 0, 0); + r ^= (r >> 16); + if (un <= 0x00000100UL) + { + r ^= (r >> 8); + if (un <= 0x00000010UL) + { + r ^= (r >> 4); + if (un <= 0x00000004UL) + { + r ^= (r >> 2); + if (un <= 0x00000002UL) + { + r ^= (r >> 1); + } + } + } + } } + + return (int)(r % un); } -btScalar btSequentialImpulseConstraintSolver::restitutionCurve(btScalar rel_vel, btScalar restitution, btScalar velocityThreshold) +void btSequentialImpulseConstraintSolver::initSolverBody(btSolverBody* solverBody, btCollisionObject* collisionObject, btScalar timeStep) +{ + btSISolverSingleIterationData::initSolverBody(solverBody, collisionObject, timeStep); +} + +btScalar btSequentialImpulseConstraintSolver::restitutionCurveInternal(btScalar rel_vel, btScalar restitution, btScalar velocityThreshold) { //printf("rel_vel =%f\n", rel_vel); if (btFabs(rel_vel) < velocityThreshold) @@ -498,6 +517,10 @@ btScalar btSequentialImpulseConstraintSolver::restitutionCurve(btScalar rel_vel, btScalar rest = restitution * -rel_vel; return rest; } +btScalar btSequentialImpulseConstraintSolver::restitutionCurve(btScalar rel_vel, btScalar restitution, btScalar velocityThreshold) +{ + return btSequentialImpulseConstraintSolver::restitutionCurveInternal(rel_vel, restitution, velocityThreshold); +} void btSequentialImpulseConstraintSolver::applyAnisotropicFriction(btCollisionObject* colObj, btVector3& frictionDirection, int frictionMode) { @@ -513,13 +536,13 @@ void btSequentialImpulseConstraintSolver::applyAnisotropicFriction(btCollisionOb } } -void btSequentialImpulseConstraintSolver::setupFrictionConstraint(btSolverConstraint& solverConstraint, const btVector3& normalAxis, int solverBodyIdA, int solverBodyIdB, btManifoldPoint& cp, const btVector3& rel_pos1, const btVector3& rel_pos2, btCollisionObject* colObj0, btCollisionObject* colObj1, btScalar relaxation, const btContactSolverInfo& infoGlobal, btScalar desiredVelocity, btScalar cfmSlip) +void btSequentialImpulseConstraintSolver::setupFrictionConstraintInternal(btAlignedObjectArray<btSolverBody>& tmpSolverBodyPool, btSolverConstraint& solverConstraint, const btVector3& normalAxis, int solverBodyIdA, int solverBodyIdB, btManifoldPoint& cp, const btVector3& rel_pos1, const btVector3& rel_pos2, btCollisionObject* colObj0, btCollisionObject* colObj1, btScalar relaxation, const btContactSolverInfo& infoGlobal, btScalar desiredVelocity, btScalar cfmSlip) { - btSolverBody& solverBodyA = m_tmpSolverBodyPool[solverBodyIdA]; - btSolverBody& solverBodyB = m_tmpSolverBodyPool[solverBodyIdB]; + btSolverBody& solverBodyA = tmpSolverBodyPool[solverBodyIdA]; + btSolverBody& solverBodyB = tmpSolverBodyPool[solverBodyIdB]; - btRigidBody* body0 = m_tmpSolverBodyPool[solverBodyIdA].m_originalBody; - btRigidBody* bodyA = m_tmpSolverBodyPool[solverBodyIdB].m_originalBody; + btRigidBody* body0 = tmpSolverBodyPool[solverBodyIdA].m_originalBody; + btRigidBody* bodyA = tmpSolverBodyPool[solverBodyIdB].m_originalBody; solverConstraint.m_solverBodyIdA = solverBodyIdA; solverConstraint.m_solverBodyIdB = solverBodyIdB; @@ -605,30 +628,47 @@ void btSequentialImpulseConstraintSolver::setupFrictionConstraint(btSolverConstr } } +void btSequentialImpulseConstraintSolver::setupFrictionConstraint(btSolverConstraint& solverConstraint, const btVector3& normalAxis, int solverBodyIdA, int solverBodyIdB, btManifoldPoint& cp, const btVector3& rel_pos1, const btVector3& rel_pos2, btCollisionObject* colObj0, btCollisionObject* colObj1, btScalar relaxation, const btContactSolverInfo& infoGlobal, btScalar desiredVelocity, btScalar cfmSlip) +{ + btSequentialImpulseConstraintSolver::setupFrictionConstraintInternal(m_tmpSolverBodyPool, solverConstraint, normalAxis, solverBodyIdA, solverBodyIdB, cp, rel_pos1, rel_pos2, colObj0, colObj1, relaxation, infoGlobal, desiredVelocity, cfmSlip); +} + +btSolverConstraint& btSequentialImpulseConstraintSolver::addFrictionConstraintInternal(btAlignedObjectArray<btSolverBody>& tmpSolverBodyPool, btConstraintArray& tmpSolverContactFrictionConstraintPool, const btVector3& normalAxis, int solverBodyIdA, int solverBodyIdB, int frictionIndex, btManifoldPoint& cp, const btVector3& rel_pos1, const btVector3& rel_pos2, btCollisionObject* colObj0, btCollisionObject* colObj1, btScalar relaxation, const btContactSolverInfo& infoGlobal, btScalar desiredVelocity, btScalar cfmSlip) +{ + btSolverConstraint& solverConstraint = tmpSolverContactFrictionConstraintPool.expandNonInitializing(); + solverConstraint.m_frictionIndex = frictionIndex; + setupFrictionConstraintInternal(tmpSolverBodyPool, solverConstraint, normalAxis, solverBodyIdA, solverBodyIdB, cp, rel_pos1, rel_pos2, + colObj0, colObj1, relaxation, infoGlobal, desiredVelocity, cfmSlip); + return solverConstraint; +} + + + btSolverConstraint& btSequentialImpulseConstraintSolver::addFrictionConstraint(const btVector3& normalAxis, int solverBodyIdA, int solverBodyIdB, int frictionIndex, btManifoldPoint& cp, const btVector3& rel_pos1, const btVector3& rel_pos2, btCollisionObject* colObj0, btCollisionObject* colObj1, btScalar relaxation, const btContactSolverInfo& infoGlobal, btScalar desiredVelocity, btScalar cfmSlip) { btSolverConstraint& solverConstraint = m_tmpSolverContactFrictionConstraintPool.expandNonInitializing(); solverConstraint.m_frictionIndex = frictionIndex; setupFrictionConstraint(solverConstraint, normalAxis, solverBodyIdA, solverBodyIdB, cp, rel_pos1, rel_pos2, - colObj0, colObj1, relaxation, infoGlobal, desiredVelocity, cfmSlip); + colObj0, colObj1, relaxation, infoGlobal, desiredVelocity, cfmSlip); return solverConstraint; } -void btSequentialImpulseConstraintSolver::setupTorsionalFrictionConstraint(btSolverConstraint& solverConstraint, const btVector3& normalAxis1, int solverBodyIdA, int solverBodyIdB, - btManifoldPoint& cp, btScalar combinedTorsionalFriction, const btVector3& rel_pos1, const btVector3& rel_pos2, - btCollisionObject* colObj0, btCollisionObject* colObj1, btScalar relaxation, - btScalar desiredVelocity, btScalar cfmSlip) + +void btSequentialImpulseConstraintSolver::setupTorsionalFrictionConstraintInternal(btAlignedObjectArray<btSolverBody>& tmpSolverBodyPool, btSolverConstraint& solverConstraint, const btVector3& normalAxis1, int solverBodyIdA, int solverBodyIdB, + btManifoldPoint& cp, btScalar combinedTorsionalFriction, const btVector3& rel_pos1, const btVector3& rel_pos2, + btCollisionObject* colObj0, btCollisionObject* colObj1, btScalar relaxation, + btScalar desiredVelocity, btScalar cfmSlip) { btVector3 normalAxis(0, 0, 0); solverConstraint.m_contactNormal1 = normalAxis; solverConstraint.m_contactNormal2 = -normalAxis; - btSolverBody& solverBodyA = m_tmpSolverBodyPool[solverBodyIdA]; - btSolverBody& solverBodyB = m_tmpSolverBodyPool[solverBodyIdB]; + btSolverBody& solverBodyA = tmpSolverBodyPool[solverBodyIdA]; + btSolverBody& solverBodyB = tmpSolverBodyPool[solverBodyIdB]; - btRigidBody* body0 = m_tmpSolverBodyPool[solverBodyIdA].m_originalBody; - btRigidBody* bodyA = m_tmpSolverBodyPool[solverBodyIdB].m_originalBody; + btRigidBody* body0 = tmpSolverBodyPool[solverBodyIdA].m_originalBody; + btRigidBody* bodyA = tmpSolverBodyPool[solverBodyIdB].m_originalBody; solverConstraint.m_solverBodyIdA = solverBodyIdA; solverConstraint.m_solverBodyIdB = solverBodyIdB; @@ -677,15 +717,250 @@ void btSequentialImpulseConstraintSolver::setupTorsionalFrictionConstraint(btSol } } + +void btSequentialImpulseConstraintSolver::setupTorsionalFrictionConstraint(btSolverConstraint& solverConstraint, const btVector3& normalAxis1, int solverBodyIdA, int solverBodyIdB, + btManifoldPoint& cp, btScalar combinedTorsionalFriction, const btVector3& rel_pos1, const btVector3& rel_pos2, + btCollisionObject* colObj0, btCollisionObject* colObj1, btScalar relaxation, + btScalar desiredVelocity, btScalar cfmSlip) + +{ + setupTorsionalFrictionConstraintInternal(m_tmpSolverBodyPool, solverConstraint, normalAxis1, solverBodyIdA, solverBodyIdB, + cp, combinedTorsionalFriction, rel_pos1, rel_pos2, + colObj0, colObj1, relaxation, + desiredVelocity, cfmSlip); + +} + +btSolverConstraint& btSequentialImpulseConstraintSolver::addTorsionalFrictionConstraintInternal(btAlignedObjectArray<btSolverBody>& tmpSolverBodyPool, btConstraintArray& tmpSolverContactRollingFrictionConstraintPool, const btVector3& normalAxis, int solverBodyIdA, int solverBodyIdB, int frictionIndex, btManifoldPoint& cp, btScalar combinedTorsionalFriction, const btVector3& rel_pos1, const btVector3& rel_pos2, btCollisionObject* colObj0, btCollisionObject* colObj1, btScalar relaxation, btScalar desiredVelocity, btScalar cfmSlip) +{ + btSolverConstraint& solverConstraint = tmpSolverContactRollingFrictionConstraintPool.expandNonInitializing(); + solverConstraint.m_frictionIndex = frictionIndex; + setupTorsionalFrictionConstraintInternal(tmpSolverBodyPool, solverConstraint, normalAxis, solverBodyIdA, solverBodyIdB, cp, combinedTorsionalFriction, rel_pos1, rel_pos2, + colObj0, colObj1, relaxation, desiredVelocity, cfmSlip); + return solverConstraint; +} + + btSolverConstraint& btSequentialImpulseConstraintSolver::addTorsionalFrictionConstraint(const btVector3& normalAxis, int solverBodyIdA, int solverBodyIdB, int frictionIndex, btManifoldPoint& cp, btScalar combinedTorsionalFriction, const btVector3& rel_pos1, const btVector3& rel_pos2, btCollisionObject* colObj0, btCollisionObject* colObj1, btScalar relaxation, btScalar desiredVelocity, btScalar cfmSlip) { btSolverConstraint& solverConstraint = m_tmpSolverContactRollingFrictionConstraintPool.expandNonInitializing(); solverConstraint.m_frictionIndex = frictionIndex; setupTorsionalFrictionConstraint(solverConstraint, normalAxis, solverBodyIdA, solverBodyIdB, cp, combinedTorsionalFriction, rel_pos1, rel_pos2, - colObj0, colObj1, relaxation, desiredVelocity, cfmSlip); + colObj0, colObj1, relaxation, desiredVelocity, cfmSlip); return solverConstraint; } +int btSISolverSingleIterationData::getOrInitSolverBody(btCollisionObject & body, btScalar timeStep) +{ +#if BT_THREADSAFE + int solverBodyId = -1; + bool isRigidBodyType = btRigidBody::upcast(&body) != NULL; + if (isRigidBodyType && !body.isStaticOrKinematicObject()) + { + // dynamic body + // Dynamic bodies can only be in one island, so it's safe to write to the companionId + solverBodyId = body.getCompanionId(); + if (solverBodyId < 0) + { + solverBodyId = m_tmpSolverBodyPool.size(); + btSolverBody& solverBody = m_tmpSolverBodyPool.expand(); + initSolverBody(&solverBody, &body, timeStep); + body.setCompanionId(solverBodyId); + } + } + else if (isRigidBodyType && body.isKinematicObject()) + { + // + // NOTE: must test for kinematic before static because some kinematic objects also + // identify as "static" + // + // Kinematic bodies can be in multiple islands at once, so it is a + // race condition to write to them, so we use an alternate method + // to record the solverBodyId + int uniqueId = body.getWorldArrayIndex(); + const int INVALID_SOLVER_BODY_ID = -1; + if (uniqueId >= m_kinematicBodyUniqueIdToSolverBodyTable.size()) + { + m_kinematicBodyUniqueIdToSolverBodyTable.resize(uniqueId + 1, INVALID_SOLVER_BODY_ID); + } + solverBodyId = m_kinematicBodyUniqueIdToSolverBodyTable[uniqueId]; + // if no table entry yet, + if (solverBodyId == INVALID_SOLVER_BODY_ID) + { + // create a table entry for this body + solverBodyId = m_tmpSolverBodyPool.size(); + btSolverBody& solverBody = m_tmpSolverBodyPool.expand(); + initSolverBody(&solverBody, &body, timeStep); + m_kinematicBodyUniqueIdToSolverBodyTable[uniqueId] = solverBodyId; + } + } + else + { + bool isMultiBodyType = (body.getInternalType() & btCollisionObject::CO_FEATHERSTONE_LINK); + // Incorrectly set collision object flags can degrade performance in various ways. + if (!isMultiBodyType) + { + btAssert(body.isStaticOrKinematicObject()); + } + //it could be a multibody link collider + // all fixed bodies (inf mass) get mapped to a single solver id + if (m_fixedBodyId < 0) + { + m_fixedBodyId = m_tmpSolverBodyPool.size(); + btSolverBody& fixedBody = m_tmpSolverBodyPool.expand(); + initSolverBody(&fixedBody, 0, timeStep); + } + solverBodyId = m_fixedBodyId; + } + btAssert(solverBodyId >= 0 && solverBodyId < m_tmpSolverBodyPool.size()); + return solverBodyId; +#else // BT_THREADSAFE + + int solverBodyIdA = -1; + + if (body.getCompanionId() >= 0) + { + //body has already been converted + solverBodyIdA = body.getCompanionId(); + btAssert(solverBodyIdA < m_tmpSolverBodyPool.size()); + } + else + { + btRigidBody* rb = btRigidBody::upcast(&body); + //convert both active and kinematic objects (for their velocity) + if (rb && (rb->getInvMass() || rb->isKinematicObject())) + { + solverBodyIdA = m_tmpSolverBodyPool.size(); + btSolverBody& solverBody = m_tmpSolverBodyPool.expand(); + initSolverBody(&solverBody, &body, timeStep); + body.setCompanionId(solverBodyIdA); + } + else + { + if (m_fixedBodyId < 0) + { + m_fixedBodyId = m_tmpSolverBodyPool.size(); + btSolverBody& fixedBody = m_tmpSolverBodyPool.expand(); + initSolverBody(&fixedBody, 0, timeStep); + } + return m_fixedBodyId; + // return 0;//assume first one is a fixed solver body + } + } + + return solverBodyIdA; +#endif // BT_THREADSAFE +} +void btSISolverSingleIterationData::initSolverBody(btSolverBody * solverBody, btCollisionObject * collisionObject, btScalar timeStep) +{ + btRigidBody* rb = collisionObject ? btRigidBody::upcast(collisionObject) : 0; + + solverBody->internalGetDeltaLinearVelocity().setValue(0.f, 0.f, 0.f); + solverBody->internalGetDeltaAngularVelocity().setValue(0.f, 0.f, 0.f); + solverBody->internalGetPushVelocity().setValue(0.f, 0.f, 0.f); + solverBody->internalGetTurnVelocity().setValue(0.f, 0.f, 0.f); + + if (rb) + { + solverBody->m_worldTransform = rb->getWorldTransform(); + solverBody->internalSetInvMass(btVector3(rb->getInvMass(), rb->getInvMass(), rb->getInvMass()) * rb->getLinearFactor()); + solverBody->m_originalBody = rb; + solverBody->m_angularFactor = rb->getAngularFactor(); + solverBody->m_linearFactor = rb->getLinearFactor(); + solverBody->m_linearVelocity = rb->getLinearVelocity(); + solverBody->m_angularVelocity = rb->getAngularVelocity(); + solverBody->m_externalForceImpulse = rb->getTotalForce() * rb->getInvMass() * timeStep; + solverBody->m_externalTorqueImpulse = rb->getTotalTorque() * rb->getInvInertiaTensorWorld() * timeStep; + } + else + { + solverBody->m_worldTransform.setIdentity(); + solverBody->internalSetInvMass(btVector3(0, 0, 0)); + solverBody->m_originalBody = 0; + solverBody->m_angularFactor.setValue(1, 1, 1); + solverBody->m_linearFactor.setValue(1, 1, 1); + solverBody->m_linearVelocity.setValue(0, 0, 0); + solverBody->m_angularVelocity.setValue(0, 0, 0); + solverBody->m_externalForceImpulse.setValue(0, 0, 0); + solverBody->m_externalTorqueImpulse.setValue(0, 0, 0); + } +} + +int btSISolverSingleIterationData::getSolverBody(btCollisionObject& body) const +{ +#if BT_THREADSAFE + int solverBodyId = -1; + bool isRigidBodyType = btRigidBody::upcast(&body) != NULL; + if (isRigidBodyType && !body.isStaticOrKinematicObject()) + { + // dynamic body + // Dynamic bodies can only be in one island, so it's safe to write to the companionId + solverBodyId = body.getCompanionId(); + btAssert(solverBodyId >= 0); + } + else if (isRigidBodyType && body.isKinematicObject()) + { + // + // NOTE: must test for kinematic before static because some kinematic objects also + // identify as "static" + // + // Kinematic bodies can be in multiple islands at once, so it is a + // race condition to write to them, so we use an alternate method + // to record the solverBodyId + int uniqueId = body.getWorldArrayIndex(); + const int INVALID_SOLVER_BODY_ID = -1; + if (uniqueId >= m_kinematicBodyUniqueIdToSolverBodyTable.size()) + { + m_kinematicBodyUniqueIdToSolverBodyTable.resize(uniqueId + 1, INVALID_SOLVER_BODY_ID); + } + solverBodyId = m_kinematicBodyUniqueIdToSolverBodyTable[uniqueId]; + btAssert(solverBodyId != INVALID_SOLVER_BODY_ID); + } + else + { + bool isMultiBodyType = (body.getInternalType() & btCollisionObject::CO_FEATHERSTONE_LINK); + // Incorrectly set collision object flags can degrade performance in various ways. + if (!isMultiBodyType) + { + btAssert(body.isStaticOrKinematicObject()); + } + btAssert(m_fixedBodyId >= 0); + solverBodyId = m_fixedBodyId; + } + btAssert(solverBodyId >= 0 && solverBodyId < m_tmpSolverBodyPool.size()); + return solverBodyId; +#else // BT_THREADSAFE + int solverBodyIdA = -1; + + if (body.getCompanionId() >= 0) + { + //body has already been converted + solverBodyIdA = body.getCompanionId(); + btAssert(solverBodyIdA < m_tmpSolverBodyPool.size()); + } + else + { + btRigidBody* rb = btRigidBody::upcast(&body); + //convert both active and kinematic objects (for their velocity) + if (rb && (rb->getInvMass() || rb->isKinematicObject())) + { + btAssert(0); + } + else + { + if (m_fixedBodyId < 0) + { + btAssert(0); + } + return m_fixedBodyId; + // return 0;//assume first one is a fixed solver body + } + } + + return solverBodyIdA; +#endif // BT_THREADSAFE +} + int btSequentialImpulseConstraintSolver::getOrInitSolverBody(btCollisionObject& body, btScalar timeStep) { #if BT_THREADSAFE @@ -789,17 +1064,20 @@ int btSequentialImpulseConstraintSolver::getOrInitSolverBody(btCollisionObject& } #include <stdio.h> -void btSequentialImpulseConstraintSolver::setupContactConstraint(btSolverConstraint& solverConstraint, - int solverBodyIdA, int solverBodyIdB, - btManifoldPoint& cp, const btContactSolverInfo& infoGlobal, - btScalar& relaxation, - const btVector3& rel_pos1, const btVector3& rel_pos2) + + +void btSequentialImpulseConstraintSolver::setupContactConstraintInternal(btSISolverSingleIterationData& siData, + btSolverConstraint& solverConstraint, + int solverBodyIdA, int solverBodyIdB, + btManifoldPoint& cp, const btContactSolverInfo& infoGlobal, + btScalar& relaxation, + const btVector3& rel_pos1, const btVector3& rel_pos2) { // const btVector3& pos1 = cp.getPositionWorldOnA(); // const btVector3& pos2 = cp.getPositionWorldOnB(); - btSolverBody* bodyA = &m_tmpSolverBodyPool[solverBodyIdA]; - btSolverBody* bodyB = &m_tmpSolverBodyPool[solverBodyIdB]; + btSolverBody* bodyA = &siData.m_tmpSolverBodyPool[solverBodyIdA]; + btSolverBody* bodyB = &siData.m_tmpSolverBodyPool[solverBodyIdB]; btRigidBody* rb0 = bodyA->m_originalBody; btRigidBody* rb1 = bodyB->m_originalBody; @@ -906,7 +1184,7 @@ void btSequentialImpulseConstraintSolver::setupContactConstraint(btSolverConstra solverConstraint.m_friction = cp.m_combinedFriction; - restitution = restitutionCurve(rel_vel, cp.m_combinedRestitution, infoGlobal.m_restitutionVelocityThreshold); + restitution = btSequentialImpulseConstraintSolver::restitutionCurveInternal(rel_vel, cp.m_combinedRestitution, infoGlobal.m_restitutionVelocityThreshold); if (restitution <= btScalar(0.)) { restitution = 0.f; @@ -920,7 +1198,7 @@ void btSequentialImpulseConstraintSolver::setupContactConstraint(btSolverConstra if (rb0) bodyA->internalApplyImpulse(solverConstraint.m_contactNormal1 * bodyA->internalGetInvMass(), solverConstraint.m_angularComponentA, solverConstraint.m_appliedImpulse); if (rb1) - bodyB->internalApplyImpulse(-solverConstraint.m_contactNormal2 * bodyB->internalGetInvMass() , -solverConstraint.m_angularComponentB, -(btScalar)solverConstraint.m_appliedImpulse); + bodyB->internalApplyImpulse(-solverConstraint.m_contactNormal2 * bodyB->internalGetInvMass(), -solverConstraint.m_angularComponentB, -(btScalar)solverConstraint.m_appliedImpulse); } else { @@ -974,25 +1252,59 @@ void btSequentialImpulseConstraintSolver::setupContactConstraint(btSolverConstra } } -void btSequentialImpulseConstraintSolver::setFrictionConstraintImpulse(btSolverConstraint& solverConstraint, - int solverBodyIdA, int solverBodyIdB, - btManifoldPoint& cp, const btContactSolverInfo& infoGlobal) +void btSequentialImpulseConstraintSolver::setupContactConstraint(btSolverConstraint& solverConstraint, + int solverBodyIdA, int solverBodyIdB, + btManifoldPoint& cp, const btContactSolverInfo& infoGlobal, + btScalar& relaxation, + const btVector3& rel_pos1, const btVector3& rel_pos2) +{ + btSISolverSingleIterationData siData(m_tmpSolverBodyPool, + m_tmpSolverContactConstraintPool, + m_tmpSolverNonContactConstraintPool, + m_tmpSolverContactFrictionConstraintPool, + m_tmpSolverContactRollingFrictionConstraintPool, + m_orderTmpConstraintPool, + m_orderNonContactConstraintPool, + m_orderFrictionConstraintPool, + m_tmpConstraintSizesPool, + m_resolveSingleConstraintRowGeneric, + m_resolveSingleConstraintRowLowerLimit, + m_resolveSplitPenetrationImpulse, + m_kinematicBodyUniqueIdToSolverBodyTable, + m_btSeed2, + m_fixedBodyId, + m_maxOverrideNumSolverIterations + ); + + + setupContactConstraintInternal(siData, solverConstraint, + solverBodyIdA, solverBodyIdB, + cp, infoGlobal, + relaxation, + rel_pos1, rel_pos2); +} + + +void btSequentialImpulseConstraintSolver::setFrictionConstraintImpulseInternal(btAlignedObjectArray<btSolverBody>& tmpSolverBodyPool, btConstraintArray& tmpSolverContactFrictionConstraintPool, + btSolverConstraint& solverConstraint, + int solverBodyIdA, int solverBodyIdB, + btManifoldPoint& cp, const btContactSolverInfo& infoGlobal) { - btSolverBody* bodyA = &m_tmpSolverBodyPool[solverBodyIdA]; - btSolverBody* bodyB = &m_tmpSolverBodyPool[solverBodyIdB]; + btSolverBody* bodyA = &tmpSolverBodyPool[solverBodyIdA]; + btSolverBody* bodyB = &tmpSolverBodyPool[solverBodyIdB]; btRigidBody* rb0 = bodyA->m_originalBody; btRigidBody* rb1 = bodyB->m_originalBody; { - btSolverConstraint& frictionConstraint1 = m_tmpSolverContactFrictionConstraintPool[solverConstraint.m_frictionIndex]; + btSolverConstraint& frictionConstraint1 = tmpSolverContactFrictionConstraintPool[solverConstraint.m_frictionIndex]; if (infoGlobal.m_solverMode & SOLVER_USE_WARMSTARTING) { frictionConstraint1.m_appliedImpulse = cp.m_appliedImpulseLateral1 * infoGlobal.m_warmstartingFactor; if (rb0) - bodyA->internalApplyImpulse(frictionConstraint1.m_contactNormal1 * rb0->getInvMass() , frictionConstraint1.m_angularComponentA, frictionConstraint1.m_appliedImpulse); + bodyA->internalApplyImpulse(frictionConstraint1.m_contactNormal1 * rb0->getInvMass(), frictionConstraint1.m_angularComponentA, frictionConstraint1.m_appliedImpulse); if (rb1) - bodyB->internalApplyImpulse(-frictionConstraint1.m_contactNormal2 * rb1->getInvMass() , -frictionConstraint1.m_angularComponentB, -(btScalar)frictionConstraint1.m_appliedImpulse); + bodyB->internalApplyImpulse(-frictionConstraint1.m_contactNormal2 * rb1->getInvMass(), -frictionConstraint1.m_angularComponentB, -(btScalar)frictionConstraint1.m_appliedImpulse); } else { @@ -1002,7 +1314,7 @@ void btSequentialImpulseConstraintSolver::setFrictionConstraintImpulse(btSolverC if ((infoGlobal.m_solverMode & SOLVER_USE_2_FRICTION_DIRECTIONS)) { - btSolverConstraint& frictionConstraint2 = m_tmpSolverContactFrictionConstraintPool[solverConstraint.m_frictionIndex + 1]; + btSolverConstraint& frictionConstraint2 = tmpSolverContactFrictionConstraintPool[solverConstraint.m_frictionIndex + 1]; if (infoGlobal.m_solverMode & SOLVER_USE_WARMSTARTING) { frictionConstraint2.m_appliedImpulse = cp.m_appliedImpulseLateral2 * infoGlobal.m_warmstartingFactor; @@ -1018,21 +1330,31 @@ void btSequentialImpulseConstraintSolver::setFrictionConstraintImpulse(btSolverC } } -void btSequentialImpulseConstraintSolver::convertContact(btPersistentManifold* manifold, const btContactSolverInfo& infoGlobal) +void btSequentialImpulseConstraintSolver::setFrictionConstraintImpulse(btSolverConstraint& solverConstraint, + int solverBodyIdA, int solverBodyIdB, + btManifoldPoint& cp, const btContactSolverInfo& infoGlobal) +{ + setFrictionConstraintImpulseInternal(m_tmpSolverBodyPool, m_tmpSolverContactFrictionConstraintPool, + solverConstraint, + solverBodyIdA, solverBodyIdB, + cp, infoGlobal); + +} +void btSequentialImpulseConstraintSolver::convertContactInternal(btSISolverSingleIterationData& siData, btPersistentManifold* manifold, const btContactSolverInfo& infoGlobal) { btCollisionObject *colObj0 = 0, *colObj1 = 0; colObj0 = (btCollisionObject*)manifold->getBody0(); colObj1 = (btCollisionObject*)manifold->getBody1(); - int solverBodyIdA = getOrInitSolverBody(*colObj0, infoGlobal.m_timeStep); - int solverBodyIdB = getOrInitSolverBody(*colObj1, infoGlobal.m_timeStep); + int solverBodyIdA = siData.getOrInitSolverBody(*colObj0, infoGlobal.m_timeStep); + int solverBodyIdB = siData.getOrInitSolverBody(*colObj1, infoGlobal.m_timeStep); // btRigidBody* bodyA = btRigidBody::upcast(colObj0); // btRigidBody* bodyB = btRigidBody::upcast(colObj1); - btSolverBody* solverBodyA = &m_tmpSolverBodyPool[solverBodyIdA]; - btSolverBody* solverBodyB = &m_tmpSolverBodyPool[solverBodyIdB]; + btSolverBody* solverBodyA = &siData.m_tmpSolverBodyPool[solverBodyIdA]; + btSolverBody* solverBodyB = &siData.m_tmpSolverBodyPool[solverBodyIdB]; ///avoid collision response between two static objects if (!solverBodyA || (solverBodyA->m_invMass.fuzzyZero() && (!solverBodyB || solverBodyB->m_invMass.fuzzyZero()))) @@ -1049,8 +1371,8 @@ void btSequentialImpulseConstraintSolver::convertContact(btPersistentManifold* m btVector3 rel_pos2; btScalar relaxation; - int frictionIndex = m_tmpSolverContactConstraintPool.size(); - btSolverConstraint& solverConstraint = m_tmpSolverContactConstraintPool.expandNonInitializing(); + int frictionIndex = siData.m_tmpSolverContactConstraintPool.size(); + btSolverConstraint& solverConstraint = siData.m_tmpSolverContactConstraintPool.expandNonInitializing(); solverConstraint.m_solverBodyIdA = solverBodyIdA; solverConstraint.m_solverBodyIdB = solverBodyIdB; @@ -1071,16 +1393,20 @@ void btSequentialImpulseConstraintSolver::convertContact(btPersistentManifold* m btVector3 vel = vel1 - vel2; btScalar rel_vel = cp.m_normalWorldOnB.dot(vel); - setupContactConstraint(solverConstraint, solverBodyIdA, solverBodyIdB, cp, infoGlobal, relaxation, rel_pos1, rel_pos2); + setupContactConstraintInternal(siData, solverConstraint, solverBodyIdA, solverBodyIdB, cp, infoGlobal, relaxation, rel_pos1, rel_pos2); /////setup the friction constraints - solverConstraint.m_frictionIndex = m_tmpSolverContactFrictionConstraintPool.size(); + solverConstraint.m_frictionIndex = siData.m_tmpSolverContactFrictionConstraintPool.size(); if ((cp.m_combinedRollingFriction > 0.f) && (rollingFriction > 0)) { { - addTorsionalFrictionConstraint(cp.m_normalWorldOnB, solverBodyIdA, solverBodyIdB, frictionIndex, cp, cp.m_combinedSpinningFriction, rel_pos1, rel_pos2, colObj0, colObj1, relaxation); + + btSequentialImpulseConstraintSolver::addTorsionalFrictionConstraintInternal(siData.m_tmpSolverBodyPool, + siData.m_tmpSolverContactRollingFrictionConstraintPool, + cp.m_normalWorldOnB, solverBodyIdA, solverBodyIdB, frictionIndex, cp, cp.m_combinedSpinningFriction, rel_pos1, rel_pos2, colObj0, colObj1, relaxation); + btVector3 axis0, axis1; btPlaneSpace1(cp.m_normalWorldOnB, axis0, axis1); axis0.normalize(); @@ -1091,11 +1417,17 @@ void btSequentialImpulseConstraintSolver::convertContact(btPersistentManifold* m applyAnisotropicFriction(colObj0, axis1, btCollisionObject::CF_ANISOTROPIC_ROLLING_FRICTION); applyAnisotropicFriction(colObj1, axis1, btCollisionObject::CF_ANISOTROPIC_ROLLING_FRICTION); if (axis0.length() > 0.001) - addTorsionalFrictionConstraint(axis0, solverBodyIdA, solverBodyIdB, frictionIndex, cp, - cp.m_combinedRollingFriction, rel_pos1, rel_pos2, colObj0, colObj1, relaxation); + { + btSequentialImpulseConstraintSolver::addTorsionalFrictionConstraintInternal(siData.m_tmpSolverBodyPool, + siData.m_tmpSolverContactRollingFrictionConstraintPool, axis0, solverBodyIdA, solverBodyIdB, frictionIndex, cp, + cp.m_combinedRollingFriction, rel_pos1, rel_pos2, colObj0, colObj1, relaxation); + } if (axis1.length() > 0.001) - addTorsionalFrictionConstraint(axis1, solverBodyIdA, solverBodyIdB, frictionIndex, cp, - cp.m_combinedRollingFriction, rel_pos1, rel_pos2, colObj0, colObj1, relaxation); + { + btSequentialImpulseConstraintSolver::addTorsionalFrictionConstraintInternal(siData.m_tmpSolverBodyPool, + siData.m_tmpSolverContactRollingFrictionConstraintPool, axis1, solverBodyIdA, solverBodyIdB, frictionIndex, cp, + cp.m_combinedRollingFriction, rel_pos1, rel_pos2, colObj0, colObj1, relaxation); + } } } @@ -1124,7 +1456,8 @@ void btSequentialImpulseConstraintSolver::convertContact(btPersistentManifold* m cp.m_lateralFrictionDir1 *= 1.f / btSqrt(lat_rel_vel); applyAnisotropicFriction(colObj0, cp.m_lateralFrictionDir1, btCollisionObject::CF_ANISOTROPIC_FRICTION); applyAnisotropicFriction(colObj1, cp.m_lateralFrictionDir1, btCollisionObject::CF_ANISOTROPIC_FRICTION); - addFrictionConstraint(cp.m_lateralFrictionDir1, solverBodyIdA, solverBodyIdB, frictionIndex, cp, rel_pos1, rel_pos2, colObj0, colObj1, relaxation, infoGlobal); + btSequentialImpulseConstraintSolver::addFrictionConstraintInternal(siData.m_tmpSolverBodyPool, siData.m_tmpSolverContactFrictionConstraintPool, + cp.m_lateralFrictionDir1, solverBodyIdA, solverBodyIdB, frictionIndex, cp, rel_pos1, rel_pos2, colObj0, colObj1, relaxation, infoGlobal); if ((infoGlobal.m_solverMode & SOLVER_USE_2_FRICTION_DIRECTIONS)) { @@ -1132,7 +1465,8 @@ void btSequentialImpulseConstraintSolver::convertContact(btPersistentManifold* m cp.m_lateralFrictionDir2.normalize(); //?? applyAnisotropicFriction(colObj0, cp.m_lateralFrictionDir2, btCollisionObject::CF_ANISOTROPIC_FRICTION); applyAnisotropicFriction(colObj1, cp.m_lateralFrictionDir2, btCollisionObject::CF_ANISOTROPIC_FRICTION); - addFrictionConstraint(cp.m_lateralFrictionDir2, solverBodyIdA, solverBodyIdB, frictionIndex, cp, rel_pos1, rel_pos2, colObj0, colObj1, relaxation, infoGlobal); + btSequentialImpulseConstraintSolver::addFrictionConstraintInternal(siData.m_tmpSolverBodyPool, siData.m_tmpSolverContactFrictionConstraintPool, + cp.m_lateralFrictionDir2, solverBodyIdA, solverBodyIdB, frictionIndex, cp, rel_pos1, rel_pos2, colObj0, colObj1, relaxation, infoGlobal); } } else @@ -1141,13 +1475,15 @@ void btSequentialImpulseConstraintSolver::convertContact(btPersistentManifold* m applyAnisotropicFriction(colObj0, cp.m_lateralFrictionDir1, btCollisionObject::CF_ANISOTROPIC_FRICTION); applyAnisotropicFriction(colObj1, cp.m_lateralFrictionDir1, btCollisionObject::CF_ANISOTROPIC_FRICTION); - addFrictionConstraint(cp.m_lateralFrictionDir1, solverBodyIdA, solverBodyIdB, frictionIndex, cp, rel_pos1, rel_pos2, colObj0, colObj1, relaxation, infoGlobal); + btSequentialImpulseConstraintSolver::addFrictionConstraintInternal(siData.m_tmpSolverBodyPool, siData.m_tmpSolverContactFrictionConstraintPool, + cp.m_lateralFrictionDir1, solverBodyIdA, solverBodyIdB, frictionIndex, cp, rel_pos1, rel_pos2, colObj0, colObj1, relaxation, infoGlobal); if ((infoGlobal.m_solverMode & SOLVER_USE_2_FRICTION_DIRECTIONS)) { applyAnisotropicFriction(colObj0, cp.m_lateralFrictionDir2, btCollisionObject::CF_ANISOTROPIC_FRICTION); applyAnisotropicFriction(colObj1, cp.m_lateralFrictionDir2, btCollisionObject::CF_ANISOTROPIC_FRICTION); - addFrictionConstraint(cp.m_lateralFrictionDir2, solverBodyIdA, solverBodyIdB, frictionIndex, cp, rel_pos1, rel_pos2, colObj0, colObj1, relaxation, infoGlobal); + btSequentialImpulseConstraintSolver::addFrictionConstraintInternal(siData.m_tmpSolverBodyPool, siData.m_tmpSolverContactFrictionConstraintPool, + cp.m_lateralFrictionDir2, solverBodyIdA, solverBodyIdB, frictionIndex, cp, rel_pos1, rel_pos2, colObj0, colObj1, relaxation, infoGlobal); } if ((infoGlobal.m_solverMode & SOLVER_USE_2_FRICTION_DIRECTIONS) && (infoGlobal.m_solverMode & SOLVER_DISABLE_VELOCITY_DEPENDENT_FRICTION_DIRECTION)) @@ -1158,16 +1494,44 @@ void btSequentialImpulseConstraintSolver::convertContact(btPersistentManifold* m } else { - addFrictionConstraint(cp.m_lateralFrictionDir1, solverBodyIdA, solverBodyIdB, frictionIndex, cp, rel_pos1, rel_pos2, colObj0, colObj1, relaxation, infoGlobal, cp.m_contactMotion1, cp.m_frictionCFM); + btSequentialImpulseConstraintSolver::addFrictionConstraintInternal(siData.m_tmpSolverBodyPool, siData.m_tmpSolverContactFrictionConstraintPool, + cp.m_lateralFrictionDir1, solverBodyIdA, solverBodyIdB, frictionIndex, cp, rel_pos1, rel_pos2, colObj0, colObj1, relaxation, infoGlobal, cp.m_contactMotion1, cp.m_frictionCFM); if ((infoGlobal.m_solverMode & SOLVER_USE_2_FRICTION_DIRECTIONS)) - addFrictionConstraint(cp.m_lateralFrictionDir2, solverBodyIdA, solverBodyIdB, frictionIndex, cp, rel_pos1, rel_pos2, colObj0, colObj1, relaxation, infoGlobal, cp.m_contactMotion2, cp.m_frictionCFM); + { + btSequentialImpulseConstraintSolver::addFrictionConstraintInternal(siData.m_tmpSolverBodyPool, siData.m_tmpSolverContactFrictionConstraintPool, + cp.m_lateralFrictionDir2, solverBodyIdA, solverBodyIdB, frictionIndex, cp, rel_pos1, rel_pos2, colObj0, colObj1, relaxation, infoGlobal, cp.m_contactMotion2, cp.m_frictionCFM); + } } - setFrictionConstraintImpulse(solverConstraint, solverBodyIdA, solverBodyIdB, cp, infoGlobal); + btSequentialImpulseConstraintSolver::setFrictionConstraintImpulseInternal( + siData.m_tmpSolverBodyPool, siData.m_tmpSolverContactFrictionConstraintPool, + solverConstraint, solverBodyIdA, solverBodyIdB, cp, infoGlobal); } } } +void btSequentialImpulseConstraintSolver::convertContact(btPersistentManifold* manifold, const btContactSolverInfo& infoGlobal) +{ + btSISolverSingleIterationData siData(m_tmpSolverBodyPool, + m_tmpSolverContactConstraintPool, + m_tmpSolverNonContactConstraintPool, + m_tmpSolverContactFrictionConstraintPool, + m_tmpSolverContactRollingFrictionConstraintPool, + m_orderTmpConstraintPool, + m_orderNonContactConstraintPool, + m_orderFrictionConstraintPool, + m_tmpConstraintSizesPool, + m_resolveSingleConstraintRowGeneric, + m_resolveSingleConstraintRowLowerLimit, + m_resolveSplitPenetrationImpulse, + m_kinematicBodyUniqueIdToSolverBodyTable, + m_btSeed2, + m_fixedBodyId, + m_maxOverrideNumSolverIterations); + + btSequentialImpulseConstraintSolver::convertContactInternal(siData, manifold, infoGlobal); +} + void btSequentialImpulseConstraintSolver::convertContacts(btPersistentManifold** manifoldPtr, int numManifolds, const btContactSolverInfo& infoGlobal) { int i; @@ -1181,22 +1545,24 @@ void btSequentialImpulseConstraintSolver::convertContacts(btPersistentManifold** } } -void btSequentialImpulseConstraintSolver::convertJoint(btSolverConstraint* currentConstraintRow, - btTypedConstraint* constraint, - const btTypedConstraint::btConstraintInfo1& info1, - int solverBodyIdA, - int solverBodyIdB, - const btContactSolverInfo& infoGlobal) +void btSequentialImpulseConstraintSolver::convertJointInternal(btAlignedObjectArray<btSolverBody>& tmpSolverBodyPool, + int& maxOverrideNumSolverIterations, + btSolverConstraint* currentConstraintRow, + btTypedConstraint* constraint, + const btTypedConstraint::btConstraintInfo1& info1, + int solverBodyIdA, + int solverBodyIdB, + const btContactSolverInfo& infoGlobal) { const btRigidBody& rbA = constraint->getRigidBodyA(); const btRigidBody& rbB = constraint->getRigidBodyB(); - const btSolverBody* bodyAPtr = &m_tmpSolverBodyPool[solverBodyIdA]; - const btSolverBody* bodyBPtr = &m_tmpSolverBodyPool[solverBodyIdB]; + const btSolverBody* bodyAPtr = &tmpSolverBodyPool[solverBodyIdA]; + const btSolverBody* bodyBPtr = &tmpSolverBodyPool[solverBodyIdB]; int overrideNumSolverIterations = constraint->getOverrideNumSolverIterations() > 0 ? constraint->getOverrideNumSolverIterations() : infoGlobal.m_numIterations; - if (overrideNumSolverIterations > m_maxOverrideNumSolverIterations) - m_maxOverrideNumSolverIterations = overrideNumSolverIterations; + if (overrideNumSolverIterations > maxOverrideNumSolverIterations) + maxOverrideNumSolverIterations = overrideNumSolverIterations; for (int j = 0; j < info1.m_numConstraintRows; j++) { @@ -1236,7 +1602,7 @@ void btSequentialImpulseConstraintSolver::convertJoint(btSolverConstraint* curre info2.m_J2linearAxis = currentConstraintRow->m_contactNormal2; info2.m_J2angularAxis = currentConstraintRow->m_relpos2CrossNormal; info2.rowskip = sizeof(btSolverConstraint) / sizeof(btScalar); //check this - ///the size of btSolverConstraint needs be a multiple of btScalar + ///the size of btSolverConstraint needs be a multiple of btScalar btAssert(info2.rowskip * sizeof(btScalar) == sizeof(btSolverConstraint)); info2.m_constraintError = ¤tConstraintRow->m_rhs; currentConstraintRow->m_cfm = infoGlobal.m_globalCfm; @@ -1313,7 +1679,16 @@ void btSequentialImpulseConstraintSolver::convertJoint(btSolverConstraint* curre } } -void btSequentialImpulseConstraintSolver::convertJoints(btTypedConstraint** constraints, int numConstraints, const btContactSolverInfo& infoGlobal) +void btSequentialImpulseConstraintSolver::convertJoint(btSolverConstraint* currentConstraintRow, + btTypedConstraint* constraint, + const btTypedConstraint::btConstraintInfo1& info1, + int solverBodyIdA, + int solverBodyIdB, + const btContactSolverInfo& infoGlobal) +{ +} + +void btSequentialImpulseConstraintSolver::convertJointsInternal(btSISolverSingleIterationData& siData, btTypedConstraint** constraints, int numConstraints, const btContactSolverInfo& infoGlobal) { BT_PROFILE("convertJoints"); for (int j = 0; j < numConstraints; j++) @@ -1325,11 +1700,11 @@ void btSequentialImpulseConstraintSolver::convertJoints(btTypedConstraint** cons int totalNumRows = 0; - m_tmpConstraintSizesPool.resizeNoInitialize(numConstraints); + siData.m_tmpConstraintSizesPool.resizeNoInitialize(numConstraints); //calculate the total number of contraint rows for (int i = 0; i < numConstraints; i++) { - btTypedConstraint::btConstraintInfo1& info1 = m_tmpConstraintSizesPool[i]; + btTypedConstraint::btConstraintInfo1& info1 = siData.m_tmpConstraintSizesPool[i]; btJointFeedback* fb = constraints[i]->getJointFeedback(); if (fb) { @@ -1350,34 +1725,58 @@ void btSequentialImpulseConstraintSolver::convertJoints(btTypedConstraint** cons } totalNumRows += info1.m_numConstraintRows; } - m_tmpSolverNonContactConstraintPool.resizeNoInitialize(totalNumRows); + siData.m_tmpSolverNonContactConstraintPool.resizeNoInitialize(totalNumRows); ///setup the btSolverConstraints int currentRow = 0; for (int i = 0; i < numConstraints; i++) { - const btTypedConstraint::btConstraintInfo1& info1 = m_tmpConstraintSizesPool[i]; + const btTypedConstraint::btConstraintInfo1& info1 = siData.m_tmpConstraintSizesPool[i]; if (info1.m_numConstraintRows) { btAssert(currentRow < totalNumRows); - btSolverConstraint* currentConstraintRow = &m_tmpSolverNonContactConstraintPool[currentRow]; + btSolverConstraint* currentConstraintRow = &siData.m_tmpSolverNonContactConstraintPool[currentRow]; btTypedConstraint* constraint = constraints[i]; btRigidBody& rbA = constraint->getRigidBodyA(); btRigidBody& rbB = constraint->getRigidBodyB(); - int solverBodyIdA = getOrInitSolverBody(rbA, infoGlobal.m_timeStep); - int solverBodyIdB = getOrInitSolverBody(rbB, infoGlobal.m_timeStep); + int solverBodyIdA = siData.getOrInitSolverBody(rbA, infoGlobal.m_timeStep); + int solverBodyIdB = siData.getOrInitSolverBody(rbB, infoGlobal.m_timeStep); - convertJoint(currentConstraintRow, constraint, info1, solverBodyIdA, solverBodyIdB, infoGlobal); + convertJointInternal(siData.m_tmpSolverBodyPool, siData.m_maxOverrideNumSolverIterations, + currentConstraintRow, constraint, info1, solverBodyIdA, solverBodyIdB, infoGlobal); } currentRow += info1.m_numConstraintRows; } } -void btSequentialImpulseConstraintSolver::convertBodies(btCollisionObject** bodies, int numBodies, const btContactSolverInfo& infoGlobal) +void btSequentialImpulseConstraintSolver::convertJoints(btTypedConstraint** constraints, int numConstraints, const btContactSolverInfo& infoGlobal) +{ + btSISolverSingleIterationData siData(m_tmpSolverBodyPool, + m_tmpSolverContactConstraintPool, + m_tmpSolverNonContactConstraintPool, + m_tmpSolverContactFrictionConstraintPool, + m_tmpSolverContactRollingFrictionConstraintPool, + m_orderTmpConstraintPool, + m_orderNonContactConstraintPool, + m_orderFrictionConstraintPool, + m_tmpConstraintSizesPool, + m_resolveSingleConstraintRowGeneric, + m_resolveSingleConstraintRowLowerLimit, + m_resolveSplitPenetrationImpulse, + m_kinematicBodyUniqueIdToSolverBodyTable, + m_btSeed2, + m_fixedBodyId, + m_maxOverrideNumSolverIterations); + + convertJointsInternal(siData, constraints, numConstraints, infoGlobal); +} + + +void btSequentialImpulseConstraintSolver::convertBodiesInternal(btSISolverSingleIterationData& siData, btCollisionObject** bodies, int numBodies, const btContactSolverInfo& infoGlobal) { BT_PROFILE("convertBodies"); for (int i = 0; i < numBodies; i++) @@ -1385,23 +1784,23 @@ void btSequentialImpulseConstraintSolver::convertBodies(btCollisionObject** bodi bodies[i]->setCompanionId(-1); } #if BT_THREADSAFE - m_kinematicBodyUniqueIdToSolverBodyTable.resize(0); + siData.m_kinematicBodyUniqueIdToSolverBodyTable.resize(0); #endif // BT_THREADSAFE - m_tmpSolverBodyPool.reserve(numBodies + 1); - m_tmpSolverBodyPool.resize(0); + siData.m_tmpSolverBodyPool.reserve(numBodies + 1); + siData.m_tmpSolverBodyPool.resize(0); //btSolverBody& fixedBody = m_tmpSolverBodyPool.expand(); //initSolverBody(&fixedBody,0); for (int i = 0; i < numBodies; i++) { - int bodyId = getOrInitSolverBody(*bodies[i], infoGlobal.m_timeStep); + int bodyId = siData.getOrInitSolverBody(*bodies[i], infoGlobal.m_timeStep); btRigidBody* body = btRigidBody::upcast(bodies[i]); if (body && body->getInvMass()) { - btSolverBody& solverBody = m_tmpSolverBodyPool[bodyId]; + btSolverBody& solverBody = siData.m_tmpSolverBodyPool[bodyId]; btVector3 gyroForce(0, 0, 0); if (body->getFlags() & BT_ENABLE_GYROSCOPIC_FORCE_EXPLICIT) { @@ -1422,6 +1821,29 @@ void btSequentialImpulseConstraintSolver::convertBodies(btCollisionObject** bodi } } + +void btSequentialImpulseConstraintSolver::convertBodies(btCollisionObject** bodies, int numBodies, const btContactSolverInfo& infoGlobal) +{ + btSISolverSingleIterationData siData(m_tmpSolverBodyPool, + m_tmpSolverContactConstraintPool, + m_tmpSolverNonContactConstraintPool, + m_tmpSolverContactFrictionConstraintPool, + m_tmpSolverContactRollingFrictionConstraintPool, + m_orderTmpConstraintPool, + m_orderNonContactConstraintPool, + m_orderFrictionConstraintPool, + m_tmpConstraintSizesPool, + m_resolveSingleConstraintRowGeneric, + m_resolveSingleConstraintRowLowerLimit, + m_resolveSplitPenetrationImpulse, + m_kinematicBodyUniqueIdToSolverBodyTable, + m_btSeed2, + m_fixedBodyId, + m_maxOverrideNumSolverIterations); + + convertBodiesInternal(siData, bodies, numBodies, infoGlobal); +} + btScalar btSequentialImpulseConstraintSolver::solveGroupCacheFriendlySetup(btCollisionObject** bodies, int numBodies, btPersistentManifold** manifoldPtr, int numManifolds, btTypedConstraint** constraints, int numConstraints, const btContactSolverInfo& infoGlobal, btIDebugDraw* debugDrawer) { m_fixedBodyId = -1; @@ -1545,14 +1967,14 @@ btScalar btSequentialImpulseConstraintSolver::solveGroupCacheFriendlySetup(btCol return 0.f; } -btScalar btSequentialImpulseConstraintSolver::solveSingleIteration(int iteration, btCollisionObject** /*bodies */, int /*numBodies*/, btPersistentManifold** /*manifoldPtr*/, int /*numManifolds*/, btTypedConstraint** constraints, int numConstraints, const btContactSolverInfo& infoGlobal, btIDebugDraw* /*debugDrawer*/) +btScalar btSequentialImpulseConstraintSolver::solveSingleIterationInternal(btSISolverSingleIterationData& siData, int iteration, btTypedConstraint** constraints, int numConstraints, const btContactSolverInfo& infoGlobal) { BT_PROFILE("solveSingleIteration"); btScalar leastSquaresResidual = 0.f; - int numNonContactPool = m_tmpSolverNonContactConstraintPool.size(); - int numConstraintPool = m_tmpSolverContactConstraintPool.size(); - int numFrictionPool = m_tmpSolverContactFrictionConstraintPool.size(); + int numNonContactPool = siData.m_tmpSolverNonContactConstraintPool.size(); + int numConstraintPool = siData.m_tmpSolverContactConstraintPool.size(); + int numFrictionPool = siData.m_tmpSolverContactFrictionConstraintPool.size(); if (infoGlobal.m_solverMode & SOLVER_RANDMIZE_ORDER) { @@ -1560,10 +1982,10 @@ btScalar btSequentialImpulseConstraintSolver::solveSingleIteration(int iteration { for (int j = 0; j < numNonContactPool; ++j) { - int tmp = m_orderNonContactConstraintPool[j]; - int swapi = btRandInt2(j + 1); - m_orderNonContactConstraintPool[j] = m_orderNonContactConstraintPool[swapi]; - m_orderNonContactConstraintPool[swapi] = tmp; + int tmp = siData.m_orderNonContactConstraintPool[j]; + int swapi = btRandInt2a(j + 1, siData.m_seed); + siData.m_orderNonContactConstraintPool[j] = siData.m_orderNonContactConstraintPool[swapi]; + siData.m_orderNonContactConstraintPool[swapi] = tmp; } //contact/friction constraints are not solved more than @@ -1571,30 +1993,30 @@ btScalar btSequentialImpulseConstraintSolver::solveSingleIteration(int iteration { for (int j = 0; j < numConstraintPool; ++j) { - int tmp = m_orderTmpConstraintPool[j]; - int swapi = btRandInt2(j + 1); - m_orderTmpConstraintPool[j] = m_orderTmpConstraintPool[swapi]; - m_orderTmpConstraintPool[swapi] = tmp; + int tmp = siData.m_orderTmpConstraintPool[j]; + int swapi = btRandInt2a(j + 1, siData.m_seed); + siData.m_orderTmpConstraintPool[j] = siData.m_orderTmpConstraintPool[swapi]; + siData.m_orderTmpConstraintPool[swapi] = tmp; } for (int j = 0; j < numFrictionPool; ++j) { - int tmp = m_orderFrictionConstraintPool[j]; - int swapi = btRandInt2(j + 1); - m_orderFrictionConstraintPool[j] = m_orderFrictionConstraintPool[swapi]; - m_orderFrictionConstraintPool[swapi] = tmp; + int tmp = siData.m_orderFrictionConstraintPool[j]; + int swapi = btRandInt2a(j + 1, siData.m_seed); + siData.m_orderFrictionConstraintPool[j] = siData.m_orderFrictionConstraintPool[swapi]; + siData.m_orderFrictionConstraintPool[swapi] = tmp; } } } } ///solve all joint constraints - for (int j = 0; j < m_tmpSolverNonContactConstraintPool.size(); j++) + for (int j = 0; j < siData.m_tmpSolverNonContactConstraintPool.size(); j++) { - btSolverConstraint& constraint = m_tmpSolverNonContactConstraintPool[m_orderNonContactConstraintPool[j]]; + btSolverConstraint& constraint = siData.m_tmpSolverNonContactConstraintPool[siData.m_orderNonContactConstraintPool[j]]; if (iteration < constraint.m_overrideNumSolverIterations) { - btScalar residual = resolveSingleConstraintRowGeneric(m_tmpSolverBodyPool[constraint.m_solverBodyIdA], m_tmpSolverBodyPool[constraint.m_solverBodyIdB], constraint); + btScalar residual = siData.m_resolveSingleConstraintRowGeneric(siData.m_tmpSolverBodyPool[constraint.m_solverBodyIdA], siData.m_tmpSolverBodyPool[constraint.m_solverBodyIdB], constraint); leastSquaresResidual = btMax(leastSquaresResidual, residual * residual); } } @@ -1605,10 +2027,10 @@ btScalar btSequentialImpulseConstraintSolver::solveSingleIteration(int iteration { if (constraints[j]->isEnabled()) { - int bodyAid = getOrInitSolverBody(constraints[j]->getRigidBodyA(), infoGlobal.m_timeStep); - int bodyBid = getOrInitSolverBody(constraints[j]->getRigidBodyB(), infoGlobal.m_timeStep); - btSolverBody& bodyA = m_tmpSolverBodyPool[bodyAid]; - btSolverBody& bodyB = m_tmpSolverBodyPool[bodyBid]; + int bodyAid = siData.getSolverBody(constraints[j]->getRigidBodyA()); + int bodyBid = siData.getSolverBody(constraints[j]->getRigidBodyB()); + btSolverBody& bodyA = siData.m_tmpSolverBodyPool[bodyAid]; + btSolverBody& bodyB = siData.m_tmpSolverBodyPool[bodyBid]; constraints[j]->solveConstraintObsolete(bodyA, bodyB, infoGlobal.m_timeStep); } } @@ -1616,7 +2038,7 @@ btScalar btSequentialImpulseConstraintSolver::solveSingleIteration(int iteration ///solve all contact constraints if (infoGlobal.m_solverMode & SOLVER_INTERLEAVE_CONTACT_AND_FRICTION_CONSTRAINTS) { - int numPoolConstraints = m_tmpSolverContactConstraintPool.size(); + int numPoolConstraints = siData.m_tmpSolverContactConstraintPool.size(); int multiplier = (infoGlobal.m_solverMode & SOLVER_USE_2_FRICTION_DIRECTIONS) ? 2 : 1; for (int c = 0; c < numPoolConstraints; c++) @@ -1624,8 +2046,8 @@ btScalar btSequentialImpulseConstraintSolver::solveSingleIteration(int iteration btScalar totalImpulse = 0; { - const btSolverConstraint& solveManifold = m_tmpSolverContactConstraintPool[m_orderTmpConstraintPool[c]]; - btScalar residual = resolveSingleConstraintRowLowerLimit(m_tmpSolverBodyPool[solveManifold.m_solverBodyIdA], m_tmpSolverBodyPool[solveManifold.m_solverBodyIdB], solveManifold); + const btSolverConstraint& solveManifold = siData.m_tmpSolverContactConstraintPool[siData.m_orderTmpConstraintPool[c]]; + btScalar residual = siData.m_resolveSingleConstraintRowLowerLimit(siData.m_tmpSolverBodyPool[solveManifold.m_solverBodyIdA], siData.m_tmpSolverBodyPool[solveManifold.m_solverBodyIdB], solveManifold); leastSquaresResidual = btMax(leastSquaresResidual, residual * residual); totalImpulse = solveManifold.m_appliedImpulse; @@ -1634,28 +2056,28 @@ btScalar btSequentialImpulseConstraintSolver::solveSingleIteration(int iteration if (applyFriction) { { - btSolverConstraint& solveManifold = m_tmpSolverContactFrictionConstraintPool[m_orderFrictionConstraintPool[c * multiplier]]; + btSolverConstraint& solveManifold = siData.m_tmpSolverContactFrictionConstraintPool[siData.m_orderFrictionConstraintPool[c * multiplier]]; if (totalImpulse > btScalar(0)) { solveManifold.m_lowerLimit = -(solveManifold.m_friction * totalImpulse); solveManifold.m_upperLimit = solveManifold.m_friction * totalImpulse; - btScalar residual = resolveSingleConstraintRowGeneric(m_tmpSolverBodyPool[solveManifold.m_solverBodyIdA], m_tmpSolverBodyPool[solveManifold.m_solverBodyIdB], solveManifold); + btScalar residual = siData.m_resolveSingleConstraintRowGeneric(siData.m_tmpSolverBodyPool[solveManifold.m_solverBodyIdA], siData.m_tmpSolverBodyPool[solveManifold.m_solverBodyIdB], solveManifold); leastSquaresResidual = btMax(leastSquaresResidual, residual * residual); } } if (infoGlobal.m_solverMode & SOLVER_USE_2_FRICTION_DIRECTIONS) { - btSolverConstraint& solveManifold = m_tmpSolverContactFrictionConstraintPool[m_orderFrictionConstraintPool[c * multiplier + 1]]; + btSolverConstraint& solveManifold = siData.m_tmpSolverContactFrictionConstraintPool[siData.m_orderFrictionConstraintPool[c * multiplier + 1]]; if (totalImpulse > btScalar(0)) { solveManifold.m_lowerLimit = -(solveManifold.m_friction * totalImpulse); solveManifold.m_upperLimit = solveManifold.m_friction * totalImpulse; - btScalar residual = resolveSingleConstraintRowGeneric(m_tmpSolverBodyPool[solveManifold.m_solverBodyIdA], m_tmpSolverBodyPool[solveManifold.m_solverBodyIdB], solveManifold); + btScalar residual = siData.m_resolveSingleConstraintRowGeneric(siData.m_tmpSolverBodyPool[solveManifold.m_solverBodyIdA], siData.m_tmpSolverBodyPool[solveManifold.m_solverBodyIdB], solveManifold); leastSquaresResidual = btMax(leastSquaresResidual, residual * residual); } } @@ -1665,40 +2087,40 @@ btScalar btSequentialImpulseConstraintSolver::solveSingleIteration(int iteration else //SOLVER_INTERLEAVE_CONTACT_AND_FRICTION_CONSTRAINTS { //solve the friction constraints after all contact constraints, don't interleave them - int numPoolConstraints = m_tmpSolverContactConstraintPool.size(); + int numPoolConstraints = siData.m_tmpSolverContactConstraintPool.size(); int j; for (j = 0; j < numPoolConstraints; j++) { - const btSolverConstraint& solveManifold = m_tmpSolverContactConstraintPool[m_orderTmpConstraintPool[j]]; - btScalar residual = resolveSingleConstraintRowLowerLimit(m_tmpSolverBodyPool[solveManifold.m_solverBodyIdA], m_tmpSolverBodyPool[solveManifold.m_solverBodyIdB], solveManifold); + const btSolverConstraint& solveManifold = siData.m_tmpSolverContactConstraintPool[siData.m_orderTmpConstraintPool[j]]; + btScalar residual = siData.m_resolveSingleConstraintRowLowerLimit(siData.m_tmpSolverBodyPool[solveManifold.m_solverBodyIdA], siData.m_tmpSolverBodyPool[solveManifold.m_solverBodyIdB], solveManifold); leastSquaresResidual = btMax(leastSquaresResidual, residual * residual); } ///solve all friction constraints - int numFrictionPoolConstraints = m_tmpSolverContactFrictionConstraintPool.size(); + int numFrictionPoolConstraints = siData.m_tmpSolverContactFrictionConstraintPool.size(); for (j = 0; j < numFrictionPoolConstraints; j++) { - btSolverConstraint& solveManifold = m_tmpSolverContactFrictionConstraintPool[m_orderFrictionConstraintPool[j]]; - btScalar totalImpulse = m_tmpSolverContactConstraintPool[solveManifold.m_frictionIndex].m_appliedImpulse; + btSolverConstraint& solveManifold = siData.m_tmpSolverContactFrictionConstraintPool[siData.m_orderFrictionConstraintPool[j]]; + btScalar totalImpulse = siData.m_tmpSolverContactConstraintPool[solveManifold.m_frictionIndex].m_appliedImpulse; if (totalImpulse > btScalar(0)) { solveManifold.m_lowerLimit = -(solveManifold.m_friction * totalImpulse); solveManifold.m_upperLimit = solveManifold.m_friction * totalImpulse; - btScalar residual = resolveSingleConstraintRowGeneric(m_tmpSolverBodyPool[solveManifold.m_solverBodyIdA], m_tmpSolverBodyPool[solveManifold.m_solverBodyIdB], solveManifold); + btScalar residual = siData.m_resolveSingleConstraintRowGeneric(siData.m_tmpSolverBodyPool[solveManifold.m_solverBodyIdA], siData.m_tmpSolverBodyPool[solveManifold.m_solverBodyIdB], solveManifold); leastSquaresResidual = btMax(leastSquaresResidual, residual * residual); } } } - int numRollingFrictionPoolConstraints = m_tmpSolverContactRollingFrictionConstraintPool.size(); + int numRollingFrictionPoolConstraints = siData.m_tmpSolverContactRollingFrictionConstraintPool.size(); for (int j = 0; j < numRollingFrictionPoolConstraints; j++) { - btSolverConstraint& rollingFrictionConstraint = m_tmpSolverContactRollingFrictionConstraintPool[j]; - btScalar totalImpulse = m_tmpSolverContactConstraintPool[rollingFrictionConstraint.m_frictionIndex].m_appliedImpulse; + btSolverConstraint& rollingFrictionConstraint = siData.m_tmpSolverContactRollingFrictionConstraintPool[j]; + btScalar totalImpulse = siData.m_tmpSolverContactConstraintPool[rollingFrictionConstraint.m_frictionIndex].m_appliedImpulse; if (totalImpulse > btScalar(0)) { btScalar rollingFrictionMagnitude = rollingFrictionConstraint.m_friction * totalImpulse; @@ -1708,7 +2130,7 @@ btScalar btSequentialImpulseConstraintSolver::solveSingleIteration(int iteration rollingFrictionConstraint.m_lowerLimit = -rollingFrictionMagnitude; rollingFrictionConstraint.m_upperLimit = rollingFrictionMagnitude; - btScalar residual = resolveSingleConstraintRowGeneric(m_tmpSolverBodyPool[rollingFrictionConstraint.m_solverBodyIdA], m_tmpSolverBodyPool[rollingFrictionConstraint.m_solverBodyIdB], rollingFrictionConstraint); + btScalar residual = siData.m_resolveSingleConstraintRowGeneric(siData.m_tmpSolverBodyPool[rollingFrictionConstraint.m_solverBodyIdA], siData.m_tmpSolverBodyPool[rollingFrictionConstraint.m_solverBodyIdB], rollingFrictionConstraint); leastSquaresResidual = btMax(leastSquaresResidual, residual * residual); } } @@ -1716,8 +2138,56 @@ btScalar btSequentialImpulseConstraintSolver::solveSingleIteration(int iteration return leastSquaresResidual; } + +btScalar btSequentialImpulseConstraintSolver::solveSingleIteration(int iteration, btCollisionObject** /*bodies */, int /*numBodies*/, btPersistentManifold** /*manifoldPtr*/, int /*numManifolds*/, btTypedConstraint** constraints, int numConstraints, const btContactSolverInfo& infoGlobal, btIDebugDraw* /*debugDrawer*/) +{ + btSISolverSingleIterationData siData(m_tmpSolverBodyPool, + m_tmpSolverContactConstraintPool, + m_tmpSolverNonContactConstraintPool, + m_tmpSolverContactFrictionConstraintPool, + m_tmpSolverContactRollingFrictionConstraintPool, + m_orderTmpConstraintPool, + m_orderNonContactConstraintPool, + m_orderFrictionConstraintPool, + m_tmpConstraintSizesPool, + m_resolveSingleConstraintRowGeneric, + m_resolveSingleConstraintRowLowerLimit, + m_resolveSplitPenetrationImpulse, + m_kinematicBodyUniqueIdToSolverBodyTable, + m_btSeed2, + m_fixedBodyId, + m_maxOverrideNumSolverIterations); + + btScalar leastSquaresResidual = btSequentialImpulseConstraintSolver::solveSingleIterationInternal(siData, + iteration, constraints, numConstraints, infoGlobal); + return leastSquaresResidual; +} + void btSequentialImpulseConstraintSolver::solveGroupCacheFriendlySplitImpulseIterations(btCollisionObject** bodies, int numBodies, btPersistentManifold** manifoldPtr, int numManifolds, btTypedConstraint** constraints, int numConstraints, const btContactSolverInfo& infoGlobal, btIDebugDraw* debugDrawer) { + btSISolverSingleIterationData siData(m_tmpSolverBodyPool, + m_tmpSolverContactConstraintPool, + m_tmpSolverNonContactConstraintPool, + m_tmpSolverContactFrictionConstraintPool, + m_tmpSolverContactRollingFrictionConstraintPool, + m_orderTmpConstraintPool, + m_orderNonContactConstraintPool, + m_orderFrictionConstraintPool, + m_tmpConstraintSizesPool, + m_resolveSingleConstraintRowGeneric, + m_resolveSingleConstraintRowLowerLimit, + m_resolveSplitPenetrationImpulse, + m_kinematicBodyUniqueIdToSolverBodyTable, + m_btSeed2, + m_fixedBodyId, + m_maxOverrideNumSolverIterations); + + solveGroupCacheFriendlySplitImpulseIterationsInternal(siData, + bodies, numBodies, manifoldPtr, numManifolds, constraints, numConstraints, infoGlobal, debugDrawer); + +} +void btSequentialImpulseConstraintSolver::solveGroupCacheFriendlySplitImpulseIterationsInternal(btSISolverSingleIterationData& siData, btCollisionObject** bodies, int numBodies, btPersistentManifold** manifoldPtr, int numManifolds, btTypedConstraint** constraints, int numConstraints, const btContactSolverInfo& infoGlobal, btIDebugDraw* debugDrawer) +{ BT_PROFILE("solveGroupCacheFriendlySplitImpulseIterations"); int iteration; if (infoGlobal.m_splitImpulse) @@ -1727,13 +2197,13 @@ void btSequentialImpulseConstraintSolver::solveGroupCacheFriendlySplitImpulseIte { btScalar leastSquaresResidual = 0.f; { - int numPoolConstraints = m_tmpSolverContactConstraintPool.size(); + int numPoolConstraints = siData.m_tmpSolverContactConstraintPool.size(); int j; for (j = 0; j < numPoolConstraints; j++) { - const btSolverConstraint& solveManifold = m_tmpSolverContactConstraintPool[m_orderTmpConstraintPool[j]]; + const btSolverConstraint& solveManifold = siData.m_tmpSolverContactConstraintPool[siData.m_orderTmpConstraintPool[j]]; - btScalar residual = resolveSplitPenetrationImpulse(m_tmpSolverBodyPool[solveManifold.m_solverBodyIdA], m_tmpSolverBodyPool[solveManifold.m_solverBodyIdB], solveManifold); + btScalar residual = siData.m_resolveSplitPenetrationImpulse(siData.m_tmpSolverBodyPool[solveManifold.m_solverBodyIdA], siData.m_tmpSolverBodyPool[solveManifold.m_solverBodyIdB], solveManifold); leastSquaresResidual = btMax(leastSquaresResidual, residual * residual); } } @@ -1760,7 +2230,7 @@ btScalar btSequentialImpulseConstraintSolver::solveGroupCacheFriendlyIterations( int maxIterations = m_maxOverrideNumSolverIterations > infoGlobal.m_numIterations ? m_maxOverrideNumSolverIterations : infoGlobal.m_numIterations; for (int iteration = 0; iteration < maxIterations; iteration++) - //for ( int iteration = maxIterations-1 ; iteration >= 0;iteration--) + //for ( int iteration = maxIterations-1 ; iteration >= 0;iteration--) { m_leastSquaresResidual = solveSingleIteration(iteration, bodies, numBodies, manifoldPtr, numManifolds, constraints, numConstraints, infoGlobal, debugDrawer); @@ -1769,6 +2239,14 @@ btScalar btSequentialImpulseConstraintSolver::solveGroupCacheFriendlyIterations( #ifdef VERBOSE_RESIDUAL_PRINTF printf("residual = %f at iteration #%d\n", m_leastSquaresResidual, iteration); #endif + m_analyticsData.m_numSolverCalls++; + m_analyticsData.m_numIterationsUsed = iteration+1; + m_analyticsData.m_islandId = -2; + if (numBodies>0) + m_analyticsData.m_islandId = bodies[0]->getCompanionId(); + m_analyticsData.m_numBodies = numBodies; + m_analyticsData.m_numContactManifolds = numManifolds; + m_analyticsData.m_remainingLeastSquaresResidual = m_leastSquaresResidual; break; } } @@ -1776,31 +2254,42 @@ btScalar btSequentialImpulseConstraintSolver::solveGroupCacheFriendlyIterations( return 0.f; } -void btSequentialImpulseConstraintSolver::writeBackContacts(int iBegin, int iEnd, const btContactSolverInfo& infoGlobal) +void btSequentialImpulseConstraintSolver::writeBackContactsInternal(btConstraintArray& tmpSolverContactConstraintPool, btConstraintArray& tmpSolverContactFrictionConstraintPool, int iBegin, int iEnd, const btContactSolverInfo& infoGlobal) { for (int j = iBegin; j < iEnd; j++) { - const btSolverConstraint& solveManifold = m_tmpSolverContactConstraintPool[j]; + const btSolverConstraint& solveManifold = tmpSolverContactConstraintPool[j]; btManifoldPoint* pt = (btManifoldPoint*)solveManifold.m_originalContactPoint; btAssert(pt); pt->m_appliedImpulse = solveManifold.m_appliedImpulse; // float f = m_tmpSolverContactFrictionConstraintPool[solveManifold.m_frictionIndex].m_appliedImpulse; // printf("pt->m_appliedImpulseLateral1 = %f\n", f); - pt->m_appliedImpulseLateral1 = m_tmpSolverContactFrictionConstraintPool[solveManifold.m_frictionIndex].m_appliedImpulse; + pt->m_appliedImpulseLateral1 = tmpSolverContactFrictionConstraintPool[solveManifold.m_frictionIndex].m_appliedImpulse; //printf("pt->m_appliedImpulseLateral1 = %f\n", pt->m_appliedImpulseLateral1); if ((infoGlobal.m_solverMode & SOLVER_USE_2_FRICTION_DIRECTIONS)) { - pt->m_appliedImpulseLateral2 = m_tmpSolverContactFrictionConstraintPool[solveManifold.m_frictionIndex + 1].m_appliedImpulse; + pt->m_appliedImpulseLateral2 = tmpSolverContactFrictionConstraintPool[solveManifold.m_frictionIndex + 1].m_appliedImpulse; } //do a callback here? } } +void btSequentialImpulseConstraintSolver::writeBackContacts(int iBegin, int iEnd, const btContactSolverInfo& infoGlobal) +{ + writeBackContactsInternal(m_tmpSolverContactConstraintPool, m_tmpSolverContactFrictionConstraintPool, iBegin, iEnd, infoGlobal); + +} + void btSequentialImpulseConstraintSolver::writeBackJoints(int iBegin, int iEnd, const btContactSolverInfo& infoGlobal) { + writeBackJointsInternal(m_tmpSolverNonContactConstraintPool, iBegin, iEnd, infoGlobal); +} + +void btSequentialImpulseConstraintSolver::writeBackJointsInternal(btConstraintArray& tmpSolverNonContactConstraintPool, int iBegin, int iEnd, const btContactSolverInfo& infoGlobal) +{ for (int j = iBegin; j < iEnd; j++) { - const btSolverConstraint& solverConstr = m_tmpSolverNonContactConstraintPool[j]; + const btSolverConstraint& solverConstr = tmpSolverNonContactConstraintPool[j]; btTypedConstraint* constr = (btTypedConstraint*)solverConstr.m_originalContactPoint; btJointFeedback* fb = constr->getJointFeedback(); if (fb) @@ -1821,53 +2310,79 @@ void btSequentialImpulseConstraintSolver::writeBackJoints(int iBegin, int iEnd, void btSequentialImpulseConstraintSolver::writeBackBodies(int iBegin, int iEnd, const btContactSolverInfo& infoGlobal) { + writeBackBodiesInternal(m_tmpSolverBodyPool, iBegin, iEnd, infoGlobal); +} +void btSequentialImpulseConstraintSolver::writeBackBodiesInternal(btAlignedObjectArray<btSolverBody>& tmpSolverBodyPool, int iBegin, int iEnd, const btContactSolverInfo& infoGlobal) +{ for (int i = iBegin; i < iEnd; i++) { - btRigidBody* body = m_tmpSolverBodyPool[i].m_originalBody; + btRigidBody* body = tmpSolverBodyPool[i].m_originalBody; if (body) { if (infoGlobal.m_splitImpulse) - m_tmpSolverBodyPool[i].writebackVelocityAndTransform(infoGlobal.m_timeStep, infoGlobal.m_splitImpulseTurnErp); + tmpSolverBodyPool[i].writebackVelocityAndTransform(infoGlobal.m_timeStep, infoGlobal.m_splitImpulseTurnErp); else - m_tmpSolverBodyPool[i].writebackVelocity(); + tmpSolverBodyPool[i].writebackVelocity(); - m_tmpSolverBodyPool[i].m_originalBody->setLinearVelocity( - m_tmpSolverBodyPool[i].m_linearVelocity + - m_tmpSolverBodyPool[i].m_externalForceImpulse); + tmpSolverBodyPool[i].m_originalBody->setLinearVelocity( + tmpSolverBodyPool[i].m_linearVelocity + + tmpSolverBodyPool[i].m_externalForceImpulse); - m_tmpSolverBodyPool[i].m_originalBody->setAngularVelocity( - m_tmpSolverBodyPool[i].m_angularVelocity + - m_tmpSolverBodyPool[i].m_externalTorqueImpulse); + tmpSolverBodyPool[i].m_originalBody->setAngularVelocity( + tmpSolverBodyPool[i].m_angularVelocity + + tmpSolverBodyPool[i].m_externalTorqueImpulse); if (infoGlobal.m_splitImpulse) - m_tmpSolverBodyPool[i].m_originalBody->setWorldTransform(m_tmpSolverBodyPool[i].m_worldTransform); + tmpSolverBodyPool[i].m_originalBody->setWorldTransform(tmpSolverBodyPool[i].m_worldTransform); - m_tmpSolverBodyPool[i].m_originalBody->setCompanionId(-1); + tmpSolverBodyPool[i].m_originalBody->setCompanionId(-1); } } } -btScalar btSequentialImpulseConstraintSolver::solveGroupCacheFriendlyFinish(btCollisionObject** bodies, int numBodies, const btContactSolverInfo& infoGlobal) +btScalar btSequentialImpulseConstraintSolver::solveGroupCacheFriendlyFinishInternal(btSISolverSingleIterationData& siData, btCollisionObject** bodies, int numBodies, const btContactSolverInfo& infoGlobal) { BT_PROFILE("solveGroupCacheFriendlyFinish"); if (infoGlobal.m_solverMode & SOLVER_USE_WARMSTARTING) { - writeBackContacts(0, m_tmpSolverContactConstraintPool.size(), infoGlobal); + writeBackContactsInternal(siData.m_tmpSolverContactConstraintPool, siData.m_tmpSolverContactFrictionConstraintPool, 0, siData.m_tmpSolverContactConstraintPool.size(), infoGlobal); } - writeBackJoints(0, m_tmpSolverNonContactConstraintPool.size(), infoGlobal); - writeBackBodies(0, m_tmpSolverBodyPool.size(), infoGlobal); + writeBackJointsInternal(siData.m_tmpSolverNonContactConstraintPool, 0, siData.m_tmpSolverNonContactConstraintPool.size(), infoGlobal); + writeBackBodiesInternal(siData.m_tmpSolverBodyPool, 0, siData.m_tmpSolverBodyPool.size(), infoGlobal); - m_tmpSolverContactConstraintPool.resizeNoInitialize(0); - m_tmpSolverNonContactConstraintPool.resizeNoInitialize(0); - m_tmpSolverContactFrictionConstraintPool.resizeNoInitialize(0); - m_tmpSolverContactRollingFrictionConstraintPool.resizeNoInitialize(0); + siData.m_tmpSolverContactConstraintPool.resizeNoInitialize(0); + siData.m_tmpSolverNonContactConstraintPool.resizeNoInitialize(0); + siData.m_tmpSolverContactFrictionConstraintPool.resizeNoInitialize(0); + siData.m_tmpSolverContactRollingFrictionConstraintPool.resizeNoInitialize(0); - m_tmpSolverBodyPool.resizeNoInitialize(0); + siData.m_tmpSolverBodyPool.resizeNoInitialize(0); return 0.f; } +btScalar btSequentialImpulseConstraintSolver::solveGroupCacheFriendlyFinish(btCollisionObject** bodies, int numBodies, const btContactSolverInfo& infoGlobal) +{ + btSISolverSingleIterationData siData(m_tmpSolverBodyPool, + m_tmpSolverContactConstraintPool, + m_tmpSolverNonContactConstraintPool, + m_tmpSolverContactFrictionConstraintPool, + m_tmpSolverContactRollingFrictionConstraintPool, + m_orderTmpConstraintPool, + m_orderNonContactConstraintPool, + m_orderFrictionConstraintPool, + m_tmpConstraintSizesPool, + m_resolveSingleConstraintRowGeneric, + m_resolveSingleConstraintRowLowerLimit, + m_resolveSplitPenetrationImpulse, + m_kinematicBodyUniqueIdToSolverBodyTable, + m_btSeed2, + m_fixedBodyId, + m_maxOverrideNumSolverIterations); + + return btSequentialImpulseConstraintSolver::solveGroupCacheFriendlyFinishInternal(siData, bodies, numBodies, infoGlobal); +} + /// btSequentialImpulseConstraintSolver Sequentially applies impulses btScalar btSequentialImpulseConstraintSolver::solveGroup(btCollisionObject** bodies, int numBodies, btPersistentManifold** manifoldPtr, int numManifolds, btTypedConstraint** constraints, int numConstraints, const btContactSolverInfo& infoGlobal, btIDebugDraw* debugDrawer, btDispatcher* /*dispatcher*/) { @@ -1886,4 +2401,4 @@ btScalar btSequentialImpulseConstraintSolver::solveGroup(btCollisionObject** bod void btSequentialImpulseConstraintSolver::reset() { m_btSeed2 = 0; -} +}
\ No newline at end of file diff --git a/thirdparty/bullet/BulletDynamics/ConstraintSolver/btSequentialImpulseConstraintSolver.h b/thirdparty/bullet/BulletDynamics/ConstraintSolver/btSequentialImpulseConstraintSolver.h index 70db83b063..2b88e25be7 100644 --- a/thirdparty/bullet/BulletDynamics/ConstraintSolver/btSequentialImpulseConstraintSolver.h +++ b/thirdparty/bullet/BulletDynamics/ConstraintSolver/btSequentialImpulseConstraintSolver.h @@ -29,10 +29,91 @@ class btCollisionObject; typedef btScalar (*btSingleConstraintRowSolver)(btSolverBody&, btSolverBody&, const btSolverConstraint&); +struct btSISolverSingleIterationData +{ + btAlignedObjectArray<btSolverBody>& m_tmpSolverBodyPool; + btConstraintArray& m_tmpSolverContactConstraintPool; + btConstraintArray& m_tmpSolverNonContactConstraintPool; + btConstraintArray& m_tmpSolverContactFrictionConstraintPool; + btConstraintArray& m_tmpSolverContactRollingFrictionConstraintPool; + + btAlignedObjectArray<int>& m_orderTmpConstraintPool; + btAlignedObjectArray<int>& m_orderNonContactConstraintPool; + btAlignedObjectArray<int>& m_orderFrictionConstraintPool; + btAlignedObjectArray<btTypedConstraint::btConstraintInfo1>& m_tmpConstraintSizesPool; + unsigned long& m_seed; + + btSingleConstraintRowSolver& m_resolveSingleConstraintRowGeneric; + btSingleConstraintRowSolver& m_resolveSingleConstraintRowLowerLimit; + btSingleConstraintRowSolver& m_resolveSplitPenetrationImpulse; + btAlignedObjectArray<int>& m_kinematicBodyUniqueIdToSolverBodyTable; + int& m_fixedBodyId; + int& m_maxOverrideNumSolverIterations; + int getOrInitSolverBody(btCollisionObject & body, btScalar timeStep); + static void initSolverBody(btSolverBody * solverBody, btCollisionObject * collisionObject, btScalar timeStep); + int getSolverBody(btCollisionObject& body) const; + + + btSISolverSingleIterationData(btAlignedObjectArray<btSolverBody>& tmpSolverBodyPool, + btConstraintArray& tmpSolverContactConstraintPool, + btConstraintArray& tmpSolverNonContactConstraintPool, + btConstraintArray& tmpSolverContactFrictionConstraintPool, + btConstraintArray& tmpSolverContactRollingFrictionConstraintPool, + btAlignedObjectArray<int>& orderTmpConstraintPool, + btAlignedObjectArray<int>& orderNonContactConstraintPool, + btAlignedObjectArray<int>& orderFrictionConstraintPool, + btAlignedObjectArray<btTypedConstraint::btConstraintInfo1>& tmpConstraintSizesPool, + btSingleConstraintRowSolver& resolveSingleConstraintRowGeneric, + btSingleConstraintRowSolver& resolveSingleConstraintRowLowerLimit, + btSingleConstraintRowSolver& resolveSplitPenetrationImpulse, + btAlignedObjectArray<int>& kinematicBodyUniqueIdToSolverBodyTable, + unsigned long& seed, + int& fixedBodyId, + int& maxOverrideNumSolverIterations + ) + :m_tmpSolverBodyPool(tmpSolverBodyPool), + m_tmpSolverContactConstraintPool(tmpSolverContactConstraintPool), + m_tmpSolverNonContactConstraintPool(tmpSolverNonContactConstraintPool), + m_tmpSolverContactFrictionConstraintPool(tmpSolverContactFrictionConstraintPool), + m_tmpSolverContactRollingFrictionConstraintPool(tmpSolverContactRollingFrictionConstraintPool), + m_orderTmpConstraintPool(orderTmpConstraintPool), + m_orderNonContactConstraintPool(orderNonContactConstraintPool), + m_orderFrictionConstraintPool(orderFrictionConstraintPool), + m_tmpConstraintSizesPool(tmpConstraintSizesPool), + m_seed(seed), + m_resolveSingleConstraintRowGeneric(resolveSingleConstraintRowGeneric), + m_resolveSingleConstraintRowLowerLimit(resolveSingleConstraintRowLowerLimit), + m_resolveSplitPenetrationImpulse(resolveSplitPenetrationImpulse), + m_kinematicBodyUniqueIdToSolverBodyTable(kinematicBodyUniqueIdToSolverBodyTable), + m_fixedBodyId(fixedBodyId), + m_maxOverrideNumSolverIterations(maxOverrideNumSolverIterations) + { + } +}; + +struct btSolverAnalyticsData +{ + btSolverAnalyticsData() + { + m_numSolverCalls = 0; + m_numIterationsUsed = -1; + m_remainingLeastSquaresResidual = -1; + m_islandId = -2; + } + int m_islandId; + int m_numBodies; + int m_numContactManifolds; + int m_numSolverCalls; + int m_numIterationsUsed; + double m_remainingLeastSquaresResidual; +}; + ///The btSequentialImpulseConstraintSolver is a fast SIMD implementation of the Projected Gauss Seidel (iterative LCP) method. ATTRIBUTE_ALIGNED16(class) btSequentialImpulseConstraintSolver : public btConstraintSolver { + + protected: btAlignedObjectArray<btSolverBody> m_tmpSolverBodyPool; btConstraintArray m_tmpSolverContactConstraintPool; @@ -64,26 +145,26 @@ protected: btScalar m_leastSquaresResidual; void setupFrictionConstraint(btSolverConstraint & solverConstraint, const btVector3& normalAxis, int solverBodyIdA, int solverBodyIdB, - btManifoldPoint& cp, const btVector3& rel_pos1, const btVector3& rel_pos2, - btCollisionObject* colObj0, btCollisionObject* colObj1, btScalar relaxation, - const btContactSolverInfo& infoGlobal, - btScalar desiredVelocity = 0., btScalar cfmSlip = 0.); + btManifoldPoint& cp, const btVector3& rel_pos1, const btVector3& rel_pos2, + btCollisionObject* colObj0, btCollisionObject* colObj1, btScalar relaxation, + const btContactSolverInfo& infoGlobal, + btScalar desiredVelocity = 0., btScalar cfmSlip = 0.); void setupTorsionalFrictionConstraint(btSolverConstraint & solverConstraint, const btVector3& normalAxis, int solverBodyIdA, int solverBodyIdB, - btManifoldPoint& cp, btScalar combinedTorsionalFriction, const btVector3& rel_pos1, const btVector3& rel_pos2, - btCollisionObject* colObj0, btCollisionObject* colObj1, btScalar relaxation, - btScalar desiredVelocity = 0., btScalar cfmSlip = 0.); + btManifoldPoint& cp, btScalar combinedTorsionalFriction, const btVector3& rel_pos1, const btVector3& rel_pos2, + btCollisionObject* colObj0, btCollisionObject* colObj1, btScalar relaxation, + btScalar desiredVelocity = 0., btScalar cfmSlip = 0.); btSolverConstraint& addFrictionConstraint(const btVector3& normalAxis, int solverBodyIdA, int solverBodyIdB, int frictionIndex, btManifoldPoint& cp, const btVector3& rel_pos1, const btVector3& rel_pos2, btCollisionObject* colObj0, btCollisionObject* colObj1, btScalar relaxation, const btContactSolverInfo& infoGlobal, btScalar desiredVelocity = 0., btScalar cfmSlip = 0.); btSolverConstraint& addTorsionalFrictionConstraint(const btVector3& normalAxis, int solverBodyIdA, int solverBodyIdB, int frictionIndex, btManifoldPoint& cp, btScalar torsionalFriction, const btVector3& rel_pos1, const btVector3& rel_pos2, btCollisionObject* colObj0, btCollisionObject* colObj1, btScalar relaxation, btScalar desiredVelocity = 0, btScalar cfmSlip = 0.f); void setupContactConstraint(btSolverConstraint & solverConstraint, int solverBodyIdA, int solverBodyIdB, btManifoldPoint& cp, - const btContactSolverInfo& infoGlobal, btScalar& relaxation, const btVector3& rel_pos1, const btVector3& rel_pos2); + const btContactSolverInfo& infoGlobal, btScalar& relaxation, const btVector3& rel_pos1, const btVector3& rel_pos2); static void applyAnisotropicFriction(btCollisionObject * colObj, btVector3 & frictionDirection, int frictionMode); void setFrictionConstraintImpulse(btSolverConstraint & solverConstraint, int solverBodyIdA, int solverBodyIdB, - btManifoldPoint& cp, const btContactSolverInfo& infoGlobal); + btManifoldPoint& cp, const btContactSolverInfo& infoGlobal); ///m_btSeed2 is used for re-arranging the constraint rows. improves convergence/quality of friction unsigned long m_btSeed2; @@ -97,6 +178,7 @@ protected: virtual void convertJoints(btTypedConstraint * *constraints, int numConstraints, const btContactSolverInfo& infoGlobal); void convertJoint(btSolverConstraint * currentConstraintRow, btTypedConstraint * constraint, const btTypedConstraint::btConstraintInfo1& info1, int solverBodyIdA, int solverBodyIdB, const btContactSolverInfo& infoGlobal); + virtual void convertBodies(btCollisionObject * *bodies, int numBodies, const btContactSolverInfo& infoGlobal); btScalar resolveSplitPenetrationSIMD(btSolverBody & bodyA, btSolverBody & bodyB, const btSolverConstraint& contactConstraint) @@ -122,7 +204,8 @@ protected: return m_resolveSplitPenetrationImpulse(bodyA, bodyB, contactConstraint); } -protected: +public: + void writeBackContacts(int iBegin, int iEnd, const btContactSolverInfo& infoGlobal); void writeBackJoints(int iBegin, int iEnd, const btContactSolverInfo& infoGlobal); void writeBackBodies(int iBegin, int iEnd, const btContactSolverInfo& infoGlobal); @@ -130,6 +213,7 @@ protected: virtual btScalar solveGroupCacheFriendlyFinish(btCollisionObject * *bodies, int numBodies, const btContactSolverInfo& infoGlobal); virtual btScalar solveSingleIteration(int iteration, btCollisionObject** bodies, int numBodies, btPersistentManifold** manifoldPtr, int numManifolds, btTypedConstraint** constraints, int numConstraints, const btContactSolverInfo& infoGlobal, btIDebugDraw* debugDrawer); + virtual btScalar solveGroupCacheFriendlySetup(btCollisionObject * *bodies, int numBodies, btPersistentManifold** manifoldPtr, int numManifolds, btTypedConstraint** constraints, int numConstraints, const btContactSolverInfo& infoGlobal, btIDebugDraw* debugDrawer); virtual btScalar solveGroupCacheFriendlyIterations(btCollisionObject * *bodies, int numBodies, btPersistentManifold** manifoldPtr, int numManifolds, btTypedConstraint** constraints, int numConstraints, const btContactSolverInfo& infoGlobal, btIDebugDraw* debugDrawer); @@ -141,13 +225,52 @@ public: virtual btScalar solveGroup(btCollisionObject * *bodies, int numBodies, btPersistentManifold** manifold, int numManifolds, btTypedConstraint** constraints, int numConstraints, const btContactSolverInfo& info, btIDebugDraw* debugDrawer, btDispatcher* dispatcher); + static btScalar solveSingleIterationInternal(btSISolverSingleIterationData& siData, int iteration, btTypedConstraint** constraints, int numConstraints, const btContactSolverInfo& infoGlobal); + static void convertBodiesInternal(btSISolverSingleIterationData& siData, btCollisionObject** bodies, int numBodies, const btContactSolverInfo& infoGlobal); + static void convertJointsInternal(btSISolverSingleIterationData& siData, btTypedConstraint** constraints, int numConstraints, const btContactSolverInfo& infoGlobal); + static void convertContactInternal(btSISolverSingleIterationData& siData, btPersistentManifold * manifold, const btContactSolverInfo& infoGlobal); + static void setupContactConstraintInternal(btSISolverSingleIterationData& siData, btSolverConstraint& solverConstraint, int solverBodyIdA, int solverBodyIdB, btManifoldPoint& cp, const btContactSolverInfo& infoGlobal, btScalar& relaxation, + const btVector3& rel_pos1, const btVector3& rel_pos2); + static btScalar restitutionCurveInternal(btScalar rel_vel, btScalar restitution, btScalar velocityThreshold); + static btSolverConstraint& addTorsionalFrictionConstraintInternal(btAlignedObjectArray<btSolverBody>& tmpSolverBodyPool, btConstraintArray& tmpSolverContactRollingFrictionConstraintPool, const btVector3& normalAxis, int solverBodyIdA, int solverBodyIdB, int frictionIndex, btManifoldPoint& cp, btScalar combinedTorsionalFriction, const btVector3& rel_pos1, const btVector3& rel_pos2, btCollisionObject* colObj0, btCollisionObject* colObj1, btScalar relaxation, btScalar desiredVelocity = 0, btScalar cfmSlip = 0.); + static void setupTorsionalFrictionConstraintInternal(btAlignedObjectArray<btSolverBody>& tmpSolverBodyPool, btSolverConstraint& solverConstraint, const btVector3& normalAxis1, int solverBodyIdA, int solverBodyIdB, + btManifoldPoint& cp, btScalar combinedTorsionalFriction, const btVector3& rel_pos1, const btVector3& rel_pos2, + btCollisionObject* colObj0, btCollisionObject* colObj1, btScalar relaxation, + btScalar desiredVelocity, btScalar cfmSlip); + static void setupFrictionConstraintInternal(btAlignedObjectArray<btSolverBody>& tmpSolverBodyPool, btSolverConstraint& solverConstraint, const btVector3& normalAxis, int solverBodyIdA, int solverBodyIdB, btManifoldPoint& cp, const btVector3& rel_pos1, const btVector3& rel_pos2, btCollisionObject* colObj0, btCollisionObject* colObj1, btScalar relaxation, const btContactSolverInfo& infoGlobal, btScalar desiredVelocity, btScalar cfmSlip); + static btSolverConstraint& addFrictionConstraintInternal(btAlignedObjectArray<btSolverBody>& tmpSolverBodyPool, btConstraintArray& tmpSolverContactFrictionConstraintPool, const btVector3& normalAxis, int solverBodyIdA, int solverBodyIdB, int frictionIndex, btManifoldPoint& cp, const btVector3& rel_pos1, const btVector3& rel_pos2, btCollisionObject* colObj0, btCollisionObject* colObj1, btScalar relaxation, const btContactSolverInfo& infoGlobal, btScalar desiredVelocity = 0., btScalar cfmSlip = 0.); + static void setFrictionConstraintImpulseInternal(btAlignedObjectArray<btSolverBody>& tmpSolverBodyPool, btConstraintArray& tmpSolverContactFrictionConstraintPool, + + btSolverConstraint& solverConstraint, + int solverBodyIdA, int solverBodyIdB, + btManifoldPoint& cp, const btContactSolverInfo& infoGlobal); + static void convertJointInternal(btAlignedObjectArray<btSolverBody>& tmpSolverBodyPool, + int& maxOverrideNumSolverIterations, + btSolverConstraint* currentConstraintRow, + btTypedConstraint* constraint, + const btTypedConstraint::btConstraintInfo1& info1, + int solverBodyIdA, + int solverBodyIdB, + const btContactSolverInfo& infoGlobal); + + static btScalar solveGroupCacheFriendlyFinishInternal(btSISolverSingleIterationData& siData, btCollisionObject** bodies, int numBodies, const btContactSolverInfo& infoGlobal); + + static void writeBackContactsInternal(btConstraintArray& tmpSolverContactConstraintPool, btConstraintArray& tmpSolverContactFrictionConstraintPool, int iBegin, int iEnd, const btContactSolverInfo& infoGlobal); + + static void writeBackJointsInternal(btConstraintArray& tmpSolverNonContactConstraintPool, int iBegin, int iEnd, const btContactSolverInfo& infoGlobal); + static void writeBackBodiesInternal(btAlignedObjectArray<btSolverBody>& tmpSolverBodyPool, int iBegin, int iEnd, const btContactSolverInfo& infoGlobal); + static void solveGroupCacheFriendlySplitImpulseIterationsInternal(btSISolverSingleIterationData& siData, btCollisionObject** bodies, int numBodies, btPersistentManifold** manifoldPtr, int numManifolds, btTypedConstraint** constraints, int numConstraints, const btContactSolverInfo& infoGlobal, btIDebugDraw* debugDrawer); + + ///clear internal cached data and reset random seed virtual void reset(); unsigned long btRand2(); - int btRandInt2(int n); + static unsigned long btRand2a(unsigned long& seed); + static int btRandInt2a(int n, unsigned long& seed); + void setRandSeed(unsigned long seed) { m_btSeed2 = seed; @@ -179,15 +302,22 @@ public: m_resolveSingleConstraintRowLowerLimit = rowSolver; } + + ///Various implementations of solving a single constraint row using a generic equality constraint, using scalar reference, SSE2 or SSE4 - btSingleConstraintRowSolver getScalarConstraintRowSolverGeneric(); - btSingleConstraintRowSolver getSSE2ConstraintRowSolverGeneric(); - btSingleConstraintRowSolver getSSE4_1ConstraintRowSolverGeneric(); + static btSingleConstraintRowSolver getScalarConstraintRowSolverGeneric(); + static btSingleConstraintRowSolver getSSE2ConstraintRowSolverGeneric(); + static btSingleConstraintRowSolver getSSE4_1ConstraintRowSolverGeneric(); ///Various implementations of solving a single constraint row using an inequality (lower limit) constraint, using scalar reference, SSE2 or SSE4 - btSingleConstraintRowSolver getScalarConstraintRowSolverLowerLimit(); - btSingleConstraintRowSolver getSSE2ConstraintRowSolverLowerLimit(); - btSingleConstraintRowSolver getSSE4_1ConstraintRowSolverLowerLimit(); + static btSingleConstraintRowSolver getScalarConstraintRowSolverLowerLimit(); + static btSingleConstraintRowSolver getSSE2ConstraintRowSolverLowerLimit(); + static btSingleConstraintRowSolver getSSE4_1ConstraintRowSolverLowerLimit(); + + static btSingleConstraintRowSolver getScalarSplitPenetrationImpulseGeneric(); + static btSingleConstraintRowSolver getSSE2SplitPenetrationImpulseGeneric(); + + btSolverAnalyticsData m_analyticsData; }; #endif //BT_SEQUENTIAL_IMPULSE_CONSTRAINT_SOLVER_H diff --git a/thirdparty/bullet/BulletDynamics/Dynamics/btSimulationIslandManagerMt.cpp b/thirdparty/bullet/BulletDynamics/Dynamics/btSimulationIslandManagerMt.cpp index 17287aa82a..5353fe009e 100644 --- a/thirdparty/bullet/BulletDynamics/Dynamics/btSimulationIslandManagerMt.cpp +++ b/thirdparty/bullet/BulletDynamics/Dynamics/btSimulationIslandManagerMt.cpp @@ -65,7 +65,7 @@ inline int getIslandId(const btPersistentManifold* lhs) return islandId; } -SIMD_FORCE_INLINE int btGetConstraintIslandId(const btTypedConstraint* lhs) +SIMD_FORCE_INLINE int btGetConstraintIslandId1(const btTypedConstraint* lhs) { const btCollisionObject& rcolObj0 = lhs->getRigidBodyA(); const btCollisionObject& rcolObj1 = lhs->getRigidBodyB(); @@ -452,7 +452,7 @@ void btSimulationIslandManagerMt::addConstraintsToIslands(btAlignedObjectArray<b btTypedConstraint* constraint = constraints[i]; if (constraint->isEnabled()) { - int islandId = btGetConstraintIslandId(constraint); + int islandId = btGetConstraintIslandId1(constraint); // if island is not sleeping, if (Island* island = getIsland(islandId)) { diff --git a/thirdparty/bullet/BulletDynamics/Featherstone/btMultiBody.cpp b/thirdparty/bullet/BulletDynamics/Featherstone/btMultiBody.cpp index 53fc48d4b9..3e210d7520 100644 --- a/thirdparty/bullet/BulletDynamics/Featherstone/btMultiBody.cpp +++ b/thirdparty/bullet/BulletDynamics/Featherstone/btMultiBody.cpp @@ -106,6 +106,7 @@ btMultiBody::btMultiBody(int n_links, m_fixedBase(fixedBase), m_awake(true), m_canSleep(canSleep), + m_canWakeup(true), m_sleepTimer(0), m_userObjectPointer(0), m_userIndex2(-1), @@ -343,6 +344,7 @@ void btMultiBody::finalizeMultiDof() m_deltaV.resize(6 + m_dofCount); m_realBuf.resize(6 + m_dofCount + m_dofCount * m_dofCount + 6 + m_dofCount); //m_dofCount for joint-space vels + m_dofCount^2 for "D" matrices + delta-pos vector (6 base "vels" + joint "vels") m_vectorBuf.resize(2 * m_dofCount); //two 3-vectors (i.e. one six-vector) for each system dof ("h" matrices) + m_matrixBuf.resize(m_links.size() + 1); for (int i = 0; i < m_vectorBuf.size(); i++) { m_vectorBuf[i].setValue(0, 0, 0); @@ -350,9 +352,9 @@ void btMultiBody::finalizeMultiDof() updateLinksDofOffsets(); } -int btMultiBody::getParent(int i) const +int btMultiBody::getParent(int link_num) const { - return m_links[i].m_parent; + return m_links[link_num].m_parent; } btScalar btMultiBody::getLinkMass(int i) const @@ -1882,6 +1884,8 @@ void btMultiBody::checkMotionAndSleepIfRequired(btScalar timestep) return; } + + // motion is computed as omega^2 + v^2 + (sum of squares of joint velocities) btScalar motion = 0; { @@ -1900,8 +1904,11 @@ void btMultiBody::checkMotionAndSleepIfRequired(btScalar timestep) else { m_sleepTimer = 0; - if (!m_awake) - wakeUp(); + if (m_canWakeup) + { + if (!m_awake) + wakeUp(); + } } } diff --git a/thirdparty/bullet/BulletDynamics/Featherstone/btMultiBody.h b/thirdparty/bullet/BulletDynamics/Featherstone/btMultiBody.h index e5c0f1806b..c0b0d003be 100644 --- a/thirdparty/bullet/BulletDynamics/Featherstone/btMultiBody.h +++ b/thirdparty/bullet/BulletDynamics/Featherstone/btMultiBody.h @@ -65,7 +65,7 @@ public: virtual ~btMultiBody(); //note: fixed link collision with parent is always disabled - void setupFixed(int linkIndex, + void setupFixed(int i, //linkIndex btScalar mass, const btVector3 &inertia, int parent, @@ -83,7 +83,7 @@ public: const btVector3 &thisPivotToThisComOffset, bool disableParentCollision); - void setupRevolute(int linkIndex, // 0 to num_links-1 + void setupRevolute(int i, // 0 to num_links-1 btScalar mass, const btVector3 &inertia, int parentIndex, @@ -93,7 +93,7 @@ public: const btVector3 &thisPivotToThisComOffset, // vector from joint axis to my COM, in MY frame bool disableParentCollision = false); - void setupSpherical(int linkIndex, // 0 to num_links-1 + void setupSpherical(int i, // linkIndex, 0 to num_links-1 btScalar mass, const btVector3 &inertia, int parent, @@ -182,7 +182,10 @@ public: // get/set pos/vel/rot/omega for the base link // - const btVector3 &getBasePos() const { return m_basePos; } // in world frame + const btVector3 &getBasePos() const + { + return m_basePos; + } // in world frame const btVector3 getBaseVel() const { return btVector3(m_realBuf[3], m_realBuf[4], m_realBuf[5]); @@ -274,15 +277,15 @@ public: // // transform vectors in local frame of link i to world frame (or vice versa) // - btVector3 localPosToWorld(int i, const btVector3 &vec) const; - btVector3 localDirToWorld(int i, const btVector3 &vec) const; - btVector3 worldPosToLocal(int i, const btVector3 &vec) const; - btVector3 worldDirToLocal(int i, const btVector3 &vec) const; + btVector3 localPosToWorld(int i, const btVector3 &local_pos) const; + btVector3 localDirToWorld(int i, const btVector3 &local_dir) const; + btVector3 worldPosToLocal(int i, const btVector3 &world_pos) const; + btVector3 worldDirToLocal(int i, const btVector3 &world_dir) const; // // transform a frame in local coordinate to a frame in world coordinate // - btMatrix3x3 localFrameToWorld(int i, const btMatrix3x3 &mat) const; + btMatrix3x3 localFrameToWorld(int i, const btMatrix3x3 &local_frame) const; // // calculate kinetic energy and angular momentum @@ -451,7 +454,10 @@ public: // void setCanSleep(bool canSleep) { - m_canSleep = canSleep; + if (m_canWakeup) + { + m_canSleep = canSleep; + } } bool getCanSleep() const @@ -459,6 +465,15 @@ public: return m_canSleep; } + bool getCanWakeup() const + { + return m_canWakeup; + } + + void setCanWakeup(bool canWakeup) + { + m_canWakeup = canWakeup; + } bool isAwake() const { return m_awake; } void wakeUp(); void goToSleep(); @@ -469,6 +484,11 @@ public: return m_fixedBase; } + void setFixedBase(bool fixedBase) + { + m_fixedBase = fixedBase; + } + int getCompanionId() const { return m_companionId; @@ -556,11 +576,11 @@ public: { return m_internalNeedsJointFeedback; } - void forwardKinematics(btAlignedObjectArray<btQuaternion> & scratch_q, btAlignedObjectArray<btVector3> & scratch_m); + void forwardKinematics(btAlignedObjectArray<btQuaternion>& world_to_local, btAlignedObjectArray<btVector3> & local_origin); void compTreeLinkVelocities(btVector3 * omega, btVector3 * vel) const; - void updateCollisionObjectWorldTransforms(btAlignedObjectArray<btQuaternion> & scratch_q, btAlignedObjectArray<btVector3> & scratch_m); + void updateCollisionObjectWorldTransforms(btAlignedObjectArray<btQuaternion> & world_to_local, btAlignedObjectArray<btVector3> & local_origin); virtual int calculateSerializeBufferSize() const; @@ -688,6 +708,7 @@ private: // Sleep parameters. bool m_awake; bool m_canSleep; + bool m_canWakeup; btScalar m_sleepTimer; void *m_userObjectPointer; diff --git a/thirdparty/bullet/BulletDynamics/Featherstone/btMultiBodyConstraintSolver.cpp b/thirdparty/bullet/BulletDynamics/Featherstone/btMultiBodyConstraintSolver.cpp index e97bd71cc4..23e163f0e8 100644 --- a/thirdparty/bullet/BulletDynamics/Featherstone/btMultiBodyConstraintSolver.cpp +++ b/thirdparty/bullet/BulletDynamics/Featherstone/btMultiBodyConstraintSolver.cpp @@ -70,6 +70,30 @@ btScalar btMultiBodyConstraintSolver::solveSingleIteration(int iteration, btColl //solve featherstone frictional contact if (infoGlobal.m_solverMode & SOLVER_USE_2_FRICTION_DIRECTIONS && ((infoGlobal.m_solverMode & SOLVER_DISABLE_IMPLICIT_CONE_FRICTION) == 0)) { + for (int j1 = 0; j1 < this->m_multiBodySpinningFrictionContactConstraints.size(); j1++) + { + if (iteration < infoGlobal.m_numIterations) + { + int index = j1; + + btMultiBodySolverConstraint& frictionConstraint = m_multiBodySpinningFrictionContactConstraints[index]; + btScalar totalImpulse = m_multiBodyNormalContactConstraints[frictionConstraint.m_frictionIndex].m_appliedImpulse; + //adjust friction limits here + if (totalImpulse > btScalar(0)) + { + frictionConstraint.m_lowerLimit = -(frictionConstraint.m_friction * totalImpulse); + frictionConstraint.m_upperLimit = frictionConstraint.m_friction * totalImpulse; + btScalar residual = resolveSingleConstraintRowGeneric(frictionConstraint); + leastSquaredResidual = btMax(leastSquaredResidual, residual * residual); + + if (frictionConstraint.m_multiBodyA) + frictionConstraint.m_multiBodyA->setPosUpdated(false); + if (frictionConstraint.m_multiBodyB) + frictionConstraint.m_multiBodyB->setPosUpdated(false); + } + } + } + for (int j1 = 0; j1 < this->m_multiBodyTorsionalFrictionContactConstraints.size(); j1++) { if (iteration < infoGlobal.m_numIterations) @@ -78,18 +102,29 @@ btScalar btMultiBodyConstraintSolver::solveSingleIteration(int iteration, btColl btMultiBodySolverConstraint& frictionConstraint = m_multiBodyTorsionalFrictionContactConstraints[index]; btScalar totalImpulse = m_multiBodyNormalContactConstraints[frictionConstraint.m_frictionIndex].m_appliedImpulse; + j1++; + int index2 = j1; + btMultiBodySolverConstraint& frictionConstraintB = m_multiBodyTorsionalFrictionContactConstraints[index2]; //adjust friction limits here - if (totalImpulse > btScalar(0)) + if (totalImpulse > btScalar(0) && frictionConstraint.m_frictionIndex == frictionConstraintB.m_frictionIndex) { frictionConstraint.m_lowerLimit = -(frictionConstraint.m_friction * totalImpulse); frictionConstraint.m_upperLimit = frictionConstraint.m_friction * totalImpulse; - btScalar residual = resolveSingleConstraintRowGeneric(frictionConstraint); + frictionConstraintB.m_lowerLimit = -(frictionConstraintB.m_friction * totalImpulse); + frictionConstraintB.m_upperLimit = frictionConstraintB.m_friction * totalImpulse; + + btScalar residual = resolveConeFrictionConstraintRows(frictionConstraint, frictionConstraintB); leastSquaredResidual = btMax(leastSquaredResidual, residual * residual); if (frictionConstraint.m_multiBodyA) frictionConstraint.m_multiBodyA->setPosUpdated(false); if (frictionConstraint.m_multiBodyB) frictionConstraint.m_multiBodyB->setPosUpdated(false); + + if (frictionConstraintB.m_multiBodyA) + frictionConstraintB.m_multiBodyA->setPosUpdated(false); + if (frictionConstraintB.m_multiBodyB) + frictionConstraintB.m_multiBodyB->setPosUpdated(false); } } } @@ -164,6 +199,7 @@ btScalar btMultiBodyConstraintSolver::solveGroupCacheFriendlySetup(btCollisionOb m_multiBodyNormalContactConstraints.resize(0); m_multiBodyFrictionContactConstraints.resize(0); m_multiBodyTorsionalFrictionContactConstraints.resize(0); + m_multiBodySpinningFrictionContactConstraints.resize(0); m_data.m_jacobians.resize(0); m_data.m_deltaVelocitiesUnitImpulse.resize(0); @@ -1169,6 +1205,43 @@ btMultiBodySolverConstraint& btMultiBodyConstraintSolver::addMultiBodyTorsionalF return solverConstraint; } +btMultiBodySolverConstraint& btMultiBodyConstraintSolver::addMultiBodySpinningFrictionConstraint(const btVector3& normalAxis, btPersistentManifold* manifold, int frictionIndex, btManifoldPoint& cp, + btScalar combinedTorsionalFriction, + btCollisionObject* colObj0, btCollisionObject* colObj1, btScalar relaxation, const btContactSolverInfo& infoGlobal, btScalar desiredVelocity, btScalar cfmSlip) +{ + BT_PROFILE("addMultiBodyRollingFrictionConstraint"); + + btMultiBodySolverConstraint& solverConstraint = m_multiBodySpinningFrictionContactConstraints.expandNonInitializing(); + solverConstraint.m_orgConstraint = 0; + solverConstraint.m_orgDofIndex = -1; + + solverConstraint.m_frictionIndex = frictionIndex; + bool isFriction = true; + + const btMultiBodyLinkCollider* fcA = btMultiBodyLinkCollider::upcast(manifold->getBody0()); + const btMultiBodyLinkCollider* fcB = btMultiBodyLinkCollider::upcast(manifold->getBody1()); + + btMultiBody* mbA = fcA ? fcA->m_multiBody : 0; + btMultiBody* mbB = fcB ? fcB->m_multiBody : 0; + + int solverBodyIdA = mbA ? -1 : getOrInitSolverBody(*colObj0, infoGlobal.m_timeStep); + int solverBodyIdB = mbB ? -1 : getOrInitSolverBody(*colObj1, infoGlobal.m_timeStep); + + solverConstraint.m_solverBodyIdA = solverBodyIdA; + solverConstraint.m_solverBodyIdB = solverBodyIdB; + solverConstraint.m_multiBodyA = mbA; + if (mbA) + solverConstraint.m_linkA = fcA->m_link; + + solverConstraint.m_multiBodyB = mbB; + if (mbB) + solverConstraint.m_linkB = fcB->m_link; + + solverConstraint.m_originalContactPoint = &cp; + + setupMultiBodyTorsionalFrictionConstraint(solverConstraint, normalAxis, cp, combinedTorsionalFriction, infoGlobal, relaxation, isFriction, desiredVelocity, cfmSlip); + return solverConstraint; +} void btMultiBodyConstraintSolver::convertMultiBodyContact(btPersistentManifold* manifold, const btContactSolverInfo& infoGlobal) { const btMultiBodyLinkCollider* fcA = btMultiBodyLinkCollider::upcast(manifold->getBody0()); @@ -1258,7 +1331,7 @@ void btMultiBodyConstraintSolver::convertMultiBodyContact(btPersistentManifold* { if (cp.m_combinedSpinningFriction > 0) { - addMultiBodyTorsionalFrictionConstraint(cp.m_normalWorldOnB, manifold, frictionIndex, cp, cp.m_combinedSpinningFriction, colObj0, colObj1, relaxation, infoGlobal); + addMultiBodySpinningFrictionConstraint(cp.m_normalWorldOnB, manifold, frictionIndex, cp, cp.m_combinedSpinningFriction, colObj0, colObj1, relaxation, infoGlobal); } if (cp.m_combinedRollingFriction > 0) { @@ -1267,11 +1340,8 @@ void btMultiBodyConstraintSolver::convertMultiBodyContact(btPersistentManifold* applyAnisotropicFriction(colObj0, cp.m_lateralFrictionDir2, btCollisionObject::CF_ANISOTROPIC_ROLLING_FRICTION); applyAnisotropicFriction(colObj1, cp.m_lateralFrictionDir2, btCollisionObject::CF_ANISOTROPIC_ROLLING_FRICTION); - if (cp.m_lateralFrictionDir1.length() > 0.001) - addMultiBodyTorsionalFrictionConstraint(cp.m_lateralFrictionDir1, manifold, frictionIndex, cp, cp.m_combinedRollingFriction, colObj0, colObj1, relaxation, infoGlobal); - - if (cp.m_lateralFrictionDir2.length() > 0.001) - addMultiBodyTorsionalFrictionConstraint(cp.m_lateralFrictionDir2, manifold, frictionIndex, cp, cp.m_combinedRollingFriction, colObj0, colObj1, relaxation, infoGlobal); + addMultiBodyTorsionalFrictionConstraint(cp.m_lateralFrictionDir1, manifold, frictionIndex, cp, cp.m_combinedRollingFriction, colObj0, colObj1, relaxation, infoGlobal); + addMultiBodyTorsionalFrictionConstraint(cp.m_lateralFrictionDir2, manifold, frictionIndex, cp, cp.m_combinedRollingFriction, colObj0, colObj1, relaxation, infoGlobal); } rollingFriction--; } diff --git a/thirdparty/bullet/BulletDynamics/Featherstone/btMultiBodyConstraintSolver.h b/thirdparty/bullet/BulletDynamics/Featherstone/btMultiBodyConstraintSolver.h index f39f2879fc..abf5718839 100644 --- a/thirdparty/bullet/BulletDynamics/Featherstone/btMultiBodyConstraintSolver.h +++ b/thirdparty/bullet/BulletDynamics/Featherstone/btMultiBodyConstraintSolver.h @@ -34,6 +34,7 @@ protected: btMultiBodyConstraintArray m_multiBodyNormalContactConstraints; btMultiBodyConstraintArray m_multiBodyFrictionContactConstraints; btMultiBodyConstraintArray m_multiBodyTorsionalFrictionContactConstraints; + btMultiBodyConstraintArray m_multiBodySpinningFrictionContactConstraints; btMultiBodyJacobianData m_data; @@ -54,6 +55,10 @@ protected: btScalar combinedTorsionalFriction, btCollisionObject* colObj0, btCollisionObject* colObj1, btScalar relaxation, const btContactSolverInfo& infoGlobal, btScalar desiredVelocity = 0, btScalar cfmSlip = 0); + btMultiBodySolverConstraint& addMultiBodySpinningFrictionConstraint(const btVector3& normalAxis, btPersistentManifold* manifold, int frictionIndex, btManifoldPoint& cp, + btScalar combinedTorsionalFriction, + btCollisionObject* colObj0, btCollisionObject* colObj1, btScalar relaxation, const btContactSolverInfo& infoGlobal, btScalar desiredVelocity = 0, btScalar cfmSlip = 0); + void setupMultiBodyJointLimitConstraint(btMultiBodySolverConstraint & constraintRow, btScalar * jacA, btScalar * jacB, btScalar penetration, btScalar combinedFrictionCoeff, btScalar combinedRestitutionCoeff, diff --git a/thirdparty/bullet/BulletDynamics/Featherstone/btMultiBodyDynamicsWorld.cpp b/thirdparty/bullet/BulletDynamics/Featherstone/btMultiBodyDynamicsWorld.cpp index 1557987bc3..1131e5378c 100644 --- a/thirdparty/bullet/BulletDynamics/Featherstone/btMultiBodyDynamicsWorld.cpp +++ b/thirdparty/bullet/BulletDynamics/Featherstone/btMultiBodyDynamicsWorld.cpp @@ -207,6 +207,7 @@ public: } }; + struct MultiBodyInplaceSolverIslandCallback : public btSimulationIslandManager::IslandCallback { btContactSolverInfo* m_solverInfo; @@ -224,6 +225,8 @@ struct MultiBodyInplaceSolverIslandCallback : public btSimulationIslandManager:: btAlignedObjectArray<btTypedConstraint*> m_constraints; btAlignedObjectArray<btMultiBodyConstraint*> m_multiBodyConstraints; + btAlignedObjectArray<btSolverAnalyticsData> m_islandAnalyticsData; + MultiBodyInplaceSolverIslandCallback(btMultiBodyConstraintSolver* solver, btDispatcher* dispatcher) : m_solverInfo(NULL), @@ -235,7 +238,7 @@ struct MultiBodyInplaceSolverIslandCallback : public btSimulationIslandManager:: { } - MultiBodyInplaceSolverIslandCallback& operator=(MultiBodyInplaceSolverIslandCallback& other) + MultiBodyInplaceSolverIslandCallback& operator=(const MultiBodyInplaceSolverIslandCallback& other) { btAssert(0); (void)other; @@ -244,6 +247,7 @@ struct MultiBodyInplaceSolverIslandCallback : public btSimulationIslandManager:: SIMD_FORCE_INLINE void setup(btContactSolverInfo* solverInfo, btTypedConstraint** sortedConstraints, int numConstraints, btMultiBodyConstraint** sortedMultiBodyConstraints, int numMultiBodyConstraints, btIDebugDraw* debugDrawer) { + m_islandAnalyticsData.clear(); btAssert(solverInfo); m_solverInfo = solverInfo; @@ -270,6 +274,11 @@ struct MultiBodyInplaceSolverIslandCallback : public btSimulationIslandManager:: { ///we don't split islands, so all constraints/contact manifolds/bodies are passed into the solver regardless the island id m_solver->solveMultiBodyGroup(bodies, numBodies, manifolds, numManifolds, m_sortedConstraints, m_numConstraints, &m_multiBodySortedConstraints[0], m_numConstraints, *m_solverInfo, m_debugDrawer, m_dispatcher); + if (m_solverInfo->m_reportSolverAnalytics&1) + { + m_solver->m_analyticsData.m_islandId = islandId; + m_islandAnalyticsData.push_back(m_solver->m_analyticsData); + } } else { @@ -335,7 +344,7 @@ struct MultiBodyInplaceSolverIslandCallback : public btSimulationIslandManager:: if ((m_multiBodyConstraints.size() + m_constraints.size() + m_manifolds.size()) > m_solverInfo->m_minimumSolverBatchSize) { - processConstraints(); + processConstraints(islandId); } else { @@ -344,7 +353,7 @@ struct MultiBodyInplaceSolverIslandCallback : public btSimulationIslandManager:: } } } - void processConstraints() + void processConstraints(int islandId=-1) { btCollisionObject** bodies = m_bodies.size() ? &m_bodies[0] : 0; btPersistentManifold** manifold = m_manifolds.size() ? &m_manifolds[0] : 0; @@ -354,6 +363,11 @@ struct MultiBodyInplaceSolverIslandCallback : public btSimulationIslandManager:: //printf("mb contacts = %d, mb constraints = %d\n", mbContacts, m_multiBodyConstraints.size()); m_solver->solveMultiBodyGroup(bodies, m_bodies.size(), manifold, m_manifolds.size(), constraints, m_constraints.size(), multiBodyConstraints, m_multiBodyConstraints.size(), *m_solverInfo, m_debugDrawer, m_dispatcher); + if (m_bodies.size() && (m_solverInfo->m_reportSolverAnalytics&1)) + { + m_solver->m_analyticsData.m_islandId = islandId; + m_islandAnalyticsData.push_back(m_solver->m_analyticsData); + } m_bodies.resize(0); m_manifolds.resize(0); m_constraints.resize(0); @@ -361,6 +375,11 @@ struct MultiBodyInplaceSolverIslandCallback : public btSimulationIslandManager:: } }; +void btMultiBodyDynamicsWorld::getAnalyticsData(btAlignedObjectArray<btSolverAnalyticsData>& islandAnalyticsData) const +{ + islandAnalyticsData = m_solverMultiBodyIslandCallback->m_islandAnalyticsData; +} + btMultiBodyDynamicsWorld::btMultiBodyDynamicsWorld(btDispatcher* dispatcher, btBroadphaseInterface* pairCache, btMultiBodyConstraintSolver* constraintSolver, btCollisionConfiguration* collisionConfiguration) : btDiscreteDynamicsWorld(dispatcher, pairCache, constraintSolver, collisionConfiguration), m_multiBodyConstraintSolver(constraintSolver) @@ -717,13 +736,17 @@ void btMultiBodyDynamicsWorld::solveConstraints(btContactSolverInfo& solverInfo) m_scratch_v.resize(bod->getNumLinks() + 1); m_scratch_m.resize(bod->getNumLinks() + 1); + if (bod->internalNeedsJointFeedback()) { if (!bod->isUsingRK4Integration()) { - bool isConstraintPass = true; - bod->computeAccelerationsArticulatedBodyAlgorithmMultiDof(solverInfo.m_timeStep, m_scratch_r, m_scratch_v, m_scratch_m, isConstraintPass, - getSolverInfo().m_jointFeedbackInWorldSpace, - getSolverInfo().m_jointFeedbackInJointFrame); + if (bod->internalNeedsJointFeedback()) + { + bool isConstraintPass = true; + bod->computeAccelerationsArticulatedBodyAlgorithmMultiDof(solverInfo.m_timeStep, m_scratch_r, m_scratch_v, m_scratch_m, isConstraintPass, + getSolverInfo().m_jointFeedbackInWorldSpace, + getSolverInfo().m_jointFeedbackInJointFrame); + } } } } diff --git a/thirdparty/bullet/BulletDynamics/Featherstone/btMultiBodyDynamicsWorld.h b/thirdparty/bullet/BulletDynamics/Featherstone/btMultiBodyDynamicsWorld.h index 641238f3bb..e36c2f7aad 100644 --- a/thirdparty/bullet/BulletDynamics/Featherstone/btMultiBodyDynamicsWorld.h +++ b/thirdparty/bullet/BulletDynamics/Featherstone/btMultiBodyDynamicsWorld.h @@ -109,5 +109,7 @@ public: virtual void serialize(btSerializer* serializer); virtual void setMultiBodyConstraintSolver(btMultiBodyConstraintSolver* solver); virtual void setConstraintSolver(btConstraintSolver* solver); + virtual void getAnalyticsData(btAlignedObjectArray<struct btSolverAnalyticsData>& m_islandAnalyticsData) const; + }; #endif //BT_MULTIBODY_DYNAMICS_WORLD_H diff --git a/thirdparty/bullet/BulletDynamics/Featherstone/btMultiBodyLinkCollider.h b/thirdparty/bullet/BulletDynamics/Featherstone/btMultiBodyLinkCollider.h index f91c001f12..bc909990c2 100644 --- a/thirdparty/bullet/BulletDynamics/Featherstone/btMultiBodyLinkCollider.h +++ b/thirdparty/bullet/BulletDynamics/Featherstone/btMultiBodyLinkCollider.h @@ -36,6 +36,10 @@ public: btMultiBody* m_multiBody; int m_link; + virtual ~btMultiBodyLinkCollider() + { + + } btMultiBodyLinkCollider(btMultiBody* multiBody, int link) : m_multiBody(multiBody), m_link(link) diff --git a/thirdparty/bullet/BulletDynamics/Featherstone/btMultiBodyMLCPConstraintSolver.cpp b/thirdparty/bullet/BulletDynamics/Featherstone/btMultiBodyMLCPConstraintSolver.cpp index 338e8af0ab..f2186a93e9 100644 --- a/thirdparty/bullet/BulletDynamics/Featherstone/btMultiBodyMLCPConstraintSolver.cpp +++ b/thirdparty/bullet/BulletDynamics/Featherstone/btMultiBodyMLCPConstraintSolver.cpp @@ -22,9 +22,9 @@ subject to the following restrictions: #define DIRECTLY_UPDATE_VELOCITY_DURING_SOLVER_ITERATIONS -static bool interleaveContactAndFriction = false; +static bool interleaveContactAndFriction1 = false; -struct btJointNode +struct btJointNode1 { int jointIndex; // pointer to enclosing dxJoint object int otherBodyIndex; // *other* body this joint is connected to @@ -241,7 +241,7 @@ void btMultiBodyMLCPConstraintSolver::createMLCPFast(const btContactSolverInfo& void btMultiBodyMLCPConstraintSolver::createMLCPFastRigidBody(const btContactSolverInfo& infoGlobal) { - int numContactRows = interleaveContactAndFriction ? 3 : 1; + int numContactRows = interleaveContactAndFriction1 ? 3 : 1; int numConstraintRows = m_allConstraintPtrArray.size(); @@ -301,7 +301,7 @@ void btMultiBodyMLCPConstraintSolver::createMLCPFastRigidBody(const btContactSol BT_PROFILE("bodyJointNodeArray.resize"); bodyJointNodeArray.resize(numBodies, -1); } - btAlignedObjectArray<btJointNode> jointNodeArray; + btAlignedObjectArray<btJointNode1> jointNodeArray; { BT_PROFILE("jointNodeArray.reserve"); jointNodeArray.reserve(2 * m_allConstraintPtrArray.size()); @@ -729,7 +729,7 @@ btScalar btMultiBodyMLCPConstraintSolver::solveGroupCacheFriendlySetup( int firstContactConstraintOffset = dindex; // The btSequentialImpulseConstraintSolver moves all friction constraints at the very end, we can also interleave them instead - if (interleaveContactAndFriction) + if (interleaveContactAndFriction1) { for (int i = 0; i < m_tmpSolverContactConstraintPool.size(); i++) { @@ -785,7 +785,7 @@ btScalar btMultiBodyMLCPConstraintSolver::solveGroupCacheFriendlySetup( firstContactConstraintOffset = dindex; // The btSequentialImpulseConstraintSolver moves all friction constraints at the very end, we can also interleave them instead - if (interleaveContactAndFriction) + if (interleaveContactAndFriction1) { for (int i = 0; i < m_multiBodyNormalContactConstraints.size(); ++i) { diff --git a/thirdparty/bullet/BulletDynamics/Featherstone/btMultiBodyMLCPConstraintSolver.h b/thirdparty/bullet/BulletDynamics/Featherstone/btMultiBodyMLCPConstraintSolver.h index 6be36ba142..77fdb86bb9 100644 --- a/thirdparty/bullet/BulletDynamics/Featherstone/btMultiBodyMLCPConstraintSolver.h +++ b/thirdparty/bullet/BulletDynamics/Featherstone/btMultiBodyMLCPConstraintSolver.h @@ -156,7 +156,7 @@ protected: btTypedConstraint** constraints, int numConstraints, const btContactSolverInfo& infoGlobal, - btIDebugDraw* debugDrawer) BT_OVERRIDE; + btIDebugDraw* debugDrawer) ; public: BT_DECLARE_ALIGNED_ALLOCATOR() diff --git a/thirdparty/bullet/BulletDynamics/MLCPSolvers/btLemkeSolver.h b/thirdparty/bullet/BulletDynamics/MLCPSolvers/btLemkeSolver.h index 3f215e56bb..ac2fc46ab0 100644 --- a/thirdparty/bullet/BulletDynamics/MLCPSolvers/btLemkeSolver.h +++ b/thirdparty/bullet/BulletDynamics/MLCPSolvers/btLemkeSolver.h @@ -20,7 +20,7 @@ subject to the following restrictions: #include "btMLCPSolverInterface.h" #include "btLemkeAlgorithm.h" -///The btLemkeSolver is based on "Fast Implementation of Lemke’s Algorithm for Rigid Body Contact Simulation (John E. Lloyd) " +///The btLemkeSolver is based on "Fast Implementation of Lemke's Algorithm for Rigid Body Contact Simulation (John E. Lloyd) " ///It is a slower but more accurate solver. Increase the m_maxLoops for better convergence, at the cost of more CPU time. ///The original implementation of the btLemkeAlgorithm was done by Kilian Grundl from the MBSim team class btLemkeSolver : public btMLCPSolverInterface @@ -67,7 +67,7 @@ public: btMatrixXu A1; btMatrixXu B(n, n); { - BT_PROFILE("inverse(slow)"); + //BT_PROFILE("inverse(slow)"); A1.resize(A.rows(), A.cols()); for (int row = 0; row < A.rows(); row++) { @@ -174,7 +174,7 @@ public: y1.resize(n, 1); btLemkeAlgorithm lemke(M, qq, m_debugLevel); { - BT_PROFILE("lemke.solve"); + //BT_PROFILE("lemke.solve"); lemke.setSystem(M, qq); z1 = lemke.solve(m_maxLoops); } diff --git a/thirdparty/bullet/BulletInverseDynamics/MultiBodyTree.cpp b/thirdparty/bullet/BulletInverseDynamics/MultiBodyTree.cpp index f150b5ae4c..9326b0d098 100644 --- a/thirdparty/bullet/BulletInverseDynamics/MultiBodyTree.cpp +++ b/thirdparty/bullet/BulletInverseDynamics/MultiBodyTree.cpp @@ -349,7 +349,7 @@ int MultiBodyTree::finalize() const int &num_bodies = m_init_cache->numBodies(); const int &num_dofs = m_init_cache->numDoFs(); - if (num_dofs <= 0) + if (num_dofs < 0) { bt_id_error_message("Need num_dofs>=1, but num_dofs= %d\n", num_dofs); //return -1; diff --git a/thirdparty/bullet/BulletInverseDynamics/details/MultiBodyTreeImpl.cpp b/thirdparty/bullet/BulletInverseDynamics/details/MultiBodyTreeImpl.cpp index befbc2e2a4..ec9a562295 100644 --- a/thirdparty/bullet/BulletInverseDynamics/details/MultiBodyTreeImpl.cpp +++ b/thirdparty/bullet/BulletInverseDynamics/details/MultiBodyTreeImpl.cpp @@ -479,9 +479,17 @@ int MultiBodyTree::MultiBodyImpl::calculateKinematics(const vecx &q, const vecx //todo: review RigidBody &body = m_body_list[m_body_spherical_list[i]]; - body.m_body_T_parent = transformZ(q(body.m_q_index + 2)) * - transformY(q(body.m_q_index + 1)) * - transformX(q(body.m_q_index)); + mat33 T; + + T = transformX(q(body.m_q_index)) * + transformY(q(body.m_q_index + 1)) * + transformZ(q(body.m_q_index + 2)); + body.m_body_T_parent = T * body.m_body_T_parent_ref; + + body.m_parent_pos_parent_body(0)=0; + body.m_parent_pos_parent_body(1)=0; + body.m_parent_pos_parent_body(2)=0; + body.m_parent_pos_parent_body = body.m_body_T_parent * body.m_parent_pos_parent_body; if (type >= POSITION_VELOCITY) @@ -832,6 +840,25 @@ int MultiBodyTree::MultiBodyImpl::calculateMassMatrix(const vecx &q, const bool body.m_parent_pos_parent_body = body.m_body_T_parent * body.m_parent_pos_parent_body; } + + for (idArrayIdx i = 0; i < m_body_spherical_list.size(); i++) + { + //todo: review + RigidBody &body = m_body_list[m_body_spherical_list[i]]; + + mat33 T; + + T = transformX(q(body.m_q_index)) * + transformY(q(body.m_q_index + 1)) * + transformZ(q(body.m_q_index + 2)); + body.m_body_T_parent = T * body.m_body_T_parent_ref; + + body.m_parent_pos_parent_body(0)=0; + body.m_parent_pos_parent_body(1)=0; + body.m_parent_pos_parent_body(2)=0; + + body.m_parent_pos_parent_body = body.m_body_T_parent * body.m_parent_pos_parent_body; + } } for (int i = m_body_list.size() - 1; i >= 0; i--) { diff --git a/thirdparty/bullet/BulletSoftBody/btSoftBody.cpp b/thirdparty/bullet/BulletSoftBody/btSoftBody.cpp index 58796a88d0..7463bdc019 100644 --- a/thirdparty/bullet/BulletSoftBody/btSoftBody.cpp +++ b/thirdparty/bullet/BulletSoftBody/btSoftBody.cpp @@ -518,7 +518,7 @@ void btSoftBody::addAeroForceToNode(const btVector3& windVelocity, int nodeIndex fDrag = 0.5f * kDG * medium.m_density * rel_v2 * tri_area * n_dot_v * (-rel_v_nrm); // Check angle of attack - // cos(10º) = 0.98480 + // cos(10°) = 0.98480 if (0 < n_dot_v && n_dot_v < 0.98480f) fLift = 0.5f * kLF * medium.m_density * rel_v_len * tri_area * btSqrt(1.0f - n_dot_v * n_dot_v) * (nrm.cross(rel_v_nrm).cross(rel_v_nrm)); @@ -604,7 +604,7 @@ void btSoftBody::addAeroForceToFace(const btVector3& windVelocity, int faceIndex fDrag = 0.5f * kDG * medium.m_density * rel_v2 * tri_area * n_dot_v * (-rel_v_nrm); // Check angle of attack - // cos(10º) = 0.98480 + // cos(10°) = 0.98480 if (0 < n_dot_v && n_dot_v < 0.98480f) fLift = 0.5f * kLF * medium.m_density * rel_v_len * tri_area * btSqrt(1.0f - n_dot_v * n_dot_v) * (nrm.cross(rel_v_nrm).cross(rel_v_nrm)); diff --git a/thirdparty/bullet/LinearMath/TaskScheduler/btThreadSupportPosix.cpp b/thirdparty/bullet/LinearMath/TaskScheduler/btThreadSupportPosix.cpp index 02f4ed1631..a03f6dc570 100644 --- a/thirdparty/bullet/LinearMath/TaskScheduler/btThreadSupportPosix.cpp +++ b/thirdparty/bullet/LinearMath/TaskScheduler/btThreadSupportPosix.cpp @@ -45,14 +45,14 @@ subject to the following restrictions: int btGetNumHardwareThreads() { - return btMin<int>(BT_MAX_THREAD_COUNT, std::thread::hardware_concurrency()); + return btMax(1u, btMin(BT_MAX_THREAD_COUNT, std::thread::hardware_concurrency())); } #else int btGetNumHardwareThreads() { - return btMin<int>(BT_MAX_THREAD_COUNT, sysconf(_SC_NPROCESSORS_ONLN)); + return btMax(1, btMin<int>(BT_MAX_THREAD_COUNT, sysconf(_SC_NPROCESSORS_ONLN))); } #endif @@ -304,8 +304,8 @@ void btThreadSupportPosix::stopThreads() checkPThreadFunction(sem_post(threadStatus.startSemaphore)); checkPThreadFunction(sem_wait(m_mainSemaphore)); - destroySem(threadStatus.startSemaphore); checkPThreadFunction(pthread_join(threadStatus.thread, 0)); + destroySem(threadStatus.startSemaphore); } destroySem(m_mainSemaphore); m_activeThreadStatus.clear(); diff --git a/thirdparty/bullet/LinearMath/btAlignedObjectArray.h b/thirdparty/bullet/LinearMath/btAlignedObjectArray.h index b4671bc19f..b3d5d64b58 100644 --- a/thirdparty/bullet/LinearMath/btAlignedObjectArray.h +++ b/thirdparty/bullet/LinearMath/btAlignedObjectArray.h @@ -38,13 +38,6 @@ subject to the following restrictions: #include <new> //for placement new #endif //BT_USE_PLACEMENT_NEW -// The register keyword is deprecated in C++11 so don't use it. -#if __cplusplus > 199711L -#define BT_REGISTER -#else -#define BT_REGISTER register -#endif - ///The btAlignedObjectArray template class uses a subset of the stl::vector interface for its methods ///It is developed to replace stl::vector to avoid portability issues, including STL alignment issues to add SIMD/SSE data template <typename T> @@ -209,7 +202,7 @@ public: SIMD_FORCE_INLINE void resize(int newsize, const T& fillData = T()) { - const BT_REGISTER int curSize = size(); + const int curSize = size(); if (newsize < curSize) { @@ -236,7 +229,7 @@ public: } SIMD_FORCE_INLINE T& expandNonInitializing() { - const BT_REGISTER int sz = size(); + const int sz = size(); if (sz == capacity()) { reserve(allocSize(size())); @@ -248,7 +241,7 @@ public: SIMD_FORCE_INLINE T& expand(const T& fillValue = T()) { - const BT_REGISTER int sz = size(); + const int sz = size(); if (sz == capacity()) { reserve(allocSize(size())); @@ -263,7 +256,7 @@ public: SIMD_FORCE_INLINE void push_back(const T& _Val) { - const BT_REGISTER int sz = size(); + const int sz = size(); if (sz == capacity()) { reserve(allocSize(size())); diff --git a/thirdparty/bullet/LinearMath/btMatrixX.h b/thirdparty/bullet/LinearMath/btMatrixX.h index 9df9e49469..388c57c2d7 100644 --- a/thirdparty/bullet/LinearMath/btMatrixX.h +++ b/thirdparty/bullet/LinearMath/btMatrixX.h @@ -263,7 +263,10 @@ struct btMatrixX { { BT_PROFILE("storage=0"); - btSetZero(&m_storage[0], m_storage.size()); + if (m_storage.size()) + { + btSetZero(&m_storage[0], m_storage.size()); + } //memset(&m_storage[0],0,sizeof(T)*m_storage.size()); //for (int i=0;i<m_storage.size();i++) // m_storage[i]=0; @@ -281,7 +284,7 @@ struct btMatrixX } } - void printMatrix(const char* msg) + void printMatrix(const char* msg) const { printf("%s ---------------------\n", msg); for (int i = 0; i < rows(); i++) diff --git a/thirdparty/bullet/LinearMath/btScalar.h b/thirdparty/bullet/LinearMath/btScalar.h index c198bd4b35..ba49d6700b 100644 --- a/thirdparty/bullet/LinearMath/btScalar.h +++ b/thirdparty/bullet/LinearMath/btScalar.h @@ -124,7 +124,7 @@ inline int btGetVersion() #ifdef BT_DEBUG #ifdef _MSC_VER #include <stdio.h> - #define btAssert(x) { if(!(x)){printf("Assert "__FILE__ ":%u (%s)\n", __LINE__, #x);__debugbreak(); }} + #define btAssert(x) { if(!(x)){printf("Assert " __FILE__ ":%u (%s)\n", __LINE__, #x);__debugbreak(); }} #else//_MSC_VER #include <assert.h> #define btAssert assert @@ -152,7 +152,7 @@ inline int btGetVersion() #ifdef __SPU__ #include <spu_printf.h> #define printf spu_printf - #define btAssert(x) {if(!(x)){printf("Assert "__FILE__ ":%u ("#x")\n", __LINE__);spu_hcmpeq(0,0);}} + #define btAssert(x) {if(!(x)){printf("Assert " __FILE__ ":%u ("#x")\n", __LINE__);spu_hcmpeq(0,0);}} #else #define btAssert assert #endif diff --git a/thirdparty/bullet/LinearMath/btVector3.h b/thirdparty/bullet/LinearMath/btVector3.h index 61fd8d1e46..d65ed9808d 100644 --- a/thirdparty/bullet/LinearMath/btVector3.h +++ b/thirdparty/bullet/LinearMath/btVector3.h @@ -36,7 +36,7 @@ subject to the following restrictions: #pragma warning(disable : 4556) // value of intrinsic immediate argument '4294967239' is out of range '0 - 255' #endif -#define BT_SHUFFLE(x, y, z, w) ((w) << 6 | (z) << 4 | (y) << 2 | (x)) +#define BT_SHUFFLE(x, y, z, w) (((w) << 6 | (z) << 4 | (y) << 2 | (x)) & 0xff) //#define bt_pshufd_ps( _a, _mask ) (__m128) _mm_shuffle_epi32((__m128i)(_a), (_mask) ) #define bt_pshufd_ps(_a, _mask) _mm_shuffle_ps((_a), (_a), (_mask)) #define bt_splat3_ps(_a, _i) bt_pshufd_ps((_a), BT_SHUFFLE(_i, _i, _i, 3)) diff --git a/thirdparty/bullet/btBulletCollisionAll.cpp b/thirdparty/bullet/btBulletCollisionAll.cpp new file mode 100644 index 0000000000..2851fb3b73 --- /dev/null +++ b/thirdparty/bullet/btBulletCollisionAll.cpp @@ -0,0 +1,96 @@ +#include "BulletCollision/BroadphaseCollision/btAxisSweep3.cpp" +#include "BulletCollision/BroadphaseCollision/btDbvt.cpp" +#include "BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp" +#include "BulletCollision/BroadphaseCollision/btBroadphaseProxy.cpp" +#include "BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp" +#include "BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp" +#include "BulletCollision/BroadphaseCollision/btCollisionAlgorithm.cpp" +#include "BulletCollision/BroadphaseCollision/btDispatcher.cpp" +#include "BulletCollision/BroadphaseCollision/btSimpleBroadphase.cpp" +#include "BulletCollision/CollisionDispatch/SphereTriangleDetector.cpp" +#include "BulletCollision/CollisionDispatch/btCompoundCollisionAlgorithm.cpp" +#include "BulletCollision/CollisionDispatch/btHashedSimplePairCache.cpp" +#include "BulletCollision/CollisionDispatch/btActivatingCollisionAlgorithm.cpp" +#include "BulletCollision/CollisionDispatch/btCompoundCompoundCollisionAlgorithm.cpp" +#include "BulletCollision/CollisionDispatch/btInternalEdgeUtility.cpp" +#include "BulletCollision/CollisionDispatch/btBox2dBox2dCollisionAlgorithm.cpp" +#include "BulletCollision/CollisionDispatch/btConvex2dConvex2dAlgorithm.cpp" +#include "BulletCollision/CollisionDispatch/btManifoldResult.cpp" +#include "BulletCollision/CollisionDispatch/btBoxBoxCollisionAlgorithm.cpp" +#include "BulletCollision/CollisionDispatch/btConvexConcaveCollisionAlgorithm.cpp" +#include "BulletCollision/CollisionDispatch/btSimulationIslandManager.cpp" +#include "BulletCollision/CollisionDispatch/btBoxBoxDetector.cpp" +#include "BulletCollision/CollisionDispatch/btConvexConvexAlgorithm.cpp" +#include "BulletCollision/CollisionDispatch/btSphereBoxCollisionAlgorithm.cpp" +#include "BulletCollision/CollisionDispatch/btCollisionDispatcher.cpp" +#include "BulletCollision/CollisionDispatch/btConvexPlaneCollisionAlgorithm.cpp" +#include "BulletCollision/CollisionDispatch/btSphereSphereCollisionAlgorithm.cpp" +#include "BulletCollision/CollisionDispatch/btCollisionObject.cpp" +#include "BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.cpp" +#include "BulletCollision/CollisionDispatch/btSphereTriangleCollisionAlgorithm.cpp" +#include "BulletCollision/CollisionDispatch/btCollisionWorld.cpp" +#include "BulletCollision/CollisionDispatch/btEmptyCollisionAlgorithm.cpp" +#include "BulletCollision/CollisionDispatch/btUnionFind.cpp" +#include "BulletCollision/CollisionDispatch/btCollisionWorldImporter.cpp" +#include "BulletCollision/CollisionDispatch/btGhostObject.cpp" +#include "BulletCollision/NarrowPhaseCollision/btContinuousConvexCollision.cpp" +#include "BulletCollision/NarrowPhaseCollision/btGjkEpaPenetrationDepthSolver.cpp" +#include "BulletCollision/NarrowPhaseCollision/btPolyhedralContactClipping.cpp" +#include "BulletCollision/NarrowPhaseCollision/btConvexCast.cpp" +#include "BulletCollision/NarrowPhaseCollision/btGjkPairDetector.cpp" +#include "BulletCollision/NarrowPhaseCollision/btRaycastCallback.cpp" +#include "BulletCollision/NarrowPhaseCollision/btGjkConvexCast.cpp" +#include "BulletCollision/NarrowPhaseCollision/btMinkowskiPenetrationDepthSolver.cpp" +#include "BulletCollision/NarrowPhaseCollision/btSubSimplexConvexCast.cpp" +#include "BulletCollision/NarrowPhaseCollision/btGjkEpa2.cpp" +#include "BulletCollision/NarrowPhaseCollision/btPersistentManifold.cpp" +#include "BulletCollision/NarrowPhaseCollision/btVoronoiSimplexSolver.cpp" +#include "BulletCollision/CollisionShapes/btBox2dShape.cpp" +#include "BulletCollision/CollisionShapes/btConvexPolyhedron.cpp" +#include "BulletCollision/CollisionShapes/btShapeHull.cpp" +#include "BulletCollision/CollisionShapes/btBoxShape.cpp" +#include "BulletCollision/CollisionShapes/btConvexShape.cpp" +#include "BulletCollision/CollisionShapes/btSphereShape.cpp" +#include "BulletCollision/CollisionShapes/btBvhTriangleMeshShape.cpp" +#include "BulletCollision/CollisionShapes/btConvexTriangleMeshShape.cpp" +#include "BulletCollision/CollisionShapes/btStaticPlaneShape.cpp" +#include "BulletCollision/CollisionShapes/btCapsuleShape.cpp" +#include "BulletCollision/CollisionShapes/btCylinderShape.cpp" +#include "BulletCollision/CollisionShapes/btStridingMeshInterface.cpp" +#include "BulletCollision/CollisionShapes/btCollisionShape.cpp" +#include "BulletCollision/CollisionShapes/btEmptyShape.cpp" +#include "BulletCollision/CollisionShapes/btTetrahedronShape.cpp" +#include "BulletCollision/CollisionShapes/btCompoundShape.cpp" +#include "BulletCollision/CollisionShapes/btHeightfieldTerrainShape.cpp" +#include "BulletCollision/CollisionShapes/btTriangleBuffer.cpp" +#include "BulletCollision/CollisionShapes/btConcaveShape.cpp" +#include "BulletCollision/CollisionShapes/btMinkowskiSumShape.cpp" +#include "BulletCollision/CollisionShapes/btTriangleCallback.cpp" +#include "BulletCollision/CollisionShapes/btConeShape.cpp" +#include "BulletCollision/CollisionShapes/btMultiSphereShape.cpp" +#include "BulletCollision/CollisionShapes/btTriangleIndexVertexArray.cpp" +#include "BulletCollision/CollisionShapes/btConvex2dShape.cpp" +#include "BulletCollision/CollisionShapes/btMultimaterialTriangleMeshShape.cpp" +#include "BulletCollision/CollisionShapes/btTriangleIndexVertexMaterialArray.cpp" +#include "BulletCollision/CollisionShapes/btConvexHullShape.cpp" +#include "BulletCollision/CollisionShapes/btOptimizedBvh.cpp" +#include "BulletCollision/CollisionShapes/btTriangleMesh.cpp" +#include "BulletCollision/CollisionShapes/btConvexInternalShape.cpp" +#include "BulletCollision/CollisionShapes/btPolyhedralConvexShape.cpp" +#include "BulletCollision/CollisionShapes/btTriangleMeshShape.cpp" +#include "BulletCollision/CollisionShapes/btConvexPointCloudShape.cpp" +#include "BulletCollision/CollisionShapes/btScaledBvhTriangleMeshShape.cpp" +#include "BulletCollision/CollisionShapes/btSdfCollisionShape.cpp" +#include "BulletCollision/CollisionShapes/btMiniSDF.cpp" +#include "BulletCollision/CollisionShapes/btUniformScalingShape.cpp" +#include "BulletCollision/Gimpact/btContactProcessing.cpp" +#include "BulletCollision/Gimpact/btGImpactQuantizedBvh.cpp" +#include "BulletCollision/Gimpact/btTriangleShapeEx.cpp" +#include "BulletCollision/Gimpact/gim_memory.cpp" +#include "BulletCollision/Gimpact/btGImpactBvh.cpp" +#include "BulletCollision/Gimpact/btGImpactShape.cpp" +#include "BulletCollision/Gimpact/gim_box_set.cpp" +#include "BulletCollision/Gimpact/gim_tri_collision.cpp" +#include "BulletCollision/Gimpact/btGImpactCollisionAlgorithm.cpp" +#include "BulletCollision/Gimpact/btGenericPoolAllocator.cpp" +#include "BulletCollision/Gimpact/gim_contact.cpp" diff --git a/thirdparty/bullet/btBulletDynamicsAll.cpp b/thirdparty/bullet/btBulletDynamicsAll.cpp new file mode 100644 index 0000000000..a8069e30ae --- /dev/null +++ b/thirdparty/bullet/btBulletDynamicsAll.cpp @@ -0,0 +1,42 @@ +#include "BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp" +#include "BulletDynamics/Dynamics/btRigidBody.cpp" +#include "BulletDynamics/Dynamics/btSimulationIslandManagerMt.cpp" +#include "BulletDynamics/Dynamics/btDiscreteDynamicsWorldMt.cpp" +#include "BulletDynamics/Dynamics/btSimpleDynamicsWorld.cpp" +#include "BulletDynamics/ConstraintSolver/btBatchedConstraints.cpp" +#include "BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp" +#include "BulletDynamics/ConstraintSolver/btGeneric6DofSpringConstraint.cpp" +#include "BulletDynamics/ConstraintSolver/btSliderConstraint.cpp" +#include "BulletDynamics/ConstraintSolver/btContactConstraint.cpp" +#include "BulletDynamics/ConstraintSolver/btHinge2Constraint.cpp" +#include "BulletDynamics/ConstraintSolver/btSolve2LinearConstraint.cpp" +#include "BulletDynamics/ConstraintSolver/btFixedConstraint.cpp" +#include "BulletDynamics/ConstraintSolver/btHingeConstraint.cpp" +#include "BulletDynamics/ConstraintSolver/btTypedConstraint.cpp" +#include "BulletDynamics/ConstraintSolver/btGearConstraint.cpp" +#include "BulletDynamics/ConstraintSolver/btNNCGConstraintSolver.cpp" +#include "BulletDynamics/ConstraintSolver/btUniversalConstraint.cpp" +#include "BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp" +#include "BulletDynamics/ConstraintSolver/btPoint2PointConstraint.cpp" +#include "BulletDynamics/ConstraintSolver/btGeneric6DofSpring2Constraint.cpp" +#include "BulletDynamics/ConstraintSolver/btSequentialImpulseConstraintSolver.cpp" +#include "BulletDynamics/ConstraintSolver/btSequentialImpulseConstraintSolverMt.cpp" +#include "BulletDynamics/MLCPSolvers/btDantzigLCP.cpp" +#include "BulletDynamics/MLCPSolvers/btLemkeAlgorithm.cpp" +#include "BulletDynamics/MLCPSolvers/btMLCPSolver.cpp" +#include "BulletDynamics/Featherstone/btMultiBody.cpp" +#include "BulletDynamics/Featherstone/btMultiBodyDynamicsWorld.cpp" +#include "BulletDynamics/Featherstone/btMultiBodyJointMotor.cpp" +#include "BulletDynamics/Featherstone/btMultiBodyGearConstraint.cpp" +#include "BulletDynamics/Featherstone/btMultiBodyConstraint.cpp" +#include "BulletDynamics/Featherstone/btMultiBodyFixedConstraint.cpp" +#include "BulletDynamics/Featherstone/btMultiBodyPoint2Point.cpp" +#include "BulletDynamics/Featherstone/btMultiBodyConstraintSolver.cpp" +#include "BulletDynamics/Featherstone/btMultiBodyMLCPConstraintSolver.cpp" +#include "BulletDynamics/Featherstone/btMultiBodyJointLimitConstraint.cpp" +#include "BulletDynamics/Featherstone/btMultiBodySliderConstraint.cpp" +#include "BulletDynamics/Featherstone/btMultiBodySphericalJointMotor.cpp" +#include "BulletDynamics/Vehicle/btRaycastVehicle.cpp" +#include "BulletDynamics/Vehicle/btWheelInfo.cpp" +#include "BulletDynamics/Character/btKinematicCharacterController.cpp" + diff --git a/thirdparty/bullet/btLinearMathAll.cpp b/thirdparty/bullet/btLinearMathAll.cpp new file mode 100644 index 0000000000..808f412803 --- /dev/null +++ b/thirdparty/bullet/btLinearMathAll.cpp @@ -0,0 +1,14 @@ +#include "LinearMath/btAlignedAllocator.cpp" +#include "LinearMath/btGeometryUtil.cpp" +#include "LinearMath/btSerializer.cpp" +#include "LinearMath/btVector3.cpp" +#include "LinearMath/btConvexHull.cpp" +#include "LinearMath/btPolarDecomposition.cpp" +#include "LinearMath/btSerializer64.cpp" +#include "LinearMath/btConvexHullComputer.cpp" +#include "LinearMath/btQuickprof.cpp" +#include "LinearMath/btThreads.cpp" +#include "LinearMath/TaskScheduler/btTaskScheduler.cpp" +#include "LinearMath/TaskScheduler/btThreadSupportPosix.cpp" +#include "LinearMath/TaskScheduler/btThreadSupportWin32.cpp" + diff --git a/thirdparty/cvtt/LICENSE.txt b/thirdparty/cvtt/LICENSE.txt index 6964f6e43f..d79aec44e3 100644 --- a/thirdparty/cvtt/LICENSE.txt +++ b/thirdparty/cvtt/LICENSE.txt @@ -1,45 +1,45 @@ -Convection Texture Tools Stand-Alone Kernels
-
-Copyright (c) 2018 Eric Lasota
-
-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.
-
-**************************************************************************
-
-Based on DirectX Texture Library
-
-Copyright (c) 2018 Microsoft Corp
-
-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
+Convection Texture Tools Stand-Alone Kernels + +Copyright (c) 2018 Eric Lasota + +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. + +************************************************************************** + +Based on DirectX Texture Library + +Copyright (c) 2018 Microsoft Corp + +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.
\ No newline at end of file diff --git a/thirdparty/misc/clipper-exceptions.patch b/thirdparty/misc/clipper-exceptions.patch new file mode 100644 index 0000000000..537afd59b3 --- /dev/null +++ b/thirdparty/misc/clipper-exceptions.patch @@ -0,0 +1,154 @@ +diff --git a/thirdparty/misc/clipper.cpp b/thirdparty/misc/clipper.cpp +index 8c3a59c4ca..c67045d113 100644 +--- a/thirdparty/misc/clipper.cpp ++++ b/thirdparty/misc/clipper.cpp +@@ -48,6 +48,38 @@ + #include <ostream> + #include <functional> + ++//Explicitly disables exceptions handling for target platform ++//#define CLIPPER_NOEXCEPTION ++ ++#define CLIPPER_THROW(exception) std::abort() ++#define CLIPPER_TRY if(true) ++#define CLIPPER_CATCH(exception) if(false) ++ ++#if defined(__cpp_exceptions) || defined(__EXCEPTIONS) || defined(_CPPUNWIND) ++ #ifndef CLIPPER_NOEXCEPTION ++ #undef CLIPPER_THROW ++ #define CLIPPER_THROW(exception) throw exception ++ #undef CLIPPER_TRY ++ #define CLIPPER_TRY try ++ #undef CLIPPER_CATCH ++ #define CLIPPER_CATCH(exception) catch(exception) ++ #endif ++#endif ++ ++//Optionally allows to override exception macros ++#if defined(CLIPPER_THROW_USER) ++ #undef CLIPPER_THROW ++ #define CLIPPER_THROW CLIPPER_THROW_USER ++#endif ++#if defined(CLIPPER_TRY_USER) ++ #undef CLIPPER_TRY ++ #define CLIPPER_TRY CLIPPER_TRY_USER ++#endif ++#if defined(CLIPPER_CATCH_USER) ++ #undef CLIPPER_CATCH ++ #define CLIPPER_CATCH CLIPPER_CATCH_USER ++#endif ++ + namespace ClipperLib { + + static double const pi = 3.141592653589793238; +@@ -898,7 +930,7 @@ void RangeTest(const IntPoint& Pt, bool& useFullRange) + if (useFullRange) + { + if (Pt.X > hiRange || Pt.Y > hiRange || -Pt.X > hiRange || -Pt.Y > hiRange) +- throw clipperException("Coordinate outside allowed range"); ++ CLIPPER_THROW(clipperException("Coordinate outside allowed range")); + } + else if (Pt.X > loRange|| Pt.Y > loRange || -Pt.X > loRange || -Pt.Y > loRange) + { +@@ -1046,10 +1078,10 @@ bool ClipperBase::AddPath(const Path &pg, PolyType PolyTyp, bool Closed) + { + #ifdef use_lines + if (!Closed && PolyTyp == ptClip) +- throw clipperException("AddPath: Open paths must be subject."); ++ CLIPPER_THROW(clipperException("AddPath: Open paths must be subject.")); + #else + if (!Closed) +- throw clipperException("AddPath: Open paths have been disabled."); ++ CLIPPER_THROW(clipperException("AddPath: Open paths have been disabled.")); + #endif + + int highI = (int)pg.size() -1; +@@ -1062,7 +1094,7 @@ bool ClipperBase::AddPath(const Path &pg, PolyType PolyTyp, bool Closed) + + bool IsFlat = true; + //1. Basic (first) edge initialization ... +- try ++ CLIPPER_TRY + { + edges[1].Curr = pg[1]; + RangeTest(pg[0], m_UseFullRange); +@@ -1075,10 +1107,10 @@ bool ClipperBase::AddPath(const Path &pg, PolyType PolyTyp, bool Closed) + InitEdge(&edges[i], &edges[i+1], &edges[i-1], pg[i]); + } + } +- catch(...) ++ CLIPPER_CATCH(...) + { + delete [] edges; +- throw; //range test fails ++ CLIPPER_THROW(); //range test fails + } + TEdge *eStart = &edges[0]; + +@@ -1442,7 +1474,7 @@ void ClipperBase::SwapPositionsInAEL(TEdge *Edge1, TEdge *Edge2) + void ClipperBase::UpdateEdgeIntoAEL(TEdge *&e) + { + if (!e->NextInLML) +- throw clipperException("UpdateEdgeIntoAEL: invalid call"); ++ CLIPPER_THROW(clipperException("UpdateEdgeIntoAEL: invalid call")); + + e->NextInLML->OutIdx = e->OutIdx; + TEdge* AelPrev = e->PrevInAEL; +@@ -1510,7 +1542,7 @@ bool Clipper::Execute(ClipType clipType, Paths &solution, + { + if( m_ExecuteLocked ) return false; + if (m_HasOpenPaths) +- throw clipperException("Error: PolyTree struct is needed for open path clipping."); ++ CLIPPER_THROW(clipperException("Error: PolyTree struct is needed for open path clipping.")); + m_ExecuteLocked = true; + solution.resize(0); + m_SubjFillType = subjFillType; +@@ -1560,7 +1592,7 @@ void Clipper::FixHoleLinkage(OutRec &outrec) + bool Clipper::ExecuteInternal() + { + bool succeeded = true; +- try { ++ CLIPPER_TRY { + Reset(); + m_Maxima = MaximaList(); + m_SortedEdges = 0; +@@ -1583,7 +1615,7 @@ bool Clipper::ExecuteInternal() + InsertLocalMinimaIntoAEL(botY); + } + } +- catch(...) ++ CLIPPER_CATCH(...) + { + succeeded = false; + } +@@ -2827,18 +2859,18 @@ void Clipper::ProcessHorizontal(TEdge *horzEdge) + bool Clipper::ProcessIntersections(const cInt topY) + { + if( !m_ActiveEdges ) return true; +- try { ++ CLIPPER_TRY { + BuildIntersectList(topY); + size_t IlSize = m_IntersectList.size(); + if (IlSize == 0) return true; + if (IlSize == 1 || FixupIntersectionOrder()) ProcessIntersectList(); + else return false; + } +- catch(...) ++ CLIPPER_CATCH(...) + { + m_SortedEdges = 0; + DisposeIntersectNodes(); +- throw clipperException("ProcessIntersections error"); ++ CLIPPER_THROW(clipperException("ProcessIntersections error")); + } + m_SortedEdges = 0; + return true; +@@ -3002,7 +3034,7 @@ void Clipper::DoMaxima(TEdge *e) + DeleteFromAEL(eMaxPair); + } + #endif +- else throw clipperException("DoMaxima error"); ++ else CLIPPER_THROW(clipperException("DoMaxima error")); + } + //------------------------------------------------------------------------------ + diff --git a/thirdparty/misc/clipper.cpp b/thirdparty/misc/clipper.cpp index d3143fe5ab..c67045d113 100644 --- a/thirdparty/misc/clipper.cpp +++ b/thirdparty/misc/clipper.cpp @@ -48,6 +48,38 @@ #include <ostream> #include <functional> +//Explicitly disables exceptions handling for target platform +//#define CLIPPER_NOEXCEPTION + +#define CLIPPER_THROW(exception) std::abort() +#define CLIPPER_TRY if(true) +#define CLIPPER_CATCH(exception) if(false) + +#if defined(__cpp_exceptions) || defined(__EXCEPTIONS) || defined(_CPPUNWIND) + #ifndef CLIPPER_NOEXCEPTION + #undef CLIPPER_THROW + #define CLIPPER_THROW(exception) throw exception + #undef CLIPPER_TRY + #define CLIPPER_TRY try + #undef CLIPPER_CATCH + #define CLIPPER_CATCH(exception) catch(exception) + #endif +#endif + +//Optionally allows to override exception macros +#if defined(CLIPPER_THROW_USER) + #undef CLIPPER_THROW + #define CLIPPER_THROW CLIPPER_THROW_USER +#endif +#if defined(CLIPPER_TRY_USER) + #undef CLIPPER_TRY + #define CLIPPER_TRY CLIPPER_TRY_USER +#endif +#if defined(CLIPPER_CATCH_USER) + #undef CLIPPER_CATCH + #define CLIPPER_CATCH CLIPPER_CATCH_USER +#endif + namespace ClipperLib { static double const pi = 3.141592653589793238; @@ -898,7 +930,7 @@ void RangeTest(const IntPoint& Pt, bool& useFullRange) if (useFullRange) { if (Pt.X > hiRange || Pt.Y > hiRange || -Pt.X > hiRange || -Pt.Y > hiRange) - throw clipperException("Coordinate outside allowed range"); + CLIPPER_THROW(clipperException("Coordinate outside allowed range")); } else if (Pt.X > loRange|| Pt.Y > loRange || -Pt.X > loRange || -Pt.Y > loRange) { @@ -1046,10 +1078,10 @@ bool ClipperBase::AddPath(const Path &pg, PolyType PolyTyp, bool Closed) { #ifdef use_lines if (!Closed && PolyTyp == ptClip) - throw clipperException("AddPath: Open paths must be subject."); + CLIPPER_THROW(clipperException("AddPath: Open paths must be subject.")); #else if (!Closed) - throw clipperException("AddPath: Open paths have been disabled."); + CLIPPER_THROW(clipperException("AddPath: Open paths have been disabled.")); #endif int highI = (int)pg.size() -1; @@ -1062,7 +1094,7 @@ bool ClipperBase::AddPath(const Path &pg, PolyType PolyTyp, bool Closed) bool IsFlat = true; //1. Basic (first) edge initialization ... - try + CLIPPER_TRY { edges[1].Curr = pg[1]; RangeTest(pg[0], m_UseFullRange); @@ -1075,10 +1107,10 @@ bool ClipperBase::AddPath(const Path &pg, PolyType PolyTyp, bool Closed) InitEdge(&edges[i], &edges[i+1], &edges[i-1], pg[i]); } } - catch(...) + CLIPPER_CATCH(...) { delete [] edges; - throw; //range test fails + CLIPPER_THROW(); //range test fails } TEdge *eStart = &edges[0]; @@ -1442,7 +1474,7 @@ void ClipperBase::SwapPositionsInAEL(TEdge *Edge1, TEdge *Edge2) void ClipperBase::UpdateEdgeIntoAEL(TEdge *&e) { if (!e->NextInLML) - throw clipperException("UpdateEdgeIntoAEL: invalid call"); + CLIPPER_THROW(clipperException("UpdateEdgeIntoAEL: invalid call")); e->NextInLML->OutIdx = e->OutIdx; TEdge* AelPrev = e->PrevInAEL; @@ -1510,7 +1542,7 @@ bool Clipper::Execute(ClipType clipType, Paths &solution, { if( m_ExecuteLocked ) return false; if (m_HasOpenPaths) - throw clipperException("Error: PolyTree struct is needed for open path clipping."); + CLIPPER_THROW(clipperException("Error: PolyTree struct is needed for open path clipping.")); m_ExecuteLocked = true; solution.resize(0); m_SubjFillType = subjFillType; @@ -1560,7 +1592,7 @@ void Clipper::FixHoleLinkage(OutRec &outrec) bool Clipper::ExecuteInternal() { bool succeeded = true; - try { + CLIPPER_TRY { Reset(); m_Maxima = MaximaList(); m_SortedEdges = 0; @@ -1583,7 +1615,7 @@ bool Clipper::ExecuteInternal() InsertLocalMinimaIntoAEL(botY); } } - catch(...) + CLIPPER_CATCH(...) { succeeded = false; } @@ -2827,18 +2859,18 @@ void Clipper::ProcessHorizontal(TEdge *horzEdge) bool Clipper::ProcessIntersections(const cInt topY) { if( !m_ActiveEdges ) return true; - try { + CLIPPER_TRY { BuildIntersectList(topY); size_t IlSize = m_IntersectList.size(); if (IlSize == 0) return true; if (IlSize == 1 || FixupIntersectionOrder()) ProcessIntersectList(); else return false; } - catch(...) + CLIPPER_CATCH(...) { m_SortedEdges = 0; DisposeIntersectNodes(); - throw clipperException("ProcessIntersections error"); + CLIPPER_THROW(clipperException("ProcessIntersections error")); } m_SortedEdges = 0; return true; @@ -3002,7 +3034,7 @@ void Clipper::DoMaxima(TEdge *e) DeleteFromAEL(eMaxPair); } #endif - else throw clipperException("DoMaxima error"); + else CLIPPER_THROW(clipperException("DoMaxima error")); } //------------------------------------------------------------------------------ @@ -4329,10 +4361,10 @@ double DistanceFromLineSqrd( const IntPoint& pt, const IntPoint& ln1, const IntPoint& ln2) { //The equation of a line in general form (Ax + By + C = 0) - //given 2 points (x¹,y¹) & (x²,y²) is ... - //(y¹ - y²)x + (x² - x¹)y + (y² - y¹)x¹ - (x² - x¹)y¹ = 0 - //A = (y¹ - y²); B = (x² - x¹); C = (y² - y¹)x¹ - (x² - x¹)y¹ - //perpendicular distance of point (x³,y³) = (Ax³ + By³ + C)/Sqrt(A² + B²) + //given 2 points (x¹,y¹) & (x²,y²) is ... + //(y¹ - y²)x + (x² - x¹)y + (y² - y¹)x¹ - (x² - x¹)y¹ = 0 + //A = (y¹ - y²); B = (x² - x¹); C = (y² - y¹)x¹ - (x² - x¹)y¹ + //perpendicular distance of point (x³,y³) = (Ax³ + By³ + C)/Sqrt(A² + B²) //see http://en.wikipedia.org/wiki/Perpendicular_distance double A = double(ln1.Y - ln2.Y); double B = double(ln2.X - ln1.X); diff --git a/thirdparty/xatlas/xatlas.cpp b/thirdparty/xatlas/xatlas.cpp index eb0824a517..2cc2905eee 100644 --- a/thirdparty/xatlas/xatlas.cpp +++ b/thirdparty/xatlas/xatlas.cpp @@ -4388,7 +4388,7 @@ private: class Solver { public: - // Solve the symmetric system: At·A·x = At·b + // Solve the symmetric system: At·A·x = At·b static bool LeastSquaresSolver(const sparse::Matrix &A, const FullVector &b, FullVector &x, float epsilon = 1e-5f) { xaDebugAssert(A.width() == x.dimension()); @@ -4477,22 +4477,22 @@ private: * Gradient method. * * Solving sparse linear systems: - * (1) A·x = b + * (1) A·x = b * * The conjugate gradient algorithm solves (1) only in the case that A is * symmetric and positive definite. It is based on the idea of minimizing the * function * - * (2) f(x) = 1/2·x·A·x - b·x + * (2) f(x) = 1/2·x·A·x - b·x * * This function is minimized when its gradient * - * (3) df = A·x - b + * (3) df = A·x - b * * is zero, which is equivalent to (1). The minimization is carried out by * generating a succession of search directions p.k and improved minimizers x.k. - * At each stage a quantity alfa.k is found that minimizes f(x.k + alfa.k·p.k), - * and x.k+1 is set equal to the new point x.k + alfa.k·p.k. The p.k and x.k are + * At each stage a quantity alfa.k is found that minimizes f(x.k + alfa.k·p.k), + * and x.k+1 is set equal to the new point x.k + alfa.k·p.k. The p.k and x.k are * built up in such a way that x.k+1 is also the minimizer of f over the whole * vector space of directions already taken, {p.1, p.2, . . . , p.k}. After N * iterations you arrive at the minimizer over the entire vector space, i.e., the @@ -4520,7 +4520,7 @@ private: float delta_new; float alpha; float beta; - // r = b - A·x; + // r = b - A·x; sparse::copy(b, r); sparse::sgemv(-1, A, x, 1, r); // p = r; @@ -4529,24 +4529,24 @@ private: delta_0 = delta_new; while (i < i_max && delta_new > epsilon * epsilon * delta_0) { i++; - // q = A·p + // q = A·p mult(A, p, q); - // alpha = delta_new / p·q + // alpha = delta_new / p·q alpha = delta_new / sparse::dot( p, q ); - // x = alfa·p + x + // x = alfa·p + x sparse::saxpy(alpha, p, x); if ((i & 31) == 0) { // recompute r after 32 steps - // r = b - A·x + // r = b - A·x sparse::copy(b, r); sparse::sgemv(-1, A, x, 1, r); } else { - // r = r - alpha·q + // r = r - alpha·q sparse::saxpy(-alpha, q, r); } delta_old = delta_new; delta_new = sparse::dot( r, r ); beta = delta_new / delta_old; - // p = beta·p + r + // p = beta·p + r sparse::scal(beta, p); sparse::saxpy(1, r, p); } @@ -4572,35 +4572,35 @@ private: float delta_new; float alpha; float beta; - // r = b - A·x + // r = b - A·x sparse::copy(b, r); sparse::sgemv(-1, A, x, 1, r); - // p = M^-1 · r + // p = M^-1 · r preconditioner.apply(r, p); delta_new = sparse::dot(r, p); delta_0 = delta_new; while (i < i_max && delta_new > epsilon * epsilon * delta_0) { i++; - // q = A·p + // q = A·p mult(A, p, q); - // alpha = delta_new / p·q + // alpha = delta_new / p·q alpha = delta_new / sparse::dot(p, q); - // x = alfa·p + x + // x = alfa·p + x sparse::saxpy(alpha, p, x); if ((i & 31) == 0) { // recompute r after 32 steps - // r = b - A·x + // r = b - A·x sparse::copy(b, r); sparse::sgemv(-1, A, x, 1, r); } else { - // r = r - alfa·q + // r = r - alfa·q sparse::saxpy(-alpha, q, r); } - // s = M^-1 · r + // s = M^-1 · r preconditioner.apply(r, s); delta_old = delta_new; delta_new = sparse::dot( r, s ); beta = delta_new / delta_old; - // p = s + beta·p + // p = s + beta·p sparse::scal(beta, p); sparse::saxpy(1, s, p); } diff --git a/version.py b/version.py index 3d7def727d..09219f60ad 100644 --- a/version.py +++ b/version.py @@ -5,3 +5,4 @@ minor = 2 status = "dev" module_config = "" year = 2019 +website = "https://godotengine.org" |